From 330b82b76917b31690fcf371325fa82ae256e718 Mon Sep 17 00:00:00 2001 From: Gabriele Cosmo Date: Wed, 8 Jun 2016 16:39:52 +0200 Subject: [PATCH] Import Geant4 4.1.0 source tree --- Configure | 209 +- ReleaseNotes/Patch4.4.0-1.txt | 102 + ReleaseNotes/Patch4.4.0-2.txt | 157 + ReleaseNotes/ReleaseNotes4.4.1.txt | 385 + config/G4VIS_USE.gmk | 8 +- config/History | 52 +- config/architecture.gmk | 6 +- config/binmake.gmk | 4 +- config/liblist.c | 14 +- config/scripts/env.csh.SH | 6 + config/scripts/env.sh.SH | 7 + config/scripts/install.sh.SH | 13 +- config/sys/AIX-xlC.gmk | 2 +- config/sys/DEC-cxx.gmk | 2 +- config/sys/Darwin-g++.gmk | 70 + config/sys/HP-aCC.gmk | 9 +- config/sys/Linux-egcs.gmk | 4 +- config/sys/SGI-CC.gmk | 2 +- config/sys/SUN-CC.gmk | 4 +- config/sys/SUN-CC4.gmk | 69 - config/sys/WIN32-VC.gmk | 5 +- config/sys/WIN32-g++.gmk | 5 +- environments/OPACS/app/EXPO.cc | 2 +- environments/OPACS/app/TEST.cc | 2 +- environments/OPACS/include/EXPO_Detector.icc | 2 +- .../OPACS/include/EXPO_PhysicsList.hh | 2 +- .../OPACS/include/EXPO_PhysicsList.icc | 2 +- environments/OPACS/include/EXPO_Primary.icc | 2 +- environments/OPACS/include/G4o.h | 2 +- environments/OPACS/include/G4oCommon.hh | 2 +- environments/OPACS/include/G4oCommon.icc | 2 +- environments/OPACS/include/G4oDrawer.hh | 2 +- environments/OPACS/include/G4oEXPO.h | 2 +- environments/OPACS/include/G4oScene.hh | 2 +- environments/OPACS/include/G4oState.hh | 2 +- environments/OPACS/include/WoG4o.h | 2 +- environments/OPACS/src/G4o.cc | 2 +- environments/OPACS/src/G4oDrawer.cc | 2 +- environments/OPACS/src/G4oScene.cc | 2 +- environments/OPACS/src/G4oState.cc | 2 +- examples/advanced/brachytherapy/Brachy.cc | 193 +- examples/advanced/brachytherapy/GNUmakefile | 18 +- examples/advanced/brachytherapy/README | 107 +- examples/advanced/brachytherapy/brachy.py | 15 + .../include/BrachyAnalysisManager.hh | 55 + .../include/BrachyDetectorConstruction.hh | 135 +- .../include/BrachyDetectorMessenger.hh | 67 + .../brachytherapy/include/BrachyDummySD.hh | 18 +- .../include/BrachyEventAction.hh | 43 +- .../brachytherapy/include/BrachyPhantomHit.hh | 107 + ...Geometry.hh => BrachyPhantomROGeometry.hh} | 26 +- .../brachytherapy/include/BrachyPhantomSD.hh | 59 + .../include/BrachyPhysicsList.hh | 60 +- .../include/BrachyPrimaryGeneratorAction.hh | 48 +- .../brachytherapy/include/BrachyRunAction.hh | 28 + .../brachytherapy/include/BrachyVisManager.hh | 28 + examples/advanced/brachytherapy/initInter.mac | 31 + .../src/BrachyAnalysisManager.cc | 159 + .../src/BrachyDetectorConstruction.cc | 507 +- .../src/BrachyDetectorMessenger.cc | 78 + .../brachytherapy/src/BrachyEventAction.cc | 119 +- ...achyWaterBoxHit.cc => BrachyPhantomHit.cc} | 52 +- .../src/BrachyPhantomROGeometry.cc | 116 + .../brachytherapy/src/BrachyPhantomSD.cc | 141 + .../src/BrachyPrimaryGeneratorAction.cc | 128 +- .../brachytherapy/src/BrachyRunAction.cc | 56 + .../brachytherapy/src/BrachyVisManager.cc | 132 + .../src/BrachyWaterBoxROGeometry.cc | 116 - .../brachytherapy/src/BrachyWaterBoxSD.cc | 141 - .../advanced/gammaray_telescope/GNUmakefile | 23 +- .../gammaray_telescope/GammaRayTel.cc | 6 +- examples/advanced/gammaray_telescope/README | 79 +- .../advanced/gammaray_telescope/anaphe.gmk | 38 - .../gammaray_telescope/gammaraytel.py | 40 +- ...nalysis.hh-AIDA => GammaRayTelAnalysis.hh} | 4 +- .../include/GammaRayTelAnalysis.hh-Anaphe | 175 - .../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 +- ...nalysis.cc-AIDA => GammaRayTelAnalysis.cc} | 171 +- .../src/GammaRayTelAnalysis.cc-Anaphe | 405 - .../src/GammaRayTelAnalysisMessenger.cc | 2 +- .../src/GammaRayTelAnticoincidenceHit.cc | 2 +- .../src/GammaRayTelAnticoincidenceSD.cc | 2 +- .../src/GammaRayTelCalorimeterHit.cc | 2 +- .../src/GammaRayTelCalorimeterSD.cc | 2 +- .../src/GammaRayTelDetectorConstruction.cc | 2 +- .../src/GammaRayTelDetectorMessenger.cc | 2 +- .../gammaray_telescope/src/GammaRayTelDigi.cc | 2 +- .../src/GammaRayTelDigitizer.cc | 2 +- .../src/GammaRayTelDigitizerMessenger.cc | 2 +- .../src/GammaRayTelEventAction.cc | 5 +- .../src/GammaRayTelPhysicsList.cc | 2 +- .../src/GammaRayTelPrimaryGeneratorAction.cc | 2 +- .../GammaRayTelPrimaryGeneratorMessenger.cc | 2 +- .../src/GammaRayTelRunAction.cc | 2 +- .../src/GammaRayTelTrackerHit.cc | 2 +- .../src/GammaRayTelTrackerROGeometry.cc | 2 +- .../src/GammaRayTelTrackerSD.cc | 2 +- .../src/GammaRayTelVisManager.cc | 2 +- examples/advanced/underground_physics/DMX.cc | 29 +- examples/advanced/underground_physics/DMX.py | 67 + .../advanced/underground_physics/GNUmakefile | 18 +- examples/advanced/underground_physics/README | 125 +- .../advanced/underground_physics/alpha.mac | 6 +- .../underground_physics/alpha_1000.mac | 13 +- .../underground_physics/alpha_low.mac | 6 +- .../underground_physics/ambe_spectrum.mac | 121 + examples/advanced/underground_physics/anaphe | 3 + .../underground_physics/anaphe.tar.gz | Bin 0 -> 6712 bytes .../advanced/underground_physics/gamma.mac | 6 +- .../underground_physics/gamma_1000.mac | 6 +- .../underground_physics/gamma_2000.mac | 54 + .../underground_physics/gamma_low.mac | 6 +- .../include/DMXAnalysisManager.hh | 143 + .../include/DMXDetectorConstruction.hh | 102 +- .../include/DMXDetectorMaterial.ihh | 26 + .../include/DMXDetectorMessenger.hh | 72 + .../include/DMXDetectorRoom.ihh | 34 + .../include/DMXEventAction.hh | 13 +- .../include/DMXMinEkineCuts.hh | 68 + .../include/DMXParticleSource.hh | 1 + .../include/DMXPrimaryGeneratorAction.hh | 22 +- .../include/DMXRunAction.hh | 19 +- .../include/DMXRunActionMessenger.hh | 9 +- .../include/DMXStackingActionMessenger.hh | 2 +- .../include/DMXSteppingAction.hh | 1 + .../advanced/underground_physics/neutron.mac | 6 +- .../src/DMXAnalysisManager.cc | 455 + .../src/DMXDetectorConstruction.cc | 1090 +- .../src/DMXDetectorField.icc | 23 + .../src/DMXDetectorMaterial.icc | 209 + .../src/DMXDetectorMessenger.cc | 129 + .../src/DMXDetectorRoom.icc | 598 + .../src/DMXDetectorRoomLimits.icc | 17 + .../underground_physics/src/DMXEventAction.cc | 191 +- .../underground_physics/src/DMXMaxTimeCuts.cc | 2 + .../src/DMXMinEkineCuts.cc | 96 + .../src/DMXParticleSource.cc | 8 +- .../underground_physics/src/DMXPhysicsList.cc | 762 +- .../src/DMXPrimaryGeneratorAction.cc | 33 + .../underground_physics/src/DMXRunAction.cc | 31 +- .../src/DMXRunActionMessenger.cc | 56 +- .../src/DMXSteppingAction.cc | 21 +- .../xray_fluorescence/G4History.macro | 16 +- .../advanced/xray_fluorescence/GNUmakefile | 32 +- examples/advanced/xray_fluorescence/README | 17 +- ...ger.hh-AIDA => XrayFluoAnalysisManager.hh} | 38 +- .../include/XrayFluoAnalysisManager.hh-Anaphe | 108 - .../include/XrayFluoDataSet.hh | 9 +- .../include/XrayFluoEventAction.hh | 6 +- .../advanced/xray_fluorescence/initInter.mac | 19 +- examples/advanced/xray_fluorescence/macro.mac | 2 +- ...ger.cc-AIDA => XrayFluoAnalysisManager.cc} | 174 +- .../src/XrayFluoAnalysisManager.cc-Anaphe | 257 - .../src/XrayFluoDetectorConstruction.cc | 46 +- .../src/XrayFluoEventAction.cc | 12 +- .../src/XrayFluoPhysicsList.cc | 6 + .../src/XrayFluoPrimaryGeneratorAction.cc | 4 +- .../src/XrayFluoRunAction.cc | 18 +- .../src/XrayFluoVisManager.cc | 17 +- examples/advanced/xray_telescope/README | 13 +- .../include/XrayTelAnalysis.hh-Anaphe | 2 +- .../src/XrayTelAnalysis.cc-Anaphe | 2 +- 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 | 2 +- .../AnaEx01/src/AnaEx01EventAction.cc | 2 +- .../AnaEx01/src/AnaEx01PhysicsList.cc | 2 +- .../src/AnaEx01PrimaryGeneratorAction.cc | 2 +- .../src/AnaEx01PrimaryGeneratorMessenger.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01RunAction.cc | 2 +- .../AnaEx01/src/AnaEx01SteppingAction.cc | 2 +- .../AnaEx01/src/AnaEx01SteppingVerbose.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01VisManager.cc | 2 +- examples/extended/biasing/B01/GNUmakefile | 18 + examples/extended/biasing/B01/exampleB01.cc | 167 + examples/extended/biasing/B01/exampleB01.out | 247 + .../B01/include/B01DetectorConstruction.hh | 47 + .../biasing/B01/include/B01PhysicsList.hh | 67 + .../B01/include/B01PrimaryGeneratorAction.hh | 49 + .../extended/biasing/B01/include/B01Scorer.hh | 53 + .../B01/src/B01DetectorConstruction.cc | 217 + .../biasing/B01/src/B01PhysicsList.cc | 632 + .../B01/src/B01PrimaryGeneratorAction.cc | 55 + .../extended/biasing/B01/src/B01Scorer.cc | 65 + examples/extended/biasing/B02/GNUmakefile | 18 + examples/extended/biasing/B02/exampleB02.cc | 170 + examples/extended/biasing/B02/exampleB02.out | 319 + .../B02/include/B02DetectorConstruction.hh | 47 + .../biasing/B02/include/B02PhysicsList.hh | 63 + .../B02/include/B02PrimaryGeneratorAction.hh | 49 + .../extended/biasing/B02/include/B02Scorer.hh | 53 + .../include/B02ScoringDetectorConstruction.hh | 45 + .../B02/src/B02DetectorConstruction.cc | 214 + .../biasing/B02/src/B02PhysicsList.cc | 632 + .../B02/src/B02PrimaryGeneratorAction.cc | 55 + .../extended/biasing/B02/src/B02Scorer.cc | 75 + .../B02/src/B02ScoringDetectorConstruction.cc | 170 + examples/extended/biasing/B03/GNUmakefile | 18 + examples/extended/biasing/B03/exampleB03.cc | 82 + examples/extended/biasing/B03/exampleB03.out | 144 + .../B03/include/B03DetectorConstruction.hh | 50 + .../biasing/B03/include/B03PhysicsList.hh | 64 + .../B03/include/B03PrimaryGeneratorAction.hh | 49 + examples/extended/biasing/B03/init.mac | 4 + .../B03/src/B03DetectorConstruction.cc | 240 + .../biasing/B03/src/B03PhysicsList.cc | 633 + .../B03/src/B03PrimaryGeneratorAction.cc | 55 + examples/extended/biasing/B04/GNUmakefile | 18 + examples/extended/biasing/B04/exampleB04.cc | 81 + examples/extended/biasing/B04/exampleB04.out | 140 + .../B04/include/B04DetectorConstruction.hh | 44 + .../B04ImportanceDetectorConstruction.hh | 51 + .../biasing/B04/include/B04PhysicsList.hh | 63 + .../B04/include/B04PrimaryGeneratorAction.hh | 49 + .../B04/src/B04DetectorConstruction.cc | 213 + .../src/B04ImportanceDetectorConstruction.cc | 189 + .../biasing/B04/src/B04PhysicsList.cc | 633 + .../B04/src/B04PrimaryGeneratorAction.cc | 55 + examples/extended/biasing/B05/GNUmakefile | 18 + examples/extended/biasing/B05/exampleB05.cc | 94 + examples/extended/biasing/B05/exampleB05.out | 391 + .../B05/include/B05DetectorConstruction.hh | 50 + .../biasing/B05/include/B05PhysicsList.hh | 66 + .../B05/include/B05PrimaryGeneratorAction.hh | 48 + examples/extended/biasing/B05/init.mac | 5 + .../B05/src/B05DetectorConstruction.cc | 242 + .../biasing/B05/src/B05PhysicsList.cc | 633 + .../B05/src/B05PrimaryGeneratorAction.cc | 55 + examples/extended/biasing/B06/GNUmakefile | 18 + examples/extended/biasing/B06/exampleB06.cc | 99 + examples/extended/biasing/B06/exampleB06.out | 439 + .../B06/include/B06DetectorConstruction.hh | 44 + .../B06ImportanceDetectorConstruction.hh | 50 + .../biasing/B06/include/B06PhysicsList.hh | 63 + .../B06/include/B06PrimaryGeneratorAction.hh | 49 + .../biasing/B06/include/B06ScorePrinter.hh | 52 + .../extended/biasing/B06/include/B06Scorer.hh | 57 + .../B06/src/B06DetectorConstruction.cc | 211 + .../src/B06ImportanceDetectorConstruction.cc | 189 + .../biasing/B06/src/B06PhysicsList.cc | 633 + .../B06/src/B06PrimaryGeneratorAction.cc | 55 + .../biasing/B06/src/B06ScorePrinter.cc | 140 + .../extended/biasing/B06/src/B06Scorer.cc | 110 + examples/extended/biasing/B07/GNUmakefile | 18 + examples/extended/biasing/B07/exampleB07.cc | 101 + examples/extended/biasing/B07/exampleB07.out | 721 + .../B07/include/B07DetectorConstruction.hh | 44 + .../B07ImportanceDetectorConstruction.hh | 51 + .../biasing/B07/include/B07PhysicsList.hh | 63 + .../B07/include/B07PrimaryGeneratorAction.hh | 49 + .../B07/src/B07DetectorConstruction.cc | 210 + .../src/B07ImportanceDetectorConstruction.cc | 189 + .../biasing/B07/src/B07PhysicsList.cc | 366 + .../B07/src/B07PrimaryGeneratorAction.cc | 55 + .../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 + .../B08/include/B08DetectorConstruction.hh | 44 + .../B08ImportanceDetectorConstruction.hh | 53 + .../B08/include/B08ImportanceMessenger.hh | 77 + .../biasing/B08/include/B08MainMessenger.hh | 64 + .../biasing/B08/include/B08PhysicsList.hh | 63 + .../B08/include/B08PrimaryGeneratorAction.hh | 49 + .../biasing/B08/include/B08ScorePrinter.hh | 56 + .../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 | 23 + examples/extended/biasing/History | 57 + examples/extended/biasing/README | 154 + .../electromagnetic/TestEm1/GNUmakefile | 7 +- .../extended/electromagnetic/TestEm1/History | 20 +- .../extended/electromagnetic/TestEm1/README | 32 +- .../electromagnetic/TestEm1/TestEm1.cc | 6 +- .../electromagnetic/TestEm1/TestEm1.in | 6 +- .../electromagnetic/TestEm1/TestEm1.out | 46 +- .../electromagnetic/TestEm1/geant3/phot.dat | 19 + .../TestEm1/geant3/src/gukine.F | 16 +- .../TestEm1/geant3/src/ugeom.F | 2 +- .../TestEm1/geant3/src/uglast.F | 2 +- .../include/Em1DetectorConstruction.hh | 6 +- .../TestEm1/include/Em1DetectorMessenger.hh | 2 +- .../TestEm1/include/Em1EventAction.hh | 2 +- .../include/Em1EventActionMessenger.hh | 2 +- .../TestEm1/include/Em1PhysicsList.hh | 6 +- .../include/Em1PhysicsListMessenger.hh | 5 +- .../include/Em1PrimaryGeneratorAction.hh | 15 +- .../include/Em1PrimaryGeneratorMessenger.hh | 61 + .../TestEm1/include/Em1RunAction.hh | 14 +- .../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 | 28 + .../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 | 6 +- .../electromagnetic/TestEm1/run11.mac | 6 +- .../TestEm1/src/Em1DetectorConstruction.cc | 14 +- .../TestEm1/src/Em1DetectorMessenger.cc | 2 +- .../TestEm1/src/Em1EventAction.cc | 2 +- .../TestEm1/src/Em1EventActionMessenger.cc | 2 +- .../TestEm1/src/Em1PhysicsList.cc | 69 +- .../TestEm1/src/Em1PhysicsListMessenger.cc | 46 +- .../TestEm1/src/Em1PrimaryGeneratorAction.cc | 62 +- .../src/Em1PrimaryGeneratorMessenger.cc | 80 + .../TestEm1/src/Em1RunAction.cc | 73 +- .../TestEm1/src/Em1SteppingAction.cc | 8 +- .../TestEm1/src/Em1SteppingVerbose.cc | 2 +- .../TestEm1/src/Em1TrackingAction.cc | 10 +- .../TestEm1/src/Em1VisManager.cc | 2 +- .../extended/electromagnetic/TestEm10/History | 5 +- .../electromagnetic/TestEm10/TestEm10.cc | 2 +- .../electromagnetic/TestEm10/TestEm10.in | 32 +- .../TestEm10/TestEm10.large_N.in | 37 +- .../TestEm10/TestEm10.large_N.out | 2 +- .../electromagnetic/TestEm10/TestEm10.out | 1026 +- .../electromagnetic/TestEm10/elps.kumac | 7 + .../TestEm10/include/Em10CalorHit.hh | 2 +- .../TestEm10/include/Em10CalorimeterSD.hh | 2 +- .../include/Em10DetectorConstruction.hh | 67 +- .../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 +- .../electromagnetic/TestEm10/plot.kumac | 7 + .../electromagnetic/TestEm10/run11.mac | 34 +- .../TestEm10/src/Em10CalorHit.cc | 2 +- .../TestEm10/src/Em10CalorimeterSD.cc | 2 +- .../TestEm10/src/Em10DetectorConstruction.cc | 162 +- .../TestEm10/src/Em10DetectorMessenger.cc | 2 +- .../TestEm10/src/Em10EventAction.cc | 2 +- .../TestEm10/src/Em10EventActionMessenger.cc | 2 +- .../TestEm10/src/Em10PhysicsList.cc | 28 +- .../TestEm10/src/Em10PhysicsListMessenger.cc | 2 +- .../src/Em10PrimaryGeneratorAction.cc | 7 +- .../src/Em10PrimaryGeneratorMessenger.cc | 2 +- .../TestEm10/src/Em10RunAction.cc | 2 +- .../TestEm10/src/Em10RunMessenger.cc | 2 +- .../TestEm10/src/Em10StepCut.cc | 2 +- .../TestEm10/src/Em10SteppingAction.cc | 2 +- .../TestEm10/src/Em10SteppingMessenger.cc | 2 +- .../TestEm10/src/Em10SteppingVerbose.cc | 108 +- .../TestEm10/src/Em10VisManager.cc | 2 +- .../electromagnetic/TestEm2/GNUmakefile | 7 +- .../extended/electromagnetic/TestEm2/History | 8 +- .../extended/electromagnetic/TestEm2/README | 26 +- .../electromagnetic/TestEm2/TestEm2.cc | 2 +- .../electromagnetic/TestEm2/TestEm2.out | 52 +- .../include/Em2DetectorConstruction.hh | 2 +- .../TestEm2/include/Em2DetectorMessenger.hh | 2 +- .../TestEm2/include/Em2EventAction.hh | 2 +- .../include/Em2EventActionMessenger.hh | 2 +- .../TestEm2/include/Em2PhysicsList.hh | 2 +- .../include/Em2PhysicsListMessenger.hh | 2 +- .../include/Em2PrimaryGeneratorAction.hh | 2 +- .../TestEm2/include/Em2RunAction.hh | 17 +- .../TestEm2/include/Em2SteppingAction.hh | 2 +- .../TestEm2/include/Em2SteppingVerbose.hh | 2 +- .../TestEm2/include/Em2TrackingAction.hh | 2 +- .../TestEm2/include/Em2VisManager.hh | 2 +- .../electromagnetic/TestEm2/run01.mac | 7 +- .../TestEm2/src/Em2DetectorConstruction.cc | 2 +- .../TestEm2/src/Em2DetectorMessenger.cc | 2 +- .../TestEm2/src/Em2EventAction.cc | 2 +- .../TestEm2/src/Em2EventActionMessenger.cc | 2 +- .../TestEm2/src/Em2PhysicsList.cc | 2 +- .../TestEm2/src/Em2PhysicsListMessenger.cc | 2 +- .../TestEm2/src/Em2PrimaryGeneratorAction.cc | 2 +- .../TestEm2/src/Em2RunAction.cc | 95 +- .../TestEm2/src/Em2SteppingAction.cc | 2 +- .../TestEm2/src/Em2SteppingVerbose.cc | 2 +- .../TestEm2/src/Em2TrackingAction.cc | 2 +- .../TestEm2/src/Em2VisManager.cc | 2 +- .../electromagnetic/TestEm3/GNUmakefile | 7 +- .../extended/electromagnetic/TestEm3/History | 39 +- .../extended/electromagnetic/TestEm3/README | 25 +- .../electromagnetic/TestEm3/TestEm3.cc | 2 +- .../electromagnetic/TestEm3/TestEm3.out | 20 +- .../electromagnetic/TestEm3/exo3q1.mac | 33 + .../electromagnetic/TestEm3/exo3q2.mac | 44 + .../electromagnetic/TestEm3/exo3q3.mac | 43 + .../electromagnetic/TestEm3/exo4q1.mac | 35 + .../electromagnetic/TestEm3/exo4q3.mac | 39 + .../electromagnetic/TestEm3/exo5q1.mac | 26 + .../electromagnetic/TestEm3/exo5q2.mac | 25 + .../electromagnetic/TestEm3/exo6q1.mac | 33 + .../electromagnetic/TestEm3/exo6q2.mac | 32 + .../TestEm3/include/Em3CalorHit.hh | 2 +- .../TestEm3/include/Em3CalorimeterSD.hh | 2 +- .../include/Em3DetectorConstruction.hh | 2 +- .../TestEm3/include/Em3DetectorMessenger.hh | 2 +- .../TestEm3/include/Em3EventAction.hh | 2 +- .../include/Em3EventActionMessenger.hh | 2 +- .../TestEm3/include/Em3PhysicsList.hh | 7 +- .../include/Em3PhysicsListMessenger.hh | 2 +- .../include/Em3PrimaryGeneratorAction.hh | 2 +- .../include/Em3PrimaryGeneratorMessenger.hh | 2 +- .../TestEm3/include/Em3RunAction.hh | 16 +- .../TestEm3/include/Em3RunActionMessenger.hh | 2 +- .../TestEm3/include/Em3SteppingAction.hh | 2 +- .../TestEm3/include/Em3SteppingVerbose.hh | 2 +- .../TestEm3/include/Em3VisManager.hh | 2 +- .../electromagnetic/TestEm3/run07.mac | 4 +- .../TestEm3/src/Em3CalorHit.cc | 2 +- .../TestEm3/src/Em3CalorimeterSD.cc | 2 +- .../TestEm3/src/Em3DetectorConstruction.cc | 2 +- .../TestEm3/src/Em3DetectorMessenger.cc | 2 +- .../TestEm3/src/Em3EventAction.cc | 8 +- .../TestEm3/src/Em3EventActionMessenger.cc | 2 +- .../TestEm3/src/Em3PhysicsList.cc | 11 +- .../TestEm3/src/Em3PhysicsListMessenger.cc | 2 +- .../TestEm3/src/Em3PrimaryGeneratorAction.cc | 2 +- .../src/Em3PrimaryGeneratorMessenger.cc | 2 +- .../TestEm3/src/Em3RunAction.cc | 66 +- .../TestEm3/src/Em3RunActionMessenger.cc | 2 +- .../TestEm3/src/Em3SteppingAction.cc | 2 +- .../TestEm3/src/Em3SteppingVerbose.cc | 2 +- .../TestEm3/src/Em3VisManager.cc | 2 +- .../electromagnetic/TestEm4/GNUmakefile | 7 +- .../extended/electromagnetic/TestEm4/History | 13 +- .../extended/electromagnetic/TestEm4/README | 26 +- .../electromagnetic/TestEm4/TestEm4.cc | 2 +- .../electromagnetic/TestEm4/TestEm4.out | 16 +- .../electromagnetic/TestEm4/geant3/run01.dat | 2 +- .../TestEm4/geant3/src/gukine.F | 11 +- .../include/Em4DetectorConstruction.hh | 2 +- .../TestEm4/include/Em4EventAction.hh | 2 +- .../include/Em4EventActionMessenger.hh | 2 +- .../TestEm4/include/Em4PhysicsList.hh | 2 +- .../include/Em4PrimaryGeneratorAction.hh | 2 +- .../TestEm4/include/Em4RunAction.hh | 17 +- .../TestEm4/include/Em4SteppingAction.hh | 2 +- .../TestEm4/include/Em4SteppingVerbose.hh | 2 +- .../TestEm4/include/Em4VisManager.hh | 2 +- .../TestEm4/src/Em4DetectorConstruction.cc | 2 +- .../TestEm4/src/Em4EventAction.cc | 8 +- .../TestEm4/src/Em4EventActionMessenger.cc | 2 +- .../TestEm4/src/Em4PhysicsList.cc | 2 +- .../TestEm4/src/Em4PrimaryGeneratorAction.cc | 15 +- .../TestEm4/src/Em4RunAction.cc | 45 +- .../TestEm4/src/Em4SteppingAction.cc | 2 +- .../TestEm4/src/Em4SteppingVerbose.cc | 2 +- .../TestEm4/src/Em4VisManager.cc | 2 +- .../electromagnetic/TestEm5/GNUmakefile | 7 +- .../extended/electromagnetic/TestEm5/History | 15 +- .../extended/electromagnetic/TestEm5/README | 31 +- .../electromagnetic/TestEm5/TestEm5.cc | 2 +- .../electromagnetic/TestEm5/TestEm5.in | 4 +- .../electromagnetic/TestEm5/TestEm5.out | 103 +- .../TestEm5/geant3/src/gukine.F | 23 +- .../TestEm5/geant3/src/uhinit.F | 4 +- .../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 | 5 +- .../include/Em5PhysicsListMessenger.hh | 5 +- .../include/Em5PrimaryGeneratorAction.hh | 11 +- .../include/Em5PrimaryGeneratorMessenger.hh | 6 +- .../TestEm5/include/Em5RunAction.hh | 68 +- .../TestEm5/include/Em5RunMessenger.hh | 2 +- .../TestEm5/include/Em5StepCut.hh | 2 +- .../TestEm5/include/Em5SteppingAction.hh | 9 +- .../TestEm5/include/Em5SteppingMessenger.hh | 2 +- .../TestEm5/include/Em5SteppingVerbose.hh | 2 +- .../TestEm5/include/Em5VisManager.hh | 2 +- .../electromagnetic/TestEm5/run01.mac | 4 +- .../electromagnetic/TestEm5/run01a.mac | 4 +- .../electromagnetic/TestEm5/run02.mac | 4 +- .../electromagnetic/TestEm5/run02a.mac | 4 +- .../electromagnetic/TestEm5/run03.mac | 4 +- .../electromagnetic/TestEm5/run04.mac | 4 +- .../electromagnetic/TestEm5/run05.mac | 4 +- .../electromagnetic/TestEm5/run11.mac | 4 +- .../electromagnetic/TestEm5/run12.mac | 4 +- .../electromagnetic/TestEm5/run13.mac | 4 +- .../electromagnetic/TestEm5/run14.mac | 4 +- .../electromagnetic/TestEm5/run15.mac | 4 +- .../electromagnetic/TestEm5/run16.mac | 4 +- .../electromagnetic/TestEm5/run17.mac | 4 +- .../electromagnetic/TestEm5/run18.mac | 4 +- .../electromagnetic/TestEm5/run19.mac | 4 +- .../electromagnetic/TestEm5/run20.mac | 4 +- .../electromagnetic/TestEm5/run21.mac | 4 +- .../electromagnetic/TestEm5/run22.mac | 4 +- .../electromagnetic/TestEm5/run55.mac | 4 +- .../TestEm5/src/Em5CalorHit.cc | 2 +- .../TestEm5/src/Em5CalorimeterSD.cc | 2 +- .../TestEm5/src/Em5DetectorConstruction.cc | 2 +- .../TestEm5/src/Em5DetectorMessenger.cc | 2 +- .../TestEm5/src/Em5EventAction.cc | 26 +- .../TestEm5/src/Em5EventActionMessenger.cc | 2 +- .../TestEm5/src/Em5PhysicsList.cc | 46 +- .../TestEm5/src/Em5PhysicsListMessenger.cc | 46 +- .../TestEm5/src/Em5PrimaryGeneratorAction.cc | 44 +- .../src/Em5PrimaryGeneratorMessenger.cc | 18 +- .../TestEm5/src/Em5RunAction.cc | 865 +- .../TestEm5/src/Em5RunMessenger.cc | 2 +- .../TestEm5/src/Em5SteppingAction.cc | 77 +- .../TestEm5/src/Em5SteppingMessenger.cc | 2 +- .../TestEm5/src/Em5SteppingVerbose.cc | 2 +- .../TestEm5/src/Em5VisManager.cc | 2 +- .../electromagnetic/TestEm6/GNUmakefile | 32 + .../extended/electromagnetic/TestEm6/History | 22 + .../extended/electromagnetic/TestEm6/README | 136 + .../electromagnetic/TestEm6/TestEm6.cc | 107 + .../electromagnetic/TestEm6/TestEm6.in | 21 + .../TestEm6/include/DetectorConstruction.hh | 96 + .../TestEm6/include/DetectorMessenger.hh | 70 + .../TestEm6/include/EventAction.hh | 66 + .../TestEm6/include/EventActionMessenger.hh | 60 + .../TestEm6/include/PhysicsList.hh | 71 + .../TestEm6/include/PhysicsListMessenger.hh | 58 + .../TestEm6/include/PrimaryGeneratorAction.hh | 66 + .../include/PrimaryGeneratorMessenger.hh | 59 + .../TestEm6/include/RunAction.hh | 76 + .../TestEm6/include/SteppingAction.hh | 55 + .../TestEm6/include/SteppingVerbose.hh | 55 + .../TestEm6/include/VisManager.hh | 68 + .../electromagnetic/TestEm6/run01.mac | 13 + .../electromagnetic/TestEm6/run02.mac | 21 + .../TestEm6/src/DetectorConstruction.cc | 212 + .../TestEm6/src/DetectorMessenger.cc | 113 + .../TestEm6/src/EventAction.cc | 92 + .../TestEm6/src/EventActionMessenger.cc | 80 + .../TestEm6/src/PhysicsList.cc | 212 + .../TestEm6/src/PhysicsListMessenger.cc | 69 + .../TestEm6/src/PrimaryGeneratorAction.cc | 92 + .../TestEm6/src/PrimaryGeneratorMessenger.cc | 68 + .../electromagnetic/TestEm6/src/RunAction.cc | 139 + .../TestEm6/src/SteppingAction.cc | 100 + .../TestEm6/src/SteppingVerbose.cc | 176 + .../electromagnetic/TestEm6/src/VisManager.cc | 153 + .../extended/electromagnetic/TestEm6/vis.mac | 37 + .../electromagnetic/TestEm8/TestEm8.cc | 2 +- .../electromagnetic/TestEm8/TestEm8.out | 48 +- .../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 | 2 +- .../TestEm8/src/Em8EventAction.cc | 2 +- .../TestEm8/src/Em8EventActionMessenger.cc | 2 +- .../TestEm8/src/Em8PhysicsList.cc | 2 +- .../TestEm8/src/Em8PhysicsListMessenger.cc | 2 +- .../TestEm8/src/Em8PrimaryGeneratorAction.cc | 2 +- .../src/Em8PrimaryGeneratorMessenger.cc | 2 +- .../TestEm8/src/Em8RunAction.cc | 2 +- .../TestEm8/src/Em8RunMessenger.cc | 2 +- .../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 | 2 +- .../HepMC/HepMCEx01/GNUmakefile | 75 + .../eventgenerator/HepMC/HepMCEx01/History | 99 + .../eventgenerator/HepMC/HepMCEx01/README | 52 + .../HepMC/HepMCEx01/data/GNUmakefile | 26 + .../HepMC/HepMCEx01/data/example_MyPythia.cxx | 114 + .../HepMC/HepMCEx01/data/example_MyPythia.dat | 5892 ++++ .../HepMC/HepMCEx01/external/GNUmakefile | 13 + .../HepMC/HepMCEx01/external/initpydata.f | 11 + .../HepMC/HepMCEx01/hepmcEx01.cc | 85 + .../HepMC/HepMCEx01/hepmc_ascii.in | 5 + .../HepMC/HepMCEx01/hepmc_ascii.out | 2077 ++ .../HepMC/HepMCEx01/hepmc_pygen.in | 7 + .../HepMC/HepMCEx01/hepmc_pygen.out | 259 + .../HepMCEx01/include/ExN04CalorimeterHit.hh} | 94 +- .../ExN04CalorimeterParametrisation.hh | 53 + .../include/ExN04CalorimeterROGeometry.hh | 42 + .../HepMCEx01/include/ExN04CalorimeterSD.hh} | 37 +- .../include/ExN04DetectorConstruction.hh | 48 + .../include/ExN04DetectorParameterDef.hh | 69 + .../HepMC/HepMCEx01/include/ExN04DummySD.hh | 50 + .../HepMC/HepMCEx01/include/ExN04EMPhysics.hh | 93 + .../HepMCEx01/include/ExN04EventAction.hh | 48 + .../HepMC/HepMCEx01/include/ExN04Field.hh | 46 + .../HepMCEx01/include/ExN04GeneralPhysics.hh | 77 + .../HepMCEx01/include/ExN04HadronPhysics.hh | 331 + .../HepMCEx01/include/ExN04IonPhysics.hh | 111 + .../HepMC/HepMCEx01/include/ExN04MuonHit.hh | 85 + .../HepMCEx01/include/ExN04MuonPhysics.hh | 93 + .../HepMC/HepMCEx01/include/ExN04MuonSD.hh | 57 + .../HepMCEx01/include/ExN04PhysicsList.hh | 46 + .../include/ExN04PrimaryGeneratorAction.hh | 94 + .../include/ExN04PrimaryGeneratorMessenger.hh | 60 + .../HepMCEx01/include/ExN04StackingAction.hh | 74 + .../include/ExN04StackingActionMessenger.hh | 57 + .../HepMCEx01/include/ExN04SteppingAction.hh | 40 + .../HepMCEx01/include/ExN04TrackerHit.hh | 82 + .../include/ExN04TrackerParametrisation.hh | 53 + .../HepMC/HepMCEx01/include/ExN04TrackerSD.hh | 57 + .../HepMCEx01/include/ExN04TrackingAction.hh | 40 + .../HepMCEx01/include/HepMCG4AsciiReader.hh | 86 + .../include/HepMCG4AsciiReaderMessenger.hh | 56 + .../HepMCEx01/include/HepMCG4Interface.hh | 79 + .../include/HepMCG4PythiaInterface.hh | 105 + .../include/HepMCG4PythiaMessenger.hh | 65 + .../eventgenerator/HepMC/HepMCEx01/pyh4mu.mac | 47 + .../eventgenerator/HepMC/HepMCEx01/pyset.mac | 4 + .../HepMCEx01/src/ExN04CalorimeterHit.cc | 89 + .../src/ExN04CalorimeterParametrisation.cc | 58 + .../src/ExN04CalorimeterROGeometry.cc | 109 + .../HepMC/HepMCEx01/src/ExN04CalorimeterSD.cc | 115 + .../src/ExN04DetectorConstruction.cc | 262 + .../src/ExN04DetectorParameterDef.icc | 76 + .../HepMC/HepMCEx01/src/ExN04EMPhysics.cc | 111 + .../HepMC/HepMCEx01/src/ExN04EventAction.cc | 105 + .../HepMC/HepMCEx01/src/ExN04Field.cc | 45 + .../HepMCEx01/src/ExN04GeneralPhysics.cc | 73 + .../HepMC/HepMCEx01/src/ExN04HadronPhysics.cc | 428 + .../HepMC/HepMCEx01/src/ExN04IonPhysics.cc | 140 + .../HepMC/HepMCEx01/src/ExN04MuonHit.cc | 75 + .../HepMC/HepMCEx01/src/ExN04MuonPhysics.cc | 128 + .../HepMC/HepMCEx01/src/ExN04MuonSD.cc | 94 + .../HepMC/HepMCEx01/src/ExN04PhysicsList.cc | 86 + .../src/ExN04PrimaryGeneratorAction.cc | 70 + .../src/ExN04PrimaryGeneratorMessenger.cc | 94 + .../HepMCEx01/src/ExN04StackingAction.cc | 203 + .../src/ExN04StackingActionMessenger.cc | 93 + .../HepMCEx01/src/ExN04SteppingAction.cc | 70 + .../HepMC/HepMCEx01/src/ExN04TrackerHit.cc | 75 + .../src/ExN04TrackerParametrisation.cc | 56 + .../HepMC/HepMCEx01/src/ExN04TrackerSD.cc | 77 + .../HepMCEx01/src/ExN04TrackingAction.cc | 38 + .../HepMC/HepMCEx01/src/HEPEvtcom.cc | 81 + .../HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc | 74 + .../src/HepMCG4AsciiReaderMessenger.cc | 97 + .../HepMC/HepMCEx01/src/HepMCG4Interface.cc | 141 + .../HepMCEx01/src/HepMCG4PythiaInterface.cc | 161 + .../HepMCEx01/src/HepMCG4PythiaMessenger.cc | 212 + .../HepMC/HepMCEx02/GNUmakefile | 75 + .../eventgenerator/HepMC/HepMCEx02/History | 23 + .../eventgenerator/HepMC/HepMCEx02/README | 42 + .../HepMC/HepMCEx02/data/GNUmakefile | 26 + .../HepMC/HepMCEx02/data/example_MyPythia.cxx | 114 + .../HepMC/HepMCEx02/data/example_MyPythia.dat | 5892 ++++ .../HepMC/HepMCEx02/external/GNUmakefile | 13 + .../HepMC/HepMCEx02/external/initpydata.f | 11 + .../HepMC/HepMCEx02/hepmcEx02.cc | 102 + .../HepMC/HepMCEx02/hepmc_ascii.in | 5 + .../HepMC/HepMCEx02/hepmc_ascii.out | 2108 ++ .../HepMC/HepMCEx02/hepmc_pygen.in | 4 + .../HepMC/HepMCEx02/hepmc_pygen.out | 421 + .../include/H02DetectorConstruction.hh | 44 + .../HepMC/HepMCEx02/include/H02EMPhysics.hh | 88 + .../HepMC/HepMCEx02/include/H02EventAction.hh | 43 + .../HepMC/HepMCEx02/include/H02Field.hh | 45 + .../HepMCEx02/include/H02GeneralPhysics.hh | 87 +- .../HepMCEx02/include/H02HadronPhysics.hh | 331 + .../HepMC/HepMCEx02/include/H02IonPhysics.hh | 111 + .../HepMC/HepMCEx02/include/H02MuonHit.hh | 114 + .../HepMC/HepMCEx02/include/H02MuonPhysics.hh | 93 + .../HepMC/HepMCEx02/include/H02MuonSD.hh | 56 + .../HepMC/HepMCEx02/include/H02PhysicsList.hh | 46 + .../include/H02PrimaryGeneratorAction.hh | 93 + .../include/H02PrimaryGeneratorMessenger.hh | 59 + .../HepMCEx02/include/H02SteppingAction.hh | 42 + .../HepMC/HepMCEx02/include/H02VisManager.hh | 44 + .../HepMCEx02/include/HepMCG4AsciiReader.hh | 86 + .../include/HepMCG4AsciiReaderMessenger.hh | 56 + .../HepMCEx02/include/HepMCG4Interface.hh | 79 + .../include/HepMCG4PythiaInterface.hh | 105 + .../include/HepMCG4PythiaMessenger.hh | 65 + .../eventgenerator/HepMC/HepMCEx02/pyh4mu.mac | 47 + .../eventgenerator/HepMC/HepMCEx02/pyset.mac | 4 + .../HepMCEx02/src/H02DetectorConstruction.cc | 259 + .../HepMC/HepMCEx02/src/H02EMPhysics.cc | 111 + .../HepMC/HepMCEx02/src/H02EventAction.cc | 81 + .../HepMC/HepMCEx02/src/H02Field.cc | 48 + .../HepMC/HepMCEx02/src/H02GeneralPhysics.cc | 73 + .../HepMC/HepMCEx02/src/H02HadronPhysics.cc | 428 + .../HepMC/HepMCEx02/src/H02IonPhysics.cc | 140 + .../HepMC/HepMCEx02/src/H02MuonHit.cc | 125 + .../HepMC/HepMCEx02/src/H02MuonPhysics.cc | 128 + .../HepMC/HepMCEx02/src/H02MuonSD.cc | 119 + .../HepMC/HepMCEx02/src/H02PhysicsList.cc | 86 + .../src/H02PrimaryGeneratorAction.cc | 70 + .../src/H02PrimaryGeneratorMessenger.cc | 97 + .../HepMC/HepMCEx02/src/H02SteppingAction.cc | 72 + .../HepMC/HepMCEx02/src/H02VisManager.cc | 170 + .../HepMC/HepMCEx02/src/HEPEvtcom.cc | 81 + .../HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc | 74 + .../src/HepMCG4AsciiReaderMessenger.cc | 97 + .../HepMC/HepMCEx02/src/HepMCG4Interface.cc | 141 + .../HepMCEx02/src/HepMCG4PythiaInterface.cc | 161 + .../HepMCEx02/src/HepMCG4PythiaMessenger.cc | 212 + .../extended/eventgenerator/HepMC/History | 23 + examples/extended/eventgenerator/HepMC/README | 86 + examples/extended/field/field01/field01.cc | 2 +- examples/extended/field/field01/field01.out | 21 +- .../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 | 2 +- .../field01/src/F01ElectroMagneticField.cc | 2 +- .../field/field01/src/F01EventAction.cc | 2 +- .../field01/src/F01EventActionMessenger.cc | 2 +- .../field/field01/src/F01FieldMessenger.cc | 2 +- .../field/field01/src/F01PhysicsList.cc | 2 +- .../field01/src/F01PhysicsListMessenger.cc | 2 +- .../field01/src/F01PrimaryGeneratorAction.cc | 2 +- .../src/F01PrimaryGeneratorMessenger.cc | 2 +- .../field/field01/src/F01RunAction.cc | 2 +- .../field/field01/src/F01RunMessenger.cc | 2 +- .../extended/field/field01/src/F01StepCut.cc | 2 +- .../field/field01/src/F01SteppingAction.cc | 2 +- .../field/field01/src/F01SteppingMessenger.cc | 2 +- .../field/field01/src/F01SteppingVerbose.cc | 2 +- .../field/field01/src/F01VisManager.cc | 2 +- examples/extended/field/field02/README | 6 +- examples/extended/field/field02/field02.cc | 2 +- examples/extended/field/field02/field02.out | 5774 ++-- .../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 | 2 +- .../field02/src/F02ElectroMagneticField.cc | 2 +- .../field/field02/src/F02EventAction.cc | 2 +- .../field02/src/F02EventActionMessenger.cc | 2 +- .../field/field02/src/F02FieldMessenger.cc | 2 +- .../field/field02/src/F02PhysicsList.cc | 2 +- .../field02/src/F02PhysicsListMessenger.cc | 2 +- .../field02/src/F02PrimaryGeneratorAction.cc | 2 +- .../src/F02PrimaryGeneratorMessenger.cc | 2 +- .../field/field02/src/F02RunAction.cc | 2 +- .../field/field02/src/F02RunMessenger.cc | 2 +- .../extended/field/field02/src/F02StepCut.cc | 2 +- .../field/field02/src/F02SteppingAction.cc | 2 +- .../field/field02/src/F02SteppingMessenger.cc | 2 +- .../field/field02/src/F02SteppingVerbose.cc | 2 +- .../field/field02/src/F02VisManager.cc | 2 +- examples/extended/field/field03/field03.cc | 2 +- examples/extended/field/field03/field03.out | 1321 +- .../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 | 2 +- .../field03/src/F03ElectroMagneticField.cc | 2 +- .../field/field03/src/F03EventAction.cc | 2 +- .../field03/src/F03EventActionMessenger.cc | 2 +- .../field/field03/src/F03FieldMessenger.cc | 2 +- .../field/field03/src/F03PhysicsList.cc | 2 +- .../field03/src/F03PhysicsListMessenger.cc | 2 +- .../field03/src/F03PrimaryGeneratorAction.cc | 2 +- .../src/F03PrimaryGeneratorMessenger.cc | 2 +- .../field/field03/src/F03RunAction.cc | 2 +- .../field/field03/src/F03RunMessenger.cc | 2 +- .../extended/field/field03/src/F03StepCut.cc | 2 +- .../field/field03/src/F03SteppingAction.cc | 2 +- .../field/field03/src/F03SteppingMessenger.cc | 2 +- .../field/field03/src/F03SteppingVerbose.cc | 2 +- .../field/field03/src/F03VisManager.cc | 2 +- .../extended/g3tog4/clGeometry/clGeometry.cc | 2 +- .../extended/g3tog4/clGeometry/clGeometry.out | 14 +- .../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 | 2 +- .../clGeometry/src/G3toG4PhysicsList.cc | 2 +- .../src/G3toG4PrimaryGeneratorAction.cc | 2 +- .../g3tog4/clGeometry/src/G3toG4RunAction.cc | 2 +- .../g3tog4/clGeometry/src/G3toG4VisManager.cc | 2 +- examples/extended/g3tog4/cltog4/cltog4.cc | 2 +- examples/extended/g3tog4/cltog4/cltog4.out | 20 +- .../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 | 2 +- .../g3tog4/cltog4/src/G3toG4PhysicsList.cc | 2 +- .../src/G3toG4PrimaryGeneratorAction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4RunAction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4VisManager.cc | 2 +- examples/extended/gdml/GNUmakefile | 16 + examples/extended/gdml/History | 24 + examples/extended/gdml/INSTALL | 41 + examples/extended/gdml/N03gdml/GNUmakefile | 56 + examples/extended/gdml/N03gdml/NO3.gdml | 132 + examples/extended/gdml/N03gdml/NO3gogdml.cc | 135 + examples/extended/gdml/N03gdml/README | 150 + examples/extended/gdml/N03gdml/exampleN03.err | 0 examples/extended/gdml/N03gdml/exampleN03.in | 28 + .../gdml/N03gdml/exampleN03.large_N.in | 30 + examples/extended/gdml/N03gdml/exampleN03.out | 218 + .../extended/gdml/N03gdml/exampleN03gdml.in | 27 + .../gdml/N03gdml/exampleN03gdml.large_N.in | 30 + examples/extended/gdml/N03gdml/exo1.mac | 35 + examples/extended/gdml/N03gdml/exo2.mac | 35 + .../gdml/N03gdml/include/ExN03CalorHit.hh | 99 + .../N03gdml/include/ExN03CalorimeterSD.hh | 67 + .../include/ExN03DetectorConstruction.hh | 75 + .../N03gdml/include/ExN03DetectorMessenger.hh | 76 + .../gdml/N03gdml/include/ExN03EventAction.hh | 66 + .../include/ExN03EventActionMessenger.hh | 60 + .../gdml/N03gdml/include/ExN03PhysicsList.hh | 72 + .../include/ExN03PrimaryGeneratorAction.hh | 67 + .../include/ExN03PrimaryGeneratorMessenger.hh | 59 + .../gdml/N03gdml/include/ExN03RunAction.hh | 57 + .../N03gdml/include/ExN03SteppingAction.hh | 50 + .../N03gdml/include/ExN03SteppingVerbose.hh | 54 + .../gdml/N03gdml/include/ExN03VisManager.hh | 72 + examples/extended/gdml/N03gdml/newgeom.mac | 24 + examples/extended/gdml/N03gdml/run1.mac | 20 + examples/extended/gdml/N03gdml/run2.mac | 28 + .../gdml/N03gdml/src/ExN03CalorHit.cc | 84 + .../gdml/N03gdml/src/ExN03CalorimeterSD.cc | 139 + .../N03gdml/src/ExN03DetectorConstruction.cc | 149 + .../N03gdml/src/ExN03DetectorMessenger.cc | 171 + .../gdml/N03gdml/src/ExN03EventAction.cc | 153 + .../N03gdml/src/ExN03EventActionMessenger.cc | 79 + .../gdml/N03gdml/src/ExN03PhysicsList.cc | 316 + .../src/ExN03PrimaryGeneratorAction.cc | 96 + .../src/ExN03PrimaryGeneratorMessenger.cc | 69 + .../gdml/N03gdml/src/ExN03RunAction.cc | 72 + .../gdml/N03gdml/src/ExN03SteppingAction.cc | 52 + .../gdml/N03gdml/src/ExN03SteppingVerbose.cc | 177 + .../gdml/N03gdml/src/ExN03VisManager.cc | 153 + examples/extended/gdml/N03gdml/vis.mac | 27 + .../extended/gdml/N03gdml/visTutor/History | 22 + .../gdml/N03gdml/visTutor/exN03Tree0.mac | 59 + .../gdml/N03gdml/visTutor/exN03Tree1.mac | 63 + .../gdml/N03gdml/visTutor/exN03Vis0.mac | 108 + .../gdml/N03gdml/visTutor/exN03Vis1.mac | 164 + .../gdml/N03gdml/visTutor/exN03Vis2.mac | 127 + .../gdml/N03gdml/visTutor/exN03Vis3.mac | 136 + .../gdml/N03gdml/visTutor/exN03Vis4.mac | 105 + .../gdml/N03gdml/visTutor/exN03Vis5.mac | 69 + .../gdml/N03gdml/visTutor/exN03Vis6.mac | 65 + .../gdml/N03gdml/visTutor/exN03Vis7.mac | 68 + .../gdml/N03gdml/visTutor/exN03Vis8.mac | 61 + .../gdml/N03gdml/visTutor/exN03Vis9.mac | 87 + .../extended/gdml/N03gdml/visTutor/g4Xt.xrm | 364 + .../extended/gdml/N03gdml/visTutor/gui.mac | 27 + examples/extended/gdml/README | 20 + examples/extended/gdml/Release.notes | 69 + examples/extended/gdml/libgdml/GNUmakefile | 16 + examples/extended/gdml/libgdml/libgdml.gmk | 37 + .../gdml/libgdml/management/GNUmakefile | 15 + .../management/include/GDMLDefineTable.hh | 58 + .../include/GDMLExpressionEvaluator.hh | 65 + .../management/include/GDMLLinkResolver.hh | 76 + .../management/include/GDMLProcessor.hh | 131 + .../management/src/GDMLExpressionEvaluator.cc | 149 + .../management/src/GDMLLinkResolver.cc | 205 + .../libgdml/management/src/GDMLProcessor.cc | 260 + .../gdml/libgdml/processes/GNUmakefile | 13 + .../include/BooleanSolidTypeProcess.hh | 73 + .../processes/include/MaterialTypeProcess.hh | 130 + .../processes/include/QuantityTypeProcess.hh | 119 + .../processes/include/ReferenceTypeProcess.hh | 108 + .../include/SinglePlacementTypeProcess.hh | 84 + .../processes/include/SolidTypeProcess.hh | 98 + .../gdml/libgdml/processes/src/DProcess.cc | 72 + .../gdml/libgdml/processes/src/DrefProcess.cc | 67 + .../libgdml/processes/src/LibLoadProcesses.cc | 80 + .../gdml/libgdml/processes/src/PProcess.cc | 72 + .../gdml/libgdml/processes/src/PrefProcess.cc | 64 + .../gdml/libgdml/processes/src/TProcess.cc | 72 + .../gdml/libgdml/processes/src/TrefProcess.cc | 64 + .../libgdml/processes/src/assemblyProcess.cc | 99 + .../gdml/libgdml/processes/src/atomProcess.cc | 122 + .../gdml/libgdml/processes/src/boxProces.cc | 86 + .../libgdml/processes/src/childProcess.cc | 79 + .../libgdml/processes/src/compositeProcess.cc | 88 + .../gdml/libgdml/processes/src/coneProcess.cc | 90 + .../libgdml/processes/src/constantProcess.cc | 117 + .../libgdml/processes/src/defineProcess.cc | 127 + .../libgdml/processes/src/elementProcess.cc | 131 + .../processes/src/expressionProcess.cc | 124 + .../libgdml/processes/src/firstProcess.cc | 76 + .../libgdml/processes/src/fractionProcess.cc | 87 + .../processes/src/intersectionProcess.cc | 82 + .../libgdml/processes/src/isotopeProcess.cc | 138 + .../libgdml/processes/src/materialProcess.cc | 169 + .../processes/src/materialrefProcess.cc | 76 + .../gdml/libgdml/processes/src/paraProcess.cc | 89 + .../libgdml/processes/src/positionProcess.cc | 128 + .../processes/src/positionrefProcess.cc | 76 + .../libgdml/processes/src/quantityProcess.cc | 122 + .../libgdml/processes/src/rotationProcess.cc | 126 + .../processes/src/rotationrefProcess.cc | 76 + .../libgdml/processes/src/secondProcess.cc | 76 + .../libgdml/processes/src/setupProcess.cc | 151 + .../libgdml/processes/src/solidrefProcess.cc | 76 + .../libgdml/processes/src/sphereProcess.cc | 89 + .../processes/src/subtractionProcess.cc | 82 + .../gdml/libgdml/processes/src/trapProcess.cc | 94 + .../gdml/libgdml/processes/src/trdProcess.cc | 88 + .../gdml/libgdml/processes/src/tubeProcess.cc | 88 + .../libgdml/processes/src/unionProcess.cc | 82 + .../libgdml/processes/src/volumeProcess.cc | 104 + .../libgdml/processes/src/volumerefProcess.cc | 76 + .../libgdml/processes/src/worldProcess.cc | 76 + .../extended/gdml/libgdml/saxana/GNUmakefile | 8 + .../saxana/include/ASCIIAttributeList.hh | 182 + .../gdml/libgdml/saxana/include/Action.hh | 58 + .../saxana/include/ActionProcessingState.hh | 58 + .../saxana/include/ProcessingConfigurator.hh | 121 + .../saxana/include/ProcessingContext.hh | 54 + .../libgdml/saxana/include/ProcessingState.hh | 49 + .../libgdml/saxana/include/RCObjectHandle.hh | 232 + .../saxana/include/SAXComponentFactory.hh | 83 + .../saxana/include/SAXComponentFactoryBase.hh | 47 + .../include/SAXComponentFactoryTable.hh | 65 + .../saxana/include/SAXComponentObject.hh | 54 + .../saxana/include/SAXDocumentEvents.hh | 63 + .../saxana/include/SAXElementEvents.hh | 170 + .../libgdml/saxana/include/SAXErrorEvents.hh | 121 + .../gdml/libgdml/saxana/include/SAXEvent.hh | 60 + .../libgdml/saxana/include/SAXEventGun.hh | 124 + .../gdml/libgdml/saxana/include/SAXEvents.hh | 36 + .../gdml/libgdml/saxana/include/SAXObject.hh | 63 + .../libgdml/saxana/include/SAXObjectBase.hh | 43 + .../libgdml/saxana/include/SAXObjectHandle.hh | 42 + .../saxana/include/SAXProcessingState.hh | 87 + .../libgdml/saxana/include/SAXProcessor.hh | 80 + .../libgdml/saxana/include/SAXStateProcess.hh | 93 + .../libgdml/saxana/include/SAXSubscriber.hh | 134 + .../saxana/include/SAXSubscriberPool.hh | 64 + .../libgdml/saxana/include/StateProcessMap.hh | 67 + .../gdml/libgdml/saxana/include/StateStack.hh | 76 + .../gdml/libgdml/saxana/include/StatusCode.hh | 73 + .../libgdml/saxana/src/SAXComponentFactory.cc | 35 + .../saxana/src/SAXComponentFactoryTable.cc | 109 + .../gdml/libgdml/saxana/src/SAXEventGun.cc | 428 + .../gdml/libgdml/saxana/src/SAXProcessor.cc | 335 + .../libgdml/saxana/src/SAXSubscriberPool.cc | 131 + .../libgdml/saxana/src/StateProcessMap.cc | 108 + .../extended/gdml/libgdml/schema/GNUmakefile | 8 + .../schema/include/AssemblyVolumeType.hh | 59 + .../gdml/libgdml/schema/include/AtomType.hh | 52 + .../schema/include/BooleanSolidType.hh | 132 + .../libgdml/schema/include/ConstantType.hh | 61 + .../libgdml/schema/include/ContentGroup.hh | 179 + .../gdml/libgdml/schema/include/DorDref.hh | 68 + .../libgdml/schema/include/ExpressionType.hh | 58 + .../include/IdentifiableConstantType.hh | 64 + .../include/IdentifiableExpressionType.hh | 61 + .../include/IdentifiableQuantityType.hh | 61 + .../include/IdentifiableQuantityVectorType.hh | 61 + .../include/IdentifiableThreeVectorType.hh | 61 + .../schema/include/IdentifiableVolumeType.hh | 55 +- .../schema/include/MaterialAttributeGroup.hh | 54 + .../schema/include/MaterialElementType.hh | 126 + .../schema/include/MaterialIsotopeType.hh | 91 + .../schema/include/MaterialMixtureType.hh | 85 + .../schema/include/MaterialPropertiesGroup.hh | 59 + .../libgdml/schema/include/MaterialType.hh | 148 + .../gdml/libgdml/schema/include/PorPref.hh | 68 + .../libgdml/schema/include/QuantityType.hh | 71 + .../schema/include/QuantityVectorType.hh | 72 + .../schema/include/ReferenceListType.hh | 61 + .../libgdml/schema/include/ReferenceType.hh | 60 + .../schema/include/SinglePlacementType.hh | 97 + .../gdml/libgdml/schema/include/SolidType.hh | 73 + .../libgdml/schema/include/TagorTagref.hh | 60 + .../libgdml/schema/include/ThreeVectorType.hh | 79 + .../gdml/libgdml/schema/include/TorTref.hh | 68 + .../gdml/libgdml/schema/include/VolumeType.hh | 84 + .../gdml/libgdml/schema/include/assembly.hh | 51 + .../gdml/libgdml/schema/include/atom.hh | 51 + .../schema/include/boolean_intersection.hh | 51 + .../schema/include/boolean_subtraction.hh | 51 + .../libgdml/schema/include/boolean_union.hh | 51 + .../gdml/libgdml/schema/include/box.hh | 77 + .../gdml/libgdml/schema/include/child.hh | 54 + .../gdml/libgdml/schema/include/composite.hh | 60 + .../gdml/libgdml/schema/include/cone.hh | 104 + .../gdml/libgdml/schema/include/define.hh | 107 + .../gdml/libgdml/schema/include/defineType.hh | 100 + .../gdml/libgdml/schema/include/element.hh | 51 + .../gdml/libgdml/schema/include/fraction.hh | 61 + .../gdml/libgdml/schema/include/isotope.hh | 51 + .../gdml/libgdml/schema/include/material.hh | 51 + .../gdml/libgdml/schema/include/para.hh | 96 + .../libgdml/schema/include/positionType.hh | 52 + .../libgdml/schema/include/rotationType.hh | 52 + .../gdml/libgdml/schema/include/setup.hh | 95 + .../gdml/libgdml/schema/include/sphere.hh | 98 + .../gdml/libgdml/schema/include/trap.hh | 131 + .../gdml/libgdml/schema/include/trd.hh | 89 + .../gdml/libgdml/schema/include/tube.hh | 90 + .../gdml/libgdml/schema/include/volume.hh | 51 + .../gdml/libgdml/schema/src/schema.cc | 32 + .../gdml/libgdml/subscribers/GNUmakefile | 17 + .../include/BooleanSolidTypeSubscriber.hh | 195 + .../subscribers/src/LibLoadSubscribers.cc | 57 + .../subscribers/src/assemblySubscriber.cc | 167 + .../libgdml/subscribers/src/boxSubscriber.cc | 104 + .../libgdml/subscribers/src/coneSubscriber.cc | 127 + .../subscribers/src/defineSubcriber.cc | 157 + .../subscribers/src/elementSubscriber.cc | 136 + .../subscribers/src/intersectionSubscriber.cc | 86 + .../subscribers/src/isotopeSubscriber.cc | 105 + .../subscribers/src/materialSubscriber.cc | 255 + .../libgdml/subscribers/src/paraSubscriber.cc | 116 + .../subscribers/src/setupSubscriber.cc | 106 + .../subscribers/src/sphereSubscriber.cc | 125 + .../subscribers/src/subtractionSubscriber.cc | 86 + .../libgdml/subscribers/src/trapSubscriber.cc | 138 + .../libgdml/subscribers/src/trdSubscriber.cc | 111 + .../libgdml/subscribers/src/tubeSusbcriber.cc | 117 + .../subscribers/src/unionSubscriber.cc | 86 + .../subscribers/src/volumeSubscriber.cc | 216 + examples/extended/gdml/sample/GNUmakefile | 52 + examples/extended/gdml/sample/gogdml.cc | 70 + .../include/gogdmlDetectorConstruction.hh | 60 + .../gdml/sample/include/gogdmlPhysicsList.hh | 68 + .../include/gogdmlPrimaryGeneratorAction.hh | 56 + .../sample/src/gogdmlDetectorConstruction.cc | 68 + .../gdml/sample/src/gogdmlPhysicsList.cc | 71 + .../src/gogdmlPrimaryGeneratorAction.cc | 71 + examples/extended/gdml/sample/test.gdml | 102 + examples/extended/gdml/schema/gdml_1.0.xsd | 123 + .../extended/gdml/schema/gdml_simple_core.xsd | 178 + .../gdml/schema/gdml_simple_define.xsd | 93 + .../gdml/schema/gdml_simple_materials.xsd | 428 + .../gdml/schema/gdml_simple_solids.xsd | 302 + examples/extended/geometry/README | 17 + examples/extended/geometry/cad/GNUmakefile | 30 + examples/extended/geometry/cad/History | 20 + examples/extended/geometry/cad/README | 25 + examples/extended/geometry/cad/cadex.cc | 101 + examples/extended/geometry/cad/cadex.in | 15 + .../cad/include/CadDetectorConstruction.hh | 65 + .../cad/include/CadDetectorMessenger.hh | 52 + .../geometry/cad/include/CadPhysicsList.hh | 67 + .../cad/include/CadPrimaryGeneratorAction.hh | 50 + .../geometry/cad/include/CadRunAction.hh | 50 + .../geometry/cad/include/CadVisManager.hh | 50 + .../geometry/cad/scripts}/g4sort_step_file.pl | 2 +- .../geometry/cad/scripts}/g4step_correct.pl | 0 .../cad/src/CadDetectorConstruction.cc | 167 + .../geometry/cad/src/CadDetectorMessenger.cc | 74 + .../geometry/cad/src/CadPhysicsList.cc | 207 + .../cad/src/CadPrimaryGeneratorAction.cc | 61 + .../extended/geometry/cad/src/CadRunAction.cc | 51 + .../geometry/cad/src/CadVisManager.cc | 60 + .../cad/stepfiles/G4rod_place_asm.stp | 980 + .../geometry/cad/stepfiles/G4rod_solid.stp | 2055 ++ examples/extended/geometry/olap/GNUmakefile | 23 + examples/extended/geometry/olap/History | 34 + examples/extended/geometry/olap/README | 433 + .../geometry/olap/include/G4GeoNav.hh | 106 + .../geometry/olap/include/OlapDetConstr.hh | 110 + .../geometry/olap/include/OlapEventAction.hh | 101 + .../geometry/olap/include/OlapGenerator.hh | 83 + .../geometry/olap/include/OlapLogManager.hh | 60 + .../geometry/olap/include/OlapManager.hh | 114 + .../olap/include/OlapManagerMessenger.hh | 79 + .../geometry/olap/include/OlapNotify.hh | 58 + .../geometry/olap/include/OlapPhysicsList.hh | 71 + .../geometry/olap/include/OlapRunAction.hh | 62 + .../olap/include/OlapSteppingAction.hh | 69 + .../geometry/olap/include/OlapVisManager.hh | 57 + .../geometry/olap/include/RandomDetector.hh | 56 + .../geometry/olap/include/SolidAnalyser.hh | 99 + .../extended/geometry/olap/include/tree.hh | 202 + examples/extended/geometry/olap/olapex.cc | 140 + .../extended/geometry/olap/src/G4GeoNav.cc | 318 + .../geometry/olap/src/OlapDetConstr.cc | 631 + .../geometry/olap/src/OlapEventAction.cc | 403 + .../geometry/olap/src/OlapGenerator.cc | 218 + .../geometry/olap/src/OlapLogManager.cc | 93 + .../extended/geometry/olap/src/OlapManager.cc | 367 + .../geometry/olap/src/OlapManagerMessenger.cc | 187 + .../extended/geometry/olap/src/OlapNotify.cc | 49 + .../geometry/olap/src/OlapPhysicsList.cc | 106 + .../geometry/olap/src/OlapRunAction.cc | 149 + .../geometry/olap/src/OlapSteppingAction.cc | 177 + .../geometry/olap/src/OlapVisManager.cc | 149 + .../geometry/olap/src/RandomDetector.cc | 120 + .../geometry/olap/src/SolidAnalyser.cc | 244 + examples/extended/parallel/ParN02/GNUmakefile | 19 + examples/extended/parallel/ParN02/History | 22 + .../extended/parallel/ParN02/ParGNUmakefile | 113 + examples/extended/parallel/ParN02/ParN02.cc | 115 + examples/extended/parallel/ParN02/ParN02.in | 21 + .../parallel/ParN02/ParN02.large_N.in | 21 + examples/extended/parallel/ParN02/ParTopC.icc | 54 + .../extended/parallel/ParN02/docs/000README | 162 + .../extended/parallel/ParN02/docs/COPYING | 25 + examples/extended/parallel/ParN02/docs/README | 124 + .../include/ExN02ChamberParameterisation.hh | 81 + .../include/ExN02DetectorConstruction.hh | 100 + .../ParN02/include/ExN02DetectorMessenger.hh | 63 + .../ParN02/include/ExN02EventAction.hh | 54 + .../ParN02/include/ExN02MagneticField.hh | 66 + .../ParN02/include/ExN02PhysicsList.hh | 69 + .../include/ExN02PrimaryGeneratorAction.hh | 59 + .../parallel/ParN02/include/ExN02RunAction.hh | 58 + .../ParN02/include/ExN02SteppingAction.hh | 48 + .../ParN02/include/ExN02SteppingVerbose.hh | 57 + .../ParN02/include/ExN02TrackerHit.hh | 102 + .../parallel/ParN02/include/ExN02TrackerSD.hh | 59 + .../ParN02/include/ExN02VisManager.hh | 72 + .../ParN02/include/ParExMarshaledHits.hh | 149 + .../ParN02/include/ParMarshaledObj.hh | 278 + .../parallel/ParN02/include/ParRandomState.hh | 85 + .../parallel/ParN02/include/ParRunManager.hh | 82 + .../extended/parallel/ParN02/initInter.mac | 29 + examples/extended/parallel/ParN02/procgroup | 62 + .../extended/parallel/ParN02/procgroup.cern | 71 + examples/extended/parallel/ParN02/run1.mac | 23 + examples/extended/parallel/ParN02/run2.mac | 23 + .../src/ExN02ChamberParameterisation.cc | 89 + .../ParN02/src/ExN02DetectorConstruction.cc | 291 + .../ParN02/src/ExN02DetectorMessenger.cc | 90 + .../parallel/ParN02/src/ExN02EventAction.cc | 86 + .../parallel/ParN02/src/ExN02MagneticField.cc | 99 + .../parallel/ParN02/src/ExN02PhysicsList.cc | 310 + .../ParN02/src/ExN02PrimaryGeneratorAction.cc | 76 + .../parallel/ParN02/src/ExN02RunAction.cc | 73 + .../ParN02/src/ExN02SteppingAction.cc | 45 + .../ParN02/src/ExN02SteppingVerbose.cc | 176 + .../parallel/ParN02/src/ExN02TrackerHit.cc | 102 + .../parallel/ParN02/src/ExN02TrackerSD.cc | 97 + .../parallel/ParN02/src/ExN02VisManager.cc | 153 + .../ParN02/src/ParExN02MarshaledHits.cc | 80 + .../parallel/ParN02/src/ParMarshaledObj.cc | 114 + .../parallel/ParN02/src/ParRunManager.cc | 226 + examples/extended/parallel/ParN02/thwap | 142 + examples/extended/parallel/ParN04/GNUmakefile | 30 + examples/extended/parallel/ParN04/History | 22 + .../extended/parallel/ParN04/ParGNUmakefile | 114 + .../extended/parallel/ParN04/ParN04.EMtest.in | 8 + .../parallel/ParN04/ParN04.EMtest.large_N.in | 8 + examples/extended/parallel/ParN04/ParN04.cc | 82 + examples/extended/parallel/ParN04/ParN04.in | 8 + examples/extended/parallel/ParN04/ParTopC.icc | 53 + .../extended/parallel/ParN04/docs/000README | 162 + .../ParN04/docs/BUG.userStackingAction | 28 + examples/extended/parallel/ParN04/docs/README | 48 + .../ParN04/include/ExN04CalorimeterHit.hh | 105 + .../ExN04CalorimeterParametrisation.hh | 53 + .../include/ExN04CalorimeterROGeometry.hh | 42 + .../ParN04/include/ExN04CalorimeterSD.hh | 58 + .../include/ExN04DetectorConstruction.hh | 48 + .../include/ExN04DetectorParameterDef.hh | 69 + .../parallel/ParN04/include/ExN04DummySD.hh | 50 + .../parallel/ParN04/include/ExN04EMPhysics.hh | 93 + .../ParN04/include/ExN04EventAction.hh | 48 + .../parallel/ParN04/include/ExN04Field.hh | 46 + .../ParN04/include/ExN04GeneralPhysics.hh | 77 + .../ParN04/include/ExN04HadronPhysics.hh | 331 + .../ParN04/include/ExN04IonPhysics.hh | 111 + .../parallel/ParN04/include/ExN04MuonHit.hh | 85 + .../ParN04/include/ExN04MuonPhysics.hh | 93 + .../parallel/ParN04/include/ExN04MuonSD.hh | 57 + .../ParN04/include/ExN04PhysicsList.hh | 46 + .../include/ExN04PrimaryGeneratorAction.hh | 58 + .../include/ExN04PrimaryGeneratorMessenger.hh | 55 + .../ParN04/include/ExN04StackingAction.hh | 74 + .../include/ExN04StackingActionMessenger.hh | 57 + .../ParN04/include/ExN04SteppingAction.hh | 40 + .../ParN04/include/ExN04TrackerHit.hh | 82 + .../include/ExN04TrackerParametrisation.hh | 53 + .../parallel/ParN04/include/ExN04TrackerSD.hh | 57 + .../ParN04/include/ExN04TrackingAction.hh | 40 + .../ParN04/include/ParExMarshaledHits.hh | 148 + .../ParN04/include/ParMarshaledObj.hh | 275 + .../parallel/ParN04/include/ParRandomState.hh | 84 + .../parallel/ParN04/include/ParRunManager.hh | 82 + .../parallel/ParN04}/prerun.mac | 0 examples/extended/parallel/ParN04/procgroup | 62 + .../parallel/ParN04/pythia_event.data | 1021 + .../extended/parallel/ParN04/pythia_main.f | 88 + .../ParN04/src/ExN04CalorimeterHit.cc | 89 + .../src/ExN04CalorimeterParametrisation.cc | 58 + .../ParN04/src/ExN04CalorimeterROGeometry.cc | 109 + .../parallel/ParN04/src/ExN04CalorimeterSD.cc | 115 + .../ParN04/src/ExN04DetectorConstruction.cc | 262 + .../ParN04/src/ExN04DetectorParameterDef.icc | 76 + .../parallel/ParN04/src/ExN04EMPhysics.cc | 111 + .../parallel/ParN04/src/ExN04EventAction.cc | 120 + .../parallel/ParN04/src/ExN04Field.cc | 45 + .../ParN04/src/ExN04GeneralPhysics.cc | 73 + .../parallel/ParN04/src/ExN04HadronPhysics.cc | 428 + .../parallel/ParN04/src/ExN04IonPhysics.cc | 140 + .../parallel/ParN04/src/ExN04MuonHit.cc | 75 + .../parallel/ParN04/src/ExN04MuonPhysics.cc | 128 + .../parallel/ParN04/src/ExN04MuonSD.cc | 94 + .../parallel/ParN04/src/ExN04PhysicsList.cc | 86 + .../ParN04/src/ExN04PrimaryGeneratorAction.cc | 68 + .../src/ExN04PrimaryGeneratorMessenger.cc | 70 + .../ParN04/src/ExN04StackingAction.cc | 203 + .../src/ExN04StackingActionMessenger.cc | 93 + .../ParN04/src/ExN04SteppingAction.cc | 70 + .../parallel/ParN04/src/ExN04TrackerHit.cc | 75 + .../ParN04/src/ExN04TrackerParametrisation.cc | 56 + .../parallel/ParN04/src/ExN04TrackerSD.cc | 77 + .../ParN04/src/ExN04TrackingAction.cc | 38 + .../ParN04/src/ParExN04MarshaledHits.cc | 119 + .../parallel/ParN04/src/ParMarshaledObj.cc | 114 + .../parallel/ParN04/src/ParRunManager.cc | 226 + examples/extended/parallel/README.html | 118 + .../extended/parallel/info/NEW_APP_INSTALL | 164 + .../extended/parallel/info/NEW_APP_README | 47 + .../PersistentEx01/PersistentEx01.cc | 2 +- .../PersistentEx01/PersistentEx01.out | 2 +- .../PersistentEx02/PersistentEx02.cc | 2 +- .../PersistentEx02/PersistentEx02.out | 2 +- .../include/PersEx02DetectorConstruction.hh | 2 +- .../include/PersEx02EventAction.hh | 2 +- .../include/PersEx02PhysicsList.hh | 2 +- .../include/PersEx02PrimaryGeneratorAction.hh | 2 +- .../include/PersEx02RunAction.hh | 2 +- .../include/PersEx02StackingAction.hh | 2 +- .../include/PersEx02TrackerHit.ddl | 2 +- .../include/PersEx02TrackerHitsCollection.ddl | 2 +- .../include/PersEx02TrackerSD.hh | 2 +- .../src/PersEx02DetectorConstruction.cc | 2 +- .../PersistentEx02/src/PersEx02EventAction.cc | 2 +- .../PersistentEx02/src/PersEx02PhysicsList.cc | 2 +- .../src/PersEx02PrimaryGeneratorAction.cc | 2 +- .../PersistentEx02/src/PersEx02RunAction.cc | 2 +- .../src/PersEx02StackingAction.cc | 2 +- .../PersistentEx02/src/PersEx02TrackerHit.cc | 2 +- .../src/PersEx02TrackerHitsCollection.cc | 2 +- .../PersistentEx02/src/PersEx02TrackerSD.cc | 2 +- examples/novice/N01/History | 9 +- examples/novice/N01/exampleN01.cc | 4 +- examples/novice/N01/exampleN01.out | 4 +- .../N01/include/ExN01DetectorConstruction.hh | 4 +- .../novice/N01/include/ExN01PhysicsList.hh | 4 +- .../include/ExN01PrimaryGeneratorAction.hh | 4 +- .../N01/src/ExN01DetectorConstruction.cc | 12 +- examples/novice/N01/src/ExN01PhysicsList.cc | 4 +- .../N01/src/ExN01PrimaryGeneratorAction.cc | 25 +- examples/novice/N02/exampleN02.cc | 4 +- examples/novice/N02/exampleN02.large_N.out | 2 +- examples/novice/N02/exampleN02.out | 5019 ++-- .../include/ExN02ChamberParameterisation.hh | 4 +- .../N02/include/ExN02DetectorConstruction.hh | 4 +- .../N02/include/ExN02DetectorMessenger.hh | 4 +- .../novice/N02/include/ExN02EventAction.hh | 4 +- .../novice/N02/include/ExN02MagneticField.hh | 4 +- .../novice/N02/include/ExN02PhysicsList.hh | 4 +- .../include/ExN02PrimaryGeneratorAction.hh | 4 +- examples/novice/N02/include/ExN02RunAction.hh | 4 +- .../novice/N02/include/ExN02SteppingAction.hh | 4 +- .../N02/include/ExN02SteppingVerbose.hh | 4 +- .../novice/N02/include/ExN02TrackerHit.hh | 4 +- examples/novice/N02/include/ExN02TrackerSD.hh | 4 +- .../novice/N02/include/ExN02VisManager.hh | 4 +- .../N02/src/ExN02ChamberParameterisation.cc | 4 +- .../N02/src/ExN02DetectorConstruction.cc | 4 +- .../novice/N02/src/ExN02DetectorMessenger.cc | 4 +- examples/novice/N02/src/ExN02EventAction.cc | 4 +- examples/novice/N02/src/ExN02MagneticField.cc | 4 +- examples/novice/N02/src/ExN02PhysicsList.cc | 4 +- .../N02/src/ExN02PrimaryGeneratorAction.cc | 4 +- examples/novice/N02/src/ExN02RunAction.cc | 4 +- .../novice/N02/src/ExN02SteppingAction.cc | 4 +- .../novice/N02/src/ExN02SteppingVerbose.cc | 4 +- examples/novice/N02/src/ExN02TrackerHit.cc | 4 +- examples/novice/N02/src/ExN02TrackerSD.cc | 4 +- examples/novice/N02/src/ExN02VisManager.cc | 4 +- examples/novice/N03/History | 11 +- examples/novice/N03/exampleN03.cc | 4 +- examples/novice/N03/exampleN03.large_N.in | 1 + examples/novice/N03/exampleN03.out | 32 +- examples/novice/N03/exo1.mac | 35 + examples/novice/N03/exo2.mac | 35 + examples/novice/N03/include/ExN03CalorHit.hh | 4 +- .../novice/N03/include/ExN03CalorimeterSD.hh | 4 +- .../N03/include/ExN03DetectorConstruction.hh | 4 +- .../N03/include/ExN03DetectorMessenger.hh | 4 +- .../novice/N03/include/ExN03EventAction.hh | 4 +- .../N03/include/ExN03EventActionMessenger.hh | 4 +- .../novice/N03/include/ExN03PhysicsList.hh | 22 +- .../include/ExN03PrimaryGeneratorAction.hh | 4 +- .../include/ExN03PrimaryGeneratorMessenger.hh | 4 +- examples/novice/N03/include/ExN03RunAction.hh | 4 +- .../novice/N03/include/ExN03SteppingAction.hh | 4 +- .../N03/include/ExN03SteppingVerbose.hh | 4 +- .../novice/N03/include/ExN03VisManager.hh | 4 +- examples/novice/N03/src/ExN03CalorHit.cc | 4 +- examples/novice/N03/src/ExN03CalorimeterSD.cc | 4 +- .../N03/src/ExN03DetectorConstruction.cc | 4 +- .../novice/N03/src/ExN03DetectorMessenger.cc | 4 +- examples/novice/N03/src/ExN03EventAction.cc | 4 +- .../N03/src/ExN03EventActionMessenger.cc | 4 +- examples/novice/N03/src/ExN03PhysicsList.cc | 71 +- .../N03/src/ExN03PrimaryGeneratorAction.cc | 4 +- .../N03/src/ExN03PrimaryGeneratorMessenger.cc | 4 +- examples/novice/N03/src/ExN03RunAction.cc | 4 +- .../novice/N03/src/ExN03SteppingAction.cc | 4 +- .../novice/N03/src/ExN03SteppingVerbose.cc | 4 +- examples/novice/N03/src/ExN03VisManager.cc | 4 +- examples/novice/N03/visTutor/gui.mac | 14 +- examples/novice/N04/GNUmakefile | 11 +- examples/novice/N04/History | 22 +- examples/novice/N04/README | 23 +- .../novice/N04/exampleN04.EMtest.large_N.out | 2 +- examples/novice/N04/exampleN04.EMtest.out | 28 +- examples/novice/N04/exampleN04.cc | 33 +- examples/novice/N04/exampleN04.in | 1 + examples/novice/N04/exampleN04.out | 38 +- examples/novice/N04/include/ExN04EMPhysics.hh | 4 +- .../novice/N04/include/ExN04GeneralPhysics.hh | 4 +- .../novice/N04/include/ExN04HadronPhysics.hh | 4 +- .../novice/N04/include/ExN04IonPhysics.hh | 4 +- .../novice/N04/include/ExN04MuonPhysics.hh | 4 +- examples/novice/N04/include/ExN04RunAction.hh | 58 + .../N04/include/ExN04SteppingVerbose.hh | 57 + .../novice/N04/include/ExN04VisManager.hh | 72 + .../N04/src/ExN04DetectorParameterDef.icc | 2 +- examples/novice/N04/src/ExN04EMPhysics.cc | 4 +- examples/novice/N04/src/ExN04EventAction.cc | 36 +- .../novice/N04/src/ExN04GeneralPhysics.cc | 4 +- examples/novice/N04/src/ExN04HadronPhysics.cc | 4 +- examples/novice/N04/src/ExN04IonPhysics.cc | 4 +- examples/novice/N04/src/ExN04MuonPhysics.cc | 4 +- examples/novice/N04/src/ExN04PhysicsList.cc | 4 +- examples/novice/N04/src/ExN04RunAction.cc | 76 + .../novice/N04/src/ExN04SteppingVerbose.cc | 176 + examples/novice/N04/src/ExN04VisManager.cc | 153 + examples/novice/N04/vis.mac | 31 + examples/novice/N05/exampleN05.cc | 4 +- examples/novice/N05/exampleN05.out | 320 +- .../novice/N05/include/ExN05CalorimeterHit.hh | 4 +- .../novice/N05/include/ExN05CalorimeterSD.hh | 4 +- .../N05/include/ExN05DetectorConstruction.hh | 4 +- .../N05/include/ExN05DetectorMessenger.hh | 4 +- .../novice/N05/include/ExN05EMShowerModel.hh | 4 +- .../novice/N05/include/ExN05EnergySpot.hh | 4 +- .../novice/N05/include/ExN05EventAction.hh | 4 +- .../N05/include/ExN05EventActionMessenger.hh | 4 +- .../novice/N05/include/ExN05MaxTimeCuts.hh | 4 +- .../novice/N05/include/ExN05MinEkineCuts.hh | 4 +- .../novice/N05/include/ExN05MinRangeCuts.hh | 4 +- .../novice/N05/include/ExN05PhysicsList.hh | 4 +- examples/novice/N05/include/ExN05PiModel.hh | 4 +- .../N05/include/ExN05PionShowerModel.hh | 4 +- .../include/ExN05PrimaryGeneratorAction.hh | 4 +- examples/novice/N05/include/ExN05RunAction.hh | 4 +- .../novice/N05/include/ExN05SpecialCuts.hh | 4 +- .../novice/N05/include/ExN05SteppingAction.hh | 4 +- .../include/ExN05SteppingActionMessenger.hh | 4 +- .../novice/N05/include/ExN05VisManager.hh | 4 +- .../novice/N05/src/ExN05CalorimeterHit.cc | 4 +- examples/novice/N05/src/ExN05CalorimeterSD.cc | 4 +- .../N05/src/ExN05DetectorConstruction.cc | 4 +- .../novice/N05/src/ExN05DetectorMessenger.cc | 4 +- examples/novice/N05/src/ExN05EMShowerModel.cc | 4 +- examples/novice/N05/src/ExN05EnergySpot.cc | 4 +- examples/novice/N05/src/ExN05EventAction.cc | 4 +- .../N05/src/ExN05EventActionMessenger.cc | 4 +- examples/novice/N05/src/ExN05MaxTimeCuts.cc | 4 +- examples/novice/N05/src/ExN05MinEkineCuts.cc | 4 +- examples/novice/N05/src/ExN05MinRangeCuts.cc | 4 +- examples/novice/N05/src/ExN05PhysicsList.cc | 4 +- examples/novice/N05/src/ExN05PiModel.cc | 4 +- .../novice/N05/src/ExN05PionShowerModel.cc | 4 +- .../N05/src/ExN05PrimaryGeneratorAction.cc | 4 +- examples/novice/N05/src/ExN05RunAction.cc | 4 +- examples/novice/N05/src/ExN05SpecialCuts.cc | 4 +- .../novice/N05/src/ExN05SteppingAction.cc | 4 +- .../N05/src/ExN05SteppingActionMessenger.cc | 4 +- examples/novice/N05/src/ExN05VisManager.cc | 4 +- examples/novice/N06/History | 9 +- examples/novice/N06/README | 3 +- examples/novice/N06/exampleN06.cc | 2 + examples/novice/N06/exampleN06.out | 23608 ++++++---------- .../N06/src/ExN06DetectorConstruction.cc | 8 + examples/novice/N06/src/ExN06PhysicsList.cc | 14 + .../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/G4VReadOutGeometry.hh | 2 +- .../detector/include/G4VSensitiveDetector.hh | 2 +- source/digits+hits/detector/src/G4HCtable.cc | 2 +- .../digits+hits/detector/src/G4SDManager.cc | 2 +- .../digits+hits/detector/src/G4SDStructure.cc | 2 +- .../digits+hits/detector/src/G4SDmessenger.cc | 2 +- .../detector/src/G4SensitiveVolumeList.cc | 2 +- .../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 | 2 +- source/digits+hits/hits/include/G4VHit.hh | 2 +- .../hits/include/G4VHitsCollection.hh | 2 +- .../digits+hits/hits/src/G4HCofThisEvent.cc | 2 +- .../digits+hits/hits/src/G4THitsCollection.cc | 2 +- source/digits+hits/hits/src/G4VHit.cc | 2 +- .../digits+hits/hits/src/G4VHitsCollection.cc | 2 +- source/event/History | 21 +- .../include/G4ClassificationOfNewTrack.hh | 2 +- source/event/include/G4EvManMessenger.hh | 2 +- source/event/include/G4Event.hh | 2 +- source/event/include/G4EventManager.hh | 2 +- .../event/include/G4GeneralParticleSource.hh | 2 +- .../G4GeneralParticleSourceMessenger.hh | 10 +- source/event/include/G4HEPEvtInterface.hh | 2 +- source/event/include/G4HEPEvtParticle.hh | 2 +- source/event/include/G4ParticleGun.hh | 2 +- .../event/include/G4ParticleGunMessenger.hh | 7 +- source/event/include/G4PrimaryParticle.hh | 2 +- source/event/include/G4PrimaryTransformer.hh | 2 +- source/event/include/G4PrimaryVertex.hh | 2 +- source/event/include/G4StackManager.hh | 13 +- source/event/include/G4StackedTrack.hh | 2 +- source/event/include/G4StackingMessenger.hh | 2 +- source/event/include/G4TrackStack.hh | 2 +- source/event/include/G4TrajectoryContainer.hh | 51 +- 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/G4EvManMessenger.cc | 2 +- source/event/src/G4Event.cc | 2 +- source/event/src/G4EventManager.cc | 11 +- source/event/src/G4GeneralParticleSource.cc | 2 +- .../src/G4GeneralParticleSourceMessenger.cc | 83 +- source/event/src/G4HEPEvtInterface.cc | 2 +- source/event/src/G4HEPEvtParticle.cc | 2 +- source/event/src/G4ParticleGun.cc | 2 +- source/event/src/G4ParticleGunMessenger.cc | 72 +- source/event/src/G4PrimaryParticle.cc | 2 +- source/event/src/G4PrimaryTransformer.cc | 21 +- source/event/src/G4PrimaryVertex.cc | 2 +- source/event/src/G4StackManager.cc | 67 +- source/event/src/G4StackedTrack.cc | 2 +- source/event/src/G4StackingMessenger.cc | 2 +- source/event/src/G4TrackStack.cc | 2 +- source/event/src/G4TrajectoryContainer.cc | 41 + source/event/src/G4UserEventAction.cc | 2 +- source/event/src/G4UserStackingAction.cc | 2 +- source/event/src/G4VPrimaryGenerator.cc | 2 +- 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 | 2 +- source/g3tog4/src/G4gsdvn2.cc | 2 +- source/g3tog4/src/G4gsdvt.cc | 2 +- source/g3tog4/src/G4gsdvt2.cc | 2 +- source/g3tog4/src/G4gsdvx.cc | 2 +- source/g3tog4/src/G4gsmate.cc | 2 +- source/g3tog4/src/G4gsmixt.cc | 2 +- source/g3tog4/src/G4gspart.cc | 2 +- source/g3tog4/src/G4gspos.cc | 2 +- source/g3tog4/src/G4gsposp.cc | 2 +- source/g3tog4/src/G4gsrotm.cc | 2 +- source/g3tog4/src/G4gstmed.cc | 2 +- source/g3tog4/src/G4gstpar.cc | 2 +- source/g3tog4/src/G4gsvolu.cc | 2 +- source/g3tog4/src/clparse.cc | 2 +- source/g3tog4/src/g3routines.F | 2 +- source/g3tog4/src/g3test.F.main | 2 +- source/g3tog4/src/g3tog4.F | 2 +- source/g3tog4/src/g4geom.cc.main | 2 +- source/g3tog4/src/jshape.F | 2 +- source/g3tog4/src/mztog4.F | 2 +- source/g3tog4/src/rztog4.F | 2 +- source/g3tog4/src/tog4.F | 2 +- source/geometry/GNUmakefile | 6 +- source/geometry/History | 27 +- source/geometry/biasing/GNUmakefile | 22 + source/geometry/biasing/History | 46 + source/geometry/biasing/include/G4IStore.hh | 93 + .../biasing/include/G4ImportanceAlgorithm.hh | 68 + .../biasing/include/G4ImportanceFinder.hh | 72 + .../include/G4ImportanceSplitExaminer.hh | 80 + .../biasing/include/G4Nsplit_Weight.hh | 68 + .../biasing/include/G4PMapPtkTallys.hh | 54 + source/geometry/biasing/include/G4PStep.hh | 73 + .../geometry/biasing/include/G4PStepStream.hh | 45 + .../biasing/include/G4PTouchableKey.hh | 80 + .../biasing/include/G4ParallelNavigator.hh | 125 + .../biasing/include/G4ParallelStepper.hh | 83 + .../biasing/include/G4ParallelWorld.hh | 82 + source/geometry/biasing/include/G4Pstring.hh | 52 + .../biasing/include/G4PtkImportance.hh | 49 + source/geometry/biasing/include/G4Sigma.hh | 106 + source/geometry/biasing/include/G4VIStore.hh | 78 + .../biasing/include/G4VImportanceAlgorithm.hh | 62 + .../include/G4VImportanceSplitExaminer.hh | 56 + .../geometry/biasing/include/G4VPGeoDriver.hh | 79 + source/geometry/biasing/include/G4VPScorer.hh | 63 + .../biasing/include/G4VParallelStepper.hh | 69 + .../include/G4VWeightWindowAlgorithm.hh | 69 + .../include/G4WeightWindowAlgorithm.hh | 76 + source/geometry/biasing/src/G4IStore.cc | 129 + .../biasing/src/G4ImportanceAlgorithm.cc | 117 + .../biasing/src/G4ImportanceFinder.cc | 67 + .../biasing/src/G4ImportanceSplitExaminer.cc | 60 + .../geometry/biasing/src/G4Nsplit_Weight.cc | 40 + .../geometry/biasing/src/G4PMapPtkTallys.cc | 57 + source/geometry/biasing/src/G4PStepStream.cc | 51 + .../geometry/biasing/src/G4PTouchableKey.cc | 67 + .../biasing/src/G4ParallelNavigator.cc | 204 + .../geometry/biasing/src/G4ParallelStepper.cc | 93 + .../geometry/biasing/src/G4ParallelWorld.cc | 84 + source/geometry/biasing/src/G4Pstring.cc | 62 + .../geometry/biasing/src/G4PtkImportance.cc | 45 + source/geometry/biasing/src/G4Sigma.cc | 134 + .../biasing/src/G4WeightWindowAlgorithm.cc | 95 + source/geometry/magneticfield/GNUmakefile | 8 +- source/geometry/magneticfield/History | 79 +- .../magneticfield/include/G4CashKarpRKF45.hh | 2 +- .../magneticfield/include/G4ChordFinder.hh | 2 +- .../magneticfield/include/G4ChordFinder.icc | 2 +- .../magneticfield/include/G4ClassicalRK4.hh | 2 +- .../include/G4ElectroMagneticField.hh | 2 +- .../include/G4EqMagElectricField.hh | 2 +- .../include/G4EquationOfMotion.hh | 2 +- .../include/G4EquationOfMotion.icc | 2 +- .../magneticfield/include/G4ExplicitEuler.hh | 2 +- .../geometry/magneticfield/include/G4Field.hh | 2 +- .../magneticfield/include/G4FieldManager.hh | 2 +- .../magneticfield/include/G4FieldManager.icc | 2 +- .../magneticfield/include/G4FieldTrack.hh | 2 +- .../magneticfield/include/G4FieldTrack.icc | 2 +- .../include/G4HelixExplicitEuler.hh | 2 +- .../magneticfield/include/G4HelixHeum.hh | 2 +- .../include/G4HelixImplicitEuler.hh | 2 +- .../include/G4HelixSimpleRunge.hh | 2 +- .../magneticfield/include/G4ImplicitEuler.hh | 2 +- .../magneticfield/include/G4LineSection.hh | 2 +- .../include/G4MagErrorStepper.hh | 2 +- .../include/G4MagErrorStepper.icc | 2 +- .../include/G4MagHelicalStepper.hh | 2 +- .../include/G4MagHelicalStepper.icc | 13 +- .../include/G4MagIntegratorDriver.hh | 8 +- .../include/G4MagIntegratorDriver.icc | 2 +- .../include/G4MagIntegratorStepper.hh | 6 +- .../include/G4MagIntegratorStepper.icc | 10 +- .../magneticfield/include/G4Mag_EqRhs.hh | 2 +- .../magneticfield/include/G4Mag_SpinEqRhs.hh | 11 +- .../magneticfield/include/G4Mag_UsualEqRhs.hh | 2 +- .../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 | 30 +- .../magneticfield/src/G4ClassicalRK4.cc | 2 +- .../magneticfield/src/G4EquationOfMotion.cc | 2 +- .../magneticfield/src/G4ExplicitEuler.cc | 2 +- .../magneticfield/src/G4FieldManager.cc | 2 +- .../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 | 2 +- .../magneticfield/src/G4LineSection.cc | 2 +- .../magneticfield/src/G4MagErrorStepper.cc | 2 +- .../magneticfield/src/G4MagHelicalStepper.cc | 18 +- .../src/G4MagIntegratorDriver.cc | 139 +- .../src/G4MagIntegratorStepper.cc | 8 +- .../geometry/magneticfield/src/G4Mag_EqRhs.cc | 2 +- .../magneticfield/src/G4Mag_SpinEqRhs.cc | 23 +- .../magneticfield/src/G4Mag_UsualEqRhs.cc | 2 +- .../magneticfield/src/G4RKG3_Stepper.cc | 2 +- .../magneticfield/src/G4SimpleHeum.cc | 2 +- .../magneticfield/src/G4SimpleRunge.cc | 2 +- .../src/G4UniformElectricField.cc | 2 +- .../magneticfield/src/G4UniformMagField.cc | 2 +- source/geometry/management/GNUmakefile | 6 +- source/geometry/management/History | 75 +- .../management/include/G4AffineTransform.hh | 2 +- .../management/include/G4AffineTransform.icc | 9 +- .../management/include/G4AssemblyTriplet.hh | 2 +- .../management/include/G4AssemblyTriplet.icc | 2 +- .../management/include/G4AssemblyVolume.hh | 44 +- .../management/include/G4AssemblyVolume.icc | 2 +- .../management/include/G4DrawVoxels.hh | 6 +- .../management/include/G4GeometryManager.hh | 7 +- .../management/include/G4LogicalSurface.hh | 2 +- .../management/include/G4LogicalSurface.icc | 2 +- .../management/include/G4LogicalVolume.hh | 119 +- .../management/include/G4LogicalVolume.icc | 484 +- .../include/G4LogicalVolumeStore.hh | 12 +- .../management/include/G4PVParameterised.hh | 2 +- .../management/include/G4PVPlacement.hh | 2 +- .../management/include/G4PVReplica.hh | 2 +- .../include/G4PhysicalVolumeStore.hh | 12 +- .../management/include/G4SmartVoxelHeader.hh | 10 +- .../management/include/G4SmartVoxelHeader.icc | 10 +- .../management/include/G4SmartVoxelNode.hh | 8 +- .../management/include/G4SmartVoxelNode.icc | 2 +- .../management/include/G4SmartVoxelProxy.hh | 6 +- .../management/include/G4SmartVoxelProxy.icc | 2 +- .../management/include/G4SmartVoxelStat.hh | 2 +- .../management/include/G4SolidStore.hh | 9 +- .../management/include/G4TouchableHandle.hh | 2 +- .../include/G4VPVParameterisation.hh | 2 +- .../management/include/G4VPhysicalVolume.hh | 2 +- .../management/include/G4VPhysicalVolume.icc | 2 +- .../geometry/management/include/G4VSolid.hh | 14 +- .../geometry/management/include/G4VSolid.icc | 2 +- .../management/include/G4VTouchable.hh | 2 +- .../management/include/G4VTouchable.icc | 2 +- .../management/include/G4VoxelLimits.hh | 10 +- .../management/include/G4VoxelLimits.icc | 2 +- .../geometry/management/include/meshdefs.hh | 2 +- .../geometry/management/include/voxeldefs.hh | 2 +- .../management/src/G4AssemblyVolume.cc | 154 +- .../geometry/management/src/G4DrawVoxels.cc | 29 +- .../management/src/G4GeometryManager.cc | 214 +- .../management/src/G4LogicalVolume.cc | 233 +- .../management/src/G4LogicalVolumeStore.cc | 92 +- .../management/src/G4PVParameterised.cc | 2 +- .../geometry/management/src/G4PVPlacement.cc | 2 +- source/geometry/management/src/G4PVReplica.cc | 5 +- .../management/src/G4PhysicalVolumeStore.cc | 95 +- .../management/src/G4SmartVoxelHeader.cc | 2205 +- .../management/src/G4SmartVoxelNode.cc | 21 +- .../management/src/G4SmartVoxelProxy.cc | 38 + .../management/src/G4SmartVoxelStat.cc | 2 +- .../geometry/management/src/G4SolidStore.cc | 108 +- .../management/src/G4VPVParameterisation.cc | 2 +- .../management/src/G4VPhysicalVolume.cc | 2 +- source/geometry/management/src/G4VSolid.cc | 455 +- .../geometry/management/src/G4VoxelLimits.cc | 419 +- source/geometry/solids/BREPS/History | 61 +- .../solids/BREPS/include/G4Assembly.hh | 2 +- .../solids/BREPS/include/G4Assembly.icc | 2 +- .../BREPS/include/G4Axis2Placement3D.hh | 2 +- .../BREPS/include/G4Axis2Placement3D.icc | 2 +- .../solids/BREPS/include/G4BREPSolid.hh | 2 +- .../solids/BREPS/include/G4BREPSolid.icc | 2 +- .../solids/BREPS/include/G4BREPSolidBox.hh | 2 +- .../solids/BREPS/include/G4BREPSolidCone.hh | 2 +- .../BREPS/include/G4BREPSolidCylinder.hh | 2 +- .../BREPS/include/G4BREPSolidOpenPCone.hh | 2 +- .../solids/BREPS/include/G4BREPSolidPCone.hh | 11 +- .../BREPS/include/G4BREPSolidPolyhedra.hh | 25 +- .../solids/BREPS/include/G4BREPSolidSphere.hh | 2 +- .../solids/BREPS/include/G4BREPSolidTorus.hh | 2 +- .../solids/BREPS/include/G4BSplineCurve.hh | 2 +- .../solids/BREPS/include/G4BSplineCurve.icc | 2 +- .../BREPS/include/G4BSplineCurveWithKnots.hh | 2 +- .../solids/BREPS/include/G4BSplineSurface.hh | 2 +- .../solids/BREPS/include/G4BSplineSurface.icc | 2 +- .../include/G4BSplineSurfaceWithKnots.hh | 2 +- .../solids/BREPS/include/G4BezierSurface.hh | 2 +- .../solids/BREPS/include/G4BezierSurface.icc | 2 +- .../solids/BREPS/include/G4BoundingBox3D.hh | 2 +- .../solids/BREPS/include/G4BoundingBox3D.icc | 2 +- .../solids/BREPS/include/G4CircularCurve.hh | 2 +- .../solids/BREPS/include/G4CircularCurve.icc | 2 +- .../solids/BREPS/include/G4CompositeCurve.hh | 2 +- .../solids/BREPS/include/G4CompositeCurve.icc | 2 +- .../geometry/solids/BREPS/include/G4Conic.hh | 2 +- .../geometry/solids/BREPS/include/G4Conic.icc | 2 +- .../solids/BREPS/include/G4ConicalSurface.hh | 2 +- .../solids/BREPS/include/G4ConicalSurface.icc | 2 +- .../solids/BREPS/include/G4ControlPoints.hh | 2 +- .../solids/BREPS/include/G4ControlPoints.icc | 2 +- .../solids/BREPS/include/G4ConvexHull.hh | 6 +- .../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 | 7 +- .../solids/BREPS/include/G4FPlane.icc | 2 +- .../solids/BREPS/include/G4Globals.hh | 2 +- .../solids/BREPS/include/G4Hyperbola.hh | 2 +- .../solids/BREPS/include/G4Hyperbola.icc | 2 +- .../solids/BREPS/include/G4KnotVector.hh | 2 +- .../solids/BREPS/include/G4KnotVector.icc | 2 +- .../geometry/solids/BREPS/include/G4Line.hh | 2 +- .../geometry/solids/BREPS/include/G4Line.icc | 2 +- .../solids/BREPS/include/G4OsloMatrix.hh | 2 +- .../solids/BREPS/include/G4OsloMatrix.icc | 2 +- .../solids/BREPS/include/G4Parabola.hh | 2 +- .../solids/BREPS/include/G4Parabola.icc | 2 +- .../solids/BREPS/include/G4PlacedSolid.hh | 2 +- .../solids/BREPS/include/G4PlacedSolid.icc | 2 +- .../solids/BREPS/include/G4PlacementVector.hh | 2 +- .../geometry/solids/BREPS/include/G4Plane.hh | 2 +- .../solids/BREPS/include/G4Point3DVector.hh | 2 +- .../solids/BREPS/include/G4PointRat.hh | 2 +- .../solids/BREPS/include/G4PointRat.icc | 2 +- .../BREPS/include/G4ProjectedSurface.hh | 2 +- .../BREPS/include/G4ProjectedSurface.icc | 2 +- source/geometry/solids/BREPS/include/G4Ray.hh | 2 +- .../geometry/solids/BREPS/include/G4Ray.icc | 2 +- .../include/G4RectangularTrimmedSurface.hh | 2 +- .../solids/BREPS/include/G4STEPEntity.hh | 2 +- .../geometry/solids/BREPS/include/G4Sort.hh | 2 +- .../BREPS/include/G4SphericalSurface.hh | 2 +- .../BREPS/include/G4SphericalSurface.icc | 2 +- .../solids/BREPS/include/G4Surface.hh | 2 +- .../solids/BREPS/include/G4Surface.icc | 2 +- .../solids/BREPS/include/G4SurfaceBoundary.hh | 2 +- .../BREPS/include/G4SurfaceBoundary.icc | 2 +- .../solids/BREPS/include/G4SurfaceList.hh | 2 +- .../include/G4SurfaceOfLinearExtrusion.hh | 2 +- .../BREPS/include/G4SurfaceOfRevolution.hh | 2 +- .../solids/BREPS/include/G4ThreeMat.hh | 2 +- .../solids/BREPS/include/G4ToroidalSurface.hh | 2 +- .../BREPS/include/G4ToroidalSurface.icc | 2 +- .../geometry/solids/BREPS/include/G4UVHit.hh | 2 +- .../geometry/solids/BREPS/src/G4Assembly.cc | 2 +- .../solids/BREPS/src/G4Axis2Placement3D.cc | 2 +- .../geometry/solids/BREPS/src/G4BREPSolid.cc | 2 +- .../solids/BREPS/src/G4BREPSolidBox.cc | 2 +- .../solids/BREPS/src/G4BREPSolidCone.cc | 2 +- .../solids/BREPS/src/G4BREPSolidCylinder.cc | 2 +- .../solids/BREPS/src/G4BREPSolidOpenPCone.cc | 2 +- .../solids/BREPS/src/G4BREPSolidPCone.cc | 568 +- .../solids/BREPS/src/G4BREPSolidPolyhedra.cc | 717 +- .../solids/BREPS/src/G4BREPSolidSphere.cc | 2 +- .../solids/BREPS/src/G4BREPSolidTorus.cc | 2 +- .../solids/BREPS/src/G4BSplineCurve.cc | 2 +- .../BREPS/src/G4BSplineCurveWithKnots.cc | 2 +- .../solids/BREPS/src/G4BSplineSurface.cc | 2 +- .../BREPS/src/G4BSplineSurfaceWithKnots.cc | 2 +- .../solids/BREPS/src/G4BezierSurface.cc | 2 +- .../solids/BREPS/src/G4BoundingBox3D.cc | 2 +- .../solids/BREPS/src/G4CircularCurve.cc | 2 +- .../solids/BREPS/src/G4CompositeCurve.cc | 2 +- source/geometry/solids/BREPS/src/G4Conic.cc | 2 +- .../solids/BREPS/src/G4ConicalSurface.cc | 2 +- .../solids/BREPS/src/G4ControlPoints.cc | 2 +- source/geometry/solids/BREPS/src/G4Curve.cc | 2 +- .../geometry/solids/BREPS/src/G4CurvePoint.cc | 2 +- .../BREPS/src/G4CurveRayIntersection.cc | 2 +- .../solids/BREPS/src/G4CylindricalSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Ellipse.cc | 2 +- .../solids/BREPS/src/G4FConicalSurface.cc | 2 +- .../solids/BREPS/src/G4FCylindricalSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4FPlane.cc | 17 +- .../geometry/solids/BREPS/src/G4Hyperbola.cc | 2 +- .../geometry/solids/BREPS/src/G4KnotVector.cc | 2 +- source/geometry/solids/BREPS/src/G4Line.cc | 2 +- .../geometry/solids/BREPS/src/G4OsloMatrix.cc | 2 +- .../geometry/solids/BREPS/src/G4Parabola.cc | 2 +- .../solids/BREPS/src/G4PlacedSolid.cc | 2 +- .../geometry/solids/BREPS/src/G4PointRat.cc | 2 +- .../solids/BREPS/src/G4ProjectedSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Ray.cc | 2 +- .../BREPS/src/G4RectangularTrimmedSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Sort.cc | 2 +- .../solids/BREPS/src/G4SphericalSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Surface.cc | 2 +- .../solids/BREPS/src/G4SurfaceBoundary.cc | 2 +- .../solids/BREPS/src/G4SurfaceList.cc | 2 +- .../BREPS/src/G4SurfaceOfLinearExtrusion.cc | 2 +- .../solids/BREPS/src/G4SurfaceOfRevolution.cc | 2 +- .../geometry/solids/BREPS/src/G4ThreeMat.cc | 2 +- .../solids/BREPS/src/G4ToroidalSurface.cc | 2 +- source/geometry/solids/Boolean/GNUmakefile | 6 +- source/geometry/solids/Boolean/History | 28 +- .../solids/Boolean/include/G4BooleanSolid.hh | 2 +- .../Boolean/include/G4DisplacedSolid.hh | 2 +- .../Boolean/include/G4IntersectionSolid.hh | 2 +- .../Boolean/include/G4ReflectedSolid.hh | 41 +- .../Boolean/include/G4ReflectionFactory.hh | 2 +- .../Boolean/include/G4SubtractionSolid.hh | 2 +- .../solids/Boolean/include/G4UnionSolid.hh | 2 +- .../solids/Boolean/src/G4BooleanSolid.cc | 8 +- .../solids/Boolean/src/G4DisplacedSolid.cc | 2 +- .../solids/Boolean/src/G4IntersectionSolid.cc | 71 +- .../solids/Boolean/src/G4ReflectedSolid.cc | 310 +- .../solids/Boolean/src/G4ReflectionFactory.cc | 65 +- .../solids/Boolean/src/G4SubtractionSolid.cc | 68 +- .../solids/Boolean/src/G4UnionSolid.cc | 74 +- source/geometry/solids/CSG/GNUmakefile | 6 +- source/geometry/solids/CSG/History | 42 +- source/geometry/solids/CSG/include/G4Box.hh | 2 +- .../geometry/solids/CSG/include/G4CSGSolid.hh | 2 +- source/geometry/solids/CSG/include/G4Cons.hh | 2 +- source/geometry/solids/CSG/include/G4Para.hh | 2 +- .../geometry/solids/CSG/include/G4Sphere.hh | 2 +- source/geometry/solids/CSG/include/G4Torus.hh | 2 +- source/geometry/solids/CSG/include/G4Trap.hh | 2 +- source/geometry/solids/CSG/include/G4Trd.hh | 2 +- source/geometry/solids/CSG/include/G4Tubs.hh | 2 +- source/geometry/solids/CSG/src/G4Box.cc | 13 +- source/geometry/solids/CSG/src/G4CSGSolid.cc | 2 +- source/geometry/solids/CSG/src/G4Cons.cc | 16 +- source/geometry/solids/CSG/src/G4Para.cc | 131 +- source/geometry/solids/CSG/src/G4Sphere.cc | 289 +- source/geometry/solids/CSG/src/G4Torus.cc | 25 +- source/geometry/solids/CSG/src/G4Trap.cc | 40 +- source/geometry/solids/CSG/src/G4Trd.cc | 26 +- source/geometry/solids/CSG/src/G4Tubs.cc | 77 +- source/geometry/solids/STEP/include/classes.h | 2 +- source/geometry/solids/STEPinterface/History | 5 +- ...4AdvancedBrepShapeRepresentationCreator.hh | 2 +- .../include/G4AdvancedFaceCreator.hh | 2 +- .../include/G4AssemblyCreator.hh | 2 +- .../include/G4Axis1PlacementCreator.hh | 2 +- .../include/G4Axis2Placement2dCreator.hh | 2 +- .../include/G4Axis2Placement3dCreator.hh | 2 +- .../include/G4Axis2PlacementCreator.hh | 2 +- .../include/G4Axis2PlacementsCreator.hh | 2 +- .../include/G4BSplineCurveWithKnotsCreator.hh | 2 +- .../include/G4BSplineSurfaceCreator.hh | 2 +- .../G4BSplineSurfaceWithKnotsCreator.hh | 2 +- .../include/G4BoundedSurfaceCreator.hh | 2 +- .../include/G4CartesianPointCreator.hh | 2 +- .../STEPinterface/include/G4CircleCreator.hh | 2 +- .../include/G4ClosedShellCreator.hh | 2 +- .../STEPinterface/include/G4ConicCreator.hh | 2 +- .../include/G4ConicalSurfaceCreator.hh | 2 +- .../include/G4ConnectedFaceSetCreator.hh | 2 +- ...textDependentShapeRepresentationCreator.hh | 2 +- .../STEPinterface/include/G4CurveCreator.hh | 2 +- .../include/G4CylindricalSurfaceCreator.hh | 2 +- .../include/G4DirectionCreator.hh | 2 +- .../include/G4EdgeCurveCreator.hh | 2 +- .../include/G4EdgeLoopCreator.hh | 2 +- .../STEPinterface/include/G4EllipseCreator.hh | 2 +- .../include/G4FaceBoundCreator.hh | 2 +- .../include/G4FaceOuterBoundCreator.hh | 2 +- .../include/G4FaceSurfaceCreator.hh | 2 +- ...G4GeometricRepresentationContextCreator.hh | 2 +- .../include/G4GeometryCreator.hh | 2 +- .../STEPinterface/include/G4GeometryTable.hh | 2 +- .../include/G4HyperbolaCreator.hh | 2 +- .../G4ItemDefinedTransformationCreator.hh | 2 +- .../STEPinterface/include/G4LineCreator.hh | 2 +- .../include/G4ManifoldSolidBrepCreator.hh | 2 +- .../STEPinterface/include/G4NISTStepReader.hh | 2 +- .../include/G4OpenShellCreator.hh | 2 +- .../include/G4OrientedEdgeCreator.hh | 2 +- .../include/G4ParabolaCreator.hh | 2 +- .../STEPinterface/include/G4PlaneCreator.hh | 2 +- .../STEPinterface/include/G4PointCreator.hh | 2 +- .../include/G4PointOnCurveCreator.hh | 2 +- .../include/G4PointOnSurfaceCreator.hh | 2 +- .../include/G4PointReplicaCreator.hh | 2 +- .../G4ProductDefinitionShapeCreator.hh | 2 +- .../G4RationalBSplineSurfaceCreator.hh | 2 +- .../G4RepresentationRelationshipCreator.hh | 2 +- ...onRelationshipWithTransformationCreator.hh | 2 +- .../G4ShapeDefinitionRepresentationCreator.hh | 2 +- .../include/G4ShapeRepresentationCreator.hh | 2 +- ...4ShapeRepresentationRelationshipCreator.hh | 2 +- .../include/G4SphericalSurfaceCreator.hh | 2 +- .../STEPinterface/include/G4StepFileReader.hh | 2 +- .../include/G4ToroidalSurfaceCreator.hh | 2 +- .../STEPinterface/include/G4VectorCreator.hh | 2 +- .../include/G4VertexPointCreator.hh | 2 +- ...4AdvancedBrepShapeRepresentationCreator.cc | 2 +- .../src/G4AdvancedFaceCreator.cc | 2 +- .../STEPinterface/src/G4AssemblyCreator.cc | 2 +- .../src/G4Axis1PlacementCreator.cc | 2 +- .../src/G4Axis2Placement2dCreator.cc | 2 +- .../src/G4Axis2Placement3dCreator.cc | 2 +- .../src/G4Axis2PlacementCreator.cc | 2 +- .../src/G4Axis2PlacementsCreator.cc | 2 +- .../src/G4BSplineCurveWithKnotsCreator.cc | 2 +- .../src/G4BSplineSurfaceCreator.cc | 2 +- .../src/G4BSplineSurfaceWithKnotsCreator.cc | 2 +- .../src/G4BoundedSurfaceCreator.cc | 2 +- .../src/G4CartesianPointCreator.cc | 2 +- .../STEPinterface/src/G4CircleCreator.cc | 2 +- .../STEPinterface/src/G4ClosedShellCreator.cc | 2 +- .../STEPinterface/src/G4ConicCreator.cc | 2 +- .../src/G4ConicalSurfaceCreator.cc | 2 +- .../src/G4ConnectedFaceSetCreator.cc | 2 +- ...textDependentShapeRepresentationCreator.cc | 2 +- .../STEPinterface/src/G4CurveCreator.cc | 2 +- .../src/G4CylindricalSurfaceCreator.cc | 2 +- .../STEPinterface/src/G4DirectionCreator.cc | 2 +- .../STEPinterface/src/G4EdgeCurveCreator.cc | 2 +- .../STEPinterface/src/G4EdgeLoopCreator.cc | 2 +- .../STEPinterface/src/G4EllipseCreator.cc | 2 +- .../STEPinterface/src/G4FaceBoundCreator.cc | 2 +- .../src/G4FaceOuterBoundCreator.cc | 2 +- .../STEPinterface/src/G4FaceSurfaceCreator.cc | 2 +- ...G4GeometricRepresentationContextCreator.cc | 2 +- .../STEPinterface/src/G4GeometryCreator.cc | 2 +- .../STEPinterface/src/G4GeometryTable.cc | 2 +- .../STEPinterface/src/G4HyperbolaCreator.cc | 2 +- .../src/G4ItemDefinedTransformationCreator.cc | 2 +- .../solids/STEPinterface/src/G4LineCreator.cc | 2 +- .../src/G4ManifoldSolidBrepCreator.cc | 2 +- .../STEPinterface/src/G4NISTStepReader.cc | 2 +- .../STEPinterface/src/G4OpenShellCreator.cc | 2 +- .../src/G4OrientedEdgeCreator.cc | 2 +- .../STEPinterface/src/G4ParabolaCreator.cc | 2 +- .../STEPinterface/src/G4PlaneCreator.cc | 2 +- .../STEPinterface/src/G4PointCreator.cc | 2 +- .../src/G4PointOnCurveCreator.cc | 2 +- .../src/G4PointOnSurfaceCreator.cc | 2 +- .../src/G4PointReplicaCreator.cc | 2 +- .../src/G4ProductDefinitionShapeCreator.cc | 2 +- .../src/G4RationalBSplineSurfaceCreator.cc | 2 +- .../G4RepresentationRelationshipCreator.cc | 6 +- ...onRelationshipWithTransformationCreator.cc | 2 +- .../G4ShapeDefinitionRepresentationCreator.cc | 2 +- .../src/G4ShapeRepresentationCreator.cc | 2 +- ...4ShapeRepresentationRelationshipCreator.cc | 2 +- .../src/G4SphericalSurfaceCreator.cc | 2 +- .../src/G4ToroidalSurfaceCreator.cc | 2 +- .../STEPinterface/src/G4VectorCreator.cc | 2 +- .../STEPinterface/src/G4VertexPointCreator.cc | 2 +- source/geometry/solids/specific/History | 8 +- .../specific/include/G4ClippablePolygon.hh | 2 +- .../specific/include/G4ClippablePolygon.icc | 2 +- .../specific/include/G4EllipticalTube.hh | 2 +- .../specific/include/G4EnclosingCylinder.hh | 2 +- .../solids/specific/include/G4Hype.hh | 2 +- .../solids/specific/include/G4Hype.icc | 2 +- .../specific/include/G4IntersectingCone.hh | 2 +- .../solids/specific/include/G4PolyPhiFace.hh | 2 +- .../solids/specific/include/G4PolyPhiFace.icc | 2 +- .../solids/specific/include/G4Polycone.hh | 2 +- .../solids/specific/include/G4PolyconeSide.hh | 2 +- .../solids/specific/include/G4Polyhedra.hh | 2 +- .../specific/include/G4PolyhedraSide.hh | 2 +- .../specific/include/G4ReduciblePolygon.hh | 2 +- .../specific/include/G4SolidExtentList.hh | 2 +- .../solids/specific/include/G4VCSGface.hh | 2 +- .../solids/specific/include/G4VCSGfaceted.hh | 2 +- .../solids/specific/src/G4ClippablePolygon.cc | 2 +- .../solids/specific/src/G4EllipticalTube.cc | 18 +- .../specific/src/G4EnclosingCylinder.cc | 2 +- source/geometry/solids/specific/src/G4Hype.cc | 2 +- .../solids/specific/src/G4IntersectingCone.cc | 2 +- .../solids/specific/src/G4PolyPhiFace.cc | 2 +- .../solids/specific/src/G4Polycone.cc | 2 +- .../solids/specific/src/G4PolyconeSide.cc | 2 +- .../solids/specific/src/G4Polyhedra.cc | 2 +- .../solids/specific/src/G4PolyhedraSide.cc | 2 +- .../solids/specific/src/G4ReduciblePolygon.cc | 2 +- .../solids/specific/src/G4SolidExtentList.cc | 2 +- .../solids/specific/src/G4VCSGfaceted.cc | 2 +- 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 | 6 +- .../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 | 8 +- .../verification/src/G4GeomTestVolPoint.cc | 2 +- .../verification/src/G4GeomTestVolume.cc | 2 +- source/geometry/volumes/GNUmakefile | 9 +- source/geometry/volumes/History | 95 +- .../volumes/include/G4AuxiliaryNavServices.hh | 2 +- .../include/G4AuxiliaryNavServices.icc | 12 +- .../volumes/include/G4BlockingList.hh | 2 +- .../volumes/include/G4BlockingList.icc | 14 +- source/geometry/volumes/include/G4GRSSolid.hh | 2 +- .../geometry/volumes/include/G4GRSSolid.icc | 2 +- .../volumes/include/G4GRSSolidHandle.hh | 2 +- .../geometry/volumes/include/G4GRSVolume.hh | 2 +- .../geometry/volumes/include/G4GRSVolume.icc | 2 +- .../volumes/include/G4GRSVolumeHandle.hh | 2 +- .../volumes/include/G4GeometryMessenger.hh | 22 +- .../volumes/include/G4LogicalBorderSurface.hh | 2 +- .../include/G4LogicalBorderSurface.icc | 2 +- .../volumes/include/G4LogicalSkinSurface.hh | 2 +- .../volumes/include/G4LogicalSkinSurface.icc | 2 +- .../volumes/include/G4NavigationHistory.hh | 2 +- .../volumes/include/G4NavigationHistory.icc | 24 +- .../volumes/include/G4NavigationLevel.hh | 2 +- .../volumes/include/G4NavigationLevel.icc | 2 +- .../volumes/include/G4NavigationLevelRep.hh | 2 +- .../volumes/include/G4NavigationLevelRep.icc | 2 +- .../geometry/volumes/include/G4Navigator.hh | 78 +- .../geometry/volumes/include/G4Navigator.icc | 321 +- .../volumes/include/G4NormalNavigation.hh | 2 +- .../volumes/include/G4NormalNavigation.icc | 124 +- .../include/G4ParameterisedNavigation.hh | 103 +- .../include/G4ParameterisedNavigation.icc | 316 +- .../volumes/include/G4PropagatorInField.hh | 9 +- .../volumes/include/G4PropagatorInField.icc | 49 +- .../volumes/include/G4ReplicaNavigation.hh | 2 +- .../volumes/include/G4ReplicaNavigation.icc | 232 +- .../volumes/include/G4TouchableHistory.hh | 2 +- .../volumes/include/G4TouchableHistory.icc | 2 +- .../include/G4TouchableHistoryHandle.hh | 2 +- .../include/G4TransportationManager.hh | 2 +- .../include/G4TransportationManager.icc | 2 +- .../volumes/include/G4VoxelNavigation.hh | 85 +- .../volumes/include/G4VoxelNavigation.icc | 216 +- source/geometry/volumes/src/G4BlockingList.cc | 14 +- source/geometry/volumes/src/G4GRSSolid.cc | 2 +- source/geometry/volumes/src/G4GRSVolume.cc | 2 +- .../volumes/src/G4GeometryMessenger.cc | 207 +- .../volumes/src/G4LogicalBorderSurface.cc | 2 +- .../volumes/src/G4LogicalSkinSurface.cc | 2 +- .../volumes/src/G4NavigationHistory.cc | 22 +- source/geometry/volumes/src/G4Navigator.cc | 1585 +- .../volumes/src/G4NormalNavigation.cc | 2 +- .../volumes/src/G4ParameterisedNavigation.cc | 634 +- .../volumes/src/G4PropagatorInField.cc | 56 +- .../volumes/src/G4ReplicaNavigation.cc | 2 +- .../volumes/src/G4TouchableHistory.cc | 2 +- .../volumes/src/G4TransportationManager.cc | 2 +- .../geometry/volumes/src/G4VoxelNavigation.cc | 1020 +- .../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 | 7 +- .../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 | 2 +- .../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 | 48 +- .../global/management/include/G4Allocator.hh | 168 +- .../management/include/G4AllocatorPage.hh | 6 +- .../management/include/G4AllocatorUnit.hh | 6 +- .../management/include/G4ApplicationState.hh | 2 +- .../global/management/include/G4DataVector.hh | 24 +- .../global/management/include/G4FastVector.hh | 2 +- .../include/G4LPhysicsFreeVector.hh | 2 +- .../include/G4LPhysicsFreeVector.icc | 2 +- .../management/include/G4OrderedTable.hh | 18 +- .../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 | 11 +- source/global/management/include/G4String.hh | 12 +- source/global/management/include/G4String.icc | 12 +- .../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 | 2 +- .../global/management/include/G4UserLimits.hh | 2 +- .../management/include/G4UserLimits.icc | 2 +- .../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 | 40 +- .../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 | 7 +- source/global/management/include/g4std/vector | 2 +- .../include/g4std/wrappers/DEC-cxx/cmath | 4 - .../include/g4std/wrappers/HP-aCC/fstream | 1 - .../include/g4std/wrappers/HP-aCC/iomanip | 1 - .../include/g4std/wrappers/HP-aCC/iostream | 1 - .../include/g4std/wrappers/HP-aCC/strstream | 1 - .../include/g4std/wrappers/SUN-CC4/cmath | 10 - .../include/g4std/wrappers/SUN-CC4/cstdio | 1 - .../include/g4std/wrappers/SUN-CC4/cstdlib | 8 - .../include/g4std/wrappers/SUN-CC4/cstring | 1 - source/global/management/include/globals.hh | 2 +- source/global/management/include/templates.hh | 2 +- source/global/management/src/G4DataVector.cc | 23 +- source/global/management/src/G4Exception.cc | 6 +- .../management/src/G4LPhysicsFreeVector.cc | 2 +- .../global/management/src/G4OrderedTable.cc | 18 +- .../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 | 13 +- source/global/management/src/G4Timer.cc | 6 +- source/global/management/src/G4UnitsTable.cc | 13 +- .../management/src/G4VStateDependent.cc | 2 +- source/global/management/src/G4ios.cc | 2 +- source/graphics_reps/include/G4Circle.hh | 2 +- source/graphics_reps/include/G4Color.hh | 2 +- source/graphics_reps/include/G4Colour.hh | 2 +- source/graphics_reps/include/G4NURBS.hh | 2 +- source/graphics_reps/include/G4NURBSbox.hh | 2 +- .../graphics_reps/include/G4NURBScylinder.hh | 2 +- .../include/G4NURBShexahedron.hh | 2 +- source/graphics_reps/include/G4NURBStube.hh | 2 +- .../include/G4NURBStubesector.hh | 2 +- .../include/G4PlacedPolyhedron.hh | 2 +- source/graphics_reps/include/G4Point3DList.hh | 2 +- source/graphics_reps/include/G4Polyhedron.hh | 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 | 2 +- source/graphics_reps/include/G4Scale.icc | 2 +- source/graphics_reps/include/G4Square.hh | 2 +- source/graphics_reps/include/G4Square.icc | 2 +- source/graphics_reps/include/G4Text.hh | 2 +- source/graphics_reps/include/G4Text.icc | 2 +- source/graphics_reps/include/G4VMarker.hh | 2 +- source/graphics_reps/include/G4VMarker.icc | 2 +- source/graphics_reps/include/G4VVisPrim.hh | 2 +- .../graphics_reps/include/G4VisAttributes.hh | 2 +- .../graphics_reps/include/G4VisAttributes.icc | 2 +- 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 | 2 +- source/graphics_reps/src/G4Circle.cc | 2 +- source/graphics_reps/src/G4Colour.cc | 2 +- source/graphics_reps/src/G4NURBS.cc | 2 +- source/graphics_reps/src/G4NURBSbox.cc | 2 +- source/graphics_reps/src/G4NURBScylinder.cc | 2 +- source/graphics_reps/src/G4NURBShexahedron.cc | 2 +- source/graphics_reps/src/G4NURBStube.cc | 2 +- source/graphics_reps/src/G4NURBStubesector.cc | 2 +- .../graphics_reps/src/G4PlacedPolyhedron.cc | 2 +- source/graphics_reps/src/G4Point3DList.cc | 2 +- source/graphics_reps/src/G4Polyhedron.cc | 2 +- source/graphics_reps/src/G4Polyline.cc | 2 +- source/graphics_reps/src/G4Polymarker.cc | 2 +- source/graphics_reps/src/G4Scale.cc | 2 +- source/graphics_reps/src/G4Square.cc | 2 +- source/graphics_reps/src/G4Text.cc | 2 +- source/graphics_reps/src/G4VMarker.cc | 2 +- source/graphics_reps/src/G4VVisPrim.cc | 2 +- source/graphics_reps/src/G4VisAttributes.cc | 2 +- source/graphics_reps/src/G4VisExtent.cc | 2 +- source/graphics_reps/src/G4Visible.cc | 2 +- source/graphics_reps/src/HepPolyhedron.cc | 2 +- source/intercoms/History | 20 +- source/intercoms/include/G4UIaliasList.hh | 14 +- source/intercoms/include/G4UIbatch.hh | 6 +- .../intercoms/include/G4UIcmdWith3Vector.hh | 6 +- .../include/G4UIcmdWith3VectorAndUnit.hh | 10 +- source/intercoms/include/G4UIcmdWithABool.hh | 6 +- .../intercoms/include/G4UIcmdWithADouble.hh | 6 +- .../include/G4UIcmdWithADoubleAndUnit.hh | 10 +- .../intercoms/include/G4UIcmdWithAString.hh | 2 +- .../intercoms/include/G4UIcmdWithAnInteger.hh | 6 +- .../include/G4UIcmdWithoutParameter.hh | 2 +- source/intercoms/include/G4UIcommand.hh | 28 +- source/intercoms/include/G4UIcommandStatus.hh | 2 +- source/intercoms/include/G4UIcommandTree.hh | 14 +- .../intercoms/include/G4UIcontrolMessenger.hh | 6 +- source/intercoms/include/G4UIdirectory.hh | 2 +- source/intercoms/include/G4UImanager.hh | 42 +- source/intercoms/include/G4UImessenger.hh | 2 +- source/intercoms/include/G4UIparameter.hh | 12 +- source/intercoms/include/G4UIsession.hh | 2 +- source/intercoms/include/G4UItokenNum.hh | 2 +- source/intercoms/include/G4UnitsMessenger.hh | 2 +- .../include/G4VFlavoredParallelWorld.hh | 2 +- .../include/G4VGlobalFastSimulationManager.hh | 2 +- source/intercoms/include/G4VGraphicsScene.hh | 2 +- source/intercoms/include/G4VVisManager.hh | 2 +- source/intercoms/src/G4UIaliasList.cc | 14 +- source/intercoms/src/G4UIbatch.cc | 9 +- source/intercoms/src/G4UIcmdWith3Vector.cc | 9 +- .../src/G4UIcmdWith3VectorAndUnit.cc | 19 +- source/intercoms/src/G4UIcmdWithABool.cc | 6 +- source/intercoms/src/G4UIcmdWithADouble.cc | 9 +- .../src/G4UIcmdWithADoubleAndUnit.cc | 19 +- source/intercoms/src/G4UIcmdWithAString.cc | 2 +- source/intercoms/src/G4UIcmdWithAnInteger.cc | 9 +- .../intercoms/src/G4UIcmdWithoutParameter.cc | 2 +- source/intercoms/src/G4UIcommand.cc | 22 +- source/intercoms/src/G4UIcommandTree.cc | 21 +- source/intercoms/src/G4UIcontrolMessenger.cc | 17 +- source/intercoms/src/G4UIdirectory.cc | 2 +- source/intercoms/src/G4UImanager.cc | 135 +- source/intercoms/src/G4UImessenger.cc | 2 +- source/intercoms/src/G4UIparameter.cc | 32 +- source/intercoms/src/G4UIsession.cc | 2 +- source/intercoms/src/G4UnitsMessenger.cc | 2 +- .../src/G4VGlobalFastSimulationManager.cc | 2 +- source/intercoms/src/G4VVisManager.cc | 2 +- source/interfaces/GAG/include/G4UIGAG.hh | 2 +- .../interfaces/GAG/include/G4UIGainServer.hh | 173 + source/interfaces/GAG/src/G4UIGAG.cc | 8 +- source/interfaces/GAG/src/G4UIGainServer.cc | 954 + source/interfaces/History | 24 +- 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 | 2 +- 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 | 2 +- source/interfaces/basic/src/G4UIWin32.cc | 2 +- source/interfaces/basic/src/G4UIXaw.cc | 2 +- source/interfaces/basic/src/G4UIXm.cc | 2 +- source/interfaces/basic/src/G4UIcsh.cc | 5 +- source/interfaces/basic/src/G4UItcsh.cc | 2 +- source/interfaces/basic/src/G4UIterminal.cc | 2 +- source/interfaces/basic/src/G4VUIshell.cc | 6 +- .../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 | 6 +- .../common/src/G4VInteractorManager.cc | 2 +- source/interfaces/common/src/G4Win32.cc | 2 +- source/interfaces/common/src/G4Xt.cc | 2 +- source/materials/History | 20 +- source/materials/include/G4AtomicShells.hh | 2 +- source/materials/include/G4Element.hh | 25 +- source/materials/include/G4ElementTable.hh | 2 +- source/materials/include/G4ElementVector.hh | 2 +- source/materials/include/G4IonisParamElm.hh | 2 +- source/materials/include/G4IonisParamMat.hh | 2 +- source/materials/include/G4Isotope.hh | 23 +- source/materials/include/G4IsotopeVector.hh | 2 +- source/materials/include/G4MPVEntry.hh | 2 +- source/materials/include/G4Material.hh | 23 +- .../include/G4MaterialPropertiesTable.hh | 2 +- .../include/G4MaterialPropertyVector.hh | 12 +- source/materials/include/G4MaterialTable.hh | 2 +- source/materials/include/G4OpticalSurface.hh | 2 +- source/materials/include/G4SandiaTable.hh | 2 +- .../materials/include/G4StaticSandiaData.hh | 7 +- source/materials/src/G4AtomicShells.cc | 2 +- source/materials/src/G4Element.cc | 14 +- source/materials/src/G4IonisParamElm.cc | 2 +- source/materials/src/G4IonisParamMat.cc | 2 +- source/materials/src/G4Isotope.cc | 13 +- source/materials/src/G4MPVEntry.cc | 2 +- source/materials/src/G4Material.cc | 139 +- .../src/G4MaterialPropertiesTable.cc | 2 +- .../materials/src/G4MaterialPropertyVector.cc | 5 +- 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 | 2 +- .../hadrons/barions/src/G4AntiSigmaPlus.cc | 2 +- .../hadrons/barions/src/G4AntiSigmaZero.cc | 2 +- .../hadrons/barions/src/G4AntiSigmacPlus.cc | 2 +- .../barions/src/G4AntiSigmacPlusPlus.cc | 2 +- .../hadrons/barions/src/G4AntiSigmacZero.cc | 2 +- .../hadrons/barions/src/G4AntiXiMinus.cc | 2 +- .../hadrons/barions/src/G4AntiXiZero.cc | 2 +- .../hadrons/barions/src/G4AntiXicPlus.cc | 2 +- .../hadrons/barions/src/G4AntiXicZero.cc | 2 +- .../barions/src/G4BaryonConstructor.cc | 2 +- .../particles/hadrons/barions/src/G4Lambda.cc | 2 +- .../hadrons/barions/src/G4LambdacPlus.cc | 2 +- .../hadrons/barions/src/G4Neutron.cc | 2 +- .../hadrons/barions/src/G4OmegaMinus.cc | 2 +- .../hadrons/barions/src/G4OmegacZero.cc | 2 +- .../particles/hadrons/barions/src/G4Proton.cc | 2 +- .../hadrons/barions/src/G4SigmaMinus.cc | 2 +- .../hadrons/barions/src/G4SigmaPlus.cc | 2 +- .../hadrons/barions/src/G4SigmaZero.cc | 2 +- .../hadrons/barions/src/G4SigmacPlus.cc | 2 +- .../hadrons/barions/src/G4SigmacPlusPlus.cc | 2 +- .../hadrons/barions/src/G4SigmacZero.cc | 2 +- .../hadrons/barions/src/G4VBaryon.cc | 2 +- .../hadrons/barions/src/G4XiMinus.cc | 2 +- .../particles/hadrons/barions/src/G4XiZero.cc | 2 +- .../hadrons/barions/src/G4XicPlus.cc | 2 +- .../hadrons/barions/src/G4XicZero.cc | 2 +- .../particles/hadrons/ions/include/G4Alpha.hh | 2 +- .../hadrons/ions/include/G4Deuteron.hh | 2 +- .../hadrons/ions/include/G4GenericIon.hh | 2 +- .../particles/hadrons/ions/include/G4He3.hh | 2 +- .../hadrons/ions/include/G4IonConstructor.hh | 2 +- .../hadrons/ions/include/G4Triton.hh | 2 +- .../particles/hadrons/ions/include/G4VIon.hh | 2 +- source/particles/hadrons/ions/src/G4Alpha.cc | 2 +- .../particles/hadrons/ions/src/G4Deuteron.cc | 2 +- .../hadrons/ions/src/G4GenericIon.cc | 2 +- source/particles/hadrons/ions/src/G4He3.cc | 2 +- .../hadrons/ions/src/G4IonConstructor.cc | 2 +- source/particles/hadrons/ions/src/G4Triton.cc | 2 +- source/particles/hadrons/ions/src/G4VIon.cc | 2 +- .../mesons/include/G4AntiBMesonZero.hh | 2 +- .../mesons/include/G4AntiBsMesonZero.hh | 2 +- .../mesons/include/G4AntiDMesonZero.hh | 2 +- .../hadrons/mesons/include/G4AntiKaonZero.hh | 2 +- .../hadrons/mesons/include/G4BMesonMinus.hh | 2 +- .../hadrons/mesons/include/G4BMesonPlus.hh | 2 +- .../hadrons/mesons/include/G4BMesonZero.hh | 2 +- .../hadrons/mesons/include/G4BsMesonZero.hh | 2 +- .../hadrons/mesons/include/G4DMesonMinus.hh | 2 +- .../hadrons/mesons/include/G4DMesonPlus.hh | 2 +- .../hadrons/mesons/include/G4DMesonZero.hh | 2 +- .../hadrons/mesons/include/G4DsMesonMinus.hh | 2 +- .../hadrons/mesons/include/G4DsMesonPlus.hh | 2 +- .../particles/hadrons/mesons/include/G4Eta.hh | 2 +- .../hadrons/mesons/include/G4EtaPrime.hh | 2 +- .../hadrons/mesons/include/G4JPsi.hh | 2 +- .../hadrons/mesons/include/G4KaonMinus.hh | 2 +- .../hadrons/mesons/include/G4KaonPlus.hh | 2 +- .../hadrons/mesons/include/G4KaonZero.hh | 2 +- .../hadrons/mesons/include/G4KaonZeroLong.hh | 2 +- .../hadrons/mesons/include/G4KaonZeroShort.hh | 2 +- .../mesons/include/G4MesonConstructor.hh | 2 +- .../hadrons/mesons/include/G4PionMinus.hh | 2 +- .../hadrons/mesons/include/G4PionPlus.hh | 2 +- .../hadrons/mesons/include/G4PionZero.hh | 2 +- .../hadrons/mesons/include/G4VMeson.hh | 2 +- .../hadrons/mesons/src/G4AntiBMesonZero.cc | 2 +- .../hadrons/mesons/src/G4AntiBsMesonZero.cc | 2 +- .../hadrons/mesons/src/G4AntiDMesonZero.cc | 2 +- .../hadrons/mesons/src/G4AntiKaonZero.cc | 2 +- .../hadrons/mesons/src/G4BMesonMinus.cc | 2 +- .../hadrons/mesons/src/G4BMesonPlus.cc | 2 +- .../hadrons/mesons/src/G4BMesonZero.cc | 2 +- .../hadrons/mesons/src/G4BsMesonZero.cc | 2 +- .../hadrons/mesons/src/G4DMesonMinus.cc | 2 +- .../hadrons/mesons/src/G4DMesonPlus.cc | 2 +- .../hadrons/mesons/src/G4DMesonZero.cc | 2 +- .../hadrons/mesons/src/G4DsMesonMinus.cc | 2 +- .../hadrons/mesons/src/G4DsMesonPlus.cc | 2 +- source/particles/hadrons/mesons/src/G4Eta.cc | 2 +- .../hadrons/mesons/src/G4EtaPrime.cc | 2 +- source/particles/hadrons/mesons/src/G4JPsi.cc | 2 +- .../hadrons/mesons/src/G4KaonMinus.cc | 16 +- .../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 | 9 +- source/particles/leptons/src/G4TauPlus.cc | 9 +- 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 | 69 + .../management/include/G4VDecayChannel.hh | 2 +- .../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 | 8 +- .../management/src/G4NucleiProperties.cc | 14 +- .../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 | 2 +- .../management/src/G4ParticleTable.cc | 2 +- .../management/src/G4ParticleWithCuts.cc | 2 +- .../src/G4PhaseSpaceDecayChannel.cc | 2 +- .../management/src/G4ShortLivedTable.cc | 2 +- .../src/G4TauLeptonicDecayChannel.cc | 208 + .../management/src/G4VDecayChannel.cc | 2 +- .../shortlived/include/G4DiQuarks.hh | 2 +- .../include/G4ExcitedBaryonConstructor.hh | 2 +- .../shortlived/include/G4ExcitedBaryons.hh | 2 +- .../include/G4ExcitedDeltaConstructor.hh | 2 +- .../include/G4ExcitedLambdaConstructor.hh | 2 +- .../include/G4ExcitedMesonConstructor.hh | 2 +- .../shortlived/include/G4ExcitedMesons.hh | 2 +- .../include/G4ExcitedNucleonConstructor.hh | 2 +- .../include/G4ExcitedSigmaConstructor.hh | 2 +- .../include/G4ExcitedXiConstructor.hh | 2 +- .../particles/shortlived/include/G4Gluons.hh | 2 +- .../particles/shortlived/include/G4Quarks.hh | 2 +- .../include/G4ShortLivedConstructor.hh | 2 +- .../include/G4VShortLivedParticle.hh | 2 +- source/particles/shortlived/src/G4DiQuarks.cc | 2 +- .../src/G4ExcitedBaryonConstructor.cc | 2 +- .../shortlived/src/G4ExcitedBaryons.cc | 2 +- .../src/G4ExcitedDeltaConstructor.cc | 2 +- .../src/G4ExcitedLambdaConstructor.cc | 2 +- .../src/G4ExcitedMesonConstructor.cc | 2 +- .../shortlived/src/G4ExcitedMesons.cc | 2 +- .../src/G4ExcitedNucleonConstructor.cc | 2 +- .../src/G4ExcitedSigmaConstructor.cc | 2 +- .../shortlived/src/G4ExcitedXiConstructor.cc | 2 +- source/particles/shortlived/src/G4Gluons.cc | 2 +- source/particles/shortlived/src/G4Quarks.cc | 2 +- .../shortlived/src/G4ShortLivedConstructor.cc | 2 +- .../shortlived/src/G4VShortLivedParticle.cc | 2 +- .../digits/include/G4PDCofThisEvent.ddl | 2 +- .../digits+hits/digits/include/G4PVDigit.ddl | 2 +- .../digits/include/G4PVDigitsCollection.ddl | 2 +- .../digits/include/G4PersistentDigitMan.hh | 2 +- .../digits/src/G4PDCofThisEvent.cc | 2 +- .../digits+hits/digits/src/G4PVDigit.cc | 2 +- .../digits/src/G4PVDigitsCollection.cc | 2 +- .../digits/src/G4PersistentDigitMan.cc | 2 +- .../hits/include/G4PHCofThisEvent.ddl | 2 +- .../digits+hits/hits/include/G4PVHit.ddl | 2 +- .../hits/include/G4PVHitsCollection.ddl | 2 +- .../hits/include/G4PersistentHitMan.hh | 2 +- .../digits+hits/hits/src/G4PHCofThisEvent.cc | 2 +- .../digits+hits/hits/src/G4PVHit.cc | 2 +- .../hits/src/G4PVHitsCollection.cc | 2 +- .../hits/src/G4PersistentHitMan.cc | 2 +- .../persistency/events/include/G4PEvent.ddl | 2 +- .../events/include/G4PPrimaryParticle.ddl | 2 +- .../events/include/G4PPrimaryVertex.ddl | 2 +- .../events/include/G4PersistentEventMan.hh | 2 +- source/persistency/events/src/G4PEvent.cc | 2 +- .../events/src/G4PPrimaryParticle.cc | 2 +- .../events/src/G4PPrimaryVertex.cc | 2 +- .../events/src/G4PersistentEventMan.cc | 2 +- .../global/include/G4PAffineTransform.ddl | 2 +- .../geometry/global/include/G4PVSolid.ddl | 2 +- .../geometry/global/src/G4PAffineTransform.cc | 2 +- .../geometry/global/src/G4PVSolid.cc | 2 +- .../include/G4PGeometryObjectMap.ddl | 2 +- .../management/include/G4PLogicalVolume.ddl | 2 +- .../management/include/G4PPVParameterised.ddl | 2 +- .../management/include/G4PPVPlacement.ddl | 2 +- .../management/include/G4PPVReplica.ddl | 2 +- .../management/include/G4PVPhysicalVolume.ddl | 2 +- .../management/include/G4PersistentGeomMan.hh | 2 +- .../management/src/G4PGeometryObjectMap.cc | 2 +- .../management/src/G4PLogicalVolume.cc | 2 +- .../management/src/G4PPVParameterised.cc | 2 +- .../geometry/management/src/G4PPVPlacement.cc | 2 +- .../geometry/management/src/G4PPVReplica.cc | 2 +- .../management/src/G4PVPhysicalVolume.cc | 2 +- .../management/src/G4PersistentGeomMan.cc | 2 +- .../Boolean/include/G4PBooleanSolid.ddl | 2 +- .../Boolean/include/G4PDisplacedSolid.ddl | 2 +- .../Boolean/include/G4PIntersectionSolid.ddl | 2 +- .../Boolean/include/G4PSubtractionSolid.ddl | 2 +- .../solids/Boolean/include/G4PUnionSolid.ddl | 2 +- .../geometry/solids/CSG/include/G4PBox.ddl | 2 +- .../solids/CSG/include/G4PCSGSolid.ddl | 2 +- .../geometry/solids/CSG/include/G4PCons.ddl | 2 +- .../geometry/solids/CSG/include/G4PPara.ddl | 2 +- .../geometry/solids/CSG/include/G4PSphere.ddl | 2 +- .../geometry/solids/CSG/include/G4PTorus.ddl | 2 +- .../geometry/solids/CSG/include/G4PTrap.ddl | 2 +- .../geometry/solids/CSG/include/G4PTrd.ddl | 2 +- .../geometry/solids/CSG/include/G4PTubs.ddl | 2 +- .../geometry/solids/CSG/src/G4PBox.cc | 2 +- .../geometry/solids/CSG/src/G4PCSGSolid.cc | 2 +- .../geometry/solids/CSG/src/G4PCons.cc | 2 +- .../geometry/solids/CSG/src/G4PPara.cc | 2 +- .../geometry/solids/CSG/src/G4PSphere.cc | 2 +- .../geometry/solids/CSG/src/G4PTorus.cc | 2 +- .../geometry/solids/CSG/src/G4PTrap.cc | 2 +- .../geometry/solids/CSG/src/G4PTrd.cc | 2 +- .../geometry/solids/CSG/src/G4PTubs.cc | 2 +- .../solids/specific/include/G4PHype.ddl | 2 +- .../geometry/solids/specific/src/G4PHype.cc | 2 +- .../global/include/G4DatabaseTypes.hh | 2 +- .../global/include/G4PersistentSchema.hh | 2 +- .../global/include/G4PersistentTypes.hh | 2 +- .../persistency/global/include/G4Pglobals.hh | 2 +- .../global/include/G4VMaterialMap.hh | 2 +- .../global/include/G4VPersistentSubDbMan.hh | 2 +- .../global/include/G4VPersistentSubMan.hh | 2 +- .../persistency/global/src/G4VMaterialMap.cc | 2 +- .../global/src/G4VPersistentSubDbMan.cc | 2 +- .../global/src/G4VPersistentSubMan.cc | 2 +- .../include/G4PersistencyManager.hh | 2 +- .../include/G4PersistencyMessenger.hh | 2 +- .../include/G4TransactionManager.hh | 2 +- .../management/src/G4PersistencyManager.cc | 2 +- .../management/src/G4PersistencyMessenger.cc | 2 +- .../management/src/G4TransactionManager.cc | 2 +- source/persistency/run/include/G4PRun.ddl | 2 +- .../run/include/G4PersistentRunMan.hh | 2 +- source/persistency/run/src/G4PRun.cc | 2 +- .../persistency/run/src/G4PersistentRunMan.cc | 2 +- source/processes/GNUmakefile | 4 +- source/processes/decay/History | 9 +- source/processes/decay/include/G4Decay.hh | 18 +- .../processes/decay/include/G4VExtDecayer.hh | 2 +- source/processes/decay/src/G4Decay.cc | 86 +- .../electromagnetic/lowenergy/History | 99 +- .../lowenergy/include/G4AtomicDeexcitation.hh | 23 +- .../lowenergy/include/G4AtomicShell.hh | 2 +- .../lowenergy/include/G4AtomicTransition.hh | 8 +- .../include/G4AtomicTransitionManager.hh | 51 +- .../lowenergy/include/G4AugerData.hh | 132 + .../lowenergy/include/G4AugerTransition.hh | 122 + .../G4BremsstrahlungCrossSectionHandler.hh | 5 +- .../include/G4BremsstrahlungParameters.hh | 2 +- .../lowenergy/include/G4CompositeEMDataSet.hh | 8 +- .../include/G4CrossSectionHandler.hh | 4 +- .../include/G4CutsPerMaterialWarning.hh | 2 +- .../lowenergy/include/G4EMDataSet.hh | 20 +- .../lowenergy/include/G4FluoData.hh | 23 +- .../lowenergy/include/G4FluoTransition.hh | 96 + .../lowenergy/include/G4LinInterpolation.hh | 7 +- .../include/G4LinLogInterpolation.hh | 76 + .../include/G4LinLogLogInterpolation.hh | 75 + .../include/G4LogLogInterpolation.hh | 6 +- .../include/G4LowEnergyBremsstrahlung.hh | 2 +- .../lowenergy/include/G4LowEnergyCompton.hh | 2 +- .../include/G4LowEnergyGammaConversion.hh | 2 +- .../include/G4LowEnergyIonisation.hh | 9 +- .../include/G4LowEnergyPhotoElectric.hh | 10 +- .../include/G4LowEnergyPolarizedCompton.hh | 16 +- .../lowenergy/include/G4LowEnergyRayleigh.hh | 2 +- .../lowenergy/include/G4RangeNoTest.hh | 2 +- .../lowenergy/include/G4RangeTest.hh | 6 +- .../include/G4SemiLogInterpolation.hh | 6 +- .../lowenergy/include/G4ShellData.hh | 10 +- .../lowenergy/include/G4ShellEMDataSet.hh | 8 +- .../lowenergy/include/G4ShellVacancy.hh | 11 +- .../include/G4VCrossSectionHandler.hh | 16 +- .../lowenergy/include/G4VDataSetAlgorithm.hh | 6 +- .../lowenergy/include/G4VEMDataSet.hh | 10 +- .../lowenergy/include/G4VEnergySpectrum.hh | 9 +- .../lowenergy/include/G4VRangeTest.hh | 2 +- .../lowenergy/include/G4VeLowEnergyLoss.hh | 2 +- .../include/G4eBremsstrahlungSpectrum.hh | 9 +- .../G4eIonisationCrossSectionHandler.hh | 12 +- .../include/G4eIonisationParameters.hh | 2 +- .../include/G4eIonisationSpectrum.hh | 29 +- .../lowenergy/include/G4eLowEnergyLoss.hh | 14 +- .../lowenergy/include/G4eLowEnergyLoss.icc | 17 +- .../include/G4hLowEnergyIonisation.hh | 5 + .../lowenergy/include/G4hLowEnergyLoss.hh | 2 +- .../lowenergy/include/G4hLowEnergyLoss.icc | 2 +- .../lowenergy/src/G4AtomicDeexcitation.cc | 242 +- .../lowenergy/src/G4AtomicShell.cc | 2 +- .../lowenergy/src/G4AtomicTransition.cc | 13 +- .../src/G4AtomicTransitionManager.cc | 99 +- .../lowenergy/src/G4AugerData.cc | 527 + .../lowenergy/src/G4AugerTransition.cc | 178 + .../G4BremsstrahlungCrossSectionHandler.cc | 2 +- .../src/G4BremsstrahlungParameters.cc | 46 +- .../lowenergy/src/G4CompositeEMDataSet.cc | 16 +- .../lowenergy/src/G4CrossSectionHandler.cc | 6 +- .../lowenergy/src/G4CutsPerMaterialWarning.cc | 2 +- .../lowenergy/src/G4EMDataSet.cc | 28 +- .../lowenergy/src/G4FluoData.cc | 55 +- .../lowenergy/src/G4FluoTransition.cc | 83 + .../lowenergy/src/G4LinInterpolation.cc | 12 +- .../lowenergy/src/G4LinLogInterpolation.cc | 70 + .../lowenergy/src/G4LinLogLogInterpolation.cc | 77 + .../lowenergy/src/G4LogLogInterpolation.cc | 8 +- .../src/G4LowEnergyBremsstrahlung.cc | 2 +- .../lowenergy/src/G4LowEnergyCompton.cc | 2 +- .../src/G4LowEnergyGammaConversion.cc | 6 +- .../lowenergy/src/G4LowEnergyIonisation.cc | 42 +- .../lowenergy/src/G4LowEnergyPhotoElectric.cc | 107 +- .../src/G4LowEnergyPolarizedCompton.cc | 154 +- .../lowenergy/src/G4LowEnergyRayleigh.cc | 9 +- .../lowenergy/src/G4RangeTest.cc | 7 +- .../lowenergy/src/G4SemiLogInterpolation.cc | 7 +- .../lowenergy/src/G4ShellData.cc | 14 +- .../lowenergy/src/G4ShellEMDataSet.cc | 16 +- .../lowenergy/src/G4ShellVacancy.cc | 59 +- .../lowenergy/src/G4VCrossSectionHandler.cc | 7 +- .../lowenergy/src/G4VeLowEnergyLoss.cc | 2 +- .../src/G4eBremsstrahlungSpectrum.cc | 162 +- .../src/G4eIonisationCrossSectionHandler.cc | 7 +- .../lowenergy/src/G4eIonisationParameters.cc | 58 +- .../lowenergy/src/G4eIonisationSpectrum.cc | 321 +- .../lowenergy/src/G4eLowEnergyLoss.cc | 20 +- .../lowenergy/src/G4hLowEnergyIonisation.cc | 416 +- .../lowenergy/src/G4hLowEnergyLoss.cc | 9 +- .../lowenergy/src/G4hNuclearStoppingModel.cc | 6 +- .../lowenergy/src/G4hParametrisedLossModel.cc | 5 +- .../lowenergy/src/G4hShellCrossSection.cc | 2 +- .../processes/electromagnetic/muons/History | 11 +- .../muons/include/G4MuBremsstrahlung.hh | 2 +- .../muons/include/G4MuBremsstrahlung.icc | 2 +- .../muons/include/G4MuIonisation.hh | 2 +- .../muons/include/G4MuIonisation.icc | 2 +- .../muons/include/G4MuPairProduction.hh | 2 +- .../muons/include/G4MuPairProduction.icc | 2 +- .../muons/include/G4VMuEnergyLoss.hh | 2 +- .../muons/include/G4VMuEnergyLoss.icc | 2 +- .../muons/src/G4MuBremsstrahlung.cc | 2 +- .../muons/src/G4MuIonisation.cc | 2 +- .../muons/src/G4MuPairProduction.cc | 2 +- .../muons/src/G4VMuEnergyLoss.cc | 24 +- .../electromagnetic/standard/History | 62 +- .../standard/include/G4ComptonScattering.hh | 4 +- .../standard/include/G4ComptonScattering.icc | 2 +- .../standard/include/G4GammaConversion.hh | 4 +- .../standard/include/G4GammaConversion.icc | 2 +- .../include/G4GammaConversionToMuons.hh | 141 + .../include/G4GammaConversionToMuons.icc | 98 + .../standard/include/G4PAIonisation.hh | 4 +- .../standard/include/G4PAIxSection.hh | 57 +- .../standard/include/G4PhotoElectricEffect.hh | 90 +- .../include/G4PhotoElectricEffect.icc | 145 +- .../include/G4PolarizedComptonScattering.hh | 4 +- .../include/G4SynchrotronRadiation.hh | 4 +- .../standard/include/G4VPAIenergyLoss.hh | 4 +- .../standard/include/G4VeEnergyLoss.hh | 4 +- .../standard/include/G4VeEnergyLoss.icc | 2 +- .../standard/include/G4VhEnergyLoss.hh | 4 +- .../standard/include/G4VhEnergyLoss.icc | 6 +- .../standard/include/G4eBremsstrahlung.hh | 4 +- .../standard/include/G4eBremsstrahlung.icc | 2 +- .../standard/include/G4eIonisation.hh | 4 +- .../standard/include/G4eIonisation.icc | 2 +- .../standard/include/G4eplusAnnihilation.hh | 4 +- .../standard/include/G4eplusAnnihilation.icc | 2 +- .../standard/include/G4hIonisation.hh | 9 +- .../standard/include/G4hIonisation.icc | 22 +- .../standard/src/G4ComptonScattering.cc | 13 +- .../standard/src/G4GammaConversion.cc | 75 +- .../standard/src/G4GammaConversionToMuons.cc | 322 + .../standard/src/G4PAIonisation.cc | 4 +- .../standard/src/G4PAIxSection.cc | 538 +- .../standard/src/G4PhotoElectricEffect.cc | 325 +- .../src/G4PolarizedComptonScattering.cc | 4 +- .../standard/src/G4SynchrotronRadiation.cc | 4 +- .../standard/src/G4VPAIenergyLoss.cc | 4 +- .../standard/src/G4VeEnergyLoss.cc | 12 +- .../standard/src/G4VhEnergyLoss.cc | 29 +- .../standard/src/G4eBremsstrahlung.cc | 4 +- .../standard/src/G4eIonisation.cc | 32 +- .../standard/src/G4eplusAnnihilation.cc | 4 +- .../standard/src/G4hIonisation.cc | 101 +- .../processes/electromagnetic/utils/History | 42 +- .../utils/include/G4EnergyLossMessenger.hh | 2 +- .../utils/include/G4EnergyLossTables.hh | 2 +- .../utils/include/G4MultipleScattering.hh | 52 +- .../utils/include/G4MultipleScattering.icc | 7 +- .../utils/include/G4VEnergyLoss.hh | 2 +- .../utils/src/G4EnergyLossMessenger.cc | 2 +- .../utils/src/G4EnergyLossTables.cc | 2 +- .../utils/src/G4MultipleScattering.cc | 318 +- .../utils/src/G4VEnergyLoss.cc | 25 +- .../electromagnetic/xrays/GNUmakefile | 3 +- .../processes/electromagnetic/xrays/History | 22 +- .../xrays/include/G4Cerenkov.hh | 2 +- .../xrays/include/G4ForwardXrayTR.hh | 2 +- .../xrays/include/G4GammaXTRadiator.hh | 81 + .../xrays/include/G4RegularXTRadiator.hh | 62 + .../xrays/include/G4Scintillation.hh | 40 +- .../xrays/include/G4TransitionRadiation.hh | 2 +- .../xrays/include/G4VXTRenergyLoss.hh | 194 + .../electromagnetic/xrays/src/G4Cerenkov.cc | 10 +- .../xrays/src/G4ForwardXrayTR.cc | 2 +- .../xrays/src/G4GammaXTRadiator.cc | 120 + .../xrays/src/G4RegularXTRadiator.cc | 123 + .../xrays/src/G4Scintillation.cc | 63 +- .../xrays/src/G4TransitionRadiation.cc | 2 +- .../xrays/src/G4VXTRenergyLoss.cc | 1057 + source/processes/hadronic/GNUmakefile | 4 +- .../include/G4ElectroNuclearCrossSection.hh | 134 +- .../include/G4HadronCrossSections.hh | 2 +- .../include/G4PhotoNuclearCrossSection.hh | 214 +- .../G4ProjectileFragmentCrossSection.hh | 202 + .../src/G4ElectroNuclearCrossSection.cc | 3851 ++- .../src/G4HadronCaptureDataSet.cc | 2 +- .../src/G4HadronCrossSections.cc | 9 +- .../src/G4HadronElasticDataSet.cc | 2 +- .../src/G4HadronFissionDataSet.cc | 2 +- .../src/G4HadronInelasticDataSet.cc | 2 +- .../src/G4PhotoNuclearCrossSection.cc | 1661 +- .../src/G4TripathiCrossSection.cc | 2 +- .../src/G4VCrossSectionDataSet.cc | 2 +- .../include/G4EnergyRangeManager.hh | 2 +- .../include/G4HadronicInteraction.hh | 2 +- .../include/G4InelasticInteraction.hh | 2 +- .../management/src/G4EnergyRangeManager.cc | 6 +- .../management/src/G4HadronicProcess.cc | 17 +- .../management/src/G4InelasticInteraction.cc | 2 +- source/processes/hadronic/models/GNUmakefile | 4 +- .../processes/hadronic/models/cascade/README | 6 + .../evaporation/src/G4BertiniEvaporation.cc | 6 +- .../src/G4BertiniEvaporationChannel.cc | 4 +- .../hadronic/models/cascade/hetc.wst | 85 + .../body/include/G4Chips.hh | 2 +- .../body/include/G4QCHIPSWorld.hh | 2 +- .../body/include/G4QCandidate.hh | 2 +- .../body/include/G4QCandidateVector.hh | 2 +- .../body/include/G4QChipolino.hh | 2 +- .../body/include/G4QContent.hh | 2 +- .../body/include/G4QDecayChan.hh | 2 +- .../body/include/G4QDecayChanVector.hh | 2 +- .../body/include/G4QEnvironment.hh | 2 +- .../body/include/G4QHadron.hh | 2 +- .../body/include/G4QHadronVector.hh | 2 +- .../body/include/G4QNucleus.hh | 2 +- .../body/include/G4QPDGCode.hh | 2 +- .../body/include/G4QPDGCodeVector.hh | 2 +- .../body/include/G4QParentCluster.hh | 2 +- .../body/include/G4QParentClusterVector.hh | 2 +- .../body/include/G4QParticle.hh | 2 +- .../body/include/G4QParticleVector.hh | 2 +- .../body/include/G4QSelector.hh | 2 +- .../body/include/G4Quasmon.hh | 2 +- .../body/include/G4QuasmonVector.hh | 2 +- .../body/src/G4QCHIPSWorld.cc | 2 +- .../body/src/G4QCandidate.cc | 2 +- .../body/src/G4QChipolino.cc | 2 +- .../body/src/G4QContent.cc | 2 +- .../body/src/G4QDecayChan.cc | 2 +- .../body/src/G4QEnvironment.cc | 6 +- .../body/src/G4QHadron.cc | 2 +- .../body/src/G4QNucleus.cc | 2 +- .../body/src/G4QPDGCode.cc | 6 +- .../body/src/G4QParentCluster.cc | 2 +- .../body/src/G4QParticle.cc | 2 +- .../body/src/G4QSelector.cc | 2 +- .../body/src/G4Quasmon.cc | 20 +- .../interface/GNUmakefile | 5 + .../include/G4ElectroNuclearReaction.hh | 140 +- .../include/G4GammaNuclearReaction.hh | 9 + .../interface/src/G4StringChipsInterface.cc | 4 +- .../models/coherent_elastic/include/G4LEnp.hh | 15 +- .../coherent_elastic/include/G4LEnpData.hh | 84 +- .../models/coherent_elastic/include/G4LEpp.hh | 2 +- .../coherent_elastic/include/G4LEppData.hh | 176 +- .../models/coherent_elastic/src/G4LEnp.cc | 2 +- .../models/coherent_elastic/src/G4LEpp.cc | 21 +- .../include/G4AlphaCoulombBarrier.hh | 2 +- .../include/G4AlphaEvaporationChannel.hh | 2 +- .../include/G4AlphaEvaporationProbability.hh | 2 +- .../include/G4AlphaGEMChannel.hh | 69 + .../include/G4AlphaGEMProbability.hh | 81 + .../de_excitation/include/G4B10GEMChannel.hh | 69 + .../include/G4B10GEMCoulombBarrier.hh | 52 + .../include/G4B10GEMProbability.hh | 74 + .../de_excitation/include/G4B11GEMChannel.hh | 69 + .../include/G4B11GEMCoulombBarrier.hh | 52 + .../include/G4B11GEMProbability.hh | 74 + .../de_excitation/include/G4B12GEMChannel.hh | 69 + .../include/G4B12GEMCoulombBarrier.hh | 52 + .../include/G4B12GEMProbability.hh | 74 + .../de_excitation/include/G4B13GEMChannel.hh | 69 + .../include/G4B13GEMCoulombBarrier.hh | 52 + .../include/G4B13GEMProbability.hh | 74 + .../de_excitation/include/G4B8GEMChannel.hh | 69 + .../include/G4B8GEMCoulombBarrier.hh | 52 + .../include/G4B8GEMProbability.hh | 74 + .../include/G4B9FermiFragment.hh | 2 +- .../de_excitation/include/G4Be10GEMChannel.hh | 69 + .../include/G4Be10GEMCoulombBarrier.hh | 52 + .../include/G4Be10GEMProbability.hh | 74 + .../de_excitation/include/G4Be11GEMChannel.hh | 69 + .../include/G4Be11GEMCoulombBarrier.hh | 52 + .../include/G4Be11GEMProbability.hh | 74 + .../de_excitation/include/G4Be12GEMChannel.hh | 69 + .../include/G4Be12GEMCoulombBarrier.hh | 52 + .../include/G4Be12GEMProbability.hh | 74 + .../de_excitation/include/G4Be7GEMChannel.hh | 69 + .../include/G4Be7GEMCoulombBarrier.hh | 52 + .../include/G4Be7GEMProbability.hh | 74 + .../include/G4Be8FermiFragment.hh | 2 +- .../de_excitation/include/G4Be9GEMChannel.hh | 69 + .../include/G4Be9GEMCoulombBarrier.hh | 52 + .../include/G4Be9GEMProbability.hh | 74 + .../de_excitation/include/G4C10GEMChannel.hh | 69 + .../include/G4C10GEMCoulombBarrier.hh | 52 + .../include/G4C10GEMProbability.hh | 74 + .../de_excitation/include/G4C11GEMChannel.hh | 69 + .../include/G4C11GEMCoulombBarrier.hh | 52 + .../include/G4C11GEMProbability.hh | 74 + .../de_excitation/include/G4C12GEMChannel.hh | 69 + .../include/G4C12GEMCoulombBarrier.hh | 52 + .../include/G4C12GEMProbability.hh | 74 + .../de_excitation/include/G4C13GEMChannel.hh | 69 + .../include/G4C13GEMCoulombBarrier.hh | 52 + .../include/G4C13GEMProbability.hh | 74 + .../de_excitation/include/G4C14GEMChannel.hh | 69 + .../include/G4C14GEMCoulombBarrier.hh | 52 + .../include/G4C14GEMProbability.hh | 74 + .../de_excitation/include/G4C15GEMChannel.hh | 69 + .../include/G4C15GEMCoulombBarrier.hh | 52 + .../include/G4C15GEMProbability.hh | 74 + .../de_excitation/include/G4C16GEMChannel.hh | 69 + .../include/G4C16GEMCoulombBarrier.hh | 52 + .../include/G4C16GEMProbability.hh | 74 + .../G4CameronGilbertPairingCorrections.hh | 78 +- .../G4CameronGilbertShellCorrections.hh | 87 +- .../G4CameronShellPlusPairingCorrections.hh | 66 +- .../G4CameronTruranHilfPairingCorrections.hh | 73 +- .../G4CameronTruranHilfShellCorrections.hh | 78 +- .../include/G4CompetitiveFission.hh | 5 +- .../G4ConstantLevelDensityParameter.hh | 2 +- .../include/G4CookPairingCorrections.hh | 97 + .../include/G4CookShellCorrections.hh | 103 + .../de_excitation/include/G4CoulombBarrier.hh | 2 +- .../include/G4DeuteronCoulombBarrier.hh | 2 +- .../include/G4DeuteronEvaporationChannel.hh | 2 +- .../G4DeuteronEvaporationProbability.hh | 2 +- .../include/G4DeuteronGEMChannel.hh | 69 + .../include/G4DeuteronGEMProbability.hh | 81 + .../de_excitation/include/G4Evaporation.hh | 38 +- .../include/G4EvaporationChannel.hh | 5 +- .../include/G4EvaporationFactory.hh | 54 + .../include/G4EvaporationGEMFactory.hh | 54 + .../G4EvaporationLevelDensityParameter.hh | 10 +- .../include/G4EvaporationProbability.hh | 2 +- .../include/G4ExcitationHandler.hh | 16 +- .../de_excitation/include/G4F17GEMChannel.hh | 69 + .../include/G4F17GEMCoulombBarrier.hh | 52 + .../include/G4F17GEMProbability.hh | 74 + .../de_excitation/include/G4F18GEMChannel.hh | 69 + .../include/G4F18GEMCoulombBarrier.hh | 52 + .../include/G4F18GEMProbability.hh | 74 + .../de_excitation/include/G4F19GEMChannel.hh | 69 + .../include/G4F19GEMCoulombBarrier.hh | 52 + .../include/G4F19GEMProbability.hh | 74 + .../de_excitation/include/G4F20GEMChannel.hh | 69 + .../include/G4F20GEMCoulombBarrier.hh | 52 + .../include/G4F20GEMProbability.hh | 74 + .../de_excitation/include/G4F21GEMChannel.hh | 69 + .../include/G4F21GEMCoulombBarrier.hh | 52 + .../include/G4F21GEMProbability.hh | 74 + .../de_excitation/include/G4FermiBreakUp.hh | 7 +- .../include/G4FermiConfiguration.hh | 15 +- .../include/G4FermiConfigurationList.hh | 2 +- .../de_excitation/include/G4FissionBarrier.hh | 11 +- .../include/G4FissionLevelDensityParameter.hh | 2 +- .../include/G4FissionParameters.hh | 2 +- .../include/G4FissionProbability.hh | 2 +- .../de_excitation/include/G4GEMChannel.hh | 182 + .../include/G4GEMCoulombBarrierHE.hh | 65 + .../de_excitation/include/G4GEMProbability.hh | 160 + .../include/G4He3CoulombBarrier.hh | 2 +- .../include/G4He3EvaporationChannel.hh | 2 +- .../include/G4He3EvaporationProbability.hh | 2 +- .../de_excitation/include/G4He3GEMChannel.hh | 69 + .../include/G4He3GEMProbability.hh | 81 + .../include/G4He5FermiFragment.hh | 2 +- .../de_excitation/include/G4He6GEMChannel.hh | 69 + .../include/G4He6GEMCoulombBarrier.hh | 52 + .../include/G4He6GEMProbability.hh | 74 + .../de_excitation/include/G4He8GEMChannel.hh | 69 + .../include/G4He8GEMCoulombBarrier.hh | 52 + .../include/G4He8GEMProbability.hh | 74 + .../include/G4Li5FermiFragment.hh | 2 +- .../de_excitation/include/G4Li6GEMChannel.hh | 69 + .../include/G4Li6GEMCoulombBarrier.hh | 52 + .../include/G4Li6GEMProbability.hh | 74 + .../de_excitation/include/G4Li7GEMChannel.hh | 69 + .../include/G4Li7GEMCoulombBarrier.hh | 52 + .../include/G4Li7GEMProbability.hh | 74 + .../de_excitation/include/G4Li8GEMChannel.hh | 69 + .../include/G4Li8GEMCoulombBarrier.hh | 52 + .../include/G4Li8GEMProbability.hh | 74 + .../de_excitation/include/G4Li9GEMChannel.hh | 69 + .../include/G4Li9GEMCoulombBarrier.hh | 52 + .../include/G4Li9GEMProbability.hh | 74 + .../de_excitation/include/G4Mg22GEMChannel.hh | 69 + .../include/G4Mg22GEMCoulombBarrier.hh | 52 + .../include/G4Mg22GEMProbability.hh | 74 + .../de_excitation/include/G4Mg23GEMChannel.hh | 69 + .../include/G4Mg23GEMCoulombBarrier.hh | 52 + .../include/G4Mg23GEMProbability.hh | 74 + .../de_excitation/include/G4Mg24GEMChannel.hh | 69 + .../include/G4Mg24GEMCoulombBarrier.hh | 52 + .../include/G4Mg24GEMProbability.hh | 74 + .../de_excitation/include/G4Mg25GEMChannel.hh | 69 + .../include/G4Mg25GEMCoulombBarrier.hh | 52 + .../include/G4Mg25GEMProbability.hh | 74 + .../de_excitation/include/G4Mg26GEMChannel.hh | 69 + .../include/G4Mg26GEMCoulombBarrier.hh | 52 + .../include/G4Mg26GEMProbability.hh | 74 + .../de_excitation/include/G4Mg27GEMChannel.hh | 69 + .../include/G4Mg27GEMCoulombBarrier.hh | 52 + .../include/G4Mg27GEMProbability.hh | 74 + .../de_excitation/include/G4Mg28GEMChannel.hh | 69 + .../include/G4Mg28GEMCoulombBarrier.hh | 52 + .../include/G4Mg28GEMProbability.hh | 74 + .../de_excitation/include/G4N12GEMChannel.hh | 69 + .../include/G4N12GEMCoulombBarrier.hh | 52 + .../include/G4N12GEMProbability.hh | 74 + .../de_excitation/include/G4N13GEMChannel.hh | 69 + .../include/G4N13GEMCoulombBarrier.hh | 52 + .../include/G4N13GEMProbability.hh | 74 + .../de_excitation/include/G4N14GEMChannel.hh | 69 + .../include/G4N14GEMCoulombBarrier.hh | 52 + .../include/G4N14GEMProbability.hh | 74 + .../de_excitation/include/G4N15GEMChannel.hh | 69 + .../include/G4N15GEMCoulombBarrier.hh | 52 + .../include/G4N15GEMProbability.hh | 74 + .../de_excitation/include/G4N16GEMChannel.hh | 69 + .../include/G4N16GEMCoulombBarrier.hh | 52 + .../include/G4N16GEMProbability.hh | 74 + .../de_excitation/include/G4N17GEMChannel.hh | 69 + .../include/G4N17GEMCoulombBarrier.hh | 52 + .../include/G4N17GEMProbability.hh | 74 + .../de_excitation/include/G4Na21GEMChannel.hh | 69 + .../include/G4Na21GEMCoulombBarrier.hh | 52 + .../include/G4Na21GEMProbability.hh | 74 + .../de_excitation/include/G4Na22GEMChannel.hh | 69 + .../include/G4Na22GEMCoulombBarrier.hh | 52 + .../include/G4Na22GEMProbability.hh | 74 + .../de_excitation/include/G4Na23GEMChannel.hh | 69 + .../include/G4Na23GEMCoulombBarrier.hh | 52 + .../include/G4Na23GEMProbability.hh | 74 + .../de_excitation/include/G4Na24GEMChannel.hh | 69 + .../include/G4Na24GEMCoulombBarrier.hh | 52 + .../include/G4Na24GEMProbability.hh | 74 + .../de_excitation/include/G4Na25GEMChannel.hh | 69 + .../include/G4Na25GEMCoulombBarrier.hh | 52 + .../include/G4Na25GEMProbability.hh | 74 + .../de_excitation/include/G4Ne18GEMChannel.hh | 69 + .../include/G4Ne18GEMCoulombBarrier.hh | 52 + .../include/G4Ne18GEMProbability.hh | 74 + .../de_excitation/include/G4Ne19GEMChannel.hh | 69 + .../include/G4Ne19GEMCoulombBarrier.hh | 52 + .../include/G4Ne19GEMProbability.hh | 74 + .../de_excitation/include/G4Ne20GEMChannel.hh | 69 + .../include/G4Ne20GEMCoulombBarrier.hh | 52 + .../include/G4Ne20GEMProbability.hh | 74 + .../de_excitation/include/G4Ne21GEMChannel.hh | 69 + .../include/G4Ne21GEMCoulombBarrier.hh | 52 + .../include/G4Ne21GEMProbability.hh | 74 + .../de_excitation/include/G4Ne22GEMChannel.hh | 69 + .../include/G4Ne22GEMCoulombBarrier.hh | 52 + .../include/G4Ne22GEMProbability.hh | 74 + .../de_excitation/include/G4Ne23GEMChannel.hh | 69 + .../include/G4Ne23GEMCoulombBarrier.hh | 52 + .../include/G4Ne23GEMProbability.hh | 74 + .../de_excitation/include/G4Ne24GEMChannel.hh | 69 + .../include/G4Ne24GEMCoulombBarrier.hh | 52 + .../include/G4Ne24GEMProbability.hh | 74 + .../include/G4NeutronCoulombBarrier.hh | 2 +- .../include/G4NeutronEvaporationChannel.hh | 2 +- .../G4NeutronEvaporationProbability.hh | 2 +- .../include/G4NeutronGEMChannel.hh | 65 + .../include/G4NeutronGEMProbability.hh | 78 + .../de_excitation/include/G4NuclearLevel.hh | 1 - .../de_excitation/include/G4O14GEMChannel.hh | 70 + .../include/G4O14GEMCoulombBarrier.hh | 52 + .../include/G4O14GEMProbability.hh | 74 + .../de_excitation/include/G4O15GEMChannel.hh | 70 + .../include/G4O15GEMCoulombBarrier.hh | 52 + .../include/G4O15GEMProbability.hh | 74 + .../de_excitation/include/G4O16GEMChannel.hh | 70 + .../include/G4O16GEMCoulombBarrier.hh | 52 + .../include/G4O16GEMProbability.hh | 74 + .../de_excitation/include/G4O17GEMChannel.hh | 70 + .../include/G4O17GEMCoulombBarrier.hh | 52 + .../include/G4O17GEMProbability.hh | 74 + .../de_excitation/include/G4O18GEMChannel.hh | 70 + .../include/G4O18GEMCoulombBarrier.hh | 52 + .../include/G4O18GEMProbability.hh | 74 + .../de_excitation/include/G4O19GEMChannel.hh | 70 + .../include/G4O19GEMCoulombBarrier.hh | 52 + .../include/G4O19GEMProbability.hh | 74 + .../de_excitation/include/G4O20GEMChannel.hh | 70 + .../include/G4O20GEMCoulombBarrier.hh | 52 + .../include/G4O20GEMProbability.hh | 74 + .../include/G4PairingCorrection.hh | 49 +- .../include/G4ParaFissionModel.hh | 8 +- .../include/G4ProtonCoulombBarrier.hh | 2 +- .../include/G4ProtonEvaporationChannel.hh | 2 +- .../include/G4ProtonEvaporationProbability.hh | 2 +- .../include/G4ProtonGEMChannel.hh | 69 + .../include/G4ProtonGEMProbability.hh | 81 + .../include/G4ShellCorrection.hh | 73 + .../de_excitation/include/G4Solver.hh | 14 +- .../de_excitation/include/G4Solver.icc | 476 +- .../include/G4StableFermiFragment.hh | 2 +- .../de_excitation/include/G4StatMF.hh | 5 +- .../de_excitation/include/G4StatMFChannel.hh | 22 +- .../de_excitation/include/G4StatMFFragment.hh | 13 +- .../include/G4StatMFMacroBiNucleon.hh | 2 +- .../include/G4StatMFMacroChemicalPotential.hh | 6 +- .../include/G4StatMFMacroMultiNucleon.hh | 2 +- .../include/G4StatMFMacroMultiplicity.hh | 6 +- .../include/G4StatMFMacroNucleon.hh | 2 +- .../include/G4StatMFMacroTemperature.hh | 2 +- .../include/G4StatMFMacroTetraNucleon.hh | 2 +- .../include/G4StatMFMacroTriNucleon.hh | 2 +- .../include/G4StatMFMacrocanonical.hh | 14 +- .../include/G4StatMFMicroManager.hh | 14 +- .../include/G4StatMFMicroPartition.hh | 6 +- .../include/G4StatMFMicrocanonical.hh | 33 +- .../include/G4StatMFParameters.hh | 107 +- .../include/G4TritonCoulombBarrier.hh | 2 +- .../include/G4TritonEvaporationChannel.hh | 2 +- .../include/G4TritonEvaporationProbability.hh | 2 +- .../include/G4TritonGEMChannel.hh | 69 + .../include/G4TritonGEMProbability.hh | 81 + .../include/G4UnstableFermiFragment.hh | 2 +- .../include/G4VCoulombBarrier.hh | 2 +- .../include/G4VEmissionProbability.hh | 2 +- .../de_excitation/include/G4VEvaporation.hh | 2 +- .../include/G4VEvaporationChannel.hh | 2 +- .../include/G4VEvaporationFactory.hh | 72 + .../de_excitation/include/G4VFermiBreakUp.hh | 2 +- .../de_excitation/include/G4VFermiFragment.hh | 2 +- .../include/G4VFissionBarrier.hh | 2 +- .../include/G4VLevelDensityParameter.hh | 2 +- .../include/G4VMultiFragmentation.hh | 2 +- .../include/G4VStatMFEnsemble.hh | 2 +- .../include/G4VStatMFMacroCluster.hh | 2 +- .../src/G4AlphaCoulombBarrier.cc | 2 +- .../src/G4AlphaEvaporationChannel.cc | 2 +- .../src/G4AlphaEvaporationProbability.cc | 2 +- .../de_excitation/src/G4AlphaGEMChannel.cc | 56 + .../src/G4AlphaGEMProbability.cc | 109 + .../de_excitation/src/G4B10GEMProbability.cc | 206 + .../de_excitation/src/G4B11GEMProbability.cc | 185 + .../de_excitation/src/G4B12GEMProbability.cc | 149 + .../de_excitation/src/G4B13GEMProbability.cc | 82 + .../de_excitation/src/G4B8GEMProbability.cc | 80 + .../de_excitation/src/G4B9FermiFragment.cc | 2 +- .../de_excitation/src/G4Be10GEMProbability.cc | 111 + .../de_excitation/src/G4Be11GEMProbability.cc | 123 + .../de_excitation/src/G4Be12GEMProbability.cc | 70 + .../de_excitation/src/G4Be7GEMProbability.cc | 98 + .../de_excitation/src/G4Be8FermiFragment.cc | 2 +- .../de_excitation/src/G4Be9GEMProbability.cc | 146 + .../de_excitation/src/G4C10GEMProbability.cc | 79 + .../de_excitation/src/G4C11GEMProbability.cc | 147 + .../de_excitation/src/G4C12GEMProbability.cc | 235 + .../de_excitation/src/G4C13GEMProbability.cc | 183 + .../de_excitation/src/G4C14GEMProbability.cc | 131 + .../de_excitation/src/G4C15GEMProbability.cc | 139 + .../de_excitation/src/G4C16GEMProbability.cc | 70 + .../src/G4CameronGilbertPairingCorrections.cc | 26 +- .../src/G4CameronGilbertShellCorrections.cc | 23 +- .../G4CameronShellPlusPairingCorrections.cc | 22 +- .../G4CameronTruranHilfPairingCorrections.cc | 24 +- .../G4CameronTruranHilfShellCorrections.cc | 26 +- .../de_excitation/src/G4CompetitiveFission.cc | 18 +- .../src/G4CookPairingCorrections.cc | 75 + .../src/G4CookShellCorrections.cc | 76 + .../de_excitation/src/G4CoulombBarrier.cc | 2 +- .../src/G4DeuteronCoulombBarrier.cc | 2 +- .../src/G4DeuteronEvaporationChannel.cc | 2 +- .../src/G4DeuteronEvaporationProbability.cc | 2 +- .../de_excitation/src/G4DeuteronGEMChannel.cc | 56 + .../src/G4DeuteronGEMProbability.cc | 90 + .../de_excitation/src/G4Evaporation.cc | 121 +- .../de_excitation/src/G4EvaporationChannel.cc | 18 +- .../de_excitation/src/G4EvaporationFactory.cc | 89 + .../src/G4EvaporationGEMFactory.cc | 208 + .../src/G4EvaporationLevelDensityParameter.cc | 2 +- .../src/G4EvaporationProbability.cc | 6 +- .../de_excitation/src/G4ExcitationHandler.cc | 143 +- .../de_excitation/src/G4F17GEMProbability.cc | 300 + .../de_excitation/src/G4F18GEMProbability.cc | 576 + .../de_excitation/src/G4F19GEMProbability.cc | 316 + .../de_excitation/src/G4F20GEMProbability.cc | 224 + .../de_excitation/src/G4F21GEMProbability.cc | 84 + .../de_excitation/src/G4FermiBreakUp.cc | 11 +- .../de_excitation/src/G4FermiConfiguration.cc | 23 +- .../src/G4FermiConfigurationList.cc | 2 +- .../de_excitation/src/G4FissionBarrier.cc | 2 +- .../src/G4FissionLevelDensityParameter.cc | 2 +- .../de_excitation/src/G4FissionParameters.cc | 11 +- .../de_excitation/src/G4FissionProbability.cc | 8 +- .../de_excitation/src/G4GEMChannel.cc | 313 + .../src/G4GEMCoulombBarrierHE.cc | 100 + .../de_excitation/src/G4GEMProbability.cc | 207 + .../de_excitation/src/G4He3CoulombBarrier.cc | 2 +- .../src/G4He3EvaporationChannel.cc | 2 +- .../src/G4He3EvaporationProbability.cc | 2 +- .../de_excitation/src/G4He3GEMChannel.cc | 56 + .../de_excitation/src/G4He3GEMProbability.cc | 94 + .../de_excitation/src/G4He5FermiFragment.cc | 2 +- .../de_excitation/src/G4He6GEMProbability.cc | 76 + .../de_excitation/src/G4He8GEMProbability.cc | 70 + .../de_excitation/src/G4Li5FermiFragment.cc | 2 +- .../de_excitation/src/G4Li6GEMProbability.cc | 102 + .../de_excitation/src/G4Li7GEMProbability.cc | 98 + .../de_excitation/src/G4Li8GEMProbability.cc | 106 + .../de_excitation/src/G4Li9GEMProbability.cc | 82 + .../de_excitation/src/G4Mg22GEMProbability.cc | 104 + .../de_excitation/src/G4Mg23GEMProbability.cc | 100 + .../de_excitation/src/G4Mg24GEMProbability.cc | 376 + .../de_excitation/src/G4Mg25GEMProbability.cc | 275 + .../de_excitation/src/G4Mg26GEMProbability.cc | 140 + .../de_excitation/src/G4Mg27GEMProbability.cc | 160 + .../de_excitation/src/G4Mg28GEMProbability.cc | 104 + .../de_excitation/src/G4N12GEMProbability.cc | 87 + .../de_excitation/src/G4N13GEMProbability.cc | 195 + .../de_excitation/src/G4N14GEMProbability.cc | 359 + .../de_excitation/src/G4N15GEMProbability.cc | 266 + .../de_excitation/src/G4N16GEMProbability.cc | 222 + .../de_excitation/src/G4N17GEMProbability.cc | 134 + .../de_excitation/src/G4Na21GEMProbability.cc | 160 + .../de_excitation/src/G4Na22GEMProbability.cc | 337 + .../de_excitation/src/G4Na23GEMProbability.cc | 384 + .../de_excitation/src/G4Na24GEMProbability.cc | 228 + .../de_excitation/src/G4Na25GEMProbability.cc | 100 + .../de_excitation/src/G4Ne18GEMProbability.cc | 100 + .../de_excitation/src/G4Ne19GEMProbability.cc | 117 + .../de_excitation/src/G4Ne20GEMProbability.cc | 530 + .../de_excitation/src/G4Ne21GEMProbability.cc | 233 + .../de_excitation/src/G4Ne22GEMProbability.cc | 128 + .../de_excitation/src/G4Ne23GEMProbability.cc | 112 + .../de_excitation/src/G4Ne24GEMProbability.cc | 87 + .../src/G4NeutronCoulombBarrier.cc | 2 +- .../src/G4NeutronEvaporationChannel.cc | 2 +- .../src/G4NeutronEvaporationProbability.cc | 2 +- .../de_excitation/src/G4NeutronGEMChannel.cc | 56 + .../src/G4NeutronGEMProbability.cc | 67 + .../src/G4NuclearLevelManager.cc | 25 +- .../de_excitation/src/G4O14GEMProbability.cc | 88 + .../de_excitation/src/G4O15GEMProbability.cc | 257 + .../de_excitation/src/G4O16GEMProbability.cc | 408 + .../de_excitation/src/G4O17GEMProbability.cc | 263 + .../de_excitation/src/G4O18GEMProbability.cc | 108 + .../de_excitation/src/G4O19GEMProbability.cc | 115 + .../de_excitation/src/G4O20GEMProbability.cc | 66 + .../de_excitation/src/G4PairingCorrection.cc | 31 +- .../de_excitation/src/G4PhotonEvaporation.cc | 4 + .../src/G4ProtonCoulombBarrier.cc | 2 +- .../src/G4ProtonEvaporationChannel.cc | 2 +- .../src/G4ProtonEvaporationProbability.cc | 2 +- .../de_excitation/src/G4ProtonGEMChannel.cc | 56 + .../src/G4ProtonGEMProbability.cc | 89 + .../de_excitation/src/G4ShellCorrection.cc | 48 + .../generator/de_excitation/src/G4Solver.cc | 2 +- .../src/G4StableFermiFragment.cc | 2 +- .../generator/de_excitation/src/G4StatMF.cc | 426 +- .../de_excitation/src/G4StatMFChannel.cc | 322 +- .../de_excitation/src/G4StatMFFragment.cc | 12 +- .../src/G4StatMFMacroBiNucleon.cc | 23 +- .../src/G4StatMFMacroChemicalPotential.cc | 67 +- .../src/G4StatMFMacroMultiNucleon.cc | 7 +- .../src/G4StatMFMacroMultiplicity.cc | 46 +- .../de_excitation/src/G4StatMFMacroNucleon.cc | 10 +- .../src/G4StatMFMacroTemperature.cc | 25 +- .../src/G4StatMFMacroTetraNucleon.cc | 13 +- .../src/G4StatMFMacroTriNucleon.cc | 12 +- .../src/G4StatMFMacrocanonical.cc | 262 +- .../de_excitation/src/G4StatMFMicroManager.cc | 23 +- .../src/G4StatMFMicroPartition.cc | 8 +- .../src/G4StatMFMicrocanonical.cc | 333 +- .../de_excitation/src/G4StatMFParameters.cc | 42 +- .../src/G4TritonCoulombBarrier.cc | 2 +- .../src/G4TritonEvaporationChannel.cc | 2 +- .../src/G4TritonEvaporationProbability.cc | 2 +- .../de_excitation/src/G4TritonGEMChannel.cc | 56 + .../src/G4TritonGEMProbability.cc | 90 + .../src/G4UnstableFermiFragment.cc | 6 +- .../de_excitation/src/G4VCoulombBarrier.cc | 2 +- .../src/G4VEmissionProbability.cc | 2 +- .../de_excitation/src/G4VEvaporation.cc | 2 +- .../src/G4VEvaporationChannel.cc | 2 +- .../src/G4VEvaporationFactory.cc | 75 + .../de_excitation/src/G4VFermiBreakUp.cc | 2 +- .../de_excitation/src/G4VFermiFragment.cc | 2 +- .../de_excitation/src/G4VFissionBarrier.cc | 2 +- .../de_excitation/src/G4VGammaDeexcitation.cc | 4 +- .../src/G4VLevelDensityParameter.cc | 2 +- .../src/G4VMultiFragmentation.cc | 2 +- .../de_excitation/src/G4VStatMFEnsemble.cc | 2 +- .../src/G4VStatMFMacroCluster.cc | 2 +- .../include/G4DiffractiveSplitableHadron.hh | 2 +- .../diffractive_string/include/G4FTFModel.hh | 2 +- .../include/G4FTFParticipants.hh | 2 +- .../src/G4DiffractiveSplitableHadron.cc | 2 +- .../diffractive_string/src/G4FTFModel.cc | 2 +- .../src/G4FTFParticipants.cc | 2 +- .../high_energy/include/G4TheoFSGenerator.hh | 10 +- .../high_energy/src/G4TheoFSGenerator.cc | 29 +- .../management/include/G4V3DNucleus.hh | 9 +- .../include/G4VHighEnergyGenerator.hh | 2 +- .../include/G4VIntraNuclearTransportModel.hh | 2 +- .../management/include/G4VKineticNucleon.hh | 2 +- .../management/include/G4VNuclearDensity.hh | 14 +- .../management/include/G4VPreCompoundModel.hh | 2 +- .../generator/management/src/G4V3DNucleus.cc | 2 +- .../management/src/G4VHighEnergyGenerator.cc | 2 +- .../src/G4VIntraNuclearTransportModel.cc | 2 +- .../management/src/G4VKineticNucleon.cc | 2 +- .../management/src/G4VNuclearDensity.cc | 4 +- .../management/src/G4VPreCompoundModel.cc | 2 +- .../include/G4LowEIonFragmentation.hh | 2 +- .../include/G4PreCompoundAlpha.hh | 112 +- .../include/G4PreCompoundDeuteron.hh | 103 +- .../include/G4PreCompoundEmission.hh | 2 +- .../include/G4PreCompoundFragmentVector.hh | 46 +- .../include/G4PreCompoundFragmentVector.icc | 39 + .../include/G4PreCompoundHe3.hh | 112 +- .../include/G4PreCompoundModel.hh | 72 +- .../include/G4PreCompoundNeutron.hh | 49 +- .../include/G4PreCompoundParameters.hh | 53 +- .../include/G4PreCompoundProton.hh | 54 +- .../include/G4PreCompoundTransitions.hh | 2 +- .../include/G4PreCompoundTriton.hh | 103 +- .../include/G4VPreCompoundFragment.hh | 191 +- .../include/G4VPreCompoundFragment.icc | 126 + .../include/G4VPreCompoundIon.hh | 100 +- .../include/G4VPreCompoundNucleon.hh | 75 +- .../src/G4LowEIonFragmentation.cc | 8 +- .../src/G4PreCompoundEmission.cc | 317 +- .../src/G4PreCompoundFragmentVector.cc | 143 +- .../pre_equilibrium/src/G4PreCompoundModel.cc | 241 +- .../src/G4PreCompoundNeutron.cc | 79 - .../src/G4PreCompoundParameters.cc | 6 +- .../src/G4PreCompoundProton.cc | 98 - .../src/G4PreCompoundTransitions.cc | 6 +- .../src/G4VPreCompoundFragment.cc | 205 +- .../pre_equilibrium/src/G4VPreCompoundIon.cc | 134 +- .../src/G4VPreCompoundNucleon.cc | 72 + .../include/G4GammaParticipants.hh | 46 + .../include/G4InelasticSplitableHadron.hh | 4 +- .../quark_gluon_string/include/G4QGSModel.icc | 2 +- .../include/G4QGSParticipants.hh | 13 +- .../src/G4GammaParticipants.cc | 93 + .../src/G4HeavyIonParticipants.cc | 2 +- .../src/G4QGSMSplitableHadron.cc | 2 + .../src/G4QGSParticipants.cc | 39 +- .../string_common/include/G4EventGenerator.hh | 2 +- .../include/G4InteractionCode.hh | 2 +- .../include/G4InteractionContent.hh | 6 +- .../include/G4PomeronCrossSection.hh | 2 +- .../string_common/include/G4StringModel.hh | 2 +- .../string_common/include/G4VParticipants.hh | 2 +- .../include/G4VPartonStringModel.hh | 2 +- .../include/G4VSplitableHadron.hh | 2 +- .../include/G4VStringFragmentation.hh | 2 +- .../string_common/include/G4VertexCode.hh | 2 +- .../src/G4DiffractiveExcitation.cc | 4 +- .../string_common/src/G4EventGenerator.cc | 2 +- .../string_common/src/G4InteractionContent.cc | 2 +- .../src/G4PomeronCrossSection.cc | 2 +- .../src/G4SingleDiffractiveExcitation.cc | 4 +- .../string_common/src/G4StringModel.cc | 2 +- .../string_common/src/G4VParticipants.cc | 2 +- .../string_common/src/G4VPartonStringModel.cc | 4 +- .../string_common/src/G4VSplitableHadron.cc | 2 +- .../src/G4VStringFragmentation.cc | 2 +- .../include/G4ExcitedStringDecay.hh | 2 +- .../include/G4FragmentingString.hh | 2 +- .../include/G4HadronBuilder.hh | 2 +- .../include/G4LundStringFragmentation.hh | 2 +- .../include/G4QGSMFragmentation.hh | 2 +- .../include/G4VKinkyStringDecay.hh | 2 +- .../include/G4VLongitudinalStringDecay.hh | 2 +- .../src/G4FragmentingString.cc | 4 +- .../src/G4HadronBuilder.cc | 2 +- .../src/G4LundStringFragmentation.cc | 2 +- .../src/G4QGSMFragmentation.cc | 6 +- .../src/G4VKinkyStringDecay.cc | 2 +- .../src/G4VLongitudinalStringDecay.cc | 31 +- .../util/include/G4DecayStrongResonances.hh | 116 + .../generator/util/include/G4ExcitedString.hh | 2 +- .../util/include/G4ExcitedStringVector.hh | 2 +- .../util/include/G4Fancy3DNucleus.hh | 5 +- .../generator/util/include/G4FermiMomentum.hh | 2 +- .../generator/util/include/G4Fragment.hh | 18 +- .../util/include/G4FragmentVector.hh | 2 +- .../util/include/G4GeneralPhaseSpaceDecay.hh | 2 +- .../util/include/G4KineticTrackVector.hh | 2 +- .../util/include/G4NuclearFermiDensity.hh | 10 +- .../include/G4NuclearShellModelDensity.hh | 10 +- .../generator/util/include/G4Nucleon.hh | 2 +- .../models/generator/util/include/G4Parton.hh | 2 +- .../generator/util/include/G4PartonVector.hh | 2 +- .../util/include/G4SampleResonance.hh | 2 +- .../generator/util/src/G4ExcitedString.cc | 2 +- .../generator/util/src/G4Fancy3DNucleus.cc | 36 +- .../generator/util/src/G4FermiMomentum.cc | 2 +- .../models/generator/util/src/G4Fragment.cc | 26 +- .../util/src/G4GeneralPhaseSpaceDecay.cc | 2 +- .../generator/util/src/G4KineticTrack.cc | 2 +- .../util/src/G4NuclearFermiDensity.cc | 10 +- .../util/src/G4NuclearShellModelDensity.cc | 10 +- .../models/generator/util/src/G4Nucleon.cc | 2 +- .../models/generator/util/src/G4Parton.cc | 2 +- .../generator/util/src/G4SampleResonance.cc | 2 +- .../include/G4HEAntiKaonZeroInelastic.hh | 2 +- .../include/G4HEAntiLambdaInelastic.hh | 2 +- .../include/G4HEAntiNeutronInelastic.hh | 2 +- .../include/G4HEAntiOmegaMinusInelastic.hh | 2 +- .../include/G4HEAntiProtonInelastic.hh | 4 +- .../include/G4HEAntiSigmaMinusInelastic.hh | 2 +- .../include/G4HEAntiSigmaPlusInelastic.hh | 2 +- .../include/G4HEAntiSigmaZeroInelastic.hh | 2 +- .../include/G4HEAntiXiMinusInelastic.hh | 2 +- .../include/G4HEAntiXiZeroInelastic.hh | 2 +- .../high_energy/include/G4HEInelastic.hh | 2 +- .../include/G4HEKaonMinusInelastic.hh | 2 +- .../include/G4HEKaonPlusInelastic.hh | 2 +- .../include/G4HEKaonZeroInelastic.hh | 2 +- .../include/G4HEKaonZeroLongInelastic.hh | 2 +- .../include/G4HEKaonZeroShortInelastic.hh | 2 +- .../include/G4HELambdaInelastic.hh | 2 +- .../include/G4HENeutronInelastic.hh | 6 +- .../include/G4HEOmegaMinusInelastic.hh | 2 +- .../include/G4HEPionMinusInelastic.hh | 6 +- .../include/G4HEPionPlusInelastic.hh | 6 +- .../models/high_energy/include/G4HEPlot.hh | 2 +- .../include/G4HEProtonInelastic.hh | 6 +- .../include/G4HESigmaMinusInelastic.hh | 2 +- .../include/G4HESigmaPlusInelastic.hh | 2 +- .../include/G4HESigmaZeroInelastic.hh | 2 +- .../models/high_energy/include/G4HEVector.hh | 2 +- .../include/G4HEXiMinusInelastic.hh | 2 +- .../include/G4HEXiZeroInelastic.hh | 2 +- .../src/G4HEAntiKaonZeroInelastic.cc | 2 +- .../src/G4HEAntiLambdaInelastic.cc | 2 +- .../src/G4HEAntiNeutronInelastic.cc | 2 +- .../src/G4HEAntiOmegaMinusInelastic.cc | 2 +- .../src/G4HEAntiProtonInelastic.cc | 2 +- .../src/G4HEAntiSigmaMinusInelastic.cc | 2 +- .../src/G4HEAntiSigmaPlusInelastic.cc | 2 +- .../src/G4HEAntiSigmaZeroInelastic.cc | 2 +- .../src/G4HEAntiXiMinusInelastic.cc | 2 +- .../src/G4HEAntiXiZeroInelastic.cc | 2 +- .../models/high_energy/src/G4HEInelastic.cc | 38 +- .../high_energy/src/G4HEKaonMinusInelastic.cc | 2 +- .../high_energy/src/G4HEKaonPlusInelastic.cc | 2 +- .../high_energy/src/G4HEKaonZeroInelastic.cc | 2 +- .../src/G4HEKaonZeroLongInelastic.cc | 2 +- .../src/G4HEKaonZeroShortInelastic.cc | 2 +- .../high_energy/src/G4HELambdaInelastic.cc | 2 +- .../high_energy/src/G4HENeutronInelastic.cc | 2 +- .../src/G4HEOmegaMinusInelastic.cc | 2 +- .../high_energy/src/G4HEPionMinusInelastic.cc | 2 +- .../high_energy/src/G4HEPionPlusInelastic.cc | 2 +- .../models/high_energy/src/G4HEPlot.cc | 2 +- .../high_energy/src/G4HEProtonInelastic.cc | 2 +- .../src/G4HESigmaMinusInelastic.cc | 2 +- .../high_energy/src/G4HESigmaPlusInelastic.cc | 2 +- .../high_energy/src/G4HESigmaZeroInelastic.cc | 2 +- .../models/high_energy/src/G4HEVector.cc | 13 +- .../high_energy/src/G4HEXiMinusInelastic.cc | 2 +- .../high_energy/src/G4HEXiZeroInelastic.cc | 2 +- .../include/G4ElementIsoCrossSections.icc | 2 +- .../src/G4NeutronIsoIsoCrossSections.cc | 2 +- .../src/G4NeutronIsotopeProduction.cc | 2 +- .../models/leading_particle/GNUmakefile | 34 + .../hadronic/models/leading_particle/History | 20 + .../leading_particle/include/G4Mars5GeV.hh} | 102 +- .../leading_particle/src/G4Mars5GeV.cc} | 303 +- .../models/low_energy/include/G4LCapture.hh | 2 +- .../low_energy/include/G4LEAlphaInelastic.hh | 2 +- .../include/G4LEAntiLambdaInelastic.hh | 2 +- .../include/G4LEAntiNeutronInelastic.hh | 2 +- .../include/G4LEAntiOmegaMinusInelastic.hh | 2 +- .../include/G4LEAntiProtonInelastic.hh | 2 +- .../include/G4LEAntiSigmaMinusInelastic.hh | 2 +- .../include/G4LEAntiSigmaPlusInelastic.hh | 2 +- .../include/G4LEAntiXiMinusInelastic.hh | 2 +- .../include/G4LEAntiXiZeroInelastic.hh | 2 +- .../include/G4LEDeuteronInelastic.hh | 2 +- .../include/G4LEKaonMinusInelastic.hh | 2 +- .../include/G4LEKaonPlusInelastic.hh | 2 +- .../include/G4LEKaonZeroLInelastic.hh | 2 +- .../include/G4LEKaonZeroSInelastic.hh | 2 +- .../low_energy/include/G4LELambdaInelastic.hh | 2 +- .../include/G4LENeutronInelastic.hh | 2 +- .../include/G4LEOmegaMinusInelastic.hh | 2 +- .../include/G4LEPionMinusInelastic.hh | 6 +- .../include/G4LEPionPlusInelastic.hh | 6 +- .../low_energy/include/G4LEProtonInelastic.hh | 6 +- .../include/G4LESigmaMinusInelastic.hh | 2 +- .../include/G4LESigmaPlusInelastic.hh | 2 +- .../low_energy/include/G4LETritonInelastic.hh | 2 +- .../include/G4LEXiMinusInelastic.hh | 2 +- .../low_energy/include/G4LEXiZeroInelastic.hh | 2 +- .../models/low_energy/include/G4LElastic.hh | 2 +- .../models/low_energy/include/G4LFission.hh | 2 +- .../models/low_energy/src/G4LCapture.cc | 2 +- .../low_energy/src/G4LEAntiLambdaInelastic.cc | 2 +- .../src/G4LEAntiNeutronInelastic.cc | 5 +- .../src/G4LEAntiOmegaMinusInelastic.cc | 2 +- .../low_energy/src/G4LEAntiProtonInelastic.cc | 5 +- .../src/G4LEAntiSigmaMinusInelastic.cc | 2 +- .../src/G4LEAntiSigmaPlusInelastic.cc | 2 +- .../src/G4LEAntiXiMinusInelastic.cc | 2 +- .../low_energy/src/G4LEAntiXiZeroInelastic.cc | 2 +- .../low_energy/src/G4LEKaonMinusInelastic.cc | 6 +- .../low_energy/src/G4LEKaonPlusInelastic.cc | 2 +- .../low_energy/src/G4LEKaonZeroLInelastic.cc | 2 +- .../low_energy/src/G4LEKaonZeroSInelastic.cc | 2 +- .../low_energy/src/G4LELambdaInelastic.cc | 2 +- .../low_energy/src/G4LEOmegaMinusInelastic.cc | 2 +- .../low_energy/src/G4LEPionPlusInelastic.cc | 2 +- .../low_energy/src/G4LESigmaMinusInelastic.cc | 2 +- .../low_energy/src/G4LESigmaPlusInelastic.cc | 2 +- .../low_energy/src/G4LEXiMinusInelastic.cc | 2 +- .../low_energy/src/G4LEXiZeroInelastic.cc | 2 +- .../models/low_energy/src/G4LElastic.cc | 2 +- .../models/low_energy/src/G4LFission.cc | 2 +- .../include/G4InterpolationIterator.hh | 2 +- .../include/G4InterpolationManager.hh | 2 +- .../include/G4InterpolationScheme.hh | 2 +- .../include/G4NeutronHP2AInelasticFS.hh | 2 +- .../include/G4NeutronHP2N2AInelasticFS.hh | 2 +- .../include/G4NeutronHP2NAInelasticFS.hh | 2 +- .../include/G4NeutronHP2NDInelasticFS.hh | 2 +- .../include/G4NeutronHP2NInelasticFS.hh | 2 +- .../include/G4NeutronHP2NPInelasticFS.hh | 2 +- .../include/G4NeutronHP2PInelasticFS.hh | 2 +- .../include/G4NeutronHP3AInelasticFS.hh | 2 +- .../include/G4NeutronHP3NAInelasticFS.hh | 2 +- .../include/G4NeutronHP3NInelasticFS.hh | 2 +- .../include/G4NeutronHP3NPInelasticFS.hh | 2 +- .../include/G4NeutronHP4NInelasticFS.hh | 2 +- .../include/G4NeutronHPAInelasticFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPAngular.hh | 2 +- .../neutron_hp/include/G4NeutronHPAngularP.hh | 2 +- .../include/G4NeutronHPArbitaryTab.hh | 2 +- .../neutron_hp/include/G4NeutronHPCapture.hh | 2 +- .../include/G4NeutronHPCaptureData.hh | 2 +- .../include/G4NeutronHPCaptureFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPChannel.hh | 2 +- .../include/G4NeutronHPChannelList.hh | 2 +- .../include/G4NeutronHPContAngularPar.hh | 2 +- .../include/G4NeutronHPContEnergyAngular.hh | 2 +- .../include/G4NeutronHPD2AInelasticFS.hh | 2 +- .../include/G4NeutronHPDAInelasticFS.hh | 2 +- .../include/G4NeutronHPDInelasticFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPData.hh | 2 +- .../include/G4NeutronHPDataPoint.hh | 2 +- .../include/G4NeutronHPDeExGammas.hh | 2 +- .../include/G4NeutronHPDiscreteTwoBody.hh | 2 +- .../neutron_hp/include/G4NeutronHPElastic.hh | 2 +- .../include/G4NeutronHPElasticData.hh | 2 +- .../include/G4NeutronHPElasticFS.hh | 2 +- .../include/G4NeutronHPElementData.hh | 2 +- .../include/G4NeutronHPEnAngCorrelation.hh | 2 +- .../include/G4NeutronHPEnergyDistribution.hh | 2 +- .../include/G4NeutronHPEvapSpectrum.hh | 2 +- .../include/G4NeutronHPFCFissionFS.hh | 2 +- .../include/G4NeutronHPFSFissionFS.hh | 2 +- .../include/G4NeutronHPFastLegendre.hh | 2 +- .../neutron_hp/include/G4NeutronHPField.hh | 2 +- .../include/G4NeutronHPFieldPoint.hh | 2 +- .../include/G4NeutronHPFinalState.hh | 2 +- .../neutron_hp/include/G4NeutronHPFission.hh | 2 +- .../include/G4NeutronHPFissionBaseFS.hh | 2 +- .../include/G4NeutronHPFissionData.hh | 2 +- .../include/G4NeutronHPFissionERelease.hh | 2 +- .../include/G4NeutronHPFissionFS.hh | 2 +- .../include/G4NeutronHPFissionSpectrum.hh | 2 +- .../neutron_hp/include/G4NeutronHPGamma.hh | 2 +- .../include/G4NeutronHPHe3InelasticFS.hh | 2 +- .../include/G4NeutronHPInelastic.hh | 2 +- .../include/G4NeutronHPInelasticBaseFS.hh | 2 +- .../include/G4NeutronHPInelasticCompFS.hh | 2 +- .../include/G4NeutronHPInelasticData.hh | 2 +- .../include/G4NeutronHPInterpolator.hh | 6 +- .../neutron_hp/include/G4NeutronHPIsoData.hh | 2 +- .../include/G4NeutronHPIsotropic.hh | 2 +- .../include/G4NeutronHPKallbachMannSyst.hh | 2 +- .../include/G4NeutronHPLCFissionFS.hh | 2 +- .../include/G4NeutronHPLabAngularEnergy.hh | 2 +- .../include/G4NeutronHPLegendreStore.hh | 2 +- .../include/G4NeutronHPLegendreTable.hh | 2 +- .../neutron_hp/include/G4NeutronHPLevel.hh | 2 +- .../include/G4NeutronHPMadlandNixSpectrum.hh | 2 +- .../include/G4NeutronHPN2AInelasticFS.hh | 2 +- .../include/G4NeutronHPN2PInelasticFS.hh | 2 +- .../include/G4NeutronHPN3AInelasticFS.hh | 2 +- .../include/G4NeutronHPNAInelasticFS.hh | 2 +- .../include/G4NeutronHPNBodyPhaseSpace.hh | 2 +- .../include/G4NeutronHPND2AInelasticFS.hh | 2 +- .../include/G4NeutronHPNDInelasticFS.hh | 2 +- .../include/G4NeutronHPNHe3InelasticFS.hh | 2 +- .../include/G4NeutronHPNInelasticFS.hh | 2 +- .../include/G4NeutronHPNPAInelasticFS.hh | 2 +- .../include/G4NeutronHPNPInelasticFS.hh | 2 +- .../include/G4NeutronHPNT2AInelasticFS.hh | 2 +- .../include/G4NeutronHPNTInelasticFS.hh | 2 +- .../include/G4NeutronHPNXInelasticFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPNames.hh | 2 +- .../include/G4NeutronHPNeutronYield.hh | 2 +- .../include/G4NeutronHPPAInelasticFS.hh | 2 +- .../include/G4NeutronHPPDInelasticFS.hh | 2 +- .../include/G4NeutronHPPInelasticFS.hh | 2 +- .../include/G4NeutronHPPTInelasticFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPPartial.hh | 2 +- .../include/G4NeutronHPPhotonDist.hh | 2 +- .../include/G4NeutronHPPhotonXSection.hh | 2 +- .../include/G4NeutronHPPolynomExpansion.hh | 2 +- .../neutron_hp/include/G4NeutronHPProduct.hh | 2 +- .../include/G4NeutronHPSCFissionFS.hh | 2 +- .../include/G4NeutronHPSimpleEvapSpectrum.hh | 2 +- .../include/G4NeutronHPT2AInelasticFS.hh | 2 +- .../include/G4NeutronHPTCFissionFS.hh | 2 +- .../include/G4NeutronHPTInelasticFS.hh | 2 +- .../include/G4NeutronHPThermalBoost.hh | 2 +- .../include/G4NeutronHPWattSpectrum.hh | 2 +- .../neutron_hp/include/G4VNeutronHPEDis.hh | 2 +- .../include/G4VNeutronHPEnergyAngular.hh | 2 +- .../neutron_hp/src/G4InterpolationManager.cc | 2 +- .../neutron_hp/src/G4NeutronHPArbitaryTab.cc | 2 +- .../neutron_hp/src/G4NeutronHPCaptureData.cc | 6 +- .../neutron_hp/src/G4NeutronHPCaptureFS.cc | 10 +- .../neutron_hp/src/G4NeutronHPChannelList.cc | 2 +- .../src/G4NeutronHPContAngularPar.cc | 10 +- .../src/G4NeutronHPContEnergyAngular.cc | 6 +- .../src/G4NeutronHPDiscreteTwoBody.cc | 4 +- .../neutron_hp/src/G4NeutronHPElasticData.cc | 4 +- .../neutron_hp/src/G4NeutronHPElasticFS.cc | 5 +- .../neutron_hp/src/G4NeutronHPElementData.cc | 4 +- .../neutron_hp/src/G4NeutronHPFSFissionFS.cc | 2 +- .../src/G4NeutronHPFissionBaseFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPFissionData.cc | 4 +- .../neutron_hp/src/G4NeutronHPInelastic.cc | 2 +- .../src/G4NeutronHPInelasticBaseFS.cc | 8 +- .../src/G4NeutronHPInelasticCompFS.cc | 12 +- .../src/G4NeutronHPInelasticData.cc | 4 +- .../src/G4NeutronHPKallbachMannSyst.cc | 4 +- .../src/G4NeutronHPLabAngularEnergy.cc | 8 +- .../src/G4NeutronHPLegendreStore.cc | 4 +- .../models/neutron_hp/src/G4NeutronHPLevel.cc | 2 +- .../src/G4NeutronHPNBodyPhaseSpace.cc | 6 +- .../neutron_hp/src/G4NeutronHPPhotonDist.cc | 8 +- .../neutron_hp/src/G4NeutronHPVector.cc | 1 - .../src/G4NuclearDecayChannel.cc | 2 +- .../include/G4AlphaInelasticProcess.hh | 2 +- .../include/G4AntiLambdaInelasticProcess.hh | 2 +- .../include/G4AntiNeutronInelasticProcess.hh | 2 +- .../G4AntiOmegaMinusInelasticProcess.hh | 2 +- .../include/G4AntiProtonInelasticProcess.hh | 2 +- .../G4AntiSigmaMinusInelasticProcess.hh | 2 +- .../G4AntiSigmaPlusInelasticProcess.hh | 2 +- .../include/G4AntiXiMinusInelasticProcess.hh | 2 +- .../include/G4AntiXiZeroInelasticProcess.hh | 2 +- .../include/G4DeuteronInelasticProcess.hh | 2 +- .../include/G4KaonMinusInelasticProcess.hh | 2 +- .../include/G4KaonPlusInelasticProcess.hh | 2 +- .../include/G4KaonZeroLInelasticProcess.hh | 2 +- .../include/G4KaonZeroSInelasticProcess.hh | 2 +- .../include/G4LambdaInelasticProcess.hh | 2 +- .../include/G4NeutronInelasticProcess.hh | 2 +- .../include/G4OmegaMinusInelasticProcess.hh | 2 +- .../include/G4PionMinusInelasticProcess.hh | 2 +- .../include/G4PionPlusInelasticProcess.hh | 2 +- .../include/G4ProtonInelasticProcess.hh | 2 +- .../include/G4SigmaMinusInelasticProcess.hh | 2 +- .../include/G4SigmaPlusInelasticProcess.hh | 2 +- .../include/G4TritonInelasticProcess.hh | 2 +- .../include/G4XiMinusInelasticProcess.hh | 2 +- .../include/G4XiZeroInelasticProcess.hh | 2 +- .../G4AntiNeutronAnnihilationAtRest.hh | 2 +- .../include/G4AntiProtonAnnihilationAtRest.hh | 2 +- .../include/G4DistributionGenerator.hh | 2 +- .../stopping/include/G4KaonMinusAbsorption.hh | 2 +- .../include/G4KaonMinusAbsorptionAtRest.hh | 2 +- .../include/G4MuonMinusCaptureAtRest.hh | 2 +- .../include/G4NeutronCaptureAtRest.hh | 2 +- .../include/G4PiMinusAbsorptionAtRest.hh | 2 +- .../include/G4PiMinusStopAbsorption.hh | 2 +- .../stopping/include/G4PiMinusStopAl.hh | 2 +- .../stopping/include/G4PiMinusStopC.hh | 2 +- .../stopping/include/G4PiMinusStopCo.hh | 2 +- .../stopping/include/G4PiMinusStopCu.hh | 2 +- .../stopping/include/G4PiMinusStopLi.hh | 2 +- .../stopping/include/G4PiMinusStopN.hh | 2 +- .../stopping/include/G4PiMinusStopO.hh | 2 +- .../stopping/include/G4PiMinusStopPb.hh | 2 +- .../stopping/include/G4PiMinusStopTa.hh | 2 +- .../include/G4PionMinusAbsorptionAtRest.hh | 2 +- .../stopping/include/G4StopDeexcitation.hh | 2 +- .../include/G4StopDeexcitationAlgorithm.hh | 2 +- .../include/G4StopDummyDeexcitation.hh | 2 +- .../include/G4StopTheoDeexcitation.hh | 2 +- .../src/G4AntiProtonAnnihilationAtRest.cc | 2 +- .../stopping/src/G4DistributionGenerator.cc | 2 +- .../stopping/src/G4KaonMinusAbsorption.cc | 2 +- .../src/G4KaonMinusAbsorptionAtRest.cc | 12 +- .../stopping/src/G4MuMinusCaptureCascade.cc | 4 +- .../stopping/src/G4MuonMinusCaptureAtRest.cc | 2 +- .../stopping/src/G4NeutronCaptureAtRest.cc | 2 +- .../stopping/src/G4PiMinusAbsorptionAtRest.cc | 10 +- .../stopping/src/G4PiMinusStopAbsorption.cc | 14 +- .../hadronic/stopping/src/G4PiMinusStopAl.cc | 2 +- .../hadronic/stopping/src/G4PiMinusStopC.cc | 2 +- .../hadronic/stopping/src/G4PiMinusStopCo.cc | 2 +- .../hadronic/stopping/src/G4PiMinusStopCu.cc | 2 +- .../hadronic/stopping/src/G4PiMinusStopLi.cc | 2 +- .../stopping/src/G4PiMinusStopMaterial.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopN.cc | 2 +- .../hadronic/stopping/src/G4PiMinusStopO.cc | 2 +- .../hadronic/stopping/src/G4PiMinusStopPb.cc | 2 +- .../hadronic/stopping/src/G4PiMinusStopTa.cc | 2 +- .../src/G4PionMinusAbsorptionAtRest.cc | 2 +- .../stopping/src/G4StopDeexcitation.cc | 2 +- .../stopping/src/G4StopDummyDeexcitation.cc | 2 +- .../stopping/src/G4StopTheoDeexcitation.cc | 8 +- source/processes/hadronic/util/GNUmakefile | 16 +- .../util/include/G4DynamicParticleVector.hh | 2 +- .../util/include/G4EffectiveCharge.hh | 180 + .../util/include/G4GHEKinematicsVector.hh | 2 +- .../hadronic/util/include/G4LightMedia.hh | 2 +- .../hadronic/util/include/G4Nucleus.hh | 29 +- .../hadronic/util/include/G4ParticleVector.hh | 2 +- .../util/include/G4ReactionDynamics.hh | 2 +- .../util/include/G4ReactionKinematics.hh | 2 +- .../util/include/G4ReactionProduct.hh | 2 +- .../util/include/G4ReactionProductVector.hh | 2 +- .../hadronic/util/include/G4StableIsotopes.hh | 2 +- .../hadronic/util/src/G4LightMedia.cc | 2 +- .../processes/hadronic/util/src/G4Nucleus.cc | 33 +- .../hadronic/util/src/G4ReactionDynamics.cc | 108 +- .../hadronic/util/src/G4ReactionKinematics.cc | 6 +- .../hadronic/util/src/G4ReactionProduct.cc | 2 +- .../hadronic/util/src/G4StableIsotopes.cc | 2 +- source/processes/management/History | 8 +- .../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 | 2 +- .../management/include/G4ProcessType.hh | 2 +- .../management/include/G4ProcessVector.hh | 2 +- .../management/include/G4ProcessVector.icc | 2 +- .../include/G4VContinuousDiscreteProcess.hh | 17 +- .../include/G4VContinuousProcess.hh | 2 +- .../management/include/G4VDiscreteProcess.hh | 19 +- .../management/include/G4VProcess.hh | 16 +- .../G4VRestContinuousDiscreteProcess.hh | 18 +- .../include/G4VRestContinuousProcess.hh | 2 +- .../include/G4VRestDiscreteProcess.hh | 18 +- .../management/include/G4VRestProcess.hh | 2 +- .../management/include/G4WrapperProcess.hh | 365 + .../src/G4IVContinuousDiscreteProcess.cc | 2 +- .../management/src/G4IVRestDiscreteProcess.cc | 2 +- .../management/src/G4ProcTblElement.cc | 2 +- .../management/src/G4ProcessAttribute.cc | 2 +- .../management/src/G4ProcessManager.cc | 2 +- .../src/G4ProcessManagerMessenger.cc | 2 +- .../management/src/G4ProcessTable.cc | 2 +- .../management/src/G4ProcessTableMessenger.cc | 2 +- .../management/src/G4ProcessVector.cc | 2 +- .../src/G4VContinuousDiscreteProcess.cc | 2 +- .../management/src/G4VContinuousProcess.cc | 2 +- .../management/src/G4VDiscreteProcess.cc | 2 +- source/processes/management/src/G4VProcess.cc | 6 +- .../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 | 27 +- .../processes/optical/include/G4OpRayleigh.hh | 2 +- .../processes/optical/src/G4OpAbsorption.cc | 2 +- source/processes/optical/src/G4OpRayleigh.cc | 2 +- .../include/G4FastSimulationManager.hh | 2 +- .../include/G4FastSimulationManagerProcess.hh | 2 +- .../include/G4FastSimulationMessenger.hh | 2 +- .../parameterisation/include/G4FastStep.hh | 2 +- .../parameterisation/include/G4FastStep.icc | 2 +- .../parameterisation/include/G4FastTrack.hh | 2 +- .../include/G4FlavoredParallelWorld.hh | 2 +- .../include/G4GlobalFastSimulationManager.hh | 2 +- .../include/G4VFastSimulationModel.hh | 2 +- .../src/G4FastSimulationManager.cc | 2 +- .../src/G4FastSimulationManagerProcess.cc | 2 +- .../src/G4FastSimulationMessenger.cc | 2 +- .../parameterisation/src/G4FastStep.cc | 2 +- .../parameterisation/src/G4FastTrack.cc | 2 +- .../src/G4GlobalFastSimulationManager.cc | 2 +- .../src/G4VFastSimulationModel.cc | 2 +- .../include/G4MuNuclearInteraction.hh | 2 +- .../include/G4MuNuclearInteraction.icc | 2 +- .../src/G4MuNuclearInteraction.cc | 2 +- .../src/G4MuonNucleusInteractionModel.cc | 2 +- .../src/G4ParametrizedHadronicVertex.cc | 2 +- source/processes/transportation/GNUmakefile | 10 +- source/processes/transportation/History | 179 +- .../include/G4ImportancePostStepDoIt.hh | 71 + .../transportation/include/G4MScoreProcess.hh | 98 + .../include/G4MassImportanceProcess.hh | 99 + .../include/G4MassImportanceSampler.hh | 89 + .../include/G4MassImportanceScoreSampler.hh | 85 + .../include/G4MassScoreSampler.hh | 78 + .../transportation/include/G4PIScorer.hh | 95 + .../G4PImportanceWWindowScoreSampler.hh | 99 + .../transportation/include/G4PScoreProcess.hh | 102 + .../transportation/include/G4PScorer.hh | 76 + .../include/G4ParallelImportanceProcess.hh | 76 + .../include/G4ParallelImportanceSampler.hh | 104 + .../G4ParallelImportanceScoreSampler.hh | 92 + .../include/G4ParallelScoreSampler.hh | 87 + .../include/G4ParallelTransport.hh | 122 + .../include/G4ParallelWeightWindowProcess.hh | 118 + .../transportation/include/G4ProcessPlacer.hh | 89 + .../include/G4Transportation.hh | 2 +- .../include/G4Transportation.icc | 2 +- .../include/G4UserSpecialCuts.hh | 2 +- .../include/G4VProcessPlacer.hh | 68 + .../transportation/include/G4VSampler.hh | 48 + .../src/G4ImportancePostStepDoIt.cc | 91 + .../transportation/src/G4MScoreProcess.cc | 84 + .../src/G4MassImportanceProcess.cc | 93 + .../src/G4MassImportanceSampler.cc | 76 + .../src/G4MassImportanceScoreSampler.cc | 60 + .../transportation/src/G4MassScoreSampler.cc | 67 + .../transportation/src/G4PIScorer.cc | 92 + .../src/G4PImportanceWWindowScoreSampler.cc | 111 + .../transportation/src/G4PScoreProcess.cc | 70 + .../processes/transportation/src/G4PScorer.cc | 77 + .../src/G4ParallelImportanceProcess.cc | 68 + .../src/G4ParallelImportanceSampler.cc | 110 + .../src/G4ParallelImportanceScoreSampler.cc | 86 + .../src/G4ParallelScoreSampler.cc | 88 + .../transportation/src/G4ParallelTransport.cc | 131 + .../src/G4ParallelWeightWindowProcess.cc | 113 + .../transportation/src/G4ProcessPlacer.cc | 178 + .../transportation/src/G4Transportation.cc | 9 +- .../transportation/src/G4UserSpecialCuts.cc | 2 +- source/readout/include/G4DCtable.hh | 2 +- source/readout/include/G4DMmessenger.hh | 2 +- source/readout/include/G4DigiManager.hh | 2 +- source/readout/include/G4VDigitizerModule.hh | 2 +- source/readout/src/G4DCtable.cc | 2 +- source/readout/src/G4DMmessenger.cc | 2 +- source/readout/src/G4DigiManager.cc | 2 +- source/readout/src/G4VDigitizerModule.cc | 2 +- source/run/History | 18 +- source/run/include/G4Run.hh | 2 +- source/run/include/G4RunManager.hh | 2 +- source/run/include/G4RunMessenger.hh | 2 +- .../run/include/G4UserPhysicsListMessenger.hh | 2 +- source/run/include/G4UserRunAction.hh | 2 +- source/run/include/G4VModularPhysicsList.hh | 74 +- 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/G4Run.cc | 2 +- source/run/src/G4RunManager.cc | 7 +- source/run/src/G4RunMessenger.cc | 2 +- source/run/src/G4UserPhysicsListMessenger.cc | 2 +- source/run/src/G4UserRunAction.cc | 2 +- source/run/src/G4VModularPhysicsList.cc | 68 + 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 | 16 +- source/track/include/G4EvtBiasMechanism.hh | 95 - source/track/include/G4ForceCondition.hh | 2 +- source/track/include/G4GPILSelection.hh | 2 +- source/track/include/G4ParticleChange.hh | 2 +- source/track/include/G4ParticleChange.icc | 2 +- .../track/include/G4ParticleChangeForDecay.hh | 2 +- .../track/include/G4ParticleChangeForLoss.hh | 2 +- .../track/include/G4ParticleChangeForMSC.icc | 2 +- .../include/G4ParticleChangeForRadDecay.hh | 2 +- .../include/G4ParticleChangeForTransport.hh | 2 +- .../include/G4ParticleChangeForTransport.icc | 2 +- source/track/include/G4Step.hh | 2 +- source/track/include/G4Step.icc | 2 +- source/track/include/G4StepPoint.hh | 2 +- source/track/include/G4StepPoint.icc | 2 +- source/track/include/G4StepStatus.hh | 2 +- source/track/include/G4SteppingControl.hh | 2 +- source/track/include/G4Track.hh | 26 +- source/track/include/G4Track.icc | 8 +- source/track/include/G4TrackFastVector.hh | 2 +- source/track/include/G4TrackStatus.hh | 2 +- source/track/include/G4VParticleChange.hh | 2 +- source/track/include/G4VParticleChange.icc | 7 +- .../track/include/G4VUserTrackInformation.hh | 2 +- source/track/src/G4EvtBiasMechanism.cc | 109 - source/track/src/G4ParticleChange.cc | 17 +- source/track/src/G4ParticleChangeForDecay.cc | 2 +- source/track/src/G4ParticleChangeForLoss.cc | 2 +- source/track/src/G4ParticleChangeForMSC.cc | 2 +- .../track/src/G4ParticleChangeForTransport.cc | 2 +- source/track/src/G4Step.cc | 2 +- source/track/src/G4StepPoint.cc | 2 +- source/track/src/G4Track.cc | 33 +- source/track/src/G4VParticleChange.cc | 5 +- source/tracking/History | 37 +- source/tracking/include/G4SteppingManager.hh | 34 +- source/tracking/include/G4SteppingVerbose.hh | 2 +- source/tracking/include/G4TrackVector.hh | 2 +- source/tracking/include/G4TrackingManager.hh | 2 +- .../tracking/include/G4TrackingMessenger.hh | 2 +- source/tracking/include/G4Trajectory.hh | 2 +- source/tracking/include/G4TrajectoryPoint.hh | 2 +- .../tracking/include/G4UserSteppingAction.hh | 2 +- .../tracking/include/G4UserTrackingAction.hh | 2 +- source/tracking/include/G4VSteppingVerbose.hh | 2 +- source/tracking/include/G4VTrajectory.hh | 2 +- source/tracking/include/G4VTrajectoryPoint.hh | 2 +- source/tracking/src/.cvsignore | 2 - source/tracking/src/G4SteppingManager.cc | 16 +- source/tracking/src/G4SteppingManager2.cc | 168 +- source/tracking/src/G4SteppingVerbose.cc | 2 +- source/tracking/src/G4TrackingManager.cc | 5 +- source/tracking/src/G4TrackingMessenger.cc | 2 +- source/tracking/src/G4Trajectory.cc | 2 +- source/tracking/src/G4TrajectoryPoint.cc | 2 +- source/tracking/src/G4UserSteppingAction.cc | 2 +- source/tracking/src/G4UserTrackingAction.cc | 2 +- source/tracking/src/G4VSteppingVerbose.cc | 2 +- .../FukuiRenderer/include/G4DAWNFILE.hh | 2 +- .../include/G4DAWNFILESceneHandler.hh | 2 +- .../FukuiRenderer/include/G4DAWNFILEViewer.hh | 2 +- .../FukuiRenderer/include/G4FRClientServer.hh | 2 +- .../FukuiRenderer/include/G4FRConst.hh | 2 +- .../FukuiRenderer/include/G4FRFeatures.hh | 2 +- .../FukuiRenderer/include/G4FRSceneFunc.icc | 2 +- .../FukuiRenderer/include/G4FRofstream.hh | 2 +- .../FukuiRenderer/include/G4FukuiRenderer.hh | 2 +- .../include/G4FukuiRendererSceneHandler.hh | 2 +- .../include/G4FukuiRendererViewer.hh | 2 +- .../FukuiRenderer/src/G4DAWNFILE.cc | 2 +- .../src/G4DAWNFILESceneHandler.cc | 2 +- .../FukuiRenderer/src/G4DAWNFILEViewer.cc | 2 +- .../FukuiRenderer/src/G4FRClientServer.cc | 2 +- .../FukuiRenderer/src/G4FukuiRenderer.cc | 2 +- .../src/G4FukuiRendererSceneHandler.cc | 2 +- .../src/G4FukuiRendererViewer.cc | 2 +- source/visualization/HepRep/History | 28 +- .../HepRep/include/G4HepRepFile.hh | 4 +- .../include/G4HepRepFileSceneHandler.hh | 18 +- .../HepRep/include/G4HepRepFileViewer.hh | 5 +- .../HepRep/include/HepRepXMLWriter.hh | 17 +- .../visualization/HepRep/src/G4HepRepFile.cc | 4 +- .../HepRep/src/G4HepRepFileSceneHandler.cc | 224 +- .../HepRep/src/G4HepRepFileViewer.cc | 26 +- .../HepRep/src/HepRepXMLWriter.cc | 169 +- source/visualization/History | 81 +- source/visualization/OPACS/GNUmakefile | 12 +- .../OPACS/include/G4GoSceneHandler.hh | 2 +- 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 | 2 +- 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 | 15 +- source/visualization/OpenGL/History | 7 +- .../include/G4OpenGLImmediateSceneHandler.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateViewer.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateWin32.hh | 2 +- .../include/G4OpenGLImmediateWin32Viewer.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateX.hh | 2 +- .../include/G4OpenGLImmediateXViewer.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateXm.hh | 2 +- .../include/G4OpenGLImmediateXmViewer.hh | 2 +- .../OpenGL/include/G4OpenGLSceneHandler.hh | 6 +- .../OpenGL/include/G4OpenGLSceneHandler.icc | 2 +- .../include/G4OpenGLStoredSceneHandler.hh | 2 +- .../OpenGL/include/G4OpenGLStoredViewer.hh | 2 +- .../OpenGL/include/G4OpenGLStoredWin32.hh | 2 +- .../include/G4OpenGLStoredWin32Viewer.hh | 2 +- .../OpenGL/include/G4OpenGLStoredX.hh | 2 +- .../OpenGL/include/G4OpenGLStoredXViewer.hh | 2 +- .../OpenGL/include/G4OpenGLStoredXm.hh | 2 +- .../OpenGL/include/G4OpenGLStoredXmViewer.hh | 2 +- .../OpenGL/include/G4OpenGLTransform3D.hh | 2 +- .../OpenGL/include/G4OpenGLViewer.hh | 6 +- .../OpenGL/include/G4OpenGLWin32Viewer.hh | 2 +- .../OpenGL/include/G4OpenGLXViewer.hh | 7 +- .../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 | 6 +- .../OpenGL/src/G4OpenGLImmediateViewer.cc | 12 +- .../OpenGL/src/G4OpenGLImmediateWin32.cc | 8 +- .../src/G4OpenGLImmediateWin32Viewer.cc | 8 +- .../OpenGL/src/G4OpenGLImmediateX.cc | 8 +- .../OpenGL/src/G4OpenGLImmediateXViewer.cc | 11 +- .../OpenGL/src/G4OpenGLImmediateXm.cc | 6 +- .../OpenGL/src/G4OpenGLImmediateXmViewer.cc | 8 +- .../OpenGL/src/G4OpenGLSceneHandler.cc | 5 +- .../OpenGL/src/G4OpenGLStoredSceneHandler.cc | 6 +- .../OpenGL/src/G4OpenGLStoredViewer.cc | 8 +- .../OpenGL/src/G4OpenGLStoredWin32.cc | 6 +- .../OpenGL/src/G4OpenGLStoredWin32Viewer.cc | 8 +- .../OpenGL/src/G4OpenGLStoredX.cc | 6 +- .../OpenGL/src/G4OpenGLStoredXViewer.cc | 11 +- .../OpenGL/src/G4OpenGLStoredXm.cc | 8 +- .../OpenGL/src/G4OpenGLStoredXmViewer.cc | 8 +- .../OpenGL/src/G4OpenGLTransform3D.cc | 2 +- .../OpenGL/src/G4OpenGLViewer.cc | 23 +- .../OpenGL/src/G4OpenGLWin32Viewer.cc | 9 +- .../OpenGL/src/G4OpenGLXViewer.cc | 18 +- .../visualization/OpenGL/src/G4OpenGLXmBox.cc | 2 +- .../src/G4OpenGLXmConvenienceRoutines.cc | 2 +- .../OpenGL/src/G4OpenGLXmFourArrowButtons.cc | 2 +- .../OpenGL/src/G4OpenGLXmFramedBox.cc | 2 +- .../src/G4OpenGLXmMainMenubarCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmPanningCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmPushButton.cc | 2 +- .../OpenGL/src/G4OpenGLXmRadioButton.cc | 2 +- .../OpenGL/src/G4OpenGLXmRotationCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmSeparator.cc | 2 +- .../OpenGL/src/G4OpenGLXmSliderBar.cc | 2 +- .../OpenGL/src/G4OpenGLXmStyleCallbacks.cc | 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 | 7 +- .../src/G4OpenGLXmWindowHandlingCallbacks.cc | 2 +- source/visualization/OpenInventor/GNUmakefile | 20 +- .../OpenInventor/include/G4OpenInventor.hh | 2 +- .../include/G4OpenInventorSceneHandler.hh | 2 +- .../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 | 2 +- .../src/G4OpenInventorTransform3D.cc | 2 +- .../OpenInventor/src/G4OpenInventorViewer.cc | 2 +- .../OpenInventor/src/G4OpenInventorWin32.cc | 2 +- .../OpenInventor/src/G4OpenInventorX.cc | 2 +- source/visualization/README | 2 +- .../README.adding_graphics_system | 81 + source/visualization/README.built_in_commands | 7 +- source/visualization/RayTracer/History | 6 +- .../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 | 2 +- .../RayTracer/include/G4RayTracerViewer.hh | 2 +- .../RayTracer/include/G4RayTrajectory.hh | 2 +- .../RayTracer/include/G4RayTrajectoryPoint.hh | 2 +- .../RayTracer/include/G4VFigureFileMaker.hh | 2 +- .../RayTracer/src/G4RTJpegCoder.cc | 2 +- .../RayTracer/src/G4RTJpegMaker.cc | 2 +- .../RayTracer/src/G4RTMessenger.cc | 2 +- .../RayTracer/src/G4RTOutBitStream.cc | 2 +- .../RayTracer/src/G4RTSteppingAction.cc | 2 +- .../RayTracer/src/G4RTTrackingAction.cc | 2 +- .../RayTracer/src/G4RayShooter.cc | 2 +- .../RayTracer/src/G4RayTracer.cc | 2 +- .../RayTracer/src/G4RayTracerSceneHandler.cc | 2 +- .../RayTracer/src/G4RayTracerViewer.cc | 19 +- .../RayTracer/src/G4RayTrajectory.cc | 2 +- .../RayTracer/src/G4RayTrajectoryPoint.cc | 2 +- .../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 | 2 +- .../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 | 2 +- source/visualization/Tree/src/G4VTree.cc | 2 +- .../Tree/src/G4VTreeSceneHandler.cc | 2 +- .../visualization/Tree/src/G4VTreeViewer.cc | 2 +- source/visualization/VRML/GNUmakefile | 8 +- .../visualization/VRML/g4vrmlview/g4mini.java | 2 +- .../VRML/g4vrmlview/g4vrmlview.java | 2 +- source/visualization/VRML/include/FRClient.h | 9 +- .../visualization/VRML/include/G4FRClient.hh | 7 +- source/visualization/VRML/include/G4VRML1.hh | 7 +- .../visualization/VRML/include/G4VRML1File.hh | 2 +- .../VRML/include/G4VRML1FileSceneHandler.hh | 7 +- .../VRML/include/G4VRML1FileViewer.hh | 2 +- .../VRML/include/G4VRML1SceneHandler.hh | 8 +- .../VRML/include/G4VRML1Viewer.hh | 7 +- source/visualization/VRML/include/G4VRML2.hh | 7 +- .../visualization/VRML/include/G4VRML2File.hh | 6 +- .../VRML/include/G4VRML2FileSceneHandler.hh | 6 +- .../VRML/include/G4VRML2FileViewer.hh | 6 +- .../VRML/include/G4VRML2SceneHandler.hh | 7 +- .../VRML/include/G4VRML2Viewer.hh | 7 +- .../VRML/include/G4VRMLNetConfig.hh | 7 +- source/visualization/VRML/src/FRClient.cc | 14 +- source/visualization/VRML/src/G4FRClient.cc | 16 +- source/visualization/VRML/src/G4VRML1.cc | 8 +- source/visualization/VRML/src/G4VRML1File.cc | 2 +- .../VRML/src/G4VRML1FileSceneHandler.cc | 2 +- .../VRML/src/G4VRML1FileViewer.cc | 2 +- .../VRML/src/G4VRML1SceneHandler.cc | 7 +- .../VRML/src/G4VRML1SceneHandlerFunc.icc | 8 +- .../visualization/VRML/src/G4VRML1Viewer.cc | 7 +- source/visualization/VRML/src/G4VRML2.cc | 7 +- source/visualization/VRML/src/G4VRML2File.cc | 2 +- .../VRML/src/G4VRML2FileSceneHandler.cc | 8 +- .../VRML/src/G4VRML2FileViewer.cc | 2 +- .../VRML/src/G4VRML2SceneHandler.cc | 12 +- .../VRML/src/G4VRML2SceneHandlerFunc.icc | 8 +- .../visualization/VRML/src/G4VRML2Viewer.cc | 7 +- source/visualization/XXX/include/G4XXX.hh | 2 +- .../XXX/include/G4XXXSceneHandler.hh | 2 +- .../visualization/XXX/include/G4XXXViewer.hh | 2 +- source/visualization/XXX/src/G4XXX.cc | 2 +- .../XXX/src/G4XXXSceneHandler.cc | 2 +- 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 | 2 +- .../management/include/G4VSceneHandler.icc | 2 +- .../management/include/G4VViewer.hh | 2 +- .../management/include/G4VViewer.icc | 2 +- .../management/include/G4VVisCommand.hh | 2 +- .../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 | 2 +- .../include/G4VisCommandsSceneHandler.hh | 2 +- .../management/include/G4VisCommandsViewer.hh | 2 +- .../include/G4VisCommandsViewerSet.hh | 2 +- .../include/G4VisFeaturesOfDAWNFILE.hh | 2 +- .../include/G4VisFeaturesOfFukuiRenderer.hh | 2 +- .../include/G4VisFeaturesOfOpenGL.hh | 2 +- .../include/G4VisFeaturesOfOpenInventor.hh | 2 +- .../management/include/G4VisManager.hh | 2 +- .../management/include/G4VisManager.icc | 2 +- .../management/include/G4VisStateDependent.hh | 2 +- .../include/G4VisToOldVisCommands.hh | 2 +- .../management/include/MyVisManager.cc | 2 +- .../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 | 2 +- .../visualization/management/src/G4VViewer.cc | 2 +- .../management/src/G4VVisCommand.cc | 2 +- .../management/src/G4ViewParameters.cc | 2 +- .../management/src/G4ViewerList.cc | 2 +- .../management/src/G4VisCommands.cc | 2 +- .../management/src/G4VisCommandsCompound.cc | 38 +- .../management/src/G4VisCommandsScene.cc | 2 +- .../management/src/G4VisCommandsSceneAdd.cc | 8 +- .../src/G4VisCommandsSceneHandler.cc | 2 +- .../management/src/G4VisCommandsViewer.cc | 24 +- .../management/src/G4VisCommandsViewerSet.cc | 19 +- .../management/src/G4VisFeaturesOfDAWNFILE.cc | 2 +- .../src/G4VisFeaturesOfFukuiRenderer.cc | 2 +- .../management/src/G4VisFeaturesOfOpenGL.cc | 2 +- .../src/G4VisFeaturesOfOpenInventor.cc | 2 +- .../management/src/G4VisManager.cc | 8 +- .../management/src/G4VisStateDependent.cc | 2 +- source/visualization/modeling/History | 9 +- .../modeling/include/G4AxesModel.hh | 2 +- .../modeling/include/G4AxesModel.icc | 2 +- .../modeling/include/G4BoundingSphereScene.hh | 2 +- .../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 | 2 +- .../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 | 2 +- .../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 | 2 +- .../visualization/modeling/src/G4HitsModel.cc | 6 +- .../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 | 6 +- source/visualization/modeling/src/G4VModel.cc | 2 +- 4524 files changed, 178689 insertions(+), 43575 deletions(-) create mode 100644 ReleaseNotes/Patch4.4.0-1.txt create mode 100644 ReleaseNotes/Patch4.4.0-2.txt create mode 100644 ReleaseNotes/ReleaseNotes4.4.1.txt create mode 100644 config/sys/Darwin-g++.gmk delete mode 100644 config/sys/SUN-CC4.gmk create mode 100644 examples/advanced/brachytherapy/brachy.py create mode 100644 examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyPhantomHit.hh rename examples/advanced/brachytherapy/include/{BrachyWaterBoxROGeometry.hh => BrachyPhantomROGeometry.hh} (81%) create mode 100644 examples/advanced/brachytherapy/include/BrachyPhantomSD.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyRunAction.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyVisManager.hh create mode 100644 examples/advanced/brachytherapy/initInter.mac create mode 100644 examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc rename examples/advanced/brachytherapy/src/{BrachyWaterBoxHit.cc => BrachyPhantomHit.cc} (66%) create mode 100644 examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyPhantomSD.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyRunAction.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyVisManager.cc delete mode 100644 examples/advanced/brachytherapy/src/BrachyWaterBoxROGeometry.cc delete mode 100644 examples/advanced/brachytherapy/src/BrachyWaterBoxSD.cc delete mode 100644 examples/advanced/gammaray_telescope/anaphe.gmk rename examples/advanced/gammaray_telescope/include/{GammaRayTelAnalysis.hh-AIDA => GammaRayTelAnalysis.hh} (97%) delete mode 100644 examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh-Anaphe rename examples/advanced/gammaray_telescope/src/{GammaRayTelAnalysis.cc-AIDA => GammaRayTelAnalysis.cc} (83%) delete mode 100644 examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc-Anaphe create mode 100644 examples/advanced/underground_physics/DMX.py create mode 100644 examples/advanced/underground_physics/ambe_spectrum.mac create mode 100644 examples/advanced/underground_physics/anaphe create mode 100644 examples/advanced/underground_physics/anaphe.tar.gz create mode 100644 examples/advanced/underground_physics/gamma_2000.mac create mode 100644 examples/advanced/underground_physics/include/DMXAnalysisManager.hh create mode 100644 examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh create mode 100644 examples/advanced/underground_physics/include/DMXDetectorMessenger.hh create mode 100644 examples/advanced/underground_physics/include/DMXDetectorRoom.ihh create mode 100644 examples/advanced/underground_physics/include/DMXMinEkineCuts.hh create mode 100644 examples/advanced/underground_physics/src/DMXAnalysisManager.cc create mode 100644 examples/advanced/underground_physics/src/DMXDetectorField.icc create mode 100644 examples/advanced/underground_physics/src/DMXDetectorMaterial.icc create mode 100644 examples/advanced/underground_physics/src/DMXDetectorMessenger.cc create mode 100644 examples/advanced/underground_physics/src/DMXDetectorRoom.icc create mode 100644 examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc create mode 100644 examples/advanced/underground_physics/src/DMXMinEkineCuts.cc rename examples/advanced/xray_fluorescence/include/{XrayFluoAnalysisManager.hh-AIDA => XrayFluoAnalysisManager.hh} (85%) delete mode 100644 examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh-Anaphe rename examples/advanced/xray_fluorescence/src/{XrayFluoAnalysisManager.cc-AIDA => XrayFluoAnalysisManager.cc} (69%) delete mode 100644 examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc-Anaphe create mode 100644 examples/extended/biasing/B01/GNUmakefile create mode 100644 examples/extended/biasing/B01/exampleB01.cc create mode 100644 examples/extended/biasing/B01/exampleB01.out create mode 100644 examples/extended/biasing/B01/include/B01DetectorConstruction.hh create mode 100644 examples/extended/biasing/B01/include/B01PhysicsList.hh create mode 100644 examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B01/include/B01Scorer.hh create mode 100644 examples/extended/biasing/B01/src/B01DetectorConstruction.cc create mode 100644 examples/extended/biasing/B01/src/B01PhysicsList.cc create mode 100644 examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B01/src/B01Scorer.cc create mode 100644 examples/extended/biasing/B02/GNUmakefile create mode 100644 examples/extended/biasing/B02/exampleB02.cc create mode 100644 examples/extended/biasing/B02/exampleB02.out create mode 100644 examples/extended/biasing/B02/include/B02DetectorConstruction.hh create mode 100644 examples/extended/biasing/B02/include/B02PhysicsList.hh create mode 100644 examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B02/include/B02Scorer.hh create mode 100644 examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh create mode 100644 examples/extended/biasing/B02/src/B02DetectorConstruction.cc create mode 100644 examples/extended/biasing/B02/src/B02PhysicsList.cc create mode 100644 examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B02/src/B02Scorer.cc create mode 100644 examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc create mode 100644 examples/extended/biasing/B03/GNUmakefile create mode 100644 examples/extended/biasing/B03/exampleB03.cc create mode 100644 examples/extended/biasing/B03/exampleB03.out create mode 100644 examples/extended/biasing/B03/include/B03DetectorConstruction.hh create mode 100644 examples/extended/biasing/B03/include/B03PhysicsList.hh create mode 100644 examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B03/init.mac create mode 100644 examples/extended/biasing/B03/src/B03DetectorConstruction.cc create mode 100644 examples/extended/biasing/B03/src/B03PhysicsList.cc create mode 100644 examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B04/GNUmakefile create mode 100644 examples/extended/biasing/B04/exampleB04.cc create mode 100644 examples/extended/biasing/B04/exampleB04.out create mode 100644 examples/extended/biasing/B04/include/B04DetectorConstruction.hh create mode 100644 examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.hh create mode 100644 examples/extended/biasing/B04/include/B04PhysicsList.hh create mode 100644 examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B04/src/B04DetectorConstruction.cc create mode 100644 examples/extended/biasing/B04/src/B04ImportanceDetectorConstruction.cc create mode 100644 examples/extended/biasing/B04/src/B04PhysicsList.cc create mode 100644 examples/extended/biasing/B04/src/B04PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B05/GNUmakefile create mode 100644 examples/extended/biasing/B05/exampleB05.cc create mode 100644 examples/extended/biasing/B05/exampleB05.out create mode 100644 examples/extended/biasing/B05/include/B05DetectorConstruction.hh create mode 100644 examples/extended/biasing/B05/include/B05PhysicsList.hh create mode 100644 examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B05/init.mac create mode 100644 examples/extended/biasing/B05/src/B05DetectorConstruction.cc create mode 100644 examples/extended/biasing/B05/src/B05PhysicsList.cc create mode 100644 examples/extended/biasing/B05/src/B05PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B06/GNUmakefile create mode 100644 examples/extended/biasing/B06/exampleB06.cc create mode 100644 examples/extended/biasing/B06/exampleB06.out create mode 100644 examples/extended/biasing/B06/include/B06DetectorConstruction.hh create mode 100644 examples/extended/biasing/B06/include/B06ImportanceDetectorConstruction.hh create mode 100644 examples/extended/biasing/B06/include/B06PhysicsList.hh create mode 100644 examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B06/include/B06ScorePrinter.hh create mode 100644 examples/extended/biasing/B06/include/B06Scorer.hh create mode 100644 examples/extended/biasing/B06/src/B06DetectorConstruction.cc create mode 100644 examples/extended/biasing/B06/src/B06ImportanceDetectorConstruction.cc create mode 100644 examples/extended/biasing/B06/src/B06PhysicsList.cc create mode 100644 examples/extended/biasing/B06/src/B06PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B06/src/B06ScorePrinter.cc create mode 100644 examples/extended/biasing/B06/src/B06Scorer.cc create mode 100644 examples/extended/biasing/B07/GNUmakefile create mode 100644 examples/extended/biasing/B07/exampleB07.cc create mode 100644 examples/extended/biasing/B07/exampleB07.out create mode 100644 examples/extended/biasing/B07/include/B07DetectorConstruction.hh create mode 100644 examples/extended/biasing/B07/include/B07ImportanceDetectorConstruction.hh create mode 100644 examples/extended/biasing/B07/include/B07PhysicsList.hh create mode 100644 examples/extended/biasing/B07/include/B07PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B07/src/B07DetectorConstruction.cc create mode 100644 examples/extended/biasing/B07/src/B07ImportanceDetectorConstruction.cc create mode 100644 examples/extended/biasing/B07/src/B07PhysicsList.cc create mode 100644 examples/extended/biasing/B07/src/B07PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B08/B08ScoreResults.txt create mode 100644 examples/extended/biasing/B08/GNUmakefile create mode 100644 examples/extended/biasing/B08/exampleB08.cc create mode 100644 examples/extended/biasing/B08/exampleB08.out create mode 100644 examples/extended/biasing/B08/include/B08DetectorConstruction.hh create mode 100644 examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.hh create mode 100644 examples/extended/biasing/B08/include/B08ImportanceMessenger.hh create mode 100644 examples/extended/biasing/B08/include/B08MainMessenger.hh create mode 100644 examples/extended/biasing/B08/include/B08PhysicsList.hh create mode 100644 examples/extended/biasing/B08/include/B08PrimaryGeneratorAction.hh create mode 100644 examples/extended/biasing/B08/include/B08ScorePrinter.hh create mode 100644 examples/extended/biasing/B08/include/B08Scorer.hh create mode 100644 examples/extended/biasing/B08/init.mac create mode 100644 examples/extended/biasing/B08/src/B08DetectorConstruction.cc create mode 100644 examples/extended/biasing/B08/src/B08ImportanceDetectorConstruction.cc create mode 100644 examples/extended/biasing/B08/src/B08ImportanceMessenger.cc create mode 100644 examples/extended/biasing/B08/src/B08MainMessenger.cc create mode 100644 examples/extended/biasing/B08/src/B08PhysicsList.cc create mode 100644 examples/extended/biasing/B08/src/B08PrimaryGeneratorAction.cc create mode 100644 examples/extended/biasing/B08/src/B08ScorePrinter.cc create mode 100644 examples/extended/biasing/B08/src/B08Scorer.cc create mode 100644 examples/extended/biasing/GNUmakefile create mode 100644 examples/extended/biasing/History create mode 100644 examples/extended/biasing/README create mode 100644 examples/extended/electromagnetic/TestEm1/geant3/phot.dat create mode 100644 examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm1/phot.mac create mode 100644 examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm10/elps.kumac create mode 100644 examples/extended/electromagnetic/TestEm10/plot.kumac create mode 100644 examples/extended/electromagnetic/TestEm3/exo3q1.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo3q2.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo3q3.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo4q1.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo4q3.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo5q1.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo5q2.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo6q1.mac create mode 100644 examples/extended/electromagnetic/TestEm3/exo6q2.mac create mode 100644 examples/extended/electromagnetic/TestEm6/GNUmakefile create mode 100644 examples/extended/electromagnetic/TestEm6/History create mode 100644 examples/extended/electromagnetic/TestEm6/README create mode 100644 examples/extended/electromagnetic/TestEm6/TestEm6.cc create mode 100644 examples/extended/electromagnetic/TestEm6/TestEm6.in create mode 100644 examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/EventAction.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/RunAction.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh create mode 100644 examples/extended/electromagnetic/TestEm6/include/VisManager.hh create mode 100644 examples/extended/electromagnetic/TestEm6/run01.mac create mode 100644 examples/extended/electromagnetic/TestEm6/run02.mac create mode 100644 examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/EventAction.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/RunAction.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc create mode 100644 examples/extended/electromagnetic/TestEm6/src/VisManager.cc create mode 100644 examples/extended/electromagnetic/TestEm6/vis.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/History create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/README create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/data/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.cxx create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.dat create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/external/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out rename examples/{advanced/brachytherapy/include/BrachyWaterBoxHit.hh => extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh} (56%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterParametrisation.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh rename examples/{advanced/brachytherapy/include/BrachyWaterBoxSD.hh => extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterSD.hh} (74%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorParameterDef.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EventAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04Field.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonSD.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PhysicsList.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04StackingAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04StackingActionMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerSD.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackingAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReader.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/pyh4mu.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/pyset.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterHit.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterROGeometry.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterSD.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorConstruction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorParameterDef.icc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EventAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04Field.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonHit.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04StackingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04StackingActionMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerHit.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerSD.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/HEPEvtcom.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/History create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/README create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/data/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.cxx create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.dat create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/external/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02DetectorConstruction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.hh rename source/track/include/G4VEvtBiasMechanism.hh => examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh (53%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonHit.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PhysicsList.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/pyh4mu.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/pyset.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02DetectorConstruction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EventAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02Field.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonHit.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonSD.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02SteppingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/History create mode 100644 examples/extended/eventgenerator/HepMC/README create mode 100644 examples/extended/gdml/GNUmakefile create mode 100644 examples/extended/gdml/History create mode 100644 examples/extended/gdml/INSTALL create mode 100644 examples/extended/gdml/N03gdml/GNUmakefile create mode 100644 examples/extended/gdml/N03gdml/NO3.gdml create mode 100644 examples/extended/gdml/N03gdml/NO3gogdml.cc create mode 100644 examples/extended/gdml/N03gdml/README create mode 100644 examples/extended/gdml/N03gdml/exampleN03.err create mode 100644 examples/extended/gdml/N03gdml/exampleN03.in create mode 100644 examples/extended/gdml/N03gdml/exampleN03.large_N.in create mode 100644 examples/extended/gdml/N03gdml/exampleN03.out create mode 100644 examples/extended/gdml/N03gdml/exampleN03gdml.in create mode 100644 examples/extended/gdml/N03gdml/exampleN03gdml.large_N.in create mode 100644 examples/extended/gdml/N03gdml/exo1.mac create mode 100644 examples/extended/gdml/N03gdml/exo2.mac create mode 100644 examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03EventAction.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03RunAction.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh create mode 100644 examples/extended/gdml/N03gdml/include/ExN03VisManager.hh create mode 100644 examples/extended/gdml/N03gdml/newgeom.mac create mode 100644 examples/extended/gdml/N03gdml/run1.mac create mode 100644 examples/extended/gdml/N03gdml/run2.mac create mode 100644 examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03EventAction.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03RunAction.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc create mode 100644 examples/extended/gdml/N03gdml/src/ExN03VisManager.cc create mode 100644 examples/extended/gdml/N03gdml/vis.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/History create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Tree0.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Tree1.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis0.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis1.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis2.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis3.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis4.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis5.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis6.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis7.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis8.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/exN03Vis9.mac create mode 100644 examples/extended/gdml/N03gdml/visTutor/g4Xt.xrm create mode 100644 examples/extended/gdml/N03gdml/visTutor/gui.mac create mode 100644 examples/extended/gdml/README create mode 100644 examples/extended/gdml/Release.notes create mode 100644 examples/extended/gdml/libgdml/GNUmakefile create mode 100644 examples/extended/gdml/libgdml/libgdml.gmk create mode 100644 examples/extended/gdml/libgdml/management/GNUmakefile create mode 100644 examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh create mode 100644 examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh create mode 100644 examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh create mode 100644 examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh create mode 100644 examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc create mode 100644 examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc create mode 100644 examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc create mode 100644 examples/extended/gdml/libgdml/processes/GNUmakefile create mode 100644 examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh create mode 100644 examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh create mode 100644 examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh create mode 100644 examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh create mode 100644 examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh create mode 100644 examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh create mode 100644 examples/extended/gdml/libgdml/processes/src/DProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/DrefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/PProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/PrefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/TProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/TrefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/atomProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/boxProces.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/childProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/compositeProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/coneProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/constantProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/defineProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/elementProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/expressionProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/firstProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/fractionProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/materialProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/paraProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/positionProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/quantityProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/rotationProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/secondProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/setupProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/sphereProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/trapProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/trdProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/tubeProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/unionProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/volumeProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc create mode 100644 examples/extended/gdml/libgdml/processes/src/worldProcess.cc create mode 100644 examples/extended/gdml/libgdml/saxana/GNUmakefile create mode 100644 examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/Action.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXObject.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/StateStack.hh create mode 100644 examples/extended/gdml/libgdml/saxana/include/StatusCode.hh create mode 100644 examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc create mode 100644 examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc create mode 100644 examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc create mode 100644 examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc create mode 100644 examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc create mode 100644 examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc create mode 100644 examples/extended/gdml/libgdml/schema/GNUmakefile create mode 100644 examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/AtomType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/ConstantType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/ContentGroup.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/DorDref.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/ExpressionType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh rename source/track/src/G4VEvtBiasMechanism.cc => examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh (72%) create mode 100644 examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/MaterialType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/PorPref.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/QuantityType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/ReferenceType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/SolidType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/TagorTagref.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/TorTref.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/VolumeType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/assembly.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/atom.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/boolean_union.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/box.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/child.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/composite.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/cone.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/define.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/defineType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/element.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/fraction.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/isotope.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/material.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/para.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/positionType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/rotationType.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/setup.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/sphere.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/trap.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/trd.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/tube.hh create mode 100644 examples/extended/gdml/libgdml/schema/include/volume.hh create mode 100644 examples/extended/gdml/libgdml/schema/src/schema.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/GNUmakefile create mode 100644 examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh create mode 100644 examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc create mode 100644 examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc create mode 100644 examples/extended/gdml/sample/GNUmakefile create mode 100644 examples/extended/gdml/sample/gogdml.cc create mode 100644 examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh create mode 100644 examples/extended/gdml/sample/include/gogdmlPhysicsList.hh create mode 100644 examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh create mode 100644 examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc create mode 100644 examples/extended/gdml/sample/src/gogdmlPhysicsList.cc create mode 100644 examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc create mode 100644 examples/extended/gdml/sample/test.gdml create mode 100644 examples/extended/gdml/schema/gdml_1.0.xsd create mode 100644 examples/extended/gdml/schema/gdml_simple_core.xsd create mode 100644 examples/extended/gdml/schema/gdml_simple_define.xsd create mode 100644 examples/extended/gdml/schema/gdml_simple_materials.xsd create mode 100644 examples/extended/gdml/schema/gdml_simple_solids.xsd create mode 100644 examples/extended/geometry/README create mode 100644 examples/extended/geometry/cad/GNUmakefile create mode 100644 examples/extended/geometry/cad/History create mode 100644 examples/extended/geometry/cad/README create mode 100644 examples/extended/geometry/cad/cadex.cc create mode 100644 examples/extended/geometry/cad/cadex.in create mode 100644 examples/extended/geometry/cad/include/CadDetectorConstruction.hh create mode 100644 examples/extended/geometry/cad/include/CadDetectorMessenger.hh create mode 100644 examples/extended/geometry/cad/include/CadPhysicsList.hh create mode 100644 examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh create mode 100644 examples/extended/geometry/cad/include/CadRunAction.hh create mode 100644 examples/extended/geometry/cad/include/CadVisManager.hh rename {config => examples/extended/geometry/cad/scripts}/g4sort_step_file.pl (98%) rename {config => examples/extended/geometry/cad/scripts}/g4step_correct.pl (100%) create mode 100644 examples/extended/geometry/cad/src/CadDetectorConstruction.cc create mode 100644 examples/extended/geometry/cad/src/CadDetectorMessenger.cc create mode 100644 examples/extended/geometry/cad/src/CadPhysicsList.cc create mode 100644 examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc create mode 100644 examples/extended/geometry/cad/src/CadRunAction.cc create mode 100644 examples/extended/geometry/cad/src/CadVisManager.cc create mode 100644 examples/extended/geometry/cad/stepfiles/G4rod_place_asm.stp create mode 100644 examples/extended/geometry/cad/stepfiles/G4rod_solid.stp create mode 100644 examples/extended/geometry/olap/GNUmakefile create mode 100644 examples/extended/geometry/olap/History create mode 100644 examples/extended/geometry/olap/README create mode 100644 examples/extended/geometry/olap/include/G4GeoNav.hh create mode 100644 examples/extended/geometry/olap/include/OlapDetConstr.hh create mode 100644 examples/extended/geometry/olap/include/OlapEventAction.hh create mode 100644 examples/extended/geometry/olap/include/OlapGenerator.hh create mode 100644 examples/extended/geometry/olap/include/OlapLogManager.hh create mode 100644 examples/extended/geometry/olap/include/OlapManager.hh create mode 100644 examples/extended/geometry/olap/include/OlapManagerMessenger.hh create mode 100644 examples/extended/geometry/olap/include/OlapNotify.hh create mode 100644 examples/extended/geometry/olap/include/OlapPhysicsList.hh create mode 100644 examples/extended/geometry/olap/include/OlapRunAction.hh create mode 100644 examples/extended/geometry/olap/include/OlapSteppingAction.hh create mode 100644 examples/extended/geometry/olap/include/OlapVisManager.hh create mode 100644 examples/extended/geometry/olap/include/RandomDetector.hh create mode 100644 examples/extended/geometry/olap/include/SolidAnalyser.hh create mode 100644 examples/extended/geometry/olap/include/tree.hh create mode 100644 examples/extended/geometry/olap/olapex.cc create mode 100644 examples/extended/geometry/olap/src/G4GeoNav.cc create mode 100644 examples/extended/geometry/olap/src/OlapDetConstr.cc create mode 100644 examples/extended/geometry/olap/src/OlapEventAction.cc create mode 100644 examples/extended/geometry/olap/src/OlapGenerator.cc create mode 100644 examples/extended/geometry/olap/src/OlapLogManager.cc create mode 100644 examples/extended/geometry/olap/src/OlapManager.cc create mode 100644 examples/extended/geometry/olap/src/OlapManagerMessenger.cc create mode 100644 examples/extended/geometry/olap/src/OlapNotify.cc create mode 100644 examples/extended/geometry/olap/src/OlapPhysicsList.cc create mode 100644 examples/extended/geometry/olap/src/OlapRunAction.cc create mode 100644 examples/extended/geometry/olap/src/OlapSteppingAction.cc create mode 100644 examples/extended/geometry/olap/src/OlapVisManager.cc create mode 100644 examples/extended/geometry/olap/src/RandomDetector.cc create mode 100644 examples/extended/geometry/olap/src/SolidAnalyser.cc create mode 100644 examples/extended/parallel/ParN02/GNUmakefile create mode 100644 examples/extended/parallel/ParN02/History create mode 100644 examples/extended/parallel/ParN02/ParGNUmakefile create mode 100644 examples/extended/parallel/ParN02/ParN02.cc create mode 100644 examples/extended/parallel/ParN02/ParN02.in create mode 100644 examples/extended/parallel/ParN02/ParN02.large_N.in create mode 100644 examples/extended/parallel/ParN02/ParTopC.icc create mode 100644 examples/extended/parallel/ParN02/docs/000README create mode 100644 examples/extended/parallel/ParN02/docs/COPYING create mode 100644 examples/extended/parallel/ParN02/docs/README create mode 100644 examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02EventAction.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02MagneticField.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02RunAction.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh create mode 100644 examples/extended/parallel/ParN02/include/ExN02VisManager.hh create mode 100644 examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh create mode 100644 examples/extended/parallel/ParN02/include/ParMarshaledObj.hh create mode 100644 examples/extended/parallel/ParN02/include/ParRandomState.hh create mode 100644 examples/extended/parallel/ParN02/include/ParRunManager.hh create mode 100644 examples/extended/parallel/ParN02/initInter.mac create mode 100644 examples/extended/parallel/ParN02/procgroup create mode 100644 examples/extended/parallel/ParN02/procgroup.cern create mode 100644 examples/extended/parallel/ParN02/run1.mac create mode 100644 examples/extended/parallel/ParN02/run2.mac create mode 100644 examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02EventAction.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02MagneticField.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02RunAction.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc create mode 100644 examples/extended/parallel/ParN02/src/ExN02VisManager.cc create mode 100644 examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc create mode 100644 examples/extended/parallel/ParN02/src/ParMarshaledObj.cc create mode 100644 examples/extended/parallel/ParN02/src/ParRunManager.cc create mode 100755 examples/extended/parallel/ParN02/thwap create mode 100644 examples/extended/parallel/ParN04/GNUmakefile create mode 100644 examples/extended/parallel/ParN04/History create mode 100644 examples/extended/parallel/ParN04/ParGNUmakefile create mode 100644 examples/extended/parallel/ParN04/ParN04.EMtest.in create mode 100644 examples/extended/parallel/ParN04/ParN04.EMtest.large_N.in create mode 100644 examples/extended/parallel/ParN04/ParN04.cc create mode 100644 examples/extended/parallel/ParN04/ParN04.in create mode 100644 examples/extended/parallel/ParN04/ParTopC.icc create mode 100644 examples/extended/parallel/ParN04/docs/000README create mode 100644 examples/extended/parallel/ParN04/docs/BUG.userStackingAction create mode 100644 examples/extended/parallel/ParN04/docs/README create mode 100644 examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04CalorimeterParametrisation.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04CalorimeterROGeometry.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04CalorimeterSD.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04DetectorParameterDef.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04DummySD.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04EventAction.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04Field.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04MuonHit.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04MuonSD.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04PhysicsList.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorAction.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04StackingAction.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04StackingActionMessenger.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04SteppingAction.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04TrackerParametrisation.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04TrackerSD.hh create mode 100644 examples/extended/parallel/ParN04/include/ExN04TrackingAction.hh create mode 100644 examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh create mode 100644 examples/extended/parallel/ParN04/include/ParMarshaledObj.hh create mode 100644 examples/extended/parallel/ParN04/include/ParRandomState.hh create mode 100644 examples/extended/parallel/ParN04/include/ParRunManager.hh rename examples/{novice/N04 => extended/parallel/ParN04}/prerun.mac (100%) create mode 100644 examples/extended/parallel/ParN04/procgroup create mode 100644 examples/extended/parallel/ParN04/pythia_event.data create mode 100644 examples/extended/parallel/ParN04/pythia_main.f create mode 100644 examples/extended/parallel/ParN04/src/ExN04CalorimeterHit.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04CalorimeterParametrisation.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04CalorimeterROGeometry.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04CalorimeterSD.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04DetectorConstruction.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04DetectorParameterDef.icc create mode 100644 examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04EventAction.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04Field.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04MuonHit.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04MuonSD.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorAction.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04StackingAction.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04StackingActionMessenger.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04SteppingAction.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04TrackerHit.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04TrackerParametrisation.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04TrackerSD.cc create mode 100644 examples/extended/parallel/ParN04/src/ExN04TrackingAction.cc create mode 100644 examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc create mode 100644 examples/extended/parallel/ParN04/src/ParMarshaledObj.cc create mode 100644 examples/extended/parallel/ParN04/src/ParRunManager.cc create mode 100644 examples/extended/parallel/README.html create mode 100644 examples/extended/parallel/info/NEW_APP_INSTALL create mode 100644 examples/extended/parallel/info/NEW_APP_README create mode 100644 examples/novice/N03/exo1.mac create mode 100644 examples/novice/N03/exo2.mac create mode 100644 examples/novice/N04/include/ExN04RunAction.hh create mode 100644 examples/novice/N04/include/ExN04SteppingVerbose.hh create mode 100644 examples/novice/N04/include/ExN04VisManager.hh create mode 100644 examples/novice/N04/src/ExN04RunAction.cc create mode 100644 examples/novice/N04/src/ExN04SteppingVerbose.cc create mode 100644 examples/novice/N04/src/ExN04VisManager.cc create mode 100644 examples/novice/N04/vis.mac create mode 100644 source/event/src/G4TrajectoryContainer.cc create mode 100644 source/geometry/biasing/GNUmakefile create mode 100644 source/geometry/biasing/History create mode 100644 source/geometry/biasing/include/G4IStore.hh create mode 100644 source/geometry/biasing/include/G4ImportanceAlgorithm.hh create mode 100644 source/geometry/biasing/include/G4ImportanceFinder.hh create mode 100644 source/geometry/biasing/include/G4ImportanceSplitExaminer.hh create mode 100644 source/geometry/biasing/include/G4Nsplit_Weight.hh create mode 100644 source/geometry/biasing/include/G4PMapPtkTallys.hh create mode 100644 source/geometry/biasing/include/G4PStep.hh create mode 100644 source/geometry/biasing/include/G4PStepStream.hh create mode 100644 source/geometry/biasing/include/G4PTouchableKey.hh create mode 100644 source/geometry/biasing/include/G4ParallelNavigator.hh create mode 100644 source/geometry/biasing/include/G4ParallelStepper.hh create mode 100644 source/geometry/biasing/include/G4ParallelWorld.hh create mode 100644 source/geometry/biasing/include/G4Pstring.hh create mode 100644 source/geometry/biasing/include/G4PtkImportance.hh create mode 100644 source/geometry/biasing/include/G4Sigma.hh create mode 100644 source/geometry/biasing/include/G4VIStore.hh create mode 100644 source/geometry/biasing/include/G4VImportanceAlgorithm.hh create mode 100644 source/geometry/biasing/include/G4VImportanceSplitExaminer.hh create mode 100644 source/geometry/biasing/include/G4VPGeoDriver.hh create mode 100644 source/geometry/biasing/include/G4VPScorer.hh create mode 100644 source/geometry/biasing/include/G4VParallelStepper.hh create mode 100644 source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh create mode 100644 source/geometry/biasing/include/G4WeightWindowAlgorithm.hh create mode 100644 source/geometry/biasing/src/G4IStore.cc create mode 100644 source/geometry/biasing/src/G4ImportanceAlgorithm.cc create mode 100644 source/geometry/biasing/src/G4ImportanceFinder.cc create mode 100644 source/geometry/biasing/src/G4ImportanceSplitExaminer.cc create mode 100644 source/geometry/biasing/src/G4Nsplit_Weight.cc create mode 100644 source/geometry/biasing/src/G4PMapPtkTallys.cc create mode 100644 source/geometry/biasing/src/G4PStepStream.cc create mode 100644 source/geometry/biasing/src/G4PTouchableKey.cc create mode 100644 source/geometry/biasing/src/G4ParallelNavigator.cc create mode 100644 source/geometry/biasing/src/G4ParallelStepper.cc create mode 100644 source/geometry/biasing/src/G4ParallelWorld.cc create mode 100644 source/geometry/biasing/src/G4Pstring.cc create mode 100644 source/geometry/biasing/src/G4PtkImportance.cc create mode 100644 source/geometry/biasing/src/G4Sigma.cc create mode 100644 source/geometry/biasing/src/G4WeightWindowAlgorithm.cc create mode 100644 source/geometry/management/src/G4SmartVoxelProxy.cc mode change 100755 => 100644 source/global/management/include/G4ReferenceCountedHandle.hh delete mode 100644 source/global/management/include/g4std/wrappers/HP-aCC/fstream delete mode 100644 source/global/management/include/g4std/wrappers/HP-aCC/iomanip delete mode 100644 source/global/management/include/g4std/wrappers/HP-aCC/iostream delete mode 100644 source/global/management/include/g4std/wrappers/HP-aCC/strstream delete mode 100644 source/global/management/include/g4std/wrappers/SUN-CC4/cmath delete mode 100644 source/global/management/include/g4std/wrappers/SUN-CC4/cstdio delete mode 100644 source/global/management/include/g4std/wrappers/SUN-CC4/cstdlib delete mode 100644 source/global/management/include/g4std/wrappers/SUN-CC4/cstring create mode 100644 source/interfaces/GAG/include/G4UIGainServer.hh create mode 100644 source/interfaces/GAG/src/G4UIGainServer.cc create mode 100644 source/particles/management/include/G4TauLeptonicDecayChannel.hh create mode 100644 source/particles/management/src/G4TauLeptonicDecayChannel.cc create mode 100644 source/processes/electromagnetic/lowenergy/include/G4AugerData.hh create mode 100644 source/processes/electromagnetic/lowenergy/include/G4AugerTransition.hh create mode 100644 source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh create mode 100644 source/processes/electromagnetic/lowenergy/include/G4LinLogInterpolation.hh create mode 100644 source/processes/electromagnetic/lowenergy/include/G4LinLogLogInterpolation.hh create mode 100644 source/processes/electromagnetic/lowenergy/src/G4AugerData.cc create mode 100644 source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc create mode 100644 source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc create mode 100644 source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc create mode 100644 source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc create mode 100644 source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh create mode 100644 source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc create mode 100644 source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc create mode 100644 source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh create mode 100644 source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh create mode 100644 source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh create mode 100644 source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc create mode 100644 source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc create mode 100644 source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc create mode 100644 source/processes/hadronic/cross_sections/include/G4ProjectileFragmentCrossSection.hh create mode 100644 source/processes/hadronic/models/cascade/README create mode 100644 source/processes/hadronic/models/cascade/hetc.wst create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4ShellCorrection.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc delete mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNeutron.cc delete mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundProton.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc create mode 100644 source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.hh create mode 100644 source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc create mode 100644 source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh create mode 100644 source/processes/hadronic/models/leading_particle/GNUmakefile create mode 100644 source/processes/hadronic/models/leading_particle/History rename source/{track/include/G4Mars5GeVMechanism.hh => processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh} (83%) rename source/{track/src/G4Mars5GeVMechanism.cc => processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc} (82%) create mode 100644 source/processes/hadronic/util/include/G4EffectiveCharge.hh create mode 100644 source/processes/management/include/G4WrapperProcess.hh create mode 100644 source/processes/transportation/include/G4ImportancePostStepDoIt.hh create mode 100644 source/processes/transportation/include/G4MScoreProcess.hh create mode 100644 source/processes/transportation/include/G4MassImportanceProcess.hh create mode 100644 source/processes/transportation/include/G4MassImportanceSampler.hh create mode 100644 source/processes/transportation/include/G4MassImportanceScoreSampler.hh create mode 100644 source/processes/transportation/include/G4MassScoreSampler.hh create mode 100644 source/processes/transportation/include/G4PIScorer.hh create mode 100644 source/processes/transportation/include/G4PImportanceWWindowScoreSampler.hh create mode 100644 source/processes/transportation/include/G4PScoreProcess.hh create mode 100644 source/processes/transportation/include/G4PScorer.hh create mode 100644 source/processes/transportation/include/G4ParallelImportanceProcess.hh create mode 100644 source/processes/transportation/include/G4ParallelImportanceSampler.hh create mode 100644 source/processes/transportation/include/G4ParallelImportanceScoreSampler.hh create mode 100644 source/processes/transportation/include/G4ParallelScoreSampler.hh create mode 100644 source/processes/transportation/include/G4ParallelTransport.hh create mode 100644 source/processes/transportation/include/G4ParallelWeightWindowProcess.hh create mode 100644 source/processes/transportation/include/G4ProcessPlacer.hh create mode 100644 source/processes/transportation/include/G4VProcessPlacer.hh create mode 100644 source/processes/transportation/include/G4VSampler.hh create mode 100644 source/processes/transportation/src/G4ImportancePostStepDoIt.cc create mode 100644 source/processes/transportation/src/G4MScoreProcess.cc create mode 100644 source/processes/transportation/src/G4MassImportanceProcess.cc create mode 100644 source/processes/transportation/src/G4MassImportanceSampler.cc create mode 100644 source/processes/transportation/src/G4MassImportanceScoreSampler.cc create mode 100644 source/processes/transportation/src/G4MassScoreSampler.cc create mode 100644 source/processes/transportation/src/G4PIScorer.cc create mode 100644 source/processes/transportation/src/G4PImportanceWWindowScoreSampler.cc create mode 100644 source/processes/transportation/src/G4PScoreProcess.cc create mode 100644 source/processes/transportation/src/G4PScorer.cc create mode 100644 source/processes/transportation/src/G4ParallelImportanceProcess.cc create mode 100644 source/processes/transportation/src/G4ParallelImportanceSampler.cc create mode 100644 source/processes/transportation/src/G4ParallelImportanceScoreSampler.cc create mode 100644 source/processes/transportation/src/G4ParallelScoreSampler.cc create mode 100644 source/processes/transportation/src/G4ParallelTransport.cc create mode 100644 source/processes/transportation/src/G4ParallelWeightWindowProcess.cc create mode 100644 source/processes/transportation/src/G4ProcessPlacer.cc create mode 100644 source/run/src/G4VModularPhysicsList.cc delete mode 100644 source/track/include/G4EvtBiasMechanism.hh delete mode 100644 source/track/src/G4EvtBiasMechanism.cc delete mode 100644 source/tracking/src/.cvsignore diff --git a/Configure b/Configure index 5a7efc4cc1..506b1a8f06 100755 --- a/Configure +++ b/Configure @@ -18,9 +18,9 @@ # you may fetch it yourself from your nearest archive site.) # -# $Id: Configure,v 1.20 2001/12/14 12:19:57 sadilov Exp $ +# $Id: Configure,v 1.29 2002/07/01 10:45:04 stesting Exp $ # -# Generated on Fri Dec 14 13:19:47 CET 2001 [metaconfig 3.0 PL70] +# Generated on Mon Jul 1 12:23:24 CEST 2002 [metaconfig 3.0 PL70] cat >/tmp/c1$$ </dev/null 2>&1`; then echo "#!$xcat" >try $eunicefix try chmod +x try - ./try > today +# +# $xcat is wrong on WIN32: there is no /bin/cat and /usr/bin/cat by default. +# But we are sure that sharpbang is to be '#!' and let 'today' will be !=0. +# +# ./try > today + echo "#!$xcat" >today + if test -s today; then sharpbang='#!' else echo "#! $xcat" > try $eunicefix try chmod +x try - ./try > today +# +# $xcat is wrong on WIN32: there is no /bin/cat and /usr/bin/cat by default. +# But we are sure that sharpbang is to be '#!' and let 'today' will be !=0. +# +# ./try > today + echo "#!$xcat" >today + if test -s today; then sharpbang='#! ' else @@ -1306,6 +1325,8 @@ cd ../.. dnix) osname=dnix osvers="$3" ;; + cygwin*) osname=win32 + ;; domainos) osname=apollo osvers="$3" ;; @@ -1556,6 +1577,10 @@ case "$g4osname" in ;; 'sunos') g4osname=SUN ;; + 'solaris') g4osname=SUN + ;; + 'win32') g4osname=WIN32 + ;; esac esac @@ -1596,6 +1621,9 @@ case "$g4compiler" in 'SUN') g4compiler=CC ;; + 'WIN32') + g4compiler=VC + ;; esac esac @@ -1604,13 +1632,14 @@ while test 1 = 1 ; do g4message=`cat << EOM -Definition of G4SYSTEM variable. +Definition of G4SYSTEM variable is $g4osname-$g4compiler. +That stands for: 1) OS : $g4osname 2) Compiler : $g4compiler -Select from list above (e.g. 2) +To modify default settings, select number above (e.g. 2) EOM` dflt="Press [Enter] for default settings" @@ -1640,6 +1669,9 @@ gans=$ans 'sunos') g4osnamerec=SUN ;; + 'win32') + g4osnamerec=WIN32 + ;; esac dflt=$g4osname rp="What is your OS'?" @@ -1684,6 +1716,9 @@ EOM 'SUN') g4compilerrec=CC ;; + 'WIN32') + g4compilerrec=VC + ;; esac dflt=$g4compiler rp="Which C++ compiler?" @@ -2154,6 +2189,9 @@ esac case "$g4install" in '') + if [ X$HOME = X/ ] ; then + HOME="" + fi g4install=$HOME/geant4 ;; esac @@ -2172,7 +2210,8 @@ esac case "$g4include" in '') - g4include=$g4install/include +# g4include=$g4install/include + g4include='' ;; esac @@ -2248,7 +2287,7 @@ g4message=`cat << EOM 2) G4LIB: $g4lib -Select from list above (e.g. 2) +To modify default settings, select number above (e.g. 2) EOM` #dflt="NO DEFAULT ANSWER" @@ -2315,7 +2354,7 @@ esac case "$g4ledata" in '') - g4ledata=$g4install/../G4EMLOW0.5 + g4ledata=$g4install/../G4EMLOW1.1 ;; esac @@ -2341,7 +2380,7 @@ Data which is not part of the default Geant4 distribution: 4) NeutronHPCrossSections: $g4neutronhpcrosssections -Select from list above (e.g. 2) +To modify default settings, select number above (e.g. 2) EOM` #dflt="NO DEFAULT ANSWER" @@ -2371,7 +2410,7 @@ gans=$ans 3) dflt=$g4ledata fn='f~' - rp="Where is G4EMLOW0.5 data installed ?" + rp="Where is G4EMLOW1.1 data installed ?" . ./getfile g4ledata=$ans ;; @@ -2492,7 +2531,7 @@ You can customize paths of you CLHEP installation: 2) CLHEP_LIB_DIR: $g4clhep_lib_dir 3) CLHEP_LIB: $g4clhep_lib -Select from list above (e.g. 2) +To modify default settings, select number above (e.g. 2) EOM` @@ -2586,7 +2625,9 @@ gans=$ans ;; y*|Y*) g4global=y +# Shoud be comment out to keep settings from config.sh - not now to keep as in release g4granular=n +# Shoud be comment out to keep settings from config.sh - not now to keep as in release g4lib_use_granular=n break ;; @@ -2728,6 +2769,7 @@ done echo " " + case "$g4lib_build_shared" in '') g4lib_build_shared=n @@ -2735,6 +2777,7 @@ case "$g4lib_build_shared" in esac echo " " + case "$g4lib_build_static" in '') g4lib_build_static=n @@ -2742,6 +2785,7 @@ case "$g4lib_build_static" in esac echo " " + case "$g4lib_use_shared" in '') g4lib_use_shared=n @@ -2749,6 +2793,7 @@ case "$g4lib_use_shared" in esac echo " " + case "$g4lib_use_static" in '') g4lib_use_static=n @@ -2882,6 +2927,98 @@ fi fi +echo " " + +case "$g4make" in +'') + g4make=gmake + ;; +esac + +echo "" + + g4_gmake_version=`(gmake -v) 2>/dev/null` + case $g4_gmake_version in + GNU*) + g4_gmake=y + ;; + *) + g4_gmake=n + ;; + esac + + g4_make_version=`(make -v) 2>/dev/null` + case $g4_make_version in + GNU*) + g4_make=y + ;; + *) + g4_make=n + ;; + esac + +if [ $g4_gmake = y ] ; then + +g4make=gmake + +g4message=`cat << EOM + + G4MAKE + +You have GNU make which could be used to build GEANT4. +You can select your own 'make' program if you want. +EOM` + +fi + +if [ $g4_gmake = n ] && [ $g4_make = y ] ; then + +g4make=make + +g4message=`cat << EOM + + G4MAKE + +You have GNU make which could be used to build GEANT4. +You can select your own 'make' program if you want. +EOM` + +fi + +if [ $g4_gmake = n ] && [ $g4_make = n ] ; then + +g4make=none + +g4message=`cat << EOM + + G4MAKE + +You have NO GNU make which could be used to build GEANT4. +Please select your own 'make' program compatible with GNU make. +EOM` + +dflt=$g4make +rp=$g4message + + +. ./myread +gans=$ans + + case $gans in + + '') + g4make=$dflt + ;; + *) + g4make=$gans + ;; + esac + +fi + + + + echo " " case "$g4ui_none" in @@ -2979,8 +3116,10 @@ g4message=`cat << EOM G4UI_NONE -If set, no UI sessions nor any UI libraries are built. This can be useful -when running a pure batch job or in a user framework having its own UI system. +If this variable is set, no UI sessions nor any UI libraries are built. +This can be useful when running a pure batch job or in a user framework +having its own UI system. +Do you want to set this variable ? EOM` @@ -3207,6 +3346,12 @@ case "$g4vis_none" in ;; esac +case "$g4vis_oglhome" in +'') + g4vis_oglhome="/usr" + ;; +esac + case "$g4vis_build_openglwin32_driver" in '') g4vis_build_openglwin32_driver=n @@ -3365,7 +3510,8 @@ g4message=`cat << EOM G4VIS_NONE -If specified, no visualization drivers will be built or used. +If this variable is set, no visualization drivers will be built or used. +Do you want to set this variable ? EOM` @@ -3766,7 +3912,24 @@ gans=y ;; esac +if [ X$g4vis_build_openglx_driver = Xy ] || [ X$g4vis_build_openglxm_driver = Xy ] || [ X$g4vis_build_openglwin32_driver = Xy ] ; then +g4message=`cat << EOM + + OGLHOME/include + OGLHOME/lib + +You have selected to use OpenGL driver. +Specify the correct path (OGLHOME) where OpenGL is installed in your system: +EOM` + +dflt=$g4vis_oglhome +fn='d~' +rp=$g4message +. ./getfile +g4vis_oglhome=$ans + +fi echo " " case "$g4use_hepodbms" in '') @@ -3911,6 +4074,10 @@ contains='$contains' d_portable='$d_portable' eunicefix='$eunicefix' g4_build_wo_session='$g4_build_wo_session' +g4_gmake='$g4_gmake' +g4_gmake_version='$g4_gmake_version' +g4_make='$g4_make' +g4_make_version='$g4_make_version' g4base='$g4base' g4bin='$g4bin' g4clhep_base_dir='$g4clhep_base_dir' @@ -3933,6 +4100,7 @@ g4lib_build_static='$g4lib_build_static' g4lib_use_granular='$g4lib_use_granular' g4lib_use_shared='$g4lib_use_shared' g4lib_use_static='$g4lib_use_static' +g4make='$g4make' g4neutronhpcrosssections='$g4neutronhpcrosssections' g4osname='$g4osname' g4radioactivedata='$g4radioactivedata' @@ -3963,6 +4131,7 @@ g4vis_build_openglxm_driver='$g4vis_build_openglxm_driver' g4vis_build_raytracer_driver='$g4vis_build_raytracer_driver' g4vis_build_vrml_driver='$g4vis_build_vrml_driver' g4vis_build_vrmlfile_driver='$g4vis_build_vrmlfile_driver' +g4vis_oglhome='$g4vis_oglhome' g4vis_use_asciitree='$g4vis_use_asciitree' g4vis_use_dawn='$g4vis_use_dawn' g4vis_use_dawnfile='$g4vis_use_dawnfile' diff --git a/ReleaseNotes/Patch4.4.0-1.txt b/ReleaseNotes/Patch4.4.0-1.txt new file mode 100644 index 0000000000..66bdfaefce --- /dev/null +++ b/ReleaseNotes/Patch4.4.0-1.txt @@ -0,0 +1,102 @@ + + Geant4 4.0 - patch-01 Release Notes + ----------------------------------- + + 31st January 2002 + +List of fixes included in this public patch to release 4.0: + + o Event: + ----- + - G4PrimaryTransformer: removed check whether the primary vertex is + inside the world volume. The check has been moved to G4SteppingManager. + + o Geometry: + -------- + - Magnetic field: + o Activated G4DEBUG_FIELD in GNUmakefile. + o G4MagHelicalStepper.cc: renamed local variables "*Momentum*" + to "*Velocity*". + - Management: + o G4AffineTransform.icc: fixed trivial compilation warning for gcc-2.95.2. + - Volumes: + o G4AuxiliaryNavServices: critical fix, to only consider whether a + 'ray' (Point,Direction) is on the surface (it was erroneously also + checking for those inside volumes). This erroneous condition occurred + frequently in the new usage of Locate with Direction to initialise a + step. + o G4Navigator: reset blocked volume when locating 'within volume', + after ensuring that it does not get called when ComputeSafety() is at + a boundary. Fixes cases of longstanding 'Point P is Inside' errors. + o Activated mechanism in GNUmakefile for allowing compilation with + G4DEBUG_FIELD or G4DEBUG_NAVIGATION flags. + - solids/Boolean: + o Moved all verbosity mode warnings to G4BOOLDEBUG. + o Activated G4BOOLDEBUG mechanism in GNUmakefile. + - solids/BREPS: + o G4BREPSolidPCone: bugfix for problem report #320. + Fixed missing use-case in constructor when RMAX and RMIN have been + changed for 2 consecutive equal z-values. Now it creates correctly + 2 planar surfaces as expected. + Added private method ComputePlanarSurface() gained + by refactoring of some part of the code in the constructor. + o G4FPlane: fixed first constructor adding new argument for setting + explicitly the sense of a surface if required. + Fixed G4FPlane::Intersect() method which incorrectly ignored a special + case of a hit on surface point with ray direction opposite to surface + normal. + - solids/CSG: + o G4Sphere.cc: fixed a problem with tolerances in the case of large Radius. + o Moved all verbosity mode warnings to G4CSGDEBUG. + o Activated G4CSGDEBUG mechanism in GNUmakefile. + + o Global: + ------ + - G4strstreambuf: plugged memory leak in destructor for buffer deletion. + Temporary fix to G4strstream::overflow(c) for GNU gcc-3.X compilers + (also problem report #342), which require returning of character 'c' in + case of buffer flushing for . + - Replaced 'NULL' with '0' in G4Allocator.hh, G4strstreambuf.icc + and G4Timer.cc. + - Removed obsolete inline definitions in g4std/wrappers/DEC-cxx/cmath. + + o Materials: + --------- + - Fixed G4MaterialPropertyVector::AddElement() to consider ordering + of elements. + + o Track & Tracking: + ---------------- + - track: + o G4Track: corrected initialization of fStepLength in constructors. + Fixed bug in assignment operator for fStepLength. + - tracking: + o G4SteppingManager: + - fix safe comparison between floating numbers + - added check for primary track outside of the world + - bug fix for particles below threshold to avoid double steps + + o Visualization: + ------------- + - Corrected handling for already open file in HepRepXMLWriter. + + o Examples: + -------- + - Novice: syncronised files with CVS HEAD. No functional changes to code. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o Technical notes distributed for release 4.0 are also applicable and valid + for this patch. + +The code and rebuilt binary libraries for release 4.0 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/Patch4.4.0-2.txt b/ReleaseNotes/Patch4.4.0-2.txt new file mode 100644 index 0000000000..5f10034164 --- /dev/null +++ b/ReleaseNotes/Patch4.4.0-2.txt @@ -0,0 +1,157 @@ + + Geant4 4.0 - patch-02 Release Notes + ----------------------------------- + + 28th February 2002 + +List of fixes included in this public patch to release 4.0, to be added on +top of patch-01: + + o Config: + ------ + - liblist.c: added flags __CYGWIN__ and __CYGWIN32__ for triggering proper + parsing algorithm on Windows systems, also on most recent versions of + Cygwin. + - WIN32-VC.gmk: use g77 instead of f77 as default fortran compiler. + - sys/HP-aCC.gmk: removed include path to + global/management/include/std/wrappers, which was unused and not + necessary. + + o Decay processes: + --------------- + - Removed a physics table from G4Decay. + + o Electromagnetic processes: + ------------------------- + - Fixed bug in G4Ve(h)EnergyLoss, G4VMuEnergyLoss: + o Adopt MinDeltaCut in-range instead of in-energy ! + - G4VEnergyLoss: + o Set subSecFlag to false. NO default subcutoff generation. + o Set finalRange to 1mm as default (the actual value is computed in + G4VeEnergyLoss, G4VhEnergyLoss and G4VMuEnergyLoss). + + o Event: + ----- + - Optimised implementation of SetNewValue() in G4ParticleGunMessenger and + G4GeneralParticleSourceMessenger to allow porting on WIN32-VC for optimised + compilation. + + o Geometry: + -------- + - Management: + o G4GeometryManager.cc: fixed handling of ios manipulators and precision + to reset to their original state in G4GeometryManager::ReportVoxelStats(). + Fixes problem report #343. + - Volumes: + o G4GeometryMessenger.cc: fixed local variable name not to clash with + class data member. + - solids/Boolean: + o G4ReflectionFactory.cc: fixed bug causing repetition of daughter volumes. + o G4ReflectedSolid[.hh.cc]: + - Defined new methods Set/GetTransform3D() and Set/GetDirectTransform3D() + for defining/accessing the reflected transformation. + o Moved utility methods for G4AffineTransform to protected. + - solids/BREPS: + o Bug fixes to G4BREPSolidPolyhedra: + - Added enhancement allowing to define RMIN and RMAX to be zero with the + exception of forbidden two consecutive zero RMAX values. + - Refactoring in constructor gained two new private methods for creation + of trapezoidal and triangular side planes of G4BREPSolidPolyhedra. + - Rewritten code for delta phi >= 2*PI case with full classification of + possible cases. + - Fixed sense of end planes. + - Fixed delta phi < 2*PI case where some old code remained after bug + fix #266. + - Added new private method for creation of planar surfaces gained + after code refactoring in constructor. + - Fixed bug for problem report #354 by adding the code handling the + cases where user supplies for the same z-section different RMIN or + RMAX values. + - Added more preconditions checks + - Added code forbidding "teeth" in polyhedra. + o G4ConvexHull.hh: moved initialisation of 'next' to constructor's body. + - solids/CSG: + o G4Sphere.cc: bug-fix in Inside() function. Fixes problem report #216. + o G4Para.cc: fixed bug in G4Para::Inside() in calculation of xt, + according to problem report #357. + - solids/STEPinterface: + o G4RepresentationRelationshipCreator.cc: fixed unsafe usage of + '<' operator. + + o Hadronic processes: + ------------------ + o Fixes in pre-equilibrium and de-excitation generator models. + o Fixed bug in doppler broadening in neutron-transport model: + - Fixed sign error in calculation of effective luminosity. + o Stopping: trivial bug-fix in pi-absorption at rest. + o Util: + - Trivial bug-fix, affecting K-absorption at rest. + - G4Nucleus: moved definition of constructors/destructor from header to + source implementation file. Unresolved symbols were detected at link + time on SUN-CC for static constants used to initialise members in + inline constructors. + o CHIPS model: fixed accuracy problem. + o Optimised implementation in G4Fancy3DNucleus.cc to allow porting on + WIN32-VC for optimised compilation. + + o Interfaces: + ---------- + - Fixed for odd behavior of G4UIcsh in Windows systems. + + o Materials: + --------- + - Optimised implementation of GetIndex() for fIndexTable in G4Material, + G4Element and G4Isotope. + + o Particles: + --------- + - Fixed bug in the decay table for G4KaonMinus. + + o Track & Tracking: + ---------------- + - track: + o Added G4Track::CopyTrackInfo(). + o Optimised G4ParticleChange::AddSecondary() to properly use touchable + handles. + o Fixed a bug of changing parent weight in + G4ParticleChange::UpdateStepForAlongStep(). + o Optimised implementation in G4Track::GetVelocity(). + - tracking: + o G4SteppingManager2.cc: + - fix for extra steps when the ApplyCuts flag is set + - G4SteppingManager.hh: changed scope for 'SizeOfSelectedDoItVector' + to allow porting on WIN-VC compiler. + o Fix in G4SteppingManager::SetInitialStep() for applyCuts. + + o Visualization: + ------------- + - HepRep: added check for missing hierarchy layers in HepRepXMLWriter. + - Bug fix in modeling: removed Begin/EndPrimitives from G4HitsModel and + G4TrajectoriesModel. This was causing nested calls to Begin/EndPrimitives + (and thus to glNewList/EndList in OpenGL stored mode), since the + trajectories and hits Draw methods themselves have Begin/EndPrimitives. + + o Examples: + -------- + - extended/electromagnetic/testem1,3,4,5: + o Improvements in PrimaryGenerator and macros + - novice/N03: + o New macros for tutorials/exercises. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of "patch-01" for release 4.0. + o Technical notes distributed for release 4.0 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 4.0 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.4.1.txt b/ReleaseNotes/ReleaseNotes4.4.1.txt new file mode 100644 index 0000000000..c04c3beb6f --- /dev/null +++ b/ReleaseNotes/ReleaseNotes4.4.1.txt @@ -0,0 +1,385 @@ + + Geant4 4.1 Release Notes + ------------------------ + + 28th June 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: + ------------- + - Added Darwin-g++.gmk configuration file for MacOS-X systems running + with GNU g++ compiler. + - Removed obsolete SUN-CC4.gmk configuration file. + + o Event: + ----- + - Introduced new G4TrajectoryContainer class aggregating STL vector. + - Added TransferOneStackedTrack() method to G4StackManager. + + o Electromagnetic Processes (Low-energy): + -------------------------------------- + - New more complete and detailed data files (G4LOWEN1.1 data set). + - Extended parameterisation of e- ionisation (24 parameters per each + atomic shell) in order to have better fit to EEDL data. + - Bug fixes in e- bremsstruhlung process. + - Fixes and updates to parameterisation of the cross section in + photo-electric effect. + - Updates to polarised Compton process. + - Provided simulation of ionisation for GenericIons. + - Fixes in simulation of fluctuations of energy loss. + - Fixes in simulation of hadron induced fluorescence. + - Provided simulation of Auger electrons production. + - Fixes to the angular distribution in Rayleigh scattering + (G4LowEnergyRayleigh process). + - Added UI control on the threshold to produce fluorescence photons + and Auger electrons as secondaries. + + o Electromagnetic Processes (Standard): + ------------------------------------ + - New classes (G4VXTRenergyLoss, G4GammaXTRadiator and G4RegularXTRadiator) + for the description of X-ray transition radiation as continuous process. + - New electromagnetic process G4GammaConversionToMuons for gamma conversion + into muon pairs. + - G4MultipleScattering: new parametrisation for angle distribution. + Modified boundary algorithm and some other minor fixes. Improvements + and performance optimisation. + - Fixes to hadron ionisation/energy-loss processes for delta-electron + spectra of GenericIons. + - G4eIonisation: fixed access to energy cuts in BuildLossTables. + - Modifications in G4PAIxSection allowing to get additional information on + transverse and longitudinal excitations at atomic frequences. + - Bug fix in G4GammaConversion::DoIt() for e+e- angular distribution. + - G4ComptonScattering: set LowestEnergyLimit to 1*keV. + - G4PhotoElectricEffect: + o keep only Sandia crossSections, removed call to BuildPhysicsTables. + Simplified public interface. + o generate theta angle of the photoelectron from Sauter-Gravila + distribution. + - G4Scintillation, G4Cerenkov: tracks are suspended only in 'fAlive' state. + - G4VMuEnergyLoss: bug fix in number of subcutoff delta. + + o General Processes, Parameterisation, Decay, Optical: + --------------------------------------------------- + - Added method G4VProcess::GetCurrentInteractionLength(). + - Fixed bug in G4VProcess::PostStepDoIt() when MeanFreePath is DBL_MAX. + + o Geometry: + -------- + - Introduced optional 3D geometry optimisation for parameterised volumes. + - Introduced ability to optionally disable optimisation of hierarchies of + geometry volume placements, through G4LogicalVolume. + - Enhanced reflection of volumes to cover all CSG and CSG-like solids. + - First release of module for importance biasing. + - Enhanced behavior for destructors of volumes/solids stores. + o Added locking mechanism for preventing conflicts when destroying + stores and deregistering pointers. + o Added Clean() static method to volumes/solids stores to explicitely + delete pointed objects in the stores and clear all entries. + - G4GeometryMessenger: added new commands to exploit more + features of the G4GeomTestVolume class for detecting geometry overlaps. + - G4Tubs: restored original "vertices" algorithm for + CalculateExtent() which was temporarly disabled. + - G4Sphere: bug fixed in Inside() for treatment of point p on z-axis. + - G4BREPSolidPCone: added sanity check of delta phi section value + and exception is thrown saying about this unsupported feature if + delta phi is less than 2*PI. + - G4AssemblyVolume: + o Fixed inconsistent handling of input rotation matrices. + o Corrected handling of cases when pointer to rotation matrix is zero. + o Moved accessors to assembly counters to public. + o Added support for user definable count base for generated physical + volumes. + - Implemented G4EllipticalTube::CreatePolyhedron(). + - Fix in G4Navigator for problem concerning ExitNormal with photons. + + o Global: + ------ + - G4String: use G4std::string instead of internal type 'std_string' + in signatures of public methods. No functional or interface changes. + - G4DataVector: initialise to zero values in collection for contructor + taking capacity. + - Added more verbosity to G4Exception. + - Introduced temporary patches for porting on gcc-3.1 compiler. + + o Hadronic Processes: + ------------------ + - General code cleanup for removal of warnings. + - cross_sections: + o Included the high Q2 part of the cross-section into electro and + photo nuclear reaction cross-sections, and into the equivalent + photon production. + o New class for calculating projectile fragment cross-sections in + ion ion reactions. Implements Physical Review C61, 034607 (2000). + based on EPAX Version 2, with the kind permission of the authors. + - management: + o Included recoil charge state treatement in HadronicProcess. + o Bug-fix affecting energy conservation for anti-protons in hydrogene. + - models/chiral_inv_phase_space: + o Included Q2!=0 for gamma and electro nuclear reactions. + o Using quark-gluon string model now to simulate reactions with large + energy transfers. + o Added protection for reactions at threshold. + - models/coherent_elastic: + o Improvement for coulomb effects. + o Correction of array sizes; slightly extends the applicability. + - models/high_energy: + o Fix for a long standing problem in phi symmetry traced to the Cross + method of G4HEVector. + - models/leading_particle: + o New package, steming from a partial re-implementation of the MARS + code. Valid for energies below 5 Gev for proton/neutron/pi+-, + K+-/gamma/anti_proton + The code is intrinsically leading particle biased, hence applicable + for radiation background simulations. + Typical application of this would be in the ESA MOLASSIS application. + - models/low_energy: + o Correction for randomization of fermi motion (1 in 1000 effect). + o Better treatement for anti-nucleons through accounting of + annihilation energy. + o Various cross-sections in the accounting of nucleons. + o Improved pi-0 to charged pion rations used in low energy models. + o Improved treatement of Lorentz transformation, getting rid of the + 1 in 100 phi=0 peak for nucleons. + - models/neutron_hp: + o Resolved a problem in the effective luminosity correction + in the doppler broadening on the fly. Removes a bias in capture time + on termal neutrons in hydrogen (was off by 10%). + - models/radiative_decay: + o Fixed problem with sort, leading to erroneous behavior. + - models/generator/de_excitation: + o Moving the catching of low energy gammas. + o Adding a complete set of fresh evaporation code, that is more or + less equivalent to the GEM evaporation models. It produces fragments + up to Na25. Currently at beta level. G4Evaporation::SetGEMChannel() + method should be used to activate this. + - models/generator/high_energy: + o Included direct strong resonance decay in case of scattering off + hydrogen, hence removing this boundary use-case from the cascade + interface specifications. + - models/generator/management: + o Added utility interface for nucleus and nuclear density functions, + for the use of cascade codes. + - models/generator/pre_equilibrium: + o Fixed error in the low energy proton distributions + o Improvements in the level density. + o Bug fixed in angular distributions (theta). + o Small bug fixed in the equilibrium exciton number. + o Migration to new pairing corrections. + - models/generator/quark_gluon_string: + o Design iteration to enable specialization of participants + in string excitation. + o Added gamma nuclear reactions by adding specialised participants for + this; based on single nucleon participant model, and mesonic structure; + assuming vector meson dominance in the reactions and splitting. + - models/generator/util: + o Added utility for the decay of strong resonances. + o Added consts to enforce few design considerations. + + o Magnetic Field: + -------------- + - Fix in G4MagIntegratorDriver to update the field track for small steps. + - Fixed LinearStep in G4MagHelicalStepper (expected unit direction). + - Changed maximum number of steps in driver from 500/order to 250/order. + - Fix in G4MagHelicalStepper::LinearStep(). + - G4ChordFinder: corrected behaviour for very small or large step changes. + + o Materials: + --------- + - G4Material: removed check of the ideal gas state equation. + + o Particles: + --------- + - Added G4TauLeptonicDecayChannel for tau leptonic decay. + - Fixed a bug in G4NeutronBetaDecayChannel. + + o Run, Intercoms and Interfaces + ----------------------------- + - Introduced new class G4UIGainServer, socket extension for G4UIGAG. + - Adopt limit to the number of stored command strings. + - Cleared naive usage of G4String type arguments from most UI classes. + - Modified G4RunManager to re-open geometry when G4 changes to QUIT state. + - Use "virtual" inheritance for G4VModularPhysicsList. + - Fixed pedantic warnings. + + o Tracking & Track: + ---------------- + - G4TrackingManager: implemented EventAborted() method. + + o Transportation: + -------------- + - Added new classes for management of biasing transportation and scoring. + + o Visualization: + ------------- + - Prevent copying of autoRefresh status with /vis/viewer/set/all command. + - Corrected out of date advice about /vis/set/culling, etc. + - Deprecated /vis/viewer/set/autoRefresh command. + - Workaround for pseudo-parallel/orthogonal projection in Ray Tracer. + - Updated OpenGL to compile on Windows (G4VIS_BUILD_OPENGLWIN32_DRIVER). + - Bug fixes in G4VRMLXFileSceneHandlerFunc class. + - Fixed pedantic warnings. + + o Examples: + -------- + - Novice: + o Added G4Scintillation process to example N06. + - Extended: + o Created 8 new examples for importance biasing and scoring. + o Created 2 new examples demonstrating event-level parallellism. + o Introduced first version of example for importing GDML geometries. + o Introduced first version of CMS tool for debugging geometries overlaps. + o Added example showing import of STEP CAD geometries. + o Created 2 new examples showing usage of HepMC event generator. + o Added new EM example TestEm6 for G4GammaConversionToMuons process. + o Migrated EM examples to use AIDA 2.2 for histogramming. + - Advanced: + o Updated examples to recent development and usage of histogramming + features in AIDA 2.2. + - Updated reference outputs. + + ---------------------------------------------------------------------------- + + 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. Persistency + 5. Compiler Specific Problems + 6. Known Run-Time Problems + 7. Compilation Warnings + 8. Known Run-Time Warnings + + +1. Supported and Tested Platforms +--------------------------------- + + o SUN Solaris 5.7, C++ 5.2 Patch 109508-03. + o Linux, gcc 2.95.2, egcs-2.91.66 (egcs 1.1.2). + This configuration was tested with the RedHat 6.1 and 7.2 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 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 with/without ObjectSpace STL + o HP 10.20, aCC C++ B3910B A.01.23 with/without ObjectSpace STL + o SGI V6.5.5, CC 7.2.1 with ObjectSpace STL + o AIX 4.3.2, xlC compiler with ObjectSpace STL + o MacOS 10.1, gcc 2.92.2 + +2. AIDA and CLHEP +----------------- + +Geant4 4.1 requires the installation of CLHEP. + +See +CLHEP. Tests have been performed with CLHEP 1.7.5.0. However, first +level porting has also been verified on CLHEP 1.8.0.0. + +By default, the CLHEP installation scripts will activate ISO/ANSI C++ features +if the compiler is capable. You need to explicitly disable CLHEP settings in +case you wish non-ISO/ANSI setup on specific compilers. + +Geant4 4.1 examples with histogramming cowork with AIDA 2.2 implementations. +These include: +- ANAPHE 4.0.4 and components included therein: + Objectivity 6.1.3 + HepODBMS 0.3.3.1 + CLHEP 1.7.5.0 + (see: ANAPHE) +- JAS 2.2.5 + (see: JAS) +- Open Scientist v8 + (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 W2000: Native STL and ISO/ANSI setup required (VC++ 6.0). + + +4. Persistency +-------------- + + See release notes for Geant4 4.0. + + +5. 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). + + +6. 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 + + +7. 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. + + +8. 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. diff --git a/config/G4VIS_USE.gmk b/config/G4VIS_USE.gmk index 5f526d7558..bbfd3497e8 100644 --- a/config/G4VIS_USE.gmk +++ b/config/G4VIS_USE.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_USE.gmk,v 1.12 2001/12/03 08:09:48 barrand Exp $ +# $Id: G4VIS_USE.gmk,v 1.13 2002/03/09 03:12:33 johna Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for visualization USE phase. # John Allison, 24th January 1998. @@ -58,10 +58,14 @@ ifdef G4VIS_USE_OPENGLXM INC_XM = 1 LOAD_XM = 1 endif +ifdef G4VIS_USE_OPENGLWIN32 + G4VIS_USE_OPENGL = 1 + CPPFLAGS += -DG4VIS_USE_OPENGLWIN32 +endif ifdef G4VIS_USE_OPENGL CPPFLAGS += -DG4VIS_USE_OPENGL CPPFLAGS += -I$(G4BASE)/visualization/OpenGL/include - VISLIBS += -lG4OpenGL + VISLIBS += -lG4OpenGL INC_GL = 1 LOAD_GL = 1 endif diff --git a/config/History b/config/History index 4c5e06e710..85ea81991d 100644 --- a/config/History +++ b/config/History @@ -1,5 +1,5 @@ -$Id: History,v 1.177 2001/12/14 08:37:39 gcosmo Exp $ -$Name: geant4-04-00 $ +$Id: History,v 1.193 2002/06/26 17:27:18 gcosmo Exp $ +$Name: geant4-04-01 $ ------------------------------------------------------------------- @@ -18,6 +18,54 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +26th June 2002 Gabriele Cosmo (config-V04-00-10) +- Moved STEP PERL scripts to examples/extended/geometry/cad/scripts. +- Updated scripts for Configure. + +18th June 2002 Gabriele Cosmo (config-V04-00-09) +- Added -DG4USE_OSPACE for obsolete systems using ObjectSpace STL. + +17th June 2002 Gabriele Cosmo (config-V04-00-08) +- Added flag G4NO_ISO_VECDIST for compilers (SUN-CC, HP-aCC) with non ISO + call to vector::distance() method. + +14th June 2002 Gabriele Cosmo (config-V04-00-07) +- binmake.gmk: added include path to "leading_particle" hadronic module. + Retagged with correct numbering... + +3rd May 2002 Gabriele Cosmo (config-V04-00-06) +- liblist.c: added patch to port code on MacOS-X. + Defined buffer[BUFSIZE] as "char static". +- Added Darwin-g++.gmk configuration file for MacOS-X systems running + with GNU g++ compiler. +- Removed SUN-CC4.gmk configuration file, no longer supported. +- Updated description header to system configuration files. + +27th March 2002 Gabriele Cosmo (config-V04-00-05) +- binmake.gmk: added include path to new module geometry/biasing. + Co-works with "geometry-V04-00-01" and "transport-V04-00-00". + +26th March 2002 Gabriele Cosmo (config-V04-00-04) +- liblist.c: cancelled changes made in previous tag. + Restored usage of function 'gets(buffer)', correctly adopted in this case. + +14th March 2002 Gabriele Cosmo (config-V04-00-03) +- liblist.c: replaced usage of function 'gets(buffer)' with the safer + 'fgets(buffer,BUFSIZE,stdin)'. + +9th March 2002 John Allison (config-V04-00-02) +- Fixed bug in G4VIS_USE.gmk for G4VIS_USE_OPENGLWIN32. +- Corrected perl script g4sort_step_file.pl to specify correct path for perl. + +07th February 2002 Gabriele Cosmo (config-V04-00-01) +- liblist.c: added flags __CYGWIN__ and __CYGWIN32__ for triggering proper + parsing algorithm on Windows systems, also on most recent versions of Cygwin. +- WIN32-VC.gmk: use g77 instead of f77 as default fortran compiler. + +25th January 2002 Gabriele Cosmo (config-V04-00-00) +- sys/HP-aCC.gmk: removed include path to global/management/include/std/wrappers, + which was unused and not neccessary. + 10th December 2001 Gabriele Cosmo (config-V03-02-15) - architecture.gmk: o updated list of supported compilers diff --git a/config/architecture.gmk b/config/architecture.gmk index 7521cfb2ac..27ddbfccbf 100644 --- a/config/architecture.gmk +++ b/config/architecture.gmk @@ -1,4 +1,4 @@ -# $Id: architecture.gmk,v 1.77 2001/12/11 15:31:11 gcosmo Exp $ +# $Id: architecture.gmk,v 1.78 2002/06/27 14:24:28 gcosmo Exp $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # @@ -13,14 +13,12 @@ # List of the supported architectures/compilers and related flavors for # the environment variable G4SYSTEM: # -# Linux-g++ Linux (Red Hat 6.1), gcc-2.95.2 (default) +# Linux-g++ Linux (Red Hat 6.1 or 7.2), gcc-2.95.2 (default) # # Linux-egcs Linux (Red Hat 6.1), egcs-1.1.2 # # SUN-CC SunOS 5.7, CC 5.2 # -# DEC-cxx DEC-OSF/1 4.0, DEC C++ 6.1 -# # WIN32-VC Windows/2000 and Microsoft Visual C++ 6.0 - SP5 # Adding CYGWIN32 tools # ------------------------------------------------------------------------- diff --git a/config/binmake.gmk b/config/binmake.gmk index a85c1d1fe1..5fa66d385d 100644 --- a/config/binmake.gmk +++ b/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.74 2001/12/13 11:36:05 gcosmo Exp $ +# $Id: binmake.gmk,v 1.76 2002/06/13 11:08:08 jwellisc Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -94,6 +94,7 @@ ifndef INCFLAGS -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 \ @@ -105,6 +106,7 @@ ifndef INCFLAGS -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 \ diff --git a/config/liblist.c b/config/liblist.c index 19b6cbe800..a780ead1ab 100644 --- a/config/liblist.c +++ b/config/liblist.c @@ -1,4 +1,4 @@ -/* $Id: liblist.c,v 1.9 1999/11/19 18:01:40 morita Exp $ */ +/* $Id: liblist.c,v 1.14 2002/05/03 12:59:08 gcosmo Exp $ */ /* Given a "libname.map" file on standard input and a list or directory @@ -115,13 +115,13 @@ char** parsedir(char *directory,int *argc) int main (int argc, char** argv) { - char buffer[BUFSIZE],*bufferPtr,workbuf[256]; + char static buffer[BUFSIZE],*bufferPtr,workbuf[256]; char *ptr,*p,**pp,**pp1,**pp2,*directory=0; char **rargv; int i,optl=0,swapping,c,rargc; FILE *fp; -#ifdef _WIN32 +#if defined ( _WIN32 ) || defined ( __CYGWIN__ ) || defined ( __CYGWIN32__ ) char *ntg4tmp=0,*ntg4tmp1=0; int nti; #endif @@ -263,7 +263,7 @@ int main (int argc, char** argv) { if(optl)fprintf(stderr," Reading dependency files...\n"); -#ifdef _WIN32 +#if defined ( _WIN32 ) || defined ( __CYGWIN__ ) || defined ( __CYGWIN32__ ) ntg4tmp=getenv("G4TMP"); if ( ! ntg4tmp ) { @@ -278,7 +278,7 @@ int main (int argc, char** argv) { fp=fopen(rargv[i],"r"); fgets(buffer,BUFSIZE,fp); -#ifdef _WIN32 +#if defined ( _WIN32 ) || defined ( __CYGWIN__ ) || defined ( __CYGWIN32__ ) ptr=strchr(ntg4tmp1,':'); if ( ptr ) *(ptr+1)='\0'; @@ -362,7 +362,7 @@ int main (int argc, char** argv) { fgets(buffer,BUFSIZE,fp); bufferPtr=buffer; -#ifdef _WIN32 +#if defined ( _WIN32 ) || defined ( __CYGWIN__ ) || defined ( __CYGWIN32__ ) while ( ptr=strchr(buffer,'\\') ) *ptr='/'; while (ntg4tmp1 && (ptr=strstr(buffer,ntg4tmp1)) ) @@ -376,7 +376,7 @@ int main (int argc, char** argv) { } } -#ifdef _WIN32 +#if defined ( _WIN32 ) || defined ( __CYGWIN__ ) || defined ( __CYGWIN32__ ) free(ntg4tmp1); #endif diff --git a/config/scripts/env.csh.SH b/config/scripts/env.csh.SH index 2cf84829a1..77166fbdd3 100755 --- a/config/scripts/env.csh.SH +++ b/config/scripts/env.csh.SH @@ -277,6 +277,12 @@ setenv G4VIS_USE_VRML 1 echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML" endif +#+ +if ( X$g4vis_oglhome != X ) then +setenv OGLHOME "$g4vis_oglhome" +echo "On this machine the OGLHOME=\$OGLHOME" +endif + #+ # # g4shared diff --git a/config/scripts/env.sh.SH b/config/scripts/env.sh.SH index f98a7a1e80..56aab09179 100755 --- a/config/scripts/env.sh.SH +++ b/config/scripts/env.sh.SH @@ -316,6 +316,13 @@ export G4VIS_USE_VRML echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML" fi +#+ +if [ X$g4vis_oglhome != X ] ; then +OGLHOME="$g4vis_oglhome" +export OGLHOME +echo "On this machine the OGLHOME=\$OGLHOME" +fi + #+ # # g4shared diff --git a/config/scripts/install.sh.SH b/config/scripts/install.sh.SH index 6442e9ef42..79a12287b8 100755 --- a/config/scripts/install.sh.SH +++ b/config/scripts/install.sh.SH @@ -323,6 +323,13 @@ export G4VIS_USE_VRML echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML" fi +#+ +if [ X$g4vis_oglhome != X ] ; then +OGLHOME="$g4vis_oglhome" +export OGLHOME +echo "On this machine the OGLHOME=\$OGLHOME" +fi + #+ # # g4shared @@ -371,19 +378,19 @@ echo `pwd` # THere is no env! if [ X$g4global = Xy ] ; then -gmake global +$g4make global fi # There is env for binaries - for User: should be set in env.[c]sh! if [ X$g4granular = Xy ] ; then G4LIB_USE_GRANULAR=1 export G4LIB_USE_GRANULAR -gmake +$g4make fi # There is no env! if [ X$g4includes_flag = Xy ] ; then -gmake includes +$g4make includes fi !GROK!THIS! diff --git a/config/sys/AIX-xlC.gmk b/config/sys/AIX-xlC.gmk index 3c6c28258f..847f3d50c8 100644 --- a/config/sys/AIX-xlC.gmk +++ b/config/sys/AIX-xlC.gmk @@ -31,7 +31,7 @@ ifeq ($(G4SYSTEM),AIX-xlC) CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) ifdef G4USE_OSPACE CPPFLAGS += -DOS_AIX_4 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS + CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) endif diff --git a/config/sys/DEC-cxx.gmk b/config/sys/DEC-cxx.gmk index 37e91a1136..3bc6ada1d7 100644 --- a/config/sys/DEC-cxx.gmk +++ b/config/sys/DEC-cxx.gmk @@ -29,7 +29,7 @@ ifeq ($(G4SYSTEM),DEC-cxx) endif CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) ifdef G4USE_OSPACE - CPPFLAGS += -DOS_OSF1_4 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING + 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 diff --git a/config/sys/Darwin-g++.gmk b/config/sys/Darwin-g++.gmk new file mode 100644 index 0000000000..588865aaff --- /dev/null +++ b/config/sys/Darwin-g++.gmk @@ -0,0 +1,70 @@ +# +# ------ MacOS-X ------ !!! not supported !!! +# MacOS 10.1 GNU-gcc 2.92.2 +# +# Helmut Burkhardt - CERN +# +ifeq ($(G4SYSTEM),Darwin-g++) + CXX := g++ + GNU_GCC = 1 + CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC + ifdef G4OPTIMISE + CXXFLAGS += -O + FCFLAGS := -O + CCFLAGS := -O + else + ifdef G4DEBUG + CXXFLAGS += -g + FCFLAGS := -g + CCFLAGS := -g + endif + endif + ifdef G4PROFILE + CXXFLAGS += -pg + FCFLAGS += -pg + CCFLAGS += -pg + endif + ifdef G4LIB_BUILD_SHARED + CXXFLAGS += -fPIC + FCFLAGS += -fPIC + CCFLAGS += -fPIC + endif + G4RUNPATHOPTION := -Wl,-rpath + FC := g77 + FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore + FCLIBS := -lg2c -lnsl + ECHO := /bin/echo -e + SHEXT := so + X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 + X11LIBS := -L/usr/X11R6/lib -lXmu -lXt -lXext -lX11 -lSM -lICE + XMFLAGS := -I/usr/X11R6/include + XMLIBS := -lXm -lXpm + DLDLIBS := -ldl + ifndef OGLHOME + OGLHOME := /usr/X11R6 + endif + ifndef OGLFLAGS + OGLFLAGS := -I$(OGLHOME)/include + endif + ifndef OGLLIBS + OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL + endif + 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); \ + $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) *.o + endef + define build-global-shared-lib + @libdir=`(cd $(@D);/bin/pwd)`; \ + cd $(G4TMP)/$(G4SYSTEM); \ + $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) \ + $(foreach dir,$(SUBLIBS),$(dir)/*.o); + endef + +endif diff --git a/config/sys/HP-aCC.gmk b/config/sys/HP-aCC.gmk index d915eb8a22..a15dc92c49 100644 --- a/config/sys/HP-aCC.gmk +++ b/config/sys/HP-aCC.gmk @@ -1,6 +1,6 @@ # -# -------- HP --------- -# +# -------- HP --------- !!! not supported !!! +# HP-UX B.10.20 - aCC A.01.23 ifeq ($(G4SYSTEM),HP-aCC) CXX := aCC ifdef G4OPTIMISE @@ -38,11 +38,10 @@ ifeq ($(G4SYSTEM),HP-aCC) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL OGLLIBS += -L/opt/graphics/common/lib -lXwindow -lhpgfx -lXhp11 -ldld endif - CPPFLAGS += -DG4NOT_ISO_DELETES - CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) + CPPFLAGS += -DG4NOT_ISO_DELETES -DG4NO_ISO_VECDIST ifdef G4USE_OSPACE CPPFLAGS += -DOS_HPUX_10_20 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS -D__HPACC_NOEH + CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS -D__HPACC_NOEH CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) endif diff --git a/config/sys/Linux-egcs.gmk b/config/sys/Linux-egcs.gmk index 8a98228f93..9f007322e2 100644 --- a/config/sys/Linux-egcs.gmk +++ b/config/sys/Linux-egcs.gmk @@ -1,5 +1,5 @@ # -# ------ GNU/LINUX ------ +# ------ GNU/LINUX ------ egcs-1.1.2 (gcc-2.91.66) # ifeq ($(G4SYSTEM),Linux-egcs) CXX := g++ @@ -46,7 +46,7 @@ ifeq ($(G4SYSTEM),Linux-egcs) OIVFLAGS += -I$(OIHOME)/include ifdef G4USE_OSPACE CPPFLAGS += -DOS_LINUX_2 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS + CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR) endif ifdef G4ODBMS diff --git a/config/sys/SGI-CC.gmk b/config/sys/SGI-CC.gmk index 8234115972..0fbfcf3b30 100644 --- a/config/sys/SGI-CC.gmk +++ b/config/sys/SGI-CC.gmk @@ -30,7 +30,7 @@ ifeq ($(G4SYSTEM),SGI-CC) CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) ifdef G4USE_OSPACE CPPFLAGS += -DOS_IRIX_6_5 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS + CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) endif diff --git a/config/sys/SUN-CC.gmk b/config/sys/SUN-CC.gmk index c66646ab70..7de2c2dc4a 100644 --- a/config/sys/SUN-CC.gmk +++ b/config/sys/SUN-CC.gmk @@ -45,13 +45,13 @@ ifeq ($(G4SYSTEM),SUN-CC) endif CPPFLAGS += -DSOCKET_IRIX_SOLARIS LOADLIBS += -L/usr/lib -lsocket -lnsl - CPPFLAGS += -DG4NOT_ISO_DELETES + 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 += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS + CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) CXXFLAGS += -compat else diff --git a/config/sys/SUN-CC4.gmk b/config/sys/SUN-CC4.gmk deleted file mode 100644 index 26b2844e39..0000000000 --- a/config/sys/SUN-CC4.gmk +++ /dev/null @@ -1,69 +0,0 @@ -# -# -------- SUN --------- !!! not supported !!! -# SUN CC-4.2 -ifeq ($(G4SYSTEM),SUN-CC4) - CXX := CC - ifdef G4OPTIMISE - CXXFLAGS := -O - else - ifdef G4DEBUG - CXXFLAGS := -g - FCFLAGS := -g - CCFLAGS := -g - endif - endif - ifdef G4LIB_BUILD_SHARED - CXXFLAGS += -KPIC - FCFLAGS += -KPIC - CCFLAGS += -KPIC - endif - G4RUNPATHOPTION = -R -# CXXFLAGS += -fnonstd - CFRONT_G4TEMPLATE_REPOSITORY := true - FC := f77 - SHEXT := so - AR := $(CXX) -xar -ptr$(G4TREP) -o - ECHO := /bin/echo - GREP := /usr/xpg4/bin/grep - FCLIBS := -lM77 -lF77 -lsunmath - X11FLAGS := -I/usr/openwin/include/X11/extensions -I/usr/openwin/include/X11 - X11FLAGS += -I/usr/openwin/include - X11LIBS := -L/usr/openwin/lib -L/usr/dt/lib -L/usr/ucblib - X11LIBS += -R/usr/openwin/lib -lXmu -lX11 -lXext - XMLIBS := -L/usr/openwin/lib -L/usr/dt/lib -L/usr/ucblib - XMLIBS += -R/usr/openwin/lib -lXt -lXm -lX11 - XAWFLAGS := -I/usr/openwin/include/X11 - XAWLIBS := -L/usr/openwin/lib -L/usr/dt/lib -L/usr/ucblib - XAWLIBS += -R/usr/openwin/lib -lXaw -lXmu -lXt -lX11 -lXext - ifndef OGLFLAGS - OGLFLAGS := -I$(OGLHOME)/include - endif - ifndef OGLLIBS - OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL - endif - CPPFLAGS += -DSOCKET_IRIX_SOLARIS - LOADLIBS += -L/usr/lib -lsocket -lnsl - CPPFLAGS += -DG4NOT_ISO_DELETES - CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) - ifdef G4USE_OSPACE - CPPFLAGS += -DOS_SOLARIS_2_5 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS - CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) - endif - ifdef G4ODBMS - G4DDLX_FLAGS += -DG4std="" - endif - - define build-granular-shared-lib - @libdir=`(cd $(@D);/bin/pwd)`; \ - cd $(G4TMPDIR); \ - $(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) *.o - endef - define build-global-shared-lib - @libdir=`(cd $(@D);/bin/pwd)`; \ - cd $(G4TMP)/$(G4SYSTEM); \ - $(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) \ - $(foreach dir,$(SUBLIBS),$(dir)/*.o); -endef - -endif diff --git a/config/sys/WIN32-VC.gmk b/config/sys/WIN32-VC.gmk index 2a0633e01b..628663fce2 100644 --- a/config/sys/WIN32-VC.gmk +++ b/config/sys/WIN32-VC.gmk @@ -1,5 +1,5 @@ # -# ------ WIN32/VC ------ +# ------ WIN32/VC ------ Visual-C++ 6.0 SP5 # ifeq ($(G4SYSTEM),WIN32-VC) CXX := CL @@ -19,6 +19,7 @@ ifeq ($(G4SYSTEM),WIN32-VC) # ifdef G4USE_OSPACE CXXFLAGS += $(OSPACEINC) + CPPFLAGS += -DG4USE_OSPACE else ifdef G4USE_STLPORT CXXFLAGS += $(OSPACEINC) @@ -40,7 +41,7 @@ ifeq ($(G4SYSTEM),WIN32-VC) AR := LIB ECHO := echo -e - FC := f77 + FC := g77 # FCLIBS := -lf2c ifndef OGLFLAGS OGLFLAGS := diff --git a/config/sys/WIN32-g++.gmk b/config/sys/WIN32-g++.gmk index 0753dd191d..1bed387ac8 100644 --- a/config/sys/WIN32-g++.gmk +++ b/config/sys/WIN32-g++.gmk @@ -3,8 +3,7 @@ # cygnus b20 with cygwin1.dll 1.1.5 patch # Windows 95 4.00.1111 # -# Sys file by Stefano Agostinelli, July 2000 -# IST Group: Franca Foppiano, Stefania Garelli, Stefano Agostinelli +# Stefano Agostinelli - IST Group, Genova # ifeq ($(G4SYSTEM),WIN32-g++) CXX := g++ @@ -43,7 +42,7 @@ ifeq ($(G4SYSTEM),WIN32-g++) OIVFLAGS += -I$(OIHOME)/include ifdef G4USE_OSPACE CPPFLAGS += -DOS_LINUX_2 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS + CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR) endif ifdef G4ODBMS diff --git a/environments/OPACS/app/EXPO.cc b/environments/OPACS/app/EXPO.cc index 7bfa003b74..aca46b75dc 100644 --- a/environments/OPACS/app/EXPO.cc +++ b/environments/OPACS/app/EXPO.cc @@ -22,7 +22,7 @@ // // // $Id: EXPO.cc,v 1.8.4.1 2001/06/28 19:06:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include diff --git a/environments/OPACS/app/TEST.cc b/environments/OPACS/app/TEST.cc index 386e1f79ac..c2ee30ca78 100644 --- a/environments/OPACS/app/TEST.cc +++ b/environments/OPACS/app/TEST.cc @@ -22,7 +22,7 @@ // // // $Id: TEST.cc,v 1.3.4.1 2001/06/28 19:06:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include diff --git a/environments/OPACS/include/EXPO_Detector.icc b/environments/OPACS/include/EXPO_Detector.icc index 16b45f1369..3ec00501c6 100644 --- a/environments/OPACS/include/EXPO_Detector.icc +++ b/environments/OPACS/include/EXPO_Detector.icc @@ -22,7 +22,7 @@ // // // $Id: EXPO_Detector.icc,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // See also G4/run/example/MyDetectorConstruction.cc. diff --git a/environments/OPACS/include/EXPO_PhysicsList.hh b/environments/OPACS/include/EXPO_PhysicsList.hh index 5b5ad6c7ff..99d20ed188 100644 --- a/environments/OPACS/include/EXPO_PhysicsList.hh +++ b/environments/OPACS/include/EXPO_PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: EXPO_PhysicsList.hh,v 1.4.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/environments/OPACS/include/EXPO_PhysicsList.icc b/environments/OPACS/include/EXPO_PhysicsList.icc index 39534cb657..ef7a73de99 100644 --- a/environments/OPACS/include/EXPO_PhysicsList.icc +++ b/environments/OPACS/include/EXPO_PhysicsList.icc @@ -22,7 +22,7 @@ // // // $Id: EXPO_PhysicsList.icc,v 1.4.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/environments/OPACS/include/EXPO_Primary.icc b/environments/OPACS/include/EXPO_Primary.icc index 9de84dd7ee..73bded150c 100644 --- a/environments/OPACS/include/EXPO_Primary.icc +++ b/environments/OPACS/include/EXPO_Primary.icc @@ -22,7 +22,7 @@ // // // $Id: EXPO_Primary.icc,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // See also G4/run/example/EXPO_PrimaryGeneratorAction.cc. diff --git a/environments/OPACS/include/G4o.h b/environments/OPACS/include/G4o.h index ec3410b0ae..e0c5220f55 100644 --- a/environments/OPACS/include/G4o.h +++ b/environments/OPACS/include/G4o.h @@ -22,7 +22,7 @@ // // // $Id: G4o.h,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* +---------------------- 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 bcef06a406..0886412e84 100644 --- a/environments/OPACS/include/G4oCommon.hh +++ b/environments/OPACS/include/G4oCommon.hh @@ -22,7 +22,7 @@ // // // $Id: G4oCommon.hh,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* Included by G4o.h. diff --git a/environments/OPACS/include/G4oCommon.icc b/environments/OPACS/include/G4oCommon.icc index ea34fdee5d..628e1dc605 100644 --- a/environments/OPACS/include/G4oCommon.icc +++ b/environments/OPACS/include/G4oCommon.icc @@ -22,7 +22,7 @@ // // // $Id: G4oCommon.icc,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* Included by G4o.cc. diff --git a/environments/OPACS/include/G4oDrawer.hh b/environments/OPACS/include/G4oDrawer.hh index 585ed41c60..44dfabebc5 100644 --- a/environments/OPACS/include/G4oDrawer.hh +++ b/environments/OPACS/include/G4oDrawer.hh @@ -22,7 +22,7 @@ // // // $Id: G4oDrawer.hh,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* +---------------------- 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 59a1c3a8dc..510be3d1e6 100644 --- a/environments/OPACS/include/G4oEXPO.h +++ b/environments/OPACS/include/G4oEXPO.h @@ -22,7 +22,7 @@ // // // $Id: G4oEXPO.h,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* +---------------------- 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 261cec4c6a..3f57448641 100644 --- a/environments/OPACS/include/G4oScene.hh +++ b/environments/OPACS/include/G4oScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4oScene.hh,v 1.4.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* +---------------------- 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 ed629add0e..0b0f5f8b87 100644 --- a/environments/OPACS/include/G4oState.hh +++ b/environments/OPACS/include/G4oState.hh @@ -22,7 +22,7 @@ // // // $Id: G4oState.hh,v 1.4.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4oState_h #define G4oState_h diff --git a/environments/OPACS/include/WoG4o.h b/environments/OPACS/include/WoG4o.h index 5bda164c7d..c98decf48f 100644 --- a/environments/OPACS/include/WoG4o.h +++ b/environments/OPACS/include/WoG4o.h @@ -22,7 +22,7 @@ // // // $Id: WoG4o.h,v 1.3.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* +---------------------- 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 5aa7c4abba..ac31456d54 100644 --- a/environments/OPACS/src/G4o.cc +++ b/environments/OPACS/src/G4o.cc @@ -22,7 +22,7 @@ // // // $Id: G4o.cc,v 1.7.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* #define DEBUG diff --git a/environments/OPACS/src/G4oDrawer.cc b/environments/OPACS/src/G4oDrawer.cc index 0e7cb0789b..d6edc18292 100644 --- a/environments/OPACS/src/G4oDrawer.cc +++ b/environments/OPACS/src/G4oDrawer.cc @@ -22,7 +22,7 @@ // // // $Id: G4oDrawer.cc,v 1.6.4.1 2001/06/28 19:06:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* From geant4/visualization/management/src/G4VisManager.cc. diff --git a/environments/OPACS/src/G4oScene.cc b/environments/OPACS/src/G4oScene.cc index bf3b62309c..8522f49ed1 100644 --- a/environments/OPACS/src/G4oScene.cc +++ b/environments/OPACS/src/G4oScene.cc @@ -22,7 +22,7 @@ // // // $Id: G4oScene.cc,v 1.7.4.1 2001/06/28 19:06:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* +---------------------- 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 e7f6b2ed17..7384c0c757 100644 --- a/environments/OPACS/src/G4oState.cc +++ b/environments/OPACS/src/G4oState.cc @@ -22,7 +22,7 @@ // // // $Id: G4oState.cc,v 1.6.4.1 2001/06/28 19:06:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //#define DEBUG diff --git a/examples/advanced/brachytherapy/Brachy.cc b/examples/advanced/brachytherapy/Brachy.cc index d58d19a43a..d5dc1c939f 100644 --- a/examples/advanced/brachytherapy/Brachy.cc +++ b/examples/advanced/brachytherapy/Brachy.cc @@ -1,3 +1,4 @@ + // // ******************************************************************** // * DISCLAIMER * @@ -26,121 +27,157 @@ // -------------------------------------------------------------- // // Code developed by: -// S. Agostinelli, F. Foppiano, S. Garelli and M. Tropeano +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano,S.Guatelli // // Brachytherapy simulates the dose deposition in a cubic (30*cm) -// water phantom for a Ir-192 MicroSelectron High Dose Rate +// 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 ASCII file -// "Brachy.out". - -// -// $Id: Brachy.cc,v 1.8 2001/12/13 13:44:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +//e is output to +// "Brachy3.hbk". + + +// $Id: Brachy.cc,v 1.11 2002/06/18 22:20:37 guatelli Exp $ +// GEANT4 tag $Name: brachy-V04-00-05 $ +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +#ifdef G4UI_USE_XM +#include "G4UIXm.hh" +#endif + +#ifdef G4VIS_USE +#include "BrachyVisManager.hh" +#endif #include "BrachyEventAction.hh" #include "BrachyDetectorConstruction.hh" #include "BrachyPhysicsList.hh" #include "BrachyPrimaryGeneratorAction.hh" -#include "BrachyWaterBoxSD.hh" +#include "BrachyPhantomSD.hh" +#include "G4SDManager.hh" + +#include"BrachyRunAction.hh" #include "Randomize.hh" #include "G4RunManager.hh" #include "G4SDManager.hh" #include "G4UImanager.hh" -int main() -{ - // Number of generated photons - G4int NumberOfEvents = 1000; - // Define number of voxels in X-Z plane - G4int NumVoxelX = 101; - G4int NumVoxelZ = 101; - // Construct the default run manager - G4RunManager* pRunManager = new G4RunManager; +//Interactive mode// - // Set mandatory initialization classes - G4String SDName = "WaterBox"; - BrachyDetectorConstruction *pDetectorConstruction; - pRunManager->SetUserInitialization(pDetectorConstruction = new BrachyDetectorConstruction(SDName,NumVoxelX,NumVoxelZ)); - pRunManager->SetUserInitialization(new BrachyPhysicsList); +int main(int argc ,char ** argv) - // Set mandatory user action class - pRunManager->SetUserAction(new BrachyPrimaryGeneratorAction); +{ + // semi diversi li ha usati per l'errore + - // Initialize G4 kernel - pRunManager->Initialize(); + //HepRandom::setTheSeed(16520); - // Alloc and initialize voxel matrix - G4float* pVoxel = new G4float[NumVoxelX*NumVoxelZ]; - for(G4int j=0;jSetUserAction(pEventAction = new BrachyEventAction(pVoxel,NumVoxelX,NumVoxelZ)); + + // Construct the default run manager + G4RunManager* pRunManager = new G4RunManager; - // Get the pointer to the UI manager and set verbosities - G4UImanager* UI = G4UImanager::GetUIpointer(); - UI->ApplyCommand("/run/verbose 0"); - UI->ApplyCommand("/event/verbose 0"); - UI->ApplyCommand("/tracking/verbose 0"); - pRunManager->BeamOn(NumberOfEvents); + // Set mandatory initialization classes + G4String SDName = "Phantom"; + + BrachyDetectorConstruction *pDetectorConstruction=new BrachyDetectorConstruction(SDName); + pRunManager->SetUserInitialization(pDetectorConstruction) ; + + pRunManager->SetUserInitialization(new BrachyPhysicsList); - if(pVoxel) - { - G4std::ofstream ofs; + +#ifdef G4VIS_USE + // visualization manager + G4VisManager* visManager = new BrachyVisManager; + visManager->Initialize(); +#endif - // Output voxel data to text file - // Format = x coord [mm] z coord [mm] edep [MeV] - ofs.open("Brachy.out"); - { + 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 + } + - ofs<<" x(mm)"<<'\t'<<"z(mm)"<<'\t'<<"released energy(Mev)" - <GetBoxDim_X()/NumVoxelX; - G4double VoxelWidth_Z = pDetectorConstruction->GetBoxDim_Z()/NumVoxelZ; + BrachyEventAction *pEventAction=new BrachyEventAction(SDName); + + pRunManager->SetUserAction(pEventAction ); + pRunManager->SetUserAction(new BrachyPrimaryGeneratorAction); + + BrachyRunAction *pRunAction=new BrachyRunAction(); + pRunManager->SetUserAction(pRunAction); + + + +//Initialize G4 kernel + pRunManager->Initialize(); - G4double x,z; + // get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/run/verbose 0"); + UI->ApplyCommand("/event/verbose 0"); + UI->ApplyCommand("/tracking/verbose 0"); - for(G4int k=0;kApplyCommand("/control/execute initInter.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); + } + + //int numberOfEvent = 10000; + //pRunManager->BeamOn(numberOfEvent); + + + + // Job termination - for(G4int i=0;i 3*mm || fabs(z) > 6*mm) - { ofs << x << '\t' << z << '\t' << pVoxel[j] << G4endl; - //check released energy - // if(pVoxel[j]!=0) - // G4cout</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 /... +# +# ---- Linux setup ---- +# + + setenv G4SYSTEM Linux-g++ + +#choose where you want to put the G4-libraries and G4workdir + + setenv G4LIB .... + setenv G4WORKDIR ... + + +---visualization----- + + + +# ---- set up VRMLview +setenv G4VIS_BUILD_VRMLFILE_DRIVER 1 +setenv G4VIS_USE_VRML 1 +setenv G4VIS_USE_VRMLFILE 1 +setenv G4VRMLFILE_MAX_FILE_NUM 100 +setenv G4VRMLFILE_VIEWER vrmlview #if installed +setenv G4VIS_USE_VRML 1 +setenv G4VIS_USE_VRMLFILE 1 +setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux" + +# ---- set up OpenGL or Mesa +setenv G4VIS_BUILD_OPENGLX_DRIVER 1 +setenv G4VIS_USE_OPENGLX 1 +setenv OGLHOME /afs/cern.ch/sw/geant4/dev/Mesa/Linux-g++ + +# ---- set up DAWN +setenv G4VIS_BUILD_DAWN_DRIVER 1 +setenv G4VIS_BUILD_DAWNFILE_DRIVER 1 +setenv G4VIS_USE_DAWN 1 +setenv G4VIS_USE_DAWNFILE 1 +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` + +# ---- 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 new file mode 100644 index 0000000000..575f32ab80 --- /dev/null +++ b/examples/advanced/brachytherapy/brachy.py @@ -0,0 +1,15 @@ +hm.selectStore("brachy3.hbk") +hm.ls() +#spectrum of initial particles +hEn=hm.load1D("30") +hplot(hEn) +#if you want to print the results:pl.psPrint("Brachyspettro.ps") +h2=hm.load2D("20") +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 diff --git a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh new file mode 100644 index 0000000000..a8566d8d21 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh @@ -0,0 +1,55 @@ + +#ifndef G4PROCESSTESTANALYSIS_HH +#define G4PROCESSTESTANALYSIS_HH + +#include "globals.hh" +#include "g4std/vector" +#include "G4ThreeVector.hh" + +class ITree; +class IHistogramFactory; +class IAnalysisFactory; +class ITupleFactory; +class ITuple; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class BrachyAnalysisManager +{ +public: + + ~BrachyAnalysisManager(); + + void book(); + + void finish(); + + static BrachyAnalysisManager* getInstance(); + + void analyse(G4double,G4double,G4float); + void hist(G4double,G4double,G4float); + void Spectrum(G4double); + +private: + + G4double xx,zz; + G4float en; + G4double x,z; + static BrachyAnalysisManager* instance; + +private: + BrachyAnalysisManager(); + +private: + + IAnalysisFactory *aFact; + ITree *theTree; + IHistogramFactory *histFact; + ITupleFactory *tupFact; + +}; + +#endif + + + + diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh index 3776a159df..5e29b113b3 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // **************************************** // * * // * BrachyDetectorConstruction.hh * @@ -30,32 +8,111 @@ #ifndef BrachyDetectorConstruction_H #define BrachyDetectorConstruction_H 1 +#include "globals.hh" #include "G4VUserDetectorConstruction.hh" +#include "G4LogicalVolume.hh" + + +class BrachyPhantomSD; +class BrachyDetectorMessenger; +class G4LogicalVolume; +class G4Material; +class G4Tubs; +class G4Box; +class G4Sphere; +class G4Tubs; class G4VPhysicalVolume; -class BrachyWaterBoxSD; + + +class G4VPhysicalVolume; class BrachyDetectorConstruction : public G4VUserDetectorConstruction { - public: - BrachyDetectorConstruction(G4String &SDName,G4int NumVoxelX,G4int NumVoxelZ); - ~BrachyDetectorConstruction(); +public: + BrachyDetectorConstruction(G4String&); + ~BrachyDetectorConstruction(); - public: - - G4double GetBoxDim_X() {return m_BoxDimX;}; - G4double GetBoxDim_Z() {return m_BoxDimZ;}; - - public: - G4VPhysicalVolume* Construct(); private: - const G4int m_NumVoxelX; - const G4int m_NumVoxelZ; - G4double m_BoxDimX; - G4double m_BoxDimY; - G4double m_BoxDimZ; + G4double m_BoxDimX; + G4double m_BoxDimY; + G4double m_BoxDimZ; + G4int NumVoxelX; + G4int NumVoxelZ; + G4double dimVoxel; G4String m_SDName; - }; + +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: + + BrachyDetectorMessenger* detectorMessenger; + + G4Box* ExpHall; //pointer to the solid World + G4LogicalVolume* ExpHallLog; //pointer to the logical World + G4VPhysicalVolume* ExpHallPhys; //pointer to the physical World + + + 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(); + +private: + + void DefineMaterials(); + void ComputeDimVoxel(); + +public: + G4VPhysicalVolume* ConstructDetector(); + + +}; + +inline void BrachyDetectorConstruction::ComputeDimVoxel() +{ + dimVoxel=m_BoxDimX/NumVoxelX; + +} + #endif + + + + + + + diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh new file mode 100644 index 0000000000..9d9ae122ec --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.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: BrachyDetectorMessenger.hh,v 1.2 2002/06/18 22:24:22 guatelli Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef BrachyDetectorMessenger_h +#define BrachyDetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class BrachyDetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class BrachyDetectorMessenger: public G4UImessenger +{ +public: + BrachyDetectorMessenger(BrachyDetectorConstruction* ); + ~BrachyDetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + +private: + BrachyDetectorConstruction* Detector; + + G4UIdirectory* detDir; + G4UIcmdWithAString* AbsMaterCmd; + + G4UIcmdWithoutParameter* UpdateCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/advanced/brachytherapy/include/BrachyDummySD.hh b/examples/advanced/brachytherapy/include/BrachyDummySD.hh index 0726524c6e..2877407693 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 26f188b900..9dac292700 100644 --- a/examples/advanced/brachytherapy/include/BrachyEventAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyEventAction.hh @@ -31,27 +31,40 @@ #include "G4UserEventAction.hh" #include "globals.hh" - +class BrachyDetectorConstruction; +class BrachyAnalysisManager; class BrachyEventAction : public G4UserEventAction { - public: - BrachyEventAction(G4float *pVoxel,G4int NumVoxelX,G4int NumVoxelZ); - ~BrachyEventAction(); +public: + BrachyEventAction(G4String&); + ~BrachyEventAction(); - public: - void BeginOfEventAction(const G4Event*); - void EndOfEventAction(const G4Event*); +public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + - - private: +private: + G4double EnergyDep; + G4int m_NumVoxelX; + G4int m_NumVoxelZ; - const G4int m_NumVoxelX; - const G4int m_NumVoxelZ; - G4float *m_pVoxel; - - private: - G4int m_HitsCollectionID; + BrachyDetectorConstruction *pDetector; + 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; }; diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh new file mode 100644 index 0000000000..0ac28597a3 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyPhantomHit.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. * +// ******************************************************************** +// +// ******************************** +// * * +// * BrachyPhantomHit.hh * +// * * +// ******************************** + +#ifndef BrachyPhantomHit_h +#define BrachyPhantomHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" + +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; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + void Draw(); + void Print(); + +private: + G4ThreeVector m_Pos; + G4RotationMatrix m_Rot; + const G4LogicalVolume* m_pLogV; + + 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;} +}; + +typedef G4THitsCollection BrachyPhantomHitsCollection; +extern G4Allocator BrachyPhantomHitAllocator; + +inline void* BrachyPhantomHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) BrachyPhantomHitAllocator.MallocSingle(); + return aHit; +} + +inline void BrachyPhantomHit::operator delete(void *aHit) +{ + BrachyPhantomHitAllocator.FreeSingle((BrachyPhantomHit*) aHit); +} + +#endif + + diff --git a/examples/advanced/brachytherapy/include/BrachyWaterBoxROGeometry.hh b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh similarity index 81% rename from examples/advanced/brachytherapy/include/BrachyWaterBoxROGeometry.hh rename to examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh index 5b86f0e1f9..ed5b4ce8b5 100644 --- a/examples/advanced/brachytherapy/include/BrachyWaterBoxROGeometry.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh @@ -27,25 +27,25 @@ // ************************************ -#ifndef BrachyWaterBoxROGeometry_h -#define BrachyWaterBoxROGeometry_h +#ifndef BrachyPhantomROGeometry_h +#define BrachyPhantomROGeometry_h #include "G4VReadOutGeometry.hh" -class BrachyWaterBoxROGeometry : public G4VReadOutGeometry +class BrachyPhantomROGeometry : public G4VReadOutGeometry { - public: - BrachyWaterBoxROGeometry(G4String aString,G4double DetDimX,G4double DetDimZ,G4int NumVoxelX,G4int NumVoxelZ); - ~BrachyWaterBoxROGeometry(); +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 new file mode 100644 index 0000000000..32f0073d9a --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyPhantomSD.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. * +// ******************************************************************** +// +// ******************************** +// * * +// * BrachyWaterBoxSD.hh * +// * * +// ******************************** + +#ifndef BrachyPhantomSD_h +#define BrachyPHANTOMSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "BrachyPhantomHit.hh" + +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class BrachyPhantomSD : public G4VSensitiveDetector +{ +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; + + 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 fb32269703..e054b645a2 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh @@ -40,46 +40,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 34f350495c..a476e8960c 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // ******************************************** // * * // * BrachyPrimaryGeneratorAction.hh * @@ -34,20 +12,28 @@ #include "G4RadioactiveDecay.hh" class G4ParticleGun; +class G4Run; class G4Event; +class BrachyAnalysisManager; class BrachyPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { - public: - BrachyPrimaryGeneratorAction(); - ~BrachyPrimaryGeneratorAction(); +public: + BrachyPrimaryGeneratorAction(); + ~BrachyPrimaryGeneratorAction(); - public: - void GeneratePrimaries(G4Event* anEvent); - - private: - G4ParticleGun* m_pParticleGun; - G4RadioactiveDecay *m_pRadioactiveDecay; +public: + void GeneratePrimaries(G4Event* anEvent); + + +private: + G4ParticleGun* m_pParticleGun; + + G4RadioactiveDecay *m_pRadioactiveDecay; + G4double Energy; + + // BrachyPrimaryGeneratorMessenger* gunMessenger; + G4std::vector vettore; }; #endif diff --git a/examples/advanced/brachytherapy/include/BrachyRunAction.hh b/examples/advanced/brachytherapy/include/BrachyRunAction.hh new file mode 100644 index 0000000000..8be800bdda --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyRunAction.hh @@ -0,0 +1,28 @@ +#ifndef BrachyRunAction_h +#define BrachyRunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + + +class G4Run; +class BrachyAnalysisManager; +class BrachyRunAction : public G4UserRunAction +{ +public: + BrachyRunAction( ); + ~BrachyRunAction(); + +public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run* ); +private: + + G4String SDname; + + +}; + +#endif + + diff --git a/examples/advanced/brachytherapy/include/BrachyVisManager.hh b/examples/advanced/brachytherapy/include/BrachyVisManager.hh new file mode 100644 index 0000000000..b8bcda7db5 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyVisManager.hh @@ -0,0 +1,28 @@ + +#ifndef BrachyVisManager_h +#define BrachyVisManager_h 1 + +#ifdef G4VIS_USE + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class BrachyVisManager: public G4VisManager { + +public: + + BrachyVisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +#endif + +#endif + + + diff --git a/examples/advanced/brachytherapy/initInter.mac b/examples/advanced/brachytherapy/initInter.mac new file mode 100644 index 0000000000..4eef276236 --- /dev/null +++ b/examples/advanced/brachytherapy/initInter.mac @@ -0,0 +1,31 @@ +# +# Macro file for the initialization phase of "exampleN03.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +# +# 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) +#/control/saveHistory +#/vis/open OGLIX +/vis/open DAWNFILE +/vis/viewer/flush +# +# draw scene/ +# + +# +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +/run/verbose 1 +/event/verbose 0 +/tracking/verbose 0 +/control/verbose 0 +/vis/viewer/update diff --git a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc new file mode 100644 index 0000000000..b44894db60 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc @@ -0,0 +1,159 @@ + + +#include +#include "g4std/fstream" +#include "BrachyAnalysisManager.hh" + +#include "G4ios.hh" + +#include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogram2D.h" + +#include "AIDA/IManagedObject.h" +#include "AIDA/IAnalysisFactory.h" +#include "AIDA/IHistogramFactory.h" +#include "AIDA/ITupleFactory.h" +#include "AIDA/ITreeFactory.h" +#include "AIDA/ITree.h" +#include "AIDA/ITuple.h" + +BrachyAnalysisManager* BrachyAnalysisManager::instance = 0; + +BrachyAnalysisManager::BrachyAnalysisManager() : + aFact(0), theTree(0), histFact(0), tupFact(0) + + +{ + //build up the factories + aFact = AIDA_createAnalysisFactory(); + + 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"); + + delete treeFact; + //HistoFactory and TupleFactory depend on theTree + histFact = aFact->createHistogramFactory( *theTree ); + tupFact = aFact->createTupleFactory ( *theTree ); + +} + + + +BrachyAnalysisManager::~BrachyAnalysisManager() +{ + delete tupFact; + tupFact=0; + + delete histFact; + histFact=0; + + delete theTree; + histFact=0; + + delete aFact; + aFact = 0; + +} + +BrachyAnalysisManager* BrachyAnalysisManager::getInstance() +{ + if (instance == 0) instance = new BrachyAnalysisManager; + return instance; +} + + +void BrachyAnalysisManager::book() +{ + + // 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 + + 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"< ( theTree->find("1") ); + + + ntuple->fill(1, en);// fill ( int column, double value ) + ntuple->fill(2, xx); + ntuple->fill(3, 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); +} + + +void BrachyAnalysisManager::Spectrum(G4double Init_En) +{ + IHistogram1D* h3 = dynamic_cast ( theTree->find("30") ); + h3->fill(Init_En); +} + + +void BrachyAnalysisManager::finish() +{ + // write all histograms to file + theTree->commit(); + + // close (will again commit) + theTree->close(); + +} + + + + + + + + + + + + diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc index 0d1448bf42..04f821fa3f 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc @@ -1,35 +1,13 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // **************************************** // * * // * BrachyDetectorConstruction.cc * // * * // **************************************** -#include "BrachyWaterBoxROGeometry.hh" -#include "BrachyWaterBoxSD.hh" +#include "BrachyPhantomROGeometry.hh" +#include "BrachyPhantomSD.hh" +#include "BrachyDetectorMessenger.hh" #include "BrachyDetectorConstruction.hh" - #include "G4CSGSolid.hh" #include "G4Sphere.hh" #include "G4MaterialPropertyVector.hh" @@ -45,6 +23,8 @@ #include "G4PVPlacement.hh" #include "globals.hh" #include "G4MaterialTable.hh" + + #include "G4Element.hh" #include "G4ElementTable.hh" #include "G4PVParameterised.hh" @@ -53,153 +33,412 @@ #include "G4FieldManager.hh" #include "G4TransportationManager.hh" #include "G4SDManager.hh" +#include "G4Colour.hh" +#include "G4UserLimits.hh" +#include "G4UnionSolid.hh" #include "G4VisAttributes.hh" #include "G4Colour.hh" -//.... -BrachyDetectorConstruction::BrachyDetectorConstruction(G4String &SDName,G4int NumVoxelX,G4int NumVoxelZ) : - m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ),m_BoxDimX(30*cm),m_BoxDimY(30*cm),m_BoxDimZ(30*cm) +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) + { - m_SDName = SDName; + + NumVoxelX=300; + NumVoxelZ=300; + + m_BoxDimX=30*cm ; + m_BoxDimY=30*cm; + m_BoxDimZ=30*cm; + + ComputeDimVoxel(); + + + m_SDName = SDName;//pointer to sensitive detector + // create commands for interactive definition of the calorimeter + detectorMessenger = new BrachyDetectorMessenger(this); + + m_SDName = SDName; + } + //.... BrachyDetectorConstruction::~BrachyDetectorConstruction() -{ +{ + } //.... G4VPhysicalVolume* BrachyDetectorConstruction::Construct() -{ - // Define required materials +{ + DefineMaterials(); + return ConstructDetector(); +} - G4double A; // atomic mass - G4double Z; // atomic number - G4double d; // density +void BrachyDetectorConstruction::DefineMaterials() +{ + // Define required materials + + G4double A; // atomic mass + G4double Z; // atomic number + G4double d; // density // General elements - A = 1.01*g/mole; - Z = 1; - G4Element* elH = new G4Element ("Hydrogen","H",Z,A); + A = 1.01*g/mole; + G4Element* elH = new G4Element ("Hydrogen","H",Z=1.,A); - A = 14.01*g/mole; - Z = 7; - G4Element* elN = new G4Element("Nitrogen","N",Z,A); + A = 14.01*g/mole; + G4Element* elN = new G4Element("Nitrogen","N",Z=7.,A); + + A = 16.00*g/mole; + + G4Element* elO = new G4Element("Oxygen","O",Z=8.,A); + + A=12.011*g/mole; + G4Element* elC=new G4Element("Carbon","C",Z=6.,A); + + A=22.99*g/mole; + G4Element* elNa=new G4Element("Sodium","Na",Z=11.,A); + + A=24.305*g/mole; + G4Element* elMg=new G4Element("Magnesium","Mg",Z=12.,A); + + A=30.974*g/mole; + G4Element* elP=new G4Element("Phosphorus","P",Z=15.,A); + + A=32.06*g/mole; + G4Element* elS=new G4Element("Sulfur","S",Z=16.,A); + + A=35.453*g/mole; + G4Element* elCl=new G4Element("Chlorine","Cl",Z=17.,A); + + + A=39.098*g/mole; + G4Element* elK=new G4Element("Potassium","K",Z=19.,A); + + A=40.08*g/mole; + G4Element* elCa=new G4Element("Calcium","Ca",Z=20.,A); + - A = 16.00*g/mole; - Z = 8; - G4Element* elO = new G4Element("Oxygen","O",Z,A); // Elements for source capsule and cable - A = 54.94*g/mole; - Z = 25; - G4Element* elMn = new G4Element("Manganese","Mn",Z,A); - A = 28.09*g/mole; - Z = 14; - G4Element* elSi = new G4Element("Silicon","Si",Z,A); + + + 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); - A = 52.00*g/mole; - Z = 24; - G4Element* elCr = new G4Element("Chromium","Cr",Z,A); - A = 58.70*g/mole; - Z = 28; - G4Element* elNi = new G4Element("Nickel","Ni",Z,A); - A = 55.85*g/mole; - Z = 26; - G4Element* elFe = new G4Element("Iron","Fe",Z,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); - // Lead material - A = 207.19*g/mole; - Z = 82; - d = 11.35*g/cm3; - G4Material* matPb = new G4Material("Lead",Z,A,d); + A = 52.00*g/mole; + G4Element* elCr = new G4Element("Chromium","Cr",Z=24.,A); - // Air material - d = 1.290*mg/cm3; - G4Material* matAir = new G4Material("Air",d,2); - matAir->AddElement(elN,0.7); - matAir->AddElement(elO,0.3); + A = 58.70*g/mole; + G4Element* elNi = new G4Element("Nickel","Ni",Z=28.,A); - // Water - d = 1.000*g/cm3; - G4Material* matH2O = new G4Material("Water",d,2); - matH2O->AddElement(elH,2); - matH2O->AddElement(elO,1); + 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); + d = 22.42*g/cm3; + A = 191.96260*g/mole ; + Z = 77; + G4Material* matIr192 = new G4Material("Iridium",Z,A,d); - // 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); + //titanium + A=47.88*g/mole; + d=4.50*g/cm3; + G4Material* Titanium=new G4Material("titanium" ,Z=22.,A,d); - // Volumes + // Air material + d = 1.290*mg/cm3; + G4Material* matAir = new G4Material("Air",d,2); + matAir->AddElement(elN,0.7); + matAir->AddElement(elO,0.3); - // EXPERIMENTAL HALL (our world volume) - G4double ExpHall_x = 4.0*m; - G4double ExpHall_y = 4.0*m; - G4double ExpHall_z = 4.0*m; + + // 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) - G4Box* ExpHall = new G4Box("ExpHall",ExpHall_x,ExpHall_y,ExpHall_z); - G4LogicalVolume* ExpHallLog = new G4LogicalVolume(ExpHall,matAir,"ExpHallLog",0,0,0); - G4VPhysicalVolume* ExpHallPhys = new G4PVPlacement(0,G4ThreeVector(),"ExpHallPhys",ExpHallLog,0,false,0); + d=2.88*g/cm3; + G4Material* ceramica=new G4Material("allumina",d,2); + ceramica->AddElement(elAl,2); + ceramica->AddElement(elO,3); - // Water Box - - G4Box* WaterBox = new G4Box("WaterBox",m_BoxDimX/2,m_BoxDimY/2,m_BoxDimZ/2); - G4LogicalVolume* WaterBoxLog = new G4LogicalVolume(WaterBox,matH2O,"WaterBoxLog",0,0,0); - G4VPhysicalVolume* WaterBoxPhys = new G4PVPlacement(0,G4ThreeVector(),WaterBoxLog,"WaterBoxPhys",ExpHallLog,false,0); - // Capsule main body + AbsorberMaterial=matH2O; + air= matAir; + CapsuleMat=matSteel; + IridiumMat=matIr192; - G4Tubs* Capsule = new G4Tubs("Capsule",0,0.55*mm,3.725*mm,0.*deg,360.*deg); - G4LogicalVolume* CapsuleLog = new G4LogicalVolume(Capsule,matSteel,"CapsuleLog"); - G4VPhysicalVolume* CapsulePhys = new G4PVPlacement(0,G4ThreeVector(0,0,-1.975),CapsuleLog,"CapsulePhys",WaterBoxLog,false,0); - - // Capsule tip - - G4Sphere* CapsuleTip = new G4Sphere("CapsuleTip",0.*mm,0.55*mm,0.*deg,360.*deg,0.*deg,90.*deg); - G4LogicalVolume* CapsuleTipLog = new G4LogicalVolume(CapsuleTip,matSteel,"CapsuleTipLog"); - G4VPhysicalVolume* CapsuleTipPhys = new G4PVPlacement(0,G4ThreeVector(0.,0.,1.75*mm),CapsuleTipLog,"CapsuleTipPhys",WaterBoxLog,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,matIr192,"IridiumCoreLog"); - G4VPhysicalVolume* IridiumCorePhys = new G4PVPlacement(0,G4ThreeVector(),IridiumCoreLog,"IridiumCorePhys",CapsuleLog,false,0); - - // Sensitive Detector and ReadOut geometry definition - - G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); - BrachyWaterBoxSD* pWaterBoxSD = new BrachyWaterBoxSD(m_SDName,m_NumVoxelX,m_NumVoxelZ); - if(pWaterBoxSD) - { - G4String ROGeometryName = "WaterBoxROGeometry"; - BrachyWaterBoxROGeometry* pWaterBoxROGeometry = new BrachyWaterBoxROGeometry(ROGeometryName,m_BoxDimX,m_BoxDimZ,m_NumVoxelX,m_NumVoxelZ); - pWaterBoxROGeometry->BuildROGeometry(); - pWaterBoxSD->SetROgeometry(pWaterBoxROGeometry); - pSDManager->AddNewDetector(pWaterBoxSD); - WaterBoxLog->SetSensitiveDetector(pWaterBoxSD); - CapsuleLog->SetSensitiveDetector(pWaterBoxSD); - CapsuleTipLog->SetSensitiveDetector(pWaterBoxSD); - IridiumCoreLog->SetSensitiveDetector(pWaterBoxSD); - } - - return ExpHallPhys; } + + + +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; + + + + + + 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); + + // Water Box + Phantom= new G4Box("Phantom",m_BoxDimX/2,m_BoxDimY/2,m_BoxDimZ/2); + PhantomLog = new G4LogicalVolume(Phantom,AbsorberMaterial,"PhantomLog",0,0,0); + + + PhantomPhys = new G4PVPlacement(0,G4ThreeVector(),"WaterBoxPhys",PhantomLog,ExpHallPhys,false,0); + + + + + + + // 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,PhantomPhys,false,0); + + // Capsule tip + + 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) + { + G4String ROGeometryName = "PhantomROGeometry"; + BrachyPhantomROGeometry* 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() + <SetMaterial(pttoMaterial); + PrintDetectorParameters(); + } + else G4cout<<"that's not avaiable!"<SetGuidance(" detector control."); + + AbsMaterCmd = new G4UIcmdWithAString("/detector/setMaterial",this); + AbsMaterCmd->SetGuidance("Select Material of the detector."); + AbsMaterCmd->SetParameterName("choice",false); + AbsMaterCmd->AvailableForStates(Idle); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +BrachyDetectorMessenger::~BrachyDetectorMessenger() +{ + + delete AbsMaterCmd; + delete UpdateCmd; + delete detDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void BrachyDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == AbsMaterCmd ) + { Detector->SetAbsorberMaterial(newValue);} + + + + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/brachytherapy/src/BrachyEventAction.cc b/examples/advanced/brachytherapy/src/BrachyEventAction.cc index fbf928ca28..bfaff83fef 100644 --- a/examples/advanced/brachytherapy/src/BrachyEventAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyEventAction.cc @@ -27,9 +27,9 @@ // ******************************* #include "BrachyEventAction.hh" -#include "BrachyWaterBoxHit.hh" -#include "BrachyWaterBoxSD.hh" - +#include "BrachyPhantomHit.hh" +#include "BrachyPhantomSD.hh" +#include "BrachyDetectorConstruction.hh" #include "G4Event.hh" #include "G4EventManager.hh" #include "G4HCofThisEvent.hh" @@ -40,54 +40,117 @@ #include "G4SDManager.hh" #include "G4UImanager.hh" #include "G4ios.hh" - +#include "G4VVisManager.hh" +#include"BrachyAnalysisManager.hh" //.... -BrachyEventAction::BrachyEventAction(G4float *pVoxel,G4int NumVoxelX,G4int NumVoxelZ) : - m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) +BrachyEventAction::BrachyEventAction(G4String &SDName) : + drawFlag("all" ),printModulo(1) { - m_HitsCollectionID = -1; - m_pVoxel = pVoxel; + 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(); + + } //.... BrachyEventAction::~BrachyEventAction() { + delete pDetector; + } //.... -void BrachyEventAction::BeginOfEventAction(const G4Event*) +void BrachyEventAction::BeginOfEventAction(const G4Event* aEvent) { - G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); - if(m_HitsCollectionID == -1) - m_HitsCollectionID = pSDManager->GetCollectionID("WaterBoxHitsCollection"); + + G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); + if(m_HitsCollectionID == -1) + m_HitsCollectionID = pSDManager->GetCollectionID("PhantomHitsCollection"); + } //.... void BrachyEventAction::EndOfEventAction(const G4Event* evt) { - if(m_HitsCollectionID < 0) - return; - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - BrachyWaterBoxHitsCollection* CHC = NULL; + + G4int evno = fpEventManager->GetConstCurrentEvent()->GetEventID() ; - if(HCE) - CHC = (BrachyWaterBoxHitsCollection*)(HCE->GetHC(m_HitsCollectionID)); + 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(CHC) + G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); + BrachyPhantomHitsCollection* CHC = NULL; + + if(HCE) + CHC = (BrachyPhantomHitsCollection*)(HCE->GetHC(m_HitsCollectionID)); + + if(CHC) + { + + + G4int HitCount = CHC->entries(); + + for (G4int h=0; hentries(); - for (G4int h=0; hGetZID() + ((*CHC)[h])->GetXID()*m_NumVoxelX] += (*CHC)[h]->GetEdep(); - } - } + + + BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); + + i=((*CHC)[h])->GetZID(); + k=((*CHC)[h])->GetXID(); + + j=i+k*m_NumVoxelX; + + EnergyDep=(*CHC)[h]->GetEdep(); + + 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 + + if (G4VVisManager::GetConcreteInstance()) + { + 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); + } + } + + } @@ -99,5 +162,3 @@ void BrachyEventAction::EndOfEventAction(const G4Event* evt) - - diff --git a/examples/advanced/brachytherapy/src/BrachyWaterBoxHit.cc b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc similarity index 66% rename from examples/advanced/brachytherapy/src/BrachyWaterBoxHit.cc rename to examples/advanced/brachytherapy/src/BrachyPhantomHit.cc index dc12bd2b09..87751bcf2e 100644 --- a/examples/advanced/brachytherapy/src/BrachyWaterBoxHit.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc @@ -22,73 +22,73 @@ // // ******************************** // * * -// * BrachyWaterBoxHit.cc * +// * BrachyPhantomHit.cc * // * * // ******************************** -#include "BrachyWaterBoxHit.hh" +#include "BrachyPhantomHit.hh" #include "G4ios.hh" #include "G4VVisManager.hh" #include "G4Colour.hh" #include "G4VisAttributes.hh" #include "G4LogicalVolume.hh" -G4Allocator BrachyWaterBoxHitAllocator; +G4Allocator BrachyPhantomHitAllocator; //.... -BrachyWaterBoxHit::BrachyWaterBoxHit(G4LogicalVolume* logVol,G4int XID,G4int ZID) -:m_pLogV(logVol),m_XID(XID),m_ZID(ZID) +BrachyPhantomHit::BrachyPhantomHit(G4LogicalVolume* logVol,G4int XID,G4int ZID) + :m_pLogV(logVol),m_XID(XID),m_ZID(ZID) { - m_Edep=0; + m_Edep=0; } //.... -BrachyWaterBoxHit::~BrachyWaterBoxHit() +BrachyPhantomHit::~BrachyPhantomHit() { } //.... -BrachyWaterBoxHit::BrachyWaterBoxHit(const BrachyWaterBoxHit &right) +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_Edep = right.m_Edep; + m_Pos = right.m_Pos; + m_Rot = right.m_Rot; + m_pLogV = right.m_pLogV; } //.... -const BrachyWaterBoxHit& BrachyWaterBoxHit::operator=(const BrachyWaterBoxHit &right) +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_Edep = right.m_Edep; + m_Pos = right.m_Pos; + m_Rot = right.m_Rot; + m_pLogV = right.m_pLogV; + return *this; } //.... -int BrachyWaterBoxHit::operator==(const BrachyWaterBoxHit &right) const +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)); } //.... -void BrachyWaterBoxHit::Draw() +void BrachyPhantomHit::Draw() { } //.... -void BrachyWaterBoxHit::Print() +void BrachyPhantomHit::Print() { } diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc new file mode 100644 index 0000000000..1a740c6d76 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.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. * +// ******************************************************************** +// +// ************************************ +// * * +// * BrachyWaterBoxROGeometry.cc * +// * * +// ************************************ + +#include "BrachyPhantomROGeometry.hh" +#include "BrachyDummySD.hh" + +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4SDManager.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4SubtractionSolid.hh" +#include "G4ThreeVector.hh" +#include "G4Material.hh" + +//.... + +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) +{ +} + +//.... + +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.) + + 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 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 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; + + 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); + + // 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); + + // ...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; +} + + + diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc new file mode 100644 index 0000000000..31f40317e4 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyPhantomSD.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. * +// ******************************************************************** +// +// ******************************** +// * * +// * BrachyWaterBoxSD.cc * +// * * +// ******************************** + +#include "BrachyPhantomSD.hh" +#include "BrachyPhantomHit.hh" +#include "BrachyDetectorConstruction.hh" + +#include "G4Track.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" +#include "G4ParticleDefinition.hh" + +//.... + +BrachyPhantomSD::BrachyPhantomSD(G4String name, G4int NumVoxelX, G4int NumVoxelZ) + :G4VSensitiveDetector(name),m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) +{ + G4String HCname; + collectionName.insert(HCname="PhantomHitsCollection"); + m_pVoxelID = new G4int[NumVoxelX*NumVoxelZ]; + m_pPhantomHitsCollection = NULL; +} + +//.... + +BrachyPhantomSD::~BrachyPhantomSD() +{ + delete[] m_pVoxelID; +} + +//.... + +void BrachyPhantomSD::Initialize(G4HCofThisEvent*HCE) +{ + m_pPhantomHitsCollection = new BrachyPhantomHitsCollection(SensitiveDetectorName,collectionName[0]); + + for(G4int k=0;kGetPreStepPoint()->GetPhysicalVolume()->GetName() != "WaterBoxPhys") + return false; + + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep==0.) + return false; + + 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); + + G4RotationMatrix rotM; + if(physVol->GetObjectRotation()) + rotM = *(physVol->GetObjectRotation()); + + 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); + + return true; +} + +//.... + +void BrachyPhantomSD::EndOfEvent(G4HCofThisEvent*HCE) +{ + static G4int HCID = -1; + if(HCID<0) + { + HCID = GetCollectionID(0); + } + HCE->AddHitsCollection(HCID,m_pPhantomHitsCollection); +} + +//.... + +void BrachyPhantomSD::clear() +{ +} + +//.... + +void BrachyPhantomSD::DrawAll() +{ +} + +//.... + +void BrachyPhantomSD::PrintAll() +{ +} diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc index aa4b7ef964..72d63268a6 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // ******************************************** // * * // * BrachyPrimaryGeneratorAction.cc * @@ -27,7 +5,7 @@ // ******************************************** #include "BrachyPrimaryGeneratorAction.hh" - +#include "BrachyAnalysisManager.hh" #include "G4ParticleTable.hh" #include "Randomize.hh" #include "G4Event.hh" @@ -37,66 +15,94 @@ #include "G4UImanager.hh" #include "globals.hh" #include +#include "G4RunManager.hh" //.... BrachyPrimaryGeneratorAction::BrachyPrimaryGeneratorAction() { - // Generate a gamma particle with energy = Ir-192 mean energy - G4int NumParticles = 1; - G4double Energy = 0.356*MeV; + + G4int NumParticles = 1; + + m_pParticleGun = new G4ParticleGun(NumParticles); + + + + m_pParticleGun = new G4ParticleGun(NumParticles); + + + - m_pParticleGun = new G4ParticleGun(NumParticles); - if(m_pParticleGun) - m_pParticleGun->SetParticleEnergy(Energy); } //.... BrachyPrimaryGeneratorAction::~BrachyPrimaryGeneratorAction() { - if(m_pParticleGun) - delete m_pParticleGun; + if(m_pParticleGun) + delete m_pParticleGun; + + } //.... void BrachyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { - G4ParticleTable* pParticleTable = G4ParticleTable::GetParticleTable(); - G4String ParticleName = "gamma"; - G4ParticleDefinition* pParticle = pParticleTable->FindParticle(ParticleName); + BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); - m_pParticleGun->SetParticleDefinition(pParticle); + G4ParticleTable* pParticleTable = G4ParticleTable::GetParticleTable(); + G4String ParticleName = "gamma"; + G4ParticleDefinition* pParticle = pParticleTable->FindParticle(ParticleName); + - // Random generation of gamma source point inside the Iridium core cylinder(R=0.3*mm,h=3.5*mm) - G4double radius = 0.3*mm; - G4double x,y,z; - 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; + m_pParticleGun->SetParticleDefinition(pParticle); - G4ThreeVector position(x,y,z); - m_pParticleGun->SetParticlePosition(position); + // 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 ; - // 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 position(x,y,z); + m_pParticleGun->SetParticlePosition(position); - G4ThreeVector direction(a,b,c); - m_pParticleGun->SetParticleMomentumDirection(direction); - m_pParticleGun->GeneratePrimaryVertex(anEvent); + // 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/BrachyRunAction.cc b/examples/advanced/brachytherapy/src/BrachyRunAction.cc new file mode 100644 index 0000000000..fae75c82d6 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyRunAction.cc @@ -0,0 +1,56 @@ +#include "BrachyRunAction.hh" +#include "BrachyEventAction.hh" +#include "BrachyAnalysisManager.hh" +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4ios.hh" +#include "BrachyDetectorConstruction.hh" +#include "G4SDManager.hh" +#include "G4Timer.hh" + +BrachyRunAction::BrachyRunAction() +{ + + + +} + +BrachyRunAction::~BrachyRunAction() +{ + +} +void BrachyRunAction::BeginOfRunAction(const G4Run* aRun) +{ BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); + analysis->book(); + G4RunManager* pRunManager=G4RunManager::GetRunManager() ; + + + + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + +} + + + + +void BrachyRunAction::EndOfRunAction(const G4Run* aRun) +{ + BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); + + + + + + G4cout << "number of event = " << aRun->GetNumberOfEvent() << G4endl; + + + analysis->finish(); + + + +} + + + + diff --git a/examples/advanced/brachytherapy/src/BrachyVisManager.cc b/examples/advanced/brachytherapy/src/BrachyVisManager.cc new file mode 100644 index 0000000000..f61a70251e --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyVisManager.cc @@ -0,0 +1,132 @@ +#ifdef G4VIS_USE + +#include "BrachyVisManager.hh" + +// Supported drivers... + +#ifdef G4VIS_USE_DAWN +#include "G4FukuiRenderer.hh" +#endif + +#ifdef G4VIS_USE_DAWNFILE +#include "G4DAWNFILE.hh" +#endif + +/*#ifdef G4VIS_USE_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.... + +BrachyVisManager::BrachyVisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void BrachyVisManager::RegisterGraphicsSystems () { + +#ifdef G4VIS_USE_DAWN + RegisterGraphicsSystem (new G4FukuiRenderer); +#endif + +#ifdef G4VIS_USE_DAWNFILE + RegisterGraphicsSystem (new G4DAWNFILE); +#endif + /* +#ifdef G4VIS_USE_OPACS + RegisterGraphicsSystem (new G4Wo); + RegisterGraphicsSystem (new G4Xo); +#endif + +#ifdef G4VIS_USE_OPENGLX + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + +#ifdef G4VIS_USE_OPENGLXM + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); +#endif + +#ifdef G4VIS_USE_OIX + RegisterGraphicsSystem (new G4OpenInventorX); +#endif + +#ifdef G4VIS_USE_OIWIN32 + RegisterGraphicsSystem (new G4OpenInventorWin32); +#endif + +#ifdef G4VIS_USE_VRML + RegisterGraphicsSystem (new G4VRML1); + RegisterGraphicsSystem (new G4VRML2); +#endif + +#ifdef G4VIS_USE_VRMLFILE + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); +#endif + +#ifdef G4VIS_USE_RAYTRACER + RegisterGraphicsSystem (new G4RayTracer); +#endif + + if (fVerbose > 0) { + G4cout << + "\nYou have successfully chosen to use the following graphics systems." + << G4endl; + PrintAvailableGraphicsSystems (); + } + */ +} + +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + + + diff --git a/examples/advanced/brachytherapy/src/BrachyWaterBoxROGeometry.cc b/examples/advanced/brachytherapy/src/BrachyWaterBoxROGeometry.cc deleted file mode 100644 index ed9e83d288..0000000000 --- a/examples/advanced/brachytherapy/src/BrachyWaterBoxROGeometry.cc +++ /dev/null @@ -1,116 +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. * -// ******************************************************************** -// -// ************************************ -// * * -// * BrachyWaterBoxROGeometry.cc * -// * * -// ************************************ - -#include "BrachyWaterBoxROGeometry.hh" -#include "BrachyDummySD.hh" - -#include "G4LogicalVolume.hh" -#include "G4VPhysicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" -#include "G4SDManager.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4SubtractionSolid.hh" -#include "G4ThreeVector.hh" -#include "G4Material.hh" - -//.... - -BrachyWaterBoxROGeometry::BrachyWaterBoxROGeometry(G4String aString,G4double DetDimX,G4double DetDimZ,G4int NumVoxelX,G4int NumVoxelZ) -: G4VReadOutGeometry(aString),m_DetDimX(DetDimX),m_DetDimZ(DetDimZ),m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) -{ -} - -//.... - -BrachyWaterBoxROGeometry::~BrachyWaterBoxROGeometry() -{ -} - -//.... - -G4VPhysicalVolume* BrachyWaterBoxROGeometry::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); - - // 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 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 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; - - 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); - - // 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); - -// ...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; -} - - - diff --git a/examples/advanced/brachytherapy/src/BrachyWaterBoxSD.cc b/examples/advanced/brachytherapy/src/BrachyWaterBoxSD.cc deleted file mode 100644 index 054cf10c83..0000000000 --- a/examples/advanced/brachytherapy/src/BrachyWaterBoxSD.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// ******************************** -// * * -// * BrachyWaterBoxSD.cc * -// * * -// ******************************** - -#include "BrachyWaterBoxSD.hh" -#include "BrachyWaterBoxHit.hh" -#include "BrachyDetectorConstruction.hh" - -#include "G4Track.hh" -#include "G4LogicalVolume.hh" -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" -#include "G4ParticleDefinition.hh" - -//.... - -BrachyWaterBoxSD::BrachyWaterBoxSD(G4String name, G4int NumVoxelX, G4int NumVoxelZ) - :G4VSensitiveDetector(name),m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) -{ - G4String HCname; - collectionName.insert(HCname="WaterBoxHitsCollection"); - m_pVoxelID = new G4int[NumVoxelX*NumVoxelZ]; - m_pWaterBoxHitsCollection = NULL; -} - -//.... - -BrachyWaterBoxSD::~BrachyWaterBoxSD() -{ - delete[] m_pVoxelID; -} - -//.... - -void BrachyWaterBoxSD::Initialize(G4HCofThisEvent*HCE) -{ - m_pWaterBoxHitsCollection = new BrachyWaterBoxHitsCollection(SensitiveDetectorName,collectionName[0]); - - for(G4int k=0;kGetPreStepPoint()->GetPhysicalVolume()->GetName() != "WaterBoxPhys") - return false; - - G4double edep = aStep->GetTotalEnergyDeposit(); - if(edep==0.) - return false; - - 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) - { - BrachyWaterBoxHit* WaterBoxHit = new BrachyWaterBoxHit(physVol->GetLogicalVolume(),i,k); - - G4RotationMatrix rotM; - if(physVol->GetObjectRotation()) - rotM = *(physVol->GetObjectRotation()); - - WaterBoxHit->SetEdep(edep); - WaterBoxHit->SetPos(physVol->GetTranslation()); - WaterBoxHit->SetRot(rotM); - - G4int VoxelID = m_pWaterBoxHitsCollection->insert(WaterBoxHit); - m_pVoxelID[i+k*m_NumVoxelX] = VoxelID - 1; - } - else - (*m_pWaterBoxHitsCollection)[m_pVoxelID[i+k*m_NumVoxelX]]->AddEdep(edep); - - return true; -} - -//.... - -void BrachyWaterBoxSD::EndOfEvent(G4HCofThisEvent*HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { - HCID = GetCollectionID(0); - } - HCE->AddHitsCollection(HCID,m_pWaterBoxHitsCollection); -} - -//.... - -void BrachyWaterBoxSD::clear() -{ -} - -//.... - -void BrachyWaterBoxSD::DrawAll() -{ -} - -//.... - -void BrachyWaterBoxSD::PrintAll() -{ -} diff --git a/examples/advanced/gammaray_telescope/GNUmakefile b/examples/advanced/gammaray_telescope/GNUmakefile index 2d1dfd8d6c..ad2b698e2c 100644 --- a/examples/advanced/gammaray_telescope/GNUmakefile +++ b/examples/advanced/gammaray_telescope/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.17 2001/12/10 08:52:09 gcosmo Exp $ +# $Id: GNUmakefile,v 1.19 2002/06/18 18:45:39 griccard Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -13,23 +13,14 @@ endif include $(G4INSTALL)/config/architecture.gmk -# Copy the GammaRayTelAnalysis 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/GammaRayTelAnalysis.hh-AIDA include/GammaRayTelAnalysis.hh ) - FOO := $(shell cp -p src/GammaRayTelAnalysis.cc-AIDA src/GammaRayTelAnalysis.cc ) -else -# Anaphe selected - include anaphe.gmk - FOO := $(shell cp -p include/GammaRayTelAnalysis.hh-Anaphe include/GammaRayTelAnalysis.hh ) - FOO := $(shell cp -p src/GammaRayTelAnalysis.cc-Anaphe src/GammaRayTelAnalysis.cc ) +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` endif -# End Analysis. +ifdef G4ANALYSIS_USE_NTUPLE + CPPFLAGS += -DG4ANALYSIS_USE_NTUPLE +endif .PHONY: all all: lib bin diff --git a/examples/advanced/gammaray_telescope/GammaRayTel.cc b/examples/advanced/gammaray_telescope/GammaRayTel.cc index 3a57c4b956..2bd1aaf46b 100644 --- a/examples/advanced/gammaray_telescope/GammaRayTel.cc +++ b/examples/advanced/gammaray_telescope/GammaRayTel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTel.cc,v 1.8 2001/12/04 11:40:27 flongo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: GammaRayTel.cc,v 1.9 2002/06/18 18:45:39 griccard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -60,8 +60,6 @@ #include "GammaRayTelAnalysis.hh" #endif -//using namespace Lizard; - /* This global file is used to store relevant data for analysis with external tools */ diff --git a/examples/advanced/gammaray_telescope/README b/examples/advanced/gammaray_telescope/README index 99c19e8c3f..a4a785b795 100644 --- a/examples/advanced/gammaray_telescope/README +++ b/examples/advanced/gammaray_telescope/README @@ -1,4 +1,4 @@ -$Id: README,v 1.11 2001/12/07 12:57:30 pfeiffer Exp $ +$Id: README,v 1.16 2002/06/18 21:15:13 griccard Exp $ ------------------------------------------------------------------- ========================================================= @@ -79,34 +79,21 @@ The main features of this example are set the following variables setenv G4ANALYSIS_USE 1 # Use the analysis tools + setenv G4ANALYSIS_USE_NTUPLE 1 # Use the ntuple - To be sure to have the right compilation and link flags, the - 'aida-config' command, provided by an AIDA compliant implementation - must be up and running ; in particular 'aida-config --cflags' and - 'aida-config --libs' must be active. - - - Set up for analysis using Anaphe/Lizard - - To compile the GammaRayTel example with the analysis tools activated, - set the following variables - - setenv G4ANALYSIS_USE 1 # Use the analysis tools - setenv G4ANALYSIS_USE_NTUPLE 1 # To store Ntuples - - (IMPORTANT: Do not set G4UI_USE_XM when using Ntuples!) - - and be sure to have the right path to the Lizard library, inserting this - on the .tcshrc: + and be sure to have the right path to the Anaphe library (or to another AIDA + compliant implementation), inserting this on the .tcshrc: (on a CERN machine with the gcc-2.95 compiler) - - 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 + + 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/3.6.5-sec/bin - source /afs/cern.ch/sw/lhcxx/share/LHCXX/3.6.5-sec/install/sharedstart.csh + 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 + 2. Sample run @@ -130,17 +117,6 @@ The main features of this example are your local G4 installation (see geant4/source/visualization/README for more information). - - ATTENTION: - If you use analysis with Lizard, you have to remove any hbook file in the - example directory obtained in previous Geant4 sessions. This issues will be - solved in future releases. Note also that the following error can be reported - during run with analysis activated - - ***** ERROR in HLNEXT : Bad sequence for RZ : ID= 1 - - Ignore this message; histograms (and ntuples) are correctly saved in the hbook files. - 3. Detector description ----------------------- @@ -202,26 +178,33 @@ The main features of this example are 8. 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. + The analysis part of GammaRayTel is based on the AIDA interfaces and their + implementation in Anaphe; please look at their documentation for more details. + Keep in mind that the actual implementation of the analysis tools in GammaRayTel + is of a pedagogical nature, so we kept it as simple as possible. + Further improvements will follow in future releases. The actual analysis produces + some histograms (see next section) and an ntuple. Both the histograms and + the ntuple are saved at the end of the run in the file "gammaraytel.hbook". You + can than analyze offline the contents of such a file; the GammaRayTel contains + also a very simple python script that can be used with Lizard to plot the + histograms See the Lizard documentation on how to access the ntuple. + 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 Lizard (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. The 2D histograms contain the hits positions on the TKR projected on + 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. + + 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 that this histograms have been chosen more + the X planes of the TKR (note again that this histograms have been chosen more for pedagogical motivation than for physical one). These histograms are filled and updated at every event and are initialized diff --git a/examples/advanced/gammaray_telescope/anaphe.gmk b/examples/advanced/gammaray_telescope/anaphe.gmk deleted file mode 100644 index 6efb7de56b..0000000000 --- a/examples/advanced/gammaray_telescope/anaphe.gmk +++ /dev/null @@ -1,38 +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 -# - -ifdef G4ANALYSIS_USE - - 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 - - - -endif diff --git a/examples/advanced/gammaray_telescope/gammaraytel.py b/examples/advanced/gammaray_telescope/gammaraytel.py index 4686582b9a..6ab5a0ae25 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.py +++ b/examples/advanced/gammaray_telescope/gammaraytel.py @@ -1,26 +1,28 @@ -# tell HistoManager where to find the histograms: -# change the name to access hbook files different from the first run -hm.selectStore("gammaraytel0.hbook") +global tree, hm -# ... and load them into memory: -hE = hm.load1D(1) -hPl = hm.load1D(2) -hXZ = hm.load2D(3) -hYZ = hm.load2D(4) +# 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) + +# Retrieve histograms and load them into memory: +hE = tree.findH1D("10") +hPl = tree.findH1D("20") +hXZ = tree.findH2D("30") +hYZ = tree.findH2D("40") + +# set plotter to 2*2 zones +pl.createRegions(2,2) -# set plotter to 3*2 zones -pl.zone(2,2) # ... and plot the histograms -hplot(hE) -hplot(hPl) -hplot(hXZ) -hplot(hYZ) +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") -# get the primary ntuple from the NtupleManager -nt1 = ntm.findNtuple("gammaraytel0.hbook::1" ) - -# see which attributes there are: -nt1.listAttributes() diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh-AIDA b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh similarity index 97% rename from examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh-AIDA rename to examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh index 86f089b481..70e8eafc11 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh-AIDA +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelAnalysis.hh-AIDA,v 1.3 2001/12/07 13:20:20 pfeiffer Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: GammaRayTelAnalysis.hh,v 1.11 2002/06/18 18:47:14 griccard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh-Anaphe b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh-Anaphe deleted file mode 100644 index 2d6370d128..0000000000 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh-Anaphe +++ /dev/null @@ -1,175 +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. * -// ******************************************************************** -// -// Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) -// (copy of his UserAnalyser class) -// -// History: -// ----------- -// 7 Nov 2001 MGP Implemented according to A. Pfeiffer's instructions -// 18 Nov 2001 G.Santin GammaRayTel analysis management modified -// according to the new design -// -// ------------------------------------------------------------------- -// Class description: -// Example of analysis in a simulation application (histograms, ntuples etc.) -// This class follows the singleton design pattern; -// it is responsible for the analysis management and algorithms -// Histograms are compliant with AIDA, except for the usage of IHistoManager, -// which is Anaphe/Lizard-specific -// For ntuples, for which the AIDA interfaces and compliant implementations -// are still in progress at the time of the current Geant4 release, -// an implementation with Anaphe/Lizard is shown -// Other implementations specific to an analysis system are possible too -// (see, for instance, JAS and OpenScientist documentation from the links -// in http://aida.freehep.org/) -// The implementation of the usage of ntuples shown in this example -// is expected to change in future Geant4 releases, when AIDA interfaces -// and related implementations would be available -// Further documentation is available from: http://www.ge.infn.it/geant4/lowE/ -// http://aida.freehep.org/ -// http://cern.ch/anaphe/ - -// ------------------------------------------------------------------- -#ifdef G4ANALYSIS_USE - -#ifndef GammaRayTelAnalysis_h -#define GammaRayTelAnalysis_h - -#include "globals.hh" - -// Histogramming from AIDA -#include "Interfaces/IHistogram1D.h" -#include "Interfaces/IHistogram2D.h" - -// Histogramming from Anaphe -#include "Interfaces/IHistoManager.h" - -// Vectors from ? -#include "Interfaces/IVector.h" -#include "Interfaces/IVectorFactory.h" - -// Plotting from Anaphe? -#include "Interfaces/IPlotter.h" -//#include "AIDA_Plotter/AIDAPlotter.h" - -// Ntuples from Anaphe - -#ifdef G4ANALYSIS_USE_NTUPLE - -#include "NtupleTag/LizardNTupleFactory.h" -#include "NtupleTag/LizardQuantity.h" -#include "NtupleTag/LizardNTuple.h" - -//using namespace Lizard; - -#endif - -class G4Track; -class GammaRayTelAnalysisMessenger; -class GammaRayTelDetectorConstruction; - -class GammaRayTelAnalysis -{ -public: - - ~GammaRayTelAnalysis(); - - void BeginOfRun(G4int n); - void EndOfRun(G4int n); - void EndOfEvent(G4int flag); - - void Init(); - void Finish(); - - void SetHisto1DDraw(G4String str) {histo1DDraw = str;}; - void SetHisto1DSave(G4String str) {histo1DSave = str;}; - void SetHisto2DDraw(G4String str) {histo2DDraw = str;}; - void SetHisto2DSave(G4String str) {histo2DSave = str;}; - void SetHisto2DMode(G4String str) {histo2DMode = str;}; - G4String GetHisto2DMode() {return histo2DMode;}; - - void InsertPositionXZ(double x, double z); - void InsertPositionYZ(double y, double z); - void InsertEnergy(double en); - void InsertHits(int nplane); - -#ifdef G4ANALYSIS_USE_NTUPLE - void setNtuple(float E, float p, float x, float y, float z); -#endif - - static GammaRayTelAnalysis* getInstance(); - -private: - - GammaRayTelAnalysis(); - - void plot1D(IHistogram1D* histo); - void plot2D(IHistogram2D* histo); - void Plot(); - - static GammaRayTelAnalysis* instance; - - IHistoManager* histoManager; - IVectorFactory* vectorFactory; - IPlotter* plotter; - -#ifdef G4ANALYSIS_USE_NTUPLE - - // ---- NOTE ---- - // Histograms are compliant to AIDA interfaces, ntuples are Lizard specific - - Lizard::NTuple* ntuple; - Lizard::NTupleFactory* ntFactory; - - // Quantities for the ntuple - Lizard::Quantity ntEnergy; - Lizard::Quantity ntPlane; - Lizard::Quantity ntX; - Lizard::Quantity ntY; - Lizard::Quantity ntZ; - -#endif - - - GammaRayTelDetectorConstruction* GammaRayTelDetector; - - G4String histo1DDraw; - G4String histo1DSave; - G4String histo2DDraw; - G4String histo2DSave; - G4String histo2DMode; - - GammaRayTelAnalysisMessenger* analysisMessenger; - -}; - -#endif -#endif - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh index 54b06b1cbd..430d828e0a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh index 1916e6926e..1e552c50dc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh index b1c2f74138..396f498685 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh index 34ec1eda17..84122f12e0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh index 43e3b6c924..c179aba834 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh index bfce9b4702..d87f3cd1d2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh index 3731150838..bfd327ea35 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh index 297dbdd967..f7e939eede 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh index dc7e28f7ad..8f10fe20b6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh index 3d45aa4e57..27fbe46506 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh index 0b9d510282..b891663651 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 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 78acbcac43..d9698aaea8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 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 3ce061c8d3..e45a7f8aa3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 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 d16ce02f89..19e54fe656 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh index dbac35a765..acab6d5fbb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh index 273de492eb..f4e6e970d4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh index 77cc567219..e313db5ed7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh index 496b314c77..f287efe444 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh index 8994870c7a..b08fa948a7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 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 f75eadf458..6f301ee464 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc-AIDA b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc similarity index 83% rename from examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc-AIDA rename to examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc index 49c5e12ca4..9c5cab66ef 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc-AIDA +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelAnalysis.cc-AIDA,v 1.3 2001/12/07 13:20:20 pfeiffer Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: GammaRayTelAnalysis.cc,v 1.14 2002/06/18 21:15:13 griccard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -31,6 +31,9 @@ // ------------ GammaRayAnalysisManager ------ // by R.Giannitrapani, F.Longo & G.Santin (03 dic 2000) // +// 18.06.2002 R.Giannitrapani, F.Longo & G.Santin +// - new release for Anaphe 4.0.3 +// // 07.12.2001 A.Pfeiffer // - integrated Guy's addition of the ntuple // @@ -60,6 +63,7 @@ #include #include #include +#include #endif GammaRayTelAnalysis* GammaRayTelAnalysis::instance = 0; @@ -87,10 +91,22 @@ GammaRayTelAnalysis::GammaRayTelAnalysis(int argc,char** argv) ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); if(treeFactory) { // Tree in memory : - //tree = treeFactory->create(); - // Create a "tree" associated to a ROOT "store" (in RECREATE mode). - tree = treeFactory->create("GammaRayTel.root",false,false,"ROOT"); + // Create a "tree" associated to an hbook + tree = treeFactory->create("gammaraytel.hbook", false, false,"hbook"); if(tree) { + // Get a tuple factory : + ITupleFactory* tupleFactory = analysisFactory->createTupleFactory(*tree); + if(tupleFactory) { + // Create a tuple : + tuple = tupleFactory->create("tuple","Event info", + "float energy, plane, x, y, z"); + + assert(tuple); + + delete tupleFactory; + } + + IHistogramFactory* histoFactory = analysisFactory->createHistogramFactory(*tree); if(histoFactory) { @@ -104,43 +120,34 @@ 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("1","Energy deposition in the last X plane (keV)", 100, 50, 200); + energy = histoFactory->create1D("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("2","Hits distribution in the TKR X planes",Nplane, 0, Nplane-1); + hits = histoFactory->create1D("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("3","Tracker Hits XZ (strip,plane)", + posXZ = histoFactory->create2D("30","Tracker Hits XZ (strip,plane)", N, 0, N-1, 2*Nplane, 0, Nplane-1); else - posXZ = histoFactory->create2D("3","Tracker Hits XZ (x,z) in mm", + posXZ = histoFactory->create2D("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("4","Tracker Hits YZ (strip,plane)", + posYZ = histoFactory->create2D("40","Tracker Hits YZ (strip,plane)", N, 0, N-1, 2*Nplane, 0, Nplane-1); else - posYZ = histoFactory->create2D("4","Tracker Hits YZ (y,z) in mm", + posYZ = histoFactory->create2D("40","Tracker Hits YZ (y,z) in mm", sizexy/5, -sizexy/2, sizexy/2, sizez/5, -sizez/2, sizez/2); delete histoFactory; } - - // Get a tuple factory : - ITupleFactory* tupleFactory = analysisFactory->createTupleFactory(*tree); - if(tupleFactory) { - // Create a tuple : - tuple = tupleFactory->create("tuple","tuple", - "energy plane x y z"); - delete tupleFactory; - } } delete treeFactory; // Will not delete the ITree. } @@ -159,6 +166,7 @@ GammaRayTelAnalysis::GammaRayTelAnalysis(int argc,char** argv) } + #endif } @@ -177,9 +185,11 @@ void GammaRayTelAnalysis::Init() void GammaRayTelAnalysis::Finish() { #ifdef G4ANALYSIS_USE + delete tree; delete plotter; delete analysisFactory; // Will delete tree and histos. delete analysisMessenger; + analysisMessenger = 0; #endif } @@ -230,13 +240,14 @@ void GammaRayTelAnalysis::InsertHits(int nplane) void GammaRayTelAnalysis::setNtuple(float E, float p, float x, float y, float z) { #ifdef G4ANALYSIS_USE - if(tuple) { - tuple->fill(0,E); - tuple->fill(1,p); - tuple->fill(2,x); - tuple->fill(3,y); - tuple->fill(4,z); - tuple->addRow(); + ITuple * ntuple = dynamic_cast ( tree->find("tuple") ); + if(ntuple) { + ntuple->fill(tuple->findColumn("energy"),E); + ntuple->fill(tuple->findColumn("plane"),p); + ntuple->fill(tuple->findColumn("x"),x); + ntuple->fill(tuple->findColumn("y"),y); + ntuple->fill(tuple->findColumn("z"),z); + ntuple->addRow(); } #endif } @@ -250,41 +261,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(); - - // 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) { - if((histo2DDraw == "enable") && (histo1DDraw == "enable")) { - plotter->createRegions(2,2); - plotter->plot(*posXZ); - plotter->next(); - plotter->plot(*posYZ); - plotter->next(); - plotter->plot(*energy); - plotter->next(); - plotter->plot(*hits); - } else if((histo1DDraw == "enable") && (histo2DDraw != "enable")) { - plotter->createRegions(1,2); - plotter->plot(*energy); - plotter->next(); - plotter->plot(*hits); - } else if((histo1DDraw != "enable") && (histo2DDraw == "enable")) { - plotter->createRegions(1,2); - plotter->plot(*posXZ); - plotter->next(); - plotter->plot(*posYZ); - } else { // Nothing to plot. - plotter->createRegions(1,1); - } - plotter->refresh(); - } + */ #endif } @@ -298,35 +281,43 @@ void GammaRayTelAnalysis::EndOfRun(G4int n) #ifdef G4ANALYSIS_USE if(tree) tree->commit(); + if(plotter) { // We set one single region for the plotter - plotter->createRegions(1,1); - // 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->write(name,"PS"); + plotter->refresh(); + plotter->write(name,"ps"); + plotter->createRegions(1,1); sprintf(name,"posyz_%d.ps", n); - plotter->clearRegion(); plotter->plot(*posYZ); - plotter->write(name,"PS"); + plotter->refresh(); + plotter->write(name,"ps"); } if(histo1DSave == "enable") { + plotter->createRegions(1,1); char name[15]; sprintf(name,"energy_%d.ps", n); plotter->plot(*energy); - plotter->write(name,"PS"); - + plotter->refresh(); + plotter->write(name,"ps"); + + plotter->createRegions(1,1); sprintf(name,"hits_%d.ps", n); plotter->clearRegion(); plotter->plot(*hits); - plotter->write(name,"PS"); + plotter->refresh(); + plotter->write(name,"ps"); } + } + #endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -338,7 +329,53 @@ void GammaRayTelAnalysis::EndOfEvent(G4int flag) // hits in the event if(!flag) return; #ifdef G4ANALYSIS_USE - if(plotter) plotter->refresh(); + // 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) { + 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(); + + } else if((histo1DDraw == "enable") && (histo2DDraw != "enable")) { + plotter->createRegions(1,2); + plotter->plot(*energy); + plotter->show(); + plotter->next(); + plotter->plot(*hits); + } else if((histo1DDraw != "enable") && (histo2DDraw == "enable")) { + plotter->createRegions(1,2); + plotter->plot(*posXZ); + plotter->show(); + plotter->next(); + plotter->plot(*posYZ); + } else { // Nothing to plot. + plotter->createRegions(1,1); + } + plotter->refresh(); + } + + #endif } + + + + + + + diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc-Anaphe b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc-Anaphe deleted file mode 100644 index 10261334d2..0000000000 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc-Anaphe +++ /dev/null @@ -1,405 +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. * -// ******************************************************************** -// -// Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) -// (copied from his UserAnalyser class) -// -// History: -// ----------- -// 7 Nov 2001 MGP Implementation -// 03 dic 2000 AnalysisManager by R.Giannitrapani, F.Longo & G.Santin -// 18 Nov 2001 G.Santin GammaRayTel analysis management modified -// according to the new design -// -// ------------------------------------------------------------------- -#ifdef G4ANALYSIS_USE - -#include "GammaRayTelAnalysis.hh" -#include "GammaRayTelAnalysisMessenger.hh" -#include "globals.hh" -#include "G4RunManager.hh" -#include "G4Track.hh" -#include "G4SteppingManager.hh" -#include "G4ThreeVector.hh" -#include "GammaRayTelDetectorConstruction.hh" - -//using namespace Lizard; - -GammaRayTelAnalysis* GammaRayTelAnalysis::instance = 0; - -GammaRayTelAnalysis::GammaRayTelAnalysis() : - histoManager(0), vectorFactory(0),plotter(0), - histo1DDraw("enable"),histo1DSave("enable"),histo2DDraw("enable"), - histo2DSave("enable"),histo2DMode("strip"), - analysisMessenger(0) -{ -} - -GammaRayTelAnalysis::~GammaRayTelAnalysis() -{ - Finish(); -} - - -void GammaRayTelAnalysis::Init() -{ - G4RunManager* runManager = G4RunManager::GetRunManager(); - GammaRayTelDetector = -(GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction()); - - analysisMessenger = new GammaRayTelAnalysisMessenger(this); - histoManager = createIHistoManager(); - -#ifdef G4ANALYSIS_USE_NTUPLE - ntFactory = Lizard::createNTupleFactory(); -#endif - - vectorFactory = createIVectorFactory(); - - plotter = createIPlotter(); -} - -void GammaRayTelAnalysis::Finish() -{ -#ifdef G4ANALYSIS_USE_NTUPLE - delete ntFactory; - ntFactory = 0; -#endif - - delete histoManager; - histoManager = 0; - - delete vectorFactory; - vectorFactory = 0; - - delete plotter; - plotter = 0; - - delete analysisMessenger; - analysisMessenger = 0; -} - -GammaRayTelAnalysis* GammaRayTelAnalysis::getInstance() -{ - if (instance == 0) instance = new GammaRayTelAnalysis; - return instance; -} - - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// This function fill the 2d histogram of the XZ positions -void GammaRayTelAnalysis::InsertPositionXZ(double x, double z) -{ - IHistogram2D* posXZ = histoManager->retrieveHisto2D("3"); - posXZ->fill(x, z); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// This function fill the 2d histogram of the YZ positions -void GammaRayTelAnalysis::InsertPositionYZ(double y, double z) -{ - IHistogram2D* posYZ = histoManager->retrieveHisto2D("4"); - posYZ->fill(y, z); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// This function fill the 1d histogram of the energy released in the last Si plane -void GammaRayTelAnalysis::InsertEnergy(double en) -{ - IHistogram1D* energy = histoManager->retrieveHisto1D("1"); - energy->fill(en); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// This function fill the 1d histogram of the hits distribution along the TKR planes -void GammaRayTelAnalysis::InsertHits(int nplane) -{ - IHistogram1D* hits = histoManager->retrieveHisto1D("2"); - hits->fill(nplane); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -/* - 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 GammaRayTelAnalysis::BeginOfRun(G4int n) -{ - float sizexy, sizez; - int Nstrip, Nplane, Ntile, N; - char name[30]; - - Init(); - - // Relevant data from the detector to set the histograms dimensions - Nplane = GammaRayTelDetector->GetNbOfTKRLayers(); - Nstrip = GammaRayTelDetector->GetNbOfTKRStrips(); - Ntile = GammaRayTelDetector->GetNbOfTKRTiles(); - sizexy = GammaRayTelDetector->GetTKRSizeXY(); - sizez = GammaRayTelDetector->GetTKRSizeZ(); - N = Nstrip*Ntile; - - if (histoManager) { - sprintf(name,"gammaraytel%d.hbook", n); - histoManager->selectStore(name); - - // Check if deleteHisto is enough, maybe we need to delete the object - histoManager->deleteHisto("1"); - histoManager->create1D("1","Energy deposition in the last X plane (keV)", 100, 50., 200.); - - // 1D histogram that store the hits distribution along the TKR X-planes - histoManager->deleteHisto("2"); - histoManager->create1D("2","Hits distribution in the TKR X planes", - Nplane, 0, Nplane-1); - - // 2D histogram that store the position (mm) of the hits (XZ projection) - histoManager->deleteHisto("3"); - if (histo2DMode == "strip") - histoManager->create2D("3","Tracker Hits XZ (strip,plane)", - N, 0, N-1, - 2*Nplane, 0, Nplane-1); - else - histoManager->create2D("3","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) - histoManager->deleteHisto("4"); - if(histo2DMode=="strip") - histoManager->create2D("4","Tracker Hits YZ (strip,plane)", - N, 0, N-1, - 2*Nplane, 0, Nplane-1); - else - histoManager->create2D("4","Tracker Hits YZ (y,z) in mm", - sizexy/5, -sizexy/2, sizexy/2, - sizez/5, -sizez/2, sizez/2); - } - - IHistogram2D* posXZ = histoManager->retrieveHisto2D("3"); - if (posXZ) - posXZ->reset(); - IHistogram2D* posYZ = histoManager->retrieveHisto2D("4"); - if(posYZ) - posYZ->reset(); - IHistogram1D* energy = histoManager->retrieveHisto1D("1"); - if(energy) - energy->reset(); - IHistogram1D* hits = histoManager->retrieveHisto1D("2"); - if(hits) - hits->reset(); - - // We divide the plotter in the right nuber of zone depending - // on which histograms the user want to draw - if((histo2DDraw == "enable") && (histo1DDraw == "enable")) - plotter->zone(2,2,0,0); - else if((histo1DDraw == "enable") || (histo2DDraw == "enable")) - plotter->zone(1,2,0,0); - else - plotter->zone(1,1,0,0); - - -#ifdef G4ANALYSIS_USE_NTUPLE - - // Book ntuples - sprintf(name,"gammaraytel%d.hbook::1", n); - ntuple = ntFactory->createC(name); - - // Add and bind the attributes to the ntuple - if ( !( ntuple->addAndBind( "energy", ntEnergy) && - ntuple->addAndBind( "plane" , ntPlane) && - ntuple->addAndBind( "x" , ntX ) && - ntuple->addAndBind( "y" , ntY ) && - ntuple->addAndBind( "z" , ntZ ) ) ) { - delete ntuple; - G4Exception(" GammaRayTelAnalysis::BeginOfRun - Could not addAndBind ntuple"); - } -#endif - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -/* - This member is called at the end of each run -*/ -void GammaRayTelAnalysis::EndOfRun(G4int n) -{ - // This variable contains the names of the PS files - char name[15]; - // We define some vectors - IVector* vxz = 0; - IVector* vyz = 0; - IVector* ve = 0; - IVector* vhit = 0; - - - // Temporary we set one single zone for the plotter - plotter->zone(1,1,0,0); - - // We now print the histograms, each one in a separate file - if(histo2DSave == "enable") { - IHistogram2D* posXZ = histoManager->retrieveHisto2D("3"); - IHistogram2D* posYZ = histoManager->retrieveHisto2D("4"); - plot2D(posXZ); - sprintf(name,"posxz_%d.ps", n); - plotter->psPrint(name); - - plot2D(posYZ); - sprintf(name,"posyz_%d.ps", n); - plotter->psPrint(name); - } - - if(histo1DSave == "enable") { - IHistogram1D* energy = histoManager->retrieveHisto1D("1"); - IHistogram1D* hits = histoManager->retrieveHisto1D("2"); - - plot1D(energy); - sprintf(name,"energy_%d.ps", n); - plotter->psPrint(name); - - plot1D(hits); - sprintf(name,"hits_%d.ps", n); - plotter->psPrint(name); - } - - delete vxz; - delete vyz; - delete ve; - delete vhit; - - // Store histograms - - // Because of a Lizard feature, ntuples must be deleted at this stage, - // not in the destructor (otherwise the ntuples are not stored) - - // In version 3.6.4 of Anaphe, no licence, storing other histograms after - // having stored a 2D one generates an error message "ERROR in HLNEXT" - // Histograms are stored correctly, in spite of the error message - // The same error message is issued if attempting to store 1D or 2D - // histograms after deleting a ntuple - - histoManager->store("1"); - histoManager->store("3"); - histoManager->store("2"); - histoManager->store("4"); - -#ifdef G4ANALYSIS_USE_NTUPLE - delete ntuple; - ntuple = 0; - G4cout << "Deleted ntuple" << G4endl; -#endif -// close files for this run - if (histoManager != 0) Finish(); - -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -/* This member is called at the end of every event */ -void GammaRayTelAnalysis::EndOfEvent(G4int flag) -{ - // The histograms are updated only if there is some - // hits in the event - if(flag) Plot(); -} - - -void GammaRayTelAnalysis::Plot() -{ - // In a normal case we use the following line to use the standard plot - // analysisSystem->Plot(histo); - - // We define some vectors - IVector* vxz = 0; - IVector* vyz = 0; - IVector* ve = 0; - IVector* vhit= 0; - - // We fill them with the histograms and - // draw them - if(histo2DDraw == "enable") - { - IHistogram2D* posXZ = histoManager->retrieveHisto2D("3"); - IHistogram2D* posYZ = histoManager->retrieveHisto2D("4"); - plot2D(posXZ); - plot2D(posYZ); - plotter->refresh(); - } - - if(histo1DDraw == "enable") - { - IHistogram1D* energy = histoManager->retrieveHisto1D("1"); - IHistogram1D* hits = histoManager->retrieveHisto1D("2"); - plot1D(energy); - plot1D(hits); - plotter->refresh(); - } - - delete vxz; - delete vyz; - delete ve; - delete vhit; -} - -void GammaRayTelAnalysis::plot1D(IHistogram1D* histo) -{ - IVector* v = vectorFactory->from1D(histo); - plotter->plot(v,0); - plotter->refresh(); - delete v; -} - -void GammaRayTelAnalysis::plot2D(IHistogram2D* histo) -{ - IVector* v = vectorFactory->from2D(histo); - plotter->plot(v,0); - plotter->refresh(); - delete v; -} - -#ifdef G4ANALYSIS_USE_NTUPLE -void GammaRayTelAnalysis::setNtuple(float E, float p, float x, float y, float z) -{ - ntEnergy = E; - ntPlane = p; - ntX = x; - ntY = y; - ntZ = z; - - ntuple->addRow(); -} -#endif - - -#endif - - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc index 59d650e41d..f5ab582883 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnalysisMessenger.cc,v 1.5 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc index ead7f590e4..e437c51730 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc index 831b0c7ffe..21c0a8e797 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc index 722a635918..770a0a920a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc index 903345dd6e..092e55e791 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc index 0fe60f3580..7bb855556b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 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 24110156af..25483e7aee 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorMessenger.cc,v 1.4 2001/07/11 09:56:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc index ebe1062a5c..22e1d33f39 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc index b8620badbd..f3642d778c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc index 172be5b517..2fe9906d4d 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizerMessenger.cc,v 1.1 2001/11/29 09:34:17 flongo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc index 0e27ba5584..7d3c48e97a 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.13 2001/12/04 13:23:52 flongo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: GammaRayTelEventAction.cc,v 1.14 2002/06/18 18:45:42 griccard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -186,7 +186,6 @@ void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt) } #ifdef G4ANALYSIS_USE_NTUPLE - analysis->setNtuple( ESil/keV, NPlane, (*THC)[i]->GetPos().x()/mm, (*THC)[i]->GetPos().y()/mm, (*THC)[i]->GetPos().z()/mm); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc index 42152f6199..a9d6affb06 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 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 45db4e85dd..0ebac2c9a9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 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 3848b8f070..0ae2f78c54 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.3 2001/07/11 09:56:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc index 4012efa6f9..269322ae1f 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelRunAction.cc,v 1.7 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc index c3002ccf5a..a3626e7777 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc index 1d24ce2f1a..e838692124 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc index 2e83edd027..d448aede9d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc index cdb91f6701..0e114c784a 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc @@ -23,7 +23,7 @@ // // $Id: GammaRayTelVisManager.cc,v 1.6 2001/11/23 17:39:04 santin Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/underground_physics/DMX.cc b/examples/advanced/underground_physics/DMX.cc index f0dfa905af..6aeb4522fd 100644 --- a/examples/advanced/underground_physics/DMX.cc +++ b/examples/advanced/underground_physics/DMX.cc @@ -95,11 +95,34 @@ int main(int argc,char** argv) { G4VisManager* visManager = new DMXVisManager; visManager->Initialize(); #endif + + // output environment variables: +#ifdef G4ANALYSIS_USE + G4cout << G4endl << G4endl << G4endl + << " User Environment " << G4endl + << " Using AIDA 2.2 analysis " << G4endl; +#else + G4cout << G4endl << G4endl << G4endl + << " User Environment " << G4endl + << " G4ANALYSIS_USE environment variable not set, NO ANALYSIS " + << G4endl; +#endif + +#ifdef DMXENV_GPS_USE + G4cout << " Using GPS and not DMX gun " << G4endl; +#else + G4cout << " Using the DMX gun " << G4endl; +#endif // set user action classes - runManager->SetUserAction(new DMXPrimaryGeneratorAction); - runManager->SetUserAction(new DMXRunAction); - DMXEventAction* eventAction = new DMXEventAction; + DMXPrimaryGeneratorAction* DMXGenerator = new DMXPrimaryGeneratorAction; + runManager->SetUserAction(DMXGenerator); + // runManager->SetUserAction(new DMXPrimaryGeneratorAction); + // RunAction is inherited by EventAction for output filenames - will all + // change when implement proper analysis manager? + DMXRunAction* DMXRun = new DMXRunAction; + runManager->SetUserAction(DMXRun); + DMXEventAction* eventAction = new DMXEventAction(DMXRun,DMXGenerator); runManager->SetUserAction(eventAction); // eventAction is inherited by SteppingAction in order to switch colour // flag: diff --git a/examples/advanced/underground_physics/DMX.py b/examples/advanced/underground_physics/DMX.py new file mode 100644 index 0000000000..07a4e87526 --- /dev/null +++ b/examples/advanced/underground_physics/DMX.py @@ -0,0 +1,67 @@ +global tree, hf + +tree = tf.create("gamma_2000.his",1,1,"hbook") +tree.thisown=1 +hf = af.createHistogramFactory(tree) + +# ... and load them into memory: +hEsource = tree.findH1D("10") +hDeposit = tree.findH1D("20") +hNuclearDep = tree.findH1D("30") +hNumberPhLow = tree.findH1D("40") +hNumberPhHigh = tree.findH1D("50") +hPhArrivalTime = tree.findH1D("60") + +# set plotter to 3*2 zones +pl.createRegions(3,2) + +# ... and plot the histograms +pl.plot(hEsource ) ; pl.show() ; pl.next() +pl.plot(hDeposit ) ; pl.show() ; pl.next() +pl.plot(hNuclearDep ) ; pl.show() ; pl.next() +pl.plot(hNumberPhLow ) ; pl.show() ; pl.next() +pl.plot(hNumberPhHigh ) ; pl.show() ; pl.next() +pl.plot(hPhArrivalTime) ; pl.show() ; pl.next() + +wait() + +# reset number of zones +pl.createRegions(2,1) + +# helper function +def nplot(tup, col, cut, xmin, xmax, nbins=100): + global hf + h1 = hf.create1D("1000000","temp hist", nbins, xmin, xmax) + colId = tup.findColumn(col) + bNextRow=tup.start() # Looping over the tuple entries + while bNextRow: + h1.fill(tup.getFloat(colId)) + bNextRow=tup.next() # Retrieving the subsequent row + pl.plot(h1) ; pl.show() ; pl.next() + tree.rm("1000000") + return + +# get the primary ntuple from the NtupleManager +nt1 = tree.findTuple("3" ) + +# plot a few quantities using the shortcut +nplot(nt1,"tot_e" ,"",0.,20.) +nplot(nt1,"xe_time","",0.,100.) + +# prompt user for +wait() + +# get the secondaries ntuple and plot a few attributes from it +nt2 = tree.findTuple("2" ) +nplot(nt2, "xpos", "", 0., 50) +nplot(nt2, "zpos", "", 0., 100.) + +pl.write("pmtpos.ps", "ps") + +tree.commit() +tree.close() +del tree + + + + diff --git a/examples/advanced/underground_physics/GNUmakefile b/examples/advanced/underground_physics/GNUmakefile index bcbaf2a52b..327e25e41d 100644 --- a/examples/advanced/underground_physics/GNUmakefile +++ b/examples/advanced/underground_physics/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2001/11/29 19:59:12 ahoward Exp $ +# $Id: GNUmakefile,v 1.7 2002/06/18 15:57:42 ahoward Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -11,6 +11,22 @@ ifndef G4INSTALL G4INSTALL = ../../.. endif +ifdef DMXENV_GPS_USE + CPPFLAGS += -DDMXENV_GPS_USE +endif + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + + +include $(G4INSTALL)/config/architecture.gmk + +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` +endif + .PHONY: all all: lib bin diff --git a/examples/advanced/underground_physics/README b/examples/advanced/underground_physics/README index e45bcc1135..3256e78254 100644 --- a/examples/advanced/underground_physics/README +++ b/examples/advanced/underground_physics/README @@ -1,6 +1,25 @@ ------------------------------Advanced Example--------------------------------- README FILE +NB: The documentation for this example is in the process of being updated. +Please go to http://www.ge.infn.it/geant4/examples/ for the most up-to-date +description, manual, design documentation and users requirement/traceability. + +JUNE 2002: +The underground physics example has been updated since the December Geant4.0 +release to include: 1) Analysis, using AIDA 2.2 and tested against Anaphe 4.0 + 2) Full lab geometry - important for neutron scattering + 3) Updated macros/messengers + 4) Correction of a few minor features + +The messengers can be seen from typing help within the UI. +Additional file handling and time/energy cut messengers have been implemented. + +(1) and (2) are discussed more fully below + +Note: Due to the importation of data files during the initialisation stage of +Geant4, load-time may be in excess of 5 minutes. + UNDERGROUND PHYSICS An example of a underground dark matter experiment. @@ -17,11 +36,19 @@ future off-line analysis. Geometry: Experimental set-up: -A "cavern" of dimensions 5m x 6m x 3m with concrete walls is defined -as the World Volume. In the centre of the cavern a steel vacuum -vessel containing liquid and gaseous xenon is placed. The internal -construction of the vessel accurately reproduces an existing prototype -Dark Matter detector which allows experimental comparison. The active + G4double worldWidth = 470.0*cm + 2.*wallThick; // "x" + G4double worldLength = 690.0*cm + 2.*wallThick; // "y" + G4double worldHeight = 280.0*cm + 2.*wallThick; // "z" + + + +A "cavern" of dimensions 5.18m x 7.38m x 3.28m with concrete walls is defined +as the World Volume. A laboratory geometry is incorporated included desks, +cupboards, door and windows. For ease this is included in a separate ".icc" +file which can be removed should the code seem cumbersome. In the centre of +the cavern a steel vacuum vessel containing liquid and gaseous xenon is placed. +The internal construction of the vessel accurately reproduces an existing +prototype Dark Matter detector which allows experimental comparison. The active detector volume is defined by a series of metal rings, complemented by a cover mirror and a PMT immersed in the liquid. Two grids and a thermalising copper shield are also incorporated. The liquid/gas @@ -52,6 +79,7 @@ An ASCII file containing the following information: PmtTime, ns : average PMT hit time relative to LXeTime First hit : first particle to hit liquid xenon Flags : particles contributing to energy deposition + Seeds : the initial seed values for given hit events Note: @@ -103,6 +131,12 @@ Macros: Gammas are not killed at the concrete wall. Event summery is written to file "hits.out". + ambe_spectrum.mac + Produces a spectrum of neutrons according to an approximation of a Am/Be + neutron source. However, this uses the GPS and therefore will only work + after compilation with the DMXENV_GPS_USE environment variable (see below) + + sourceAm241.mac Forces the decay of 241Am nuclei in the calibrator and tracks the resulting particles (237Np + alpha + gamma from 237Np @@ -123,8 +157,87 @@ G4LEDATA : points to low energy data base - G4EMLOW0.5 G4LEVELGAMMADATA : points to PhotoEvaporation data NeutronHPCrossSections : points to neutron data files G4NDL3.5 +In addition if you require to use the full General Particle Source then the +variable DMXENV_GPS_USE can be set. The DMX gun is still included in order to +allow forward compatibility should the GPS change. +ANALYSIS: + +In order to use the AIDA 2.2 compliant analysis set the environment variable +G4ANALYSIS_USE before building. If a previous build exists a gmake clean has +to be executed. + +export G4ANALYSIS_USE=1 + +To link with anaphe, first execute the anaphe installation script: + +source anaphe + +then gmake + +The program should then produce hbook histogram files as well as interactively +two summary pages from QPLOTTER - outputing with postscript summary1.ps and +summary2.ps + +In addition a lizard python script is included for reference: +start lizard: +lizard +exe("DMX.py") + +Subsequent runs will require source of anaphe_start.sh + +source anaphe_start.sh + +before executing DMX + + +NB: When running the program the output histogram file has to be "new" +therefore if it has the same name as an existing file the program will crash. + + +See http://cern.ch/anaphe for more information about ANAPHE/Lizard + +AIDA 2.2 information is available at http://www.aida.org + +Using AIDA 2.2 interfaces three different analysis packages can be utilised: +Java Analysis Studio (JAS) +OpenScientist +Anaphe/Lizard + +At cern instead of executing the anaphe script see below: + +[ + AT CERN the following has to be executed in order to pick-up anaphe: + +execute the following lines _before_ gmake, +select the Anaphe version you want to use (4.0.1-sec for RH61 "old" compiler, +4.0.1 for RH61, new compiler (gcc-2.95.2)): +export PATH=$PATH:/afs/cern.ch/sw/lhcxx/specific/redhat61/egcs_1.1.2/4.0.1-sec/bin +source /afs/cern.ch/sw/lhcxx/share/LHCXX/4.0.1-sec/install/sharedstart.sh +(for the new compiler, use (sh derivates): +export PATH=$PATH:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/4.0.1/bin +source /afs/cern.ch/sw/lhcxx/share/LHCXX/4.0.1/install/sharedstart.sh) +or, for [t]csh fans (still "old" compiler): + +setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/egcs_1.1.2/4.0.1-sec/bin +source /afs/cern.ch/sw/lhcxx/share/LHCXX/4.0.1-sec/install/sharedstart.csh +] + + +SEEDS: + +The seeds of event hits are stored in the hit record file. These can be used +to repeat events for visualisation, test crashes/idiosyncracies: + +/random/setDirectoryName ./seeds +/random/resetEngineFrom currentEvent.rndm +/random/saveThisEvent +/random/setSavingFlag + +The file currentEvent.rndm should contain the two seeds which were outputed in +the scintHit file. + ERRORS: When running interactively the following error will be shown: @@ -170,5 +283,5 @@ config/sys/Linux-egcs.gmk to be altered so that CXX is set to kgcc Alex Howard, 29/11/01 - +updated 18/06/02 diff --git a/examples/advanced/underground_physics/alpha.mac b/examples/advanced/underground_physics/alpha.mac index 381944954f..dc1a71dc69 100644 --- a/examples/advanced/underground_physics/alpha.mac +++ b/examples/advanced/underground_physics/alpha.mac @@ -39,9 +39,13 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 82.750 mm +/dmx/gun/centre 0 0 -311.75 mm /dmx/gun/confine americium_phys # +/dmx/hitsfile alpha.out +/dmx/pmtfile alpha_pmt.out +/dmx/histogramfile alpha.his +# # set to 0 if too many tracks to store /tracking/storeTrajectory 1 # diff --git a/examples/advanced/underground_physics/alpha_1000.mac b/examples/advanced/underground_physics/alpha_1000.mac index c9c7851f17..c06452f03e 100644 --- a/examples/advanced/underground_physics/alpha_1000.mac +++ b/examples/advanced/underground_physics/alpha_1000.mac @@ -38,14 +38,21 @@ # gun: source /dmx/gun/type Volume /dmx/gun/shape Cylinder -/dmx/gun/radius 250 mum -/dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 82.750 mm +#/dmx/gun/radius 250 mum +#/dmx/gun/halfz 10.0 nm +/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 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 + /run/beamOn 1000 # /tracking/storeTrajectory 1 diff --git a/examples/advanced/underground_physics/alpha_low.mac b/examples/advanced/underground_physics/alpha_low.mac index c902649a1b..60adf72bc4 100644 --- a/examples/advanced/underground_physics/alpha_low.mac +++ b/examples/advanced/underground_physics/alpha_low.mac @@ -39,9 +39,13 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 82.750 mm +/dmx/gun/centre 0 0 -311.75 mm /dmx/gun/confine americium_phys # +/dmx/hitsfile alpha_low.out +/dmx/pmtfile alpha_low_pmt.out +/dmx/histogramfile alpha_low.his +# # set to 0 if too many tracks to store /tracking/storeTrajectory 1 # diff --git a/examples/advanced/underground_physics/ambe_spectrum.mac b/examples/advanced/underground_physics/ambe_spectrum.mac new file mode 100644 index 0000000000..35f419f0f9 --- /dev/null +++ b/examples/advanced/underground_physics/ambe_spectrum.mac @@ -0,0 +1,121 @@ +############################################################################### +# # +# neutron.mac # +# 1 neutron fired in the room # +# # +############################################################################### +# +# output log-file name +#/run/filename n_phantom_100000.log +# +# verbosities +/control/verbose 1 +/run/verbose 1 +/tracking/verbose 0 +/hits/verbose 0 +# +# draw flags +/dmx/draw/drawColours custom +/dmx/draw/gammaColour green +##/dmx/draw/drawTracks noscint +/dmx/draw/drawTracks all +/dmx/draw/drawHits 0 +# +# file output +/dmx/savePmt 0 +/dmx/saveHits 1 +# +# kill gammas in lab wall +/dmx/KillGammasInConcrete 0 +# +# radioactive decay module +/grdm/analogueMC 1 +/grdm/verbose 0 +/grdm/allVolumes +# +# +# using GPS for ambe_spectrum: +/gps/type Surface +/gps/shape Sphere +/gps/radius 1.0 cm +/gps/centre 0. 132.0 -311.75 mm +/gps/angtype iso +/gps/surfnorm 1 +/gps/mintheta 0. +/gps/maxtheta 0.30 +/gps/minphi 0. +/gps/maxphi 6.283185 +# +# +/gps/energytype Arb +/gps/histname arb +# +/gps/particle neutron +# +# estimated neutron spectrum from Jaime's paper: +# - first bin is in MeV: +/gps/histpoint 0.0 10000 +/gps/histpoint 0.2 11000 +/gps/histpoint 0.4 12000 +/gps/histpoint 0.6 13000 +/gps/histpoint 0.8 12000 +/gps/histpoint 1.0 10000 +/gps/histpoint 1.2 9000 +/gps/histpoint 1.4 11000 +/gps/histpoint 1.6 10000 +/gps/histpoint 1.8 11000 +/gps/histpoint 2.0 9000 +/gps/histpoint 2.2 14000 +/gps/histpoint 2.4 11000 +/gps/histpoint 2.6 12000 +/gps/histpoint 2.8 15000 +/gps/histpoint 3.0 17000 +/gps/histpoint 3.2 16000 +/gps/histpoint 3.4 15000 +/gps/histpoint 3.6 16500 +/gps/histpoint 3.8 17000 +/gps/histpoint 4.0 17000 +/gps/histpoint 4.2 14000 +/gps/histpoint 4.4 13500 +/gps/histpoint 4.6 14500 +/gps/histpoint 4.8 14000 +/gps/histpoint 5.0 13500 +/gps/histpoint 5.2 13000 +/gps/histpoint 5.4 12500 +/gps/histpoint 5.6 11000 +/gps/histpoint 5.8 10000 +/gps/histpoint 6.0 9800 +/gps/histpoint 6.2 8000 +/gps/histpoint 6.4 7700 +/gps/histpoint 6.6 7000 +/gps/histpoint 6.8 6800 +/gps/histpoint 7.0 6000 +/gps/histpoint 7.2 5000 +/gps/histpoint 7.4 4000 +/gps/histpoint 7.6 3600 +/gps/histpoint 7.8 3000 +/gps/histpoint 8.0 2000 +/gps/histpoint 8.2 1900 +/gps/histpoint 8.4 1750 +/gps/histpoint 8.6 1800 +/gps/histpoint 8.8 1825 +/gps/histpoint 9.0 1600 +/gps/histpoint 9.2 1400 +/gps/histpoint 9.4 1200 +/gps/histpoint 9.6 1100 +/gps/histpoint 9.8 1000 +/gps/histpoint 10.0 800 +# +# +# +# +/gps/arbint Lin + +/random/setDirectoryName ./seeds +/random/setSavingFlag + +/dmx/hitsfile ambe_spectrum.out +/dmx/histogramfile ambe_spectrum.his + +/run/beamOn 1000000 + diff --git a/examples/advanced/underground_physics/anaphe b/examples/advanced/underground_physics/anaphe new file mode 100644 index 0000000000..fd92eca6f9 --- /dev/null +++ b/examples/advanced/underground_physics/anaphe @@ -0,0 +1,3 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..b33f1baec4f6e51d97d94314da9aca787f9538ac GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/examples/advanced/underground_physics/gamma.mac b/examples/advanced/underground_physics/gamma.mac index 9632de2430..58b6bfbccb 100644 --- a/examples/advanced/underground_physics/gamma.mac +++ b/examples/advanced/underground_physics/gamma.mac @@ -40,8 +40,12 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 82.750 mm +/dmx/gun/centre 0 0 -311.75 mm /dmx/gun/confine americium_phys # +/dmx/hitsfile gamma.out +/dmx/pmtfile gamma_pmt.out +/dmx/histogramfile gamma.his +# /run/beamOn 1 diff --git a/examples/advanced/underground_physics/gamma_1000.mac b/examples/advanced/underground_physics/gamma_1000.mac index cf99b7180f..68ac83820d 100644 --- a/examples/advanced/underground_physics/gamma_1000.mac +++ b/examples/advanced/underground_physics/gamma_1000.mac @@ -40,8 +40,12 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 82.750 mm +/dmx/gun/centre 0 0 -311.75 mm /dmx/gun/confine americium_phys # +/dmx/hitsfile gamma_1000.out +/dmx/pmtfile gamma_1000_pmt.out +/dmx/histogramfile gamma_1000.his + /run/beamOn 1000 diff --git a/examples/advanced/underground_physics/gamma_2000.mac b/examples/advanced/underground_physics/gamma_2000.mac new file mode 100644 index 0000000000..2b052dd7be --- /dev/null +++ b/examples/advanced/underground_physics/gamma_2000.mac @@ -0,0 +1,54 @@ +############################################################################### +# # +# gamma_1000.mac # +# Gamma spectrum from internal calibrator # +# output in file hits.out # +# # +############################################################################### +# +# verbosities +/control/verbose 0 +/run/verbose 0 +/tracking/verbose 0 +/hits/verbose 0 +/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 250 mum +#/dmx/gun/halfz 10.0 nm +#/dmx/gun/radius 450 mum +/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/confine americium_phys +# +/dmx/hitsfile gamma_2000.out +/dmx/histogramfile gamma_2000.his + +/run/beamOn 2000 diff --git a/examples/advanced/underground_physics/gamma_low.mac b/examples/advanced/underground_physics/gamma_low.mac index d4585d9224..5e4f33f064 100644 --- a/examples/advanced/underground_physics/gamma_low.mac +++ b/examples/advanced/underground_physics/gamma_low.mac @@ -40,8 +40,12 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 82.750 mm +/dmx/gun/centre 0 0 -311.75 mm /dmx/gun/confine americium_phys # +/dmx/hitsfile gamma_low.out +/dmx/pmtfile gamma_low_pmt.out +/dmx/histogramfile gamma_low.his +# /run/beamOn 1 diff --git a/examples/advanced/underground_physics/include/DMXAnalysisManager.hh b/examples/advanced/underground_physics/include/DMXAnalysisManager.hh new file mode 100644 index 0000000000..16037cd7b6 --- /dev/null +++ b/examples/advanced/underground_physics/include/DMXAnalysisManager.hh @@ -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: DMXAnalysisManager.hh +// GEANT4 tag $Name: +// +// Author: Alex Howard (a.s.howard@ic.ac.uk) +// +// History: +// ----------- +// 16 Jan 2002 Alex Howard Created +// +// ------------------------------------------------------------------- + + + +#ifdef G4ANALYSIS_USE +#ifndef DMXAnalysisManager_h +#define DMXAnalysisManager_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 DMXAnalysisManager +{ +public: + + virtual ~DMXAnalysisManager(); + + // void book(); + void book(G4String); + + 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); + + //fill histograms with PHC (Pmt Hits) data from DMXEventAction + void analysePMTHits(G4int, G4int, G4double, G4double, G4double); + + //fill histograms with data from DMXParticleSource / secondary history + void analyseParticleSource(G4double, G4String); + + //fill histograms with data from DMXPrimaryGenerator + void analysePrimaryGenerator(G4double); + + //fill histograms with data from DMXPrimaryGenerator + void HistFirstTime(G4double); + + //Method to interactively display histograms + void PlotHistos(G4bool); + + //Method to interactively display histograms + void PlotHistosInit(); + //Method to interactively display histograms + void PlotHistosInter(); + + //method to call to create an instance of this class + static DMXAnalysisManager* getInstance(); + + +private: + + //private constructor in order to create a singleton + DMXAnalysisManager(); + + static DMXAnalysisManager* instance; + + // Quantities for the ntuple + + + 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 i; G4double x; G4double y; G4double z; + + G4double energy; G4double name; + + G4double time; + + G4bool interactive; + + IAnalysisFactory *af; + ITree *tree; + IHistogramFactory *hf; + ITupleFactory *tpf; + IPlotterFactory *pf; + IPlotter *plotter; + +}; +#endif +#endif + + + diff --git a/examples/advanced/underground_physics/include/DMXDetectorConstruction.hh b/examples/advanced/underground_physics/include/DMXDetectorConstruction.hh index 6c7f4bf627..527c1ff047 100644 --- a/examples/advanced/underground_physics/include/DMXDetectorConstruction.hh +++ b/examples/advanced/underground_physics/include/DMXDetectorConstruction.hh @@ -42,8 +42,8 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class G4VPhysicalVolume; class G4LogicalVolume; +class G4VPhysicalVolume; class G4Material; class G4UserLimits; @@ -51,6 +51,8 @@ class G4UserLimits; class DMXScintSD; class DMXPmtSD; +class DMXDetectorMessenger; + class DMXDetectorConstruction : public G4VUserDetectorConstruction { public: @@ -62,46 +64,31 @@ public: G4VPhysicalVolume* Construct(); - // methods for UserLimits - void UseUserLimits(G4bool value); - G4bool IsUseUserLimits() { return fUseUserLimits; } - G4double GetMaxTime() const { return theMaxTimeCuts; } - G4double GetMaxStepSize() const { return theMaxStepSize; } + void SetRoomEnergyCut(G4double); + void SetEnergyCut(G4double); + void SetTimeCut(G4double); + void SetRoomTimeCut(G4double); + // void UpdateGeometry(); - G4double GetRoomTime() const { return theRoomTimeCut; } - - void SetMaxTime(G4double value); - void SetMaxStepSize(G4double value); - void SetRoomTime(G4double value); private: void DefineMaterials(); - G4bool fUseUserLimits; - G4UserLimits* theUserLimits; + G4UserLimits* theUserLimitsForRoom; + G4UserLimits* theUserLimitsForDetector; + G4UserLimits* theUserLimitsForXenon; + G4double theMaxTimeCuts; G4double theMaxStepSize; + G4double theDetectorStepSize; + G4double theMinEkine; + G4double theRoomMinEkine; G4double theRoomTimeCut; - G4Material* world_mat; // materials used - G4Material* lab_mat; - G4Material* jacket_mat; - G4Material* vacuum_mat; - G4Material* vessel_mat; - G4Material* detector_mat; - G4Material* liqPhase_mat; - G4Material* CuShield_mat; - G4Material* alpha_mat; - G4Material* americium_mat; - G4Material* ring_mat; - G4Material* mirror_mat; - G4Material* grid_mat; - G4Material* pmt_mat; - G4Material* window_mat; - G4Material* phcath_mat; +#include "DMXDetectorMaterial.ihh" // materials used G4double worldRadius; // sizes G4double worldHeight; @@ -111,32 +98,64 @@ private: G4LogicalVolume* world_log; // pointers G4VPhysicalVolume* world_phys; + +#include "DMXDetectorRoom.ihh" + G4LogicalVolume* lab_log; G4VPhysicalVolume* lab_phys; + + G4LogicalVolume* LN2jacket_log; + G4VPhysicalVolume* LN2jacket_phys; + G4LogicalVolume* LN2vacuum_log; + G4VPhysicalVolume* LN2vacuum_phys; + G4LogicalVolume* LN2vessel_log; + G4VPhysicalVolume* LN2vessel_phys; + G4LogicalVolume* LN2_log; + G4VPhysicalVolume* LN2_phys; G4LogicalVolume* jacket_log; G4VPhysicalVolume* jacket_phys; + G4LogicalVolume* jacketflange_log; + G4VPhysicalVolume* topjacketflange_phys; + G4VPhysicalVolume* bottomjacketflange_phys; G4LogicalVolume* vacuum_log; G4VPhysicalVolume* vacuum_phys; + G4LogicalVolume* copper_log; + G4VPhysicalVolume* copper_phys; + G4LogicalVolume* coppertop_log; + G4VPhysicalVolume* coppertop_phys; G4LogicalVolume* vessel_log; G4VPhysicalVolume* vessel_phys; - G4LogicalVolume* detector_log; - G4VPhysicalVolume* detector_phys; + G4LogicalVolume* vesseltop_log1; + G4VPhysicalVolume* vesseltop_phys1; + G4LogicalVolume* vesseltop_log2; + G4VPhysicalVolume* vesseltop_phys2; + G4LogicalVolume* vesselbottom_log1; + G4VPhysicalVolume* vesselbottom_phys1; + G4LogicalVolume* vesselbottom_log2; + G4VPhysicalVolume* vesselbottom_phys2; + G4LogicalVolume* pmtvesselbottom_log1; + G4VPhysicalVolume* pmtvesselbottom_phys1; + G4LogicalVolume* pmtvesselbottom_log2; + G4VPhysicalVolume* pmtvesselbottom_phys2; + G4LogicalVolume* GXe_log; + G4VPhysicalVolume* GXe_phys; + G4LogicalVolume* gaslag_log; + G4VPhysicalVolume* gaslag_phys; G4LogicalVolume* CuShield_log; G4VPhysicalVolume* CuShield_phys; - G4LogicalVolume* liqPhase_log; - G4VPhysicalVolume* liqPhase_phys; + G4LogicalVolume* LXe_log; + G4VPhysicalVolume* LXe_phys; + G4LogicalVolume* liqLag_log; + G4VPhysicalVolume* liqLag_phys; G4LogicalVolume* alpha_log; G4VPhysicalVolume* alpha_phys; - /* - G4LogicalVolume* recess_log; - G4VPhysicalVolume* recess_phys; - */ + G4LogicalVolume* recess_log; + G4VPhysicalVolume* recess_phys; G4LogicalVolume* americium_log; G4VPhysicalVolume* americium_phys; G4LogicalVolume* ring_log; G4VPhysicalVolume* ring_phys_gas[1]; G4VPhysicalVolume* ring_phys_liq[5]; - // G4VPhysicalVolume* ring_phys[8]; G4LogicalVolume* mirror_log; G4VPhysicalVolume* mirror_phys; G4LogicalVolume* grid1_log; @@ -145,10 +164,6 @@ private: G4VPhysicalVolume* grid2_phys; G4LogicalVolume* pmt_log; G4VPhysicalVolume* pmt_phys; - /* - G4LogicalVolume* window_log; - G4VPhysicalVolume* window_phys; - */ G4LogicalVolume* phcath_log; G4VPhysicalVolume* phcath_phys; @@ -156,6 +171,9 @@ private: DMXScintSD* LXeSD; //pointer to sensitive detectors DMXPmtSD* pmtSD; + // pointer to the Detector Messenger: + DMXDetectorMessenger* detectorMessenger; + }; #endif diff --git a/examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh b/examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh new file mode 100644 index 0000000000..6f4a91dc4c --- /dev/null +++ b/examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh @@ -0,0 +1,26 @@ + G4Material* world_mat; // materials used + G4Material* lab_mat; + G4Material* cupboard_mat; + G4Material* door_mat; + G4Material* desk_mat; + G4Material* crate_mat; + G4Material* glass_mat; + G4Material* panel_mat; + G4Material* LN2jacket_mat; + G4Material* LN2_mat; + G4Material* jacket_mat; + G4Material* jacketflange_mat; + G4Material* vacuum_mat; + G4Material* copper_mat; + G4Material* vessel_mat; + G4Material* GXe_mat; + G4Material* LXe_mat; + G4Material* CuShield_mat; + G4Material* alpha_mat; + G4Material* americium_mat; + G4Material* ring_mat; + G4Material* mirror_mat; + G4Material* grid_mat; + G4Material* pmt_mat; + G4Material* window_mat; + G4Material* phcath_mat; diff --git a/examples/advanced/underground_physics/include/DMXDetectorMessenger.hh b/examples/advanced/underground_physics/include/DMXDetectorMessenger.hh new file mode 100644 index 0000000000..dc7137fc25 --- /dev/null +++ b/examples/advanced/underground_physics/include/DMXDetectorMessenger.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. * +// ******************************************************************** +// +// +// -------------------------------------------------------------- +// GEANT 4 - Underground Dark Matter Detector Advanced Example +// +// For information related to this code contact: Alex Howard +// e-mail: a.s.howard@ic.ac.uk +// -------------------------------------------------------------- +// Comments +// +// Underground Advanced +// by A. Howard and H. Araujo +// (27th November 2001) +// +// SteppingActionMessenger header +// -------------------------------------------------------------- + +#ifndef DMXDetectorMessenger_h +#define DMXDetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class DMXDetectorConstruction; +class G4UIdirectory; + +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + + +class DMXDetectorMessenger: public G4UImessenger { + + public: + DMXDetectorMessenger(DMXDetectorConstruction*); + ~DMXDetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + DMXDetectorConstruction* detectorConstruction; + + G4UIcmdWithADoubleAndUnit* RoomEKineCutCmd; + G4UIcmdWithADoubleAndUnit* EKineCutCmd; + G4UIcmdWithADoubleAndUnit* RoomTimeCutCmd; + G4UIcmdWithADoubleAndUnit* TimeCutCmd; + // G4UIcmdWithoutParameter* UpdateCmd; + +}; + +#endif + diff --git a/examples/advanced/underground_physics/include/DMXDetectorRoom.ihh b/examples/advanced/underground_physics/include/DMXDetectorRoom.ihh new file mode 100644 index 0000000000..7d209de247 --- /dev/null +++ b/examples/advanced/underground_physics/include/DMXDetectorRoom.ihh @@ -0,0 +1,34 @@ + G4LogicalVolume* glass_log; + G4VPhysicalVolume* glass_phys; + G4LogicalVolume* window_log; + G4VPhysicalVolume* window_phys; + G4LogicalVolume* sidepanel_log; + G4VPhysicalVolume* sidepanel_phys; + G4LogicalVolume* panelhole_log; + G4VPhysicalVolume* panelhole_phys; + G4LogicalVolume* doorglass_log; + G4VPhysicalVolume* doorglass_phys; + G4LogicalVolume* doorwindow_log; + G4VPhysicalVolume* doorwindow_phys; + G4LogicalVolume* door_log; + G4VPhysicalVolume* door_phys; + G4LogicalVolume* doorhole_log; + G4VPhysicalVolume* doorhole_phys; + G4LogicalVolume* cupboard_log; + G4VPhysicalVolume* cupboard_phys; + G4LogicalVolume* cupboard2_log; + G4VPhysicalVolume* cupboard2_phys; + G4LogicalVolume* desk1_log; + G4VPhysicalVolume* desk1_phys; + G4LogicalVolume* desk2_log; + G4VPhysicalVolume* desk2_phys; + G4LogicalVolume* desk3_log; + G4VPhysicalVolume* desk3_phys; + G4LogicalVolume* desk4_log; + G4VPhysicalVolume* desk4_phys; + G4LogicalVolume* crate_log; + G4VPhysicalVolume* crate_phys; + G4LogicalVolume* trunk_log; + G4VPhysicalVolume* trunk_phys; + G4LogicalVolume* trunk_inside_log; + G4VPhysicalVolume* trunk_inside_phys; diff --git a/examples/advanced/underground_physics/include/DMXEventAction.hh b/examples/advanced/underground_physics/include/DMXEventAction.hh index c01eb73794..d954b0a573 100644 --- a/examples/advanced/underground_physics/include/DMXEventAction.hh +++ b/examples/advanced/underground_physics/include/DMXEventAction.hh @@ -46,14 +46,16 @@ #include "DMXScintHit.hh" #include "DMXPmtHit.hh" +class DMXRunAction; +class DMXPrimaryGeneratorAction; class DMXEventActionMessenger; - +class DMXAnalysisManager; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... class DMXEventAction : public G4UserEventAction { public: - DMXEventAction(); + DMXEventAction(DMXRunAction*, DMXPrimaryGeneratorAction*); virtual ~DMXEventAction(); virtual void BeginOfEventAction(const G4Event*); virtual void EndOfEventAction(const G4Event*); @@ -78,6 +80,9 @@ class DMXEventAction : public G4UserEventAction { private: G4int event_id; + const long* seeds; + G4double energy_pri; + // hits collections G4int scintillatorCollID; G4int pmtCollID; @@ -91,6 +96,7 @@ class DMXEventAction : public G4UserEventAction { G4double totEnergyNeutrons; G4double hitEnergy; G4double firstLXeHitTime; + G4double firstParticleE; G4double particleEnergy; G4String particleName; G4String firstParticleName; @@ -113,6 +119,9 @@ class DMXEventAction : public G4UserEventAction { G4int printModulo; DMXEventActionMessenger* eventMessenger; + DMXRunAction* runAct; //pointer to run action + DMXPrimaryGeneratorAction* genAction; // pointer to particle generator + }; #endif diff --git a/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh b/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh new file mode 100644 index 0000000000..9a5465300e --- /dev/null +++ b/examples/advanced/underground_physics/include/DMXMinEkineCuts.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. * +// ******************************************************************** +// +// +// $Id: DMXMinEkineCuts.hh,v 1.2 2002/06/18 10:17:30 ahoward Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// ------------------------------------------------------------ +// 14 Aug. 1998 H.Kurashige +// ------------------------------------------------------------ + +#ifndef DMXMinEkineCuts_h +#define DMXMinEkineCuts_h 1 + +#include "G4ios.hh" +#include "globals.hh" +#include "DMXSpecialCuts.hh" + + +class DMXMinEkineCuts : public DMXSpecialCuts +{ + public: + + DMXMinEkineCuts(const G4String& processName ="DMXMinEkineCuts" ); + + virtual ~DMXMinEkineCuts(); + + // PostStep GPIL + virtual G4double PostStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition + ); + + + private: + + // hide assignment operator as private + DMXMinEkineCuts(DMXMinEkineCuts&); + DMXMinEkineCuts& operator=(const DMXMinEkineCuts& right); + +}; + +#endif + diff --git a/examples/advanced/underground_physics/include/DMXParticleSource.hh b/examples/advanced/underground_physics/include/DMXParticleSource.hh index a1e877b5d7..e2bd9aa9ab 100644 --- a/examples/advanced/underground_physics/include/DMXParticleSource.hh +++ b/examples/advanced/underground_physics/include/DMXParticleSource.hh @@ -81,6 +81,7 @@ class DMXParticleSource : public G4VPrimaryGenerator { void SetEnergyDisType(G4String); void SetMonoEnergy(G4double); void GenerateMonoEnergetic(); + inline G4double GetParticleEnergy() {return particle_energy;} // verbosity void SetVerbosity(G4int); diff --git a/examples/advanced/underground_physics/include/DMXPrimaryGeneratorAction.hh b/examples/advanced/underground_physics/include/DMXPrimaryGeneratorAction.hh index 147d382bfc..aeab1014ea 100644 --- a/examples/advanced/underground_physics/include/DMXPrimaryGeneratorAction.hh +++ b/examples/advanced/underground_physics/include/DMXPrimaryGeneratorAction.hh @@ -40,8 +40,14 @@ #define DMXPrimaryGeneratorMessenger_h 1 #include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" +#ifdef DMXENV_GPS_USE +class G4GeneralParticleSource; +#else class DMXParticleSource; +#endif +class DMXAnalysisManager; class G4Event; @@ -55,7 +61,21 @@ class DMXPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { void GeneratePrimaries(G4Event* anEvent); private: - DMXParticleSource* particleGun; +#ifdef DMXENV_GPS_USE + G4GeneralParticleSource* particleGun; +#else + DMXParticleSource* particleGun; +#endif + + private: + // const long* seeds; + long seeds[2]; + G4double energy_pri; + + public: + const long* GetEventSeeds() {return seeds;}; + G4double GetEnergyPrimary() {return energy_pri;}; + }; diff --git a/examples/advanced/underground_physics/include/DMXRunAction.hh b/examples/advanced/underground_physics/include/DMXRunAction.hh index f347614c34..14aa602030 100644 --- a/examples/advanced/underground_physics/include/DMXRunAction.hh +++ b/examples/advanced/underground_physics/include/DMXRunAction.hh @@ -46,6 +46,7 @@ class DMXRunActionMessenger; class G4Run; +class DMXAnalysisManager; class DMXRunAction : public G4UserRunAction { @@ -57,15 +58,25 @@ class DMXRunAction : public G4UserRunAction void BeginOfRunAction(const G4Run*); void EndOfRunAction(const G4Run*); - void SetFilename(G4String val) { fileName = val; }; + public: + void SetsavehitsFile (G4String val) { savehitsFile = val;}; + void SetsavepmtFile (G4String val) { savepmtFile = val;}; + void SetsavehistFile (G4String val) { savehistFile = val;}; + void Setinteractplot (G4bool valb) { interactplot = valb;}; + + G4String GetsavehitsFile() {return savehitsFile;}; + G4String GetsavepmtFile() {return savepmtFile;}; private: - G4String fileName; // log file name for the run + //messenger + G4String savehitsFile; + G4String savepmtFile; + G4String savehistFile; + G4bool interactplot; + DMXRunActionMessenger* runMessenger; - - }; #endif diff --git a/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh b/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh index a67362999a..77424d6745 100644 --- a/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh +++ b/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh @@ -44,6 +44,7 @@ class DMXRunAction; class G4UIcmdWithAString; +class G4UIcmdWithABool; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -56,8 +57,12 @@ class DMXRunActionMessenger: public G4UImessenger void SetNewValue(G4UIcommand*, G4String); private: - DMXRunAction* DMXRun; - G4UIcmdWithAString* FileCmd; + DMXRunAction* DMXRun; + + G4UIcmdWithAString* SaveHitsCmd; + G4UIcmdWithAString* SavePmtCmd; + G4UIcmdWithAString* SaveHistFileCmd; + G4UIcmdWithABool* InteractPlotCmd; }; #endif diff --git a/examples/advanced/underground_physics/include/DMXStackingActionMessenger.hh b/examples/advanced/underground_physics/include/DMXStackingActionMessenger.hh index 21cabb4aec..23e3615c8b 100644 --- a/examples/advanced/underground_physics/include/DMXStackingActionMessenger.hh +++ b/examples/advanced/underground_physics/include/DMXStackingActionMessenger.hh @@ -36,7 +36,7 @@ // StackingActionMessenger header // -------------------------------------------------------------- -#ifndef protpStackingActionMessenger_h +#ifndef DMXStackingActionMessenger_h #define DMXStackingActionMessenger_h 1 #include "G4UImessenger.hh" diff --git a/examples/advanced/underground_physics/include/DMXSteppingAction.hh b/examples/advanced/underground_physics/include/DMXSteppingAction.hh index c3be14cc06..8b7ea64cdd 100644 --- a/examples/advanced/underground_physics/include/DMXSteppingAction.hh +++ b/examples/advanced/underground_physics/include/DMXSteppingAction.hh @@ -45,6 +45,7 @@ class DMXSteppingActionMessenger; class DMXEventAction; +class DMXAnalysisManager; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/underground_physics/neutron.mac b/examples/advanced/underground_physics/neutron.mac index 7f935632aa..b32d3796b8 100644 --- a/examples/advanced/underground_physics/neutron.mac +++ b/examples/advanced/underground_physics/neutron.mac @@ -5,8 +5,6 @@ # # ############################################################################### # -# output log-file name -/run/filename n_phantom_100000.log # # verbosities /control/verbose 1 @@ -52,5 +50,9 @@ /dmx/gun/centre 0 2 0.090 m /dmx/gun/radius 3 cm # +/dmx/hitsfile neutron.out +/dmx/pmtfile neutron_pmt.out +/dmx/histogramfile neutron.his +# /run/beamOn 1 diff --git a/examples/advanced/underground_physics/src/DMXAnalysisManager.cc b/examples/advanced/underground_physics/src/DMXAnalysisManager.cc new file mode 100644 index 0000000000..94cd7c29e2 --- /dev/null +++ b/examples/advanced/underground_physics/src/DMXAnalysisManager.cc @@ -0,0 +1,455 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: DMXAnalysisManager.cc +// GEANT4 tag $Name: +// +// Author: Alex Howard (a.s.howard@ic.ac.uk) +// +// History: +// ----------- +// 16 Jan 2002 Alex Howard Created +// 17 June 2002 Alex Howard Successfully Modified to AIDA 2.2 +// +// ------------------------------------------------------------------- +#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) +{ + // tree is created and booked inside book() + ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +DMXAnalysisManager::~DMXAnalysisManager() +{ + + delete pf; + pf=0; + + delete tpf; + tpf=0; + + delete hf; + hf=0; + + delete tree; + tree=0; + + delete af; + af = 0; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +DMXAnalysisManager* DMXAnalysisManager::getInstance() +{ + if (instance == 0) instance = new DMXAnalysisManager; + return instance; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +void DMXAnalysisManager::book(G4String histogramfile) + +{ + // histoManager->selectStore("DMX.his"); + G4cout << " Histogramfile: " << histogramfile << G4endl; + + + //build up the factories + af = AIDA_createAnalysisFactory(); + + + //parameters for the TreeFactory + G4bool fileExists = false; + G4bool readOnly = false; + + ITreeFactory * tf = af->createTreeFactory(); + + tree = tf->create(histogramfile, readOnly, fileExists, "hbook"); + + 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 ------ + + ITuple* ntuple1 = tpf->create( "1 Energy", "Particle Source Energy", + "float energy" ); + + assert(ntuple1); + + // ---- secondary ntuple ------ + + ITuple* ntuple2 = tpf->create( "2 Hits Info", "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", + "float event, hits, xpos, ypos, zpos" ); + + assert(ntuple3); + + // ---- extra ntuple ------ + ITuple* ntuple4 = tpf->create( "4 Particle Info", "Particles energy type", + "float energy, NameIdx" ); + + assert(ntuple4); + + + // Creating an 1-dimensional histogram in the root directory of the tree + + IHistogram1D* hEsourcep; + hEsourcep = hf->create1D("10","Source Energy /keV", 1000,0.,10000.); + + IHistogram1D* hEdepp; + hEdepp = hf->create1D("20","Energy Deposit /keV", 1000,0.,1000.); + + IHistogram1D* hEdepRecoil; + hEdepRecoil = hf->create1D("30","Nuclear Recoil Edep /keV", 100,0.,100.); + + IHistogram1D* hNumPhLow; + hNumPhLow = hf->create1D("40","Number of Photons - LowE", 200,0.,200.); + + IHistogram1D* hNumPhHigh; + hNumPhHigh = hf->create1D("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.); + + IHistogram2D* hPMTHits; + hPMTHits = hf->create2D("70","PMT Hit Pattern", + 300 ,-30.,30.,300,-30.,30.); + IHistogram2D* h1stPMTHit; + h1stPMTHit = hf->create2D("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.); + + delete tf; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void DMXAnalysisManager::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 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; + if(firstparticleName == "electron") firstparticleIndex = 3; + if(firstparticleName == "positron") firstparticleIndex = 4; + if(firstparticleName == "other") { + firstparticleIndex = 5; + IHistogram1D* h4 = dynamic_cast ( tree->find("30") ); + h4->fill(totEnergy); // fill(x,y,weight) + } + + IHistogram1D* h2 = dynamic_cast ( tree->find("40") ); + h2->fill(P_hits,10.); // fill(x,weight) + + IHistogram1D* h3 = dynamic_cast ( tree->find("50") ); + h3->fill(P_hits); // fill(x,y,weight) + + + IHistogram1D* h1 = dynamic_cast ( tree->find("10") ); + h1->fill( energy_pri/keV ); // fill(x,weight) + + IHistogram1D* h5 = dynamic_cast ( tree->find("20") ); + h5->fill( totEnergy/keV ); + + IHistogram1D* h6 = dynamic_cast ( tree->find("60") ); + h6->fill(aveTimePmtHits/ns); // fill(x,y,weight) + + ITuple * ntuple = dynamic_cast ( tree->find("2 Hits Info") ); + + // Fill the ntuple + ntuple->fill( ntuple->findColumn( "Event" ), (G4float) event_id ); + ntuple->fill( ntuple->findColumn( "e_prim" ), (G4float) energy_pri/keV ); + ntuple->fill( ntuple->findColumn( "tot_e" ), (G4float) totEnergy ); + ntuple->fill( ntuple->findColumn( "s_hits" ), (G4float) S_hits ); + ntuple->fill( ntuple->findColumn( "xe_time" ), (G4float) firstLXeHitTime ); + ntuple->fill( ntuple->findColumn( "num_ph" ), (G4float) P_hits ); + ntuple->fill( ntuple->findColumn( "avphtime"), (G4float) aveTimePmtHits ); + ntuple->fill( ntuple->findColumn( "1stpart" ), (G4float) firstparticleIndex); + ntuple->fill( ntuple->findColumn( "1stparte"), (G4float) firstParticleE ); + ntuple->fill( ntuple->findColumn( "gamma" ), (G4float) gamma_ev ); + ntuple->fill( ntuple->findColumn( "neutron" ), (G4float) neutron_ev ); + ntuple->fill( ntuple->findColumn( "posi" ), (G4float) positron_ev ); + ntuple->fill( ntuple->findColumn( "elec" ), (G4float) electron_ev ); + ntuple->fill( ntuple->findColumn( "other" ), (G4float) other_ev ); + 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(); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +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) + + if (event == 0 ) { + IHistogram2D* h9 = dynamic_cast ( tree->find("71") ); + h9->fill(x,y); // fill(x,y,weight) + } + + ITuple * ntuple = dynamic_cast ( tree->find("3 Pmt Info") ); + // Fill the secondaries ntuple + ntuple->fill( ntuple->findColumn( "event" ), (G4float) event ); + ntuple->fill( ntuple->findColumn( "hits" ), (G4float) i ); + ntuple->fill( ntuple->findColumn( "xpos" ), (G4float) x ); + ntuple->fill( ntuple->findColumn( "ypos" ), (G4float) y ); + ntuple->fill( ntuple->findColumn( "zpos" ), (G4float) z ); + + // 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); + +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +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") ); + // Fill energy ntple: + ntuple->fill( ntuple->findColumn( "energy" ), (G4float) 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.... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void DMXAnalysisManager::analyseParticleSource(G4double energy, G4String name) +{ + + if(name == "gamma") { + IHistogram1D* h11 = dynamic_cast ( tree->find("91") ); + h11->fill(energy/keV); // fill(x,weight) + } + if(name == "neutron") { + IHistogram1D* h12 = dynamic_cast ( tree->find("92") ); + h12->fill(energy/keV); // fill(x,weight) + } + if(name == "electron") { + IHistogram1D* h13 = dynamic_cast ( tree->find("93") ); + h13->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 == "other") { + IHistogram1D* h15 = dynamic_cast ( tree->find("95") ); + h15->fill(energy/keV); // fill(x,weight) + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void DMXAnalysisManager::HistFirstTime(G4double time) +{ + IHistogram1D* h8 = dynamic_cast ( tree->find("61") ); + h8->fill(time/ns); // fill(x,y,weight) +} + +//....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 + plotter->show(); + + // Plotting the second histogram in the first region + plotter->plot( h1 ); + + // 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(); + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +#endif + + + + + + + diff --git a/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc b/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc index d1078e87ac..48a05eac2b 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc +++ b/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc @@ -37,6 +37,7 @@ // -------------------------------------------------------------- #include "DMXDetectorConstruction.hh" +#include "DMXDetectorMessenger.hh" #include "DMXScintSD.hh" #include "DMXPmtSD.hh" @@ -51,7 +52,6 @@ #include "G4Sphere.hh" #include "G4UnionSolid.hh" #include "G4SubtractionSolid.hh" -#include "G4SphericalSurface.hh" #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" @@ -77,212 +77,45 @@ #include "G4UserLimits.hh" +#include "G4RunManager.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DMXDetectorConstruction::DMXDetectorConstruction() { - theUserLimits = NULL; - fUseUserLimits = false; - // theMaxTimeCuts = 1000000. * s; + // create commands for interactive definition of time cuts: + detectorMessenger = new DMXDetectorMessenger(this); + + theUserLimitsForRoom = 0; + theUserLimitsForDetector = 0; // default time cut = infinite // - note also number of steps cut in stepping action = MaxNoSteps - theMaxTimeCuts = DBL_MAX; - theMaxStepSize = DBL_MAX; + theMaxTimeCuts = DBL_MAX; + theMaxStepSize = DBL_MAX; + theDetectorStepSize = DBL_MAX; + theRoomTimeCut = 1000. * nanosecond; + theMinEkine = 250.0*eV; // minimum kinetic energy required in volume + theRoomMinEkine = 250.0*eV; // minimum kinetic energy required in volume - theRoomTimeCut = 10000. * s; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -DMXDetectorConstruction::~DMXDetectorConstruction() {;} +DMXDetectorConstruction::~DMXDetectorConstruction() +{ + delete theUserLimitsForRoom; + delete theUserLimitsForDetector; + delete detectorMessenger; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void DMXDetectorConstruction::DefineMaterials() { +void DMXDetectorConstruction::DefineMaterials() +{ - G4double density, // density - a, // atomic mass - z; // atomic number - G4String name, // name - symbol; // symbol - G4int ncomponents, // n components - iz, // number of protons - in; // number of nuceons - G4double abundance, // abundance - temperature, // temperature - pressure; // pressure +#include "DMXDetectorMaterial.icc" - - // making vacuum - G4Material* vacuum = new G4Material - (name="Vacuum", z=1., a=1.*g/mole, density=1.e-20*g/cm3, - kStateGas, temperature=0.1*kelvin, pressure=1.e-20*bar); - - - // xenons - G4Element* elementXe = new G4Element( "Xenon", "Xe", 54., 131.29*g/mole ); - G4Material* LXe = new G4Material - ("LXe", 3.02*g/cm3, 1, kStateLiquid, 173.15*kelvin, 1.5*atmosphere ); - G4Material* GXe = new G4Material - ("GXe", 0.005887*g/cm3, 1, kStateGas, 173.15*kelvin, 1.5*atmosphere ); - LXe->AddElement( elementXe, 1); - GXe->AddElement( elementXe, 1); - - const G4int NUMENTRIES = 2; - G4double LXe_PP[NUMENTRIES] = { 7.07*eV, 7.07*eV }; - G4double LXe_SCINT[NUMENTRIES] = { 1.0, 1.0 }; - G4double LXe_RIND[NUMENTRIES] = { 1.57, 1.57 }; - G4double LXe_ABSL[NUMENTRIES] = { 35.*cm, 35.*cm}; - G4MaterialPropertiesTable *LXe_mt = new G4MaterialPropertiesTable(); - LXe_mt->AddProperty("SCINTILLATION", LXe_PP, LXe_SCINT, NUMENTRIES); - LXe_mt->AddProperty("RINDEX", LXe_PP, LXe_RIND, NUMENTRIES); - LXe_mt->AddProperty("ABSLENGTH", LXe_PP, LXe_ABSL, NUMENTRIES); - LXe->SetMaterialPropertiesTable(LXe_mt); - - G4double GXe_PP[NUMENTRIES] = { 7.07*eV, 7.07*eV }; - G4double GXe_SCINT[NUMENTRIES] = { 1.0, 1.0 }; - G4double GXe_RIND[NUMENTRIES] = { 1.00, 1.00 }; - G4double GXe_ABSL[NUMENTRIES] = { 100*m, 100*m}; - G4MaterialPropertiesTable *GXe_mt = new G4MaterialPropertiesTable(); - GXe_mt->AddProperty("SCINTILLATION", GXe_PP, GXe_SCINT, NUMENTRIES); - GXe_mt->AddProperty("RINDEX", GXe_PP, GXe_RIND, NUMENTRIES); - GXe_mt->AddProperty("ABSLENGTH", GXe_PP, GXe_ABSL, NUMENTRIES); - GXe->SetMaterialPropertiesTable(GXe_mt); - - - // making quartz - G4Element* O = new G4Element - (name="Oxygen" ,symbol="O" , z= 8., a=16.00*g/mole); - G4Element* Si = new G4Element - (name="Silicon",symbol="Si" , z= 14., a=28.09*g/mole); - G4Material* quartz = new G4Material - (name="quartz", density=2.200*g/cm3, ncomponents=2); - quartz->AddElement(Si, 1); - quartz->AddElement(O , 2); - - G4double quartz_PP[NUMENTRIES] = { 6.69*eV, 7.50*eV }; // lambda range 4 ri - G4double quartz_RIND[NUMENTRIES] = { 1.575, 1.628 }; // ref index - G4double quartz_ABSL[NUMENTRIES] = { 1.5*cm, 1.5*cm }; // atten length - G4MaterialPropertiesTable *quartz_mt = new G4MaterialPropertiesTable(); - quartz_mt->AddProperty("RINDEX", quartz_PP, quartz_RIND, NUMENTRIES); - quartz_mt->AddProperty("ABSLENGTH", quartz_PP, quartz_ABSL, NUMENTRIES); - quartz->SetMaterialPropertiesTable(quartz_mt); - - - // aluminium - G4Element* Al = new G4Element - (name="Aluminium" ,symbol="Al" , z= 13., a=26.98*g/mole); - G4Material* metalAl = new G4Material - (name="MetalAluminium", density=2.700*g/cm3, ncomponents=1); - metalAl->AddElement(Al, 1); - - - // iron - G4Element* Fe = new G4Element - (name="Iron" ,symbol="Fe" , z= 26., a=55.85*g/mole); - G4Material* metalFe = new G4Material - (name="MetalIron", density=7.874*g/cm3, ncomponents=1); - metalFe->AddElement(Fe, 1); - - - // stainless steel - G4Element* C = new G4Element( "Carbon", "C", 6. , 12.011*g/mole); - G4Element* Co = new G4Element( "Cobalt", "Co", 27. , 58.9332*g/mole); - G4Material* ssteel = new G4Material - (name="Steel", density=7.7*g/cm3, ncomponents=3); - ssteel->AddElement(C, 0.04); - ssteel->AddElement(Fe, 0.88); - ssteel->AddElement(Co, 0.08); - - - // copper - G4Element* Cu = new G4Element - (name="Copper" ,symbol="Cu" , z= 29., a=63.55*g/mole); - G4Material* metalCu = new G4Material - (name="MetalCopper", density=8.960*g/cm3, ncomponents=1); - metalCu->AddElement(Cu, 1); - - // lead - G4Element* Pb = new G4Element - (name="Lead",symbol="Pb" , z= 82., a=207.2*g/mole); - G4Material* metalPb = new G4Material - (name="MetalLead", density=11.340*g/cm3, ncomponents=1); - metalPb->AddElement(Pb, 1); - - - /* - // Americium: - G4Isotope* Am241 = new G4Isotope - (name="Americium241", iz= 95, in=241, a=241.0*g/mole); - G4Element* Am = new G4Element - (name="Americium241", "Am", ncomponents=1); - Am->AddIsotope(Am241, abundance=1); - G4Material* sourceAm = new G4Material - (name="AmericiumSource", density=13.61*g/cm3, ncomponents=1); - sourceAm->AddElement(Am, 1); - */ - - // using Uranium because Americium not yet defined for RDM - G4Isotope* U235 = new G4Isotope - (name="Uranium235", iz= 92, in=235, a=235.0*g/mole); - G4Element* U = new G4Element - (name="Uranium", "U", ncomponents=1); - U->AddIsotope(U235, abundance=1); - G4Material* sourceAm = new G4Material - (name="UraniumSource", density=13.61*g/cm3, ncomponents=1); - sourceAm->AddElement(U, 1); - - // air - G4Element* N = new G4Element - (name="Nitrogen",symbol="N" , z= 7., a=14.00674*g/mole); - G4Material* Air = new G4Material - ("AIR", 1.2929*kg/m3, 2, kStateGas, 300.00*kelvin, 1.0*atmosphere); - Air->AddElement(N, 0.8); - Air->AddElement(O , 0.2); - - - //concrete - G4Element* H = new G4Element - (name="Hydrogen",symbol="H" , z= 1., a=1.00794*g/mole); - G4Element* Ca = new G4Element - (name="Calcium",symbol="Ca" , z= 20., a=40.078*g/mole); - G4Material* concrete = new G4Material - (name="Concrete", density=2.3*g/cm3, ncomponents=6); - concrete->AddElement(Si, 0.227915); - concrete->AddElement(O, 0.60541); - concrete->AddElement(H, 0.09972); - concrete->AddElement(Ca, 0.04986); - concrete->AddElement(Al, 0.014245); - concrete->AddElement(Fe, 0.00285); - - //water - G4Material* water = new G4Material - (name="water", density=1.00*g/cm3, ncomponents=2); - water->AddElement(H , 2); - water->AddElement(O , 1); - - // print materials - // G4cout << *(G4Material::GetMaterialTable()) << G4endl; - // G4cout << *(G4Isotope::GetIsotopeTable()) << G4endl; - // G4cout << *(G4Element::GetElementTable()) << G4endl; - - // assign materials - world_mat = concrete; - lab_mat = Air; - jacket_mat = ssteel; - vacuum_mat = vacuum; - vessel_mat = ssteel; - detector_mat = GXe; - CuShield_mat = metalCu; - liqPhase_mat = LXe; - alpha_mat = metalPb; - americium_mat = sourceAm; - ring_mat = ssteel; - mirror_mat = metalAl; - grid_mat = LXe; - pmt_mat = quartz; - phcath_mat = metalAl; } @@ -290,29 +123,8 @@ void DMXDetectorConstruction::DefineMaterials() { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXDetectorConstruction::DefineField() { - G4double EField = 0.0*kilovolt/cm; +#include "DMXDetectorField.icc" - // create electric field - G4UniformElectricField* elecField = - new G4UniformElectricField(G4ThreeVector(0,EField,0)); - - // equation of motion - G4EqMagElectricField* EquationOfMotion = - new G4EqMagElectricField(elecField); - - // stepper for equation of motion - G4MagIntegratorStepper* DMXStepper = - new G4ClassicalRK4(EquationOfMotion); - - // chordfinder - G4ChordFinder* DMXChordFinder = - new G4ChordFinder(elecField, 1.0e-3*mm, DMXStepper); - - // field manager - G4FieldManager* DMXFieldManager = new G4FieldManager(); - DMXFieldManager->SetChordFinder(DMXChordFinder); - G4TransportationManager::GetTransportationManager() - -> SetFieldManager(DMXFieldManager); } */ @@ -327,104 +139,329 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // make colours G4Colour white (1.0, 1.0, 1.0) ; G4Colour grey (0.5, 0.5, 0.5) ; - G4Colour lgrey (.75, .75, .75) ; + G4Colour lgrey (.85, .85, .85) ; 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 orange (.75, .55, 0.0) ; G4Colour lblue (0.0, 0.0, .75) ; + G4Colour lgreen (0.0, .75, 0.0) ; + G4Colour green (0.0, 1.0, 0.0) ; + G4Colour brown (0.7, 0.4, 0.1) ; + + // un-used colours: // G4Colour black (0.0, 0.0, 0.0) ; - // G4Colour green (0.0, 1.0, 0.0) ; - // G4Colour lgreen (0.0, .75, 0.0) ; - // Universe - room wall - CONCRETE ************************************ + // Universe - room wall - CONCRETE **************************************** - G4double worldWidth = 5.0*m; - G4double worldLength = 6.0*m; - G4double worldHeight = 3.0*m; + //NB: measured INSIDE of lab, therefore have to add twice wall thickness + G4double wallThick = 24.*cm; + G4double worldWidth = 470.0*cm + 2.*wallThick; // "x" + G4double worldLength = 690.0*cm + 2.*wallThick; // "y" + G4double worldHeight = 280.0*cm + 2.*wallThick; // "z" - G4Box* world_box= new G4Box + G4Box* world_box = new G4Box ("world_box", 0.5*worldWidth, 0.5*worldLength, 0.5*worldHeight ); - world_log = new G4LogicalVolume(world_box, world_mat, "world_log"); - world_phys=new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), + world_log = new G4LogicalVolume(world_box, world_mat, "world_log"); + world_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), "world_phys", world_log, NULL, false,0); - G4VisAttributes* world_vat= new G4VisAttributes(white); - // world_log->SetVisAttributes(G4VisAttributes::Invisible); - world_vat->SetVisibility(true); - world_log->SetVisAttributes(world_vat); + // G4VisAttributes* world_vat= new G4VisAttributes(white); + world_log->SetVisAttributes(G4VisAttributes::Invisible); + //world_vat->SetVisibility(true); + //world_vat->SetVisibility(false); + //world_log->SetVisAttributes(world_vat); - // Lab Space - AIR ***************************************************** + // Lab Space - AIR ******************************************************** - G4double wallThick = 30.*cm; - G4double labWidth = worldWidth - wallThick; - G4double labLength = worldLength - wallThick; - G4double labHeight = worldHeight - wallThick; + G4double labWidth = worldWidth - 2.*wallThick; //X + G4double labLength = worldLength - 2.*wallThick; //Y + G4double labHeight = worldHeight - 2.*wallThick; //Z - G4Box* lab_box= new G4Box + G4Box* lab_box = new G4Box ("lab_box", 0.5*labWidth, 0.5*labLength, 0.5*labHeight ); - lab_log = new G4LogicalVolume(lab_box, lab_mat, "lab_log"); - lab_phys=new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), "lab_phys", + lab_log = new G4LogicalVolume(lab_box, lab_mat, "lab_log"); + lab_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), "lab_phys", lab_log, world_phys, false,0); G4VisAttributes* lab_vat= new G4VisAttributes(white); - lab_log->SetVisAttributes(G4VisAttributes::Invisible); - // lab_log->SetVisibility(true); + // lab_log->SetVisAttributes(G4VisAttributes::Invisible); + // lab_vat->SetVisibility(true); + lab_vat->SetVisibility(false); lab_log->SetVisAttributes(lab_vat); +// include room furniture: ************************************************** - // outer vacuum jacket volume: stainless steel ************************* +#include "DMXDetectorRoom.icc" - G4double jacketRadius = 15.0*cm; - G4double jacketHeight = 40.0*cm; - G4double jacketMetalThick = 3.0*mm; + // Now start with detector assembly: - G4Tubs* jacket_tube=new G4Tubs("jacket_tube", + // first LN2 cooling container: ******************************************* + + G4double PosZ = -25.3*cm; // extra z-pos to correspond with height in lab + + G4double LN2jacketRadius = 107.5*mm; + G4double LN2jacketHeight = 590.0*mm; + G4double jacketHeight = 680.0*mm; + G4double jacketflangeHeight = 53.0*mm; + 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 + (LN2jacket_tube, LN2jacket_mat, "LN2jacket_log"); + LN2jacket_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,LN2PosZ), + "LN2jacket_phys", LN2jacket_log, lab_phys, false,0); + + G4VisAttributes* LN2jacket_vat = new G4VisAttributes(lgrey); + // LN2jacket_log->SetVisAttributes(G4VisAttributes::Invisible); + // LN2jacket_vat->SetVisibility(true); + LN2jacket_log->SetVisAttributes(LN2jacket_vat); + + // LN2jacket vacuum: ********************** + + G4double LN2jacketMetalThick = 2.0*mm; + G4double LN2vacuumRadius = LN2jacketRadius - LN2jacketMetalThick; + G4double LN2vacuumHeight = LN2jacketHeight - LN2jacketMetalThick; + + G4Tubs* LN2vacuum_tube = new G4Tubs("LN2vacuum_tube", + 0.*cm, LN2vacuumRadius, 0.5*LN2vacuumHeight, 0.*deg, 360.*deg); + LN2vacuum_log = new G4LogicalVolume + (LN2vacuum_tube, vacuum_mat, "LN2vacuum_log"); + LN2vacuum_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), + "LN2vacuum_phys", LN2vacuum_log, LN2jacket_phys, false,0); + + LN2vacuum_log->SetVisAttributes(G4VisAttributes::Invisible); + + // LN2 vessel: ************************************************************ + + G4double LN2Radius = 76.0*mm; + G4double LN2Height = 590.0*mm; + G4double LN2vesselRadius = LN2Radius + LN2jacketMetalThick; + G4double LN2vesselHeight = LN2Height + 2.*LN2jacketMetalThick; + G4double LN2vesselPosZ = 0.5*LN2jacketHeight - 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); + + G4VisAttributes* LN2vessel_vat = new G4VisAttributes(lgrey); + // LN2vessel_log->SetVisAttributes(G4VisAttributes::Invisible); + // LN2vessel_vat->SetVisibility(true); + LN2vessel_log->SetVisAttributes(LN2vessel_vat); + + + // and finally LN2: ******************************************************* + + G4Tubs* LN2_tube = new G4Tubs("LN2_tube", + 0.*cm, LN2Radius, 0.5*LN2Height, 0.*deg, 360.*deg); + LN2_log = new G4LogicalVolume(LN2_tube, LN2_mat, "LN2_log"); + LN2_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), + "LN2_phys", LN2_log, LN2vessel_phys, false,0); + + G4VisAttributes* LN2_vat = new G4VisAttributes(green); + LN2_vat->SetVisibility(true); + LN2_log->SetVisAttributes(LN2_vat); + + + // outer vacuum jacket volume: stainless steel **************************** + + G4double jacketRadius = 127.5*mm; + // G4double jacketHeight = 680.0*mm; // defined above to get full-height + G4double jacketMetalThick = LN2jacketMetalThick; + + G4Tubs* jacket_tube = new G4Tubs("jacket_tube", 0.*cm, jacketRadius, 0.5*jacketHeight, 0.*deg, 360.*deg); - jacket_log = new G4LogicalVolume(jacket_tube, jacket_mat, "jacket_log"); - jacket_phys=new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), + jacket_log = new G4LogicalVolume(jacket_tube, jacket_mat, "jacket_log"); + jacket_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,PosZ), "jacket_phys", jacket_log, lab_phys, false,0); - G4VisAttributes* jacket_vat= new G4VisAttributes(grey); - // jacket_log->SetVisAttributes(G4VisAttributes::Invisible); + G4VisAttributes* jacket_vat = new G4VisAttributes(grey); + // jacket_log->SetVisAttributes(G4VisAttributes::Invisible); jacket_log->SetVisAttributes(jacket_vat); + // outer vacuum jacket flanges: stainless steel ************************* + + G4double jacketflangeRadius = 127.5*mm; + // G4double jacketflangeHeight = 53.0*mm; // defined above to get full-height + G4double topjacketflangePosZ = 0.5*(jacketHeight+jacketflangeHeight); + + G4Tubs* jacketflange_tube = new G4Tubs("jacketflange_tube", + 0.*cm, jacketflangeRadius, 0.5*jacketflangeHeight, 0.*deg, 360.*deg); + jacketflange_log = new G4LogicalVolume + (jacketflange_tube, jacketflange_mat, "jacketflange_log"); + topjacketflange_phys = new G4PVPlacement + (0, G4ThreeVector(0.,0.,topjacketflangePosZ + PosZ), + "topjacketflange_phys", jacketflange_log, lab_phys, false,0); + bottomjacketflange_phys = new G4PVPlacement + (0, G4ThreeVector(0.,0.,-topjacketflangePosZ + PosZ), + "bottomjacketflange_phys", jacketflange_log, lab_phys, false,0); + + // jacketflange_log->SetVisAttributes(G4VisAttributes::Invisible); + jacketflange_log->SetVisAttributes(jacket_vat); + // vacuum ************************************************************** G4double vacuumRadius = jacketRadius - jacketMetalThick; G4double vacuumHeight = jacketHeight - jacketMetalThick; - G4Tubs* vacuum_tube=new G4Tubs("vacuum_tube", + G4Tubs* vacuum_tube = new G4Tubs("vacuum_tube", 0.*cm, vacuumRadius, 0.5*vacuumHeight, 0.*deg, 360.*deg); - vacuum_log = new G4LogicalVolume(vacuum_tube, vacuum_mat, "vacuum_log"); - vacuum_phys=new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), + vacuum_log = new G4LogicalVolume(vacuum_tube, vacuum_mat, "vacuum_log"); + vacuum_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), "vacuum_phys", vacuum_log, jacket_phys, false,0); - // G4VisAttributes* vacuum_vat= new G4VisAttributes(lgrey); + // G4VisAttributes* vacuum_vat= new G4VisAttributes(lgrey); vacuum_log->SetVisAttributes(G4VisAttributes::Invisible); + // copper cooling jacket volume: ************************************** + + G4double copperMetalThick = 3.0*mm; + G4double copperRadius = 103.5*mm + copperMetalThick; + G4double copperHeight = 420.0*mm; + G4double copperInner = copperRadius - copperMetalThick; + G4double vesselHeight = 320.0*mm; + G4double copperVPos = 0.5*(vesselHeight-copperHeight) + 13.0*cm; + G4double coppertopThick = 1.0*cm; + G4double coppertopVPos = copperVPos + 0.5*(coppertopThick+copperHeight); + + G4Tubs* copper_tube = new G4Tubs("copper_tube", + copperInner, copperRadius, 0.5*copperHeight, 0.*deg, 360.*deg); + copper_log = new G4LogicalVolume(copper_tube, copper_mat, "copper_log"); + copper_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,copperVPos), + "copper_phys", copper_log, vacuum_phys, false,0); + + G4Tubs* coppertop_tube = new G4Tubs("coppertop_tube", + 0.*cm, copperRadius, 0.5*coppertopThick, 0.*deg, 360.*deg); + coppertop_log = new G4LogicalVolume + (coppertop_tube, copper_mat, "coppertop_log"); + coppertop_phys = new G4PVPlacement(0,G4ThreeVector(0.,0.,coppertopVPos), + "coppertop_phys", coppertop_log, vacuum_phys, false,0); + + G4VisAttributes* copper_vat = new G4VisAttributes(orange); + // copper_log->SetVisAttributes(G4VisAttributes::Invisible); + copper_log->SetVisAttributes(copper_vat); + coppertop_log->SetVisAttributes(copper_vat); + // inner vessel jacket volume: stainless steel ************************ - G4double vesselRadius = 10.0*cm; - G4double vesselHeight = 30.0*cm; - G4double vesselMetalThick = 3.0*mm; + // G4double vesselHeight = 320.0*mm; // - moved earlier + G4double vesselMetalThick = jacketMetalThick; + G4double vesselRadius = 75.0*mm + vesselMetalThick; + G4double vesselflangeRadius = 101.5*mm; + G4double vesselflangeThick = 40.0*mm; + G4double PMTvesselRadius = 31.0*mm + vesselMetalThick; + G4double PMTvesselHeight = 152.0*mm; + G4double pmtvesselflangeRadius = 52.0*mm; + G4double pmtvesselflangeThick = 32.0*mm; + G4double vesselVPos = 7.0*cm; + G4double TotalvesselHeight = PMTvesselHeight + vesselHeight; - G4Tubs* vessel_tube=new G4Tubs("vessel_tube", + G4Tubs* vessel_tube = new G4Tubs("vessel_tube", 0.*cm, vesselRadius, 0.5*vesselHeight, 0.*deg, 360.*deg); - vessel_log = new G4LogicalVolume(vessel_tube, vessel_mat, "vessel_log"); - vessel_phys=new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), + G4Tubs* PMTvessel_tube = new G4Tubs("PMTvessel_tube", + 0.*cm, PMTvesselRadius, 0.5*PMTvesselHeight, 0.*deg, 360.*deg); + + G4UnionSolid* vessel_sol = new G4UnionSolid + ("vessel_sol", vessel_tube, PMTvessel_tube, + G4Transform3D(G4RotationMatrix(), + G4ThreeVector(0,0,-0.5*(vesselHeight+PMTvesselHeight)))); + + vessel_log = new G4LogicalVolume(vessel_sol, vessel_mat, "vessel_log"); + vessel_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,vesselVPos), "vessel_phys", vessel_log, vacuum_phys, false,0); - G4VisAttributes* vessel_vat= new G4VisAttributes(grey); + + // flanges: 1=upper half (diff. inner diam.) 2=lower half + G4Tubs* vesseltop_flange1 = new G4Tubs("vesseltop_flange1", + 0.*cm, vesselflangeRadius, 0.25*vesselflangeThick, 0.*deg, 360.*deg); + vesseltop_log1 = new G4LogicalVolume + (vesseltop_flange1, vessel_mat, "vesseltop_log1"); + vesseltop_phys1 = new G4PVPlacement + (0, + G4ThreeVector(0.,0.,0.5*(vesselHeight+0.5*vesselflangeThick)+vesselVPos), + "vesseltop_phys1", vesseltop_log1, vacuum_phys, false,0); + + G4Tubs* vesseltop_flange2 = new G4Tubs("vesseltop_flange2",vesselRadius, + vesselflangeRadius, 0.25*vesselflangeThick, 0.*deg, 360.*deg); + vesseltop_log2 = new G4LogicalVolume + (vesseltop_flange2, vessel_mat, "vesseltop_log2"); + vesseltop_phys2 = new G4PVPlacement + (0, + G4ThreeVector(0.,0.,0.5*(vesselHeight-0.5*vesselflangeThick)+vesselVPos), + "vesseltop_phys2", vesseltop_log2, vacuum_phys, false,0); + + + G4Tubs* vesselbottom_flange1 = new G4Tubs + ("vesselbottom_flange1",vesselRadius, vesselflangeRadius, + 0.25*vesselflangeThick, 0.*deg, 360.*deg); + vesselbottom_log1 = new G4LogicalVolume + (vesselbottom_flange1, vessel_mat, "vesselbottom_log1"); + vesselbottom_phys1 = new G4PVPlacement(0, + G4ThreeVector(0.,0.,-0.5*(vesselHeight-0.5*vesselflangeThick)+vesselVPos), + "vesselbottom_phys1", vesselbottom_log1, vacuum_phys, false,0); + + G4Tubs* vesselbottom_flange2 = new G4Tubs + ("vesselbottom_flange2",PMTvesselRadius, vesselflangeRadius, + 0.25*vesselflangeThick, 0.*deg, 360.*deg); + vesselbottom_log2 = new G4LogicalVolume + (vesselbottom_flange2, vessel_mat, "vesselbottom_log2"); + vesselbottom_phys2 = new G4PVPlacement(0, + G4ThreeVector(0.,0.,-0.5*(vesselHeight+0.5*vesselflangeThick)+vesselVPos), + "vesselbottom_phys2", vesselbottom_log2, vacuum_phys, false,0); + + + G4Tubs* pmtvesselbottom_flange1 = new G4Tubs + ("pmtvesselbottom_flange1", PMTvesselRadius, pmtvesselflangeRadius, + 0.25*pmtvesselflangeThick, 0.*deg, 360.*deg); + pmtvesselbottom_log1 = new G4LogicalVolume + (pmtvesselbottom_flange1, vessel_mat, "pmtvesselbottom_log1"); + pmtvesselbottom_phys1 = new G4PVPlacement(0, G4ThreeVector(0.,0., + (-0.5*vesselHeight-PMTvesselHeight+vesselVPos+0.25*pmtvesselflangeThick)), + "pmtvesselbottom_phys1", pmtvesselbottom_log1, vacuum_phys, false,0); + + G4Tubs* pmtvesselbottom_flange2 = new G4Tubs + ("pmtvesselbottom_flange2", 0.*cm, pmtvesselflangeRadius, + 0.25*pmtvesselflangeThick, 0.*deg, 360.*deg); + pmtvesselbottom_log2 = new G4LogicalVolume + (pmtvesselbottom_flange2, vessel_mat, "pmtvesselbottom_log2"); + pmtvesselbottom_phys2 = new G4PVPlacement(0, G4ThreeVector(0.,0., + -0.5*vesselHeight-PMTvesselHeight+vesselVPos-0.25*pmtvesselflangeThick), + "pmtvesselbottom_phys2", pmtvesselbottom_log2, vacuum_phys, false,0); + + + G4VisAttributes* vessel_vat = new G4VisAttributes(grey); + G4VisAttributes* pmtvessel_vat = new G4VisAttributes(yellow); + G4VisAttributes* pmtvessel_vat2 = new G4VisAttributes(green); // vessel_log->SetVisAttributes(G4VisAttributes::Invisible); + // vessel_vat->SetForceSolid(true); + // pmtvessel_vat->SetForceSolid(true); + // pmtvessel_vat2->SetForceSolid(true); vessel_log->SetVisAttributes(vessel_vat); + vesseltop_log1->SetVisAttributes(vessel_vat); + vesselbottom_log1->SetVisAttributes(vessel_vat); + vesseltop_log2->SetVisAttributes(pmtvessel_vat); + vesselbottom_log2->SetVisAttributes(pmtvessel_vat); + // pmtvesselbottom_log->SetVisAttributes(vessel_vat); + pmtvesselbottom_log1->SetVisAttributes(vessel_vat); + pmtvesselbottom_log2->SetVisAttributes(pmtvessel_vat2); + // ********************************************************************* @@ -436,41 +473,133 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // detector volume: gas phase ****************************************** - G4double fullDetectorRadius = vesselRadius - vesselMetalThick; - G4double fullDetectorHeight = vesselHeight - vesselMetalThick; + G4double mirrorVPos = 21.3*cm; + G4double gasGap = 6.0*mm; + G4double DetectorRadius = vesselRadius - vesselMetalThick; + G4double GXeHeight = TotalvesselHeight - mirrorVPos + gasGap; + G4double GXeVPos = 0.5*vesselHeight - 0.5*GXeHeight; - G4Tubs* detector_tube=new G4Tubs("detector_tube", - 0.*cm, fullDetectorRadius, 0.5*fullDetectorHeight, 0.*deg, 360.*deg); - detector_log = new G4LogicalVolume - (detector_tube, detector_mat, "detector_log"); - detector_phys=new G4PVPlacement(0, G4ThreeVector(0.,0.,0.), - "detector_phys", detector_log, vessel_phys, false,0); + G4Tubs* GXe_tube = new G4Tubs("GXe_tube", + 0.*cm, DetectorRadius, 0.5*GXeHeight, 0.*deg, 360.*deg); + GXe_log = new G4LogicalVolume(GXe_tube, GXe_mat, "GXe_log"); + GXe_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,GXeVPos), + "GXe_phys", GXe_log, vessel_phys, false,0); - G4VisAttributes* detector_vat= new G4VisAttributes(yellow); - // detector_log->SetVisAttributes(G4VisAttributes::Invisible); - detector_log->SetVisAttributes(detector_vat); + G4VisAttributes* GXe_vat = new G4VisAttributes(cyan); + // GXe_vat->SetForceSolid(true); + GXe_vat->SetVisibility(true); + GXe_log->SetVisAttributes(GXe_vat); // liquid phase ******************************************************* - G4double detectorRadius = 4.0*cm; - G4double detectorHeight = 21.3*cm; - G4double liqPhaseHeight = 20.40*cm; - G4double liqPhaseRadius = fullDetectorRadius; - G4double liqPhaseVPosition = -0.5*(detectorHeight-liqPhaseHeight); + G4double LXeHeight = mirrorVPos - gasGap; + G4double PMTDetectorRadius = PMTvesselRadius - vesselMetalThick; + G4double PMTDetectorHeight = PMTvesselHeight; + G4double LXeTubeHeight = LXeHeight - PMTDetectorHeight; + G4double LXe_solVPos = -0.5*(LXeTubeHeight+PMTDetectorHeight); + G4double LXeVPos = -0.5*TotalvesselHeight + 0.5*LXeHeight; - G4Tubs* liqPhase_tube=new G4Tubs("liqPhase_tube", 0.*cm, - liqPhaseRadius, 0.5*liqPhaseHeight, 0.*deg, 360.*deg); - liqPhase_log = - new G4LogicalVolume(liqPhase_tube, liqPhase_mat, "liqPhase_log"); - liqPhase_phys=new G4PVPlacement(0, - G4ThreeVector(0.*cm, 0.*cm, liqPhaseVPosition), - "liqPhase_phys", liqPhase_log, detector_phys, false, 0); + G4Tubs* LXe_tube = new G4Tubs("GXe_tube", + 0.*cm, DetectorRadius, 0.5*LXeTubeHeight, 0.*deg, 360.*deg); + G4Tubs* PMTdetector_tube = new G4Tubs("PMTdetector_tube", + 0.*cm, PMTDetectorRadius, 0.5*PMTDetectorHeight, 0.*deg, 360.*deg); + + G4UnionSolid* LXe_sol = new G4UnionSolid + ("LXe_sol", LXe_tube, PMTdetector_tube, + G4Transform3D(G4RotationMatrix(), G4ThreeVector(0,0,LXe_solVPos))); + + LXe_log = new G4LogicalVolume(LXe_sol, LXe_mat, "LXe_log"); + LXe_phys = new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, LXeVPos), + "LXe_phys", LXe_log, vessel_phys, false, 0); // attributes - G4VisAttributes* liqPhase_vat= new G4VisAttributes(yellow); - liqPhase_vat->SetVisibility(true); - liqPhase_log->SetVisAttributes(liqPhase_vat); + G4VisAttributes* LXe_vat = new G4VisAttributes(lblue); + // LXe_vat->SetForceSolid(true); + LXe_vat->SetVisibility(true); + LXe_log->SetVisAttributes(LXe_vat); + + + // Gas phase vessel lagging - for optical properties: + + G4double laggingThickness = 10.*micrometer; + G4double laggingRadius = DetectorRadius - laggingThickness; + + G4Tubs* gaslag_tube = new G4Tubs("gaslag_tube", laggingRadius, + DetectorRadius, 0.5*GXeHeight, 0.*deg, 360.*deg); + gaslag_log = new G4LogicalVolume(gaslag_tube, vessel_mat, "gaslag_log"); + gaslag_phys = new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, 0.*cm), + "gaslag_phys", gaslag_log, GXe_phys, false, 0); + + // attributes + G4VisAttributes* gaslag_vat = new G4VisAttributes(lgreen); + // gaslag_vat->SetForceSolid(true); + gaslag_vat->SetVisibility(true); + gaslag_log->SetVisAttributes(gaslag_vat); + + + // liquid phase vessel lagging - for optical properties: + + G4double lagTubeRadius = DetectorRadius - laggingThickness; + G4double lagTubeHeight = LXeHeight - PMTDetectorHeight; + G4double lagPMTRadius = PMTDetectorRadius - laggingThickness; + G4double lagPMTHeight = PMTDetectorHeight; + + G4Tubs* liqLag_tube = new G4Tubs("liqlag_tube", lagTubeRadius, + DetectorRadius, 0.5*lagTubeHeight, 0.*deg, 360.*deg); + G4Tubs* lagPMT_tube = new G4Tubs("lagPMT_tube", lagPMTRadius, + PMTDetectorRadius, 0.5*lagPMTHeight, 0.*deg, 360.*deg); + + G4UnionSolid* liqLag_sol = new G4UnionSolid + ("liqLag_sol", liqLag_tube, lagPMT_tube, + G4Transform3D(G4RotationMatrix(),G4ThreeVector(0,0,LXe_solVPos))); + + liqLag_log = new G4LogicalVolume(liqLag_sol, vessel_mat, "liqLag_log"); + liqLag_phys = new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, 0.*cm), + "liqLag_phys", liqLag_log, LXe_phys, false, 0); + + // attributes + G4VisAttributes* liqLag_vat = new G4VisAttributes(magenta); + // liqLag_vat->SetForceSolid(true); + liqLag_vat->SetVisibility(true); + liqLag_log->SetVisAttributes(liqLag_vat); + + + // Vessel Wall Optical Surface definition: + G4OpticalSurface* OpVesselSurface = new G4OpticalSurface + ("VesselSurface", unified, polished, dielectric_metal); + + // created optical lagging onto vessel - to avoid clash between over-lapping + // liquid and gas phase - so removed below: + /* + G4LogicalBorderSurface* VesselSurface; + VesselSurface = new G4LogicalBorderSurface + ("Vessel", liqPhase_phys, vessel_phys, OpVesselSurface); + */ + + const G4int NUM = 2; + G4double vessel_PP[NUM] = { 6.5*eV, 7.50*eV }; + G4double vessel_REFL[NUM] = { 0.1, 0.1 }; + G4MaterialPropertiesTable* vessel_mt = new G4MaterialPropertiesTable(); + vessel_mt->AddProperty("REFLECTIVITY", vessel_PP, vessel_REFL, NUM); + OpVesselSurface->SetMaterialPropertiesTable(vessel_mt); + + G4LogicalBorderSurface* VesselTopSurface; + VesselTopSurface = new G4LogicalBorderSurface + ("VesselTop", GXe_phys, vesseltop_phys1, OpVesselSurface); + + G4LogicalBorderSurface* VesselBottomSurface; + VesselBottomSurface = new G4LogicalBorderSurface + ("VesselBottom", LXe_phys, vesselbottom_phys2, OpVesselSurface); + + G4LogicalBorderSurface* GasVesselSurface; + GasVesselSurface = new G4LogicalBorderSurface + ("GasVessel", GXe_phys, gaslag_phys, OpVesselSurface); + + G4LogicalBorderSurface* LiquidVesselSurface; + LiquidVesselSurface = new G4LogicalBorderSurface + ("LiquidVessel", LXe_phys, liqLag_phys, OpVesselSurface); + // Cu Shield ********************************************************** @@ -479,29 +608,37 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4double CuShieldThickness = 2.4*mm; G4double CuShieldOuterRadius = 3.0*cm; G4double CuShieldInnerRadius = CuShieldOuterRadius-CuShieldThickness; - G4double CuShieldVPosition = -0.5*(liqPhaseHeight-CuShieldHeight); + G4double CuShieldVPosition = -0.5*LXeTubeHeight - PMTDetectorHeight + + 0.5*CuShieldHeight; - G4Tubs* CuShield_tube=new G4Tubs("CuShield_tube", CuShieldInnerRadius, + // Zero co-ordinate of the union is the zero of the first volume, + // i.e. the offset is still present + + G4Tubs* CuShield_tube = new G4Tubs("CuShield_tube", CuShieldInnerRadius, CuShieldOuterRadius, 0.5*CuShieldHeight, 0.*deg, 360.*deg); - CuShield_log = - new G4LogicalVolume(CuShield_tube, CuShield_mat, "CuShield_log"); - CuShield_phys=new G4PVPlacement(0, + CuShield_log = new G4LogicalVolume(CuShield_tube, CuShield_mat, + "CuShield_log"); + CuShield_phys = new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, CuShieldVPosition), - "CuShield_phys", CuShield_log, liqPhase_phys, false, 0); - G4VisAttributes* CuShield_vat= new G4VisAttributes(magenta); + "CuShield_phys", CuShield_log, LXe_phys, false, 0); + + // G4VisAttributes* CuShield_vat= new G4VisAttributes(magenta); + G4VisAttributes* CuShield_vat = new G4VisAttributes(brown); + // CuShield_vat->SetForceSolid(true); CuShield_vat->SetVisibility(true); CuShield_log->SetVisAttributes(CuShield_vat); // Cu shield surface G4OpticalSurface* OpCuShieldSurface = new G4OpticalSurface - ("ShieldSurface", unified, polished, dielectric_metal); + ("ShieldSurface", unified, ground, dielectric_metal, 0.2); + // ("ShieldSurface", unified, polished, dielectric_metal); G4LogicalBorderSurface* ShieldSurface; ShieldSurface = new G4LogicalBorderSurface - ("Shield", liqPhase_phys, CuShield_phys, OpCuShieldSurface); + ("Shield", LXe_phys, CuShield_phys, OpCuShieldSurface); - const G4int NUM = 2; G4double CuShield_PP[NUM] = { 7.0*eV, 7.50*eV }; - G4double CuShield_REFL[NUM] = { 0.271, 0.230 }; + G4double CuShield_REFL[NUM] = { 0.4, 0.3 }; + // G4double CuShield_REFL[NUM] = { 0.271, 0.230 }; G4MaterialPropertiesTable *CuShield_mt = new G4MaterialPropertiesTable(); CuShield_mt->AddProperty("REFLECTIVITY", CuShield_PP, CuShield_REFL, NUM); OpCuShieldSurface->SetMaterialPropertiesTable(CuShield_mt); @@ -510,87 +647,86 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // rings *************************************************************** G4double ringHeight = 4.*mm; - G4double ringOuterRadius = detectorRadius; + G4double ringOuterRadius = 4.0*cm; G4double ringInnerRadius = CuShieldOuterRadius; G4double ringVOffset = 0.5*ringHeight; - G4double ringVPosition = 0.5*detectorHeight-ringVOffset; + G4double ringVPosition = -0.5*GXeHeight + gasGap +ringVOffset; G4Tubs* ring_tube=new G4Tubs("ring_tube", ringInnerRadius, ringOuterRadius, 0.5*ringHeight, 0.*deg, 360.*deg); ring_log = new G4LogicalVolume(ring_tube, ring_mat, "ring_log"); // optical surface: ring materials table - G4double ring_PP[NUM] = { 7.00*eV, 7.50*eV }; - G4double ring_REFL[NUM] = { 0.25, 0.25 }; + G4double ring_PP[NUM] = { 6.00*eV, 7.50*eV }; + G4double ring_REFL[NUM] = { 0.45, 0.35 }; G4MaterialPropertiesTable *ring_mt = new G4MaterialPropertiesTable(); ring_mt->AddProperty("REFLECTIVITY", ring_PP, ring_REFL, NUM); - G4OpticalSurface* OpRingSurface = new G4OpticalSurface("RingSurface", - unified, polished, dielectric_metal); - // omitted last argument which is surface roughness if it's non-polished - // - i.e. ground + G4OpticalSurface* OpRingSurface = new G4OpticalSurface + ("RingSurface", unified, ground, dielectric_metal, 0.05); + // ("RingSurface", unified, polished, dielectric_metal); + // last argument is surface roughness if it's non-polished - i.e. ground OpRingSurface->SetMaterialPropertiesTable(ring_mt); - // rings - ring_phys_gas[0]=new G4PVPlacement(0, - G4ThreeVector(0.*cm, 0.*cm, ringVPosition), - "ring_phys0",ring_log,detector_phys,false, 0); + // rings inside gas phase + ring_phys_gas[0] = new G4PVPlacement(0, G4ThreeVector + (0.*cm, 0.*cm, ringVPosition),"ring_phys0",ring_log,GXe_phys,false, 0); G4LogicalBorderSurface* RingSurface_gas0; RingSurface_gas0 = new G4LogicalBorderSurface - ("Ring", detector_phys, ring_phys_gas[0], OpRingSurface); + ("Ring", GXe_phys, ring_phys_gas[0], OpRingSurface); - ring_phys_gas[1]=new G4PVPlacement(0, + ring_phys_gas[1] = new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=ringHeight+1.0*mm), - "ring_phys1",ring_log, detector_phys, false, 0); + "ring_phys1",ring_log, GXe_phys, false, 0); G4LogicalBorderSurface* RingSurface_gas1; RingSurface_gas1 = new G4LogicalBorderSurface - ("Ring", detector_phys, ring_phys_gas[1], OpRingSurface); + ("Ring", GXe_phys, ring_phys_gas[1], OpRingSurface); - // LIQUID Phase starts here: - ringVPosition+=0.5*(detectorHeight-liqPhaseHeight); + // rings inside liquid phase: + ringVPosition = 0.5*LXeTubeHeight; - ring_phys_liq[0]=new G4PVPlacement(0, - G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=ringHeight), - "ring_phys2",ring_log,liqPhase_phys, false, 0); + ring_phys_liq[0] = new G4PVPlacement(0, + G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=0.5*ringHeight), + "ring_phys2",ring_log,LXe_phys, false, 0); G4LogicalBorderSurface* RingSurface_liq0; RingSurface_liq0 = new G4LogicalBorderSurface - ("Ring", liqPhase_phys, ring_phys_liq[0], OpRingSurface); + ("Ring", LXe_phys, ring_phys_liq[0], OpRingSurface); - ring_phys_liq[1]=new G4PVPlacement(0, + ring_phys_liq[1] = new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=ringHeight+1.75*mm), - "ring_phys3",ring_log, liqPhase_phys, false, 0); + "ring_phys3",ring_log, LXe_phys, false, 0); G4LogicalBorderSurface* RingSurface_liq1; RingSurface_liq1 = new G4LogicalBorderSurface - ("Ring", liqPhase_phys, ring_phys_liq[1], OpRingSurface); + ("Ring", LXe_phys, ring_phys_liq[1], OpRingSurface); ring_phys_liq[2]=new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=ringHeight), - "ring_phys4",ring_log, liqPhase_phys, false, 0); + "ring_phys4",ring_log, LXe_phys, false, 0); G4LogicalBorderSurface* RingSurface_liq2; RingSurface_liq2 = new G4LogicalBorderSurface - ("Ring", liqPhase_phys, ring_phys_liq[2], OpRingSurface); + ("Ring", LXe_phys, ring_phys_liq[2], OpRingSurface); ring_phys_liq[3]=new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=ringHeight), - "ring_phys5",ring_log, liqPhase_phys, false, 0); + "ring_phys5",ring_log, LXe_phys, false, 0); G4LogicalBorderSurface* RingSurface_liq3; RingSurface_liq3 = new G4LogicalBorderSurface - ("Ring", liqPhase_phys, ring_phys_liq[3], OpRingSurface); + ("Ring", LXe_phys, ring_phys_liq[3], OpRingSurface); ring_phys_liq[4]=new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=ringHeight+1.75*mm), - "ring_phys6",ring_log, liqPhase_phys,false, 0); + "ring_phys6",ring_log, LXe_phys,false, 0); G4LogicalBorderSurface* RingSurface_liq4; RingSurface_liq4 = new G4LogicalBorderSurface - ("Ring", liqPhase_phys, ring_phys_liq[4], OpRingSurface); + ("Ring", LXe_phys, ring_phys_liq[4], OpRingSurface); ring_phys_liq[5]=new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, ringVPosition-=ringHeight+1.75*mm), - "ring_phys7",ring_log, liqPhase_phys,false, 0); + "ring_phys7",ring_log, LXe_phys,false, 0); G4LogicalBorderSurface* RingSurface_liq5; RingSurface_liq5 = new G4LogicalBorderSurface - ("Ring", liqPhase_phys, ring_phys_liq[5], OpRingSurface); + ("Ring", LXe_phys, ring_phys_liq[5], OpRingSurface); G4VisAttributes* ring_vat= new G4VisAttributes(lgrey); @@ -603,17 +739,16 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4double mirrorHeight = 2.0*mm; G4double mirrorRadius = ringInnerRadius; G4double mirrorVOffset = 0.5*ringHeight; - G4double mirrorVPosition = 0.5*detectorHeight-mirrorVOffset; + G4double mirrorVPosition = -0.5*GXeHeight + gasGap +mirrorVOffset; - G4Tubs* mirror_tube=new G4Tubs("mirror_tube", 0.*cm, mirrorRadius, + G4Tubs* mirror_tube = new G4Tubs("mirror_tube", 0.*cm, mirrorRadius, 0.5*mirrorHeight, 0.*deg, 360.*deg); - mirror_log = - new G4LogicalVolume(mirror_tube, mirror_mat, "mirror_log"); - mirror_phys=new G4PVPlacement(0, + mirror_log = new G4LogicalVolume(mirror_tube, mirror_mat, "mirror_log"); + mirror_phys = new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, mirrorVPosition), - "mirror_phys", mirror_log, detector_phys, false, 0); + "mirror_phys", mirror_log, GXe_phys, false, 0); - G4VisAttributes* mirror_vat= new G4VisAttributes(red); + G4VisAttributes* mirror_vat = new G4VisAttributes(cyan); mirror_vat->SetVisibility(true); // mirror_vat->SetForceSolid(true); mirror_log->SetVisAttributes(mirror_vat); @@ -624,10 +759,10 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { ("MirrorSurface", unified, polished, dielectric_metal); G4LogicalBorderSurface* MirrorSurface; MirrorSurface = new G4LogicalBorderSurface - ("Mirror", detector_phys, mirror_phys, OpMirrorSurface); + ("Mirror", GXe_phys, mirror_phys, OpMirrorSurface); - G4double mirror_PP[NUM] = { 7.00*eV, 7.50*eV }; - G4double mirror_REFL[NUM] = { 0.70, 0.70 }; + G4double mirror_PP[NUM] = { 6.00*eV, 7.50*eV }; + G4double mirror_REFL[NUM] = { 0.75, 0.7 }; G4MaterialPropertiesTable *mirror_mt = new G4MaterialPropertiesTable(); mirror_mt->AddProperty("REFLECTIVITY", mirror_PP, mirror_REFL, NUM); OpMirrorSurface->SetMaterialPropertiesTable(mirror_mt); @@ -638,23 +773,21 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4double gridHeight = 0.100*mm; G4double gridRadius = ringInnerRadius; G4double grid1VOffset = 5.5*ringHeight+2.75*mm; - G4double grid1VPosition = 0.5*liqPhaseHeight+(detectorHeight-liqPhaseHeight) - - grid1VOffset; + G4double grid1VPosition = 0.5*LXeTubeHeight - grid1VOffset; G4double grid2VOffset = 6.5*ringHeight+4.50*mm; - G4double grid2VPosition = 0.5*liqPhaseHeight+(detectorHeight-liqPhaseHeight) - - grid2VOffset; + G4double grid2VPosition = 0.5*LXeTubeHeight - grid2VOffset; - G4Tubs* grid_tube=new G4Tubs("grid_tube", 0.*cm, gridRadius, + G4Tubs* grid_tube = new G4Tubs("grid_tube", 0.*cm, gridRadius, 0.5*gridHeight, 0.*deg, 360.*deg); - grid1_log = new G4LogicalVolume(grid_tube, grid_mat, "grid1_log"); - grid1_phys=new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, grid1VPosition), - "grid1_phys", grid1_log, liqPhase_phys, false, 0); - grid2_log = new G4LogicalVolume(grid_tube, grid_mat, "grid2_log"); - grid2_phys=new G4PVPlacement(0, G4ThreeVector(0.*cm, 0.*cm, grid2VPosition), - "grid2_phys", grid2_log, liqPhase_phys, false, 0); + grid1_log = new G4LogicalVolume(grid_tube, grid_mat, "grid1_log"); + grid1_phys = new G4PVPlacement(0,G4ThreeVector(0.*cm, 0.*cm, grid1VPosition), + "grid1_phys", grid1_log, LXe_phys, false, 0); + grid2_log = new G4LogicalVolume(grid_tube, grid_mat, "grid2_log"); + grid2_phys = new G4PVPlacement(0,G4ThreeVector(0.*cm, 0.*cm, grid2VPosition), + "grid2_phys", grid2_log, LXe_phys, false, 0); - G4VisAttributes* grid_vat= new G4VisAttributes(red); + G4VisAttributes* grid_vat = new G4VisAttributes(red); grid_vat->SetVisibility(true); grid1_log->SetVisAttributes(grid_vat); grid2_log->SetVisAttributes(grid_vat); @@ -662,67 +795,91 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // alpha source holder ************************************************ - G4double alphaHeight = 1.230*mm; // position where alpha starts - G4double recessHeight = 0.23*mm; // totals lead thickness = 1.23 mm - G4double alphaRadius = 0.65*mm; - G4double recessRadius = 0.40*mm; + 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 recessVPosition = 0.5*(alphaHeight - recessHeight); - G4double recessVOffset = 0.5*(alphaHeight - recessHeight); - // G4double recessVPosition = recessVOffset; G4double alphaVOffset = grid1VOffset-0.5*alphaHeight; - G4double alphaVPosition = 0.5*liqPhaseHeight+(detectorHeight-liqPhaseHeight) - - alphaVOffset; + 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 alphaVPosition = 0.5*LXeTubeHeight - alphaVOffset + extra_offset; G4Tubs* alpha_tube = new G4Tubs("alpha_tube", 0.*cm, alphaRadius, 0.5*alphaHeight, 0.*deg, 360.*deg); G4Tubs* recess_tube = new G4Tubs("recess_tube", 0.*cm, recessRadius, 0.5*recessHeight, 0.*deg, 360.*deg); - G4RotationMatrix rotMatrixAlpha; - rotMatrixAlpha.rotateY(0.0*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 - (rotMatrixAlpha, G4ThreeVector(0,0,recessVOffset))); - alpha_log = new G4LogicalVolume(alpha_sol, alpha_mat, "alpha_log"); - alpha_phys = new G4PVPlacement(0, G4ThreeVector(0., 0., alphaVPosition), - "alpha_phys", alpha_log, liqPhase_phys, false, 0); + (G4RotationMatrix(), G4ThreeVector(0. ,0. , recessVPosition))); + alpha_log = new G4LogicalVolume(alpha_sol, alpha_mat, "alpha_log"); - G4VisAttributes* alpha_vat= new G4VisAttributes(white); + alpha_phys = new G4PVPlacement(0, G4ThreeVector(0., 0., alphaVPosition), + "alpha_phys", alpha_log, LXe_phys, false, 0); + + G4VisAttributes* alpha_vat = new G4VisAttributes(white); alpha_vat->SetVisibility(true); alpha_log ->SetVisAttributes(alpha_vat); // alpha source HOLDER surface G4OpticalSurface* OpAlphaSurface = new G4OpticalSurface("AlphaSurface", - unified, polished, dielectric_metal); + unified, ground, dielectric_metal, 0.4); + // unified, polished, dielectric_metal); G4LogicalBorderSurface* AlphaSurface; AlphaSurface = new G4LogicalBorderSurface - ("Alpha", liqPhase_phys, alpha_phys, OpAlphaSurface); + ("Alpha", LXe_phys, alpha_phys, OpAlphaSurface); - G4double alpha_PP[NUM] = { 7.00*eV, 7.50*eV }; - G4double alpha_REFL[NUM] = { 0.1, 0.1 }; + G4double alpha_PP[NUM] = { 6.00*eV, 7.50*eV }; + G4double alpha_REFL[NUM] = { 0.05, 0.05 }; G4MaterialPropertiesTable *alpha_mt = new G4MaterialPropertiesTable(); alpha_mt->AddProperty("REFLECTIVITY", alpha_PP, alpha_REFL, NUM); OpAlphaSurface->SetMaterialPropertiesTable(alpha_mt); - // americium *********************************************************** - G4double americiumHeight = 20.*nanometer; - G4double americiumRadius = recessRadius; + // moved above for the "extra_offset": + // G4double americiumHeight = 600.*nanometer; // assumes ~1% Am + G4double americiumRadius = recessRadius - 50.0*micrometer; G4double americiumVOffset = 0.5*(alphaHeight-americiumHeight)-recessHeight; G4double americiumVPosition = americiumVOffset; - sourceZ = -0.5*(detectorHeight-liqPhaseHeight)+ - alphaVPosition + americiumVPosition; - G4cout << "Calibration source: Z= " << sourceZ/mm << " mm" << G4endl; + 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); - americium_log = new G4LogicalVolume(americium_tube, americium_mat, + americium_log = new G4LogicalVolume(americium_tube, americium_mat, "americium_log"); americium_phys = new G4PVPlacement(0, G4ThreeVector(0., 0., americiumVPosition),"americium_phys", americium_log, alpha_phys,false,0); + // americium optical properties: + G4OpticalSurface* OpAmericiumSurface = new G4OpticalSurface + ("AmericiumSurface", unified, ground, dielectric_metal, 0.3); + // ("AmericiumSurface", unified, polished, dielectric_metal); + 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 }; + G4MaterialPropertiesTable *americium_mt = new G4MaterialPropertiesTable(); + americium_mt->AddProperty("REFLECTIVITY", americium_PP, americium_REFL, NUM); + OpAlphaSurface->SetMaterialPropertiesTable(americium_mt); + G4VisAttributes* americium_vat= new G4VisAttributes(cyan); americium_vat->SetVisibility(true); americium_vat->SetForceSolid(true); @@ -733,34 +890,28 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4double pmtHeight = 12.0*cm; G4double pmtRadius = 2.6*cm; - G4double pmtVOffset = 5.0*cm; - G4double pmtVPosition = -0.5*(liqPhaseHeight-pmtHeight)+pmtVOffset; - - // G4double windowVOffset = 0.5*pmtHeight - 2.*pmtRadius*cos(30.0*deg); - // G4double windowVPosition = pmtVPosition + windowVOffset; + G4double pmtVOffset = 1.0*cm; + G4double pmtVPosition = -0.5*(LXeTubeHeight+pmtHeight)+pmtVOffset; G4Sphere* pmt_window = new G4Sphere("pmt_sphere", 0.*cm, 2.*pmtRadius, 0.*deg, 360.*deg, 0.*deg, 30.0*deg); - G4Tubs* pmt_tube=new G4Tubs("pmt_tube", 0.*cm, pmtRadius, 0.5*pmtHeight, - 0.*deg, 360.*deg); - - G4RotationMatrix rotMatrixpmt; // unit rotation matrix - G4double anglepmt_Phys = 0.0*deg; // rotational angle - rotMatrixpmt.rotateY(anglepmt_Phys); // rot matrix + G4Tubs* pmt_tube = new G4Tubs("pmt_tube", 0.*cm, pmtRadius, 0.5*pmtHeight, + 0.*deg, 360.*deg); G4UnionSolid* pmt_sol = new G4UnionSolid("pmt_sol", pmt_tube, pmt_window, - G4Transform3D(rotMatrixpmt, G4ThreeVector(0,0,0.5*pmtHeight + G4Transform3D(G4RotationMatrix(), G4ThreeVector(0,0,0.5*pmtHeight -2.*pmtRadius*cos(30.0*deg)))); - pmt_log = new G4LogicalVolume(pmt_sol, pmt_mat, "pmt_log"); + pmt_log = new G4LogicalVolume(pmt_sol, pmt_mat, "pmt_log"); pmt_phys = new G4PVPlacement(0,G4ThreeVector(0.*cm, 0.*cm, pmtVPosition), - "pmt_phys", pmt_log, liqPhase_phys, false, 0); + "pmt_phys", pmt_log, LXe_phys, false, 0); - G4OpticalSurface* pmt_opsurf = new G4OpticalSurface("pmt_opsurf", - unified, polished, dielectric_dielectric); + 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", liqPhase_phys, pmt_phys, pmt_opsurf); + ("pmt_surf", LXe_phys, pmt_phys, pmt_opsurf); G4VisAttributes* pmt_vat= new G4VisAttributes(blue); pmt_vat->SetForceSolid(true); @@ -770,9 +921,8 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // photocathode ******************************************************* - // G4double phcathRadius = 22.5*mm; - // G4double phcathVOffset = 2.*pmtRadius*cos(30.*deg); - G4double phcathVPosition = 0.*cm; + G4double phcathVOffset = 0.5*pmtHeight-2.*pmtRadius*cos(30.0*deg); + G4double phcathVPosition = phcathVOffset; G4Sphere* phcath_sol = new G4Sphere("phcath_sphere", 2.*pmtRadius-1.6*mm, 2.*pmtRadius-1.59*mm, 0.*deg, 360.*deg, 0.*deg, @@ -788,7 +938,7 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { phcath_surf = new G4LogicalBorderSurface ("phcath_surf", pmt_phys, phcath_phys, phcath_opsurf); - G4double phcath_PP[NUM] = { 7.00*eV, 7.50*eV }; + G4double phcath_PP[NUM] = { 6.00*eV, 7.50*eV }; G4double phcath_REFL[NUM] = { 0.0, 0.0}; G4MaterialPropertiesTable* phcath_mt = new G4MaterialPropertiesTable(); phcath_mt->AddProperty("REFLECTIVITY", phcath_PP, phcath_REFL, NUM); @@ -803,40 +953,50 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // ...................................................................... // attach user limits ................................................... - G4double RoomTimeCut = 10000. * s; + + G4cout << G4endl << "User Limits: " << G4endl + << "\t theMaxTimeCuts: " << G4BestUnit(theMaxTimeCuts,"Time") + << G4endl + << "\t theRoomTimeCut: " << G4BestUnit(theRoomTimeCut,"Time") + << G4endl + << "\t theMaxStepSize: " << G4BestUnit(theMaxStepSize,"Length") + << G4endl + << "\t theMinEKine: " << G4BestUnit(theMinEkine,"Energy") + << G4endl + << "\t minRoomMinEKine: " << G4BestUnit(theRoomMinEkine,"Energy") + << G4endl << G4endl; - world_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,RoomTimeCut)); - lab_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,RoomTimeCut)); - jacket_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,RoomTimeCut)); - vacuum_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,RoomTimeCut)); - vessel_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,RoomTimeCut)); - detector_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - liqPhase_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - CuShield_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - ring_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - mirror_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - grid1_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - grid2_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - alpha_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - americium_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - pmt_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); - phcath_log->SetUserLimits - (new G4UserLimits(theMaxStepSize,DBL_MAX,theMaxTimeCuts)); + if (theUserLimitsForRoom != 0) delete theUserLimitsForRoom; + if (theUserLimitsForDetector != 0) delete theUserLimitsForDetector; + + theUserLimitsForRoom = new G4UserLimits(theMaxStepSize, // step length max + DBL_MAX, // track length max + theRoomTimeCut, // Time cut + theRoomMinEkine); // min energy + +#include "DMXDetectorRoomLimits.icc" + + theUserLimitsForDetector = new G4UserLimits(theDetectorStepSize, + DBL_MAX, // Track Max + theMaxTimeCuts, + theMinEkine); + + world_log->SetUserLimits(theUserLimitsForRoom); + lab_log->SetUserLimits(theUserLimitsForRoom); + jacket_log->SetUserLimits(theUserLimitsForRoom); + vacuum_log->SetUserLimits(theUserLimitsForRoom); + vessel_log->SetUserLimits(theUserLimitsForRoom); + GXe_log->SetUserLimits(theUserLimitsForDetector); + LXe_log->SetUserLimits(theUserLimitsForXenon); + CuShield_log->SetUserLimits(theUserLimitsForDetector); + ring_log->SetUserLimits(theUserLimitsForDetector); + mirror_log->SetUserLimits(theUserLimitsForDetector); + grid1_log->SetUserLimits(theUserLimitsForDetector); + grid2_log->SetUserLimits(theUserLimitsForDetector); + alpha_log->SetUserLimits(theUserLimitsForDetector); + americium_log->SetUserLimits(theUserLimitsForDetector); + pmt_log->SetUserLimits(theUserLimitsForDetector); + phcath_log->SetUserLimits(theUserLimitsForDetector); // ...................................................................... @@ -847,7 +1007,7 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4String name="/DMXDet/LXeSD"; LXeSD = new DMXScintSD(name, this); SDman->AddNewDetector(LXeSD); - liqPhase_log->SetSensitiveDetector(LXeSD); + LXe_log->SetSensitiveDetector(LXeSD); SDman = G4SDManager::GetSDMpointer(); name="/DMXDet/pmtSD"; @@ -855,8 +1015,78 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { SDman->AddNewDetector(pmtSD); phcath_log->SetSensitiveDetector(pmtSD); - return world_phys; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// specific method to G4UserLimits:= SetUserMinEkine +void DMXDetectorConstruction::SetRoomEnergyCut(G4double val) +{ + // set minimum charged particle energy cut - NB: for ROOM + theRoomMinEkine = val; + if (theUserLimitsForRoom != 0) + { + theUserLimitsForRoom->SetUserMinEkine(val); + G4cout << " Changing Room energy cut to: " << G4BestUnit(val,"Energy") + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// specific method to G4UserLimits:= SetUserMinEkine +void DMXDetectorConstruction::SetEnergyCut(G4double val) +{ + // set minimum charged particle energy cut - NB: for Xenon Detector + theMinEkine = val; + if (theUserLimitsForDetector != 0) + { + theUserLimitsForDetector->SetUserMinEkine(val); + G4cout << "Changing Detector energy cut to: " << G4BestUnit(val,"Energy") + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// specific method to G4UserLimits:= SetUserMaxTime +void DMXDetectorConstruction::SetRoomTimeCut(G4double val) +{ + // set room time cut: + theRoomTimeCut = val; + if (theUserLimitsForRoom != 0) + { + theUserLimitsForRoom->SetUserMaxTime(val); + G4cout << " Changing Room Time cut to: " << G4BestUnit(val,"Time") + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// specific method to G4UserLimits:= SetUserMaxTime +void DMXDetectorConstruction::SetTimeCut(G4double val) +{ + // set detector time cut: + theMaxTimeCuts = val; + if (theUserLimitsForDetector != 0) + { + theUserLimitsForDetector->SetUserMaxTime(val); + G4cout << " Changing Detector Time cut to: " << G4BestUnit(val,"Time") + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +//void DMXDetectorConstruction::UpdateGeometry() +//{ +// G4RunManager::GetRunManager()->DefineWorldVolume(Construct()); +//} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + diff --git a/examples/advanced/underground_physics/src/DMXDetectorField.icc b/examples/advanced/underground_physics/src/DMXDetectorField.icc new file mode 100644 index 0000000000..44beeb58e4 --- /dev/null +++ b/examples/advanced/underground_physics/src/DMXDetectorField.icc @@ -0,0 +1,23 @@ + G4double EField = 0.0*kilovolt/cm; + + // create electric field + G4UniformElectricField* elecField = + new G4UniformElectricField(G4ThreeVector(0,EField,0)); + + // equation of motion + G4EqMagElectricField* EquationOfMotion = + new G4EqMagElectricField(elecField); + + // stepper for equation of motion + G4MagIntegratorStepper* DMXStepper = + new G4ClassicalRK4(EquationOfMotion); + + // chordfinder + G4ChordFinder* DMXChordFinder = + new G4ChordFinder(elecField, 1.0e-3*mm, DMXStepper); + + // field manager + G4FieldManager* DMXFieldManager = new G4FieldManager(); + DMXFieldManager->SetChordFinder(DMXChordFinder); + G4TransportationManager::GetTransportationManager() + -> SetFieldManager(DMXFieldManager); diff --git a/examples/advanced/underground_physics/src/DMXDetectorMaterial.icc b/examples/advanced/underground_physics/src/DMXDetectorMaterial.icc new file mode 100644 index 0000000000..9527f9f147 --- /dev/null +++ b/examples/advanced/underground_physics/src/DMXDetectorMaterial.icc @@ -0,0 +1,209 @@ + G4double density, // density + a, // atomic mass + z; // atomic number + G4String name, // name + symbol; // symbol + G4int ncomponents, // n components + iz, // number of protons + in; // number of nuceons + G4double abundance, // abundance + temperature, // temperature + pressure; // pressure + + + // making vacuum + G4Material* vacuum = new G4Material + (name="Vacuum", z=1., a=1.*g/mole, density=1.e-20*g/cm3, + kStateGas, temperature=0.1*kelvin, pressure=1.e-20*bar); + + + // xenons + G4Element* elementXe = new G4Element( "Xenon", "Xe", 54., 131.29*g/mole ); + G4Material* LXe = new G4Material + ("LXe", 3.02*g/cm3, 1, kStateLiquid, 173.15*kelvin, 1.5*atmosphere ); + G4Material* GXe = new G4Material + ("GXe", 0.005887*g/cm3, 1, kStateGas, 173.15*kelvin, 1.5*atmosphere ); + LXe->AddElement( elementXe, 1); + GXe->AddElement( elementXe, 1); + + const G4int NUMENTRIES = 3; + // G4double LXe_PP[NUMENTRIES] = { 7.07*eV, 7.07*eV }; + G4double LXe_PP[NUMENTRIES] = { 7.0*eV , 7.07*eV, 7.14*eV }; + G4double LXe_SCINT[NUMENTRIES] = { 0.1, 1.0, 0.1 }; + 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("RINDEX", LXe_PP, LXe_RIND, NUMENTRIES); + LXe_mt->AddProperty("ABSLENGTH", LXe_PP, LXe_ABSL, NUMENTRIES); + LXe->SetMaterialPropertiesTable(LXe_mt); + + // G4double GXe_PP[NUMENTRIES] = { 7.07*eV, 7.07*eV }; + G4double GXe_PP[NUMENTRIES] = { 7.0*eV, 7.07*eV, 7.14*eV }; + G4double GXe_SCINT[NUMENTRIES] = { 0.1, 1.0, 0.1 }; + 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("RINDEX", GXe_PP, GXe_RIND, NUMENTRIES); + GXe_mt->AddProperty("ABSLENGTH", GXe_PP, GXe_ABSL, NUMENTRIES); + GXe->SetMaterialPropertiesTable(GXe_mt); + + + // making quartz + G4Element* O = new G4Element + (name="Oxygen" ,symbol="O" , z= 8., a=16.00*g/mole); + G4Element* Si = new G4Element + (name="Silicon",symbol="Si" , z= 14., a=28.09*g/mole); + G4Material* quartz = new G4Material + (name="quartz", density=2.200*g/cm3, ncomponents=2); + quartz->AddElement(Si, 1); + quartz->AddElement(O , 2); + + G4double quartz_PP[NUMENTRIES] = { 5.0*eV, 6.69*eV, 7.50*eV }; // lambda range 4 ri + G4double quartz_RIND[NUMENTRIES] = { 1.51, 1.57, 1.61 }; // ref index + // G4double quartz_RIND[NUMENTRIES] = { 1.45, 1.51, 1.54 }; // ref index + G4double quartz_ABSL[NUMENTRIES] = { 3.0*cm, 3.0*cm, 3.0*cm };// atten length + G4MaterialPropertiesTable *quartz_mt = new G4MaterialPropertiesTable(); + quartz_mt->AddProperty("RINDEX", quartz_PP, quartz_RIND, NUMENTRIES); + quartz_mt->AddProperty("ABSLENGTH", quartz_PP, quartz_ABSL, NUMENTRIES); + quartz->SetMaterialPropertiesTable(quartz_mt); + + + // aluminium + G4Element* Al = new G4Element + (name="Aluminium" ,symbol="Al" , z= 13., a=26.98*g/mole); + G4Material* metalAl = new G4Material + (name="MetalAluminium", density=2.700*g/cm3, ncomponents=1); + metalAl->AddElement(Al, 1); + + + // iron + G4Element* Fe = new G4Element + (name="Iron" ,symbol="Fe" , z= 26., a=55.85*g/mole); + G4Material* metalFe = new G4Material + (name="MetalIron", density=7.874*g/cm3, ncomponents=1); + metalFe->AddElement(Fe, 1); + + + // stainless steel + G4Element* C = new G4Element( "Carbon", "C", 6. , 12.011*g/mole); + G4Element* Co = new G4Element( "Cobalt", "Co", 27. , 58.9332*g/mole); + G4Material* ssteel = new G4Material + (name="Steel", density=7.7*g/cm3, ncomponents=3); + ssteel->AddElement(C, 0.04); + ssteel->AddElement(Fe, 0.88); + ssteel->AddElement(Co, 0.08); + + + // copper + G4Element* Cu = new G4Element + (name="Copper" ,symbol="Cu" , z= 29., a=63.55*g/mole); + G4Material* metalCu = new G4Material + (name="MetalCopper", density=8.960*g/cm3, ncomponents=1); + metalCu->AddElement(Cu, 1); + + // lead + G4Element* Pb = new G4Element + (name="Lead",symbol="Pb" , z= 82., a=207.2*g/mole); + G4Material* metalPb = new G4Material + (name="MetalLead", density=11.340*g/cm3, ncomponents=1); + metalPb->AddElement(Pb, 1); + + + // Americium: - NOTE it's AmO2.......... + G4Isotope* Am241 = new G4Isotope + (name="Americium241", iz= 95, in=241, a=241.0*g/mole); + G4Element* Am = new G4Element + (name="Americium241", "Am", ncomponents=1); + Am->AddIsotope(Am241, abundance=1); + G4Material* sourceAm = new G4Material + (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); + G4Element* U = new G4Element + (name="Uranium", "U", ncomponents=1); + U->AddIsotope(U235, abundance=1); + G4Material* sourceAm = new G4Material + (name="UraniumSource", density=13.61*g/cm3, ncomponents=1); + sourceAm->AddElement(U, 1); + */ + + // air + G4Element* N = new G4Element + (name="Nitrogen",symbol="N" , z= 7., a=14.00674*g/mole); + G4Material* Air = new G4Material + ("AIR", 1.2929*kg/m3, 2, kStateGas, 300.00*kelvin, 1.0*atmosphere); + Air->AddElement(N, 0.8); + Air->AddElement(O , 0.2); + + // liquid nitrogen: + G4Material* LN2 = new G4Material + ("LN2", 0.8*g/cm3, 1, kStateLiquid, 77.*kelvin, 1.0*atmosphere); + LN2->AddElement(N, 1); + + //concrete + G4Element* H = new G4Element + (name="Hydrogen",symbol="H" , z= 1., a=1.00794*g/mole); + G4Element* Ca = new G4Element + (name="Calcium",symbol="Ca" , z= 20., a=40.078*g/mole); + G4Material* concrete = new G4Material + (name="Concrete", density=2.3*g/cm3, ncomponents=6); + concrete->AddElement(Si, 0.227915); + concrete->AddElement(O, 0.60541); + concrete->AddElement(H, 0.09972); + concrete->AddElement(Ca, 0.04986); + concrete->AddElement(Al, 0.014245); + concrete->AddElement(Fe, 0.00285); + + + //water + G4Material* water = new G4Material + (name="water", density=1.00*g/cm3, ncomponents=2); + water->AddElement(H , 2); + water->AddElement(O , 1); + + + // wood + G4Material* wood = new G4Material + (name="wood", density=0.9*g/cm3, ncomponents=3); + wood->AddElement(H , 4); + wood->AddElement(O , 1); + wood->AddElement(C , 2); + + // print materials + // G4cout << *(G4Material::GetMaterialTable()) << G4endl; + // G4cout << *(G4Isotope::GetIsotopeTable()) << G4endl; + // G4cout << *(G4Element::GetElementTable()) << G4endl; + + // assign materials + world_mat = concrete; + lab_mat = Air; + cupboard_mat = wood; + glass_mat = quartz; + panel_mat = metalAl; + door_mat = wood; + desk_mat = wood; + crate_mat = metalAl; + LN2jacket_mat = ssteel; + LN2_mat = LN2; + jacket_mat = ssteel; +jacketflange_mat = ssteel; + vacuum_mat = vacuum; + copper_mat = metalCu; + vessel_mat = ssteel; + GXe_mat = GXe; + CuShield_mat = metalCu; + LXe_mat = LXe; + alpha_mat = metalPb; + americium_mat = sourceAm; + ring_mat = ssteel; + mirror_mat = metalAl; + grid_mat = LXe; + pmt_mat = quartz; + phcath_mat = metalAl; diff --git a/examples/advanced/underground_physics/src/DMXDetectorMessenger.cc b/examples/advanced/underground_physics/src/DMXDetectorMessenger.cc new file mode 100644 index 0000000000..5d41032ad7 --- /dev/null +++ b/examples/advanced/underground_physics/src/DMXDetectorMessenger.cc @@ -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. * +// ******************************************************************** +// +// +// -------------------------------------------------------------- +// GEANT 4 - Underground Dark Matter Detector Advanced Example +// +// For information related to this code contact: Alex Howard +// e-mail: a.s.howard@ic.ac.uk +// -------------------------------------------------------------- +// Comments +// +// Underground Advanced +// by A. Howard and H. Araujo +// (27th November 2001) +// +// SteppingActionMessenger program +// -------------------------------------------------------------- + +#include "DMXDetectorMessenger.hh" + +#include "DMXDetectorConstruction.hh" + +#include "globals.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + + +DMXDetectorMessenger::DMXDetectorMessenger + (DMXDetectorConstruction* DC):detectorConstruction(DC) { + + RoomEKineCutCmd = new G4UIcmdWithADoubleAndUnit("/dmx/RoomMinEnergyCut",this); + RoomEKineCutCmd->SetGuidance("Minimum Charged particle cut in ROOM"); + RoomEKineCutCmd->SetParameterName("ECut",false,false); + RoomEKineCutCmd->SetRange("ECut>=250.0*eV"); + RoomEKineCutCmd->SetDefaultUnit("eV"); + RoomEKineCutCmd->SetUnitCategory("Energy"); + RoomEKineCutCmd->AvailableForStates(PreInit,Idle); + + EKineCutCmd = new G4UIcmdWithADoubleAndUnit("/dmx/MinEnergyCut",this); + EKineCutCmd->SetGuidance("Minimum Charged particle cut inside detector"); + EKineCutCmd->SetParameterName("ECut",false,false); + EKineCutCmd->SetRange("ECut>=250.0*eV"); + EKineCutCmd->SetDefaultUnit("eV"); + EKineCutCmd->SetUnitCategory("Energy"); + EKineCutCmd->AvailableForStates(PreInit,Idle); + + RoomTimeCutCmd = new G4UIcmdWithADoubleAndUnit("/dmx/RoomTimeCut",this); + RoomTimeCutCmd->SetGuidance("Set Time Cut (for neutrons) inside ROOM"); + RoomTimeCutCmd->SetParameterName("RTCut",false,false); + RoomTimeCutCmd->SetRange("RTCut>0."); + RoomTimeCutCmd->SetDefaultUnit("ns"); + RoomTimeCutCmd->SetUnitCategory("Time"); + RoomTimeCutCmd->AvailableForStates(PreInit,Idle); + + TimeCutCmd = new G4UIcmdWithADoubleAndUnit("/dmx/TimeCut",this); + TimeCutCmd->SetGuidance("Set Time Cut (for neutrons) inside detector"); + TimeCutCmd->SetParameterName("TCut",false,false); + TimeCutCmd->SetRange("TCut>0."); + TimeCutCmd->SetDefaultUnit("ns"); + TimeCutCmd->SetUnitCategory("Time"); + TimeCutCmd->AvailableForStates(PreInit,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); + +} + + +//ooooooooooooooooooooooooooooooooooooooooo +DMXDetectorMessenger::~DMXDetectorMessenger() { + + delete RoomTimeCutCmd; + delete TimeCutCmd; + // delete UpdateCmd; + +} + + +//ooooooooooooooooooooooooooooooooooooooooo +void DMXDetectorMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) { + + if(command == EKineCutCmd) + detectorConstruction-> + SetEnergyCut(EKineCutCmd->GetNewDoubleValue(newValue)); + + if(command == RoomEKineCutCmd) + detectorConstruction-> + SetEnergyCut(RoomEKineCutCmd->GetNewDoubleValue(newValue)); + + if(command == TimeCutCmd) + detectorConstruction-> + SetTimeCut(TimeCutCmd->GetNewDoubleValue(newValue)); + + if(command == RoomTimeCutCmd) + detectorConstruction-> + SetRoomTimeCut(RoomTimeCutCmd->GetNewDoubleValue(newValue)); + + // if( command == UpdateCmd ) + // { detectorConstruction->UpdateGeometry(); } + +} + + + diff --git a/examples/advanced/underground_physics/src/DMXDetectorRoom.icc b/examples/advanced/underground_physics/src/DMXDetectorRoom.icc new file mode 100644 index 0000000000..ea88c41bde --- /dev/null +++ b/examples/advanced/underground_physics/src/DMXDetectorRoom.icc @@ -0,0 +1,598 @@ + // Window - AIR + glass ************************************************ + + G4double glassThick = 3.0*mm; + G4double sidepanelWidth = 43.*cm; + G4double windowWidth = labWidth - 2.*sidepanelWidth; + G4double windowHeight = labHeight - 112.0*cm; + G4double glassPosY = 0.5*(worldLength - glassThick); + G4double glassPosZ = 0.5*(labHeight - windowHeight); + + G4Box* glass_box = new G4Box + ("glass_box",0.5*windowWidth, 0.5*glassThick, 0.5*windowHeight ); + glass_log = new G4LogicalVolume(glass_box, glass_mat, "glass_log"); + glass_phys = new G4PVPlacement + (0, G4ThreeVector(0., glassPosY, glassPosZ), "glass_phys", glass_log, + world_phys, false, 0); + + G4VisAttributes* glass_vat= new G4VisAttributes(blue); + glass_vat->SetVisibility(true); + glass_vat->SetForceSolid(true); + glass_log->SetVisAttributes(glass_vat); + + // hole in wall between glass and "lab": ************************************ + + G4double holeThick = wallThick - glassThick; + G4double windowPosY = 0.5*(worldLength - holeThick) - glassThick; + G4double windowPosZ = glassPosZ; + + G4Box* window_box = new G4Box + ("window_box",0.5*windowWidth, 0.5*holeThick, 0.5*windowHeight ); + window_log = new G4LogicalVolume(window_box, lab_mat, "window_log"); + window_phys = new G4PVPlacement + (0, G4ThreeVector(0., windowPosY, windowPosZ), "window_phys", + window_log, world_phys, false, 0); + + G4VisAttributes* window_vat= new G4VisAttributes(yellow); + // window_log->SetVisAttributes(G4VisAttributes::Invisible); + window_vat->SetVisibility(true); + window_log->SetVisAttributes(window_vat); + + + // Side panels of Window - AIR + Al **************************************** + + G4double panelThick = 5.0*mm; +// G4double sidepanelWidth = 43.*cm; // defined earlier + G4double sidepanelPosX = 0.5*(labWidth - sidepanelWidth); + G4double sidepanelPosY = 0.5*(worldLength - panelThick); + G4double sidepanelPosZ = glassPosZ; + + G4Box* sidepanel_box = new G4Box + ("sidepanel_box",0.5*sidepanelWidth, 0.5*panelThick, 0.5*windowHeight ); + sidepanel_log = new G4LogicalVolume + (sidepanel_box, panel_mat, "sidepanel_log"); + sidepanel_phys = new G4PVPlacement + (0, G4ThreeVector(sidepanelPosX, sidepanelPosY, sidepanelPosZ), + "sidepanel_phys", sidepanel_log, world_phys, false, 0); + + sidepanel_phys = new G4PVPlacement + (0, G4ThreeVector(-sidepanelPosX, sidepanelPosY, sidepanelPosZ), + "sidepanel_phys", sidepanel_log, world_phys, false, 1); + + G4VisAttributes* panel_vat= new G4VisAttributes(grey); + panel_vat->SetVisibility(true); + panel_vat->SetForceSolid(true); + sidepanel_log->SetVisAttributes(panel_vat); + + // panel hole in wall between Al and "lab": ****************************** + + G4double panelholePosX = sidepanelPosX; + G4double panelholePosY = 0.5*(worldLength - holeThick) - panelThick; + G4double panelholePosZ = sidepanelPosZ; + + G4Box* panelhole_box = new G4Box + ("panelhole_box",0.5*sidepanelWidth, 0.5*holeThick, 0.5*windowHeight ); + panelhole_log = new G4LogicalVolume + (panelhole_box, lab_mat, "panelhole_log"); + + panelhole_phys = new G4PVPlacement + (0, G4ThreeVector(panelholePosX, panelholePosY, panelholePosZ), + "panelhole_phys", panelhole_log, world_phys, false, 0); + panelhole_phys = new G4PVPlacement + (0, G4ThreeVector(-panelholePosX, panelholePosY, panelholePosZ), + "panelhole_phys", panelhole_log, world_phys, false, 1); + + panelhole_log->SetVisAttributes(window_vat); + + + // DOOR Window - AIR + glass ************************************************ + + G4double doorwindowWidth = 62.*cm; + G4double doorwindowHeight = 84.0*cm; + G4double doorglassPosX = 0.5*(labWidth - doorwindowWidth) - sidepanelWidth; + G4double doorglassPosY = 0.5*(worldLength - panelThick); + G4double doorglassPosZ = glassPosZ - 0.5*(windowHeight+doorwindowHeight); + + G4Box* doorglass_box = new G4Box + ("doorglass_box",0.5*doorwindowWidth, 0.5*panelThick, 0.5*doorwindowHeight ); + doorglass_log = new G4LogicalVolume + (doorglass_box, panel_mat, "doorglass_log"); + doorglass_phys = new G4PVPlacement + (0, G4ThreeVector(doorglassPosX, doorglassPosY, doorglassPosZ), + "doorglass_phys", doorglass_log, world_phys, false, 0); + + doorglass_log->SetVisAttributes(panel_vat); + + // door hole in wall between glass and "lab": ****************************** + + G4double doorwindowPosX = doorglassPosX; + G4double doorwindowPosY = 0.5*(worldLength - holeThick) - panelThick; + G4double doorwindowPosZ = doorglassPosZ; + + G4Box* doorwindow_box = new G4Box + ("doorwindow_box",0.5*doorwindowWidth, 0.5*holeThick, 0.5*doorwindowHeight ); + doorwindow_log = new G4LogicalVolume + (doorwindow_box, lab_mat, "doorwindow_log"); + doorwindow_phys = new G4PVPlacement + (0, G4ThreeVector(doorwindowPosX, doorwindowPosY, doorwindowPosZ), + "doorwindow_phys", doorwindow_log, world_phys, false, 0); + + doorwindow_log->SetVisAttributes(window_vat); + + + // cupboards: *************************************************************** + + // cupboard 1: + G4double cupboardDepth = 38.0*cm; //X + G4double cupboard1Width = 91.0*cm; //Y + G4double cupboard2Width = 153.0*cm; //Y + G4double cupboardHeight = 91.0*cm; //Z + G4double woodThick = 2.0*cm; + G4double insideDepth = cupboardDepth - 2.*woodThick; + G4double inside1Width = cupboard1Width - 2.*woodThick; + G4double inside2Width = cupboard2Width - 2.*woodThick; + G4double insideHeight = cupboardHeight - 2.*woodThick; + + //nb: cupboard orientation is sideways because they are lined along the wall + G4Box* cupboard_box = new G4Box + ("cupboard_box", 0.5*cupboardDepth, 0.5*cupboard1Width, 0.5*cupboardHeight); + G4Box* inside_box = new G4Box + ("inside_box", 0.5*insideDepth, 0.5*inside1Width, 0.5*insideHeight); + G4Box* shelf_box = new G4Box + ("shelf_box", 0.5*insideDepth, 0.5*inside1Width, 0.5*woodThick); + G4Box* cupdoor_box = new G4Box + ("cupdoor_box", 0.5*woodThick+1.0*nanometer, 0.25*inside1Width, 0.5*insideHeight); +// ("cupdoor_box", 0.5*woodThick, 0.25*inside1Width, 0.5*insideHeight); + + G4RotationMatrix rotMatrixCupboard; + rotMatrixCupboard.rotateY(0.0*deg); + + G4SubtractionSolid* cupboard_frame = new G4SubtractionSolid + ("cupboard_frame", cupboard_box, inside_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.))); + G4UnionSolid* cupboard_shelf1 = new G4UnionSolid + ("cupboard_shelf1", cupboard_frame, shelf_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.30*(insideHeight)))); + G4UnionSolid* cupboard_shelf2 = new G4UnionSolid + ("cupboard_shelf2", cupboard_shelf1, shelf_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,-0.05*(insideHeight)))); + G4SubtractionSolid* cupboard_sol = new G4SubtractionSolid + ("cupboard_sol", cupboard_shelf2, cupdoor_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector + (-0.5*(insideDepth+woodThick),0.25*inside1Width,0.))); + + cupboard_log = new G4LogicalVolume + (cupboard_sol, cupboard_mat, "cupboard_log"); + + G4double cupb_X = 0.5*(labWidth - cupboardDepth); + // G4double cupb_Y = 0.5*(labLength - cupboard1Width) - 2.0*cm; + G4double cupb_Y = 0.5*labLength; + G4double cupb_Z = 0.5*(labHeight - cupboardHeight) - 25.4*cm; + + for (G4int i=0; i<5; i++) + { + cupb_Y -= cupboard1Width+2.0*cm; + cupboard_phys = new G4PVPlacement + (0, G4ThreeVector(cupb_X, cupb_Y, cupb_Z), "cupboard_phys", + cupboard_log, lab_phys, false, i); + } + + cupb_X = -(0.5*(labWidth - cupboard1Width) - cupboardDepth - 2.0*cm); + G4double cupb_Y2 = -0.5*(labLength - cupboardDepth); + + G4RotationMatrix rotMatrixWallcupboard; + rotMatrixWallcupboard.rotateZ(-90.0*deg); + + cupboard_phys = new G4PVPlacement + (G4Transform3D + (rotMatrixWallcupboard,G4ThreeVector(cupb_X, cupb_Y2, cupb_Z)), + "cupboard_phys", cupboard_log, lab_phys, false, 5); + + + G4VisAttributes* cupboard_vat= new G4VisAttributes(yellow); + cupboard_vat->SetVisibility(true); + cupboard_vat->SetForceSolid(true); + cupboard_log->SetVisAttributes(cupboard_vat); + + // cupboard 2 (bigger/wider) *********************************************** + + G4Box* cupboard2_box = new G4Box + ("cupboard2_box", 0.5*cupboardDepth, 0.5*cupboard2Width, 0.5*cupboardHeight); + G4Box* inside2_box = new G4Box + ("inside2_box", 0.5*insideDepth, 0.5*inside2Width, 0.5*insideHeight); + G4Box* shelf2_box = new G4Box + ("shelf2_box", 0.5*insideDepth, 0.5*inside2Width, 0.5*woodThick); + G4Box* cupdoor_box2 = new G4Box + ("cupdoor_box2", 0.5*woodThick+1.0*nanometer, 0.25*inside2Width, 0.5*insideHeight); +// ("cupdoor_box2", 0.5*woodThick, 0.25*inside2Width, 0.5*insideHeight); + + G4SubtractionSolid* cupboard2_frame = new G4SubtractionSolid + ("cupboard2_frame", cupboard2_box, inside2_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.))); + G4UnionSolid* cupboard2_shelf1 = new G4UnionSolid + ("cupboard2_shelf1", cupboard2_frame, shelf2_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.30*(insideHeight)))); + G4UnionSolid* cupboard2_shelf2 = new G4UnionSolid + ("cupboard2_shelf2", cupboard2_shelf1, shelf2_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.10*(insideHeight)))); + G4SubtractionSolid* cupboard2_sol = new G4SubtractionSolid + ("cupboard2_sol", cupboard2_shelf2, cupdoor_box2, G4Transform3D + (rotMatrixCupboard, G4ThreeVector + (-0.5*(insideDepth+woodThick),0.25*inside2Width,0.))); + + cupboard2_log = new G4LogicalVolume + (cupboard2_sol, cupboard_mat, "cupboard2_log"); + + cupb_X = 0.5*(labWidth - cupboardDepth); + // cupb_Y = -(0.5*(labLength - cupboard2Width) - 2.0*cm); + cupb_Y -= 0.5*cupboard1Width + 0.5*cupboard2Width + + 2.0*cm; //using last cupboard posn on right... + // cupb_Z = 0.5*(labHeight - cupboardHeight) - 25.4*cm; + + cupboard2_phys = new G4PVPlacement + (0,G4ThreeVector(cupb_X, cupb_Y, cupb_Z), + "cupboard2_phys", cupboard2_log, lab_phys, false, 0); + + cupb_X = -0.5*(labWidth - cupboardDepth); + cupb_Y = -(0.5*(labLength - cupboard2Width) - cupboardDepth - 2.0*cm); + + G4RotationMatrix rotMatrixWallcupboard2; + rotMatrixWallcupboard2.rotateZ(-180.0*deg); + + cupboard2_phys = new G4PVPlacement + (G4Transform3D + (rotMatrixWallcupboard2,G4ThreeVector(cupb_X, cupb_Y, cupb_Z)), + "cupboard2_phys", cupboard2_log, lab_phys, false, 1); + + + cupboard2_log->SetVisAttributes(cupboard_vat); + + + // NOW add the (wooden) DOOR: + + G4double doorWidth = 1.67*m; //X + G4double doorThick = 4.0*cm; //Y + G4double doorHeight = 2.09*m; //Z + G4double doorPosY = -0.5*(worldLength - doorThick); + G4double doorPosZ = -0.5*(worldHeight - doorHeight); + + G4Box* door_box = new G4Box + ("door_box",0.5*doorWidth, 0.5*doorThick, 0.5*doorHeight ); + door_log = new G4LogicalVolume(door_box, door_mat, "door_log"); + door_phys = new G4PVPlacement + (0, G4ThreeVector(0., doorPosY, doorPosZ), "door_phys", door_log, + world_phys, false, 0); + + G4VisAttributes* door_vat= new G4VisAttributes(brown); + door_vat->SetVisibility(true); + door_vat->SetForceSolid(true); + door_log->SetVisAttributes(door_vat); + + + // hole in wall between door and "lab": ************************************ + + G4double doorholeThick = wallThick - doorThick; + G4double doorholePosY = -(0.5*(worldLength - doorholeThick) - doorThick); + G4double doorholePosZ = doorPosZ; + + G4Box* doorhole_box = new G4Box + ("doorhole_box",0.5*doorWidth, 0.5*doorholeThick, 0.5*doorHeight ); + doorhole_log = new G4LogicalVolume(doorhole_box, lab_mat, "doorhole_log"); + doorhole_phys = new G4PVPlacement + (0, G4ThreeVector(0., doorholePosY, doorholePosZ), "doorhole_phys", + doorhole_log, world_phys, false, 0); + + G4VisAttributes* doorhole_vat= new G4VisAttributes(cyan); + // window_log->SetVisAttributes(G4VisAttributes::Invisible); + doorhole_vat->SetVisibility(true); + doorhole_log->SetVisAttributes(doorhole_vat); + + + // desks: ***************************************************************** + //now add Desks - wood, but have the opportunity for three different woods - + // Cupboard, Door and then desks + + // desk1 - no cupboard underneath - should be bigger subtraction?: + + G4double desk1Depth = 57.0*cm; //X + G4double desk1Width = 160.0*cm; //Y + G4double desk1Height = 90.5*cm; //Z + G4double deskThick = 3.0*cm; + G4double desk1_insideDepth = desk1Depth - 2.*deskThick; + G4double desk1_insideWidth = desk1Width - 2.*deskThick; + G4double desk1_insideHeight = desk1Height - 2.*deskThick; + + //nb: desk orientation is sideways because they are lined along the wall + G4Box* desk1_box = new G4Box + ("desk1_box", 0.5*desk1Depth, 0.5*desk1Width, 0.5*desk1Height); + G4Box* desk1_inside_box = new G4Box + ("desk1_inside_box", 0.5*desk1_insideDepth, 0.5*desk1_insideWidth, + 0.5*desk1_insideHeight); + G4Box* desk1_door_box = new G4Box + ("desk1_door_box", 0.5*deskThick+1.0*nanometer, 0.25*desk1_insideWidth, + 0.5*desk1_insideHeight); +// ("desk1_door_box", 0.5*deskThick, 0.25*desk1_insideWidth, +// 0.5*desk1_insideHeight); + + G4RotationMatrix rotMatrixDesk; + rotMatrixDesk.rotateY(0.0*deg); + + G4SubtractionSolid* desk1_frame = new G4SubtractionSolid + ("desk1_frame", desk1_box, desk1_inside_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.))); + G4SubtractionSolid* desk1_sol = new G4SubtractionSolid + ("desk1_sol", desk1_frame, desk1_door_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector + (-0.5*(desk1_insideDepth+deskThick),-0.25*desk1_insideWidth,0.))); + + desk1_log = new G4LogicalVolume(desk1_sol, desk_mat, "desk1_log"); + + G4double desk_X = 0.5*(labWidth - desk1Depth); + G4double desk_Y = -(0.5*(labLength - desk1Width) - 30.0*cm); + G4double desk_Z = 0.5*(desk1Height - labHeight); + + desk1_phys = new G4PVPlacement + (0, G4ThreeVector(desk_X, desk_Y, desk_Z), "desk1_phys", + desk1_log, lab_phys, false, 0); + + G4VisAttributes* desk_vat= new G4VisAttributes(brown); + desk_vat->SetVisibility(true); + desk_vat->SetForceSolid(true); + desk1_log->SetVisAttributes(desk_vat); + + // ***************** + // desk2 (drawers): + + G4double desk2Depth = 57.0*cm; //X + G4double desk2Width = 156.0*cm; //Y + G4double desk2Height = desk1Height; //Z + + G4double desk2_insideDepth = desk2Depth - 2.*deskThick; + G4double desk2_insideWidth = desk2Width - 2.*deskThick; + G4double desk2_insideHeight = desk2Height - 2.*deskThick; + + //nb: desk orientation is sideways because they are lined along the wall + G4Box* desk2_box = new G4Box + ("desk2_box", 0.5*desk2Depth, 0.5*desk2Width, 0.5*desk2Height); + G4Box* desk2_inside_box = new G4Box + ("desk2_inside_box", 0.5*desk2_insideDepth, 0.5*desk2_insideWidth, + 0.5*desk2_insideHeight); + G4Box* desk2_door_box = new G4Box + ("desk2_door_box", 0.5*deskThick+1.0*nanometer, 0.2*desk2_insideWidth, + 0.5*desk2_insideHeight); +// ("desk2_door_box", 0.5*deskThick, 0.2*desk2_insideWidth, +// 0.5*desk2_insideHeight); + + G4SubtractionSolid* desk2_frame = new G4SubtractionSolid + ("desk2_frame", desk2_box, desk2_inside_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.))); + G4SubtractionSolid* desk2_sol = new G4SubtractionSolid + ("desk2_sol", desk2_frame, desk2_door_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector + (-0.5*(desk2_insideDepth+deskThick),-0.25*desk2_insideWidth,0.))); + + desk2_log = new G4LogicalVolume(desk2_sol, desk_mat, "desk2_log"); + + desk_X = 0.5*(labWidth - desk2Depth); + desk_Y += 0.5*(desk2Width + desk1Width) + 2.0*cm; + desk_Z = 0.5*(desk2Height - labHeight); + + desk2_phys = new G4PVPlacement + (0, G4ThreeVector(desk_X, desk_Y, desk_Z), "desk2_phys", + desk2_log, lab_phys, false, 0); + + desk2_log->SetVisAttributes(desk_vat); + + // ***************** + // desk3 (cupboard underneath): + + G4double desk3Depth = 79.0*cm; //X + G4double desk3Width = 160.0*cm; //Y + G4double desk3Height = desk1Height; //Z + + G4double desk3_insideDepth = desk3Depth - 2.*deskThick; + G4double desk3_insideWidth = desk3Width - 2.*deskThick; + G4double desk3_insideHeight = desk3Height - 2.*deskThick; + + //nb: desk orientation is sideways because they are lined along the wall + G4Box* desk3_box = new G4Box + ("desk3_box", 0.5*desk3Depth, 0.5*desk3Width, 0.5*desk3Height); + G4Box* desk3_inside_box = new G4Box + ("desk3_inside_box", 0.5*desk3_insideDepth, 0.5*desk3_insideWidth, + 0.5*desk3_insideHeight); + G4Box* desk3_door_box = new G4Box + ("desk3_door_box", 0.5*deskThick+1.0*nanometer, 0.15*desk3_insideWidth, 0.5*desk1_insideHeight); +// ("desk3_door_box", 0.5*deskThick, 0.15*desk3_insideWidth, +// 0.5*desk1_insideHeight); + + G4SubtractionSolid* desk3_frame = new G4SubtractionSolid + ("desk3_frame", desk3_box, desk3_inside_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.))); + G4SubtractionSolid* desk3_sol = new G4SubtractionSolid + ("desk3_sol", desk3_frame, desk3_door_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector + (-0.5*(desk3_insideDepth+deskThick),-0.35*desk3_insideWidth,0.))); + + desk3_log = new G4LogicalVolume(desk3_sol, desk_mat, "desk3_log"); + + desk_X = 0.5*(labWidth - desk3Depth); + desk_Y += 0.5*(desk3Width + desk3Width) + 2.0*cm; + desk_Z = 0.5*(desk3Height - labHeight); + + desk3_phys = new G4PVPlacement + (0, G4ThreeVector(desk_X, desk_Y, desk_Z), "desk3_phys", + desk3_log, lab_phys, false, 0); + + desk3_log->SetVisAttributes(desk_vat); + + + // ***************** + // wooden radiator trunking - along LHS wall + + G4double trunkDepth = 20.0*cm; //X + G4double trunkWidth = labLength; //Y + G4double trunkHeight = desk1Height; //Z + G4double trunkThick = 3.0*cm; + + // not 2.*trunkThick since only 2 sides of box - top and front + G4double trunk_insideDepth = trunkDepth - trunkThick; + G4double trunk_insideWidth = trunkWidth; + G4double trunk_insideHeight = trunkHeight - trunkThick; + + G4Box* trunk_box = new G4Box + ("trunk_box", 0.5*trunkDepth, 0.5*trunkWidth, 0.5*trunkHeight); + G4Box* trunk_inside_box = new G4Box + ("trunk_inside_box", 0.5*trunk_insideDepth, 0.5*trunk_insideWidth, + 0.5*trunk_insideHeight); + + trunk_log = new G4LogicalVolume(trunk_box, desk_mat, "trunk_log"); + trunk_inside_log = new G4LogicalVolume + (trunk_inside_box, lab_mat, "trunk_inside_log"); + + G4double trunk_X = -0.5*(labWidth - trunkDepth); + G4double trunk_Y = 0.0*m; + G4double trunk_Z = -0.5*(labHeight - trunkHeight); + + trunk_phys = new G4PVPlacement + (0, G4ThreeVector(trunk_X, trunk_Y, trunk_Z), "trunk_phys", + trunk_log, lab_phys, false, 0); + + G4double trunkinside_X = -0.5*(trunkDepth - trunk_insideDepth); + G4double trunkinside_Y = 0.0*m; + G4double trunkinside_Z = -0.5*(trunkHeight - trunk_insideHeight); + + trunk_inside_phys = new G4PVPlacement + (0, G4ThreeVector(trunkinside_X, trunkinside_Y, trunkinside_Z), + "trunk_inside_phys",trunk_inside_log, trunk_phys, false, 0); + + trunk_log->SetVisAttributes(desk_vat); + trunk_inside_log->SetVisAttributes(window_vat); + + // ***************** + // desk4,5,6 (actually 4 with multi-place idx) LHS with cupboards underneath: + + G4double desk4Depth = 79.0*cm; //X + G4double desk4Width = 79.0*cm; //Y + G4double desk4Height = desk1Height; //Z + + G4double desk4_insideDepth = desk4Depth - 2.*deskThick; + G4double desk4_insideWidth = desk4Width - 2.*deskThick; + G4double desk4_insideHeight = desk4Height - 2.*deskThick; + + //nb: desk orientation is sideways because they are lined along the wall + G4Box* desk4_box = new G4Box + ("desk4_box", 0.5*desk4Depth, 0.5*desk4Width, 0.5*desk4Height); + G4Box* desk4_inside_box = new G4Box + ("desk4_inside_box", 0.5*desk4_insideDepth, 0.5*desk4_insideWidth, + 0.5*desk4_insideHeight); + G4Box* desk4_door_box = new G4Box + ("desk4_door_box", 0.5*deskThick+1.0*nanometer, 0.45*desk4_insideWidth, + 0.5*desk4_insideHeight); +// ("desk4_door_box", 0.5*deskThick, 0.45*desk4_insideWidth, +// 0.5*desk4_insideHeight); + + G4SubtractionSolid* desk4_frame = new G4SubtractionSolid + ("desk4_frame", desk4_box, desk4_inside_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.))); + G4SubtractionSolid* desk4_sol = new G4SubtractionSolid + ("desk4_sol", desk4_frame, desk4_door_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector + (0.5*(desk4_insideDepth+deskThick),0.,0.))); + + desk4_log = new G4LogicalVolume(desk4_sol, desk_mat, "desk4_log"); + + desk_X = -0.5*(labWidth - desk4Depth) + trunkDepth; + desk_Y = -(0.5*(labLength - desk4Width) - 5.0*cm); + desk_Z = 0.5*(desk4Height - labHeight); + + G4double crateWidth = 60.0*cm; //Y + G4double crate_Y; + + G4RotationMatrix rotMatrixDesk4; + rotMatrixDesk4.rotateZ(0.0*deg); + + for (i=0; i<3; i++) + { + if( i == 2) + { + desk_Y += crateWidth; + crate_Y = desk_Y - 0.5*(desk4Width + crateWidth); + } + desk4_phys = new G4PVPlacement + (G4Transform3D(rotMatrixDesk4, G4ThreeVector(desk_X, desk_Y, desk_Z)), + "desk4_phys", desk4_log, lab_phys, false, i); + desk_Y += desk4Width+2.0*cm; + } + + desk4_log->SetVisAttributes(desk_vat); + + // ***************** + // aluminium crate rack: + + G4double crateDepth = 64.0*cm; //X + // G4double crateWidth = 60.0*cm; //Y - moved above........... + G4double crateHeight = 128.0*cm; //Z + G4double crateThick = 3.0*cm; + + G4double crate_insideDepth = crateDepth - 2.*crateThick; + G4double crate_insideWidth = crateWidth - 2.*crateThick; + G4double crate_insideHeight = crateHeight - 2.*crateThick; + + //nb: crate orientation is sideways because they are lined along the wall + G4Box* crate_box = new G4Box + ("crate_box", 0.5*crateDepth, 0.5*crateWidth, 0.5*crateHeight); + G4Box* crate_inside_box = new G4Box + ("crate_inside_box", 0.5*crate_insideDepth, 0.5*crate_insideWidth, + 0.5*crate_insideHeight); + G4Box* crate_front_box = new G4Box + ("crate_front_box", 0.5*crateThick+1.0*nanometer, 0.5*crate_insideWidth, + 0.5*crate_insideHeight); + + G4SubtractionSolid* crate_frame = new G4SubtractionSolid + ("crate_frame", crate_box, crate_inside_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector(0.,0.,0.))); + G4SubtractionSolid* crate_sol = new G4SubtractionSolid + ("crate_sol", crate_frame, crate_front_box, G4Transform3D + (rotMatrixCupboard, G4ThreeVector + (0.5*(crate_insideDepth+crateThick),0.,0.))); + + crate_log = new G4LogicalVolume(crate_sol, crate_mat, "crate_log"); + + G4double crate_X = -0.5*(labWidth - crateDepth) + trunkDepth; + // crate_Y defined previously (by desk spacing.......) + G4double crate_Z = 0.5*(crateHeight - labHeight); + + crate_phys = new G4PVPlacement + (0, G4ThreeVector(crate_X, crate_Y, crate_Z), "crate_phys", + crate_log, lab_phys, false, 0); + + G4VisAttributes* crate_vat= new G4VisAttributes(grey); + crate_vat->SetVisibility(true); + crate_vat->SetForceSolid(true); + crate_log->SetVisAttributes(crate_vat); + +// clean room desks: **************************************************** + +// first oblong desk (type "3"): + desk_X = -0.5*(labWidth - desk3Width) + 50.0*cm; + desk_Y = 0.5*(labLength - desk3Width - 30.0*cm); + desk_Z = 0.5*(desk4Height - labHeight); + + G4RotationMatrix rotMatrixCleanDesk; + rotMatrixCleanDesk.rotateZ(90.0*deg); + + desk3_phys = new G4PVPlacement + (G4Transform3D + (rotMatrixCleanDesk,G4ThreeVector(desk_X, desk_Y, desk_Z)), + "desk3_phys", desk3_log, lab_phys, false, 1); + +// square desk (type "4"): + + desk_X += 0.5*desk3Width + 0.5*desk4Width; // rotated hence Width + + rotMatrixCleanDesk.rotateZ(-180.0*deg); + desk4_phys = new G4PVPlacement + (G4Transform3D + (rotMatrixCleanDesk, G4ThreeVector(desk_X, desk_Y, desk_Z)), + "desk4_phys", desk4_log, lab_phys, false, 3); + + diff --git a/examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc b/examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc new file mode 100644 index 0000000000..d42a718acf --- /dev/null +++ b/examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc @@ -0,0 +1,17 @@ + glass_log->SetUserLimits(theUserLimitsForRoom); + window_log->SetUserLimits(theUserLimitsForRoom); + sidepanel_log->SetUserLimits(theUserLimitsForRoom); + panelhole_log->SetUserLimits(theUserLimitsForRoom); + doorglass_log->SetUserLimits(theUserLimitsForRoom); + doorwindow_log->SetUserLimits(theUserLimitsForRoom); + door_log->SetUserLimits(theUserLimitsForRoom); + doorhole_log->SetUserLimits(theUserLimitsForRoom); + cupboard_log->SetUserLimits(theUserLimitsForRoom); + cupboard2_log->SetUserLimits(theUserLimitsForRoom); + desk1_log->SetUserLimits(theUserLimitsForRoom); + desk2_log->SetUserLimits(theUserLimitsForRoom); + desk3_log->SetUserLimits(theUserLimitsForRoom); + desk4_log->SetUserLimits(theUserLimitsForRoom); + crate_log->SetUserLimits(theUserLimitsForRoom); + trunk_log->SetUserLimits(theUserLimitsForRoom); + trunk_inside_log->SetUserLimits(theUserLimitsForRoom); diff --git a/examples/advanced/underground_physics/src/DMXEventAction.cc b/examples/advanced/underground_physics/src/DMXEventAction.cc index 0c6373bf0e..39840f945e 100644 --- a/examples/advanced/underground_physics/src/DMXEventAction.cc +++ b/examples/advanced/underground_physics/src/DMXEventAction.cc @@ -33,15 +33,27 @@ // by A. Howard and H. Araujo // (27th November 2001) // +// History/Additions: +// 16 Jan 2002 Added analysis +// +// // EventAction program // -------------------------------------------------------------- #include "DMXEventAction.hh" +// pass parameters for messengers: +#include "DMXRunAction.hh" +#include "DMXPrimaryGeneratorAction.hh" + // note DMXPmtHit.hh and DMXScintHit.hh are included in DMXEventAction.hh #include "DMXEventActionMessenger.hh" +#ifdef G4ANALYSIS_USE +#include "DMXAnalysisManager.hh" +#endif + #include "G4Event.hh" #include "G4EventManager.hh" #include "G4HCofThisEvent.hh" @@ -58,7 +70,10 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -DMXEventAction::DMXEventAction() { +DMXEventAction::DMXEventAction(DMXRunAction* DMXRun, + DMXPrimaryGeneratorAction* DMXGenerator) + : runAct(DMXRun),genAction(DMXGenerator) +{ // create messenger eventMessenger = new DMXEventActionMessenger(this); @@ -76,6 +91,9 @@ DMXEventAction::DMXEventAction() { scintillatorCollID = -1; pmtCollID = -1; + energy_pri=0; + seeds=NULL; + } @@ -89,11 +107,24 @@ DMXEventAction::~DMXEventAction() { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXEventAction::BeginOfEventAction(const G4Event* evt) { + + // grab seeds + seeds = genAction->GetEventSeeds(); + + // grab energy of primary + energy_pri = genAction->GetEnergyPrimary(); + event_id = evt->GetEventID(); // print this information event by event (modulo n) if (event_id%printModulo == 0) - G4cout << "\n---> Begin of event: " << event_id << G4endl; + { + G4cout << "\n---> Begin of event: " << event_id << G4endl; + G4cout << " Primary Energy: " << G4BestUnit(energy_pri,"Energy") + << G4endl; + // HepRandom::showEngineStatus(); + } + // get ID for scintillator hits collection if (scintillatorCollID==-1) { @@ -129,6 +160,7 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { totEnergy = 0.; totEnergyGammas = 0.; totEnergyNeutrons = 0.; + firstParticleE = 0.; particleEnergy = 0.; firstLXeHitTime = 0.; aveTimePmtHits = 0.; @@ -151,16 +183,20 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { // scintillator hits if(SHC) { S_hits = SHC->entries(); - + for (G4int i=0; iGetParticle(); firstLXeHitTime = (*SHC)[0]->GetTime(); - if (event_id%printModulo == 0) - G4cout << " First hit: " << firstParticleName << G4endl; + 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; + } } hitEnergy = (*SHC)[i]->GetEdep(); totEnergy += hitEnergy; + particleName = (*SHC)[i]->GetParticle(); particleEnergy = (*SHC)[i]->GetParticleEnergy(); @@ -188,36 +224,50 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { if(start_neutron && !start_gamma) totEnergyNeutrons += hitEnergy; } - + if (event_id%printModulo == 0) G4cout << " Total energy in LXe: " << G4BestUnit(totEnergy,"Energy") << G4endl; + } - + // PMT hits if(PHC) { P_hits = PHC->entries(); // average time of PMT hits - for (G4int i=0; iGetTime() - firstLXeHitTime) - / (G4double)P_hits; - if (event_id%printModulo == 0) + for (G4int i=0; iGetTime() - firstLXeHitTime ); + aveTimePmtHits += time / (G4double)P_hits; + if (event_id == 0) { +#ifdef G4ANALYSIS_USE + // pass first event for histogram record: + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->HistFirstTime(time); +#endif + } + } + if (event_id%printModulo == 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 + } // write out (x,y,z) of PMT hits if (savePmtFlag) writePmtHitsToFile(PHC); } - + // write out event summary if(saveHitsFlag) writeScintHitsToFile(); - + // draw trajectories if(drawColsFlag=="standard" && drawTrksFlag!="none") drawTracks(evt); @@ -230,7 +280,6 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { if (event_id%printModulo == 0) G4cout << "---> End of event: " << event_id << G4endl; - } @@ -238,73 +287,99 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXEventAction::writeScintHitsToFile(void) { - G4String filename="hits.out"; + // G4String filename="hits.out"; + G4String filename=runAct->GetsavehitsFile(); G4std::ofstream hitsfile(filename, G4std::ios::app); if(!event_id) { G4std::ofstream hitsfile(filename); - hitsfile <<"Evt Etot LXe LXeTime PMT PmtTime First Flags" + hitsfile <<"Evt E_Prim Etot LXe LXeTime PMT PmtTime First Flags Seed1 Seed2" << G4endl; - hitsfile <<"# MeV hits ns hits ns hit" << G4endl + hitsfile <<"# MeV MeV hits ns hits ns hit" + << G4endl << G4endl; } + if(S_hits) { - if(hitsfile.is_open()) { + if(hitsfile.is_open()) { - hitsfile << G4std::setiosflags(G4std::ios::fixed) - << G4std::setprecision(4) - << G4std::setiosflags(G4std::ios::left) - << G4std::setw(6) - << event_id << "\t" - << totEnergy/MeV << "\t" - << S_hits << "\t" - << G4std::setiosflags(G4std::ios::scientific) - << G4std::setprecision(2) - << firstLXeHitTime/nanosecond << "\t" - << P_hits << "\t" - << G4std::setiosflags(G4std::ios::fixed) - << G4std::setprecision(4) - << aveTimePmtHits/nanosecond << "\t" - << firstParticleName << "\t" - << (gamma_ev ? "gamma " : "") - << (neutron_ev ? "neutron " : "") - << (positron_ev ? "positron " : "") - << (electron_ev ? "electron " : "") - << (other_ev ? "other " : "") - << G4endl; - if (event_id%printModulo == 0) - G4cout << " Event summary in file " << filename << G4endl; - hitsfile.close(); + hitsfile << G4std::setiosflags(G4std::ios::fixed) + << G4std::setprecision(4) + << G4std::setiosflags(G4std::ios::left) + << G4std::setw(6) + << event_id << "\t" + << energy_pri/MeV << "\t" + << totEnergy/MeV << "\t" + << S_hits << "\t" + << G4std::setiosflags(G4std::ios::scientific) + << G4std::setprecision(2) + << firstLXeHitTime/nanosecond << "\t" + << P_hits << "\t" + << G4std::setiosflags(G4std::ios::fixed) + << G4std::setprecision(4) + << aveTimePmtHits/nanosecond << "\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) + G4cout << " Event summary in file " << filename << G4endl; + hitsfile.close(); + } + +#ifdef G4ANALYSIS_USE + long seed1 = *seeds; + long seed2 = *(seeds+1); + // pass event summary to analysis manager for booking into histos and ntple + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->analyseScintHits(event_id,energy_pri,totEnergy,S_hits,firstLXeHitTime,P_hits,aveTimePmtHits,firstParticleName,firstParticleE,gamma_ev,neutron_ev,positron_ev,electron_ev,other_ev,seed1,seed2); +#endif } - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXEventAction::writePmtHitsToFile(const DMXPmtHitsCollection* hits) { - G4String filename="pmt.out"; - G4std::ofstream pmtfile(filename); + // G4String filename="pmt.out"; + G4String filename=runAct->GetsavepmtFile(); + G4std::ofstream pmtfile(filename, G4std::ios::app); + G4double x; G4double y; G4double z; if(pmtfile.is_open()) { pmtfile << "Hit# X, mm Y, mm Z, mm" << G4endl; pmtfile << G4std::setiosflags(G4std::ios::fixed) - << G4std::setprecision(3) - << G4std::setiosflags(G4std::ios::left) - << G4std::setw(6); + << G4std::setprecision(3) + << G4std::setiosflags(G4std::ios::left) + << G4std::setw(6); for (G4int i=0; iGetPos()).x()/mm << "\t" - << ((*hits)[i]->GetPos()).y()/mm << "\t" - << ((*hits)[i]->GetPos()).z()/mm << G4endl; + { + x = ((*hits)[i]->GetPos()).x()/mm; + y = ((*hits)[i]->GetPos()).y()/mm; + z = ((*hits)[i]->GetPos()).z()/mm; + pmtfile << i << "\t" + << x << "\t" + << y << "\t" + << z << G4endl; +#ifdef G4ANALYSIS_USE + // pass pmt hit summary to analysis manager for booking in ntples + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->analysePMTHits(event_id,i,x,y,z); +#endif + } + if (event_id%printModulo == 0) + G4cout << P_hits << " PMT hits in " << filename << G4endl; pmtfile.close(); - if (event_id%printModulo == 0) - G4cout << " PMT hits in " << filename << G4endl; } - - + } diff --git a/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc b/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc index 24f4f7b537..035dd8b302 100644 --- a/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc +++ b/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc @@ -76,6 +76,8 @@ G4double DMXMaxTimeCuts::PostStepGetPhysicalInteractionLength( // can apply cuts for specific particles - use if(particleDef): // G4ParticleDefinition* aParticleDef = aTrack.GetDefinition(); + + // G4cout << " Time: " << pUserLimits->GetUserMaxTime(aTrack) << G4endl; if (pUserLimits) { G4double temp = DBL_MAX; diff --git a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc new file mode 100644 index 0000000000..7a1a3c4bb5 --- /dev/null +++ b/examples/advanced/underground_physics/src/DMXMinEkineCuts.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: DMXMinEkineCuts.cc,v 1.2 2002/06/18 10:17:30 ahoward Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 class implementation file +// +// History: first implementation, based on object model of +// 2nd December 1995, G.Cosmo +// -------------------------------------------------------------- +// 15 April 1998 M.Maire +// -------------------------------------------------------------- + +#include "DMXMinEkineCuts.hh" + +#include "G4Step.hh" +#include "G4UserLimits.hh" +#include "G4VParticleChange.hh" +#include "G4EnergyLossTables.hh" + +DMXMinEkineCuts::DMXMinEkineCuts(const G4String& aName) + : DMXSpecialCuts(aName) +{ + if (verboseLevel>1) { + G4cout << GetProcessName() << " is created "<< G4endl; + } + SetProcessType(fUserDefined); +} + +DMXMinEkineCuts::~DMXMinEkineCuts() +{} + +DMXMinEkineCuts::DMXMinEkineCuts(DMXMinEkineCuts& right) +{} + + +G4double DMXMinEkineCuts::PostStepGetPhysicalInteractionLength( + const G4Track& aTrack, + G4double , + G4ForceCondition* condition + ) +{ + // condition is set to "Not Forced" + *condition = NotForced; + + G4double proposedStep = DBL_MAX; + // get the pointer to UserLimits + G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits(); + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + G4ParticleDefinition* aParticleDef = aTrack.GetDefinition(); + + if (pUserLimits && aParticleDef->GetPDGCharge() != 0.0) { + //min kinetic energy + G4double temp = DBL_MAX; + G4double eKine = aParticle->GetKineticEnergy(); + G4Material* aMaterial = aTrack.GetMaterial(); + G4double eMin = pUserLimits->GetUserMinEkine(aTrack); + + G4double rangeNow = DBL_MAX; + + rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial); + + if (eKine < eMin ) { + proposedStep = 0.; + } else { + // charged particles only + G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,aMaterial); + temp = rangeNow - rangeMin; + if (proposedStep > temp) proposedStep = temp; + } + } + return proposedStep; +} diff --git a/examples/advanced/underground_physics/src/DMXParticleSource.cc b/examples/advanced/underground_physics/src/DMXParticleSource.cc index 5062b4e786..0783086894 100644 --- a/examples/advanced/underground_physics/src/DMXParticleSource.cc +++ b/examples/advanced/underground_physics/src/DMXParticleSource.cc @@ -33,6 +33,7 @@ // by A. Howard and H. Araujo // (27th November 2001) // +// // ParticleSource program // -------------------------------------------------------------- ////////////////////////////////////////////////////////////////////////////// @@ -389,7 +390,7 @@ void DMXParticleSource::GeneratePrimaryVertex(G4Event *evt) // create a new vertex G4PrimaryVertex* vertex = new G4PrimaryVertex(particle_position,particle_time); - + if(verbosityLevel >= 2) G4cout << "Creating primaries and assigning to vertex" << G4endl; // create new primaries and set them to the vertex @@ -409,6 +410,8 @@ void DMXParticleSource::GeneratePrimaryVertex(G4Event *evt) G4cout << " NumberOfParticlesToBeGenerated: " << NumberOfParticlesToBeGenerated << G4endl; } + + for( G4int i=0; ivalue(); G4ProcessManager* pmanager = particle->GetProcessManager(); - if(particle != G4OpticalPhoton::OpticalPhotonDefinition()) - pmanager->AddDiscreteProcess(new DMXMaxTimeCuts()); + G4String particleName = particle->GetParticleName(); + // time cuts for ONLY neutrons: + if(particleName == "neutron") + pmanager->AddDiscreteProcess(new DMXMaxTimeCuts()); + // Energy cuts to kill charged (embedded in method) particles: + pmanager->AddDiscreteProcess(new DMXMinEkineCuts()); } } @@ -261,8 +242,8 @@ void DMXPhysicsList::AddTransportation() { // alpha and GenericIon and deuterons, triton, He3: #include "G4hLowEnergyIonisation.hh" #include "G4EnergyLossTables.hh" -// this uses Ziegler 1988 and is the default - requires detailed testing -// particularly with split between NuclearStopping and electron ionisation +// hLowEnergyIonisation uses Ziegler 1988 as the default + //muon: #include "G4MuIonisation.hh" @@ -271,7 +252,7 @@ void DMXPhysicsList::AddTransportation() { #include "G4MuonMinusCaptureAtRest.hh" //OTHERS: -//#include "G4hIonisation.hh" +//#include "G4hIonisation.hh" // standard hadron ionisation void DMXPhysicsList::ConstructEM() { @@ -294,89 +275,82 @@ void DMXPhysicsList::ConstructEM() { // cannot specify different LowEnergyIonisation models for different // particles, but can change model globally for Ion, Alpha and Proton. - if (particleName == "gamma") { - //gamma - pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh()); - pmanager->AddDiscreteProcess(lowePhot); - pmanager->AddDiscreteProcess(new G4LowEnergyCompton()); - pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion()); + if (particleName == "gamma") + { + //gamma + pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh()); + pmanager->AddDiscreteProcess(lowePhot); + pmanager->AddDiscreteProcess(new G4LowEnergyCompton()); + pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion()); + } + else if (particleName == "e-") + { + //electron + // process ordering: AddProcess(name, at rest, along step, post step) + // -1 = not implemented, then ordering + pmanager->AddProcess(aMultipleScattering, -1, 1, 1); + pmanager->AddProcess(loweIon, -1, 2, 2); + pmanager->AddProcess(loweBrem, -1,-1, 3); + } + else if (particleName == "e+") + { + //positron + pmanager->AddProcess(aMultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation(), -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung(), -1,-1, 3); + pmanager->AddProcess(new G4eplusAnnihilation(),0,-1, 4); + } + else if( particleName == "mu+" || + particleName == "mu-" ) + { + //muon + pmanager->AddProcess(aMultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung(), -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction(), -1,-1, 4); + pmanager->AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1); + } + else if (particleName == "proton" || + particleName == "alpha" || + particleName == "deuteron" || + particleName == "triton" || + particleName == "He3" || + particleName == "GenericIon" || + (particleType == "nucleus" && charge != 0)) + { + // OBJECT may be dynamically created as either a GenericIon or nucleus + // G4Nucleus exists and therefore has particle type nucleus + // genericIon: + pmanager->AddProcess(aMultipleScattering,-1,1,1); + pmanager->AddProcess(ahadronLowEIon,-1,2,2); + } + else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) + { + //all others charged particles except geantino + pmanager->AddProcess(aMultipleScattering,-1,1,1); + pmanager->AddProcess(ahadronLowEIon, -1,2,2); + // pmanager->AddProcess(new G4hIonisation(), -1,2,2); + } + + ahadronLowEIon->SetNuclearStoppingOn() ; - } else if (particleName == "e-") { - //electron - // process ordering: AddProcess(name, at rest, along step, post step) - // -1 = not implemented, then ordering............ - pmanager->AddProcess(aMultipleScattering, -1, 1,1); - pmanager->AddProcess(loweIon, -1, 2,2); - pmanager->AddProcess(loweBrem, -1,-1,3); - - } else if (particleName == "e+") { - //positron - pmanager->AddProcess(aMultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation(), -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung(), -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation(), 0,-1,4); - - } else if( particleName == "mu+" || - particleName == "mu-" ) { - //muon - pmanager->AddProcess(aMultipleScattering, -1, 1, 1); - pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2); - pmanager->AddProcess(new G4MuBremsstrahlung(), -1, -1, 3); - pmanager->AddProcess(new G4MuPairProduction(), -1, -1, 4); - pmanager->AddProcess(new G4MuonMinusCaptureAtRest(),0,-1,-1); - - } else if (particleName == "GenericIon" || - (particleType == "nucleus" && charge != 0)) { - // OBJECT may be dynamically created as either a GenericIon or a nucleus - // G4Nucleus exists and therefore has particle type nucleus - // genericIon: - pmanager->AddProcess(aMultipleScattering,-1,1,1); - pmanager->AddProcess(ahadronLowEIon,-1,2,2); - - } else if (particleName == "Alpha") { - // alpha: - pmanager->AddProcess(aMultipleScattering,-1,1,1); - pmanager->AddProcess(ahadronLowEIon,-1,2,2); - - } else if (particleName == "Proton") { - // alpha: - pmanager->AddProcess(aMultipleScattering,-1,1,1); - pmanager->AddProcess(ahadronLowEIon,-1,2,2); - - } else if (particleName == "deuteron" - || particleName == "triton" - || particleName == "He3") { - pmanager->AddProcess(aMultipleScattering,-1,1,1); - pmanager->AddProcess(ahadronLowEIon,-1,2,2); - - } else if ((!particle->IsShortLived()) && - (particle->GetPDGCharge() != 0.0) && - (particle->GetParticleName() != "chargedgeantino")) { - //all others charged particles except geantino - pmanager->AddProcess(aMultipleScattering,-1,1,1); - pmanager->AddProcess(ahadronLowEIon, -1,2,2); - // pmanager->AddProcess(new G4hIonisation(), -1,2,2); - } - - ahadronLowEIon->SetNuclearStoppingOn() ; - - //fluorescence switch off for hadrons (for now): - ahadronLowEIon->SetFluorescence(false); + //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); + G4double cut = 250*eV; + lowePhot->SetCutForLowEnSecPhotons(cut); + loweIon->SetCutForLowEnSecPhotons(cut); + loweBrem->SetCutForLowEnSecPhotons(cut); - + // ahadronLowEIon->SetNuclearStoppingOff() ; - // ahadronLowEIon->SetNuclearStoppingOff() ; + // ahadronLowEIon->SetStoppingPowerTableName("ICRU_R49p") ; - //ahadronLowEIon->SetStoppingPowerTableName("ICRU_R49p") ; - - //ahadronLowEIon->SetStoppingPowerTableName("Ziegler1977H") ; + // ahadronLowEIon->SetStoppingPowerTableName("Ziegler1977H") ; } } @@ -388,17 +362,22 @@ void DMXPhysicsList::ConstructEM() { #include "G4OpRayleigh.hh" #include "G4OpBoundaryProcess.hh" -void DMXPhysicsList::ConstructOp() { +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(50000./MeV); - // Fano factor assumed 1 should be much less for Xe - 0.13? - // but is the Fano factor already included in the correlated electron - // production........ - theScintProcessDef->SetResolutionScale(1.); + 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->SetVerboseLevel(OpVerbLevel); @@ -406,8 +385,8 @@ void DMXPhysicsList::ConstructOp() { G4Scintillation* theScintProcessAlpha = new G4Scintillation("Scintillation"); // theScintProcessNuc->DumpPhysicsTable(); theScintProcessAlpha->SetTrackSecondariesFirst(true); - theScintProcessAlpha->SetScintillationYield(60000./MeV); - theScintProcessAlpha->SetResolutionScale(0./MeV); + theScintProcessAlpha->SetScintillationYield(12000./MeV); // including QE 20% + theScintProcessAlpha->SetResolutionScale(1.0); theScintProcessAlpha->SetScintillationTime(20.*ns); theScintProcessAlpha->SetVerboseLevel(OpVerbLevel); @@ -415,8 +394,8 @@ void DMXPhysicsList::ConstructOp() { G4Scintillation* theScintProcessNuc = new G4Scintillation("Scintillation"); // theScintProcessNuc->DumpPhysicsTable(); theScintProcessNuc->SetTrackSecondariesFirst(true); - theScintProcessNuc->SetScintillationYield(5000./MeV); - theScintProcessNuc->SetResolutionScale(0./MeV); + theScintProcessNuc->SetScintillationYield(1000./MeV); // including QE 20% + theScintProcessNuc->SetResolutionScale(1.); theScintProcessNuc->SetScintillationTime(20.*ns); theScintProcessNuc->SetVerboseLevel(OpVerbLevel); @@ -433,31 +412,45 @@ void DMXPhysicsList::ConstructOp() { theBoundaryProcess->SetModel(themodel); theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - if (theScintProcessDef->IsApplicable(*particle)) { - // if(particle->GetPDGMass() > 5.0*GeV) - if(particle->GetParticleName() == "GenericIon") - pmanager->AddDiscreteProcess(theScintProcessNuc); - else if(particle->GetParticleName() == "alpha") - pmanager->AddDiscreteProcess(theScintProcessAlpha); - else - pmanager->AddDiscreteProcess(theScintProcessDef); + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + if (theScintProcessDef->IsApplicable(*particle)) { + // if(particle->GetPDGMass() > 5.0*GeV) + if(particle->GetParticleName() == "GenericIon") { + pmanager->AddProcess(theScintProcessNuc); // AtRestDiscrete + pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxAtRest); + pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxPostStep); + } + else if(particle->GetParticleName() == "alpha") { + pmanager->AddProcess(theScintProcessAlpha); + pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxAtRest); + pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxPostStep); + } + else { + pmanager->AddProcess(theScintProcessDef); + pmanager->SetProcessOrderingToLast(theScintProcessDef,idxAtRest); + pmanager->SetProcessOrderingToLast(theScintProcessDef,idxPostStep); + } + } + + if (particleName == "opticalphoton") { + pmanager->AddDiscreteProcess(theAbsorptionProcess); + pmanager->AddDiscreteProcess(theRayleighScatteringProcess); + pmanager->AddDiscreteProcess(theBoundaryProcess); + } } - if (particleName == "opticalphoton") { - pmanager->AddDiscreteProcess(theAbsorptionProcess); - pmanager->AddDiscreteProcess(theRayleighScatteringProcess); - pmanager->AddDiscreteProcess(theBoundaryProcess); - } - } } -// Hadronic rocesses //////////////////////////////////////////////////////// +// Hadronic processes //////////////////////////////////////////////////////// + +// Elastic processes: #include "G4HadronElasticProcess.hh" +// Inelastic processes: #include "G4PionPlusInelasticProcess.hh" #include "G4PionMinusInelasticProcess.hh" #include "G4KaonPlusInelasticProcess.hh" @@ -472,7 +465,7 @@ void DMXPhysicsList::ConstructOp() { #include "G4TritonInelasticProcess.hh" #include "G4AlphaInelasticProcess.hh" -// Low-energy Models +// Low-energy Models: < 20GeV #include "G4LElastic.hh" #include "G4LEPionPlusInelastic.hh" #include "G4LEPionMinusInelastic.hh" @@ -488,7 +481,7 @@ void DMXPhysicsList::ConstructOp() { #include "G4LETritonInelastic.hh" #include "G4LEAlphaInelastic.hh" -// High-energy Models +// High-energy Models: >20 GeV #include "G4HEPionPlusInelastic.hh" #include "G4HEPionMinusInelastic.hh" #include "G4HEKaonPlusInelastic.hh" @@ -499,6 +492,8 @@ void DMXPhysicsList::ConstructOp() { #include "G4HEAntiProtonInelastic.hh" #include "G4HENeutronInelastic.hh" #include "G4HEAntiNeutronInelastic.hh" + +// Neutron high-precision models: <20 MeV #include "G4NeutronHPElastic.hh" #include "G4NeutronHPElasticData.hh" #include "G4NeutronHPCapture.hh" @@ -510,6 +505,8 @@ void DMXPhysicsList::ConstructOp() { // Stopping processes #include "G4PiMinusAbsorptionAtRest.hh" #include "G4KaonMinusAbsorptionAtRest.hh" +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4AntiNeutronAnnihilationAtRest.hh" // ConstructHad() @@ -517,216 +514,228 @@ void DMXPhysicsList::ConstructOp() { // to those particles with GHEISHA interactions (INTRC > 0). // The processes are: Elastic scattering and Inelastic scattering. // F.W.Jones 09-JUL-1998 -void DMXPhysicsList::ConstructHad() { - +void DMXPhysicsList::ConstructHad() +{ G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess; G4LElastic* theElasticModel = new G4LElastic; theElasticProcess->RegisterMe(theElasticModel); theParticleIterator->reset(); - while ((*theParticleIterator)()) { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); + 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* theLEInelasticModel = - new G4LEPionPlusInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEPionPlusInelastic* theHEInelasticModel = - new G4HEPionPlusInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } + if (particleName == "pi+") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4PionPlusInelasticProcess* theInelasticProcess = + new G4PionPlusInelasticProcess("inelastic"); + G4LEPionPlusInelastic* theLEInelasticModel = + new G4LEPionPlusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEPionPlusInelastic* theHEInelasticModel = + new G4HEPionPlusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "pi-") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4PionMinusInelasticProcess* theInelasticProcess = + new G4PionMinusInelasticProcess("inelastic"); + G4LEPionMinusInelastic* theLEInelasticModel = + new G4LEPionMinusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEPionMinusInelastic* theHEInelasticModel = + new G4HEPionMinusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + G4String prcNam; + pmanager->AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); + } + + else if (particleName == "kaon+") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonPlusInelasticProcess* theInelasticProcess = + new G4KaonPlusInelasticProcess("inelastic"); + G4LEKaonPlusInelastic* theLEInelasticModel = + new G4LEKaonPlusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonPlusInelastic* theHEInelasticModel = + new G4HEKaonPlusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "kaon0S") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonZeroSInelasticProcess* theInelasticProcess = + new G4KaonZeroSInelasticProcess("inelastic"); + G4LEKaonZeroSInelastic* theLEInelasticModel = + new G4LEKaonZeroSInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonZeroInelastic* theHEInelasticModel = + new G4HEKaonZeroInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "kaon0L") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonZeroLInelasticProcess* theInelasticProcess = + new G4KaonZeroLInelasticProcess("inelastic"); + G4LEKaonZeroLInelastic* theLEInelasticModel = + new G4LEKaonZeroLInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonZeroInelastic* theHEInelasticModel = + new G4HEKaonZeroInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "kaon-") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonMinusInelasticProcess* theInelasticProcess = + new G4KaonMinusInelasticProcess("inelastic"); + G4LEKaonMinusInelastic* theLEInelasticModel = + new G4LEKaonMinusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonMinusInelastic* theHEInelasticModel = + new G4HEKaonMinusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + pmanager->AddRestProcess(new G4KaonMinusAbsorptionAtRest, ordDefault); + } + + else if (particleName == "proton") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4ProtonInelasticProcess* theInelasticProcess = + new G4ProtonInelasticProcess("inelastic"); + G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEProtonInelastic* theHEInelasticModel = new G4HEProtonInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "anti_proton") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4AntiProtonInelasticProcess* theInelasticProcess = + new G4AntiProtonInelasticProcess("inelastic"); + G4LEAntiProtonInelastic* theLEInelasticModel = + new G4LEAntiProtonInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEAntiProtonInelastic* theHEInelasticModel = + new G4HEAntiProtonInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "neutron") { + // elastic scattering + G4HadronElasticProcess* theNeutronElasticProcess = + new G4HadronElasticProcess; + G4LElastic* theElasticModel1 = new G4LElastic; + G4NeutronHPElastic * theElasticNeutron = new G4NeutronHPElastic; + theNeutronElasticProcess->RegisterMe(theElasticModel1); + theElasticModel1->SetMinEnergy(19*MeV); + theNeutronElasticProcess->RegisterMe(theElasticNeutron); + G4CrossSectionDataStore * theStore = + ((G4HadronElasticProcess*)theNeutronElasticProcess) + ->GetCrossSectionDataStore(); + G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData; + theStore->AddDataSet(theNeutronData); + pmanager->AddDiscreteProcess(theNeutronElasticProcess); + // inelastic scattering + G4NeutronInelasticProcess* theInelasticProcess = + new G4NeutronInelasticProcess("inelastic"); + G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; + theInelasticModel->SetMinEnergy(19*MeV); + theInelasticProcess->RegisterMe(theInelasticModel); + G4NeutronHPInelastic * theLENeutronInelasticModel = + new G4NeutronHPInelastic; + theInelasticProcess->RegisterMe(theLENeutronInelasticModel); + G4CrossSectionDataStore * theStore1 = + ((G4HadronInelasticProcess*)theInelasticProcess) + ->GetCrossSectionDataStore(); + G4NeutronHPInelasticData * theNeutronData1 = + new G4NeutronHPInelasticData; + theStore1->AddDataSet(theNeutronData1); + pmanager->AddDiscreteProcess(theInelasticProcess); + // capture + G4HadronCaptureProcess* theCaptureProcess = + new G4HadronCaptureProcess; + G4LCapture* theCaptureModel = new G4LCapture; + theCaptureModel->SetMinEnergy(19*MeV); + theCaptureProcess->RegisterMe(theCaptureModel); + G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture; + theCaptureProcess->RegisterMe(theLENeutronCaptureModel); + G4CrossSectionDataStore * theStore3 = + ((G4HadronCaptureProcess*)theCaptureProcess)-> + GetCrossSectionDataStore(); + G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData; + theStore3->AddDataSet(theNeutronData3); + pmanager->AddDiscreteProcess(theCaptureProcess); + // G4ProcessManager* pmanager = G4Neutron::Neutron->GetProcessManager(); + // pmanager->AddProcess(new G4UserSpecialCuts(),-1,-1,1); + } + else if (particleName == "anti_neutron") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4AntiNeutronInelasticProcess* theInelasticProcess = + new G4AntiNeutronInelasticProcess("inelastic"); + G4LEAntiNeutronInelastic* theLEInelasticModel = + new G4LEAntiNeutronInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEAntiNeutronInelastic* theHEInelasticModel = + new G4HEAntiNeutronInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "deuteron") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4DeuteronInelasticProcess* theInelasticProcess = + new G4DeuteronInelasticProcess("inelastic"); + G4LEDeuteronInelastic* theLEInelasticModel = + new G4LEDeuteronInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "triton") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4TritonInelasticProcess* theInelasticProcess = + new G4TritonInelasticProcess("inelastic"); + G4LETritonInelastic* theLEInelasticModel = + new G4LETritonInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "alpha") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4AlphaInelasticProcess* theInelasticProcess = + new G4AlphaInelasticProcess("inelastic"); + G4LEAlphaInelastic* theLEInelasticModel = + new G4LEAlphaInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } - else if (particleName == "pi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionMinusInelasticProcess* theInelasticProcess = - new G4PionMinusInelasticProcess("inelastic"); - G4LEPionMinusInelastic* theLEInelasticModel = - new G4LEPionMinusInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEPionMinusInelastic* theHEInelasticModel = - new G4HEPionMinusInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - G4String prcNam; - pmanager->AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); } - - else if (particleName == "kaon+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonPlusInelasticProcess* theInelasticProcess = - new G4KaonPlusInelasticProcess("inelastic"); - G4LEKaonPlusInelastic* theLEInelasticModel = - new G4LEKaonPlusInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEKaonPlusInelastic* theHEInelasticModel = - new G4HEKaonPlusInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "kaon0S") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroSInelasticProcess* theInelasticProcess = - new G4KaonZeroSInelasticProcess("inelastic"); - G4LEKaonZeroSInelastic* theLEInelasticModel = - new G4LEKaonZeroSInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEKaonZeroInelastic* theHEInelasticModel = - new G4HEKaonZeroInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "kaon0L") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroLInelasticProcess* theInelasticProcess = - new G4KaonZeroLInelasticProcess("inelastic"); - G4LEKaonZeroLInelastic* theLEInelasticModel = - new G4LEKaonZeroLInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEKaonZeroInelastic* theHEInelasticModel = - new G4HEKaonZeroInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "kaon-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonMinusInelasticProcess* theInelasticProcess = - new G4KaonMinusInelasticProcess("inelastic"); - G4LEKaonMinusInelastic* theLEInelasticModel = - new G4LEKaonMinusInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEKaonMinusInelastic* theHEInelasticModel = - new G4HEKaonMinusInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - pmanager->AddRestProcess(new G4KaonMinusAbsorptionAtRest, ordDefault); - } - - else if (particleName == "proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4ProtonInelasticProcess* theInelasticProcess = - new G4ProtonInelasticProcess("inelastic"); - G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEProtonInelastic* theHEInelasticModel = new G4HEProtonInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "anti_proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiProtonInelasticProcess* theInelasticProcess = - new G4AntiProtonInelasticProcess("inelastic"); - G4LEAntiProtonInelastic* theLEInelasticModel = - new G4LEAntiProtonInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEAntiProtonInelastic* theHEInelasticModel = - new G4HEAntiProtonInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "neutron") { - // elastic scattering - G4HadronElasticProcess* theNeutronElasticProcess = - new G4HadronElasticProcess; - G4LElastic* theElasticModel1 = new G4LElastic; - G4NeutronHPElastic * theElasticNeutron = new G4NeutronHPElastic; - theNeutronElasticProcess->RegisterMe(theElasticModel1); - theElasticModel1->SetMinEnergy(19*MeV); - theNeutronElasticProcess->RegisterMe(theElasticNeutron); - G4CrossSectionDataStore * theStore = - ((G4HadronElasticProcess*)theNeutronElasticProcess) - ->GetCrossSectionDataStore(); - G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData; - theStore->AddDataSet(theNeutronData); - pmanager->AddDiscreteProcess(theNeutronElasticProcess); - // inelastic scattering - G4NeutronInelasticProcess* theInelasticProcess = - new G4NeutronInelasticProcess("inelastic"); - G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; - theInelasticModel->SetMinEnergy(19*MeV); - theInelasticProcess->RegisterMe(theInelasticModel); - G4NeutronHPInelastic * theLENeutronInelasticModel = - new G4NeutronHPInelastic; - theInelasticProcess->RegisterMe(theLENeutronInelasticModel); - G4CrossSectionDataStore * theStore1 = - ((G4HadronInelasticProcess*)theInelasticProcess) - ->GetCrossSectionDataStore(); - G4NeutronHPInelasticData * theNeutronData1 = - new G4NeutronHPInelasticData; - theStore1->AddDataSet(theNeutronData1); - pmanager->AddDiscreteProcess(theInelasticProcess); - // capture - G4HadronCaptureProcess* theCaptureProcess = - new G4HadronCaptureProcess; - G4LCapture* theCaptureModel = new G4LCapture; - theCaptureModel->SetMinEnergy(19*MeV); - theCaptureProcess->RegisterMe(theCaptureModel); - G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture; - theCaptureProcess->RegisterMe(theLENeutronCaptureModel); - G4CrossSectionDataStore * theStore3 = - ((G4HadronCaptureProcess*)theCaptureProcess)-> - GetCrossSectionDataStore(); - G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData; - theStore3->AddDataSet(theNeutronData3); - pmanager->AddDiscreteProcess(theCaptureProcess); - // G4ProcessManager* pmanager = G4Neutron::Neutron->GetProcessManager(); - // pmanager->AddProcess(new G4UserSpecialCuts(),-1,-1,1); - } - - else if (particleName == "anti_neutron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiNeutronInelasticProcess* theInelasticProcess = - new G4AntiNeutronInelasticProcess("inelastic"); - G4LEAntiNeutronInelastic* theLEInelasticModel = - new G4LEAntiNeutronInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEAntiNeutronInelastic* theHEInelasticModel = - new G4HEAntiNeutronInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "deuteron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4DeuteronInelasticProcess* theInelasticProcess = - new G4DeuteronInelasticProcess("inelastic"); - G4LEDeuteronInelastic* theLEInelasticModel = - new G4LEDeuteronInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "triton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4TritonInelasticProcess* theInelasticProcess = - new G4TritonInelasticProcess("inelastic"); - G4LETritonInelastic* theLEInelasticModel = - new G4LETritonInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - else if (particleName == "alpha") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AlphaInelasticProcess* theInelasticProcess = - new G4AlphaInelasticProcess("inelastic"); - G4LEAlphaInelastic* theLEInelasticModel = - new G4LEAlphaInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - - } } @@ -741,41 +750,46 @@ void DMXPhysicsList::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); + 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); + } } - } // Declare radioactive decay to the GenericIon in the IonTable. const G4IonTable *theIonTable = G4ParticleTable::GetParticleTable()->GetIonTable(); G4RadioactiveDecay *theRadioactiveDecay = new G4RadioactiveDecay(); - for (G4int i=0; iEntries(); i++) { - G4String particleName = theIonTable->GetParticle(i)->GetParticleName(); - G4String particleType = theIonTable->GetParticle(i)->GetParticleType(); - - if (particleName == "GenericIon") { - G4ProcessManager* pmanager = - theIonTable->GetParticle(i)->GetProcessManager(); - pmanager->SetVerboseLevel(VerboseLevel); - pmanager ->AddProcess(theRadioactiveDecay); - pmanager ->SetProcessOrdering(theRadioactiveDecay, idxPostStep); - pmanager ->SetProcessOrdering(theRadioactiveDecay, idxAtRest); - } - } + for (G4int i=0; iEntries(); i++) + { + G4String particleName = theIonTable->GetParticle(i)->GetParticleName(); + G4String particleType = theIonTable->GetParticle(i)->GetParticleType(); + + if (particleName == "GenericIon") + { + G4ProcessManager* pmanager = + theIonTable->GetParticle(i)->GetProcessManager(); + pmanager->SetVerboseLevel(VerboseLevel); + pmanager ->AddProcess(theRadioactiveDecay); + pmanager ->SetProcessOrdering(theRadioactiveDecay, idxPostStep); + pmanager ->SetProcessOrdering(theRadioactiveDecay, idxAtRest); + } + } } // Cuts ///////////////////////////////////////////////////////////////////// -void DMXPhysicsList::SetCuts() { - +void DMXPhysicsList::SetCuts() +{ + if (verboseLevel >1) G4cout << "DMXPhysicsList::SetCuts:"; @@ -786,8 +800,6 @@ void DMXPhysicsList::SetCuts() { } //special for low energy physics - // G4double lowlimit=250*eV; -- should this be lowered? - see Vladimir's - // htest G4double lowlimit=250*eV; G4Gamma ::SetEnergyRange(lowlimit,100*GeV); G4Electron::SetEnergyRange(lowlimit,100*GeV); diff --git a/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc b/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc index 93df7d9d60..4ed1b5ffa3 100644 --- a/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc +++ b/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc @@ -33,20 +33,41 @@ // by A. Howard and H. Araujo // (27th November 2001) // +// // PrimaryGeneratorAction program // -------------------------------------------------------------- #include "DMXPrimaryGeneratorAction.hh" +#ifdef DMXENV_GPS_USE +#include "G4GeneralParticleSource.hh" +#else #include "DMXParticleSource.hh" +#endif + +#ifdef G4ANALYSIS_USE +#include "DMXAnalysisManager.hh" +#endif #include "G4Event.hh" + +#include "Randomize.hh" + #include "globals.hh" DMXPrimaryGeneratorAction::DMXPrimaryGeneratorAction() { +#ifdef DMXENV_GPS_USE + particleGun = new G4GeneralParticleSource(); +#else particleGun = new DMXParticleSource(); +#endif + + energy_pri=0; + // seeds=NULL; + seeds[0] =-1; + seeds[1] =-1; } @@ -59,9 +80,21 @@ DMXPrimaryGeneratorAction::~DMXPrimaryGeneratorAction() { void DMXPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { + energy_pri = 0.; + + // seeds + // seeds = HepRandom::getTheSeeds(); + seeds[0] = *HepRandom::getTheSeeds(); + seeds[1] = *(HepRandom::getTheSeeds()+1); particleGun->GeneratePrimaryVertex(anEvent); + energy_pri = particleGun->GetParticleEnergy(); +#ifdef G4ANALYSIS_USE + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->analysePrimaryGenerator(energy_pri); +#endif + } diff --git a/examples/advanced/underground_physics/src/DMXRunAction.cc b/examples/advanced/underground_physics/src/DMXRunAction.cc index 37de8bf601..c4beee581d 100644 --- a/examples/advanced/underground_physics/src/DMXRunAction.cc +++ b/examples/advanced/underground_physics/src/DMXRunAction.cc @@ -33,6 +33,9 @@ // by A. Howard and H. Araujo // (27th November 2001) // +// History: +// 17 Jan 2002 Alex Howard Added Analysis +// // RunAction program // -------------------------------------------------------------- @@ -48,11 +51,19 @@ #include "g4std/iomanip" #include "g4std/vector" +#ifdef G4ANALYSIS_USE +#include "DMXAnalysisManager.hh" +#endif + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DMXRunAction::DMXRunAction() { runMessenger = new DMXRunActionMessenger(this); + savehitsFile = "hits.out"; + savepmtFile = "pmt.out"; + savehistFile = "dmx.his"; + interactplot = false; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -60,6 +71,8 @@ DMXRunAction::DMXRunAction() DMXRunAction::~DMXRunAction() { delete runMessenger; + runMessenger = 0; + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -73,14 +86,28 @@ void DMXRunAction::BeginOfRunAction(const G4Run* aRun) G4UImanager* UI = G4UImanager::GetUIpointer(); UI->ApplyCommand("/vis/scene/notifyHandlers"); } - - + +#ifdef G4ANALYSIS_USE + // Book histograms and ntuples + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->book(savehistFile); + // analysis->PlotHistosInit(); +#endif + + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXRunAction::EndOfRunAction(const G4Run* aRun) { + +#ifdef G4ANALYSIS_USE + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->PlotHistos(interactplot); + analysis->finish(); +#endif + if (G4VVisManager::GetConcreteInstance()) { G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); } diff --git a/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc b/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc index b42ca63ca0..029fa3c35e 100644 --- a/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc @@ -40,6 +40,7 @@ #include "DMXRunAction.hh" #include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithABool.hh" #include "G4ios.hh" #include "globals.hh" @@ -48,27 +49,64 @@ DMXRunActionMessenger::DMXRunActionMessenger(DMXRunAction* run) :DMXRun(run) { - FileCmd = new G4UIcmdWithAString("/run/filename",this); - FileCmd->SetGuidance(" The log file name for the run"); - FileCmd->SetGuidance(" default = rdmex2.log "); - FileCmd->SetParameterName(" Input ",true); - FileCmd->SetDefaultValue("rdmex2.log"); - FileCmd->AvailableForStates(Idle); + SaveHitsCmd = new G4UIcmdWithAString("/dmx/hitsfile",this); + SaveHitsCmd->SetGuidance("output file for hits collection (txt)"); + SaveHitsCmd->SetGuidance("Default = hits.out"); + SaveHitsCmd->SetParameterName("savehitsFile", false); + SaveHitsCmd->SetDefaultValue("hits.out"); + + SavePmtCmd = new G4UIcmdWithAString("/dmx/pmtfile",this); + SavePmtCmd->SetGuidance("output file for pmt hits (txt)"); + SavePmtCmd->SetGuidance("Default = pmt.out"); + SavePmtCmd->SetParameterName("savepmtFile", false); + SavePmtCmd->SetDefaultValue("pmt.out"); + + SaveHistFileCmd = new G4UIcmdWithAString("/dmx/histogramfile",this); + SaveHistFileCmd->SetGuidance("output file for histograms"); + SaveHistFileCmd->SetGuidance("Default = dmx.his"); + // SaveHistFileCmd->SetParameterName("savehistFile", false); + SaveHistFileCmd->SetParameterName("histFile", false); + SaveHistFileCmd->SetDefaultValue("dmx.his"); + + 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); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DMXRunActionMessenger::~DMXRunActionMessenger() { - delete FileCmd; + delete SaveHitsCmd; + delete SavePmtCmd; + delete SaveHistFileCmd; + delete InteractPlotCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) { - if(command == FileCmd) - {DMXRun->SetFilename(newValue);} + if(command == SaveHitsCmd) + DMXRun->SetsavehitsFile(newValue); + + if(command == SavePmtCmd) + DMXRun->SetsavepmtFile(newValue); + + if(command == SaveHistFileCmd) + DMXRun->SetsavehistFile(newValue); + + if(command == InteractPlotCmd) { + G4int vl; + const char* t = newValue; + G4std::istrstream is((char*)t); + is >> vl; + DMXRun->Setinteractplot(vl!=0); + } } diff --git a/examples/advanced/underground_physics/src/DMXSteppingAction.cc b/examples/advanced/underground_physics/src/DMXSteppingAction.cc index af3252c6ae..2ca0e6bac6 100644 --- a/examples/advanced/underground_physics/src/DMXSteppingAction.cc +++ b/examples/advanced/underground_physics/src/DMXSteppingAction.cc @@ -33,6 +33,9 @@ // by A. Howard and H. Araujo // (27th November 2001) // +// History: +// 21 Feb 2002 AH: Added Analysis +// // SteppingAction program // -------------------------------------------------------------- @@ -41,6 +44,10 @@ #include "DMXEventAction.hh" +#ifdef G4ANALYSIS_USE +#include "DMXAnalysisManager.hh" +#endif + #include "G4Track.hh" #include "G4Step.hh" #include "G4StepPoint.hh" @@ -85,13 +92,25 @@ DMXSteppingAction::~DMXSteppingAction() void DMXSteppingAction::UserSteppingAction(const G4Step* fStep) { - // removed 28/11/01 - unnecessary unless program "hangs" + // removed 28/11/01 - unnecessary unless program "freezes" // kill track if too many steps // NB: This is set to DBL_MAX - therefore may cause program to "hang" // G4int MaxNoSteps = DBL_MAX; // G4int StepNo = fStep->GetTrack()->GetCurrentStepNumber(); // if(StepNo >= MaxNoSteps) fStep->GetTrack()->SetTrackStatus(fStopAndKill); +#ifdef G4ANALYSIS_USE + G4int StepNo = fStep->GetTrack()->GetCurrentStepNumber(); + if(StepNo == 1) + { + G4double partEnergy = fStep->GetPreStepPoint()->GetKineticEnergy(); + G4ParticleDefinition* particleType = fStep->GetTrack()->GetDefinition(); + G4String particleName = particleType->GetParticleName(); + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->analyseParticleSource(partEnergy, particleName); + } +#endif + // check what is to be drawn from EventAction/EventActionMessenger G4String drawColsFlag = evtAction->GetDrawColsFlag(); G4String drawTrksFlag = evtAction->GetDrawTrksFlag(); diff --git a/examples/advanced/xray_fluorescence/G4History.macro b/examples/advanced/xray_fluorescence/G4History.macro index 7c9674d204..a2fd2daea9 100644 --- a/examples/advanced/xray_fluorescence/G4History.macro +++ b/examples/advanced/xray_fluorescence/G4History.macro @@ -1,16 +1,2 @@ /run/verbose 2 -/vis/scene/create -/vis/open VRML1FILE -/vis/sceneHandler/create VRML1FILE -/vis/sceneHandler/attach -/vis/viewer/create ! ! 600 -/vis/drawVolume -/vis/scene/create -/vis/scene/add/volume world -/vis/sceneHandler/attach -/vis/viewer/refresh -/vis/viewer/update -/tracking/storeTrajectory 1 -/run/beamOn 10 -/vis/scene/notifyHandlers -/vis/viewer/update +/run/beamOn 1000 diff --git a/examples/advanced/xray_fluorescence/GNUmakefile b/examples/advanced/xray_fluorescence/GNUmakefile index 19d13fe1ee..f10f0b054b 100644 --- a/examples/advanced/xray_fluorescence/GNUmakefile +++ b/examples/advanced/xray_fluorescence/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.11 2001/12/10 08:52:10 gcosmo Exp $ +# $Id: GNUmakefile,v 1.13 2002/06/16 15:05:45 mantero Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -7,35 +7,29 @@ name := XrayFluo G4TARGET := $(name) G4EXLIB := true +G4ANALYSIS_USE = 1 + ifndef G4INSTALL G4INSTALL = ../../.. endif include $(G4INSTALL)/config/architecture.gmk -# Copy the XrayFluoAnalysisManage 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/XrayFluoAnalysisManager.hh-AIDA include/XrayFluoAnalysisManager.hh ) - FOO := $(shell cp -p src/XrayFluoAnalysisManager.cc-AIDA src/XrayFluoAnalysisManager.cc ) -else -# Anaphe selected - include anaphe.gmk - FOO := $(shell cp -p include/XrayFluoAnalysisManager.hh-Anaphe include/XrayFluoAnalysisManager.hh ) - FOO := $(shell cp -p src/XrayFluoAnalysisManager.cc-Anaphe src/XrayFluoAnalysisManager.cc ) -endif - -# End Analysis. - .PHONY: all visclean all: lib bin include $(G4INSTALL)/config/binmake.gmk +# Copy the XrayFluoAnalysisManage files according to which version +# is selected. +# As the dependency is checked before "all" is reached, we need +# to do some tricks here ... + +CPPFLAGS += -I${LHCXX_REL_DIR}/include -I/afs/cern.ch/sw/contrib/AIDA/2.2/cpp +LOADLIBS += -L/usr/local/gcc-alt-2.95.2 + + + visclean: rm -f g4*.prim g4*.eps g4*.wrl rm -f .DAWN_* diff --git a/examples/advanced/xray_fluorescence/README b/examples/advanced/xray_fluorescence/README index 0301a71488..fc5e228ca2 100644 --- a/examples/advanced/xray_fluorescence/README +++ b/examples/advanced/xray_fluorescence/README @@ -1,4 +1,4 @@ -$Id: README,v 1.2 2001/12/11 13:07:14 gcosmo Exp $ +$Id: README,v 1.4 2002/06/16 15:05:45 mantero Exp $ ------------------------------------------------------------------- ========================================================= @@ -81,7 +81,7 @@ source /afs/cern.ch/sw/lhcxx/share/LHCXX/3.6.5/install/sharedstart.csh #path to the lowEnergy data base -setenv G4LEDATA /afs/cern.ch/sw/geant4/stt/dev1/src/G4EMLOW0.5 +setenv G4LEDATA /afs/cern.ch/sw/geant4/stt/dev1/src/G4EMLOW1.1 1. Run To execute a sample simulation with visualisation of tracks @@ -112,20 +112,13 @@ XrayFluoParticleGeneratorAction.cc 5. 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. +At present the analisys is provided by any AIDA-2.2 compliant analysis system. +In the example the Anaphe toolkit is used. To build and execute the example on platforms where there is no implementation of the analysis system, the environment variables must not be set. The example provides also two Python files used to display and fit the -histograms. +histograms with Lizard 1.3.x. diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh-AIDA b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh similarity index 85% rename from examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh-AIDA rename to examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh index 6818569b01..dd0a9571aa 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh-AIDA +++ b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh @@ -33,19 +33,25 @@ // // ------------------------------------------------------------------- +#ifndef G4PROCESSTESTANALYSIS_HH +#define G4PROCESSTESTANALYSIS_HH - -#ifndef XrayFluoAnalysisManager_h -#define XrayFluoAnalysisManager_h 1 +//#ifndef XrayFluoAnalysisManager_h +//#define XrayFluoAnalysisManager_h 1 #include "globals.hh" +#include "g4std/vector" +#include "G4ThreeVector.hh" +#include "XrayFluoDataSet.hh" + class G4Step; -class XrayFluoAnalysisMessenger; +//class XrayFluoEventAction; class IAnalysisFactory; +class IHistogramFactory; class ITree; -class IHistogram1D; +class ITupleFactory; class ITuple; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -71,6 +77,9 @@ public: //method to call to create an instance of this class static XrayFluoAnalysisManager* getInstance(); + + G4double XrayFluoAnalysisManager::ResponseFunction(G4double energy); + private: //private constructor in order to create a singleton @@ -79,20 +88,19 @@ private: static XrayFluoAnalysisManager* instance; //pointer to the analysis messenger - XrayFluoAnalysisMessenger* analysisMessenger; + + //XrayFluoEventAction* pEvent; IAnalysisFactory* analysisFactory; ITree* tree; - IHistogram1D* histo_1; - IHistogram1D* histo_2; - IHistogram1D* histo_3; - IHistogram1D* histo_4; - IHistogram1D* histo_5; - IHistogram1D* histo_6; - IHistogram1D* histo_7; - IHistogram1D* histo_8; - IHistogram1D* histo_9; + + IHistogramFactory *histogramFactory; + ITupleFactory* tupleFactory; + + ITuple* tuple; + + }; #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh-Anaphe b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh-Anaphe deleted file mode 100644 index 1ac54fa5b9..0000000000 --- a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh-Anaphe +++ /dev/null @@ -1,108 +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: XrayFluoAnalysisManager.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 -// -// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) -// -// History: -// ----------- -// 28 Nov 2001 Elena Guardincerri Created -// -// ------------------------------------------------------------------- - - - -#ifdef G4ANALYSIS_USE -#ifndef XrayFluoAnalysisManager_h -#define XrayFluoAnalysisManager_h 1 - -#include "globals.hh" - -// Histogramming from AIDA -#include "Interfaces/IHistogram1D.h" -#include "Interfaces/IHistogram2D.h" - -// Histogramming from Anaphe -#include "Interfaces/IHistoManager.h" - -// Ntuples from Anaphe -#include "NtupleTag/LizardNTupleFactory.h" -#include "NtupleTag/LizardQuantity.h" - - -class G4Step; -class XrayFluoAnalysisMessenger; -class NTuple; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class XrayFluoAnalysisManager -{ -public: - - virtual ~XrayFluoAnalysisManager(); - - void book(); - - void finish(); - - //fill histograms with data from XrayFluoSteppingAction - void analyseStepping(const G4Step* aStep); - - //fill histograms with data from XrayFluoEventAction - void analyseEnergyDep(G4double eDep); - - //fill histograms with data from XrayFluoPrimarygeneratoraction - void analysePrimaryGenerator(G4double energy); - - //method to call to create an instance of this class - static XrayFluoAnalysisManager* getInstance(); - - -private: - - //private constructor in order to create a singleton - XrayFluoAnalysisManager(); - - static XrayFluoAnalysisManager* instance; - - IHistoManager* histoManager; - - //nTuple factory - Lizard::NTupleFactory* factory; - Lizard::NTuple* ntuple; - - //pointer to the analysis messenger - XrayFluoAnalysisMessenger* analysisMessenger; - - // Quantities for the ntuple - Lizard::Quantity eDep; - Lizard::Quantity counts; -}; -#endif -#endif - - - diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh b/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh index 0649e9126e..716a2b7bf5 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh @@ -63,7 +63,14 @@ public: //find the value corresponding to the energy e in the set //identified by id G4double FindValue(G4double e, G4int id = 0) const; - + + virtual const G4VEMDataSet* GetComponent(G4int i) const { return 0;} + + virtual void AddComponent(G4VEMDataSet* dataSet) { } + + virtual size_t NumberOfComponents() const { return 0; } + + void PrintData() const; const G4DataVector& GetEnergies(G4int i) const { return *energies; } diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh index 6fbac9b6be..b571d3f51d 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh @@ -78,9 +78,13 @@ private: //this method distributes the energy deposit (which must be given as //argument) according to the response function stored in the file //response.dat - G4double ResponseFunction(G4double); + XrayFluoRunAction* runManager; + +public: G4double ResponseFunction(G4double); + + }; #endif diff --git a/examples/advanced/xray_fluorescence/initInter.mac b/examples/advanced/xray_fluorescence/initInter.mac index fd83eeeca0..72852516db 100644 --- a/examples/advanced/xray_fluorescence/initInter.mac +++ b/examples/advanced/xray_fluorescence/initInter.mac @@ -1,5 +1,5 @@ # -# Macro file for the initialization phase of "exampleN03.cc" +# Macro file for the initialization phase of XRay_Fluorescence # when runing in interactive mode # # Sets some default verbose @@ -16,16 +16,25 @@ # (Edit the next line(s) to choose another graphic system) # -/vis/open VRML1FILE - +/vis/open OGLIX +/vis/viewer/flush # # draw scene # -/vis/drawVolume -/vis/viewer/update +#/vis/drawVolume +#/vis/viewer/update # # for drawing the tracks # (if too many tracks cause core dump => storeTrajectory 0) /tracking/storeTrajectory 1 +/vis/viewer/set/viewpointThetaPhi 60 30 + +# this is not to redraw every single event + +/vis/scene/endOfEventAction accumulate + + + + diff --git a/examples/advanced/xray_fluorescence/macro.mac b/examples/advanced/xray_fluorescence/macro.mac index 26eb34617f..ed339e5c99 100644 --- a/examples/advanced/xray_fluorescence/macro.mac +++ b/examples/advanced/xray_fluorescence/macro.mac @@ -9,4 +9,4 @@ /gun/energy 6 keV -/run/beamOn 100 +/run/beamOn 10 diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc-AIDA b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc similarity index 69% rename from examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc-AIDA rename to examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc index c2221a012d..8e3c02eba8 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc-AIDA +++ b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc @@ -33,19 +33,21 @@ // 28 Nov 2001 Elena Guardincerri Created // // ------------------------------------------------------------------- - -#ifdef G4ANALYSIS_USE -#include -#include -#include -#include -#include -#include -#include -#endif +#include +#include "g4std/fstream" +#include "G4ios.hh" +#include "AIDA/IManagedObject.h" +#include "AIDA/IAnalysisFactory.h" +#include "AIDA/ITreeFactory.h" +#include "AIDA/ITree.h" +#include "AIDA/IHistogramFactory.h" +#include "AIDA/IHistogram1D.h" +#include "AIDA/ITupleFactory.h" +#include "AIDA/ITuple.h" #include "XrayFluoAnalysisManager.hh" -#include "XrayFluoAnalysisMessenger.hh" + + #include "G4Step.hh" XrayFluoAnalysisManager* XrayFluoAnalysisManager::instance = 0; @@ -53,22 +55,11 @@ XrayFluoAnalysisManager* XrayFluoAnalysisManager::instance = 0; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoAnalysisManager::XrayFluoAnalysisManager() -:analysisMessenger(0) -,analysisFactory(0) -,histo_1(0) -,histo_2(0) -,histo_3(0) -,histo_4(0) -,histo_5(0) -,histo_6(0) -,histo_7(0) -,histo_8(0) -,histo_9(0) -,tuple(0) + :analysisFactory(0), tree(0),histogramFactory(0) ,tupleFactory(0) { - analysisMessenger = new XrayFluoAnalysisMessenger(this); + // pEvent=new XrayFluoEventAction(); + -#ifdef G4ANALYSIS_USE // Hooking an AIDA compliant analysis system. analysisFactory = AIDA_createAnalysisFactory(); if(analysisFactory) { @@ -76,9 +67,11 @@ XrayFluoAnalysisManager::XrayFluoAnalysisManager() ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); if(treeFactory) { // tree = treeFactory->create(); // Tree in memory. - tree = treeFactory->create("XrayFluo.root",false,false,"ROOT"); + tree = treeFactory->create("XrayFluo.hbk",false,false,"hbook"); delete treeFactory; // Will not delete the ITree. + histogramFactory = analysisFactory->createHistogramFactory(*tree); + tupleFactory = analysisFactory->createTupleFactory(*tree); } /* @@ -98,7 +91,6 @@ XrayFluoAnalysisManager::XrayFluoAnalysisManager() } */ } -#endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -106,13 +98,17 @@ XrayFluoAnalysisManager::XrayFluoAnalysisManager() XrayFluoAnalysisManager::~XrayFluoAnalysisManager() { - delete analysisMessenger; - analysisMessenger = 0; + + + + delete histogramFactory; + histogramFactory=0; -#ifdef G4ANALYSIS_USE delete analysisFactory; analysisFactory = 0; -#endif + + delete tupleFactory; + tupleFactory=0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -127,65 +123,67 @@ XrayFluoAnalysisManager* XrayFluoAnalysisManager::getInstance() void XrayFluoAnalysisManager::book() { - IHistogramFactory* histogramFactory = - analysisFactory->createHistogramFactory(*tree); + - if(histogramFactory) { - - // Book histograms - histo_1 = histogramFactory->create1D - ("1","Energy Deposit", 100,0.,10.); - histo_2 = histogramFactory->create1D - ("2","Gamma born in the sample", 100,0.,10.); - histo_3 = histogramFactory->create1D - ("3","Electrons born in the sample", 100,0.,10.); - histo_4 = histogramFactory->create1D - ("4","Gammas leaving the sample", 100,0.,10.); - histo_5 = histogramFactory->create1D - ("5","Electrons leaving the sample ", 100,0.,10.); - histo_6 = histogramFactory->create1D - ("6","Gammas reaching the detector", 100,0.,10.); - histo_7 = histogramFactory->create1D - ("7","Spectrum of the incident particles", 100,0.,10.); - histo_8 = histogramFactory->create1D - ("8","Protons reaching the detector", 100,0.,10.); - histo_9 = histogramFactory->create1D - ("9","Protons leaving the sample", 100,0.,10.); - - delete histogramFactory; - } + + // 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.); + + - // Get a tuple factory : - ITupleFactory* tupleFactory = analysisFactory->createTupleFactory(*tree); - if(tupleFactory) { + // Create a tuple : +// tuple = tupleFactory->create("XrayFluo","XrayFluo","energy counts"); - // Create a tuple : - tuple = tupleFactory->create - ("XrayFluo","XrayFluo","energy counts"); - - delete tupleFactory; - } +} + + -} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void XrayFluoAnalysisManager::finish() { -#ifdef G4ANALYSIS_USE - if(tree) tree->commit(); // Write histos and tuple in file. -#endif + + if(tree) {tree->commit(); // Write histos and tuple in file. + tree->close();} + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) { -#ifdef G4ANALYSIS_USE + IHistogram1D* histo_2 =dynamic_cast ( tree->find("2") ); + IHistogram1D* histo_3 =dynamic_cast ( tree->find("3") ); + IHistogram1D* histo_4 =dynamic_cast ( tree->find("4") ); + IHistogram1D* histo_5 =dynamic_cast ( tree->find("5") ); + IHistogram1D* histo_6 =dynamic_cast ( tree->find("6") ); + IHistogram1D* histo_8 =dynamic_cast ( tree->find("8") ); + IHistogram1D* histo_10 =dynamic_cast ( tree->find("10") ); G4double gammaAtTheDetPre=0; G4double protonsAtTheDetPre=0; G4double gammaLeavingSample=0; + G4double gammaLeavingSampleSmeared=0; G4double eleLeavingSample=0; G4double protonsLeavSam=0; G4double gammaBornInSample=0; @@ -197,14 +195,19 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) if ((aStep->GetTrack()->GetDynamicParticle() ->GetDefinition()-> GetParticleName()) == "gamma" ) { - gammaLeavingSample = - (aStep->GetPreStepPoint()->GetKineticEnergy()); + /*gammaLeavingSampleSmeared = + ResponseFunction(aStep->GetPreStepPoint()->GetKineticEnergy()); + if(histo_10) { + histo_10->fill(gammaLeavingSampleSmeared/keV);*/ + + gammaLeavingSample =(aStep->GetPreStepPoint()->GetKineticEnergy()); if(histo_4) { - histo_4->fill(gammaLeavingSample/keV); - } + histo_4->fill(gammaLeavingSample/keV);} } } } + + if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Sample"){ if(aStep->GetTrack()->GetNextVolume()->GetName() == "World" ) @@ -293,31 +296,34 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) } } } -#endif + } + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void XrayFluoAnalysisManager::analyseEnergyDep(G4double energyDep) { -#ifdef G4ANALYSIS_USE - if(histo_1) { + IHistogram1D* 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(); } -#endif + */ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void XrayFluoAnalysisManager::analysePrimaryGenerator(G4double energy) { -#ifdef G4ANALYSIS_USE - if(histo_7) histo_7->fill(energy/keV); -#endif + IHistogram1D* histo_7 =dynamic_cast ( tree->find("1") ); + histo_7->fill(energy/keV); } + + diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc-Anaphe b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc-Anaphe deleted file mode 100644 index f6436b80c2..0000000000 --- a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc-Anaphe +++ /dev/null @@ -1,257 +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: XrayFluoAnalysisManager.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 -// -// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) -// -// History: -// ----------- -// 28 Nov 2001 Elena Guardincerri Created -// -// ------------------------------------------------------------------- -#ifdef G4ANALYSIS_USE - -#include "XrayFluoAnalysisManager.hh" -#include "XrayFluoAnalysisMessenger.hh" -#include "G4Step.hh" - -XrayFluoAnalysisManager* XrayFluoAnalysisManager::instance = 0; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -XrayFluoAnalysisManager::XrayFluoAnalysisManager() -{ - analysisMessenger = new XrayFluoAnalysisMessenger(this); - histoManager = createIHistoManager(); - factory = Lizard::createNTupleFactory(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -XrayFluoAnalysisManager::~XrayFluoAnalysisManager() -{ - - delete analysisMessenger; - analysisMessenger = 0; - delete histoManager; - histoManager = 0; - delete factory; - factory = 0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -XrayFluoAnalysisManager* XrayFluoAnalysisManager::getInstance() -{ - if (instance == 0) instance = new XrayFluoAnalysisManager; - return instance; -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - -void XrayFluoAnalysisManager::book() - -{ - histoManager->selectStore("XrayFluo.his"); - - // Book histograms - histoManager->create1D("1","Energy Deposit", 100,0.,10.); - histoManager->create1D("2","Gamma born in the sample", 100,0.,10.); - histoManager->create1D("3","Electrons born in the sample", 100,0.,10.); - histoManager->create1D("4","Gammas leaving the sample", 100,0.,10.); - histoManager->create1D("5","Electrons leaving the sample ", 100,0.,10.); - histoManager->create1D("6","Gammas reaching the detector", 100,0.,10.); - histoManager->create1D("7","Spectrum of the incident particles", 100,0.,10.); - histoManager->create1D("8","Protons reaching the detector", 100,0.,10.); - histoManager->create1D("9","Protons leaving the sample", 100,0.,10.); - - // Book ntuples - ntuple = factory->createC("XrayFluo.his::1"); - - // Add and bind the attributes to the ntuple - if ( !( ntuple->addAndBind( "energy", eDep) && - ntuple->addAndBind( "counts" , counts ) ) ) - - { - delete ntuple; - G4Exception("XrayFluoAnalysisManager::book - Could not addAndBind ntuple"); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void XrayFluoAnalysisManager::finish() -{ - - histoManager->store("1"); - histoManager->store("3"); - histoManager->store("2"); - histoManager->store("4"); - histoManager->store("5"); - histoManager->store("6"); - histoManager->store("7"); - histoManager->store("8"); - histoManager->store("9"); - - - delete ntuple; - ntuple = 0; - G4cout << "Deleted ntuple" << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) -{ - G4double gammaAtTheDetPre=0; - G4double protonsAtTheDetPre=0; - G4double gammaLeavingSample=0; - G4double eleLeavingSample=0; - G4double protonsLeavSam=0; - G4double gammaBornInSample=0; - G4double eleBornInSample=0; - if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Sample"){ - - if(aStep->GetTrack()->GetNextVolume()->GetName() == "World" ) - { - if ((aStep->GetTrack()->GetDynamicParticle() - ->GetDefinition()-> GetParticleName()) == "gamma" ) - { - gammaLeavingSample = (aStep->GetPreStepPoint()->GetKineticEnergy()); - IHistogram1D* h1 = histoManager->retrieveHisto1D("4"); - h1->fill(gammaLeavingSample/keV); - } - } - } - if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Sample"){ - - if(aStep->GetTrack()->GetNextVolume()->GetName() == "World" ) - { - if ((aStep->GetTrack()->GetDynamicParticle() - ->GetDefinition()-> GetParticleName()) == "e-" ) - { - eleLeavingSample = (aStep->GetPreStepPoint()->GetKineticEnergy()); - - IHistogram1D* h2 = histoManager->retrieveHisto1D("5"); - h2->fill(eleLeavingSample/keV); - } - else if ((aStep->GetTrack()->GetDynamicParticle() - ->GetDefinition()-> GetParticleName()) == "proton" ) - { - protonsLeavSam = (aStep->GetPreStepPoint()->GetKineticEnergy()); - IHistogram1D* h3 = histoManager->retrieveHisto1D("9"); - h3->fill(protonsLeavSam/keV); - } - - } - } - - - if((aStep->GetTrack()->GetDynamicParticle() - ->GetDefinition()-> GetParticleName()) == "gamma" ) - - {if(1== (aStep->GetTrack()->GetCurrentStepNumber())) - - {if(0 != aStep->GetTrack()->GetParentID()) - - {if(aStep->GetTrack()->GetVolume()->GetName() == "Sample") - { - gammaBornInSample = (aStep->GetPreStepPoint()->GetKineticEnergy()); - IHistogram1D* h4 = histoManager->retrieveHisto1D("2"); - h4->fill(gammaBornInSample); - - } - } - } - } - if((aStep->GetTrack()->GetDynamicParticle() - ->GetDefinition()-> GetParticleName()) == "e-" ) - - {if(1== (aStep->GetTrack()->GetCurrentStepNumber())) - - {if(0 != aStep->GetTrack()->GetParentID()) - - {if(aStep->GetTrack()->GetVolume()->GetName() == "Sample") - { - eleBornInSample = (aStep->GetPreStepPoint()->GetKineticEnergy()); - IHistogram1D* h5 = histoManager->retrieveHisto1D("3"); - h5->fill(eleBornInSample); - } - } - } - } - - if(aStep->GetTrack()->GetNextVolume()){ - - if(aStep->GetTrack()->GetVolume()->GetName() == "World"){ - - if(aStep->GetTrack()->GetNextVolume()->GetName() == "HPGeDetector") - - { - if ((aStep->GetTrack()->GetDynamicParticle() - ->GetDefinition()-> GetParticleName()) == "gamma" ) - { - gammaAtTheDetPre = (aStep->GetPreStepPoint()->GetKineticEnergy()); - IHistogram1D* h6 = histoManager->retrieveHisto1D("6"); - h6->fill( gammaAtTheDetPre); - } - else if ((aStep->GetTrack()->GetDynamicParticle() - ->GetDefinition()-> GetParticleName()) == "proton" ) - { - protonsAtTheDetPre = (aStep->GetPreStepPoint()->GetKineticEnergy()); - IHistogram1D* h7 = histoManager->retrieveHisto1D("8"); - h7->fill( protonsAtTheDetPre); - } - } - } - } -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void XrayFluoAnalysisManager::analyseEnergyDep(G4double energyDep) -{ - IHistogram1D* h8 = histoManager->retrieveHisto1D("1"); - h8->fill(energyDep/keV); - counts = 1.; - ntuple->addRow(); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void XrayFluoAnalysisManager::analysePrimaryGenerator(G4double energy) -{ - IHistogram1D* h9 = histoManager->retrieveHisto1D("7"); - h9->fill(energy/keV); - -} -#endif - - - - - - - diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc index de73173d15..a86396a791 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc @@ -130,7 +130,7 @@ void XrayFluoDetectorConstruction::DefineMaterials() a = 69.72* g/mole; G4Element * Ga = new G4Element(name="gallium",symbol="Ga",z= 31.,a); - a = 55.85*g/mole; + a = 55.847*g/mole; G4Element* Fe = new G4Element(name="Iron" ,symbol="Fe", z=26., a); //define hydrogen @@ -166,7 +166,7 @@ void XrayFluoDetectorConstruction::DefineMaterials() //define silicon density = 2.333*g/cm3; - a = 28.09*g/mole; + a = 28.0855*g/mole; G4Material* Si = new G4Material(name="Silicon",z=14., a,density); //define copper @@ -178,7 +178,7 @@ void XrayFluoDetectorConstruction::DefineMaterials() //define carbon - a = 12.01*g/mole; + a = 12.0107*g/mole; G4Element* C = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); @@ -197,12 +197,12 @@ void XrayFluoDetectorConstruction::DefineMaterials() //define titanium density = 4.54 *g/cm3; - a = 47.867*g/mole; - G4Material* Ti = new G4Material(name="Titanium",z=22.,a,density); + a = 47.867*g/mole; + G4Material* Ti = new G4Material(name="Titanium",z=22.,a,density); + - -//define lead + //define lead density = 11.35*g/cm3; a=207.19*g/mole; @@ -213,7 +213,7 @@ void XrayFluoDetectorConstruction::DefineMaterials() a = 14.01*g/mole; G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); - a = 16.00*g/mole; + a = 15.9994*g/mole; G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); G4double fractionmass; @@ -229,12 +229,40 @@ 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); + + // end basalt G4cout << *(G4Material::GetMaterialTable()) << G4endl; //default materials of the apparate - sampleMaterial = Ti; + sampleMaterial = Basalt; Dia1Material = Pb; Dia3Material = Pb; pixelMaterial = HPGe; diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc index b8f247b77c..94cec77b7c 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc @@ -37,9 +37,8 @@ #include "XrayFluoEventActionMessenger.hh" #include "XrayFluoRunAction.hh" #include "XrayFluoDataSet.hh" -#ifdef G4ANALYSIS_USE + #include "XrayFluoAnalysisManager.hh" -#endif #include "G4Event.hh" #include "G4EventManager.hh" @@ -113,10 +112,9 @@ void XrayFluoEventAction::EndOfEventAction(const G4Event* evt) totEnergy += (*HPGeHC)[i]->GetEdepTot(); energyD = ResponseFunction(totEnergy); -#ifdef G4ANALYSIS_USE XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); analysis->analyseEnergyDep(energyD); -#endif + totEnergyDetect += energyD; @@ -242,3 +240,9 @@ G4double XrayFluoEventAction::ResponseFunction(G4double energy) return value; } + + + + + + diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc index a81127e624..6b1352253b 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc @@ -149,6 +149,9 @@ void XrayFluoPhysicsList::ConstructEM() pmanager->AddDiscreteProcess(new G4LowEnergyCompton); LePeprocess = new G4LowEnergyPhotoElectric(); + //LePeprocess->ActivateAuger(false); + //LePeprocess->SetCutForLowEnSecPhotons(10000 * keV); + //LePeprocess->SetCutForLowEnSecElectrons(10000 * keV); pmanager->AddDiscreteProcess(LePeprocess); pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh); @@ -158,6 +161,9 @@ void XrayFluoPhysicsList::ConstructEM() pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); LeIoprocess = new G4LowEnergyIonisation(); + //LeIoprocess->ActivateAuger(false); + //LeIoprocess->SetCutForLowEnSecPhotons(10000 keV); + //LeIoprocess->SetCutForLowEnSecElectrons(10000 keV); pmanager->AddProcess(LeIoprocess, -1, 2, 2); LeBrprocess = new G4LowEnergyBremsstrahlung(); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc index 9b5958543a..82bf337aa5 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc @@ -64,11 +64,11 @@ XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction( G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); G4String particleName; G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="e-"); + = particleTable->FindParticle(particleName="gamma"); particleGun->SetParticleDefinition(particle); particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); - particleGun->SetParticleEnergy(50.*MeV); + particleGun->SetParticleEnergy(6.*keV); G4double position = -0.5*(XrayFluoDetector->GetWorldSizeZ()); particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc index 0b94fcc507..1980f15aae 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc @@ -52,7 +52,7 @@ XrayFluoRunAction::XrayFluoRunAction() :dataSet(0),dataGammaSet(0),dataAlphaSet(0),efficiencySet(0) { - XrayFluoNormalization* normalization = new XrayFluoNormalization(); + XrayFluoNormalization normalization; energies = new G4DataVector; data = new G4DataVector; @@ -65,13 +65,13 @@ XrayFluoRunAction::XrayFluoRunAction() G4double maxGamma = 10. *keV; G4int nBinsGamma = 100; - dataGammaSet = normalization->Normalize(minGamma, maxGamma, nBinsGamma, + dataGammaSet = normalization.Normalize(minGamma, maxGamma, nBinsGamma, "/examples/advanced/xray_fluorescence/B_flare"); G4String fileName = "/examples/advanced/xray_fluorescence/efficienza"; G4VDataSetAlgorithm* interpolation4 = new G4LogLogInterpolation(); efficiencySet = new XrayFluoDataSet(1,fileName,interpolation4,keV,1); - + delete interpolation4; } #else @@ -100,7 +100,10 @@ XrayFluoRunAction::~XrayFluoRunAction() dataSet = 0; } + + } + #else XrayFluoRunAction::~XrayFluoRunAction() { @@ -132,15 +135,16 @@ void XrayFluoRunAction::BeginOfRunAction(const G4Run* aRun) void XrayFluoRunAction::EndOfRunAction(const G4Run* aRun ) { -#ifdef G4ANALYSIS_USE + XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); - analysis->finish(); -#endif + + // Run ended, update the visualization if (G4VVisManager::GetConcreteInstance()) { G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); } - + analysis->finish(); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc b/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc index edac9a4798..39766b8c40 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc @@ -44,8 +44,8 @@ #include "G4GAGTree.hh" #include "G4HepRepFile.hh" #include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" +//#include "G4VRML1File.hh" +//#include "G4VRML2File.hh" // Needing external packages or libraries... @@ -80,12 +80,12 @@ #ifdef G4VIS_USE_OIWIN32 #include "G4OpenInventorWin32.hh" #endif - +/* #ifdef G4VIS_USE_VRML #include "G4VRML1.hh" #include "G4VRML2.hh" #endif - +*/ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoVisManager::XrayFluoVisManager () {} @@ -100,8 +100,8 @@ void XrayFluoVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); + // RegisterGraphicsSystem (new G4VRML1File); + //RegisterGraphicsSystem (new G4VRML2File); // Graphics systems needing external packages or libraries... @@ -136,12 +136,13 @@ void XrayFluoVisManager::RegisterGraphicsSystems () { #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." diff --git a/examples/advanced/xray_telescope/README b/examples/advanced/xray_telescope/README index 5aacfc7816..cad005e80b 100644 --- a/examples/advanced/xray_telescope/README +++ b/examples/advanced/xray_telescope/README @@ -1,4 +1,4 @@ -$Id: README,v 1.8 2001/12/07 19:20:15 pfeiffer Exp $ +$Id: README,v 1.9 2002/06/18 23:46:12 pia Exp $ ------------------------------------------------------------------- ========================================================= @@ -29,10 +29,13 @@ in Geant4: - the generation of particles is done via the new General Particle Source - - histograming facilities are presently provided for the Linux environment - either by using the AIDA interfaces, or through the Anaphe/Lizard system. - The AIDA compliant version has not been tested by the developers and is - here as a example of "forward compatibility" on how to use analysis. + - histograming facilities are 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). 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. diff --git a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-Anaphe b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-Anaphe index e3bd07a673..f5486131f5 100644 --- a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-Anaphe +++ b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-Anaphe @@ -22,7 +22,7 @@ // // // $Id: XrayTelAnalysis.hh-Anaphe,v 1.1 2001/12/10 16:06:37 pfeiffer Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copy of his UserAnalyser class) diff --git a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe index 24b1018dda..2edbfe3b4a 100644 --- a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe +++ b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe @@ -22,7 +22,7 @@ // // // $Id: XrayTelAnalysis.cc-Anaphe,v 1.1 2001/12/10 16:06:37 pfeiffer Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copied from his UserAnalyser class) diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.cc b/examples/extended/analysis/AnaEx01/AnaEx01.cc index 14e9d733d1..da69771adc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh index 116e5845c7..f0fa0a6290 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh index d058c18640..abe1868fdc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh index 0b31d5e63d..df415efce0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh index 45b8009e20..e58385d042 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh index a64cb5ec84..e03839f663 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh index 1db5b3a1ac..a08b92589b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh index cc4aadaf49..5deee37ca5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh index 1aefdf6b96..e1d708ca1d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh index 6f5ac18973..a731a3cfd5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh index a540ddcc21..b6e4d33200 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh index c96d114c44..58110417e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh index 62cf141663..c08c919754 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh index 0cc49ac175..25f5cff1b4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc index 7b91ed4bfc..78faa2e3ee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 14th Septembre 2000. diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc index 3a5b6f1747..4b0139f70e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc index 500a3b6510..876d8106ed 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc index b579b40ec6..5ff2c6b6f5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc index 99d8854e62..27ec898edf 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorMessenger.cc,v 1.3 2001/11/16 14:31:12 barrand Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc index e0a2833ac5..84a105f6bc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc index cac87754de..30cd5f1b4b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc index 1cac0eb516..97e489f293 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc index c6223cb34d..ab8f958d87 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorMessenger.cc,v 1.3 2001/11/16 14:31:13 barrand Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc index bbf6ffd370..0db26b0cef 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc index 0f4ff84e5a..555edb8717 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc index b03d9aaddf..86108fac7f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc index 2f8059b112..6e89447bf7 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01VisManager.cc,v 1.4 2001/11/15 13:09:52 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/biasing/B01/GNUmakefile b/examples/extended/biasing/B01/GNUmakefile new file mode 100644 index 0000000000..1a37469734 --- /dev/null +++ b/examples/extended/biasing/B01/GNUmakefile @@ -0,0 +1,18 @@ +# $Id: GNUmakefile,v 1.1 2002/03/26 16:46:08 dressel Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := exampleB01 +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/B01/exampleB01.cc b/examples/extended/biasing/B01/exampleB01.cc new file mode 100644 index 0000000000..f4cfdd8691 --- /dev/null +++ b/examples/extended/biasing/B01/exampleB01.cc @@ -0,0 +1,167 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: exampleB01.cc,v 1.10 2002/05/31 11:46:23 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleB01 +// +// -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + +#include "g4std/set" +#include "g4std/iomanip" + +#include "G4VPhysicalVolume.hh" +#include "G4RunManager.hh" + +#include "B01DetectorConstruction.hh" +#include "B01PhysicsList.hh" +#include "B01PrimaryGeneratorAction.hh" + +// Files specific for scoring +#include "B01Scorer.hh" +#include "G4Sigma.hh" +#include "G4MassScoreSampler.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; + + G4String random_status_out_file, random_status_in_file; + G4long myseed = 345354; + + HepRandom::setTheSeed(myseed); + + G4RunManager *runManager = new G4RunManager; + + // create the detector --------------------------- + runManager->SetUserInitialization(new B01DetectorConstruction); + // --------------------------------------------------- + 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() + + 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 new file mode 100644 index 0000000000..3f71a35aac --- /dev/null +++ b/examples/extended/biasing/B01/exampleB01.out @@ -0,0 +1,247 @@ +********************************************** + 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 new file mode 100644 index 0000000000..cd4450dbf9 --- /dev/null +++ b/examples/extended/biasing/B01/include/B01DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: B01DetectorConstruction.hh,v 1.2 2002/04/19 10:54:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B01DetectorConstruction_hh +#define B01DetectorConstruction_hh B01DetectorConstruction_hh + +class G4VPhysicalVolume; + +#include "G4VUserDetectorConstruction.hh" + +class B01DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B01DetectorConstruction(); + ~B01DetectorConstruction(); + + G4VPhysicalVolume* Construct(); + G4VPhysicalVolume* GetWorldVolume(){return fWorldVolume;} +private: + G4VPhysicalVolume* fWorldVolume; +}; + +#endif diff --git a/examples/extended/biasing/B01/include/B01PhysicsList.hh b/examples/extended/biasing/B01/include/B01PhysicsList.hh new file mode 100644 index 0000000000..f52a0a508a --- /dev/null +++ b/examples/extended/biasing/B01/include/B01PhysicsList.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: 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 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + + +// taken from Tst12PhysicsList + +class B01PhysicsList: public G4VUserPhysicsList +{ + public: + B01PhysicsList(); + virtual ~B01PhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + 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(); + +}; + +#endif diff --git a/examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.hh b/examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..8658f52283 --- /dev/null +++ b/examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.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: 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 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class B01PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + B01PrimaryGeneratorAction(); + ~B01PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif diff --git a/examples/extended/biasing/B01/include/B01Scorer.hh b/examples/extended/biasing/B01/include/B01Scorer.hh new file mode 100644 index 0000000000..37d5e2508b --- /dev/null +++ b/examples/extended/biasing/B01/include/B01Scorer.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. * +// ******************************************************************** +// +// +// $Id: B01Scorer.hh,v 1.3 2002/04/19 10:54:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B01scorer_hh +#define B01scorer_hh B01scorer_hh + +#include "g4std/iostream" + +#include "G4VPScorer.hh" +#include "G4PMapPtkTallys.hh" + +class G4Step; +class G4PStep; + +class B01Scorer : public G4VPScorer +{ +public: + B01Scorer(); + ~B01Scorer(); + void Score(const G4Step &aStep, const G4PStep &aPStep); + const G4PMapPtkTallys &GetMapPtkTallys() const { return fPtkTallys; } + +private: + G4PMapPtkTallys fPtkTallys; +}; + +G4std::ostream& operator<<(G4std::ostream &out, const B01Scorer &ps); + +#endif diff --git a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc new file mode 100644 index 0000000000..fd97fb0339 --- /dev/null +++ b/examples/extended/biasing/B01/src/B01DetectorConstruction.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: B01DetectorConstruction.cc,v 1.4 2002/04/19 10:54:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "B01DetectorConstruction.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 "g4std/strstream" +#include "PhysicalConstants.h" + +#include "globals.hh" + +B01DetectorConstruction::B01DetectorConstruction() + : fWorldVolume(0) +{;} + +B01DetectorConstruction::~B01DetectorConstruction() +{;} + +G4VPhysicalVolume* B01DetectorConstruction::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*deg; + + 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*deg; + + 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); + } + + + fWorldVolume = worldCylinder_phys; + return worldCylinder_phys; +} diff --git a/examples/extended/biasing/B01/src/B01PhysicsList.cc b/examples/extended/biasing/B01/src/B01PhysicsList.cc new file mode 100644 index 0000000000..e9e45fe000 --- /dev/null +++ b/examples/extended/biasing/B01/src/B01PhysicsList.cc @@ -0,0 +1,632 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: B01PhysicsList.cc,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" +#include "g4std/iomanip" + +#include "B01PhysicsList.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" + +B01PhysicsList::B01PhysicsList() : G4VUserPhysicsList() +{ + SetVerboseLevel(1); +} + +B01PhysicsList::~B01PhysicsList() +{ +} + +void B01PhysicsList::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 B01PhysicsList::ConstructAllBosons() +{ + // Construct all bosons + G4BosonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B01PhysicsList::ConstructAllLeptons() +{ + // Construct all leptons + G4LeptonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B01PhysicsList::ConstructAllMesons() +{ + // Construct all mesons + G4MesonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B01PhysicsList::ConstructAllBaryons() +{ + // Construct all barions + G4BaryonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B01PhysicsList::ConstructAllIons() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B01PhysicsList::ConstructAllShortLiveds() +{ + // Construct resonaces and quarks + G4ShortLivedConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B01PhysicsList::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 B01PhysicsList::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 B01PhysicsList::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 B01PhysicsList::ConstructLeptHad() +{;} + +#include "G4Decay.hh" +void B01PhysicsList::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 B01PhysicsList::SetCuts() +{ + if (verboseLevel >0) + { + G4cout << "B01PhysicsList::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/B01/src/B01PrimaryGeneratorAction.cc b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..fd1e7382f0 --- /dev/null +++ b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $Id: B01PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:42 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B01PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4Neutron.hh" +#include "G4ThreeVector.hh" + +B01PrimaryGeneratorAction::B01PrimaryGeneratorAction() +{ + 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)); +} + +B01PrimaryGeneratorAction::~B01PrimaryGeneratorAction() +{ + delete particleGun; +} + +void B01PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/biasing/B01/src/B01Scorer.cc b/examples/extended/biasing/B01/src/B01Scorer.cc new file mode 100644 index 0000000000..15c311d586 --- /dev/null +++ b/examples/extended/biasing/B01/src/B01Scorer.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. * +// ******************************************************************** +// +// +// $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" + +B01Scorer::B01Scorer(){} +B01Scorer::~B01Scorer(){} + +void B01Scorer::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 { + // 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); + } + } +} + +G4std::ostream& operator<<(G4std::ostream &out, const B01Scorer &ps) { + out << ps.GetMapPtkTallys(); + return out; +} diff --git a/examples/extended/biasing/B02/GNUmakefile b/examples/extended/biasing/B02/GNUmakefile new file mode 100644 index 0000000000..d66a76bc20 --- /dev/null +++ b/examples/extended/biasing/B02/GNUmakefile @@ -0,0 +1,18 @@ +# $Id: GNUmakefile,v 1.1 2002/03/26 16:46:08 dressel Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := exampleB02 +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/B02/exampleB02.cc b/examples/extended/biasing/B02/exampleB02.cc new file mode 100644 index 0000000000..537f3e900a --- /dev/null +++ b/examples/extended/biasing/B02/exampleB02.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. * +// ******************************************************************** +// +// +// $Id: exampleB02.cc,v 1.9 2002/05/31 11:46:23 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleB02 +// +// -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + +#include "g4std/set" +#include "g4std/iomanip" + +#include "G4VPhysicalVolume.hh" +#include "G4RunManager.hh" + +#include "B02DetectorConstruction.hh" +#include "B02PhysicsList.hh" +#include "B02PrimaryGeneratorAction.hh" + +#include "B02ScoringDetectorConstruction.hh" + +// 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; + + 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); + // --------------------------------------------------- + runManager->SetUserInitialization(new B02PhysicsList); + runManager->SetUserAction(new B02PrimaryGeneratorAction); + runManager->Initialize(); + + // create the detector for scoring + B02ScoringDetectorConstruction scoringdetector; + + // create scorer and sampler to score neutrons in the "scoring" detector + B02Scorer pScorer; + G4ParallelScoreSampler pmgr(*(scoringdetector.Construct()), + "neutron", pScorer); + pmgr.Initialize(); + + runManager->BeamOn(numberOfEvent); + + // ======= after running ============================ + + // print all the numbers calculated from the scorer + *myout << "output pScorer, scoring detector, neutron" << G4endl; + *myout << pScorer << 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 = 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 new file mode 100644 index 0000000000..d31f3665b1 --- /dev/null +++ b/examples/extended/biasing/B02/exampleB02.out @@ -0,0 +1,319 @@ +********************************************** + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) + Copyright : Geant4 Collaboration +********************************************** + +phot: Total cross sections from Sandia parametrisation. +B02PhysicsList::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::AddProcessAsSecondDoIt === + ProcessName: ParallelTransport +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 + ParallelTransport + Transportation +DoIt Vector: + Transportation + ParallelTransport + PScoreProcess + LElastic + inelastic + LFission + LCapture + Decay +================================================ +output pScorer, scoring detector, neutron +Volume name = score_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 = scorecell: M1, Replica number = 0 +HistorysEntering +entries : 1794 +Sum(w) : 1794 +Sum(w*x) : 1794 +Sum(w*x*x) : 1794 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 1794 +Sum(x^2) : 1794 +EnergyEnteringHistory +entries : 1794 +Sum(w) : 1794 +Sum(w*x) : 17426.6 +Sum(w*x*x) : 171284 +mean=Sum(w*x) / Sum(w) : 9.71383 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.05729 +Sum(x) : 17426.6 +Sum(x^2) : 171284 +Collisions +entries : 1263 +Sum(w) : 1263 +Sum(w*x) : 1263 +Sum(w*x*x) : 1263 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 1263 +Sum(x^2) : 1263 +Volume name = scorecell: D1, Replica number = 0 +HistorysEntering +entries : 858 +Sum(w) : 858 +Sum(w*x) : 858 +Sum(w*x*x) : 858 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 858 +Sum(x^2) : 858 +EnergyEnteringHistory +entries : 858 +Sum(w) : 858 +Sum(w*x) : 8292.88 +Sum(w*x*x) : 81250.1 +mean=Sum(w*x) / Sum(w) : 9.66536 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.13047 +Sum(x) : 8292.88 +Sum(x^2) : 81250.1 +Collisions +entries : 512 +Sum(w) : 512 +Sum(w*x) : 512 +Sum(w*x*x) : 512 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 512 +Sum(x^2) : 512 +Volume name = scorecell: M2, Replica number = 0 +HistorysEntering +entries : 845 +Sum(w) : 845 +Sum(w*x) : 845 +Sum(w*x*x) : 845 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 845 +Sum(x^2) : 845 +EnergyEnteringHistory +entries : 845 +Sum(w) : 845 +Sum(w*x) : 7918.1 +Sum(w*x*x) : 76692.5 +mean=Sum(w*x) / Sum(w) : 9.37053 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.71858 +Sum(x) : 7918.1 +Sum(x^2) : 76692.5 +Collisions +entries : 696 +Sum(w) : 696 +Sum(w*x) : 696 +Sum(w*x*x) : 696 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 696 +Sum(x^2) : 696 +Volume name = scorecell: D2, Replica number = 0 +HistorysEntering +entries : 392 +Sum(w) : 392 +Sum(w*x) : 392 +Sum(w*x*x) : 392 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 392 +Sum(x^2) : 392 +EnergyEnteringHistory +entries : 392 +Sum(w) : 392 +Sum(w*x) : 3630.15 +Sum(w*x*x) : 34992.4 +mean=Sum(w*x) / Sum(w) : 9.26058 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.87297 +Sum(x) : 3630.15 +Sum(x^2) : 34992.4 +Collisions +entries : 233 +Sum(w) : 233 +Sum(w*x) : 233 +Sum(w*x*x) : 233 +mean=Sum(w*x) / Sum(w) : 1 +sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 +Sum(x) : 233 +Sum(x^2) : 233 + +---------------------------------------------- +Volume name | AV E/Track | sigma | Coll_Ent.Tr| +score_worldCylinder_phys. | 8.66714 | 1.96678 | 0 | +scorecell: M1............ | 9.71383 | 1.05729 | 0.704013 | +scorecell: D1............ | 9.66536 | 1.13047 | 0.596737 | +scorecell: M2............ | 9.37053 | 1.71858 | 0.823669 | +scorecell: D2............ | 9.26058 | 1.87297 | 0.594388 | ++++ G4ProcessPlacer::G4ProcessPlacer: for: neutron + ProcessName: PScoreProcess, will be removed! +The initial Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + PScoreProcess + ParallelTransport + Transportation +DoIt Vector: + Transportation + ParallelTransport + PScoreProcess + LElastic + inelastic + LFission + LCapture + Decay +The final Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + ParallelTransport + Transportation +DoIt Vector: + Transportation + ParallelTransport + 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/B02/include/B02DetectorConstruction.hh b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh new file mode 100644 index 0000000000..73b47c89d4 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: B02DetectorConstruction.hh,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B02DetectorConstruction_hh +#define B02DetectorConstruction_hh B02DetectorConstruction_hh + +class G4VPhysicalVolume; + +#include "G4VUserDetectorConstruction.hh" + +class B02DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B02DetectorConstruction(); + ~B02DetectorConstruction(); + + G4VPhysicalVolume* Construct(); + G4VPhysicalVolume* GetWorldVolume(){return fWorldVolume;} +private: + G4VPhysicalVolume* fWorldVolume; +}; + +#endif diff --git a/examples/extended/biasing/B02/include/B02PhysicsList.hh b/examples/extended/biasing/B02/include/B02PhysicsList.hh new file mode 100644 index 0000000000..d1f0e46859 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02PhysicsList.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: 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" + +class B02PhysicsList : public G4VUserPhysicsList +{ + public: + B02PhysicsList(); + virtual ~B02PhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + 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(); + +}; + +#endif diff --git a/examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.hh b/examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..271cff35c2 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.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: 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 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class B02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + B02PrimaryGeneratorAction(); + ~B02PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif diff --git a/examples/extended/biasing/B02/include/B02Scorer.hh b/examples/extended/biasing/B02/include/B02Scorer.hh new file mode 100644 index 0000000000..de5f7f7890 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02Scorer.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. * +// ******************************************************************** +// +// +// $Id: B02Scorer.hh,v 1.3 2002/04/19 10:54:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B02scorer_hh +#define B02scorer_hh B02scorer_hh + +#include "g4std/iostream" + +#include "G4VPScorer.hh" +#include "G4PMapPtkTallys.hh" + +class G4Step; +class G4PStep; + +class B02Scorer : public G4VPScorer +{ +public: + B02Scorer(); + ~B02Scorer(); + void Score(const G4Step &aStep, const G4PStep &aPStep); + const G4PMapPtkTallys &GetMapPtkTallys() const { return fPtkTallys; } + +private: + G4PMapPtkTallys fPtkTallys; +}; + +G4std::ostream& operator<<(G4std::ostream &out, const B02Scorer &ps); + +#endif diff --git a/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh new file mode 100644 index 0000000000..bed436d1c0 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.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: B02ScoringDetectorConstruction.hh,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B02ScoringDetectorConstruction_hh +#define B02ScoringDetectorConstruction_hh B02ScoringDetectorConstruction_hh + +#include "G4VUserDetectorConstruction.hh" + +class G4VPhysicalVolume; + +class B02ScoringDetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B02ScoringDetectorConstruction(){} + ~B02ScoringDetectorConstruction(){} + + G4VPhysicalVolume* Construct(); + +}; + +#endif diff --git a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc new file mode 100644 index 0000000000..b5a893d9eb --- /dev/null +++ b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc @@ -0,0 +1,214 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: B02DetectorConstruction.cc,v 1.4 2002/04/19 10:54:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" +#include "g4std/strstream" + +#include "B02DetectorConstruction.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" + +B02DetectorConstruction::B02DetectorConstruction() + : fWorldVolume(0) +{;} + +B02DetectorConstruction::~B02DetectorConstruction() +{;} + +G4VPhysicalVolume* B02DetectorConstruction::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*deg; + + 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 1-2) + //////////////////////////////////////////////// + + 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 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); + } + fWorldVolume = worldCylinder_phys; + + return worldCylinder_phys; +} diff --git a/examples/extended/biasing/B02/src/B02PhysicsList.cc b/examples/extended/biasing/B02/src/B02PhysicsList.cc new file mode 100644 index 0000000000..1d62130032 --- /dev/null +++ b/examples/extended/biasing/B02/src/B02PhysicsList.cc @@ -0,0 +1,632 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: B02PhysicsList.cc,v 1.2 2002/04/19 10:54:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" +#include "g4std/iomanip" + +#include "B02PhysicsList.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" + +B02PhysicsList::B02PhysicsList() : G4VUserPhysicsList() +{ + SetVerboseLevel(1); +} + +B02PhysicsList::~B02PhysicsList() +{ +} + +void B02PhysicsList::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 B02PhysicsList::ConstructAllBosons() +{ + // Construct all bosons + G4BosonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B02PhysicsList::ConstructAllLeptons() +{ + // Construct all leptons + G4LeptonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B02PhysicsList::ConstructAllMesons() +{ + // Construct all mesons + G4MesonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B02PhysicsList::ConstructAllBaryons() +{ + // Construct all barions + G4BaryonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B02PhysicsList::ConstructAllIons() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B02PhysicsList::ConstructAllShortLiveds() +{ + // Construct resonaces and quarks + G4ShortLivedConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B02PhysicsList::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 B02PhysicsList::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 B02PhysicsList::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 B02PhysicsList::ConstructLeptHad() +{;} + +#include "G4Decay.hh" +void B02PhysicsList::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 B02PhysicsList::SetCuts() +{ + if (verboseLevel >0){ + G4cout << "B02PhysicsList::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/B02/src/B02PrimaryGeneratorAction.cc b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..277bb65f32 --- /dev/null +++ b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $Id: B02PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:43 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B02PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4Neutron.hh" +#include "G4ThreeVector.hh" + +B02PrimaryGeneratorAction::B02PrimaryGeneratorAction() +{ + 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)); +} + +B02PrimaryGeneratorAction::~B02PrimaryGeneratorAction() +{ + delete particleGun; +} + +void B02PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/biasing/B02/src/B02Scorer.cc b/examples/extended/biasing/B02/src/B02Scorer.cc new file mode 100644 index 0000000000..c14bb4d766 --- /dev/null +++ b/examples/extended/biasing/B02/src/B02Scorer.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. * +// ******************************************************************** +// +// +// $Id: B02Scorer.cc,v 1.3 2002/04/19 10:54:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "B02Scorer.hh" +#include "G4Step.hh" +#include "G4PStep.hh" +#include "G4Sigma.hh" +#include "G4StateManager.hh" + +B02Scorer::B02Scorer(){} +B02Scorer::~B02Scorer(){} + +void B02Scorer::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 + { + // 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); + } + } + } +} + +G4std::ostream& operator<<(G4std::ostream &out, const B02Scorer &ps) +{ + out << ps.GetMapPtkTallys(); + return out; +} diff --git a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc new file mode 100644 index 0000000000..e11c23d143 --- /dev/null +++ b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: B02ScoringDetectorConstruction.cc,v 1.4 2002/04/19 12:01:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B02ScoringDetectorConstruction.hh" + +#include "G4Material.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "PhysicalConstants.h" + +G4VPhysicalVolume* B02ScoringDetectorConstruction::Construct() +{ + ///////////////////////////// + // world score cylinder volume + //////////////////////////// + + G4String name; + + G4double density = universe_mean_density; + 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*deg; + + + G4Tubs *score_worldCylinder = new G4Tubs("score_worldCylinder", + innerRadiusCylinder, + outerRadiusCylinder, + hightCylinder, + startAngleCylinder, + spanningAngleCylinder); + + // logical score world + + G4LogicalVolume *score_worldCylinder_log = + new G4LogicalVolume(score_worldCylinder, WorldMaterial, "score_worldCylinder_log"); + + // physical world + + name = "score_worldCylinder_phys"; + G4VPhysicalVolume* score_worldCylinder_phys = + new G4PVPlacement(0, G4ThreeVector(0,0,0), score_worldCylinder_log, + name, 0, false, 0); + + + /////////////////////////////////////////////// + // score 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*deg; + + G4Tubs *tube_M = new G4Tubs("tube_M", + innerRadiusShield, + outerRadiusShield, + MhightShield, + startAngleShield, + spanningAngleShield); + + G4LogicalVolume *M1_log = + new G4LogicalVolume(tube_M, Galactic, "M1_log"); + + name = "scorecell: 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, score_worldCylinder_log, false, 0); + + + /////////////////// D1 /////////////////////////// + + innerRadiusShield = 0*cm; + outerRadiusShield = 101*cm; + G4double DhightShield = 2*cm; + startAngleShield = 0*deg; + spanningAngleShield = 360*deg; + + + G4Tubs *tube_D = new G4Tubs("tube_D", + innerRadiusShield, + outerRadiusShield, + DhightShield, + startAngleShield, + spanningAngleShield); + + G4LogicalVolume *D1_log = + new G4LogicalVolume(tube_D, Galactic, "D1_log"); + + name ="scorecell: 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 = "scorecell: 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, score_worldCylinder_log, false, 0); + + //////////////////// D2 ///////////////////////////////// + + G4LogicalVolume *D2_log = + new G4LogicalVolume(tube_D, Galactic, "D2_log"); + + name ="scorecell: D2"; + +// G4VPhysicalVolume *pD2 = + new G4PVPlacement(0, G4ThreeVector(0, 0, 0), + D2_log, name, M2_log, false, 0); + + ///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////// + + return score_worldCylinder_phys; +} diff --git a/examples/extended/biasing/B03/GNUmakefile b/examples/extended/biasing/B03/GNUmakefile new file mode 100644 index 0000000000..49dd68e02b --- /dev/null +++ b/examples/extended/biasing/B03/GNUmakefile @@ -0,0 +1,18 @@ +# $Id: GNUmakefile,v 1.1 2002/03/26 16:46:08 dressel Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := exampleB03 +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/B03/exampleB03.cc b/examples/extended/biasing/B03/exampleB03.cc new file mode 100644 index 0000000000..ce41660831 --- /dev/null +++ b/examples/extended/biasing/B03/exampleB03.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: exampleB03.cc,v 1.6 2002/05/31 11:46:23 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleB03 +// +// -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + +#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" + +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); + + return 0; +} diff --git a/examples/extended/biasing/B03/exampleB03.out b/examples/extended/biasing/B03/exampleB03.out new file mode 100644 index 0000000000..e8e71ac972 --- /dev/null +++ b/examples/extended/biasing/B03/exampleB03.out @@ -0,0 +1,144 @@ +********************************************** + 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. +B03PhysicsList::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: MassImportanceProcess +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 + MassImportanceProcess + Transportation +DoIt Vector: + Transportation + MassImportanceProcess + LElastic + inelastic + LFission + LCapture + Decay +================================================ +WARNING - G4ImportanceAlgorithm::Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = 8 ++++ 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/B03/include/B03DetectorConstruction.hh b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh new file mode 100644 index 0000000000..8c0a2695a2 --- /dev/null +++ b/examples/extended/biasing/B03/include/B03DetectorConstruction.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: B03DetectorConstruction.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B03DetectorConstruction_hh +#define B03DetectorConstruction_hh B03DetectorConstruction_hh + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" + +class G4VPhysicalVolume; +class G4VIStore; + +class B03DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B03DetectorConstruction(); + ~B03DetectorConstruction(); + + G4VPhysicalVolume* Construct(); + G4VIStore* GetIStore(); + +private: + G4VIStore *fIStore; +}; + +#endif diff --git a/examples/extended/biasing/B03/include/B03PhysicsList.hh b/examples/extended/biasing/B03/include/B03PhysicsList.hh new file mode 100644 index 0000000000..b829846a2b --- /dev/null +++ b/examples/extended/biasing/B03/include/B03PhysicsList.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: B03PhysicsList.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B03PhysicsList_h +#define B03PhysicsList_h 1 + +#include "globals.hh" +#include "G4VUserPhysicsList.hh" + +class B03PhysicsList : public G4VUserPhysicsList +{ + public: + B03PhysicsList(); + virtual ~B03PhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + 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(); + +}; + +#endif diff --git a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..1eebfda3a4 --- /dev/null +++ b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.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: B03PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B03PrimaryGeneratorAction_hh +#define B03PrimaryGeneratorAction_hh B03PrimaryGeneratorAction_hh + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class B03PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + B03PrimaryGeneratorAction(); + ~B03PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif diff --git a/examples/extended/biasing/B03/init.mac b/examples/extended/biasing/B03/init.mac new file mode 100644 index 0000000000..8289dbdb42 --- /dev/null +++ b/examples/extended/biasing/B03/init.mac @@ -0,0 +1,4 @@ +/control/verbose 0 +/run/verbose 0 +/event/verbose 0 +/tracking/verbose 0 diff --git a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc new file mode 100644 index 0000000000..b53b49f1d1 --- /dev/null +++ b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc @@ -0,0 +1,240 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: B03DetectorConstruction.cc,v 1.7 2002/04/19 10:54:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "g4std/strstream" +#include "globals.hh" + +#include "B03DetectorConstruction.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" + +B03DetectorConstruction::B03DetectorConstruction() +{;} + +B03DetectorConstruction::~B03DetectorConstruction() +{;} + +G4VIStore* B03DetectorConstruction::GetIStore() +{ + if (!fIStore) G4Exception("B03DetectorConstruction::fIStore empty!"); + return fIStore; +} + +G4VPhysicalVolume* B03DetectorConstruction::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/B03/src/B03PhysicsList.cc b/examples/extended/biasing/B03/src/B03PhysicsList.cc new file mode 100644 index 0000000000..784fcc6a4b --- /dev/null +++ b/examples/extended/biasing/B03/src/B03PhysicsList.cc @@ -0,0 +1,633 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: B03PhysicsList.cc,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" +#include "g4std/iomanip" + +#include "B03PhysicsList.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" + +B03PhysicsList::B03PhysicsList(): G4VUserPhysicsList() +{ + SetVerboseLevel(1); +} + +B03PhysicsList::~B03PhysicsList() +{ +} + +void B03PhysicsList::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 B03PhysicsList::ConstructAllBosons() +{ + // Construct all bosons + G4BosonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B03PhysicsList::ConstructAllLeptons() +{ + // Construct all leptons + G4LeptonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B03PhysicsList::ConstructAllMesons() +{ + // Construct all mesons + G4MesonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B03PhysicsList::ConstructAllBaryons() +{ + // Construct all barions + G4BaryonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B03PhysicsList::ConstructAllIons() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B03PhysicsList::ConstructAllShortLiveds() +{ + // Construct resonaces and quarks + G4ShortLivedConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void B03PhysicsList::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 B03PhysicsList::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 B03PhysicsList::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 B03PhysicsList::ConstructLeptHad() +{;} + +#include "G4Decay.hh" +void B03PhysicsList::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 B03PhysicsList::SetCuts() +{ + if (verboseLevel >0) + { + G4cout << "B03PhysicsList::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/B03/src/B03PrimaryGeneratorAction.cc b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..45fe4f4e54 --- /dev/null +++ b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $Id: B03PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:43 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B03PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4Neutron.hh" +#include "G4ThreeVector.hh" + +B03PrimaryGeneratorAction::B03PrimaryGeneratorAction() +{ + 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)); +} + +B03PrimaryGeneratorAction::~B03PrimaryGeneratorAction() +{ + delete particleGun; +} + +void B03PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/biasing/B04/GNUmakefile b/examples/extended/biasing/B04/GNUmakefile new file mode 100644 index 0000000000..f4b1ac4a66 --- /dev/null +++ b/examples/extended/biasing/B04/GNUmakefile @@ -0,0 +1,18 @@ +# $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.cc b/examples/extended/biasing/B04/exampleB04.cc new file mode 100644 index 0000000000..2fe9cd8b5a --- /dev/null +++ b/examples/extended/biasing/B04/exampleB04.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: exampleB04.cc,v 1.5 2002/05/31 11:46:23 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleB04 +// +// -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + +#include "G4VPhysicalVolume.hh" +#include "G4RunManager.hh" + +#include "B04DetectorConstruction.hh" +#include "B04PhysicsList.hh" +#include "B04PrimaryGeneratorAction.hh" + +#include "B04ImportanceDetectorConstruction.hh" + +// Files specific for biasing +#include "G4ParallelImportanceSampler.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 "tracking" detector ----------------- + runManager->SetUserInitialization(new B04DetectorConstruction); + // --------------------------------------------------- + runManager->SetUserInitialization(new B04PhysicsList); + runManager->SetUserAction(new B04PrimaryGeneratorAction); + runManager->Initialize(); + + // create the detector for the importances + B04ImportanceDetectorConstruction importancedetector; + importancedetector.Construct(); + // 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; +} diff --git a/examples/extended/biasing/B04/exampleB04.out b/examples/extended/biasing/B04/exampleB04.out new file mode 100644 index 0000000000..d9ba1c284d --- /dev/null +++ b/examples/extended/biasing/B04/exampleB04.out @@ -0,0 +1,140 @@ +********************************************** + 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/include/B04DetectorConstruction.hh b/examples/extended/biasing/B04/include/B04DetectorConstruction.hh new file mode 100644 index 0000000000..994d87c92a --- /dev/null +++ b/examples/extended/biasing/B04/include/B04DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: B04DetectorConstruction.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B04DetectorConstruction_hh +#define B04DetectorConstruction_hh B04DetectorConstruction_hh + +class G4VPhysicalVolume; + +#include "G4VUserDetectorConstruction.hh" + +class B04DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B04DetectorConstruction(); + ~B04DetectorConstruction(); + + G4VPhysicalVolume* Construct(); +}; + +#endif diff --git a/examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.hh b/examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.hh new file mode 100644 index 0000000000..5f0c28957b --- /dev/null +++ b/examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.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: B04ImportanceDetectorConstruction.hh,v 1.2 2002/04/19 10:54:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B04ImportanceDetectorConstruction_hh +#define B04ImportanceDetectorConstruction_hh B04ImportanceDetectorConstruction_hh + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" + +class G4VPhysicalVolume; +class G4VIStore; + +class B04ImportanceDetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B04ImportanceDetectorConstruction(); + ~B04ImportanceDetectorConstruction(); + + G4VPhysicalVolume* Construct(); + G4VIStore* GetIStore(); + +private: + G4VIStore *fIStore; + +}; + +#endif diff --git a/examples/extended/biasing/B04/include/B04PhysicsList.hh b/examples/extended/biasing/B04/include/B04PhysicsList.hh new file mode 100644 index 0000000000..3b5dc8e2ff --- /dev/null +++ b/examples/extended/biasing/B04/include/B04PhysicsList.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: B04PhysicsList.hh,v 1.2 2002/04/19 10:54:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B04PhysicsList_h +#define B04PhysicsList_h 1 + +#include "globals.hh" +#include "G4VUserPhysicsList.hh" + +class B04PhysicsList : public G4VUserPhysicsList +{ + public: + B04PhysicsList(); + virtual ~B04PhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + 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(); + +}; + +#endif diff --git a/examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.hh b/examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..5982bd1c8f --- /dev/null +++ b/examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.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: B04PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#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 diff --git a/examples/extended/biasing/B04/src/B04DetectorConstruction.cc b/examples/extended/biasing/B04/src/B04DetectorConstruction.cc new file mode 100644 index 0000000000..5415be189f --- /dev/null +++ b/examples/extended/biasing/B04/src/B04DetectorConstruction.cc @@ -0,0 +1,213 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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 new file mode 100644 index 0000000000..32250cdbd6 --- /dev/null +++ b/examples/extended/biasing/B04/src/B04ImportanceDetectorConstruction.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..2b87af3304 --- /dev/null +++ b/examples/extended/biasing/B04/src/B04PhysicsList.cc @@ -0,0 +1,633 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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/B04/src/B04PrimaryGeneratorAction.cc b/examples/extended/biasing/B04/src/B04PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..4dc1a72a46 --- /dev/null +++ b/examples/extended/biasing/B04/src/B04PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $Id: B04PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:43 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B04PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4Neutron.hh" +#include "G4ThreeVector.hh" + +B04PrimaryGeneratorAction::B04PrimaryGeneratorAction() +{ + 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)); +} + +B04PrimaryGeneratorAction::~B04PrimaryGeneratorAction() +{ + delete particleGun; +} + +void B04PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/biasing/B05/GNUmakefile b/examples/extended/biasing/B05/GNUmakefile new file mode 100644 index 0000000000..d080dd3edb --- /dev/null +++ b/examples/extended/biasing/B05/GNUmakefile @@ -0,0 +1,18 @@ +# $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 new file mode 100644 index 0000000000..ec4173601c --- /dev/null +++ b/examples/extended/biasing/B05/exampleB05.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: 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 new file mode 100644 index 0000000000..d17ee31743 --- /dev/null +++ b/examples/extended/biasing/B05/exampleB05.out @@ -0,0 +1,391 @@ +********************************************** + 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/include/B05DetectorConstruction.hh b/examples/extended/biasing/B05/include/B05DetectorConstruction.hh new file mode 100644 index 0000000000..0db56e24c3 --- /dev/null +++ b/examples/extended/biasing/B05/include/B05DetectorConstruction.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: B05DetectorConstruction.hh,v 1.2 2002/04/19 10:54:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B03DetectorConstruction_hh +#define B05DetectorConstruction_hh B05DetectorConstruction_hh + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" + +class G4VPhysicalVolume; +class G4VIStore; + +class B05DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B05DetectorConstruction(); + ~B05DetectorConstruction(); + + G4VPhysicalVolume* Construct(); + G4VIStore* GetIStore(); + +private: + G4VIStore *fIStore; +}; + +#endif diff --git a/examples/extended/biasing/B05/include/B05PhysicsList.hh b/examples/extended/biasing/B05/include/B05PhysicsList.hh new file mode 100644 index 0000000000..81b003526e --- /dev/null +++ b/examples/extended/biasing/B05/include/B05PhysicsList.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 B05PhysicsList_h +#define B05PhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + + +// taken from Tst12PhysicsList + +class B05PhysicsList: public G4VUserPhysicsList +{ + public: + B05PhysicsList(); + virtual ~B05PhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + 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(); + +}; + +#endif + + + diff --git a/examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh b/examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..2c66667d7c --- /dev/null +++ b/examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh @@ -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. * +// ******************************************************************** +// +// + +#ifndef B05PrimaryGeneratorAction_hh +#define B05PrimaryGeneratorAction_hh B05PrimaryGeneratorAction_hh + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class B05PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + B05PrimaryGeneratorAction(); + ~B05PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif + + diff --git a/examples/extended/biasing/B05/init.mac b/examples/extended/biasing/B05/init.mac new file mode 100644 index 0000000000..d55a278c8d --- /dev/null +++ b/examples/extended/biasing/B05/init.mac @@ -0,0 +1,5 @@ +/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 new file mode 100644 index 0000000000..e3f4311a38 --- /dev/null +++ b/examples/extended/biasing/B05/src/B05DetectorConstruction.cc @@ -0,0 +1,242 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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 new file mode 100644 index 0000000000..64585023b2 --- /dev/null +++ b/examples/extended/biasing/B05/src/B05PhysicsList.cc @@ -0,0 +1,633 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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/B05/src/B05PrimaryGeneratorAction.cc b/examples/extended/biasing/B05/src/B05PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..2ba07d783a --- /dev/null +++ b/examples/extended/biasing/B05/src/B05PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $Id: B05PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:44 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B05PrimaryGeneratorAction.hh" + +#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)); +} + +B05PrimaryGeneratorAction::~B05PrimaryGeneratorAction() +{ + delete particleGun; +} + +void B05PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/biasing/B06/GNUmakefile b/examples/extended/biasing/B06/GNUmakefile new file mode 100644 index 0000000000..27ed5a1f44 --- /dev/null +++ b/examples/extended/biasing/B06/GNUmakefile @@ -0,0 +1,18 @@ +# $Id: GNUmakefile,v 1.1 2002/03/27 16:17:43 dressel Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := exampleB06 +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/B06/exampleB06.cc b/examples/extended/biasing/B06/exampleB06.cc new file mode 100644 index 0000000000..33a9354260 --- /dev/null +++ b/examples/extended/biasing/B06/exampleB06.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: 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 new file mode 100644 index 0000000000..4150955349 --- /dev/null +++ b/examples/extended/biasing/B06/exampleB06.out @@ -0,0 +1,439 @@ +********************************************** + 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/include/B06DetectorConstruction.hh b/examples/extended/biasing/B06/include/B06DetectorConstruction.hh new file mode 100644 index 0000000000..d6f1abdd74 --- /dev/null +++ b/examples/extended/biasing/B06/include/B06DetectorConstruction.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. * +// ******************************************************************** +// +// +// $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 + +class G4VPhysicalVolume; + +#include "G4VUserDetectorConstruction.hh" + +class B06DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B06DetectorConstruction(); + ~B06DetectorConstruction(); + + G4VPhysicalVolume* Construct(); +}; + +#endif diff --git a/examples/extended/biasing/B06/include/B06ImportanceDetectorConstruction.hh b/examples/extended/biasing/B06/include/B06ImportanceDetectorConstruction.hh new file mode 100644 index 0000000000..6cf4e131d7 --- /dev/null +++ b/examples/extended/biasing/B06/include/B06ImportanceDetectorConstruction.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: B06ImportanceDetectorConstruction.hh,v 1.3 2002/04/19 10:54:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B06ImportanceDetectorConstruction_hh +#define B06ImportanceDetectorConstruction_hh B06ImportanceDetectorConstruction_hh + +#include "globals.hh" + +class G4VPhysicalVolume; +class G4VIStore; + +class B06ImportanceDetectorConstruction +{ +public: + B06ImportanceDetectorConstruction(); + ~B06ImportanceDetectorConstruction(); + + G4VIStore* GetIStore(); + +private: + void Construct(); + G4VIStore *fIStore; + +}; + +#endif diff --git a/examples/extended/biasing/B06/include/B06PhysicsList.hh b/examples/extended/biasing/B06/include/B06PhysicsList.hh new file mode 100644 index 0000000000..9d3ca63ca7 --- /dev/null +++ b/examples/extended/biasing/B06/include/B06PhysicsList.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: B06PhysicsList.hh,v 1.2 2002/04/19 10:54:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B06PhysicsList_h +#define B06PhysicsList_h 1 + +#include "globals.hh" +#include "G4VUserPhysicsList.hh" + +class B06PhysicsList : public G4VUserPhysicsList +{ + public: + B06PhysicsList(); + virtual ~B06PhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + 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(); + +}; + +#endif diff --git a/examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.hh b/examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..1ab3bfec6d --- /dev/null +++ b/examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.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: B06PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B06PrimaryGeneratorAction_hh +#define B06PrimaryGeneratorAction_hh B06PrimaryGeneratorAction_hh + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class B06PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + B06PrimaryGeneratorAction(); + ~B06PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif diff --git a/examples/extended/biasing/B06/include/B06ScorePrinter.hh b/examples/extended/biasing/B06/include/B06ScorePrinter.hh new file mode 100644 index 0000000000..873e71abf0 --- /dev/null +++ b/examples/extended/biasing/B06/include/B06ScorePrinter.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: B06ScorePrinter.hh,v 1.4 2002/04/19 10:54:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B06ScorePrinter_hh +#define B06ScorePrinter_hh B06ScorePrinter_hh + +#include "g4std/iostream" +#include "g4std/iomanip" + +#include "globals.hh" +#include "G4PMapPtkTallys.hh" + +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; + +}; + +#endif diff --git a/examples/extended/biasing/B06/include/B06Scorer.hh b/examples/extended/biasing/B06/include/B06Scorer.hh new file mode 100644 index 0000000000..93d6e7dba0 --- /dev/null +++ b/examples/extended/biasing/B06/include/B06Scorer.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: 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" + +class G4Step; +class G4PStep; +class G4VIStore; + +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;} +private: + G4PMapPtkTallys fPtkTallys; + const G4VIStore &fIStore; + G4bool fCorrectWeight; +}; + +G4std::ostream& operator<<(G4std::ostream &out, const B06Scorer &ps); + +#endif diff --git a/examples/extended/biasing/B06/src/B06DetectorConstruction.cc b/examples/extended/biasing/B06/src/B06DetectorConstruction.cc new file mode 100644 index 0000000000..27d9cf6bfb --- /dev/null +++ b/examples/extended/biasing/B06/src/B06DetectorConstruction.cc @@ -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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..0a4d86064b --- /dev/null +++ b/examples/extended/biasing/B06/src/B06ImportanceDetectorConstruction.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..25680150b6 --- /dev/null +++ b/examples/extended/biasing/B06/src/B06PhysicsList.cc @@ -0,0 +1,633 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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/B06PrimaryGeneratorAction.cc b/examples/extended/biasing/B06/src/B06PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..9683713fb3 --- /dev/null +++ b/examples/extended/biasing/B06/src/B06PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $Id: B06PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:44 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B06PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4Neutron.hh" +#include "G4ThreeVector.hh" + +B06PrimaryGeneratorAction::B06PrimaryGeneratorAction() +{ + 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)); +} + +B06PrimaryGeneratorAction::~B06PrimaryGeneratorAction() +{ + delete particleGun; +} + +void B06PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/biasing/B06/src/B06ScorePrinter.cc b/examples/extended/biasing/B06/src/B06ScorePrinter.cc new file mode 100644 index 0000000000..e2f0305d85 --- /dev/null +++ b/examples/extended/biasing/B06/src/B06ScorePrinter.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: 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 new file mode 100644 index 0000000000..93f3c8f937 --- /dev/null +++ b/examples/extended/biasing/B06/src/B06Scorer.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: 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/GNUmakefile b/examples/extended/biasing/B07/GNUmakefile new file mode 100644 index 0000000000..67ad1bf7f6 --- /dev/null +++ b/examples/extended/biasing/B07/GNUmakefile @@ -0,0 +1,18 @@ +# $Id: GNUmakefile,v 1.1 2002/03/27 16:17:44 dressel Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := exampleB07 +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/B07/exampleB07.cc b/examples/extended/biasing/B07/exampleB07.cc new file mode 100644 index 0000000000..4aae9d3663 --- /dev/null +++ b/examples/extended/biasing/B07/exampleB07.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..7c16cb7c9c --- /dev/null +++ b/examples/extended/biasing/B07/exampleB07.out @@ -0,0 +1,721 @@ +********************************************** + 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/include/B07DetectorConstruction.hh b/examples/extended/biasing/B07/include/B07DetectorConstruction.hh new file mode 100644 index 0000000000..7cb485c3c1 --- /dev/null +++ b/examples/extended/biasing/B07/include/B07DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: B07DetectorConstruction.hh,v 1.2 2002/04/19 10:54:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B07DetectorConstruction_hh +#define B07DetectorConstruction_hh B07DetectorConstruction_hh + +class G4VPhysicalVolume; + +#include "G4VUserDetectorConstruction.hh" + +class B07DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B07DetectorConstruction(); + ~B07DetectorConstruction(); + + G4VPhysicalVolume* Construct(); +}; + +#endif diff --git a/examples/extended/biasing/B07/include/B07ImportanceDetectorConstruction.hh b/examples/extended/biasing/B07/include/B07ImportanceDetectorConstruction.hh new file mode 100644 index 0000000000..6f1c95cddd --- /dev/null +++ b/examples/extended/biasing/B07/include/B07ImportanceDetectorConstruction.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: 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 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" + +class G4VPhysicalVolume; +class G4VIStore; + +class B07ImportanceDetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B07ImportanceDetectorConstruction(); + ~B07ImportanceDetectorConstruction(); + + G4VPhysicalVolume* Construct(); + G4VIStore* GetIStore(); + +private: + G4VIStore *fIStore; + +}; + +#endif diff --git a/examples/extended/biasing/B07/include/B07PhysicsList.hh b/examples/extended/biasing/B07/include/B07PhysicsList.hh new file mode 100644 index 0000000000..58fdfd5aba --- /dev/null +++ b/examples/extended/biasing/B07/include/B07PhysicsList.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: B07PhysicsList.hh,v 1.2 2002/04/19 10:54:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B07PhysicsList_h +#define B07PhysicsList_h 1 + +#include "globals.hh" +#include "G4VUserPhysicsList.hh" + +class B07PhysicsList : public G4VUserPhysicsList +{ + public: + B07PhysicsList(); + virtual ~B07PhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + 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(); + +}; + +#endif diff --git a/examples/extended/biasing/B07/include/B07PrimaryGeneratorAction.hh b/examples/extended/biasing/B07/include/B07PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..58147c9a02 --- /dev/null +++ b/examples/extended/biasing/B07/include/B07PrimaryGeneratorAction.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: 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 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class B07PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + B07PrimaryGeneratorAction(); + ~B07PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif diff --git a/examples/extended/biasing/B07/src/B07DetectorConstruction.cc b/examples/extended/biasing/B07/src/B07DetectorConstruction.cc new file mode 100644 index 0000000000..3911c72aa7 --- /dev/null +++ b/examples/extended/biasing/B07/src/B07DetectorConstruction.cc @@ -0,0 +1,210 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: 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 new file mode 100644 index 0000000000..891d80d04b --- /dev/null +++ b/examples/extended/biasing/B07/src/B07ImportanceDetectorConstruction.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..549d71ee67 --- /dev/null +++ b/examples/extended/biasing/B07/src/B07PhysicsList.cc @@ -0,0 +1,366 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $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/B07/src/B07PrimaryGeneratorAction.cc b/examples/extended/biasing/B07/src/B07PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..ca68d65393 --- /dev/null +++ b/examples/extended/biasing/B07/src/B07PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $Id: B07PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:45 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "globals.hh" + +#include "B07PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4Neutron.hh" +#include "G4ThreeVector.hh" + +B07PrimaryGeneratorAction::B07PrimaryGeneratorAction() +{ + 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)); +} + +B07PrimaryGeneratorAction::~B07PrimaryGeneratorAction() +{ + delete particleGun; +} + +void B07PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/biasing/B08/B08ScoreResults.txt b/examples/extended/biasing/B08/B08ScoreResults.txt new file mode 100644 index 0000000000..9ed699e70e --- /dev/null +++ b/examples/extended/biasing/B08/B08ScoreResults.txt @@ -0,0 +1,44 @@ +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 new file mode 100644 index 0000000000..8b60dd8f2b --- /dev/null +++ b/examples/extended/biasing/B08/GNUmakefile @@ -0,0 +1,18 @@ +# $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 new file mode 100644 index 0000000000..043ae2eb67 --- /dev/null +++ b/examples/extended/biasing/B08/exampleB08.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..796d3cf3db --- /dev/null +++ b/examples/extended/biasing/B08/exampleB08.out @@ -0,0 +1,391 @@ +********************************************** + 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/B08DetectorConstruction.hh b/examples/extended/biasing/B08/include/B08DetectorConstruction.hh new file mode 100644 index 0000000000..887ada6730 --- /dev/null +++ b/examples/extended/biasing/B08/include/B08DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: B08DetectorConstruction.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B08DetectorConstruction_hh +#define B08DetectorConstruction_hh B08DetectorConstruction_hh + +class G4VPhysicalVolume; + +#include "G4VUserDetectorConstruction.hh" + +class B08DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + B08DetectorConstruction(); + ~B08DetectorConstruction(); + + G4VPhysicalVolume* Construct(); +}; + +#endif diff --git a/examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.hh b/examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.hh new file mode 100644 index 0000000000..35c5cfd693 --- /dev/null +++ b/examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.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. * +// ******************************************************************** +// +// +// $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 + +#include "globals.hh" + +class G4VPhysicalVolume; +class G4VIStore; + +class B08ImportanceDetectorConstruction +{ +public: + B08ImportanceDetectorConstruction(); + ~B08ImportanceDetectorConstruction(); + + G4VIStore* GetIStore(); + G4VPhysicalVolume *GetWorldVolume(); + +private: + void Construct(); + G4VIStore *fnIStore; + G4VPhysicalVolume *fWorldVolume; + + +}; + +#endif diff --git a/examples/extended/biasing/B08/include/B08ImportanceMessenger.hh b/examples/extended/biasing/B08/include/B08ImportanceMessenger.hh new file mode 100644 index 0000000000..246b21dfee --- /dev/null +++ b/examples/extended/biasing/B08/include/B08ImportanceMessenger.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: B08ImportanceMessenger.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B08ImportanceMessenger_hh +#define B08ImportanceMessenger_hh B08ImportanceMessenger_hh + +#include "G4UImessenger.hh" +#include "globals.hh" +#include "g4std/map" + +class G4VIStore; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADouble; +class G4UIcommand; +class G4VPhysicalVolume; + +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; +}; + + +#endif diff --git a/examples/extended/biasing/B08/include/B08MainMessenger.hh b/examples/extended/biasing/B08/include/B08MainMessenger.hh new file mode 100644 index 0000000000..1eaa88f458 --- /dev/null +++ b/examples/extended/biasing/B08/include/B08MainMessenger.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: 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 + +#include "G4UImessenger.hh" +#include "globals.hh" +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADouble; +class G4UIcommand; + + +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;} + +private: + G4String fResultsFileName; + G4int fNumberOfEvents; + G4double fUpper; + G4double fLower; + + G4UIcmdWithAString *fCmdFn; + G4UIcmdWithAnInteger *fCmdEv; + G4UIcmdWithADouble *fCmdUpper; + G4UIcmdWithADouble *fCmdLower; + + +}; + + +#endif diff --git a/examples/extended/biasing/B08/include/B08PhysicsList.hh b/examples/extended/biasing/B08/include/B08PhysicsList.hh new file mode 100644 index 0000000000..39a609bcb7 --- /dev/null +++ b/examples/extended/biasing/B08/include/B08PhysicsList.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: B08PhysicsList.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#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(); + + 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(); + +}; + +#endif diff --git a/examples/extended/biasing/B08/include/B08PrimaryGeneratorAction.hh b/examples/extended/biasing/B08/include/B08PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..aaa0547d75 --- /dev/null +++ b/examples/extended/biasing/B08/include/B08PrimaryGeneratorAction.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: B08PrimaryGeneratorAction.hh,v 1.1 2002/06/04 11:14:52 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#ifndef B08PrimaryGeneratorAction_hh +#define B08PrimaryGeneratorAction_hh B08PrimaryGeneratorAction_hh + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class B08PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + B08PrimaryGeneratorAction(); + ~B08PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif diff --git a/examples/extended/biasing/B08/include/B08ScorePrinter.hh b/examples/extended/biasing/B08/include/B08ScorePrinter.hh new file mode 100644 index 0000000000..d3414e6105 --- /dev/null +++ b/examples/extended/biasing/B08/include/B08ScorePrinter.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: 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" + +#include "globals.hh" +#include "G4PMapPtkTallys.hh" + +class G4VIStore; + +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; + +}; + +#endif diff --git a/examples/extended/biasing/B08/include/B08Scorer.hh b/examples/extended/biasing/B08/include/B08Scorer.hh new file mode 100644 index 0000000000..f7b0dd3334 --- /dev/null +++ b/examples/extended/biasing/B08/include/B08Scorer.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..16fbce7cf2 --- /dev/null +++ b/examples/extended/biasing/B08/init.mac @@ -0,0 +1,69 @@ +# 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 new file mode 100644 index 0000000000..503a8553ce --- /dev/null +++ b/examples/extended/biasing/B08/src/B08DetectorConstruction.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..bfe62698d7 --- /dev/null +++ b/examples/extended/biasing/B08/src/B08ImportanceDetectorConstruction.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..416c24fc4d --- /dev/null +++ b/examples/extended/biasing/B08/src/B08ImportanceMessenger.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: 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 new file mode 100644 index 0000000000..03b849c929 --- /dev/null +++ b/examples/extended/biasing/B08/src/B08MainMessenger.cc @@ -0,0 +1,83 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: 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 new file mode 100644 index 0000000000..a58e3bac4d --- /dev/null +++ b/examples/extended/biasing/B08/src/B08PhysicsList.cc @@ -0,0 +1,633 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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 new file mode 100644 index 0000000000..bf72fac27e --- /dev/null +++ b/examples/extended/biasing/B08/src/B08PrimaryGeneratorAction.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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..7320fc877d --- /dev/null +++ b/examples/extended/biasing/B08/src/B08ScorePrinter.cc @@ -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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..8763b5fee7 --- /dev/null +++ b/examples/extended/biasing/B08/src/B08Scorer.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: 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 new file mode 100644 index 0000000000..ce29590ee4 --- /dev/null +++ b/examples/extended/biasing/GNUmakefile @@ -0,0 +1,23 @@ +# $Id: GNUmakefile,v 1.2 2002/06/04 12:04:20 dressel Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 08/04/02. +# -------------------------------------------------------------- + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +SUBDIRS = B01 B02 B03 B04 B05 B06 B07 B08 + +.PHONY : all clean clean_libs + +all: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE)); done + +clean: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) clean); done + +clean_libs: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) clean_libs); done diff --git a/examples/extended/biasing/History b/examples/extended/biasing/History new file mode 100644 index 0000000000..324a627dd7 --- /dev/null +++ b/examples/extended/biasing/History @@ -0,0 +1,57 @@ +$Id: History,v 1.13 2002/06/04 12:04:20 dressel Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +Jun 4th, 2002 M.Dressel - exbiasing-V04-00-07 +- update of exampleBXX.out files. +- addition of example B08 + +May 31th, 2002 M.Dressel - exbiasing-V04-00-06 +- change ...Manager to ...Sampler to be conform to transport-V04-00-06 + +May 23th, 2002 M.Dressel - internal-1-exbiasing-V04-00-05 +- Update of README and ouput files after changes in G4ProcessPlacer in + transportation + +May 15th, 2002 M.Asai - exbiasing-V04-00-05 +- Eliminated all UI commands from generator actions + +April 19th, 2002 G.Cosmo - exbiasing-V04-00-04 +- Added disclaimer of liability and minor cosmetics... + +April 12th, 2002 M.Dressel +- Change class B06ImportanceDetectorConstruction.hh and exampleB06.cc. + B06ImportanceDetectorConstruction does not derive from + G4UserDetectorConstruction, function Construct made private + and called in Constructor. + +April 8th, 2002 G.Cosmo - exbiasing-V04-00-03 +- Fixed usage of 'first'/'second' in iterators for porting + on DEC-cxx non-ISO. + +April 8th, 2002 M.Dressel - exbiasing-V04-00-02 +- Resolved compilation problems on HP-aCC. + +April 4th, 2002 M.Dressel - exbiasing-V04-00-01 +- Resolved compilation problems on SUN-CC and Linux-egcs. + +March 28th, 2002 M.Dressel - exbiasing-V04-00-00 +- First implementation of importance biasing and scoring user examples. + +March 25th, 2002 G.Cosmo +- Created. diff --git a/examples/extended/biasing/README b/examples/extended/biasing/README new file mode 100644 index 0000000000..be7c49f260 --- /dev/null +++ b/examples/extended/biasing/README @@ -0,0 +1,154 @@ + + Examples for event biasing + -------------------------- + +This directory includes example applications to demonstrate the usage of +different biasing techniques supported in Geant4, or possible from the +user applications. + + +General remark to biasing +------------------------- +The tools provided for importance sampling (or geometrical splitting and +Russian roulette) require the user to have a good understanding of the +physics in the problem. This is because the user has to decide which +particle types have to be biased, define the regions (physical volumes, +replicas) and assign importances to that regions. If this is not done +properly it can not be expected that the results describe a real +experiment. The examples given here only demonstrate how to use the tools +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 +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. +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. + +Known problems +-------------- +In the following scenario it can happen that a particle is not +biased and it's weight is therefore not changed even if it crosses +a boundary where biasing should happen. +The importance sampling creates particles on boundaries +between volumes. If the GPIL method of a physical process returns +0 as step length for a particle on a boundary and if the PostStepDoIt of +that process changes the direction of the particle to go back in the +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. + + +I. Examples for scoring without biasing +======================================= + +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. + + +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. + + +II. Examples for biasing without scoring +======================================== + +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. + + +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. + + + +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. + diff --git a/examples/extended/electromagnetic/TestEm1/GNUmakefile b/examples/extended/electromagnetic/TestEm1/GNUmakefile index 8bd0b5eadb..3113316a39 100644 --- a/examples/extended/electromagnetic/TestEm1/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm1/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.6 2001/11/29 11:28:06 maire Exp $ +# $Id: GNUmakefile,v 1.7 2002/05/31 17:10:34 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -20,8 +20,9 @@ G4NOHIST := true ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else - LDFLAGS += -L$(CERN)/pro/lib - LOADLIBS += -lpacklib $(FCLIBS) + # for the aida-config command see the README file + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm1/History b/examples/extended/electromagnetic/TestEm1/History index 5512515889..01d9a6f17f 100644 --- a/examples/extended/electromagnetic/TestEm1/History +++ b/examples/extended/electromagnetic/TestEm1/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2001/11/29 11:28:06 maire Exp $ +$Id: History,v 1.20 2002/06/05 17:57:27 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,24 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +05-06-02 mma (testem1-V04-00-03) +-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 + +08-03-02 mma (testem1-V04-00-01) +- PhysicsList: unifomisation of the setG(E)Cut commands + +06-02-02 mma (testem1-V04-00-00) + +06-12-01 mma +- In PrimaryGeneratorAction, possibility to fix the vertex at front face, + and to randomize the beam spot. +- command /gun/rndm in PrimaryGeneratorMessenger +- similar functionality in geant3: gukine.F +- change output precision in RunAction (+uglast.F) + 29-11-01 mma (testem1-V03-02-02) - EventAction: DrawTrack "none" - small change in vis.mac diff --git a/examples/extended/electromagnetic/TestEm1/README b/examples/extended/electromagnetic/TestEm1/README index 1eaf0b0835..33058b1ded 100644 --- a/examples/extended/electromagnetic/TestEm1/README +++ b/examples/extended/electromagnetic/TestEm1/README @@ -1,4 +1,4 @@ -$Id: README,v 1.4 2001/10/26 12:51:21 maire Exp $ +$Id: README,v 1.6 2002/05/31 17:10:34 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -42,7 +42,11 @@ $Id: README,v 1.4 2001/10/26 12:51:21 maire Exp $ in the PrimaryGeneratorAction class, and can be changed via the G4 build-in commands of ParticleGun class (see the macros provided with this example). - + + In addition one can choose randomly the impact point of the incident + particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. + A RUN is a set of events. @@ -98,8 +102,24 @@ $Id: README,v 1.4 2001/10/26 12:51:21 maire Exp $ 2 : number of steps per track (charged particle) 3 : step length (charged particle) - Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - Currently, histograms in this example are implemented through the obsolete - CLHEP/Hist package, which is no longer supported. The implementation will - be replaced by direct call to the "analysis" module in a near future. + Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. + +7- Using the Anaphe implementation of the AIDA 2.2 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): + + # 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. diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.cc b/examples/extended/electromagnetic/TestEm1/TestEm1.cc index 19859f7abe..6f6109ee4b 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.cc +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm1.cc,v 1.7 2001/11/29 11:28:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: TestEm1.cc,v 1.8 2001/12/07 11:49:08 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,7 +68,7 @@ int main(int argc,char** argv) { Em1DetectorConstruction* det; runManager->SetUserInitialization(det = new Em1DetectorConstruction); runManager->SetUserInitialization(new Em1PhysicsList(det)); - runManager->SetUserAction(new Em1PrimaryGeneratorAction); + runManager->SetUserAction(new Em1PrimaryGeneratorAction(det)); #ifdef Em1NoOptimize #ifdef G4VIS_USE diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.in b/examples/extended/electromagnetic/TestEm1/TestEm1.in index 9cdb332463..5bee68b6de 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.in +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.in @@ -1,4 +1,4 @@ -# $Id: TestEm1.in,v 1.3 2001/10/31 15:49:30 maire Exp $ +# $Id: TestEm1.in,v 1.4 2002/03/08 15:08:57 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 2.20 mm -/calor/cutE 6.05 mum +/run/particle/setGCut 2.20 mm +/run/particle/setECut 6.05 mum # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out index 0044a82884..a85d2d38d1 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.out +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -17,12 +17,12 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) # -/calor/cutG 2.20 mm -/calor/cutE 6.05 mum +/run/particle/setGCut 2.20 mm +/run/particle/setECut 6.05 mum # /run/initialize -***** Table : Nb of materials = 9 ***** +***** Table : Nb of materials = 11 ***** Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % @@ -44,27 +44,31 @@ Current available graphics systems are: Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm ---> Element: Silicon Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm + ---> Element: Germanium Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % + 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 % + Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm + ---> Element: Tungsten Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % - Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.861 mm - ---> Element: Uranium Z = 82.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm + ---> Element: Uranium Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 % The Box is 20 m of Aluminium -Em1PhysicsList::SetCuts:CutLength : 1 (mm) -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. +Em1PhysicsList::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 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 @@ -125,7 +129,9 @@ Cut in range liquidArgon 2.2 mm 6.05 mum Aluminium 2.2 mm 6.05 mum Silicon 2.2 mm 6.05 mum + Germanium 2.2 mm 6.05 mum Iron 2.2 mm 6.05 mum + Tungsten 2.2 mm 6.05 mum Lead 2.2 mm 6.05 mum Uranium 2.2 mm 6.05 mum Cut in energy @@ -135,9 +141,11 @@ Cut in energy liquidArgon 9.08 keV 3.98 keV Aluminium 9.99 keV 9.97 keV Silicon 10 keV 8.45 keV + Germanium 31.6 keV 32.7 keV Iron 31.1 keV 43.3 keV + Tungsten 139 keV 59.7 keV Lead 124 keV 42.8 keV - Uranium 143 keV 53.4 keV + Uranium 188 keV 56.1 keV =================================================== # /process/eLoss/StepFunction 0.183 170 micrometer @@ -164,18 +172,18 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=16s Real=19s Sys=2.6s + User=12s Real=23s Sys=2.8s - nb tracks/event neutral: 27.29 charged: 692.97 - nb steps/event neutral: 145.49 charged: 1331.63 + nb tracks/event neutral: 27.5700 charged: 695.0200 + nb steps/event neutral: 148.5400 charged: 1331.6000 nb of process calls per event: - eIoni eBrem compt phot conv annihil - 1305.51 24.92 118.20 26.09 1.20 1.20 + eIoni eBrem phot compt conv annihil + 1305.3700 24.8300 26.1700 120.9700 1.4000 1.4000 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 640041358, 1353064269 + Current couple of seeds = 2126832091, 1419935556 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm1/geant3/phot.dat b/examples/extended/electromagnetic/TestEm1/geant3/phot.dat new file mode 100644 index 0000000000..9d09dc7aa4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/geant3/phot.dat @@ -0,0 +1,19 @@ +LIST +C +C Photo electric; gamma 1 MeV +C +CALOR 10 (Germanium) 1. (size) 0. (field) +TRIG 100000 +KINE 1 (gamma) 0.001 (Ekine) 1. (xBeam) 0.8 (rBeam) +DEBUG 10 5 1000 +SWIT 0 (draw) 0 (save) +CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm) +ABAN 0 +PHOT 1 +COMP 0 +PAIR 0 +BREM 0 +MULS 1 +LOSS 1 +TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F index a42bdcd433..5bb203640b 100644 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F +++ b/examples/extended/electromagnetic/TestEm1/geant3/src/gukine.F @@ -3,20 +3,30 @@ * * Generates Kinematics for primary track * -* Data card Kine : Itype Ekine +* Data card Kine : Itype Ekine xbeam rbeam * #include "geant321/gcbank.inc" #include "geant321/gcflag.inc" -#include "geant321/gckine.inc" +#include "geant321/gckine.inc" +#include "calor.inc" * DIMENSION VERTEX(3),PLAB(3) + dimension rndm(3) * DATA VERTEX/3*0./ DATA PLAB /3*0./ * + IF (PKINE(2).NE.0.) vertex(1) = -0.5*BoxSize +* +* random in YZ ? + if ((pkine(3).lt.0.).or.(pkine(3).gt.1.)) pkine(3) = 0. + rbeam = pkine(3)*0.5*BoxSize + call GRNDM (rndm,2) +* + VERTEX(2) = (2*rndm(1)-1.)*rbeam + VERTEX(3) = (2*rndm(2)-1.)*rbeam * CALL GSVERT(VERTEX,0,0,0,0,NVERT) -* * JPA = LQ(JPART-IKINE) XMASS = Q(JPA+7) diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F index ba6471bd6f..cee198757a 100644 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F +++ b/examples/extended/electromagnetic/TestEm1/geant3/src/ugeom.F @@ -31,7 +31,7 @@ CALL GSMATE( 7,'Tungsten' ,183.85, 74., 19.30 , 0.35, 18.5, 0,0) CALL GSMATE( 8,'Lead' ,207.19, 82., 11.35 , 0.56, 18.5, 0,0) CALL GSMATE( 9,'Uranium' ,238.03, 92., 18.95 , 0.32, 12. , 0,0) -* + CALL GSMATE(10,'Germanium', 72.61, 32., 5.323 , 2.30, 16.6, 0,0) * * *** Defines USER tracking media parameters IFIELD = 0 diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F index 21a88bb414..e8b2216125 100644 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F +++ b/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F @@ -40,6 +40,6 @@ 760 FORMAT(//,1X,'nb of process calls per event: ', + /,3X,12A9) - 761 FORMAT( 3X,12F9.2,//) + 761 FORMAT( 3X,12F9.4,//) * END diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh index 004abc208a..6c26196dc5 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1DetectorConstruction.hh,v 1.4 2001/10/26 12:51:23 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1DetectorConstruction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -64,7 +64,7 @@ class Em1DetectorConstruction : public G4VUserDetectorConstruction const G4VPhysicalVolume* GetWorld() {return pBox;}; - G4double GeSize() {return BoxSize;}; + G4double GetSize() {return BoxSize;}; G4Material* GetMaterial() {return aMaterial;}; void PrintParameters(); diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh index 052f588cd8..72b59e7c7d 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em1DetectorMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh index a17fe7b16d..27661edb8a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh index 9db219d117..8f1b686ba0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh index 83b60ae25d..71ffc0a95f 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1PhysicsList.hh,v 1.4 2001/10/26 12:51:23 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1PhysicsList.hh,v 1.5 2002/03/08 13:43:29 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -59,7 +59,6 @@ class Em1PhysicsList: public G4VUserPhysicsList void SetGammaCut(G4double); void SetElectronCut(G4double); void SetProtonCut(G4double); - void SetCutsByEnergy(G4double); void GetRange(G4double); protected: @@ -75,6 +74,7 @@ class Em1PhysicsList: public G4VUserPhysicsList G4double cutForGamma; G4double cutForElectron; G4double cutForProton; + G4double currentDefaultCut; }; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh index cd3097131a..8455671f7e 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1PhysicsListMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1PhysicsListMessenger.hh,v 1.5 2002/03/08 13:43:29 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -54,7 +54,6 @@ class Em1PhysicsListMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* cutECmd; G4UIcmdWithADoubleAndUnit* cutPCmd; G4UIcmdWithADoubleAndUnit* rCmd; - G4UIcmdWithADoubleAndUnit* eCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh index 618c987901..a0d96e9db5 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1PrimaryGeneratorAction.hh,v 1.4 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1PrimaryGeneratorAction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -37,20 +37,27 @@ class G4ParticleGun; class G4Event; +class Em1DetectorConstruction; +class Em1PrimaryGeneratorMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class Em1PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - Em1PrimaryGeneratorAction(); + Em1PrimaryGeneratorAction(Em1DetectorConstruction*); ~Em1PrimaryGeneratorAction(); public: + void SetDefaultKinematic(G4int); + void SetRndmBeam(G4double val) {rndmBeam = val;} void GeneratePrimaries(G4Event*); private: - G4ParticleGun* particleGun; //pointer a to G4 service class + G4ParticleGun* particleGun; + Em1DetectorConstruction* Em1Detector; + G4double rndmBeam; + Em1PrimaryGeneratorMessenger* gunMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..b9054a0296 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.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. * +// ******************************************************************** +// +// +// $Id: Em1PrimaryGeneratorMessenger.hh,v 1.1 2001/12/07 11:49:09 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Em1PrimaryGeneratorMessenger_h +#define Em1PrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class Em1PrimaryGeneratorAction; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADouble; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Em1PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + Em1PrimaryGeneratorMessenger(Em1PrimaryGeneratorAction*); + ~Em1PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + Em1PrimaryGeneratorAction* Em1Action; + G4UIcmdWithAnInteger* DefaultCmd; + G4UIcmdWithADouble* RndmCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh index 16d03502df..31123fd132 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.8 2001/11/29 11:28:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1RunAction.hh,v 1.9 2002/05/31 17:10:35 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -41,8 +41,8 @@ class G4Run; #ifndef G4NOHIST - class HepTupleManager; - class HepHistogram; + class ITree; + class IHistogram1D; #endif class Em1RunAction : public G4UserRunAction @@ -62,7 +62,7 @@ class Em1RunAction : public G4UserRunAction void CountProcesses(G4String); #ifndef G4NOHIST - HepHistogram* GetHisto(G4int id) {return histo[id];} + IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif private: @@ -75,8 +75,8 @@ class Em1RunAction : public G4UserRunAction ProcessesCount* ProcCounter; #ifndef G4NOHIST - HepTupleManager* hbookManager; - HepHistogram* histo[3]; + ITree* tree; + IHistogram1D* histo[3]; #endif }; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1SteppingAction.hh index 7cd425974f..a86431450f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh index 9f37b32c3d..de9e059c31 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b05fc1f88d..98fa3cf6c4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh b/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh index 32e51e227e..4e7392646b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh index 430bd341ba..843bc6a598 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/phot.mac b/examples/extended/electromagnetic/TestEm1/phot.mac new file mode 100644 index 0000000000..fcd13c2ff6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/phot.mac @@ -0,0 +1,28 @@ +# $Id: phot.mac,v 1.1 2002/02/06 13:57:58 maire Exp $ +# +# Macro file for "TestEm1.cc" +# (can be run in batch, without graphic) +# +# PhotoElectricEffect; Gamma 1 Mev +# +/control/verbose 2 +# +/run/initialize +# +/calor/setMat Germanium +/calor/setSize 1 cm +/calor/update +# +/gun/setDefault 1 +# +/run/verbose 2 +# +/gun/particle gamma +/gun/energy 1 MeV +/gun/rndm 0.8 +# +/tracking/verbose 1 +# +#/run/particle/applyCuts +# +#/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm1/run01.mac b/examples/extended/electromagnetic/TestEm1/run01.mac index 616c4a2587..121fb52470 100644 --- a/examples/extended/electromagnetic/TestEm1/run01.mac +++ b/examples/extended/electromagnetic/TestEm1/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.3 2001/10/31 15:36:43 maire Exp $ +# $Id: run01.mac,v 1.4 2002/03/08 13:43:27 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 95 cm -/calor/cutE 95 cm +/run/particle/setGCut 95 cm +/run/particle/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run02.mac b/examples/extended/electromagnetic/TestEm1/run02.mac index 302551df33..f3db010421 100644 --- a/examples/extended/electromagnetic/TestEm1/run02.mac +++ b/examples/extended/electromagnetic/TestEm1/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run02.mac,v 1.4 2002/03/08 13:43:27 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 95 cm -/calor/cutE 95 cm +/run/particle/setGCut 95 cm +/run/particle/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run03.mac b/examples/extended/electromagnetic/TestEm1/run03.mac index efa3180062..fbbb148326 100644 --- a/examples/extended/electromagnetic/TestEm1/run03.mac +++ b/examples/extended/electromagnetic/TestEm1/run03.mac @@ -1,4 +1,4 @@ -# $Id: run03.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run03.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 95 cm -/calor/cutE 95 cm +/run/particle/setGCut 95 cm +/run/particle/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run04.mac b/examples/extended/electromagnetic/TestEm1/run04.mac index 46ffef6cf1..fef1bfa812 100644 --- a/examples/extended/electromagnetic/TestEm1/run04.mac +++ b/examples/extended/electromagnetic/TestEm1/run04.mac @@ -1,4 +1,4 @@ -# $Id: run04.mac,v 1.4 2001/10/31 15:36:44 maire Exp $ +# $Id: run04.mac,v 1.5 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 95 cm -/calor/cutE 100. micrometer +/run/particle/setGCut 95 cm +/run/particle/setECut 100 micrometer # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run05.mac b/examples/extended/electromagnetic/TestEm1/run05.mac index 0cd9181f2e..ef1ff492f5 100644 --- a/examples/extended/electromagnetic/TestEm1/run05.mac +++ b/examples/extended/electromagnetic/TestEm1/run05.mac @@ -1,4 +1,4 @@ -# $Id: run05.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run05.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 2.2 mm -/calor/cutE 95 cm +/run/particle/setGCut 2.2 mm +/run/particle/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run06.mac b/examples/extended/electromagnetic/TestEm1/run06.mac index 3ad33fe0dd..7eec6a2dd0 100644 --- a/examples/extended/electromagnetic/TestEm1/run06.mac +++ b/examples/extended/electromagnetic/TestEm1/run06.mac @@ -1,4 +1,4 @@ -# $Id: run06.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run06.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 95 cm -/calor/cutE 95 cm +/run/particle/setGCut 95 cm +/run/particle/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run07.mac b/examples/extended/electromagnetic/TestEm1/run07.mac index 251728ab48..9b96b15788 100644 --- a/examples/extended/electromagnetic/TestEm1/run07.mac +++ b/examples/extended/electromagnetic/TestEm1/run07.mac @@ -1,4 +1,4 @@ -# $Id: run07.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run07.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 95 cm -/calor/cutE 30 mm +/run/particle/setGCut 95 cm +/run/particle/setECut 30 mm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run08.mac b/examples/extended/electromagnetic/TestEm1/run08.mac index 0a714db4c0..c40fe495eb 100644 --- a/examples/extended/electromagnetic/TestEm1/run08.mac +++ b/examples/extended/electromagnetic/TestEm1/run08.mac @@ -1,4 +1,4 @@ -# $Id: run08.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run08.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 2.2 mm -/calor/cutE 6.05 micrometer +/run/particle/setGCut 2.2 mm +/run/particle/setECut 6.05 micrometer # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run09.mac b/examples/extended/electromagnetic/TestEm1/run09.mac index d1444ee31d..80c4a64779 100644 --- a/examples/extended/electromagnetic/TestEm1/run09.mac +++ b/examples/extended/electromagnetic/TestEm1/run09.mac @@ -1,4 +1,4 @@ -# $Id: run09.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run09.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 2.2 mm -/calor/cutE 6.05 micrometer +/run/particle/setGCut 2.2 mm +/run/particle/setECut 6.05 micrometer # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run11.mac b/examples/extended/electromagnetic/TestEm1/run11.mac index 73af9a7fcf..f185fbea9b 100644 --- a/examples/extended/electromagnetic/TestEm1/run11.mac +++ b/examples/extended/electromagnetic/TestEm1/run11.mac @@ -1,4 +1,4 @@ -# $Id: run11.mac,v 1.3 2001/10/31 15:36:44 maire Exp $ +# $Id: run11.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/calor/cutG 95 cm -/calor/cutE 17 cm +/run/particle/setGCut 95 cm +/run/particle/setECut 17 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc index ceedc7795c..0d31cf3d50 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc @@ -22,8 +22,8 @@ // // -// $Id: Em1DetectorConstruction.cc,v 1.7 2001/11/29 11:28:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1DetectorConstruction.cc,v 1.9 2002/05/31 17:10:35 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -129,17 +129,25 @@ density = 2.330*g/cm3; a = 28.09*g/mole; G4Material* Si = new G4Material(name="Silicon" , z=14., a, density); +density = 5.323*g/cm3; +a = 72.61*g/mole; +G4Material* Ge = new G4Material(name="Germanium" , z=32., a, density); + density = 7.870*g/cm3; a = 55.85*g/mole; G4Material* Fe = new G4Material(name="Iron" , z=26., a, density); +density = 19.30*g/cm3; +a = 183.85*g/mole; +G4Material* W = new G4Material(name="Tungsten" , z=74., a, density); + density = 11.35*g/cm3; a = 207.19*g/mole; G4Material* Pb = new G4Material(name="Lead" , z=82., a, density); density = 18.95*g/cm3; a = 238.03*g/mole; -G4Material* U = new G4Material(name="Uranium" , z=82., a, density); +G4Material* U = new G4Material(name="Uranium" , z=92., a, density); G4cout << *(G4Material::GetMaterialTable()) << G4endl; diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc index 9914735265..35f444447a 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em1DetectorMessenger.cc,v 1.4 2001/10/26 12:51:25 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc index 300e8f87ff..69409e1ccc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc index a92b969b58..f4f1905c9f 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em1EventActionMessenger.cc,v 1.4 2001/10/26 12:51:25 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc index 86ca833eaa..87cbf84fdc 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1PhysicsList.cc,v 1.5 2001/10/26 12:51:25 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1PhysicsList.cc,v 1.6 2002/03/08 13:43:29 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -54,13 +54,14 @@ Em1PhysicsList::Em1PhysicsList(Em1DetectorConstruction* p) { pDet = p; - defaultCutValue = 1.*mm; - cutForGamma = defaultCutValue; - cutForElectron = defaultCutValue; - cutForProton = defaultCutValue; - - SetVerboseLevel(1); + currentDefaultCut = defaultCutValue = 1.*mm; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForProton = defaultCutValue; + pMes = new Em1PhysicsListMessenger(this); + + SetVerboseLevel(1); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -241,9 +242,18 @@ void Em1PhysicsList::ConstructGeneral() void Em1PhysicsList::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 << "Em1PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; + G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; } // set cut values for gamma at first and for e- second and next for e+, @@ -288,39 +298,6 @@ void Em1PhysicsList::SetProtonCut(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::SetCutsByEnergy(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetMaterial(); - - // 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 - G4ParticleDefinition* part; - G4double cut; - - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e-"); - - part = theParticleTable->FindParticle("e+"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "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 - part = theParticleTable->FindParticle("proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "proton"); - - part = theParticleTable->FindParticle("anti_proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Em1PhysicsList::GetRange(G4double val) { G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); @@ -330,10 +307,10 @@ void Em1PhysicsList::GetRange(G4double val) G4double cut; part = theParticleTable->FindParticle("e-"); cut = G4EnergyLossTables::GetRange(part,val,currMat); - G4cout << "material : " << currMat->GetName() << G4endl; - G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << val / keV << " (keV)" << G4endl; - G4cout << "range : " << cut / mm << " (mm)" << G4endl; + G4cout << "material : " << currMat->GetName() << G4endl; + G4cout << "particle : " << part->GetParticleName() << G4endl; + G4cout << "energy : " << G4BestUnit(val,"Energy") << G4endl; + G4cout << "range : " << G4BestUnit(cut,"Length") << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc index 289a321d04..3f4f0c38c4 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.5 2001/10/31 15:36:45 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1PhysicsListMessenger.cc,v 1.6 2002/03/08 13:43:30 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -40,36 +40,29 @@ Em1PhysicsListMessenger::Em1PhysicsListMessenger(Em1PhysicsList* EvAct) :physList(EvAct) { - cutGCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutG",this); - cutGCmd->SetGuidance("Set cut values by RANGE for Gamma."); - cutGCmd->SetParameterName("range",false); - cutGCmd->SetRange("range>0."); + cutGCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setGCut",this); + cutGCmd->SetGuidance("Set gamma cut."); + cutGCmd->SetParameterName("Gcut",false); + cutGCmd->SetRange("Gcut>0."); cutGCmd->SetUnitCategory("Length"); cutGCmd->AvailableForStates(PreInit,Idle); - cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); - cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); - cutECmd->SetParameterName("range",false); - cutECmd->SetRange("range>0."); + 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); - cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); - cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); - cutPCmd->SetParameterName("range",false); - cutPCmd->SetRange("range>0."); + 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); - eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); - eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); - eCmd->SetParameterName("energy",false); - eCmd->SetRange("energy>0."); - eCmd->SetUnitCategory("Energy"); - eCmd->AvailableForStates(Idle); - - rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); - rCmd->SetGuidance("Display the RANGE of Electron for the current material."); + 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"); @@ -84,7 +77,6 @@ Em1PhysicsListMessenger::~Em1PhysicsListMessenger() delete cutECmd; delete cutPCmd; delete rCmd; - delete eCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -95,11 +87,9 @@ void Em1PhysicsListMessenger::SetNewValue(G4UIcommand* command, if(command == cutGCmd) {physList->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} if(command == cutECmd) - {physList->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} + {physList->SetElectronCut(cutECmd->GetNewDoubleValue(newValue));} if(command == cutPCmd) - {physList->SetProtonCut(eCmd->GetNewDoubleValue(newValue));} - if(command == eCmd) - {physList->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));} + {physList->SetProtonCut(cutPCmd->GetNewDoubleValue(newValue));} if(command == rCmd) {physList->GetRange(rCmd->GetNewDoubleValue(newValue));} diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc index e4fb26d466..617251a1f9 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1PrimaryGeneratorAction.cc,v 1.4 2001/10/26 12:51:25 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1PrimaryGeneratorAction.cc,v 1.5 2001/12/07 11:49:09 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -31,26 +31,27 @@ #include "Em1PrimaryGeneratorAction.hh" +#include "Em1DetectorConstruction.hh" +#include "Em1PrimaryGeneratorMessenger.hh" + #include "G4Event.hh" #include "G4ParticleGun.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" +#include "Randomize.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PrimaryGeneratorAction::Em1PrimaryGeneratorAction() +Em1PrimaryGeneratorAction::Em1PrimaryGeneratorAction( + Em1DetectorConstruction* Em1DC) +:Em1Detector(Em1DC) { - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - - // default particle kinematic - - G4ParticleDefinition* particle - = G4ParticleTable::GetParticleTable()->FindParticle("e-"); - particleGun->SetParticleDefinition(particle); - particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); - particleGun->SetParticleEnergy(100*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm)); + particleGun = new G4ParticleGun(1); + SetDefaultKinematic(0); + rndmBeam = 0.; + + //create a messenger for this class + gunMessenger = new Em1PrimaryGeneratorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,13 +59,42 @@ Em1PrimaryGeneratorAction::Em1PrimaryGeneratorAction() Em1PrimaryGeneratorAction::~Em1PrimaryGeneratorAction() { delete particleGun; + delete gunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Em1PrimaryGeneratorAction::SetDefaultKinematic(G4int front) +{ + G4ParticleDefinition* particle + = G4ParticleTable::GetParticleTable()->FindParticle("e-"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + particleGun->SetParticleEnergy(100*MeV); + G4double position = 0.*cm; + if (front) position = -0.5*(Em1Detector->GetSize()); + particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void Em1PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -{ - particleGun->GeneratePrimaryVertex(anEvent); +{ + //this function is called at the begining of event + // + //randomize the beam, if requested. + if (rndmBeam > 0.) + { + G4ThreeVector oldPosition = particleGun->GetParticlePosition(); + G4double rbeam = 0.5*(Em1Detector->GetSize())*rndmBeam; + G4double x0 = oldPosition.x(); + G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam; + G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam; + particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + particleGun->GeneratePrimaryVertex(anEvent); + particleGun->SetParticlePosition(oldPosition); + } + else particleGun->GeneratePrimaryVertex(anEvent); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..167b3d65cc --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: Em1PrimaryGeneratorMessenger.cc,v 1.1 2001/12/07 11:49:10 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Em1PrimaryGeneratorMessenger.hh" + +#include "Em1PrimaryGeneratorAction.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADouble.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em1PrimaryGeneratorMessenger::Em1PrimaryGeneratorMessenger( + Em1PrimaryGeneratorAction* Em1Gun) +:Em1Action(Em1Gun) +{ + DefaultCmd = new G4UIcmdWithAnInteger("/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); + + 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); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em1PrimaryGeneratorMessenger::~Em1PrimaryGeneratorMessenger() +{ + delete DefaultCmd; + delete RndmCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Em1PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if (command == DefaultCmd) + {Em1Action->SetDefaultKinematic(DefaultCmd->GetNewIntValue(newValue));} + + if (command == RndmCmd) + {Em1Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc index 9fbd8f72fc..d2abd9039b 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.13 2001/11/29 11:28:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1RunAction.cc,v 1.16 2002/06/03 13:49:28 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,18 +43,22 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #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" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... Em1RunAction::Em1RunAction() : ProcCounter(0) -{ -#ifndef G4NOHIST - hbookManager = 0; -#endif -} +{ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,15 +72,30 @@ Em1RunAction::~Em1RunAction() void Em1RunAction::bookHisto() { #ifndef G4NOHIST - hbookManager = new HBookFile("testem1.paw", 68); + // Creating the analysis factory + IAnalysisFactory* af = AIDA_createAnalysisFactory(); + + // Creating the tree factory + ITreeFactory* tf = af->createTreeFactory(); + + // Creating a tree mapped to an hbook file. + tree = tf->create("testem1.paw", false, false, "hbook"); - // booking histograms - histo[0] = hbookManager->histogram - ("track length (mm) of a charged particle",100,0.,50*cm); - histo[1] = hbookManager->histogram - ("Nb of steps per track (charged particle)",100,0.,100.); - histo[2] = hbookManager->histogram - ("step length (mm) charged particle",100,0.,10*mm); + // Creating a histogram factory, whose histograms will be handled by the tree + IHistogramFactory* hf = af->createHistogramFactory(*tree); + + + // booking histograms + histo[0] = hf->create1D("1","track length (mm) of a charged particle", + 100,0.,50*cm); + histo[1] = hf->create1D("2","Nb of steps per track (charged particle)", + 100,0.,100.); + histo[2] = hf->create1D("3","step length (mm) charged particle", + 100,0.,10*mm); + + delete hf; + delete tf; + delete af; #endif } @@ -85,10 +104,10 @@ void Em1RunAction::bookHisto() void Em1RunAction::cleanHisto() { #ifndef G4NOHIST - // writing histogram file - hbookManager->write(); - delete [] histo; - delete hbookManager; + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + + delete tree; #endif } @@ -136,24 +155,24 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun) G4double dNbOfEvents = double(NbOfEvents); G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); - G4int oldprec = G4cout.precision(2); + G4int oldprec = G4cout.precision(4); G4cout << "\n nb tracks/event" - << " neutral: " << G4std::setw(7) << NbOfTraks0/dNbOfEvents - << " charged: " << G4std::setw(7) << NbOfTraks1/dNbOfEvents + << " neutral: " << G4std::setw(10) << NbOfTraks0/dNbOfEvents + << " charged: " << G4std::setw(10) << NbOfTraks1/dNbOfEvents << "\n nb steps/event" - << " neutral: " << G4std::setw(7) << NbOfSteps0/dNbOfEvents - << " charged: " << G4std::setw(7) << NbOfSteps1/dNbOfEvents + << " neutral: " << G4std::setw(10) << NbOfSteps0/dNbOfEvents + << " charged: " << G4std::setw(10) << NbOfSteps1/dNbOfEvents << G4endl; //frequency of processes call G4cout << "\n nb of process calls per event: \n "; for (size_t i=0; i< ProcCounter->size();i++) - G4cout << G4std::setw(9) << (*ProcCounter)[i]->GetName(); + G4cout << G4std::setw(12) << (*ProcCounter)[i]->GetName(); G4cout << "\n "; for (size_t j=0; j< ProcCounter->size();j++) - G4cout << G4std::setw(9) << ((*ProcCounter)[j]->GetCounter()) + G4cout << G4std::setw(12) << ((*ProcCounter)[j]->GetCounter()) /dNbOfEvents; G4cout << G4endl; diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc index 1c660ac63f..72b4b7c3f2 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1SteppingAction.cc,v 1.7 2001/10/26 12:51:26 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1SteppingAction.cc,v 1.8 2002/05/31 17:10:35 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -36,7 +36,7 @@ #include "G4VProcess.hh" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -64,7 +64,7 @@ void Em1SteppingAction::UserSteppingAction(const G4Step* aStep) G4double steplen = aStep->GetStepLength(); #ifndef G4NOHIST - if (charge != 0.) runAction->GetHisto(2)->accumulate(steplen); + if (charge != 0.) runAction->GetHisto(2)->fill(steplen); #endif } diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc index b535bd2713..78a99c8d8c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 df2e7d377f..2cea17caf4 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc @@ -22,8 +22,8 @@ // // -// $Id: Em1TrackingAction.cc,v 1.7 2001/10/26 12:51:26 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em1TrackingAction.cc,v 1.8 2002/05/31 17:10:35 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -36,7 +36,7 @@ #include "G4Track.hh" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,8 +59,8 @@ void Em1TrackingAction::PostUserTrackingAction(const G4Track* aTrack) {runAction->CountTraks0(1); runAction->CountSteps0(nbSteps);} else {runAction->CountTraks1(1); runAction->CountSteps1(nbSteps); #ifndef G4NOHIST - runAction->GetHisto(0)->accumulate(Trleng); - runAction->GetHisto(1)->accumulate((float)nbSteps); + runAction->GetHisto(0)->fill(Trleng); + runAction->GetHisto(1)->fill((float)nbSteps); #endif } } diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc b/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc index b12acf90c2..93e301f0dc 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: Em1VisManager.cc,v 1.6 2001/11/15 13:09:44 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/electromagnetic/TestEm10/History b/examples/extended/electromagnetic/TestEm10/History index 719cc42c83..bb1c99bcac 100644 --- a/examples/extended/electromagnetic/TestEm10/History +++ b/examples/extended/electromagnetic/TestEm10/History @@ -1,4 +1,4 @@ -$Id: History,v 1.4 2001/11/27 17:01:17 gcosmo Exp $ +$Id: History,v 1.5 2002/06/11 16:12:58 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,9 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +11 Jun. 2002 Vladimir Grichine (testem10-V04-00-00) +- new TestEm10.in and TestEm10.largr_N.in 27 Nov. 2001 Gabriele Cosmo (TestEm10-V03-02-01) - Corrected README. diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.cc b/examples/extended/electromagnetic/TestEm10/TestEm10.cc index 86c7eda015..584e688809 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.in b/examples/extended/electromagnetic/TestEm10/TestEm10.in index 635c4ad915..ee40637fa1 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.in +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.in @@ -5,38 +5,8 @@ /run/initialize /run/particle/dumpCutValues /gun/particle e- -/gun/energy 9000.0 MeV - -# Test G4FoamXrayTRmodel -/XTRdetector/setModel 1 +/gun/energy 9 GeV /run/beamOn 1000 -# Test G4FoamXTRdEdx -/XTRdetector/setModel 2 -/run/beamOn 10 -# Test G4GamDistrXrayTRmodel -/XTRdetector/setModel 3 -/run/beamOn 10 -# Test G4GamDistrXTRdEdx -/XTRdetector/setModel 4 -/run/beamOn 10 -# Test G4IrregularXrayTRmodel -/XTRdetector/setModel 5 -/run/beamOn 10 -# Test G4IrregularXTRdEdx -/XTRdetector/setModel 6 -/run/beamOn 10 -# Test G4PlateIrrGasXrayTRmodel -/XTRdetector/setModel 7 -/run/beamOn 10 -# Test G4PlateIrrGasXTRdEdx -/XTRdetector/setModel 8 -/run/beamOn 10 -# Test G4RegularXrayTRmodel -/XTRdetector/setModel 9 -/run/beamOn 10 -# Test G4RegularXTRdEdx -/XTRdetector/setModel 10 -/run/beamOn 10 diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in index 4d640b8468..4f878cec58 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.in @@ -1,42 +1,13 @@ # -# Macro file 'TestEm10.large_N.in' for testing "TestEm10" +# Macro file 'TestEm10.in' for testing "TestEm10" # # /run/initialize /run/particle/dumpCutValues /gun/particle e- -/gun/energy 9000.0 MeV - -# Test G4FoamXrayTRmodel -/XTRdetector/setModel 1 -/run/beamOn 1000 -# Test G4FoamXTRdEdx -/XTRdetector/setModel 2 -/run/beamOn 1000 -# Test G4GamDistrXrayTRmodel -/XTRdetector/setModel 3 -/run/beamOn 1000 -# Test G4GamDistrXTRdEdx -/XTRdetector/setModel 4 -/run/beamOn 1000 -# Test G4IrregularXrayTRmodel -/XTRdetector/setModel 5 -/run/beamOn 1000 -# Test G4IrregularXTRdEdx -/XTRdetector/setModel 6 -/run/beamOn 1000 -# Test G4PlateIrrGasXrayTRmodel -/XTRdetector/setModel 7 -/run/beamOn 1000 -# Test G4PlateIrrGasXTRdEdx -/XTRdetector/setModel 8 -/run/beamOn 1000 -# Test G4RegularXrayTRmodel -/XTRdetector/setModel 9 -/run/beamOn 1000 -# Test G4RegularXTRdEdx -/XTRdetector/setModel 10 -/run/beamOn 1000 +/gun/energy 9 GeV +/run/beamOn 10000 + diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out index 8a08817201..88f2a6ea6d 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-00 $ + Geant4 version $Name: geant4-04-01 $ (29-Jun-2001) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out index 645a3a82f0..bf0e8931c9 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -16,13 +16,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) - FukuiRenderer (DAWN) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - OpenGLImmediateXm (OGLIXm) - OpenGLStoredXm (OGLSXm) -***** Table : Nb of materials = 28 ***** +***** Table : Nb of materials = 32 ***** Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm ---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % @@ -54,7 +49,7 @@ Current available graphics systems are: ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 45.47 % Abundance 45.45 % ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 6.11 % Abundance 36.36 % - Material: Polypropelene density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.167 cm + Material: CH2 density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.167 cm ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 25.16 % Abundance 66.67 % ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 74.84 % Abundance 33.33 % @@ -135,31 +130,108 @@ Current available graphics systems are: ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 1.79 % Abundance 13.38 % ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 1.21 % Abundance 53.51 % + Material: Ar7CH4 density: 1.709 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 115.488 m + ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 97.10 % Abundance 62.75 % + ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 1.73 % Abundance 7.45 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 1.17 % Abundance 29.80 % + + Material: Kr7CH4 density: 3.491 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 32.856 m + ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 98.60 % Abundance 62.82 % + ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 0.84 % Abundance 7.44 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.56 % Abundance 29.75 % + + Material: XeArCH4 density: 3.655 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 26.879 m + ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 76.14 % Abundance 33.82 % + ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 0.68 % Abundance 6.60 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.46 % Abundance 26.42 % + ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 22.72 % Abundance 33.17 % + + Material: radiatorMat density: 24.058 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 11.575 m + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 47.08 % Abundance 18.25 % + ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 43.07 % Abundance 44.43 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 5.79 % Abundance 35.54 % + ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 3.99 % Abundance 1.77 % + ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 0.07 % Abundance 0.01 % - The WORLD is made of 800mm of He, the transverse size (R) of the world is 200 mm. - The ABSORBER is made of 30mm of Xe10CH4, the transverse size (R) is 100 mm. + + The WORLD is made of 2000mm of Air, the transverse size (R) of the world is 200 mm. + The ABSORBER is made of 15mm of Ar7CH4, the transverse size (R) is 100 mm. Z position of the (middle of the) absorber 360 mm. -zRad = 75.4 mm -radThick = 60.96 mm -fFoilNumber = 300 -fRadiatorMat = Li -WorldMaterial = He -zModule = 50.04 mm -50.04 mm 50.206 mm 50.372 mm 50.538 mm 50.704 mm 50.87 mm 51.036 mm 51.202 mm 51.368 mm 51.534 mm 51.7 mm 51.866 mm 52.032 mm 52.198 mm 52.364 mm 52.53 mm 52.696 mm 52.862 mm 53.028 mm 53.194 mm 53.36 mm 53.526 mm 53.692 mm 53.858 mm 54.024 mm 54.19 mm 54.356 mm 54.522 mm 54.688 mm 54.854 mm 55.02 mm 55.186 mm 55.352 mm 55.518 mm 55.684 mm 55.85 mm 56.016 mm 56.182 mm 56.348 mm 56.514 mm 56.68 mm 56.846 mm 57.012 mm 57.178 mm 57.344 mm 57.51 mm 57.676 mm 57.842 mm 58.008 mm 58.174 mm 58.34 mm 58.506 mm 58.672 mm 58.838 mm 59.004 mm 59.17 mm 59.336 mm 59.502 mm 59.668 mm 59.834 mm 60 mm 60.166 mm 60.332 mm 60.498 mm 60.664 mm 60.83 mm 60.996 mm 61.162 mm 61.328 mm 61.494 mm 61.66 mm 61.826 mm 61.992 mm 62.158 mm 62.324 mm 62.49 mm 62.656 mm 62.822 mm 62.988 mm 63.154 mm 63.32 mm 63.486 mm 63.652 mm 63.818 mm 63.984 mm 64.15 mm 64.316 mm 64.482 mm 64.648 mm 64.814 mm 64.98 mm 65.146 mm 65.312 mm 65.478 mm 65.644 mm 65.81 mm 65.976 mm 66.142 mm 66.308 mm 66.474 mm 66.64 mm 66.806 mm 66.972 mm 67.138 mm 67.304 mm 67.47 mm 67.636 mm 67.802 mm 67.968 mm 68.134 mm 68.3 mm 68.466 mm 68.632 mm 68.798 mm 68.964 mm 69.13 mm 69.296 mm 69.462 mm 69.628 mm 69.794 mm 69.96 mm 70.126 mm 70.292 mm 70.458 mm 70.624 mm 70.79 mm 70.956 mm 71.122 mm 71.288 mm 71.454 mm 71.62 mm 71.786 mm 71.952 mm 72.118 mm 72.284 mm 72.45 mm 72.616 mm 72.782 mm 72.948 mm 73.114 mm 73.28 mm 73.446 mm 73.612 mm 73.778 mm 73.944 mm 74.11 mm 74.276 mm 74.442 mm 74.608 mm 74.774 mm 74.94 mm 75.106 mm 75.272 mm 75.438 mm 75.604 mm 75.77 mm 75.936 mm 76.102 mm 76.268 mm 76.434 mm 76.6 mm 76.766 mm 76.932 mm 77.098 mm 77.264 mm 77.43 mm 77.596 mm 77.762 mm 77.928 mm 78.094 mm 78.26 mm 78.426 mm 78.592 mm 78.758 mm 78.924 mm 79.09 mm 79.256 mm 79.422 mm 79.588 mm 79.754 mm 79.92 mm 80.086 mm 80.252 mm 80.418 mm 80.584 mm 80.75 mm 80.916 mm 81.082 mm 81.248 mm 81.414 mm 81.58 mm 81.746 mm 81.912 mm 82.078 mm 82.244 mm 82.41 mm 82.576 mm 82.742 mm 82.908 mm 83.074 mm 83.24 mm 83.406 mm 83.572 mm 83.738 mm 83.904 mm 84.07 mm 84.236 mm 84.402 mm 84.568 mm 84.734 mm 84.9 mm 85.066 mm 85.232 mm 85.398 mm 85.564 mm 85.73 mm 85.896 mm 86.062 mm 86.228 mm 86.394 mm 86.56 mm 86.726 mm 86.892 mm 87.058 mm 87.224 mm 87.39 mm 87.556 mm 87.722 mm 87.888 mm 88.054 mm 88.22 mm 88.386 mm 88.552 mm 88.718 mm 88.884 mm 89.05 mm 89.216 mm 89.382 mm 89.548 mm 89.714 mm 89.88 mm 90.046 mm 90.212 mm 90.378 mm 90.544 mm 90.71 mm 90.876 mm 91.042 mm 91.208 mm 91.374 mm 91.54 mm 91.706 mm 91.872 mm 92.038 mm 92.204 mm 92.37 mm 92.536 mm 92.702 mm 92.868 mm 93.034 mm 93.2 mm 93.366 mm 93.532 mm 93.698 mm 93.864 mm 94.03 mm 94.196 mm 94.362 mm 94.528 mm 94.694 mm 94.86 mm 95.026 mm 95.192 mm 95.358 mm 95.524 mm 95.69 mm 95.856 mm 96.022 mm 96.188 mm 96.354 mm 96.52 mm 96.686 mm 96.852 mm 97.018 mm 97.184 mm 97.35 mm 97.516 mm 97.682 mm 97.848 mm 98.014 mm 98.18 mm 98.346 mm 98.512 mm 98.678 mm 98.844 mm 99.01 mm 99.176 mm 99.342 mm 99.508 mm 99.674 mm -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 0 -Warning: No parametrisation model was defined? -Em10PhysicsList::SetCuts:CutLength : 1 mm +zRad = 138.359 mm +radThick = 76.718 mm +fFoilNumber = 100 +fRadiatorMat = radiatorMat +WorldMaterial = Air +zModule = 100 mm +zAbsorber = 200.309 mm +the number of TR radiator plates = 100 +total radiator thickness = 7.747 cm +plate material = Mylar +gas material = Air +plate plasma energy = 29.55 eV +gas plasma energy = 0.731967 eV +Regular X-ray TR radiator EM process is called +0 fGamma = 107.6 sumE = 0.1933 +1 fGamma = 123.4 sumE = 0.2553 +2 fGamma = 141.5 sumE = 0.3303 +3 fGamma = 162.3 sumE = 0.4171 +4 fGamma = 186.2 sumE = 0.5041 +5 fGamma = 213.7 sumE = 0.5873 +6 fGamma = 245.2 sumE = 0.6919 +7 fGamma = 281.3 sumE = 0.8242 +8 fGamma = 322.9 sumE = 0.914 +9 fGamma = 370.5 sumE = 1.058 +10 fGamma = 425.3 sumE = 1.179 +11 fGamma = 488.2 sumE = 1.277 +12 fGamma = 560.3 sumE = 1.423 +13 fGamma = 643.2 sumE = 1.53 +14 fGamma = 738.3 sumE = 1.64 +15 fGamma = 847.6 sumE = 1.77 +16 fGamma = 973 sumE = 1.943 +17 fGamma = 1117 sumE = 2.024 +18 fGamma = 1282 sumE = 2.251 +19 fGamma = 1472 sumE = 2.413 +20 fGamma = 1690 sumE = 2.628 +21 fGamma = 1940 sumE = 2.842 +22 fGamma = 2228 sumE = 2.938 +23 fGamma = 2558 sumE = 3.031 +24 fGamma = 2936 sumE = 3.432 +25 fGamma = 3371 sumE = 3.327 +26 fGamma = 3871 sumE = 3.48 +27 fGamma = 4444 sumE = 3.561 +28 fGamma = 5102 sumE = 3.472 +29 fGamma = 5858 sumE = 3.698 +30 fGamma = 6726 sumE = 3.649 +31 fGamma = 7722 sumE = 3.826 +32 fGamma = 8866 sumE = 3.921 +33 fGamma = 1.018e+04 sumE = 4.137 +34 fGamma = 1.169e+04 sumE = 4.02 +35 fGamma = 1.342e+04 sumE = 4.187 +36 fGamma = 1.541e+04 sumE = 4.157 +37 fGamma = 1.769e+04 sumE = 4.105 +38 fGamma = 2.031e+04 sumE = 4.082 +39 fGamma = 2.332e+04 sumE = 4.096 +40 fGamma = 2.677e+04 sumE = 4.138 +41 fGamma = 3.074e+04 sumE = 4.222 +42 fGamma = 3.529e+04 sumE = 4.274 +43 fGamma = 4.052e+04 sumE = 4.305 +44 fGamma = 4.652e+04 sumE = 4.324 +45 fGamma = 5.342e+04 sumE = 4.336 +46 fGamma = 6.133e+04 sumE = 4.341 +47 fGamma = 7.042e+04 sumE = 4.343 +48 fGamma = 8.085e+04 sumE = 4.344 +49 fGamma = 9.283e+04 sumE = 4.343 -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. +total time for build X-ray TR energy loss tables = 74.72 s + +phot: Total cross sections from Sandia parametrisation. +Em10PhysicsList::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 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 @@ -180,7 +252,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)=14.35 s +total time(SetCuts)=16.33 s ============= The cut Energy ============================== gamma e- Cut in range @@ -192,7 +264,7 @@ Cut in range Be 1 mm 1 mm Mylar 1 mm 1 mm Kapton 1 mm 1 mm - Polypropelene 1 mm 1 mm + CH2 1 mm 1 mm He 1 mm 1 mm Ne 1 mm 1 mm Argon 1 mm 1 mm @@ -212,6 +284,10 @@ Cut in range Xe10CH4 1 mm 1 mm Xe5CH4 1 mm 1 mm Xe20CH4 1 mm 1 mm + Ar7CH4 1 mm 1 mm + Kr7CH4 1 mm 1 mm + XeArCH4 1 mm 1 mm + radiatorMat 1 mm 1 mm Cut in energy Aluminium 6.89 keV 597 keV TRT_CH2 2.78 keV 515 keV @@ -221,7 +297,7 @@ Cut in energy Be 1.99 keV 466 keV Mylar 3.48 keV 541 keV Kapton 3.48 keV 541 keV - Polypropelene 2.75 keV 502 keV + CH2 2.75 keV 502 keV He 990 eV 990 eV Ne 990 eV 990 eV Argon 990 eV 990 eV @@ -241,67 +317,11 @@ Cut in energy Xe10CH4 990 eV 1.74 keV Xe5CH4 990 eV 1.83 keV Xe20CH4 990 eV 1.54 keV + Ar7CH4 990 eV 990 eV + Kr7CH4 990 eV 996 eV + XeArCH4 990 eV 1.04 keV + radiatorMat 990 eV 43.9 keV =================================================== -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 1 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Foam X-ray TR radiator model is called -0 fGamma = 107.6 sumE = 0.004254 -1 fGamma = 123.4 sumE = 0.006653 -2 fGamma = 141.5 sumE = 0.01023 -3 fGamma = 162.3 sumE = 0.01548 -4 fGamma = 186.2 sumE = 0.02297 -5 fGamma = 213.7 sumE = 0.0336 -6 fGamma = 245.2 sumE = 0.04841 -7 fGamma = 281.3 sumE = 0.06867 -8 fGamma = 322.9 sumE = 0.09587 -9 fGamma = 370.5 sumE = 0.1317 -10 fGamma = 425.3 sumE = 0.1778 -11 fGamma = 488.2 sumE = 0.2359 -12 fGamma = 560.3 sumE = 0.3073 -13 fGamma = 643.2 sumE = 0.393 -14 fGamma = 738.3 sumE = 0.4929 -15 fGamma = 847.6 sumE = 0.6058 -16 fGamma = 973 sumE = 0.7292 -17 fGamma = 1117 sumE = 0.859 -18 fGamma = 1282 sumE = 0.9897 -19 fGamma = 1472 sumE = 1.115 -20 fGamma = 1690 sumE = 1.227 -21 fGamma = 1940 sumE = 1.319 -22 fGamma = 2228 sumE = 1.386 -23 fGamma = 2558 sumE = 1.422 -24 fGamma = 2936 sumE = 1.424 -25 fGamma = 3371 sumE = 1.393 -26 fGamma = 3871 sumE = 1.329 -27 fGamma = 4444 sumE = 1.237 -28 fGamma = 5102 sumE = 1.15 -29 fGamma = 5858 sumE = 1.208 -30 fGamma = 6726 sumE = 1.257 -31 fGamma = 7722 sumE = 1.298 -32 fGamma = 8866 sumE = 1.333 -33 fGamma = 1.018e+04 sumE = 1.362 -34 fGamma = 1.169e+04 sumE = 1.385 -35 fGamma = 1.342e+04 sumE = 1.405 -36 fGamma = 1.541e+04 sumE = 1.421 -37 fGamma = 1.769e+04 sumE = 1.434 -38 fGamma = 2.031e+04 sumE = 1.445 -39 fGamma = 2.332e+04 sumE = 1.454 -40 fGamma = 2.677e+04 sumE = 1.461 -41 fGamma = 3.074e+04 sumE = 1.468 -42 fGamma = 3.529e+04 sumE = 1.473 -43 fGamma = 4.052e+04 sumE = 1.477 -44 fGamma = 4.652e+04 sumE = 1.481 -45 fGamma = 5.342e+04 sumE = 1.485 -46 fGamma = 6.133e+04 sumE = 1.488 -47 fGamma = 7.042e+04 sumE = 1.49 -48 fGamma = 8.085e+04 sumE = 1.493 -49 fGamma = 9.283e+04 sumE = 1.495 - -total time for build X-ray TR tables = 26.38 s ### Run 0 start. --------- Ranecu engine status --------- @@ -312,837 +332,25 @@ total time for build X-ray TR tables = 26.38 s ---> Begin of Event: 0 ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=50.6091 +- 0.713142 mm + mean charged track length in absorber=23.6609 +- 0.943952 mm - mean energy deposit in absorber=NaN +- 0 MeV + mean energy deposit in absorber=0.00667686 +- 0.000191481 MeV - mean number of steps in absorber (charged) =1.945 +- 0.0304627 - mean number of steps in absorber (neutral) =1.394 +- 0.0379047 + 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 charged secondaries = 0.944 +- 0.0304773 + mean number of charged secondaries = 0.241 +- 0.0155216 mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.944 and e+s =0 + mean number of e-s =0.241 and e+s =0 -(number) transmission coeff=0.584 reflection coeff=0 +(number) transmission coeff=0.191 reflection coeff=0.008 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 9378578, 64175451 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 2 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Foam XTR dE/dx model is called -0 fGamma = 107.6 sumE = 0.1086 -1 fGamma = 123.4 sumE = 0.158 -2 fGamma = 141.5 sumE = 0.224 -3 fGamma = 162.3 sumE = 0.3095 -4 fGamma = 186.2 sumE = 0.4155 -5 fGamma = 213.7 sumE = 0.546 -6 fGamma = 245.2 sumE = 0.7026 -7 fGamma = 281.3 sumE = 0.8863 -8 fGamma = 322.9 sumE = 1.096 -9 fGamma = 370.5 sumE = 1.331 -10 fGamma = 425.3 sumE = 1.587 -11 fGamma = 488.2 sumE = 1.857 -12 fGamma = 560.3 sumE = 2.133 -13 fGamma = 643.2 sumE = 2.406 -14 fGamma = 738.3 sumE = 2.664 -15 fGamma = 847.6 sumE = 2.895 -16 fGamma = 973 sumE = 3.087 -17 fGamma = 1117 sumE = 3.23 -18 fGamma = 1282 sumE = 3.315 -19 fGamma = 1472 sumE = 3.338 -20 fGamma = 1690 sumE = 3.296 -21 fGamma = 1940 sumE = 3.191 -22 fGamma = 2228 sumE = 3.028 -23 fGamma = 2558 sumE = 2.816 -24 fGamma = 2936 sumE = 2.567 -25 fGamma = 3371 sumE = 2.297 -26 fGamma = 3871 sumE = 2.018 -27 fGamma = 4444 sumE = 1.745 -28 fGamma = 5102 sumE = 1.532 -29 fGamma = 5858 sumE = 1.594 -30 fGamma = 6726 sumE = 1.647 -31 fGamma = 7722 sumE = 1.691 -32 fGamma = 8866 sumE = 1.728 -33 fGamma = 1.018e+04 sumE = 1.759 -34 fGamma = 1.169e+04 sumE = 1.784 -35 fGamma = 1.342e+04 sumE = 1.805 -36 fGamma = 1.541e+04 sumE = 1.822 -37 fGamma = 1.769e+04 sumE = 1.836 -38 fGamma = 2.031e+04 sumE = 1.847 -39 fGamma = 2.332e+04 sumE = 1.856 -40 fGamma = 2.677e+04 sumE = 1.864 -41 fGamma = 3.074e+04 sumE = 1.871 -42 fGamma = 3.529e+04 sumE = 1.876 -43 fGamma = 4.052e+04 sumE = 1.881 -44 fGamma = 4.652e+04 sumE = 1.885 -45 fGamma = 5.342e+04 sumE = 1.889 -46 fGamma = 6.133e+04 sumE = 1.892 -47 fGamma = 7.042e+04 sumE = 1.895 -48 fGamma = 8.085e+04 sumE = 1.897 -49 fGamma = 9.283e+04 sumE = 1.899 - -total time for build X-ray TR dE/dx tables = 58.94 s -### Run 1 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 9378578, 64175451 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=71.2799 +- 12.9164 mm - - mean energy deposit in absorber=0.0384702 +- 0.0076507 MeV - - mean number of steps in absorber (charged) =2.6 +- 0.473286 - mean number of steps in absorber (neutral) =1.7 +- 0.548635 - - mean number of charged secondaries = 1.6 +- 0.473286 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =1.6 and e+s =0 - -(number) transmission coeff=0.7 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1116992281, 882134091 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 3 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Gammma distributed X-ray TR radiator model is called -fAlphaPlate = 160 ; fAlphaGas = 160 -0 fGamma = 107.6 sumE = 0.004089 -1 fGamma = 123.4 sumE = 0.006404 -2 fGamma = 141.5 sumE = 0.009919 -3 fGamma = 162.3 sumE = 0.01502 -4 fGamma = 186.2 sumE = 0.02226 -5 fGamma = 213.7 sumE = 0.03343 -6 fGamma = 245.2 sumE = 0.04775 -7 fGamma = 281.3 sumE = 0.06558 -8 fGamma = 322.9 sumE = 0.09347 -9 fGamma = 370.5 sumE = 0.1394 -10 fGamma = 425.3 sumE = 0.1904 -11 fGamma = 488.2 sumE = 0.2455 -12 fGamma = 560.3 sumE = 0.3134 -13 fGamma = 643.2 sumE = 0.3836 -14 fGamma = 738.3 sumE = 0.4518 -15 fGamma = 847.6 sumE = 0.5229 -16 fGamma = 973 sumE = 0.7238 -17 fGamma = 1117 sumE = 1.225 -18 fGamma = 1282 sumE = 1.713 -19 fGamma = 1472 sumE = 2.101 -20 fGamma = 1690 sumE = 2.378 -21 fGamma = 1940 sumE = 2.628 -22 fGamma = 2228 sumE = 2.736 -23 fGamma = 2558 sumE = 2.798 -24 fGamma = 2936 sumE = 2.385 -25 fGamma = 3371 sumE = 2.242 -26 fGamma = 3871 sumE = 3.371 -27 fGamma = 4444 sumE = 2.766 -28 fGamma = 5102 sumE = 1.331 -29 fGamma = 5858 sumE = 1.311 -30 fGamma = 6726 sumE = 1.298 -31 fGamma = 7722 sumE = 1.289 -32 fGamma = 8866 sumE = 1.282 -33 fGamma = 1.018e+04 sumE = 1.278 -34 fGamma = 1.169e+04 sumE = 1.275 -35 fGamma = 1.342e+04 sumE = 1.274 -36 fGamma = 1.541e+04 sumE = 1.274 -37 fGamma = 1.769e+04 sumE = 1.274 -38 fGamma = 2.031e+04 sumE = 1.275 -39 fGamma = 2.332e+04 sumE = 1.276 -40 fGamma = 2.677e+04 sumE = 1.278 -41 fGamma = 3.074e+04 sumE = 1.28 -42 fGamma = 3.529e+04 sumE = 1.282 -43 fGamma = 4.052e+04 sumE = 1.284 -44 fGamma = 4.652e+04 sumE = 1.285 -45 fGamma = 5.342e+04 sumE = 1.287 -46 fGamma = 6.133e+04 sumE = 1.289 -47 fGamma = 7.042e+04 sumE = 1.291 -48 fGamma = 8.085e+04 sumE = 1.293 -49 fGamma = 9.283e+04 sumE = 1.294 - -total time for build X-ray TR tables = 43.84 s -### Run 2 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1116992281, 882134091 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=50.5929 +- 7.71991 mm - - mean energy deposit in absorber=0.0357231 +- 0.00517527 MeV - - mean number of steps in absorber (charged) =1.9 +- 0.330151 - mean number of steps in absorber (neutral) =1.7 +- 0.317805 - - mean number of charged secondaries = 0.9 +- 0.330151 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =0.9 and e+s =0 - -(number) transmission coeff=0.5 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 2105126488, 636122787 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 4 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Gammma distributed X-ray TR radiator model is called -fAlphaPlate = 160 ; fAlphaGas = 160 -0 fGamma = 107.6 sumE = 0.1089 -1 fGamma = 123.4 sumE = 0.158 -2 fGamma = 141.5 sumE = 0.2245 -3 fGamma = 162.3 sumE = 0.3112 -4 fGamma = 186.2 sumE = 0.4152 -5 fGamma = 213.7 sumE = 0.5535 -6 fGamma = 245.2 sumE = 0.7168 -7 fGamma = 281.3 sumE = 0.8888 -8 fGamma = 322.9 sumE = 1.081 -9 fGamma = 370.5 sumE = 1.349 -10 fGamma = 425.3 sumE = 1.649 -11 fGamma = 488.2 sumE = 1.992 -12 fGamma = 560.3 sumE = 2.431 -13 fGamma = 643.2 sumE = 2.862 -14 fGamma = 738.3 sumE = 3.207 -15 fGamma = 847.6 sumE = 3.475 -16 fGamma = 973 sumE = 3.784 -17 fGamma = 1117 sumE = 4.407 -18 fGamma = 1282 sumE = 4.976 -19 fGamma = 1472 sumE = 5.448 -20 fGamma = 1690 sumE = 5.494 -21 fGamma = 1940 sumE = 5.421 -22 fGamma = 2228 sumE = 5.358 -23 fGamma = 2558 sumE = 4.689 -24 fGamma = 2936 sumE = 4.244 -25 fGamma = 3371 sumE = 4.003 -26 fGamma = 3871 sumE = 3.865 -27 fGamma = 4444 sumE = 3.706 -28 fGamma = 5102 sumE = 1.794 -29 fGamma = 5858 sumE = 1.771 -30 fGamma = 6726 sumE = 1.755 -31 fGamma = 7722 sumE = 1.744 -32 fGamma = 8866 sumE = 1.737 -33 fGamma = 1.018e+04 sumE = 1.732 -34 fGamma = 1.169e+04 sumE = 1.729 -35 fGamma = 1.342e+04 sumE = 1.728 -36 fGamma = 1.541e+04 sumE = 1.727 -37 fGamma = 1.769e+04 sumE = 1.728 -38 fGamma = 2.031e+04 sumE = 1.728 -39 fGamma = 2.332e+04 sumE = 1.73 -40 fGamma = 2.677e+04 sumE = 1.731 -41 fGamma = 3.074e+04 sumE = 1.733 -42 fGamma = 3.529e+04 sumE = 1.735 -43 fGamma = 4.052e+04 sumE = 1.737 -44 fGamma = 4.652e+04 sumE = 1.739 -45 fGamma = 5.342e+04 sumE = 1.741 -46 fGamma = 6.133e+04 sumE = 1.743 -47 fGamma = 7.042e+04 sumE = 1.744 -48 fGamma = 8.085e+04 sumE = 1.746 -49 fGamma = 9.283e+04 sumE = 1.748 - -total time for build X-ray TR dE/dx tables = 84.27 s -### Run 3 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 2105126488, 636122787 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=52.8517 +- 4.39136 mm - - mean energy deposit in absorber=0.0339345 +- 0.00583443 MeV - - mean number of steps in absorber (charged) =2 +- 0.2 - mean number of steps in absorber (neutral) =1.3 +- 0.317805 - - mean number of charged secondaries = 1 +- 0.2 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =1 and e+s =0 - -(number) transmission coeff=0.8 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 758223803, 2021217626 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 5 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Irregular X-ray TR model is called -0 fGamma = 107.6 sumE = 0.004258 -1 fGamma = 123.4 sumE = 0.006661 -2 fGamma = 141.5 sumE = 0.01025 -3 fGamma = 162.3 sumE = 0.01552 -4 fGamma = 186.2 sumE = 0.02305 -5 fGamma = 213.7 sumE = 0.03376 -6 fGamma = 245.2 sumE = 0.04873 -7 fGamma = 281.3 sumE = 0.0693 -8 fGamma = 322.9 sumE = 0.09709 -9 fGamma = 370.5 sumE = 0.1339 -10 fGamma = 425.3 sumE = 0.182 -11 fGamma = 488.2 sumE = 0.2435 -12 fGamma = 560.3 sumE = 0.3207 -13 fGamma = 643.2 sumE = 0.4161 -14 fGamma = 738.3 sumE = 0.5318 -15 fGamma = 847.6 sumE = 0.6697 -16 fGamma = 973 sumE = 0.8314 -17 fGamma = 1117 sumE = 1.018 -18 fGamma = 1282 sumE = 1.229 -19 fGamma = 1472 sumE = 1.466 -20 fGamma = 1690 sumE = 1.727 -21 fGamma = 1940 sumE = 2.011 -22 fGamma = 2228 sumE = 2.316 -23 fGamma = 2558 sumE = 2.64 -24 fGamma = 2936 sumE = 2.98 -25 fGamma = 3371 sumE = 3.332 -26 fGamma = 3871 sumE = 3.695 -27 fGamma = 4444 sumE = 4.064 -28 fGamma = 5102 sumE = 4.478 -29 fGamma = 5858 sumE = 5.169 -30 fGamma = 6726 sumE = 5.901 -31 fGamma = 7722 sumE = 6.671 -32 fGamma = 8866 sumE = 7.473 -33 fGamma = 1.018e+04 sumE = 8.302 -34 fGamma = 1.169e+04 sumE = 9.152 -35 fGamma = 1.342e+04 sumE = 10.02 -36 fGamma = 1.541e+04 sumE = 10.89 -37 fGamma = 1.769e+04 sumE = 11.76 -38 fGamma = 2.031e+04 sumE = 12.63 -39 fGamma = 2.332e+04 sumE = 13.49 -40 fGamma = 2.677e+04 sumE = 14.33 -41 fGamma = 3.074e+04 sumE = 15.14 -42 fGamma = 3.529e+04 sumE = 15.93 -43 fGamma = 4.052e+04 sumE = 16.69 -44 fGamma = 4.652e+04 sumE = 17.41 -45 fGamma = 5.342e+04 sumE = 18.1 -46 fGamma = 6.133e+04 sumE = 18.74 -47 fGamma = 7.042e+04 sumE = 19.34 -48 fGamma = 8.085e+04 sumE = 19.9 -49 fGamma = 9.283e+04 sumE = 20.41 - -total time for build X-ray TR tables = 5.52 s -### Run 4 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 758223803, 2021217626 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=166.358 +- 15.4814 mm - - mean energy deposit in absorber=0.0991313 +- 0.0185813 MeV - - mean number of steps in absorber (charged) =7.3 +- 0.707814 - mean number of steps in absorber (neutral) =9.9 +- 1.13534 - - mean number of charged secondaries = 6.3 +- 0.707814 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =6.3 and e+s =0 - -(number) transmission coeff=1 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1500585225, 2092176073 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 6 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Irregular X-ray TR dE/dx model is called -0 fGamma = 107.6 sumE = 0.1088 -1 fGamma = 123.4 sumE = 0.1582 -2 fGamma = 141.5 sumE = 0.2245 -3 fGamma = 162.3 sumE = 0.3105 -4 fGamma = 186.2 sumE = 0.4174 -5 fGamma = 213.7 sumE = 0.5494 -6 fGamma = 245.2 sumE = 0.7086 -7 fGamma = 281.3 sumE = 0.8967 -8 fGamma = 322.9 sumE = 1.114 -9 fGamma = 370.5 sumE = 1.361 -10 fGamma = 425.3 sumE = 1.636 -11 fGamma = 488.2 sumE = 1.936 -12 fGamma = 560.3 sumE = 2.26 -13 fGamma = 643.2 sumE = 2.605 -14 fGamma = 738.3 sumE = 2.966 -15 fGamma = 847.6 sumE = 3.34 -16 fGamma = 973 sumE = 3.725 -17 fGamma = 1117 sumE = 4.117 -18 fGamma = 1282 sumE = 4.513 -19 fGamma = 1472 sumE = 4.91 -20 fGamma = 1690 sumE = 5.305 -21 fGamma = 1940 sumE = 5.696 -22 fGamma = 2228 sumE = 6.079 -23 fGamma = 2558 sumE = 6.452 -24 fGamma = 2936 sumE = 6.811 -25 fGamma = 3371 sumE = 7.152 -26 fGamma = 3871 sumE = 7.472 -27 fGamma = 4444 sumE = 7.768 -28 fGamma = 5102 sumE = 8.144 -29 fGamma = 5858 sumE = 9.149 -30 fGamma = 6726 sumE = 10.17 -31 fGamma = 7722 sumE = 11.21 -32 fGamma = 8866 sumE = 12.26 -33 fGamma = 1.018e+04 sumE = 13.31 -34 fGamma = 1.169e+04 sumE = 14.35 -35 fGamma = 1.342e+04 sumE = 15.38 -36 fGamma = 1.541e+04 sumE = 16.4 -37 fGamma = 1.769e+04 sumE = 17.4 -38 fGamma = 2.031e+04 sumE = 18.37 -39 fGamma = 2.332e+04 sumE = 19.31 -40 fGamma = 2.677e+04 sumE = 20.22 -41 fGamma = 3.074e+04 sumE = 21.09 -42 fGamma = 3.529e+04 sumE = 21.93 -43 fGamma = 4.052e+04 sumE = 22.72 -44 fGamma = 4.652e+04 sumE = 23.47 -45 fGamma = 5.342e+04 sumE = 24.18 -46 fGamma = 6.133e+04 sumE = 24.84 -47 fGamma = 7.042e+04 sumE = 25.46 -48 fGamma = 8.085e+04 sumE = 26.03 -49 fGamma = 9.283e+04 sumE = 26.55 - -total time for build X-ray TR dE/dx tables = 11.22 s -### Run 5 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1500585225, 2092176073 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=233.298 +- 26.513 mm - - mean energy deposit in absorber=NaN +- 0 MeV - - mean number of steps in absorber (charged) =10.3 +- 1.08674 - mean number of steps in absorber (neutral) =12.3 +- 1.29653 - - mean number of charged secondaries = 9.1 +- 1.0812 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =9.1 and e+s =0 - -(number) transmission coeff=1 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 2116519781, 67896379 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 7 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -PlateIrrGas X-ray TR radiator model is called -0 fGamma = 107.6 sumE = 0.004086 -1 fGamma = 123.4 sumE = 0.006405 -2 fGamma = 141.5 sumE = 0.00993 -3 fGamma = 162.3 sumE = 0.01502 -4 fGamma = 186.2 sumE = 0.02208 -5 fGamma = 213.7 sumE = 0.0339 -6 fGamma = 245.2 sumE = 0.0481 -7 fGamma = 281.3 sumE = 0.06463 -8 fGamma = 322.9 sumE = 0.09286 -9 fGamma = 370.5 sumE = 0.1389 -10 fGamma = 425.3 sumE = 0.1959 -11 fGamma = 488.2 sumE = 0.2531 -12 fGamma = 560.3 sumE = 0.306 -13 fGamma = 643.2 sumE = 0.365 -14 fGamma = 738.3 sumE = 0.4427 -15 fGamma = 847.6 sumE = 0.5631 -16 fGamma = 973 sumE = 0.7273 -17 fGamma = 1117 sumE = 0.9532 -18 fGamma = 1282 sumE = 1.258 -19 fGamma = 1472 sumE = 1.602 -20 fGamma = 1690 sumE = 1.962 -21 fGamma = 1940 sumE = 2.373 -22 fGamma = 2228 sumE = 2.865 -23 fGamma = 2558 sumE = 3.425 -24 fGamma = 2936 sumE = 4.001 -25 fGamma = 3371 sumE = 4.542 -26 fGamma = 3871 sumE = 5.012 -27 fGamma = 4444 sumE = 5.397 -28 fGamma = 5102 sumE = 5.758 -29 fGamma = 5858 sumE = 6.464 -30 fGamma = 6726 sumE = 7.176 -31 fGamma = 7722 sumE = 7.888 -32 fGamma = 8866 sumE = 8.596 -33 fGamma = 1.018e+04 sumE = 9.293 -34 fGamma = 1.169e+04 sumE = 9.974 -35 fGamma = 1.342e+04 sumE = 10.63 -36 fGamma = 1.541e+04 sumE = 11.27 -37 fGamma = 1.769e+04 sumE = 11.87 -38 fGamma = 2.031e+04 sumE = 12.44 -39 fGamma = 2.332e+04 sumE = 12.97 -40 fGamma = 2.677e+04 sumE = 13.46 -41 fGamma = 3.074e+04 sumE = 13.9 -42 fGamma = 3.529e+04 sumE = 14.3 -43 fGamma = 4.052e+04 sumE = 14.66 -44 fGamma = 4.652e+04 sumE = 14.97 -45 fGamma = 5.342e+04 sumE = 15.25 -46 fGamma = 6.133e+04 sumE = 15.48 -47 fGamma = 7.042e+04 sumE = 15.68 -48 fGamma = 8.085e+04 sumE = 15.86 -49 fGamma = 9.283e+04 sumE = 16 - -total time for build X-ray TR tables = 8.63 s -### Run 6 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 2116519781, 67896379 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=298.397 +- 20.3467 mm - - mean energy deposit in absorber=NaN +- 0 MeV - - mean number of steps in absorber (charged) =12.3 +- 0.825227 - mean number of steps in absorber (neutral) =12.5 +- 0.724569 - - mean number of charged secondaries = 11.3 +- 0.825227 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =11.3 and e+s =0 - -(number) transmission coeff=1 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1543401644, 36094137 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 8 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -PlateIrrGas X-ray TR radiator model is called -0 fGamma = 107.6 sumE = 0.1092 -1 fGamma = 123.4 sumE = 0.1581 -2 fGamma = 141.5 sumE = 0.2232 -3 fGamma = 162.3 sumE = 0.3109 -4 fGamma = 186.2 sumE = 0.4159 -5 fGamma = 213.7 sumE = 0.5576 -6 fGamma = 245.2 sumE = 0.7202 -7 fGamma = 281.3 sumE = 0.8948 -8 fGamma = 322.9 sumE = 1.101 -9 fGamma = 370.5 sumE = 1.353 -10 fGamma = 425.3 sumE = 1.639 -11 fGamma = 488.2 sumE = 1.952 -12 fGamma = 560.3 sumE = 2.222 -13 fGamma = 643.2 sumE = 2.552 -14 fGamma = 738.3 sumE = 2.825 -15 fGamma = 847.6 sumE = 3.185 -16 fGamma = 973 sumE = 3.515 -17 fGamma = 1117 sumE = 3.902 -18 fGamma = 1282 sumE = 4.418 -19 fGamma = 1472 sumE = 4.931 -20 fGamma = 1690 sumE = 5.387 -21 fGamma = 1940 sumE = 5.857 -22 fGamma = 2228 sumE = 6.401 -23 fGamma = 2558 sumE = 7.008 -24 fGamma = 2936 sumE = 7.62 -25 fGamma = 3371 sumE = 8.174 -26 fGamma = 3871 sumE = 8.629 -27 fGamma = 4444 sumE = 8.965 -28 fGamma = 5102 sumE = 9.306 -29 fGamma = 5858 sumE = 10.32 -30 fGamma = 6726 sumE = 11.32 -31 fGamma = 7722 sumE = 12.3 -32 fGamma = 8866 sumE = 13.25 -33 fGamma = 1.018e+04 sumE = 14.17 -34 fGamma = 1.169e+04 sumE = 15.04 -35 fGamma = 1.342e+04 sumE = 15.87 -36 fGamma = 1.541e+04 sumE = 16.66 -37 fGamma = 1.769e+04 sumE = 17.39 -38 fGamma = 2.031e+04 sumE = 18.06 -39 fGamma = 2.332e+04 sumE = 18.69 -40 fGamma = 2.677e+04 sumE = 19.25 -41 fGamma = 3.074e+04 sumE = 19.76 -42 fGamma = 3.529e+04 sumE = 20.21 -43 fGamma = 4.052e+04 sumE = 20.61 -44 fGamma = 4.652e+04 sumE = 20.95 -45 fGamma = 5.342e+04 sumE = 21.25 -46 fGamma = 6.133e+04 sumE = 21.51 -47 fGamma = 7.042e+04 sumE = 21.73 -48 fGamma = 8.085e+04 sumE = 21.91 -49 fGamma = 9.283e+04 sumE = 22.07 - -total time for build X-ray TR dE/dx tables = 29.01 s -### Run 7 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1543401644, 36094137 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=262.695 +- 28.3515 mm - - mean energy deposit in absorber=NaN +- 0 MeV - - mean number of steps in absorber (charged) =11.1 +- 1.15282 - mean number of steps in absorber (neutral) =11.4 +- 1.32061 - - mean number of charged secondaries = 10.1 +- 1.15282 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =10.1 and e+s =0 - -(number) transmission coeff=1 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 460240760, 1756416216 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 9 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Regular X-ray TR radiator model is called -0 fGamma = 107.6 sumE = 0.004757 -1 fGamma = 123.4 sumE = 0.006213 -2 fGamma = 141.5 sumE = 0.008651 -3 fGamma = 162.3 sumE = 0.01573 -4 fGamma = 186.2 sumE = 0.02543 -5 fGamma = 213.7 sumE = 0.03201 -6 fGamma = 245.2 sumE = 0.05278 -7 fGamma = 281.3 sumE = 0.05867 -8 fGamma = 322.9 sumE = 0.1018 -9 fGamma = 370.5 sumE = 0.1469 -10 fGamma = 425.3 sumE = 0.1786 -11 fGamma = 488.2 sumE = 0.2919 -12 fGamma = 560.3 sumE = 0.3108 -13 fGamma = 643.2 sumE = 0.2985 -14 fGamma = 738.3 sumE = 0.4656 -15 fGamma = 847.6 sumE = 0.5473 -16 fGamma = 973 sumE = 0.911 -17 fGamma = 1117 sumE = 1.469 -18 fGamma = 1282 sumE = 1.626 -19 fGamma = 1472 sumE = 2.145 -20 fGamma = 1690 sumE = 2.212 -21 fGamma = 1940 sumE = 2.643 -22 fGamma = 2228 sumE = 2.875 -23 fGamma = 2558 sumE = 2.505 -24 fGamma = 2936 sumE = 2.271 -25 fGamma = 3371 sumE = 1.625 -26 fGamma = 3871 sumE = 3.543 -27 fGamma = 4444 sumE = 2.547 -28 fGamma = 5102 sumE = 1.326 -29 fGamma = 5858 sumE = 1.079 -30 fGamma = 6726 sumE = 1.166 -31 fGamma = 7722 sumE = 1.652 -32 fGamma = 8866 sumE = 0.8713 -33 fGamma = 1.018e+04 sumE = 1.478 -34 fGamma = 1.169e+04 sumE = 1.245 -35 fGamma = 1.342e+04 sumE = 1.203 -36 fGamma = 1.541e+04 sumE = 1.272 -37 fGamma = 1.769e+04 sumE = 0.8468 -38 fGamma = 2.031e+04 sumE = 0.7525 -39 fGamma = 2.332e+04 sumE = 0.9297 -40 fGamma = 2.677e+04 sumE = 1.099 -41 fGamma = 3.074e+04 sumE = 1.196 -42 fGamma = 3.529e+04 sumE = 1.23 -43 fGamma = 4.052e+04 sumE = 1.232 -44 fGamma = 4.652e+04 sumE = 1.226 -45 fGamma = 5.342e+04 sumE = 1.222 -46 fGamma = 6.133e+04 sumE = 1.223 -47 fGamma = 7.042e+04 sumE = 1.226 -48 fGamma = 8.085e+04 sumE = 1.231 -49 fGamma = 9.283e+04 sumE = 1.235 - -total time for build X-ray TR tables = 41.4 s -### Run 8 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 460240760, 1756416216 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=36.4878 +- 3.27466 mm - - mean energy deposit in absorber=0.0281158 +- 0.00461324 MeV - - mean number of steps in absorber (charged) =1.3 +- 0.144914 - mean number of steps in absorber (neutral) =1 +- 0.374166 - - mean number of charged secondaries = 0.3 +- 0.144914 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =0.3 and e+s =0 - -(number) transmission coeff=0.3 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 525126593, 1884497148 ----------------------------------------- -Em10DetectorConstruction::ParametrisationModel() is called -fModelNumber = 10 -the number of TR radiator plates = 300 -plate material = Li -gas material = He -plate plasma energy = 13.8447 eV -gas plasma energy = 0.271761 eV -Regular X-ray TR dE/dx radiator model is called -0 fGamma = 107.6 sumE = 0.1102 -1 fGamma = 123.4 sumE = 0.1591 -2 fGamma = 141.5 sumE = 0.2276 -3 fGamma = 162.3 sumE = 0.3018 -4 fGamma = 186.2 sumE = 0.4444 -5 fGamma = 213.7 sumE = 0.5486 -6 fGamma = 245.2 sumE = 0.6789 -7 fGamma = 281.3 sumE = 0.8374 -8 fGamma = 322.9 sumE = 1.005 -9 fGamma = 370.5 sumE = 1.384 -10 fGamma = 425.3 sumE = 1.644 -11 fGamma = 488.2 sumE = 2.001 -12 fGamma = 560.3 sumE = 2.464 -13 fGamma = 643.2 sumE = 2.98 -14 fGamma = 738.3 sumE = 3.457 -15 fGamma = 847.6 sumE = 3.391 -16 fGamma = 973 sumE = 3.782 -17 fGamma = 1117 sumE = 4.33 -18 fGamma = 1282 sumE = 5.624 -19 fGamma = 1472 sumE = 5.355 -20 fGamma = 1690 sumE = 5.291 -21 fGamma = 1940 sumE = 4.926 -22 fGamma = 2228 sumE = 5.24 -23 fGamma = 2558 sumE = 4.833 -24 fGamma = 2936 sumE = 4.372 -25 fGamma = 3371 sumE = 3.614 -26 fGamma = 3871 sumE = 3.926 -27 fGamma = 4444 sumE = 3.907 -28 fGamma = 5102 sumE = 1.839 -29 fGamma = 5858 sumE = 1.708 -30 fGamma = 6726 sumE = 1.732 -31 fGamma = 7722 sumE = 1.743 -32 fGamma = 8866 sumE = 1.779 -33 fGamma = 1.018e+04 sumE = 1.613 -34 fGamma = 1.169e+04 sumE = 1.79 -35 fGamma = 1.342e+04 sumE = 1.682 -36 fGamma = 1.541e+04 sumE = 1.668 -37 fGamma = 1.769e+04 sumE = 1.68 -38 fGamma = 2.031e+04 sumE = 1.724 -39 fGamma = 2.332e+04 sumE = 1.726 -40 fGamma = 2.677e+04 sumE = 1.705 -41 fGamma = 3.074e+04 sumE = 1.672 -42 fGamma = 3.529e+04 sumE = 1.647 -43 fGamma = 4.052e+04 sumE = 1.637 -44 fGamma = 4.652e+04 sumE = 1.632 -45 fGamma = 5.342e+04 sumE = 1.631 -46 fGamma = 6.133e+04 sumE = 1.631 -47 fGamma = 7.042e+04 sumE = 1.632 -48 fGamma = 8.085e+04 sumE = 1.633 -49 fGamma = 9.283e+04 sumE = 1.634 - -total time for build X-ray TR dE/dx tables = 72.68 s -### Run 9 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 525126593, 1884497148 ----------------------------------------- - ----> Begin of Event: 0 - ================== run summary ===================== - end of Run TotNbofEvents = 10 - mean charged track length in absorber=48.8854 +- 6.36796 mm - - mean energy deposit in absorber=0.0401224 +- 0.00346123 MeV - - mean number of steps in absorber (charged) =2.1 +- 0.298329 - mean number of steps in absorber (neutral) =1.5 +- 0.430116 - - mean number of charged secondaries = 1.1 +- 0.298329 - - mean number of neutral secondaries = 0 +- 0 - - mean number of e-s =1.1 and e+s =0 - -(number) transmission coeff=0.7 reflection coeff=0 - - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1212028514, 1027227261 + Current couple of seeds = 2146225322, 1749835364 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm10/elps.kumac b/examples/extended/electromagnetic/TestEm10/elps.kumac new file mode 100644 index 0000000000..55f130a43e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/elps.kumac @@ -0,0 +1,7 @@ +h/file 1 g4.p11 +h/pl 1 +fort/file 66 el.ps +meta 66 -111 +h/pl 1 +close 66 +q diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh index 0f6cf6f9aa..ebfd76088e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh index bb74c503ae..4f904a0155 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh index 6376c769d5..80487f711c 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10DetectorConstruction.hh,v 1.4 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em10DetectorConstruction.hh,v 1.5 2002/02/05 11:06:37 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -65,7 +65,9 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction void SetGasGapThickness(G4double); - void SetFoilNumber (G4int i){fFoilNumber=i;}; + void SetFoilNumber (G4int i) {fFoilNumber = i; }; + void SetAlphaPlate (G4double val){fAlphaPlate = val;}; + void SetAlphaGas (G4double val){fAlphaGas = val;}; void SetWorldMaterial(G4String); void SetWorldSizeZ(G4double); @@ -96,7 +98,14 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;}; const G4VPhysicalVolume* GetAbsorber() {return physiAbsorber;}; G4LogicalVolume* GetLogicalAbsorber() {return logicAbsorber;}; - + + G4LogicalVolume* GetLogicalRadiator() {return logicRadiator;}; + G4double GetFoilThick() {return fRadThickness;}; + G4double GetGasThick() {return fGasGap;}; + G4int GetFoilNumber() {return fFoilNumber;}; + G4Material* GetFoilMaterial() {return fFoilMat;}; + G4Material* GetGasMaterial() {return fGasMat;}; + private: G4bool worldchanged; @@ -113,6 +122,9 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction G4Material* fGapMat ; G4double fGapThick ; + G4double fAlphaPlate ; + G4double fAlphaGas ; + G4double zAbsorber ; G4double zstartAbs , zendAbs ; @@ -139,38 +151,41 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction G4LogicalVolume* logicRadiator; G4VPhysicalVolume* physiRadiator; - G4Material* fRadiatorMat; //pointer to the TR radiator material + G4Material* fRadiatorMat; // pointer to the mixed TR radiator material + G4Material* fFoilMat; // pointer to the TR foil radiator material + G4Material* fGasMat; // pointer to the TR gas radiator material - G4double fRadThickness ; - G4double fGasGap ; + G4double fRadThickness ; + G4double fGasGap ; + G4double foilGasRatio ; - G4int fFoilNumber ; - G4int fModelNumber ; // selection of parametrisation model1-10 + G4int fFoilNumber ; + G4int fModelNumber ; // selection of parametrisation model1-10 - G4double fDetThickness ; - G4double fDetLength ; - G4double fDetGap ; + G4double fDetThickness ; + G4double fDetLength ; + G4double fDetGap ; - G4double fStartR ; - G4double fStartZ ; + G4double fStartR ; + G4double fStartZ ; - G4int fModuleNumber ; // the number of Rad-Det modules + G4int fModuleNumber ; // the number of Rad-Det modules - G4Box* solidAbsorber; //pointer to the solid Absorber - G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber - G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber + G4Box* solidAbsorber; //pointer to the solid Absorber + G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber + G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber - G4UniformMagField* magField; //pointer to the magnetic field + G4UniformMagField* magField; //pointer to the magnetic field - Em10DetectorMessenger* detectorMessenger; //pointer to the Messenger - Em10CalorimeterSD* calorimeterSD; //pointer to the sensitive detector - G4VXrayTRmodel* fXTRModel ; + Em10DetectorMessenger* detectorMessenger; //pointer to the Messenger + Em10CalorimeterSD* calorimeterSD; //pointer to the sensitive detector + G4VXrayTRmodel* fXTRModel ; - private: +private: - void DefineMaterials(); - void ComputeCalorParameters(); - G4VPhysicalVolume* ConstructCalorimeter(); + void DefineMaterials(); + void ComputeCalorParameters(); + G4VPhysicalVolume* ConstructCalorimeter(); }; //////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh index 0b3fe05116..bf03d5b691 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh index 8a3250b08c..cfb2bf3568 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh index 65f0bd381c..4ca7b93b4c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh index 9c2d0262da..285fa9ca54 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef Em10PhysicsList_h diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh index 2d14d812ef..efed7bf7fd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh index 2b83562c8c..70c2160d1a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh index 4ba0a69ff9..ca9bcdcb6d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh index ae5db9ff57..613aa76ede 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh index 5aae71fef0..84e647e16c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh index 30f2877b1d..818e6b2178 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh index a3cc562548..6d7d8fc081 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh index 5d4f1abebf..e74d6a90a7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh index 02f3512f36..f4e5f335b1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh b/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh index b5892d83fb..b05aaf2abb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh index 8efe7a05bd..28c5ede0ac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh index 1004f018a5..dc9f3d03fa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/plot.kumac b/examples/extended/electromagnetic/TestEm10/plot.kumac new file mode 100644 index 0000000000..460fcdfa78 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/plot.kumac @@ -0,0 +1,7 @@ +h/file 1 g4.p11 +h/pl 1 +fort/file 66 dEdx.eps +meta 66 -113 +h/pl 1 +close 66 +q diff --git a/examples/extended/electromagnetic/TestEm10/run11.mac b/examples/extended/electromagnetic/TestEm10/run11.mac index 448e15465a..0464ce472e 100644 --- a/examples/extended/electromagnetic/TestEm10/run11.mac +++ b/examples/extended/electromagnetic/TestEm10/run11.mac @@ -13,24 +13,24 @@ # Xe55He15CH4, Xe10CH4, Xe20CH4, Xe5CH4, Xe20CO2, Kr20CO2 # Kr7CH4, Ar7CH4, XeArCH4 # -/XTRdetector/setAbsMat Xe20CO2 -/XTRdetector/setAbsThick 3.0 mm -/XTRdetector/setWorldZ 4000.0 mm +#/XTRdetector/setAbsMat Xe10CH4 +#/XTRdetector/setAbsThick 30.0 mm +#/XTRdetector/setWorldZ 4000.0 mm # # Parameters of Radiator (default mm) # TRT_CH2, Radiator, CarbonFiber, Li, Be, Mylar, Kapton ?, CH2 # Air, CO2, He, Ne, Kr, Ar, Xe, # -/XTRdetector/setRadMat CH2 -/XTRdetector/setWorldMat Air -/XTRdetector/setRadThick 0.02 mm -/XTRdetector/setGasGapThick 0.2 mm -/XTRdetector/setFoilNum 200 +#/XTRdetector/setRadMat Li +#/XTRdetector/setWorldMat He +#/XTRdetector/setRadThick 0.04 mm +#/XTRdetector/setGasGapThick 0.126 mm +#/XTRdetector/setFoilNum 300 # # Selection of XTR parametrisation model: 1-10 -# TRmodel/XTRdEdx: Foam 1/2, GamDistr 3/4, Irr 5/6, Plate 7/8, Reg 9/10 +# TRmodel/XTRdEdx: Foam 1/2, GamDistr 3/4, Irr 5/6, Plate 7/8, Reg 9/10, no model 0 # -/XTRdetector/setModel 10 +#/XTRdetector/setModel 0 # # Update geometry after changing its parametrs # @@ -39,9 +39,9 @@ # PLOT: energy deposit distribution in absorber (g4.11) # /plots/sethistName g4.p11 -/plots/setnbinEn 40 +/plots/setnbinEn 73 /plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.02 MeV +/plots/setEnhigh 0.011 MeV # # /run/initialize @@ -50,13 +50,15 @@ # Particle and its energy # /gun/particle e- +/gun/energy 3000.0 MeV # -/gun/energy 40000.0 MeV +#/gun/particle proton +#/gun/energy 10000.0 GeV # -#/tracking/verbose 2 +#/tracking/verbose 6 # -/event/printModulo 100 -/run/beamOn 1000 +/event/printModulo 500 +/run/beamOn 5000 # # diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc index eff82d1a47..34ff828ef9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc index 1ff706d7ba..77368408b6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc index c79d370dd9..2f724aae50 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10DetectorConstruction.cc,v 1.7 2001/11/21 18:48:56 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em10DetectorConstruction.cc,v 1.8 2002/02/05 11:06:38 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -73,16 +73,27 @@ Em10DetectorConstruction::Em10DetectorConstruction() { // default parameter values of the calorimeter - WorldSizeZ = 80.*cm; + + G4double inch = 2.54*cm ; + G4double mil = inch/1000.0 ; + + WorldSizeZ = 200.*cm; WorldSizeR = 20.*cm; // Radiator and detector parameters - fRadThickness = 40.0*micrometer ; // 25*micrometer ; - fGasGap = 0.126*mm ; // 1500*micrometer ; - fFoilNumber = 300 ; // 188 ; - AbsorberThickness = 3.0*cm ; // 40.0*mm ; + fRadThickness = 0.0127*mm ; // 25*micrometer ; + fGasGap = 0.762*mm ; // 1500*micrometer ; + foilGasRatio = fRadThickness/(fRadThickness+fGasGap) ; + fFoilNumber = 100 ; // 188 ; + + fAlphaPlate = 160.0 ; + fAlphaGas = 160.0 ; + fModelNumber = 0 ; + + + AbsorberThickness = 15.0*mm ; // 40.0*mm ; AbsorberRadius = 10.*cm; zAbsorber = 36.*cm ; @@ -94,10 +105,11 @@ Em10DetectorConstruction::Em10DetectorConstruction() fDetThickness = 40.0*mm ; fDetLength = 200.0*cm ; - fDetGap = 1.0*mm ; + fDetGap = 0.01*mm ; - fStartR = 40.0*cm ; - fStartZ = 50.0*mm ; + + fStartR = 40*cm ; + fStartZ = 100.0*mm ; fModuleNumber = 1 ; @@ -134,10 +146,10 @@ void Em10DetectorConstruction::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, nel ; //iz=number of protons in an isotope; - //n =number of nucleons in an isotope; + G4String name, symbol ; //a =mass of a mole; + G4double a, z ; //z =mean number of protons; + G4double density, foilDensity, gasDensity, totDensity ; + G4double fractionFoil, fractionGas ; G4int nel ; //G4int ncomponents, natoms; @@ -241,8 +253,8 @@ void Em10DetectorConstruction::DefineMaterials() Kapton->AddElement(elH,4); // Polypropelene - - G4Material* CH2 = new G4Material ("Polypropelene" , 0.91*g/cm3, 2); + + G4Material* CH2 = new G4Material ("CH2" , 0.91*g/cm3, 2); CH2->AddElement(elH,2); CH2->AddElement(elC,1); @@ -280,10 +292,10 @@ void Em10DetectorConstruction::DefineMaterials() a = 131.29*g/mole ; G4Material* Xe = new G4Material(name="Xenon",z=54., a, density ); - ///////////////////////////////////////////////////////////////////////////// - // - // Hydrocarbones, metane and others - +///////////////////////////////////////////////////////////////////////////// +// +// Hydrocarbones, metane and others + // Metane, STP density = 0.7174*mg/cm3 ; @@ -304,13 +316,14 @@ void Em10DetectorConstruction::DefineMaterials() G4Material* isobutane = new G4Material(name="isoC4H10",density,nel=2) ; isobutane->AddElement(elC,4) ; isobutane->AddElement(elH,10) ; - - /////////////////////////////////////////////////////////////////////////// - // - // Molecular gases - - // Carbon dioxide - + + +/////////////////////////////////////////////////////////////////////////// +// +// Molecular gases + + // Carbon dioxide, STP + density = 1.977*mg/cm3; G4Material* CO2 = new G4Material(name="CO2", density, nel=2, kStateGas,273.15*kelvin,1.*atmosphere); @@ -415,21 +428,64 @@ void Em10DetectorConstruction::DefineMaterials() ncomponents=2); Xe20CH4->AddMaterial( Xe, fractionmass = 0.97 ) ; Xe20CH4->AddMaterial( metane, fractionmass = 0.03 ) ; - - + + // 93% Ar + 7% CH4, STP ; NIM 107 (1973) 413-422 + + density = 1.709*mg/cm3 ; + G4Material* Ar7CH4 = new G4Material(name="Ar7CH4" , density, + ncomponents=2); + Ar7CH4->AddMaterial( Argon, fractionmass = 0.971 ) ; + Ar7CH4->AddMaterial( metane, fractionmass = 0.029 ) ; + + // 93% Kr + 7% CH4, STP ; NIM 107 (1973) 413-422 + + density = 3.491*mg/cm3 ; + G4Material* Kr7CH4 = new G4Material(name="Kr7CH4" , density, + ncomponents=2); + Kr7CH4->AddMaterial( Kr, fractionmass = 0.986 ) ; + Kr7CH4->AddMaterial( metane, fractionmass = 0.014 ) ; + + // 0.5*(95% Xe + 5% CH4)+0.5*(93% Ar + 7% CH4), STP ; NIM A214 (1983) 261-268 + + density = 3.655*mg/cm3 ; + G4Material* XeArCH4 = new G4Material(name="XeArCH4" , density, + ncomponents=2); + XeArCH4->AddMaterial( Xe5CH4, fractionmass = 0.766 ) ; + XeArCH4->AddMaterial( Ar7CH4, fractionmass = 0.234 ) ; + + + // Preparation of mixed radiator material + + foilDensity = 1.39*g/cm3; // Mylar 0.534*g/cm3; //Li 0.91*g/cm3 ;// CH2 + gasDensity = 1.2928*mg/cm3 ; // Air 0.178*mg/cm3 ; // He 1.977*mg/cm3; // CO2 + totDensity = foilDensity*foilGasRatio + gasDensity*(1.0-foilGasRatio) ; + + fractionFoil = foilDensity*foilGasRatio/totDensity ; + fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity ; + + G4Material* radiatorMat = new G4Material(name="radiatorMat" , totDensity, + ncomponents=2); + radiatorMat->AddMaterial( Mylar, fractionFoil ) ; + radiatorMat->AddMaterial( Air, fractionGas ) ; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; // default materials of the calorimeter and TR radiator - - fRadiatorMat = Li ; // CH2 Mylar ; + + fRadiatorMat = radiatorMat ; // CH2 Mylar ; + fFoilMat = Mylar ; // Li ; // CH2 ; + fGasMat = Air ; // He ;// CO2 ; fWindowMat = Mylar ; fElectrodeMat = Al ; - - AbsorberMaterial = Xe10CH4 ; + + AbsorberMaterial = Ar7CH4; // Xe10CH4; // Xe55He15CH4; + + fGapMat = Xe10CH4 ; - - WorldMaterial = He ; + + WorldMaterial = Air ; // CO2 ; + } ///////////////////////////////////////////////////////////////////////// @@ -471,12 +527,13 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() // TR radiator envelope - G4double radThick = fFoilNumber*(fRadThickness + fGasGap) + fDetGap ; + G4double radThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap ; G4double zRad = fStartZ + 0.5*radThick ; G4cout<<"zRad = "< 0.) { if(solidAbsorber) delete solidAbsorber ; @@ -605,7 +662,7 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() // Parameterisation - ParametrisationModel(); + // ParametrisationModel(); // always return physics world @@ -620,6 +677,7 @@ void Em10DetectorConstruction::ParametrisationModel() { G4cout<<"Em10DetectorConstruction::ParametrisationModel() is called"<AddProcess(new G4IonisationByLogicalVolume(particleName, pDet->GetLogicalAbsorber(), "IonisationByLogVol"),-1,1,-1); - + + pmanager->AddContinuousProcess( + new G4RegularXTRadiator(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "RegularXTRadiator")); + // ,-1,1,-1); + pmanager->AddProcess(theeminusBremsstrahlung,-1,-1,-1); - + // pmanager->AddProcess(fPAIonisation,-1,2,2); // pmanager->AddProcess(fForwardXrayTR,-1,-1,2); @@ -303,7 +315,7 @@ void Em10PhysicsList::ConstructEM() pmanager->AddProcess(new G4IonisationByLogicalVolume(particleName, pDet->GetLogicalAbsorber(), - "IonisationByLogVolHadr"),-1,2,2); + "IonisationByLogVolHadr"),-1,2,-2); // pmanager->AddProcess(thehMultipleScattering,-1,1,1); // pmanager->AddProcess(thehIonisation,-1,2,2); @@ -347,7 +359,7 @@ void Em10PhysicsList::ConstructGeneral() } ///////////////////////////////////////////////////////////////////////////// - +/* void Em10PhysicsList::AddParameterisation() { G4FastSimulationManagerProcess* theFastSimulationManagerProcess = @@ -365,7 +377,7 @@ void Em10PhysicsList::AddParameterisation() pmanager->AddProcess(theFastSimulationManagerProcess, -1, 1, 1); } } - +*/ ///////////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc index 56abaea8aa..680e0732db 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PhysicsListMessenger.cc,v 1.2 2001/07/11 09:57:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc index 42f8a70e23..bc802ff188 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10PrimaryGeneratorAction.cc,v 1.3 2001/11/21 11:57:14 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em10PrimaryGeneratorAction.cc,v 1.4 2002/02/05 11:06:38 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -115,7 +115,8 @@ void Em10PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) y0 = r0*sin(phi0); } ********************************************* */ - particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + // particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + particleGun->SetParticlePosition(G4ThreeVector(0.,0.,0.)); particleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc index e71abb17e0..cf40d20732 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorMessenger.cc,v 1.2 2001/07/11 09:57:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc index 5c17d28cf0..a61ae36c9d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc index 4185cc5606..fbb41116de 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10RunMessenger.cc,v 1.2 2001/07/11 09:57:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc b/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc index 35759c0546..ce195b0f3c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "Em10StepCut.hh" diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc index cc28baa853..f43d424944 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc index f13ce11f6b..5846161849 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc index 1ee5389802..9b93caad65 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc @@ -21,87 +21,83 @@ // ******************************************************************** // // -// $Id: Em10SteppingVerbose.cc,v 1.3 2001/11/21 11:57:15 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em10SteppingVerbose.cc,v 1.4 2002/02/05 11:06:38 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // -// -//--------------------------------------------------------------- -// -// Em10SteppingVerbose.cc -// -// Description: -// Implementation of the Em10SteppingVerbose class -// 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) -// -//--------------------------------------------------------------- +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... #include "Em10SteppingVerbose.hh" -#include "G4SteppingManager.hh" +#include "G4SteppingManager.hh" #include "G4UnitsTable.hh" -//////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + Em10SteppingVerbose::Em10SteppingVerbose() -//////////////////////////////////////////////// -{ -} +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -////////////////////////////////////////////////// Em10SteppingVerbose::~Em10SteppingVerbose() -////////////////////////////////////////////////// -{ -} +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -///////////////////////////////////////// void Em10SteppingVerbose::StepInfo() -///////////////////////////////////////// { CopyState(); - G4int prec = G4cout.precision(3); + G4int prec = G4cout.precision(8); 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) << "X" << " " + << G4std::setw(10) << "Y" << " " + << G4std::setw(10) << "Z" << " " + << G4std::setw(10) << "KineE" << " " + << G4std::setw(10) << "dEStep" << " " << G4std::setw(10) << "StepLeng" << G4std::setw(10) << "TrakLeng" << G4std::setw(10) << "NextVolu" - << G4std::setw(10) << "Process" << G4endl; + << G4std::setw(10) << "Process" + << G4std::setw(10) << "Dir_x" << " " + << G4std::setw(10) << "Dir_y" << " " + << G4std::setw(10) << "Dir_z" << " " + << 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"); + << G4std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw(10) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length"); // if( fStepStatus != fWorldBoundary){ if( fTrack->GetNextVolume() != 0 ) { - G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName(); + 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(); + G4cout << " " + << G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep() + ->GetProcessName(); } else { - G4cout << "User Limit"; + G4cout << " UserLimit"; } + G4cout << G4std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().x(),"Length") + << G4std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().y(),"Length") + << G4std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().z(),"Length"); + G4cout << G4endl; if( verboseLevel == 2 ){ @@ -121,6 +117,7 @@ void Em10SteppingVerbose::StepInfo() for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " << G4std::setw(6) << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") @@ -146,9 +143,9 @@ void Em10SteppingVerbose::StepInfo() G4cout.precision(prec); } -//////////////////////////////////////////////// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + void Em10SteppingVerbose::TrackingStarted() -//////////////////////////////////////////////// { CopyState(); @@ -163,7 +160,7 @@ G4int prec = G4cout.precision(3); << G4std::setw( 9) << "dEStep" << " " << G4std::setw(10) << "StepLeng" << G4std::setw(10) << "TrakLeng" - << G4std::setw(10) << "NextVolu" + << G4std::setw(10) << "Volume" << " " << G4std::setw(10) << "Process" << G4endl; G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " " @@ -176,11 +173,22 @@ G4int prec = G4cout.precision(3); << G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); if(fTrack->GetNextVolume()){ - G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName() << " "; + G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName(); } else { - G4cout << G4std::setw(10) << "OutOfWorld" << " "; + G4cout << G4std::setw(10) << "OutOfWorld"; } - G4cout << G4std::setw(10) << "initStep" << G4endl; + G4cout << " initStep" << G4endl; } G4cout.precision(prec); } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc b/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc index e4d8bd3ef1..cb475577a3 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: Em10VisManager.cc,v 1.3 2001/12/12 15:22:30 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/electromagnetic/TestEm2/GNUmakefile b/examples/extended/electromagnetic/TestEm2/GNUmakefile index 0b95e4316f..1341773699 100644 --- a/examples/extended/electromagnetic/TestEm2/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm2/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.6 2001/10/25 15:12:05 maire Exp $ +# $Id: GNUmakefile,v 1.7 2002/05/31 16:06:53 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -20,8 +20,9 @@ G4NOHIST := true ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else - LDFLAGS += -L$(CERN)/pro/lib - LOADLIBS += -lpacklib $(FCLIBS) + # for the aida-config command see the README file + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm2/History b/examples/extended/electromagnetic/TestEm2/History index d47a440974..aa7f02d8a1 100644 --- a/examples/extended/electromagnetic/TestEm2/History +++ b/examples/extended/electromagnetic/TestEm2/History @@ -1,4 +1,4 @@ -$Id: History,v 1.17 2001/12/11 17:42:24 gcosmo Exp $ +$Id: History,v 1.19 2002/06/05 18:06:28 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,12 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +05-06-02 mma (testem2-V04-00-01) +-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 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 7bbfc31c81..ab349dd5a0 100644 --- a/examples/extended/electromagnetic/TestEm2/README +++ b/examples/extended/electromagnetic/TestEm2/README @@ -1,4 +1,4 @@ -$Id: README,v 1.5 2001/10/25 15:12:05 maire Exp $ +$Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -107,8 +107,24 @@ $Id: README,v 1.5 2001/10/25 15:12:05 maire Exp $ 11 : cumulated radial energy profile 12 : rms of cumulated radial energy profile - Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - Currently, histograms in this example are implemented through the obsolete - CLHEP/Hist package, which is no longer supported. The implementation will - be replaced by direct call to the "analysis" module in a near future. + Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. + + 7- Using the Anaphe implementation of the AIDA 2.2 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): + + # 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. diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.cc b/examples/extended/electromagnetic/TestEm2/TestEm2.cc index 188d7072e0..847e3baf87 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out index ad28a0b25c..d55c06aff5 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.out +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -57,15 +57,13 @@ Current available graphics systems are: Absorber is 17.848 cm of PbWO4 -Em2PhysicsList::SetCuts:CutLength : 5 mm -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. +Em2PhysicsList::SetCuts:CutLength : 5 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 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 @@ -173,20 +171,20 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=37.72s Real=47.63s Sys=8.41s + User=23.26s Real=43.58s Sys=2.91s LATERAL PROFILE CUMULATIVE LATERAL PROFILE bin Mean rms bin Mean rms - 0.00-> 1.11 radl: 18.73% 6.89% 0-> 1.11 radl: 18.73% 6.89% - 1.11-> 2.22 radl: 25.86% 10.89% 0-> 2.22 radl: 44.59% 14.75% - 2.22-> 3.33 radl: 21.63% 8.64% 0-> 3.33 radl: 66.22% 15.88% - 3.33-> 4.44 radl: 13.21% 8.38% 0-> 4.44 radl: 79.43% 12.32% - 4.44-> 5.55 radl: 8.11% 6.45% 0-> 5.55 radl: 87.55% 9.59% - 5.55-> 6.66 radl: 3.81% 4.04% 0-> 6.66 radl: 91.36% 8.37% - 6.66-> 7.77 radl: 2.14% 3.05% 0-> 7.77 radl: 93.49% 7.34% - 7.77-> 8.88 radl: 0.82% 1.67% 0-> 8.88 radl: 94.32% 6.46% - 8.88-> 9.99 radl: 0.60% 1.51% 0-> 9.99 radl: 94.92% 5.76% + 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% @@ -194,21 +192,21 @@ Run Summary bin Mean rms bin Mean rms - 0.00-> 0.11 radl: 69.85% 10.68% 0-> 0.11 radl: 69.85% 10.68% - 0.11-> 0.22 radl: 15.02% 6.67% 0-> 0.22 radl: 84.87% 8.03% - 0.22-> 0.33 radl: 5.39% 4.26% 0-> 0.33 radl: 90.26% 6.67% - 0.33-> 0.44 radl: 2.44% 1.97% 0-> 0.44 radl: 92.70% 5.97% - 0.44-> 0.56 radl: 1.34% 1.20% 0-> 0.56 radl: 94.04% 5.85% - 0.56-> 0.67 radl: 0.87% 0.76% 0-> 0.67 radl: 94.92% 5.76% + 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% SUMMARY - energy deposit : 94.92 % E0 +- 5.76 % E0 - charged traklen: 13.88 radl +- 0.85 radl - neutral traklen: 201.27 radl +- 19.31 radl + energy deposit : 93.98 % E0 +- 7.39 % E0 + charged traklen: 13.66 radl +- 1.08 radl + neutral traklen: 201.00 radl +- 22.88 radl --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1086208127, 994034357 + Current couple of seeds = 1983783255, 1611071241 ---------------------------------------- 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 5da50c2dde..6d63215f59 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh index 9a53b3cb13..980d47089a 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em2DetectorMessenger.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh index 2cf5777671..a3c099b977 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh index fed168ccfc..718640c5d9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh index 5247e86ce2..36b9f29499 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Em2PhysicsList.hh,v 1.5 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh index 0ff8b99f9a..992f2cd598 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em2PhysicsListMessenger.hh,v 1.3 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh index 3d6b4fa0f8..74d155987c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh index 598f785a68..3b01a7f337 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.10 2001/11/28 18:57:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em2RunAction.hh,v 1.11 2002/05/31 16:06:54 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,8 +54,8 @@ class Em2PrimaryGeneratorAction; class G4Run; #ifndef G4NOHIST - class HepTupleManager; - class HepHistogram; + class ITree; + class IHistogram1D; #endif class Em2RunAction : public G4UserRunAction @@ -110,12 +110,9 @@ class Em2RunAction : public G4UserRunAction G4double sumNeutrTrLength; G4double sum2NeutrTrLength; -#ifndef G4NOHIST - HepTupleManager* hbookManager; - HepHistogram *histo1, *histo2, *histo3; - HepHistogram *histo4, *histo5, *histo6; - HepHistogram *histo7, *histo8, *histo9; - HepHistogram *hist10, *hist11, *hist12; +#ifndef G4NOHIST + ITree* tree; // the tree should only be deleted at the end + IHistogram1D* histo[12]; // (after writing the histos to file) #endif }; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh index 89ddf36ebb..47b4da3cf3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh index 759dc2da61..ba43220550 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 dcdeb1ee55..b8b212be38 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh b/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh index 16a30a5962..3e873eedb6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/run01.mac b/examples/extended/electromagnetic/TestEm2/run01.mac index 42df996e26..fc1c0cacc3 100644 --- a/examples/extended/electromagnetic/TestEm2/run01.mac +++ b/examples/extended/electromagnetic/TestEm2/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.5 2001/10/31 17:34:12 maire Exp $ +# $Id: run01.mac,v 1.6 2002/05/31 16:06:54 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -7,10 +7,11 @@ # /control/verbose 2 # -#/run/particle/setCut 1.0 mm -#/run/particle/applyCuts +#/run/particle/setCut 1 mm /run/initialize # +/run/particle/applyCuts +# /run/verbose 2 /event/printModulo 10 # diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc index 815f720906..d178c33eab 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Em2DetectorConstruction.cc,v 1.7 2001/11/28 18:57:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc index 8428660438..aa6879aedc 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em2DetectorMessenger.cc,v 1.5 2001/10/31 17:34:13 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc index 426baa4448..2047665a65 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc index 73c0ce8698..4f14e86a49 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em2EventActionMessenger.cc,v 1.5 2001/11/28 18:57:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc index 98d188d7a7..bf2b53caab 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: Em2PhysicsList.cc,v 1.7 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc index 143ac77e8b..b6d0e354ff 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em2PhysicsListMessenger.cc,v 1.3 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc index 4f5ed408ed..bdfc8f466e 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em2PrimaryGeneratorAction.cc,v 1.4 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc index 09db692b0c..e53aecfc0f 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.13 2001/11/28 18:57:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em2RunAction.cc,v 1.15 2002/06/03 14:07:13 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,7 +49,15 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #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" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -75,11 +83,6 @@ Em2RunAction::Em2RunAction(Em2DetectorConstruction* det, sumERadialCumul.resize(nRbin, 0.0); sumE2Radial.resize(nRbin, 0.0); sumE2RadialCumul.resize(nRbin, 0.0); - -#ifndef G4NOHIST - hbookManager = NULL; -#endif - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -94,50 +97,62 @@ Em2RunAction::~Em2RunAction() void Em2RunAction::bookHisto() { #ifndef G4NOHIST - hbookManager = new HBookFile("TestEm2.paw", 68); - assert (hbookManager != 0); - + // Creating the analysis factory + IAnalysisFactory* af = AIDA_createAnalysisFactory(); + + // Creating the tree factory + ITreeFactory* tf = af->createTreeFactory(); + + // Creating a tree mapped to an hbook file. + tree = tf->create("testem2.paw", false, false, "hbook"); + + // Creating a histogram factory, whose histograms will be handled by the tree + IHistogramFactory* hf = af->createHistogramFactory(*tree); G4double Ekin = Em2Kin->GetParticleGun()->GetParticleEnergy(); G4double dLradl = Em2Det->GetdLradl(); G4double dRradl = Em2Det->GetdRradl(); - histo1 = hbookManager->histogram("total energy deposit (percent of E inc)", + histo[0] = hf->create1D( "1","total energy deposit (percent of E inc)", 100,0.,100.); - histo2 = hbookManager->histogram("total charged tracklength (radl)", + histo[1] = hf->create1D( "2","total charged tracklength (radl)", 100,0.,100.*Ekin/GeV); - histo3 = hbookManager->histogram("total neutral tracklength (radl)", + histo[2] = hf->create1D( "3","total neutral tracklength (radl)", 100,0.,1000.*Ekin/GeV); - histo4 = hbookManager->histogram("longit energy profile (% of E inc)", + histo[3] = hf->create1D( "4","longit energy profile (% of E inc)", nLbin,0.,nLbin*dLradl); G4double Zmin=0.5*dLradl, Zmax=Zmin+nLbin*dLradl; - histo5 = hbookManager->histogram("cumul longit energy dep (% of E inc)", + histo[4] = hf->create1D( "5","cumul longit energy dep (% of E inc)", nLbin,Zmin,Zmax); - histo6 = hbookManager->histogram("rms on cumul longit Edep (% of E inc)", + histo[5] = hf->create1D( "6","rms on cumul longit Edep (% of E inc)", nLbin,Zmin,Zmax); - histo7 = hbookManager->histogram("nb of gamma per plane", + histo[6] = hf->create1D( "7","nb of gamma per plane", nLbin,Zmin,Zmax); - histo8 = hbookManager->histogram("nb of positron per plane", + histo[7] = hf->create1D( "8","nb of positron per plane", nLbin,Zmin,Zmax); - histo9 = hbookManager->histogram("nb of electron per plane", + histo[8] = hf->create1D( "9","nb of electron per plane", nLbin,Zmin,Zmax); - hist10 = hbookManager->histogram("radial energy profile (% of E inc)", + histo[9] = hf->create1D("10","radial energy profile (% of E inc)", nRbin,0.,nRbin*dRradl); G4double Rmin=0.5*dRradl, Rmax=Rmin+nRbin*dRradl; - hist11 = hbookManager->histogram("cumul radial energy dep (% of E inc)", + histo[10]= hf->create1D("11","cumul radial energy dep (% of E inc)", nRbin,Rmin,Rmax); - hist12 = hbookManager->histogram("rms on cumul radial Edep (% of E inc)", + histo[11]= hf->create1D("12","rms on cumul radial Edep (% of E inc)", nRbin,Rmin,Rmax); + + delete hf; + delete tf; + delete af; #endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -145,14 +160,10 @@ void Em2RunAction::bookHisto() void Em2RunAction::cleanHisto() { #ifndef G4NOHIST - // Write histogram file - hbookManager->write(); + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) - delete histo1; delete histo2; delete histo3; - delete histo4; delete histo5; delete histo6; - delete histo7; delete histo8; delete histo9; - delete hist10; delete hist11; delete hist12; - delete hbookManager; + delete tree; #endif } @@ -253,9 +264,9 @@ void Em2RunAction::fillPerEvent() G4double mass=Em2Kin->GetParticleGun()->GetParticleDefinition()->GetPDGMass(); G4double radl=Em2Det->GetMaterial()->GetRadlen(); - histo1->accumulate(100.*dLCumul/(Ekin+mass)); - histo2->accumulate(ChargTrLength/radl); - histo3->accumulate(NeutrTrLength/radl); + histo[0]->fill(100.*dLCumul/(Ekin+mass)); + histo[1]->fill(ChargTrLength/radl); + histo[2]->fill(NeutrTrLength/radl); #endif } @@ -299,14 +310,14 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) #ifndef G4NOHIST bin = i*dLradl; - histo4->accumulate(bin,MeanELongit[i]/dLradl); + histo[3]->fill(bin,MeanELongit[i]/dLradl); bin = (i+1)*dLradl; - histo5->accumulate(bin,MeanELongitCumul[i]); - histo6->accumulate(bin, rmsELongitCumul[i]); + histo[4]->fill(bin,MeanELongitCumul[i]); + histo[5]->fill(bin, rmsELongitCumul[i]); - histo7->accumulate(bin, gammaFlux[i]); - histo8->accumulate(bin, positronFlux[i]); - histo9->accumulate(bin, electronFlux[i]); + histo[6]->fill(bin, gammaFlux[i]); + histo[7]->fill(bin, positronFlux[i]); + histo[8]->fill(bin, electronFlux[i]); #endif } @@ -329,10 +340,10 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) #ifndef G4NOHIST bin = i*dRradl; - hist10->accumulate(bin,MeanERadial[i]/dRradl); + histo[ 9]->fill(bin,MeanERadial[i]/dRradl); bin = (i+1)*dRradl; - hist11->accumulate(bin,MeanERadialCumul[i]); - hist12->accumulate(bin, rmsERadialCumul[i]); + histo[10]->fill(bin,MeanERadialCumul[i]); + histo[11]->fill(bin, rmsERadialCumul[i]); #endif } diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc index 37b15dc40e..0258ea2b94 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc index 8a036457d2..e754c3fc21 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 5b117248ac..6d6ea8b8d3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc b/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc index e1790abd0d..763a1c5296 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: Em2VisManager.cc,v 1.6 2001/11/15 13:09:46 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/electromagnetic/TestEm3/GNUmakefile b/examples/extended/electromagnetic/TestEm3/GNUmakefile index 059b8fc252..3c0ec0dc83 100644 --- a/examples/extended/electromagnetic/TestEm3/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm3/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.6 2001/10/22 10:58:39 maire Exp $ +# $Id: GNUmakefile,v 1.7 2002/06/05 12:13:03 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -20,8 +20,9 @@ G4NOHIST := true ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else - LDFLAGS += -L$(CERN)/pro/lib - LOADLIBS += -lpacklib $(FCLIBS) + # for the aida-config command see the README file + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm3/History b/examples/extended/electromagnetic/TestEm3/History index 55f71b677b..a02fe5d86c 100644 --- a/examples/extended/electromagnetic/TestEm3/History +++ b/examples/extended/electromagnetic/TestEm3/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2001/11/28 17:54:45 maire Exp $ +$Id: History,v 1.18 2002/06/05 12:13:03 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,53 +15,60 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -28-11-01 mma (testem3-V03-02-03) +03-06-02 mma (testem3-V04-00-01) +-old histograming package clhep/hist replaced by AIDA 2.2/anaphe + +14-02-02 mma (testem3-V04-00-00) +- macros for em_exercices +- Particle definition : G4Alpha + +28-11-01 mma (testem3-V03-02-03) - EventAction: DrawTrack "none" - small change in vis.mac - suppression of the rndm commands, now managed by G4RunManager: --> RunAction, RunActionMessenger, EventAction. -39-10-01 mma (testem3-V03-02-02) +39-10-01 mma (testem3-V03-02-02) -invert initialize and update in all macros (and TestEm3.in) -25-10-01 mma (testem3-V03-02-01) +25-10-01 mma (testem3-V03-02-01) - GetEnergyCuts() in PrintdEdx() -22-10-01 mma (testem3-V03-02-00) +22-10-01 mma (testem3-V03-02-00) - mods in TestEm3.cc: the initialisation and vis initialisation are not done by default. --> inserted /run/initialize in all macros. - To get visualisation: > /control/execute vis.mac - 80 columns everywhere. -19-10-01 Steve O'Neale (examples-V03-02-00) +19-10-01 Steve O'Neale (examples-V03-02-00) - Update reference output -31-05-01 mma (testem3-V03-01-01) +31-05-01 mma (testem3-V03-01-01) - VisManager -30-05-01 mma +30-05-01 mma - in RunAction: method PrintDedxTables() : binning as Geant3, printout ready to be read as ffread data cards. - Geant3 application in geant3/g4mat to read the above data cards, in order to compare G3 and G4 dE/dx tables (see README). -13-04-01 mma (testem3-V03-01-00) +13-04-01 mma (testem3-V03-01-00) - In PrimaryGeneratorAction, possibility to randomize the beam spot - command /gun/rndm in PrimaryGeneratorMessenger - similar functionality in geant3: gukine.F -12-04-01 mma +12-04-01 mma - In DetectorConstruction, possibility to limit the step size, via a G4UserLimit object. - command /tracking/stepMax in DetectorMessenger - data card STEPMX in geant3 -06-04-01 mma +06-04-01 mma - in RunAction: method PrintDedxTables() - in DetectorConstruction: Iron density corrected (was 7.7 g/cm3) - in geant3: overwrite the computed radlength of scintillator -26-03-01 mma (testem3-V03-00-04) +26-03-01 mma (testem3-V03-00-04) - change in histogramming : 1d histo of Edep/Ebeam in each absorber instead of ntuple, both in G4 and G3. - interactive command /run/setHisto (in G4) and ffread @@ -72,18 +79,18 @@ track of all tags. --> no histograms in G4 by default. -21-02-01 mma (testem3-V03-00-03) +21-02-01 mma (testem3-V03-00-03) - hbook histograms restored -20-02-01 mma (testem3-V03-00-02) +20-02-01 mma (testem3-V03-00-02) - stepping verbose adapted for STL - BirkAttenuation function - save rndm at begin of event -07-12-00 mma (testem3-V02-00-03 & testem-noHist) +07-12-00 mma (testem3-V02-00-03 & testem-noHist) - remove hbook histograms: GNUmakefile,runAction,eventAction -06-12-00 mma (testem3-V02-00-02 & testem-withHist) +06-12-00 mma (testem3-V02-00-02 & testem-withHist) - update of init.mac for new vis commands. - G4UItcsh in the main() diff --git a/examples/extended/electromagnetic/TestEm3/README b/examples/extended/electromagnetic/TestEm3/README index 009abd894a..b08197a05b 100644 --- a/examples/extended/electromagnetic/TestEm3/README +++ b/examples/extended/electromagnetic/TestEm3/README @@ -1,4 +1,4 @@ -$Id: README,v 1.6 2001/10/22 10:58:40 maire Exp $ +$Id: README,v 1.7 2002/06/05 12:13:04 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -126,8 +126,23 @@ $Id: README,v 1.6 2001/10/22 10:58:40 maire Exp $ /run/setHisto idAbsor nbin vmin vmax ...etc........... - Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - Currently, histograms in this example are implemented through the obsolete - CLHEP/Hist package, which is no longer supported. The implementation will - be replaced by direct call to the "analysis" module in a near future. + Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. + 8- Using the Anaphe implementation of the AIDA 2.2 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): + + # 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. diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.cc b/examples/extended/electromagnetic/TestEm3/TestEm3.cc index eb98e158e6..c3735aa6c9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out index d0bd6079d6..c8c99287c2 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -101,15 +101,13 @@ Current available graphics systems are: Lead: 2.3 mm liquidArgon: 5.7 mm ------------------------------------------------------------- -Em3PhysicsList::SetCuts:CutLength : 500 mum -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. +Em3PhysicsList::SetCuts:CutLength : 500 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 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 @@ -244,19 +242,19 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=68.54s Real=86.85s Sys=14.82s + User=43.96s Real=73.89s Sys=8.8s ------------------------------------------------------------- total energy dep total tracklen - Absorber0 ( Lead) : 799.29 MeV +- 14.74 MeV 56.53 cm +- 1.13 cm - Absorber1 ( liquidArgon) : 189.35 MeV +- 13.64 MeV 95.42 cm +- 7.01 cm + 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 ------------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2004252829, 470324736 + Current couple of seeds = 1367155280, 999623368 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm3/exo3q1.mac b/examples/extended/electromagnetic/TestEm3/exo3q1.mac new file mode 100644 index 0000000000..aac38d2ed1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo3q1.mac @@ -0,0 +1,33 @@ +# $Id: exo3q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# Aluminium 1 layer; +# +/control/verbose 2 +# +/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 +# +/gun/setDefault +# +/control/execute vis.mac +# +/process/list +/process/inactivate eBrem +/process/inactivate msc +/process/inactivate compt +/process/inactivate phot +/process/inactivate annihil +# +/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 new file mode 100644 index 0000000000..2b3a60fc22 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo3q2.mac @@ -0,0 +1,44 @@ +# $Id: exo3q2.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# Aluminium 1 layer; +# +/control/verbose 2 +# +/run/initialize +# +/calor/setNbOfLayers 1 +/calor/setNbOfAbsor 1 +/calor/setAbsor 0 Aluminium 10 cm +/calor/setSizeYZ 10 cm +/calor/setField 5 tesla +/calor/update +# +/gun/setDefault +# +/control/execute vis.mac +# +/process/list +/process/inactivate eIoni +/process/inactivate msc +/process/inactivate conv +/process/inactivate compt +/process/inactivate phot +# +/tracking/stepMax 1 cm +# +/gun/particle e- +/gun/energy 200 MeV +# +/run/particle/setCut 1 m +/run/initialize +#/run/beamOn +# +#/run/particle/setCut 70 cm +#/run/initialize +#/run/beamOn +# +#/run/particle/setCut 5 mm +#/run/initialize +#/run/beamOn diff --git a/examples/extended/electromagnetic/TestEm3/exo3q3.mac b/examples/extended/electromagnetic/TestEm3/exo3q3.mac new file mode 100644 index 0000000000..80866c0e20 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo3q3.mac @@ -0,0 +1,43 @@ +# $Id: exo3q3.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# Aluminium 1 layer; +# +/control/verbose 2 +# +/run/initialize +# +/calor/setNbOfLayers 1 +/calor/setNbOfAbsor 1 +/calor/setAbsor 0 Aluminium 10 cm +/calor/setSizeYZ 10 cm +/calor/setField 5 tesla +/calor/update +# +/gun/setDefault +# +/control/execute vis.mac +# +/process/list +/process/inactivate msc +/process/inactivate compt +/process/inactivate phot +# +/run/particle/setCut 50 cm +/run/initialize +# +/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 +# +#/gun/position -12 0 0 cm +# +#/run/beamOn 1 diff --git a/examples/extended/electromagnetic/TestEm3/exo4q1.mac b/examples/extended/electromagnetic/TestEm3/exo4q1.mac new file mode 100644 index 0000000000..8b9d2c537e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo4q1.mac @@ -0,0 +1,35 @@ +# $Id: exo4q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# water 1 layer; +# +/control/verbose 2 +# +/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 +# +/gun/setDefault +# +/control/execute vis.mac +# +/process/list +/process/inactivate msc +/process/inactivate eBrem +# +/gun/rndm 0.9 +# +/gun/particle e- +/gun/energy 16 MeV +#/run/beamOn 20 +# +#/gun/particle proton +#/gun/energy 105 MeV +#/run/beamOn 20 + diff --git a/examples/extended/electromagnetic/TestEm3/exo4q3.mac b/examples/extended/electromagnetic/TestEm3/exo4q3.mac new file mode 100644 index 0000000000..530830a932 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo4q3.mac @@ -0,0 +1,39 @@ +# $Id: exo4q3.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +#Aluminium 1 layer; +# +/control/verbose 2 +# +/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 +# +/gun/setDefault +# +/control/execute vis.mac +# +/process/list +/process/inactivate msc +/process/inactivate eBrem +# +/gun/particle e- +/gun/energy 200 MeV +/gun/position -6. +2.5 0. mm +#/run/beamOn 50 +# +#/gun/particle proton +#/gun/energy 200 MeV +#/gun/position -6. -2.5 0. mm +#/run/beamOn 50 +# +#/gun/particle alpha +#/gun/energy 200 MeV +#/gun/position -6. -2.5 0. mm +#/run/beamOn 50 diff --git a/examples/extended/electromagnetic/TestEm3/exo5q1.mac b/examples/extended/electromagnetic/TestEm3/exo5q1.mac new file mode 100644 index 0000000000..3460ed5d08 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo5q1.mac @@ -0,0 +1,26 @@ +# $Id: exo5q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# Aluminium 1 layer; +# +/control/verbose 2 +# +/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 +# +/gun/setDefault +# +/control/execute vis.mac +# +/gun/particle pi+ +/gun/energy 200 MeV +/gun/position -6. +2.5 0. cm +# +#/gun/energy 1 GeV diff --git a/examples/extended/electromagnetic/TestEm3/exo5q2.mac b/examples/extended/electromagnetic/TestEm3/exo5q2.mac new file mode 100644 index 0000000000..ad93c457da --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo5q2.mac @@ -0,0 +1,25 @@ +# $Id: exo5q2.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# Tungsten 1 layer; +# +/control/verbose 2 +# +/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 +# +/gun/setDefault +# +/control/execute vis.mac +# +/gun/particle e- +/gun/energy 600 keV +# +/tracking/stepMax 1 mum diff --git a/examples/extended/electromagnetic/TestEm3/exo6q1.mac b/examples/extended/electromagnetic/TestEm3/exo6q1.mac new file mode 100644 index 0000000000..24e0691813 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo6q1.mac @@ -0,0 +1,33 @@ +# $Id: exo6q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# Iron 1 layer; +# +/control/verbose 2 +# +/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 +# +/gun/setDefault +# +/control/execute vis.mac +# +/process/list +/process/inactivate MuBrems +/process/inactivate MuIoni +/process/inactivate eBrem +/process/inactivate msc +# +/gun/particle mu+ +/gun/energy 1 TeV +/gun/position -6. +2.5 0. m +# + diff --git a/examples/extended/electromagnetic/TestEm3/exo6q2.mac b/examples/extended/electromagnetic/TestEm3/exo6q2.mac new file mode 100644 index 0000000000..43d1c8da7a --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/exo6q2.mac @@ -0,0 +1,32 @@ +# $Id: exo6q2.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# +# Macro file for "TestEm3.cc" +# +# Iron 1 layer; +# +/control/verbose 2 +# +/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 +# +/gun/setDefault +# +/control/execute vis.mac +# +/process/list +/process/inactivate MuIoni +/process/inactivate MuPairProd +# +/gun/particle mu+ +/gun/energy 1 TeV +# +#/run/beamOn +# +#/process/activate MuPairProd +#/run/beamOn diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3CalorHit.hh b/examples/extended/electromagnetic/TestEm3/include/Em3CalorHit.hh index 1a8bc47f1c..d1de04307a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh index 2679376c1d..3a37c55736 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh index 7c2ad2df34..bc217df025 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh index 969c2706d2..fa40f87b11 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em3DetectorMessenger.hh,v 1.5 2001/10/22 10:58:48 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh index f54d9d4c8f..ce459374ae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh index ef4d8c74c7..343c659fd8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh index cec1879a85..5ed5e93ec9 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3PhysicsList.hh,v 1.5 2001/10/22 10:58:49 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em3PhysicsList.hh,v 1.6 2002/02/14 14:20:46 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -51,7 +51,8 @@ class Em3PhysicsList: public G4VUserPhysicsList void ConstructBosons(); void ConstructLeptons(); void ConstructMesons(); - void ConstructBarions(); + void ConstructBarions(); + void ConstructIons(); public: void SetCuts(); diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh index a1e0537426..9b0e1917c8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh index 125f0fbbb0..f78b39c30c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh index be3ae02cb8..44c09518bd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh index 586264fd24..68d88a06bf 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.9 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em3RunAction.hh,v 1.10 2002/06/05 12:13:04 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -43,8 +43,9 @@ class G4Run; class Em3RunActionMessenger; #ifndef G4NOHIST - class HepTupleManager; - class HepHistogram; + class ITree; + class IHistogramFactory; + class IHistogram1D; #endif class Em3RunAction : public G4UserRunAction @@ -60,7 +61,7 @@ class Em3RunAction : public G4UserRunAction void fillPerEvent(G4int,G4double,G4double); #ifndef G4NOHIST - HepHistogram* GetHisto(G4int id) {return histo[id];} + IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif void SetHisto (G4int id, G4int nbins, G4double vmin, G4double vmax); @@ -79,8 +80,9 @@ class Em3RunAction : public G4UserRunAction Em3RunActionMessenger* runMessenger; #ifndef G4NOHIST - HepTupleManager* hbookManager; - HepHistogram* histo[MaxAbsor]; + ITree* tree; + IHistogramFactory* hf; + IHistogram1D* histo[MaxAbsor]; #endif }; diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh index dcbd46a6d9..dd3289cc3f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh index 3e3a36079c..9a1d1269c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh index 57939e3994..fc4200d3da 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 2353494f68..9a971277b8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/run07.mac b/examples/extended/electromagnetic/TestEm3/run07.mac index 3d91ba0044..217123e08d 100644 --- a/examples/extended/electromagnetic/TestEm3/run07.mac +++ b/examples/extended/electromagnetic/TestEm3/run07.mac @@ -1,4 +1,4 @@ -# $Id: run07.mac,v 1.4 2001/11/05 15:28:39 maire Exp $ +# $Id: run07.mac,v 1.5 2002/02/14 14:20:45 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -26,4 +26,4 @@ # /gun/particle proton /gun/energy 500 MeV -/run/beamOn 1000 +#/run/beamOn 1000 diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc b/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc index e07e45e383..2bc7a3fab3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc index 0e53463946..ac4489a07a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc index 90afdba46a..a27732c558 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Em3DetectorConstruction.cc,v 1.5 2001/10/22 10:58:55 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc index effaa86715..bc17965031 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em3DetectorMessenger.cc,v 1.6 2001/11/05 15:28:40 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc index ad3fd683aa..a3f23f2ffd 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3EventAction.cc,v 1.12 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em3EventAction.cc,v 1.13 2002/06/05 12:13:04 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -49,7 +49,7 @@ #include "G4UnitsTable.hh" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -115,7 +115,7 @@ void Em3EventAction::EndOfEventAction(const G4Event* evt) #ifndef G4NOHIST //fill histo // - Em3Run->GetHisto(k)->accumulate(totEAbs/Ebeam); + Em3Run->GetHisto(k)->fill(totEAbs/Ebeam); #endif } } diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc index 33477f0e28..4a25af1d1e 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em3EventActionMessenger.cc,v 1.5 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc index 2c30a9619a..c7f848e401 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.7 2001/10/22 10:58:57 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em3PhysicsList.cc,v 1.8 2002/02/14 14:20:46 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -73,6 +73,7 @@ void Em3PhysicsList::ConstructParticle() ConstructLeptons(); ConstructMesons(); ConstructBarions(); + ConstructIons(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -135,7 +136,13 @@ void Em3PhysicsList::ConstructBarions() G4AntiNeutron::AntiNeutronDefinition(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void Em3PhysicsList::ConstructIons() +{ +// Ions + G4Alpha::AlphaDefinition(); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void Em3PhysicsList::ConstructProcess() diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc index 7b055094b0..ffd0013536 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em3PhysicsListMessenger.cc,v 1.3 2001/10/22 10:58:57 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc index ec852af6dd..84384a9c53 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc index 03bd286964..5189d41ee0 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em3PrimaryGeneratorMessenger.cc,v 1.5 2001/10/22 10:58:57 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc index db89cd2752..78a94a004f 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.15 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em3RunAction.cc,v 1.17 2002/06/05 16:42:24 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -44,7 +44,15 @@ #include "g4std/iomanip" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #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" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -55,9 +63,22 @@ Em3RunAction::Em3RunAction(Em3DetectorConstruction* det) runMessenger = new Em3RunActionMessenger(this); #ifndef G4NOHIST - // init hbook - hbookManager = new HBookFile("TestEm3.paw", 68); - for (G4int k=0; kcreateTreeFactory(); + + // Creating a tree mapped to an hbook file. + tree = tf->create("testem3.paw", false, false, "hbook"); + + // Creating a histogram factory, whose histograms will be handled by the tree + hf = af->createHistogramFactory(*tree); + + for (G4int k=0; kwrite(); - // Delete HBOOK stuff - delete [] histo; - delete hbookManager; + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + + delete hf; + delete tree; #endif } @@ -112,15 +133,14 @@ void Em3RunAction::bookHisto() { #ifndef G4NOHIST // book histograms - char str[25]; - strcpy(str,"Edep/Ebeam in absorber "); + const G4String title = "Edep/Ebeam in absorber "; + const G4String id[] = {"0","1","2","3","4","5","6","7","8","9","10"}; G4int nbins=100; G4double vmin=0., vmax=1.; G4int NbOfAbsor = Detector->GetNbOfAbsor(); - for (G4int k=0; khistogram(str,nbins,vmin,vmax); + if (histo[k]==0) + { histo[k] = hf->create1D(id[k+1],title+id[k],nbins,vmin,vmax); G4cout << "bookHisto: " << k << " " << histo[k] << G4endl; } } @@ -129,16 +149,14 @@ void Em3RunAction::bookHisto() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3RunAction::SetHisto(G4int idh,G4int nbins,G4double vmin,G4double vmax) +void Em3RunAction::SetHisto(G4int k,G4int nbins,G4double vmin,G4double vmax) { #ifndef G4NOHIST // (re)book histograms - char str[25]; - strcpy(str,"Edep/Ebeam in absorber "); - str[23] = (char)((int)('0') + idh); -/// if (histo[idh] != NULL) delete histo[idh]; - histo[idh] = hbookManager->histogram(str,nbins,vmin,vmax); - G4cout << "SetHisto: " << idh << " " << histo[idh] << G4endl; + 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); + G4cout << "SetHisto: " << k << " " << histo[k] << G4endl; #endif } diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3RunActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3RunActionMessenger.cc index 73b2d2361d..c997f14e8b 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3RunActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3RunActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em3RunActionMessenger.cc,v 1.8 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc index 001057631e..61c363674b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc index a8390ad1c3..e7032a486f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 index 82437a353c..a76ecc9d2c 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: Em3VisManager.cc,v 1.6 2001/11/15 13:09:47 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/electromagnetic/TestEm4/GNUmakefile b/examples/extended/electromagnetic/TestEm4/GNUmakefile index 337c4f37a0..cf738f3ba0 100644 --- a/examples/extended/electromagnetic/TestEm4/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm4/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2001/02/21 10:14:37 maire Exp $ +# $Id: GNUmakefile,v 1.7 2002/05/29 15:33:59 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -20,8 +20,9 @@ G4NOHIST := true ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else - LDFLAGS += -L$(CERN)/pro/lib - LOADLIBS += -lpacklib $(FCLIBS) + # for the aida-config command see the README file + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm4/History b/examples/extended/electromagnetic/TestEm4/History index 0fe83a992c..129d926072 100644 --- a/examples/extended/electromagnetic/TestEm4/History +++ b/examples/extended/electromagnetic/TestEm4/History @@ -1,4 +1,4 @@ -$Id: History,v 1.14 2001/11/28 15:07:21 maire Exp $ +$Id: History,v 1.18 2002/06/05 17:35:11 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,17 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +05-06-02 mma (testem4-V04-00-02) +-do not delete histos in destructor + +29-05-02 mma (testem4-V04-00-01) +-old histograming package clhep/hist replaced by AIDA 2.2/anaphe + +06-02-02 mma (testem4-V04-00-00) + +10-12-01 mma +- PrimaryGenerator: uniform distribution in solid angle + 28-11-01 mma (testem4-V03-02-02) - EventAction: DrawTrack "none" - small change in vis.mac diff --git a/examples/extended/electromagnetic/TestEm4/README b/examples/extended/electromagnetic/TestEm4/README index c73d87e781..38f1cb28b0 100644 --- a/examples/extended/electromagnetic/TestEm4/README +++ b/examples/extended/electromagnetic/TestEm4/README @@ -1,4 +1,4 @@ -$Id: README,v 1.5 2001/10/25 14:04:22 maire Exp $ +$Id: README,v 1.6 2002/05/29 15:32:27 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -40,7 +40,7 @@ $Id: README,v 1.5 2001/10/25 14:04:22 maire Exp $ 5- PHYSICS SURVEY - the energy deposited in C6F6 is histogramed (HEP Hist) + the energy deposited in C6F6 is histogramed 6- HOW TO START ? @@ -65,7 +65,23 @@ $Id: README,v 1.5 2001/10/25 14:04:22 maire Exp $ paw> h/pl 1 Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - Currently, histograms in this example are implemented through the obsolete - CLHEP/Hist package, which is no longer supported. The implementation will - be replaced by direct call to the "analysis" module in a near future. + + 7- Using the Anaphe implementation of the AIDA 2.2 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): + + # 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. diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.cc b/examples/extended/electromagnetic/TestEm4/TestEm4.cc index aa89fe9cae..162cbaad52 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out index 166ff8e8b2..fdab6dc76c 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.out +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -19,15 +19,13 @@ Current available graphics systems are: Material: FluorCarbonate density: 1.610 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 22.435 cm ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 38.74 % Abundance 50.00 % ---> Element: Fluorine N Z = 9.0 N = 19.0 A = 18.99 g/mole fractionMass: 61.26 % Abundance 50.00 % -Em4PhysicsList::SetCuts:CutLength : 1 (mm) -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. +Em4PhysicsList::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 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 @@ -88,11 +86,11 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 50000 - User=30s Real=6e+02s Sys=51s + User=21s Real=6.6e+02s Sys=51s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 396267069, 1477813938 + Current couple of seeds = 156333429, 267719658 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm4/geant3/run01.dat b/examples/extended/electromagnetic/TestEm4/geant3/run01.dat index b502c20fcc..dcda70b44e 100644 --- a/examples/extended/electromagnetic/TestEm4/geant3/run01.dat +++ b/examples/extended/electromagnetic/TestEm4/geant3/run01.dat @@ -1,7 +1,7 @@ LIST TRIG 100000 KINE 1 (Itype) 0.009(Ekine) -DEBUG 1 5 1000 +DEBUG 1 5 10000 SWIT 0 (draw) 1 (save) CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) 2*10.e-6 (bcute/m) 2*428.e-6 (dcute/m) diff --git a/examples/extended/electromagnetic/TestEm4/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm4/geant3/src/gukine.F index 815b3d7aae..c9a5251ea3 100644 --- a/examples/extended/electromagnetic/TestEm4/geant3/src/gukine.F +++ b/examples/extended/electromagnetic/TestEm4/geant3/src/gukine.F @@ -18,12 +18,13 @@ CALL GSVERT(VERTEX,0,0,0,0,NVERT) * CALL GRNDM(RNDM,2) - THETA = PI*RNDM(1) - PHI = TWOPI*RNDM(2) + cosTheta = 2*RNDM(1) - 1. + sinTheta = sqrt(1. - cosTheta**2) + Phi = TWOPI*RNDM(2) * - PLAB(1) = PKINE(1)*SIN(THETA)*COS(PHI) - PLAB(2) = PKINE(1)*SIN(THETA)*SIN(PHI) - PLAB(3) = PKINE(1)*COS(THETA) + PLAB(1) = PKINE(1)*sinTheta*COS(Phi) + PLAB(2) = PKINE(1)*sinTheta*SIN(Phi) + PLAB(3) = PKINE(1)*cosTheta * CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) * diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh index 81b02a3cbe..3efea9c123 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh index d3e35a5ee9..a8c3e65587 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh index 091c422748..dabda2aad7 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em4EventActionMessenger.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh b/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh index 17569fb881..11d4c9f399 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh index a3715dfa00..0c382b9397 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh index 84c57a388e..de0d6496e0 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.8 2001/11/28 15:07:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em4RunAction.hh,v 1.9 2002/05/29 15:32:28 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -40,8 +40,8 @@ class G4Run; #ifndef G4NOHIST - class HepTupleManager; - class HepHistogram; + class ITree; + class IHistogram1D; #endif class Em4RunAction : public G4UserRunAction @@ -55,17 +55,16 @@ class Em4RunAction : public G4UserRunAction void EndOfRunAction(const G4Run*); #ifndef G4NOHIST - HepHistogram* GetHisto(G4int id) {return histo[id];} + IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif private: void bookHisto(); - private: - + private: #ifndef G4NOHIST - HepTupleManager* hbookManager; - HepHistogram* histo[1]; + ITree* tree; // the tree should only be deleted at the end + 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 008ad754d8..4a092e162d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm4/include/Em4SteppingVerbose.hh index 5579ee3346..f03cc93d8e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 efe27ae460..bd3947f373 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc index ccc2410325..4aa350c7fb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc index d5f1f666d8..1eef89efae 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4EventAction.cc,v 1.9 2001/11/28 15:07:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em4EventAction.cc,v 1.10 2002/05/29 15:32:28 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -44,7 +44,7 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -85,7 +85,7 @@ void Em4EventAction::EndOfEventAction( const G4Event* evt) << G4BestUnit(TotalEnergyDeposit,"Energy") << G4endl; #ifndef G4NOHIST - Em4Run->GetHisto(0)->accumulate(TotalEnergyDeposit/MeV); + Em4Run->GetHisto(0)->fill(TotalEnergyDeposit/MeV); #endif if(G4VVisManager::GetConcreteInstance()) diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc index 680cb97af3..7ba1997c79 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em4EventActionMessenger.cc,v 1.4 2001/10/17 14:04:15 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc b/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc index af65222773..aae0a655a4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc index ef6673f3b3..025d500f11 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4PrimaryGeneratorAction.cc,v 1.4 2001/10/17 14:04:16 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em4PrimaryGeneratorAction.cc,v 1.5 2001/12/10 16:05:16 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -68,10 +68,13 @@ void Em4PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event // - G4double theta = pi*G4UniformRand(), phi = twopi*G4UniformRand(); - G4double ux = sin(theta)*cos(phi), - uy = sin(theta)*sin(phi), - uz = cos(theta); + //distribution uniform in solid angle + // + G4double cosTheta = 2*G4UniformRand() - 1., phi = twopi*G4UniformRand(); + G4double sinTheta = sqrt(1. - cosTheta*cosTheta); + G4double ux = sinTheta*cos(phi), + uy = sinTheta*sin(phi), + uz = cosTheta; particleGun->SetParticleMomentumDirection(G4ThreeVector(ux,uy,uz)); diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc index c086589a18..6ac9305008 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.11 2001/11/28 15:07:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em4RunAction.cc,v 1.14 2002/06/05 17:31:20 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -40,7 +40,15 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" + #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" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -55,11 +63,10 @@ Em4RunAction::Em4RunAction() Em4RunAction::~Em4RunAction() { #ifndef G4NOHIST - // Write histogram file - hbookManager->write(); - // Delete HBOOK stuff - delete [] histo; - delete hbookManager; + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + + delete tree; #endif } @@ -69,12 +76,24 @@ Em4RunAction::~Em4RunAction() void Em4RunAction::bookHisto() { #ifndef G4NOHIST - // init hbook - hbookManager = new HBookFile("TestEm4.paw", 68); + // Creating the analysis factory + IAnalysisFactory* af = AIDA_createAnalysisFactory(); + + // Creating the tree factory + ITreeFactory* tf = af->createTreeFactory(); + + // Creating a tree mapped to an hbook file. + tree = tf->create("testem4.paw", false, false, "hbook"); - // book histograms - histo[0] = hbookManager->histogram("total energy deposit in C6F6 (MeV)" - , 100,0.,10.); + // Creating a histogram factory, whose histograms will be handled by the tree + IHistogramFactory* hf = af->createHistogramFactory(*tree); + + // Creating the histogram + histo[0]=hf->create1D("1","total energy deposit in C6F6 (MeV)",100,0.,10.); + + delete hf; + delete tf; + delete af; #endif } diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc index 724a9ca8c5..9549bb41a4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc index bbff262e1f..c99c039151 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 index 689613b262..4fa6f2d1a9 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: Em4VisManager.cc,v 1.6 2001/11/15 13:09:48 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/electromagnetic/TestEm5/GNUmakefile b/examples/extended/electromagnetic/TestEm5/GNUmakefile index 6978980566..bfb2d5077c 100644 --- a/examples/extended/electromagnetic/TestEm5/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm5/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.6 2001/11/05 17:57:58 maire Exp $ +# $Id: GNUmakefile,v 1.7 2002/06/06 17:23:20 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -20,8 +20,9 @@ G4NOHIST := true ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else - LDFLAGS += -L$(CERN)/pro/lib - LOADLIBS += -lpacklib $(FCLIBS) + # for the aida-config command see the README file + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm5/History b/examples/extended/electromagnetic/TestEm5/History index f270256f88..64223066f3 100644 --- a/examples/extended/electromagnetic/TestEm5/History +++ b/examples/extended/electromagnetic/TestEm5/History @@ -1,4 +1,4 @@ -$Id: History,v 1.13 2001/11/28 16:08:18 maire Exp $ +$Id: History,v 1.17 2002/06/06 17:23:21 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,19 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-06-02 mma (testem5-V04-00-03) +-old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README + +08-03-02 mma (testem5-V04-00-01) +- PhysicsList: uniformisation of the setG(E)Cut commands + +06-02-02 mma (testem5-V04-00-00) + +06-12-01 mma +- In PrimaryGeneratorAction, possibility to randomize the beam spot +- command /gun/rndm in PrimaryGeneratorMessenger +- similar functionality in geant3: gukine.F + 28-11-01 mma (testem5-V03-02-02) - EventAction: DrawTrack "none" - small change in vis.mac diff --git a/examples/extended/electromagnetic/TestEm5/README b/examples/extended/electromagnetic/TestEm5/README index 689899f5f6..d3bf2ad47c 100644 --- a/examples/extended/electromagnetic/TestEm5/README +++ b/examples/extended/electromagnetic/TestEm5/README @@ -1,4 +1,4 @@ -$Id: README,v 1.4 2001/11/05 17:57:58 maire Exp $ +$Id: README,v 1.6 2002/06/06 17:23:21 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -34,6 +34,10 @@ $Id: README,v 1.4 2001/11/05 17:57:58 maire Exp $ and its energy are set in the PrimaryGeneratorAction class, and can be changed via the G4 build-in commands of ParticleGun class (see the macros provided with this example). + + In addition one can choose randomly the impact point of the incident + particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. A RUN is a set of events. @@ -141,8 +145,25 @@ $Id: README,v 1.4 2001/11/05 17:57:58 maire Exp $ 9. z distribution of the secondary charged vertices (mm) 10. kinetic energy of the photons escaping the absorber (MeV) - Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - Currently, histograms in this example are implemented through the obsolete - CLHEP/Hist package, which is no longer supported. The implementation will - be replaced by direct call to the "analysis" module in a near future. + Note that histograms are disabled via the flag G4NOHIST in GNUmakefile. + +8- Using the Anaphe implementation of the AIDA 2.2 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): + + # 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. + diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.cc b/examples/extended/electromagnetic/TestEm5/TestEm5.cc index efc4cce966..ace2a20965 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.in b/examples/extended/electromagnetic/TestEm5/TestEm5.in index 61711948c8..bc08e4b8aa 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.in +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.in @@ -6,8 +6,8 @@ /control/verbose 2 /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.0 mum +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.0 mum /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out index b61b889633..478d674e44 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -18,8 +18,8 @@ Current available graphics systems are: VRML2FILE (VRML2FILE) /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.0 mum +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.0 mum /run/initialize userDetector->Construct() start. @@ -96,16 +96,14 @@ userDetector->Construct() start. The ABSORBER is made of 1 cm of Silicon. The transverse size (YZ) is 2 cm X position of the middle of the absorber 0 fm physicsList->Construct() start. + +phot: Total cross sections from Sandia parametrisation. physicsList->setCut() start. Em5PhysicsList::SetCuts:CutLength : 1 mm -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. - 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 @@ -265,99 +263,28 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100000 - User=69s Real=3.4e+03s Sys=5e+02s + User=58s Real=1.1e+03s Sys=1.2e+02s ================== run summary ===================== end of Run TotNbofEvents = 100000 - mean charged track length in absorber=0.0209662 +- 1.5147e-05 mm + mean charged track length in absorber=0.0209457 +- 1.48628e-05 mm - mean energy deposit in absorber=0.00668476 +- 2.09e-05 MeV + mean energy deposit in absorber=0.006678 +- 2.04253e-05 MeV - mean number of steps in absorber (charged) =0.10345 +- 0.00245985 + 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 charged secondaries = 0.01866 +- 0.000447569 + mean number of charged secondaries = 0.03788 +- 0.000638476 - mean number of neutral secondaries = 3e-05 +- 1.73202e-05 + mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.01866 and e+s =0 + mean number of e-s =0.03788 and e+s =0 (number) transmission coeff=1 reflection coeff=0 - energy deposit distribution -#entries=100000 #underflows=0 #overflows=5729 - bin nb Elow entries normalized - 0 0 0 0 - 1 0.0002 0 0 - 2 0.0004 0 0 - 3 0.0006 0 0 - 4 0.0008 0 0 - 5 0.001 2 0.1 - 6 0.0012 2 0.1 - 7 0.0014 11 0.55 - 8 0.0016 33 1.65 - 9 0.0018 93 4.65 - 10 0.002 217 10.85 - 11 0.0022 440 22 - 12 0.0024 772 38.6 - 13 0.0026 1255 62.75 - 14 0.0028 1830 91.5 - 15 0.003 2621 131.05 - 16 0.0032 3371 168.55 - 17 0.0034 4058 202.9 - 18 0.0036 4589 229.45 - 19 0.0038 4737 236.85 - 20 0.004 4838 241.9 - 21 0.0042 4969 248.45 - 22 0.0044 4696 234.8 - 23 0.0046 4452 222.6 - 24 0.0048 4103 205.15 - 25 0.005 3751 187.55 - 26 0.0052 3468 173.4 - 27 0.0054 3172 158.6 - 28 0.0056 2838 141.9 - 29 0.0058 2723 136.15 - 30 0.006 2422 121.1 - 31 0.0062 2208 110.4 - 32 0.0064 2011 100.55 - 33 0.0066 1965 98.25 - 34 0.0068 1891 94.55 - 35 0.007 1722 86.1 - 36 0.0072 1607 80.35 - 37 0.0074 1518 75.9 - 38 0.0076 1334 66.7 - 39 0.0078 1245 62.25 - 40 0.008 1227 61.35 - 41 0.0082 1100 55 - 42 0.0084 967 48.35 - 43 0.0086 910 45.5 - 44 0.0088 826 41.3 - 45 0.009 798 39.9 - 46 0.0092 716 35.8 - 47 0.0094 660 33 - 48 0.0096 619 30.95 - 49 0.0098 558 27.9 - 50 0.01 518 25.9 - 51 0.0102 474 23.7 - 52 0.0104 450 22.5 - 53 0.0106 395 19.75 - 54 0.0108 395 19.75 - 55 0.011 347 17.35 - 56 0.0112 321 16.05 - 57 0.0114 288 14.4 - 58 0.0116 280 14 - 59 0.0118 267 13.35 - 60 0.012 253 12.65 - 61 0.0122 276 13.8 - 62 0.0124 260 13 - 63 0.0126 184 9.2 - 64 0.0128 218 10.9 - - Emp = 0.0042 width= 0.0028 MeV - --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 115961453, 1292148745 + Current couple of seeds = 2114771135, 1541635325 ---------------------------------------- # Graphics systems deleted. diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F index c48b0811d7..8a4d17c166 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F @@ -1,17 +1,30 @@ SUBROUTINE GUKINE -C +* +* Generates Kinematics for primary track +* +* Data card Kine : Itype Ekine theta phi rbeam +* +* rbeam : size of the random beam extension in fraction of 0.5*calorYZ +* #include "geant321/gcbank.inc" #include "geant321/gcflag.inc" #include "geant321/gconst.inc" #include "geant321/gckine.inc" #include "edepo.inc" -C +* DIMENSION VERTEX(3),PLAB(3) -C + dimension rndm(2) +* +* random in YZ ? + if ((pkine(4).lt.0.).or.(pkine(4).gt.1.)) pkine(4) = 0. + rbeam = pkine(4)*0.5*YZABSO + call GRNDM (rndm,2) +* VERTEX(1)=XVERT - VERTEX(2)=YVERT - VERTEX(3)=ZVERT + VERTEX(2)=YVERT + (2*rndm(1)-1.)*rbeam + VERTEX(3)=ZVERT + (2*rndm(2)-1.)*rbeam +* CALL GSVERT(VERTEX,0,0,0,0,NVERT) * JPA = LQ(JPART-IKINE) diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F index 18e0a31f91..0d2090a69d 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F @@ -30,11 +30,11 @@ C + ,NHI6,HIS6(1),HIS6(2),0.) ENDIF IF(NHI7.GT.0) THEN - CALL HBOOK1(7,'kinetic energy of backscattered primaries(deg)' + CALL HBOOK1(7,'kinetic energy of backscattered primaries(MeV)' + ,NHI7,HIS7(1),HIS7(2),0.) ENDIF IF(NHI8.GT.0) THEN - CALL HBOOK1(8,'kinetic energy of the charged secondaries(deg)' + CALL HBOOK1(8,'kinetic energy of the charged secondaries(MeV)' + ,NHI8,HIS8(1),HIS8(2),0.) ENDIF IF(NHI9.GT.0) THEN diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh b/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh index 44a6570774..3237dd5905 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh index 07fb745371..79b05bba37 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh index a44ce94c5b..513be81d49 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh index d062e1bf16..af9ecfcaf2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh index a1ee3b1888..ede42d7a70 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh index d3cf957b85..53cb5d1c84 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh index 14fb9c092d..4adbc4c5b5 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PhysicsList.hh,v 1.5 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PhysicsList.hh,v 1.7 2002/06/05 15:43:42 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -70,7 +70,6 @@ class Em5PhysicsList: public G4VUserPhysicsList void SetGammaCut(G4double); void SetElectronCut(G4double); void SetProtonCut(G4double); - void SetCutsByEnergy(G4double); void GetRange(G4double); void SetMaxStep(G4double); diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh index 20bfc50721..e41f71c4bc 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PhysicsListMessenger.hh,v 1.4 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PhysicsListMessenger.hh,v 1.6 2002/06/05 15:43:42 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -57,7 +57,6 @@ class Em5PhysicsListMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* cutECmd; G4UIcmdWithADoubleAndUnit* cutPCmd; G4UIcmdWithADoubleAndUnit* rCmd; - G4UIcmdWithADoubleAndUnit* eCmd; G4UIcmdWithADoubleAndUnit* setMaxStepCmd; }; diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh index ab3e307b17..3616b6f341 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorAction.hh,v 1.4 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PrimaryGeneratorAction.hh,v 1.6 2002/06/05 15:43:42 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -49,15 +49,14 @@ class Em5PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction ~Em5PrimaryGeneratorAction(); public: - void SetDefaultKinematic(); + void SetDefaultKinematic(); + void SetRndmBeam(G4double val) {rndmBeam = val;}; void GeneratePrimaries(G4Event*); - static G4String GetPrimaryName() ; private: G4ParticleGun* particleGun; Em5DetectorConstruction* Em5Detector; - - static G4String thePrimaryParticleName; + G4double rndmBeam; Em5PrimaryGeneratorMessenger* gunMessenger; }; diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh index ffa8b3034a..5d2bce9726 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorMessenger.hh,v 1.4 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PrimaryGeneratorMessenger.hh,v 1.6 2002/06/05 15:43:42 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -37,6 +37,7 @@ class Em5PrimaryGeneratorAction; class G4UIcmdWithoutParameter; +class G4UIcmdWithADouble; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,6 +52,7 @@ class Em5PrimaryGeneratorMessenger: public G4UImessenger private: Em5PrimaryGeneratorAction* Em5Action; G4UIcmdWithoutParameter* DefaultCmd; + G4UIcmdWithADouble* RndmCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh index 9535521373..97f2de8434 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.8 2001/11/28 16:08:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5RunAction.hh,v 1.10 2002/06/06 17:23:22 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -42,8 +42,8 @@ class Em5RunMessenger; class G4Run; #ifndef G4NOHIST - class HepTupleManager; - class HepHistogram; + class ITree; + class IHistogram1D; #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,17 +68,6 @@ class Em5RunAction : public G4UserRunAction void AddTrRef(G4double tr,G4double ref); - void FillEn(G4double En); - void FillTh(G4double Th); - void FillThBack(G4double Th); - void FillR(G4double R); - void FillTt(G4double Tt); - void FillTb(G4double Tt); - void FillTsec(G4double T); - void FillGammaSpectrum(G4double E); - void FillNbOfSteps(G4double nstep); - void Fillvertexz(G4double z); - void SethistName(G4String name) ; void SetnbinStep(G4int nbin); @@ -121,63 +110,54 @@ class Em5RunAction : public G4UserRunAction void Setzlow(G4double z); void Setzhigh(G4double z); + G4double GetdTh() { return dTh;}; + G4double GetdThback() { return dThback;}; +#ifndef G4NOHIST + IHistogram1D* GetHisto(G4int id) {return histo[id];} +#endif + private: void bookHisto(); private: - G4String histName ; + G4String histName; #ifndef G4NOHIST - HepTupleManager* hbookManager; - HepHistogram *histo1, *histo2, *histo3, *histo4, *histo5 ; - HepHistogram *histo6, *histo7, *histo8, *histo9, *histo10; - HepHistogram *hi2bis; + ITree* tree; + IHistogram1D* histo[10]; #endif G4double EnergySumAbs,EnergySquareSumAbs; G4double tlSumAbs,tlsquareSumAbs; - G4double nStepSumCharged,nStepSum2Charged ; - G4double nStepSumNeutral,nStepSum2Neutral ; + G4double nStepSumCharged,nStepSum2Charged; + G4double nStepSumNeutral,nStepSum2Neutral; G4double TotNbofEvents; G4double SumCharged,Sum2Charged,SumNeutral,Sum2Neutral; G4double Selectron,Spositron; - G4double Transmitted,Reflected ; + G4double Transmitted,Reflected; - G4double entryStep,underStep,overStep,distStep[200]; - G4double Steplow,Stephigh,dStep; + G4double Steplow,Stephigh; G4int nbinStep; - G4double entryEn,underEn,overEn,distEn[200]; - G4double Enlow,Enhigh,dEn; + G4double Enlow,Enhigh; G4int nbinEn; - G4double entryTt,underTt,overTt,distTt[200]; - G4double Ttlow,Tthigh,dTt; + G4double Ttlow,Tthigh; G4int nbinTt; - G4double Ttmean,Tt2mean; - G4double entryTb,underTb,overTb,distTb[200]; - G4double Tblow,Tbhigh,dTb; + G4double Tblow,Tbhigh; G4int nbinTb; - G4double Tbmean,Tb2mean; - G4double entryTsec,underTsec,overTsec,distTsec[200]; - G4double Tseclow,Tsechigh,dTsec; + G4double Tseclow,Tsechigh; G4int nbinTsec; - G4double entryTh,underTh,overTh,distTh[200]; G4double Thlow,Thhigh,dTh; G4int nbinTh; - G4double entryThback,underThback,overThback,distThback[200]; G4double Thlowback,Thhighback,dThback; G4int nbinThback; - G4double entryR ,underR ,overR ,distR[200]; - G4double Rlow,Rhigh,dR; + G4double Rlow,Rhigh; G4int nbinR; - G4double Rmean,R2mean; - G4double entryGamma,underGamma,overGamma,distGamma[200]; - G4double ElowGamma,EhighGamma,dEGamma; + G4double ElowGamma,EhighGamma; G4int nbinGamma ; - G4double entryvertexz,undervertexz,oververtexz,distvertexz[200]; - G4double zlow,zhigh,dz; + G4double zlow,zhigh; G4int nbinvertexz; Em5RunMessenger* runMessenger; diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh index b977399a7e..1307180a21 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5StepCut.hh b/examples/extended/electromagnetic/TestEm5/include/Em5StepCut.hh index f28fb550d5..0df201947f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh index 7a933612ae..e4dc947b5c 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5SteppingAction.hh,v 1.4 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5SteppingAction.hh,v 1.5 2002/06/05 15:43:43 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -45,6 +45,11 @@ class Em5SteppingMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#ifndef G4NOHIST + class HepTupleManager; + class HepHistogram; +#endif + class Em5SteppingAction : public G4UserSteppingAction { public: diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh index 1f587458a6..83da9de560 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh index 6a1408b384..e376ddce90 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 02d8713197..9d9fb2ac69 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/run01.mac b/examples/extended/electromagnetic/TestEm5/run01.mac index 93f0c8acf4..53c4d1ff87 100644 --- a/examples/extended/electromagnetic/TestEm5/run01.mac +++ b/examples/extended/electromagnetic/TestEm5/run01.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 13.0 micrometer -/calor/cutE 1.12 micrometer +/run/particle/setGCut 13.0 micrometer +/run/particle/setEcut 1.12 micrometer /run/initialize # /calor/setAbsMat Gold diff --git a/examples/extended/electromagnetic/TestEm5/run01a.mac b/examples/extended/electromagnetic/TestEm5/run01a.mac index 198344298c..c583d5507a 100644 --- a/examples/extended/electromagnetic/TestEm5/run01a.mac +++ b/examples/extended/electromagnetic/TestEm5/run01a.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 13.0 micrometer -/calor/cutE 1.12 micrometer +/run/particle/setGCut 13.0 micrometer +/run/particle/setEcut 1.12 micrometer /run/initialize # /calor/setAbsMat Gold diff --git a/examples/extended/electromagnetic/TestEm5/run02.mac b/examples/extended/electromagnetic/TestEm5/run02.mac index f10d47bbb6..2580f1ca50 100644 --- a/examples/extended/electromagnetic/TestEm5/run02.mac +++ b/examples/extended/electromagnetic/TestEm5/run02.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 13.0 micrometer -/calor/cutE 1.12 micrometer +/run/particle/setGCut 13.0 mum +/run/particle/setEcut 1.12 mum /run/initialize # /calor/setAbsMat Gold diff --git a/examples/extended/electromagnetic/TestEm5/run02a.mac b/examples/extended/electromagnetic/TestEm5/run02a.mac index 3dae98ed6d..a06c13f0a6 100644 --- a/examples/extended/electromagnetic/TestEm5/run02a.mac +++ b/examples/extended/electromagnetic/TestEm5/run02a.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 13.0 micrometer -/calor/cutE 1.12 micrometer +/run/particle/setGCut 13.0 micrometer +/run/particle/setECut 1.12 micrometer /run/initialize # /calor/setAbsMat Gold diff --git a/examples/extended/electromagnetic/TestEm5/run03.mac b/examples/extended/electromagnetic/TestEm5/run03.mac index 9e791904bf..bcf203ddca 100644 --- a/examples/extended/electromagnetic/TestEm5/run03.mac +++ b/examples/extended/electromagnetic/TestEm5/run03.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2130.0 micrometer -/calor/cutE 7.000 micrometer +/run/particle/setGCut 2130.0 micrometer +/run/particle/setECut 7.000 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run04.mac b/examples/extended/electromagnetic/TestEm5/run04.mac index cbf05d8799..43a381f4d6 100644 --- a/examples/extended/electromagnetic/TestEm5/run04.mac +++ b/examples/extended/electromagnetic/TestEm5/run04.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2130.0 micrometer -/calor/cutE 7.000 micrometer +/run/particle/setGCut 2130.0 micrometer +/run/particle/setECut 7.000 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run05.mac b/examples/extended/electromagnetic/TestEm5/run05.mac index 6bf220a384..d60e536848 100644 --- a/examples/extended/electromagnetic/TestEm5/run05.mac +++ b/examples/extended/electromagnetic/TestEm5/run05.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2250.0 micrometer -/calor/cutE 6.050 micrometer +/run/particle/setGCut 2250.0 micrometer +/run/particle/setECut 6.050 micrometer /run/initialize # /calor/setAbsMat Aluminium diff --git a/examples/extended/electromagnetic/TestEm5/run11.mac b/examples/extended/electromagnetic/TestEm5/run11.mac index b999107ea1..ff9a7ca598 100644 --- a/examples/extended/electromagnetic/TestEm5/run11.mac +++ b/examples/extended/electromagnetic/TestEm5/run11.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.00 micrometer +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.00 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run12.mac b/examples/extended/electromagnetic/TestEm5/run12.mac index 9a8409f476..b9c33b88a3 100644 --- a/examples/extended/electromagnetic/TestEm5/run12.mac +++ b/examples/extended/electromagnetic/TestEm5/run12.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.00 micrometer +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.00 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run13.mac b/examples/extended/electromagnetic/TestEm5/run13.mac index d1c7189fc8..8e4f55509e 100644 --- a/examples/extended/electromagnetic/TestEm5/run13.mac +++ b/examples/extended/electromagnetic/TestEm5/run13.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.00 micrometer +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.00 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run14.mac b/examples/extended/electromagnetic/TestEm5/run14.mac index b40f01494e..0c82c17b63 100644 --- a/examples/extended/electromagnetic/TestEm5/run14.mac +++ b/examples/extended/electromagnetic/TestEm5/run14.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.00 micrometer +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.00 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run15.mac b/examples/extended/electromagnetic/TestEm5/run15.mac index f91e75340d..a42223b9cd 100644 --- a/examples/extended/electromagnetic/TestEm5/run15.mac +++ b/examples/extended/electromagnetic/TestEm5/run15.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.00 micrometer +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.00 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run16.mac b/examples/extended/electromagnetic/TestEm5/run16.mac index 94cb4d14ef..2833bce9ea 100644 --- a/examples/extended/electromagnetic/TestEm5/run16.mac +++ b/examples/extended/electromagnetic/TestEm5/run16.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.00 micrometer +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.00 micrometer /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run17.mac b/examples/extended/electromagnetic/TestEm5/run17.mac index cf2f618a47..16a52b6fe3 100644 --- a/examples/extended/electromagnetic/TestEm5/run17.mac +++ b/examples/extended/electromagnetic/TestEm5/run17.mac @@ -6,8 +6,8 @@ /control/verbose 2 /run/verbose 2 # -/calor/cutG 100. mm -/calor/cutE 100. mm +/run/particle/setGCut 100. mm +/run/particle/setECut 100. mm /run/initialize # /calor/setAbsMat NewArgonCO2 diff --git a/examples/extended/electromagnetic/TestEm5/run18.mac b/examples/extended/electromagnetic/TestEm5/run18.mac index 02993d9927..16dc61b6f8 100644 --- a/examples/extended/electromagnetic/TestEm5/run18.mac +++ b/examples/extended/electromagnetic/TestEm5/run18.mac @@ -6,8 +6,8 @@ /control/verbose 2 /run/verbose 2 # -/calor/cutG 1. mm -/calor/cutE 1. mm +/run/particle/setGCut 1. mm +/run/particle/setECut 1. mm /run/initialize # /calor/setAbsMat XenonMethanePropane diff --git a/examples/extended/electromagnetic/TestEm5/run19.mac b/examples/extended/electromagnetic/TestEm5/run19.mac index c1457d7489..a52bd9a584 100644 --- a/examples/extended/electromagnetic/TestEm5/run19.mac +++ b/examples/extended/electromagnetic/TestEm5/run19.mac @@ -6,8 +6,8 @@ /control/verbose 2 /run/verbose 2 # -/calor/cutG 2.13 mm -/calor/cutE 7.0 mum +/run/particle/setGCut 2.13 mm +/run/particle/setECut 7.0 mum /run/initialize # /calor/setAbsMat Silicon diff --git a/examples/extended/electromagnetic/TestEm5/run20.mac b/examples/extended/electromagnetic/TestEm5/run20.mac index e1790b9120..2e15514ca7 100644 --- a/examples/extended/electromagnetic/TestEm5/run20.mac +++ b/examples/extended/electromagnetic/TestEm5/run20.mac @@ -6,8 +6,8 @@ /control/verbose 2 /run/verbose 2 # -/calor/cutG 1. mm -/calor/cutE 1. mm +/run/particle/setGCut 1. mm +/run/particle/setECut 1. mm /run/initialize # /calor/setAbsMat ArgonCH4 diff --git a/examples/extended/electromagnetic/TestEm5/run21.mac b/examples/extended/electromagnetic/TestEm5/run21.mac index 8353d0294d..10b40c6574 100644 --- a/examples/extended/electromagnetic/TestEm5/run21.mac +++ b/examples/extended/electromagnetic/TestEm5/run21.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 1.00 mm -/calor/cutE 5.0 mum +/run/particle/setGCut 1.00 mm +/run/particle/setECut 5.0 mum /run/initialize # /calor/setAbsMat Aluminium diff --git a/examples/extended/electromagnetic/TestEm5/run22.mac b/examples/extended/electromagnetic/TestEm5/run22.mac index 74447f231b..003ec1a7a2 100644 --- a/examples/extended/electromagnetic/TestEm5/run22.mac +++ b/examples/extended/electromagnetic/TestEm5/run22.mac @@ -7,8 +7,8 @@ #control/saveHistory /run/verbose 2 # -/calor/cutG 1.00 mm -/calor/cutE 5.0 mum +/run/particle/setGCut 1.00 mm +/run/particle/setECut 5.0 mum /run/initialize # /calor/setAbsMat Lead diff --git a/examples/extended/electromagnetic/TestEm5/run55.mac b/examples/extended/electromagnetic/TestEm5/run55.mac index b2d8210e99..fb1d07768e 100644 --- a/examples/extended/electromagnetic/TestEm5/run55.mac +++ b/examples/extended/electromagnetic/TestEm5/run55.mac @@ -6,8 +6,8 @@ /control/verbose 2 /run/verbose 2 # -/calor/cutG 1 mm -/calor/cutE 1 mm +/run/particle/setGCut 1 mm +/run/particle/setECut 1 mm /run/initialize # /calor/setAbsMat Iron diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc b/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc index cb80aa330e..0d15166b27 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc index ed535aea7a..755bcd04f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc index 43aeb84b72..88039fdf0e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc index b0bf404f4e..eabd7cee39 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em5DetectorMessenger.cc,v 1.5 2001/11/05 17:58:02 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc index abc812468e..cc29753bfa 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5EventAction.cc,v 1.7 2001/11/28 16:08:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5EventAction.cc,v 1.9 2002/06/06 17:23:22 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -47,6 +47,10 @@ #include "G4ios.hh" #include "G4UnitsTable.hh" +#ifndef G4NOHIST + #include "AIDA/IHistogram1D.h" +#endif + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... Em5EventAction::Em5EventAction(Em5RunAction* Em5RA) @@ -122,18 +126,24 @@ void Em5EventAction::EndOfEventAction(const G4Event* evt) // count event, add deposits to the sum ... runaction->CountEvent() ; runaction->AddTrackLength(totLAbs) ; - runaction->AddnStepsCharged(nstepCharged) ; - runaction->AddnStepsNeutral(nstepNeutral) ; + runaction->AddnStepsCharged(nstepCharged); + runaction->AddnStepsNeutral(nstepNeutral); if(verboselevel==2) G4cout << " Ncharged=" << Nch << " , Nneutral=" << Nne << G4endl; runaction->CountParticles(Nch,Nne); runaction->AddEP(NE,NP); - runaction->AddTrRef(Transmitted,Reflected) ; - runaction->AddEdeps(totEAbs) ; - runaction->FillEn(totEAbs) ; + runaction->AddTrRef(Transmitted,Reflected); + runaction->AddEdeps(totEAbs); +#ifndef G4NOHIST + if(runaction->GetHisto(1) != 0) + runaction->GetHisto(1)->fill(totEAbs); +#endif nstep=nstepCharged+nstepNeutral ; - runaction->FillNbOfSteps(nstep); +#ifndef G4NOHIST + if(runaction->GetHisto(0) != 0) + runaction->GetHisto(0)->fill(nstep); +#endif } G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc index 47ca95ab09..e4d15939e5 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em5EventActionMessenger.cc,v 1.4 2001/10/16 11:56:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc b/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc index b8c5a633c9..424ffd87e4 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.9 2001/10/16 11:56:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PhysicsList.cc,v 1.11 2002/06/05 15:43:43 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -252,6 +252,7 @@ void Em5PhysicsList::SetCuts() { if(cutForGamma == currentDefaultCut) cutForGamma = defaultCutValue; if(cutForElectron == currentDefaultCut) cutForElectron = defaultCutValue; + if(cutForProton == currentDefaultCut) cutForProton = defaultCutValue; currentDefaultCut = defaultCutValue; } @@ -269,8 +270,8 @@ void Em5PhysicsList::SetCuts() // set cut values for gamma at first and for e- second and next for e+, // because some processes for e+/e- need cut values for gamma + // SetCutValue(cutForGamma,"gamma"); - SetCutValue(cutForElectron,"e-"); SetCutValue(cutForElectron,"e+"); @@ -321,39 +322,6 @@ void Em5PhysicsList::SetProtonCut(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::SetCutsByEnergy(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - // 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 - G4ParticleDefinition* part; - G4double cut; - - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e-"); - - part = theParticleTable->FindParticle("e+"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "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 - part = theParticleTable->FindParticle("proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "proton"); - - part = theParticleTable->FindParticle("anti_proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Em5PhysicsList::GetRange(G4double val) { G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); @@ -365,8 +333,8 @@ void Em5PhysicsList::GetRange(G4double val) cut = G4EnergyLossTables::GetRange(part,val,currMat); G4cout << "material : " << currMat->GetName() << G4endl; G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << val / keV << " (keV)" << G4endl; - G4cout << "range : " << cut / mm << " (mm)" << G4endl; + G4cout << "energy : " << G4BestUnit(val,"Energy") << G4endl; + G4cout << "range : " << G4BestUnit(cut,"Length") << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -374,7 +342,7 @@ void Em5PhysicsList::GetRange(G4double val) void Em5PhysicsList::SetMaxStep(G4double step) { pStepCut->SetMaxStep(step); - G4cout << " MaxChargedStep=" << step/mm << " mm" << 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 de2b4181f1..49bb92b4d5 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.5 2001/11/05 17:58:02 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PhysicsListMessenger.cc,v 1.7 2002/06/05 15:43:43 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -39,36 +39,29 @@ Em5PhysicsListMessenger::Em5PhysicsListMessenger(Em5PhysicsList * List) :Em5List(List) { - cutGCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutG",this); - cutGCmd->SetGuidance("Set cut values by RANGE for Gamma."); - cutGCmd->SetParameterName("range",false); - cutGCmd->SetRange("range>0."); + cutGCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setGCut",this); + cutGCmd->SetGuidance("Set gamma cut."); + cutGCmd->SetParameterName("Gcut",false); + cutGCmd->SetRange("Gcut>0."); cutGCmd->SetUnitCategory("Length"); cutGCmd->AvailableForStates(PreInit,Idle); - cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); - cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); - cutECmd->SetParameterName("range",false); - cutECmd->SetRange("range>0."); + 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); - cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); - cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); - cutPCmd->SetParameterName("range",false); - cutPCmd->SetRange("range>0."); + 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); - eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); - eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); - eCmd->SetParameterName("energy",false); - eCmd->SetRange("energy>0."); - eCmd->SetUnitCategory("Energy"); - eCmd->AvailableForStates(PreInit,Idle); - - rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); - rCmd->SetGuidance("Display the RANGE of Electron for the current material."); + 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"); @@ -89,7 +82,6 @@ Em5PhysicsListMessenger::~Em5PhysicsListMessenger() delete cutECmd; delete cutPCmd; delete rCmd; - delete eCmd; delete setMaxStepCmd; } @@ -101,11 +93,9 @@ void Em5PhysicsListMessenger::SetNewValue(G4UIcommand* command, if(command == cutGCmd) { Em5List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} if(command == cutECmd) - { Em5List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} + { Em5List->SetElectronCut(cutECmd->GetNewDoubleValue(newValue));} if(command == cutPCmd) - { Em5List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));} - if(command == eCmd) - { Em5List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));} + { Em5List->SetProtonCut(cutPCmd->GetNewDoubleValue(newValue));} if(command == rCmd) { Em5List->GetRange(rCmd->GetNewDoubleValue(newValue));} if(command == setMaxStepCmd) diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc index 3dd036d76d..70598e22ce 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorAction.cc,v 1.4 2001/10/16 11:56:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PrimaryGeneratorAction.cc,v 1.6 2002/06/05 15:43:43 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -38,11 +38,7 @@ #include "G4ParticleGun.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - G4String Em5PrimaryGeneratorAction::thePrimaryParticleName="e-" ; +#include "Randomize.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,6 +49,7 @@ Em5PrimaryGeneratorAction::Em5PrimaryGeneratorAction( G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); SetDefaultKinematic(); + rndmBeam = 0.; //create a messenger for this class gunMessenger = new Em5PrimaryGeneratorMessenger(this); @@ -73,13 +70,9 @@ void Em5PrimaryGeneratorAction::SetDefaultKinematic() // default particle kinematic // G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName; G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="e-"); + = particleTable->FindParticle("e-"); particleGun->SetParticleDefinition(particle); - - thePrimaryParticleName = particle->GetParticleName(); - particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); particleGun->SetParticleEnergy(30.*MeV); G4double x0 = -0.5*(Em5Detector->GetWorldSizeX()); @@ -91,19 +84,20 @@ void Em5PrimaryGeneratorAction::SetDefaultKinematic() void Em5PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event - // - thePrimaryParticleName = particleGun->GetParticleDefinition()-> - GetParticleName(); - - particleGun->GeneratePrimaryVertex(anEvent); + // + //randomize the beam, if requested. + if (rndmBeam > 0.) + { + G4ThreeVector oldPosition = particleGun->GetParticlePosition(); + G4double rbeam = 0.5*(Em5Detector->GetAbsorberSizeYZ())*rndmBeam; + G4double x0 = oldPosition.x(); + G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam; + G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam; + particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + particleGun->GeneratePrimaryVertex(anEvent); + particleGun->SetParticlePosition(oldPosition); + } + else particleGun->GeneratePrimaryVertex(anEvent); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4String Em5PrimaryGeneratorAction::GetPrimaryName() -{ - return thePrimaryParticleName; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc index ae0f77f1ad..ae519806b3 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.5 2001/11/05 17:58:02 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5PrimaryGeneratorMessenger.cc,v 1.7 2002/06/05 15:43:43 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -33,6 +33,7 @@ #include "Em5PrimaryGeneratorAction.hh" #include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithADouble.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,7 +43,14 @@ Em5PrimaryGeneratorMessenger::Em5PrimaryGeneratorMessenger( { DefaultCmd = new G4UIcmdWithoutParameter("/gun/setDefault",this); DefaultCmd->SetGuidance("set/reset the kinematic defined in PrimaryGenerator"); - DefaultCmd->AvailableForStates(Idle); + DefaultCmd->AvailableForStates(PreInit,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); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -50,6 +58,7 @@ Em5PrimaryGeneratorMessenger::Em5PrimaryGeneratorMessenger( Em5PrimaryGeneratorMessenger::~Em5PrimaryGeneratorMessenger() { delete DefaultCmd; + delete RndmCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,6 +68,9 @@ void Em5PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, { if (command == DefaultCmd) {Em5Action->SetDefaultKinematic();} + + if (command == RndmCmd) + { Em5Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc index 46c96f322d..0931776f9c 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.11 2001/11/28 16:08:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5RunAction.cc,v 1.13 2002/06/06 17:23:22 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -41,8 +41,15 @@ #include "Randomize.hh" #ifndef G4NOHIST -#include "CLHEP/Hist/HBookFile.h" -#include + #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" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,11 +59,6 @@ Em5RunAction::Em5RunAction() nbinTsec(0),nbinTh(0),nbinThback(0),nbinR(0),nbinGamma(0),nbinvertexz(0) { runMessenger = new Em5RunMessenger(this); - -#ifndef G4NOHIST - histo1=0; histo2=0; histo3=0; histo4=0; histo5=0; histo6=0; histo7=0; - histo8=0; histo9=0; histo10=0;hi2bis=0; -#endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -65,20 +67,10 @@ Em5RunAction::~Em5RunAction() { delete runMessenger; #ifndef G4NOHIST - // Write histogram file - hbookManager->write(); - - if(histo1) delete histo1 ; - if(histo2) {delete histo2 ; delete hi2bis;} - if(histo3) delete histo3 ; - if(histo4) delete histo4 ; - if(histo5) delete histo5 ; - if(histo6) delete histo6 ; - if(histo7) delete histo7 ; - if(histo8) delete histo8 ; - if(histo9) delete histo9 ; - if(histo10) delete histo10; - delete hbookManager; + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + + delete tree; #endif } @@ -87,82 +79,78 @@ Em5RunAction::~Em5RunAction() void Em5RunAction::bookHisto() { #ifndef G4NOHIST - // init hbook - hbookManager = new HBookFile(histName, 68); - assert (hbookManager != 0); + // Creating the analysis factory + IAnalysisFactory* af = AIDA_createAnalysisFactory(); + + // Creating the tree factory + ITreeFactory* tf = af->createTreeFactory(); + + // Creating a tree mapped to an hbook file. + tree = tf->create(histName, false, false, "hbook"); - // book histograms + // Creating a histogram factory, whose histograms will be handled by the tree + IHistogramFactory* hf = af->createHistogramFactory(*tree); + + // creating histograms + // if(nbinStep>0) { - histo1 = hbookManager->histogram("number of steps/event" - ,nbinStep,Steplow,Stephigh) ; - assert (histo1 != 0); + histo[0] = hf->create1D("1","number of steps/event" + ,nbinStep,Steplow,Stephigh); } if(nbinEn>0) { - histo2 = hbookManager->histogram("energy deposit in absorber(in MeV)" - ,nbinEn,Enlow,Enhigh) ; - assert (histo2 != 0); - - hi2bis = hbookManager->histogram("energy deposit: normalized distribution" - ,nbinEn,Enlow,Enhigh) ; - assert (hi2bis != 0); + histo[1] = hf->create1D("2","energy deposit in absorber(in MeV)" + ,nbinEn,Enlow,Enhigh); } if(nbinTh>0) { - histo3 = hbookManager->histogram("angle distribution at exit(deg)" - ,nbinTh,Thlow/deg,Thhigh/deg) ; - assert (histo3 != 0); + histo[2] = hf->create1D("3","angle distribution at exit(deg)" + ,nbinTh,Thlow/deg,Thhigh/deg); } if(nbinR>0) { - histo4 = hbookManager->histogram("lateral distribution at exit(mm)" - ,nbinR ,Rlow,Rhigh) ; - assert (histo4 != 0); + histo[3] = hf->create1D("4","lateral distribution at exit(mm)" + ,nbinR ,Rlow,Rhigh); } if(nbinTt>0) { - histo5 = hbookManager->histogram( - "kinetic energy of the primary at exit(MeV)" - ,nbinTt,Ttlow,Tthigh); - assert (histo5 != 0); + histo[4] = hf->create1D("5","kinetic energy of the primary at exit(MeV)" + ,nbinTt,Ttlow,Tthigh); } if(nbinThback>0) { - histo6 = hbookManager->histogram( + histo[5] = hf->create1D("6", "angle distribution of backscattered primaries(deg)" ,nbinThback,Thlowback/deg,Thhighback/deg); - assert (histo6 != 0); } if(nbinTb>0) { - histo7 = hbookManager->histogram( + histo[6] = hf->create1D("7", "kinetic energy of the backscattered primaries (MeV)" ,nbinTb,Tblow,Tbhigh); - assert (histo7 != 0); } if(nbinTsec>0) { - histo8 = hbookManager->histogram( - "kinetic energy of the charged secondaries (MeV)" - ,nbinTsec,Tseclow,Tsechigh); - assert (histo8 != 0); + histo[7] = hf->create1D("8","kinetic energy of the charged secondaries(MeV)" + ,nbinTsec,Tseclow,Tsechigh); } if(nbinvertexz>0) { - histo9 = hbookManager->histogram( - "z of secondary charged vertices(mm)" - ,nbinvertexz ,zlow,zhigh); - assert (histo9 != 0); + histo[8] = hf->create1D("9","x of secondary charged vertices(mm)" + ,nbinvertexz ,zlow,zhigh); } if(nbinGamma>0) { - histo10= hbookManager->histogram( - "kinetic energy of gammas escaping the absorber (MeV)" + histo[9]= hf->create1D("10", + "kinetic energy of gammas escaping the absorber(MeV)" // ,nbinGamma,ElowGamma,EhighGamma); ,nbinGamma,log10(ElowGamma),log10(EhighGamma)); - assert (histo10 != 0); } + + delete hf; + delete tf; + delete af; #endif } @@ -198,127 +186,11 @@ void Em5RunAction::BeginOfRunAction(const G4Run* aRun) Transmitted=0.; Reflected =0.; // plot definitions -------------------------------- - if(nbinStep>0) - { - dStep=(Stephigh-Steplow)/nbinStep; - entryStep=0.; - underStep=0.; - overStep=0.; - for(G4int ist=0; ist0) - { - dEn = (Enhigh-Enlow)/nbinEn ; - entryEn=0.; - underEn=0.; - overEn=0.; - for (G4int ien=0; ien0) - { - dTt = (Tthigh-Ttlow)/nbinTt ; - entryTt=0.; - underTt=0.; - overTt=0.; - for (G4int itt=0; itt0) - { - dTb = (Tbhigh-Tblow)/nbinTb ; - entryTb=0.; - underTb=0.; - overTb=0.; - for (G4int itt=0; itt0) - { - dTsec = (Tsechigh-Tseclow)/nbinTsec ; - entryTsec=0.; - underTsec=0.; - overTsec=0.; - for (G4int its=0; its0) - { dTh = (Thhigh-Thlow)/nbinTh ; - entryTh=0.; - underTh=0.; - overTh=0.; - for (G4int ith=0; ith0) - { dThback = (Thhighback-Thlowback)/nbinThback ; - entryThback=0.; - underThback=0.; - overThback=0.; - for (G4int ithback=0; ithback0) - { - dR = (Rhigh-Rlow)/nbinR ; - entryR =0.; - underR =0.; - overR =0.; - for (G4int ir =0; ir 0) - { - dEGamma = log(EhighGamma/ElowGamma)/nbinGamma ; - entryGamma = 0.; - underGamma=0.; - overGamma=0.; - for (G4int ig=0; ig0) - { - dz=(zhigh-zlow)/nbinvertexz; - entryvertexz=0.; - undervertexz=0.; - oververtexz=0.; - for(G4int iz=0; iz0) - {G4double E , dnorm, norm,fmax,Emp; - Emp=-999.999 ; - G4cout << " energy deposit distribution " << G4endl ; - G4cout << "#entries=" << entryEn << " #underflows=" << underEn << - " #overflows=" << overEn << G4endl ; - - if( entryEn>0.) - { - E = Enlow - dEn ; - norm = TotNbofEvents*dEn ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - fmax = 0. ; - for(G4int ien=0; ienaccumulate(E+0.5*dEn,distEn[ien]/TotNbofEvents); -#endif - if(distEn[ien]>fmax) - { - fmax=distEn[ien]; - Emp = E ; - } - dnorm = distEn[ien]/norm; - G4cout << G4std::setw(5) << ien << G4std::setw(10) << E << - G4std::setw(12) << distEn[ien] << - G4std::setw(12) << dnorm << G4endl ; - } - G4cout << G4endl; - G4int ii ; - G4double E1,E2 ; - E1=-1.e6 ; - E2=+1.e6 ; - E = Enlow -dEn ; - ii = -1; - for(G4int i1=0; i1= 0.5*fmax) - { - E1=E ; - ii=i1 ; - } - } - } - E = Enlow -dEn ; - for(G4int i2=0; i2= 0.5*fmax) - E2=E ; - } - G4cout << " Emp = " << G4std::setw(15) << Emp/MeV << " width=" - << G4std::setw(15) << (E2-E1)/MeV << " MeV " << G4endl; - G4cout << G4endl ; - } - } - if(nbinTt>0) - {G4double E , dnorm, norm ,sig; - G4cout << " transmitted energy distribution " << G4endl ; - G4cout << "#entries=" << entryTt << " #underflows=" << underTt << - " #overflows=" << overTt << G4endl ; - if( entryTt>0.) - { - Ttmean /= entryTt; - sig=Tt2mean/entryTt-Ttmean*Ttmean ; - if(sig<=0.) - sig=0.; - else - sig=sqrt(sig/entryTt) ; - G4cout << " mean energy of transmitted particles=" << Ttmean/keV << - " +- " << sig/keV << " keV." << G4endl; - E = Ttlow - dTt ; - norm = TotNbofEvents*dTt ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - for(G4int itt=0; itt0) - {G4double E , dnorm, norm ,sig; - G4cout << " backscattered energy distribution " << G4endl ; - G4cout << "#entries=" << entryTb << " #underflows=" << underTb << - " #overflows=" << overTb << G4endl ; - if( entryTb>0.) - { - Tbmean /= entryTb; - sig=Tb2mean/entryTb-Tbmean*Tbmean ; - if(sig<=0.) - sig=0.; - else - sig=sqrt(sig/entryTb) ; - G4cout << " mean energy of backscattered particles=" << Tbmean/keV << - " +- " << sig/keV << " keV." << G4endl; - E = Tblow - dTb ; - norm = TotNbofEvents*dTb ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - for(G4int itt=0; itt0) - {G4double E , dnorm, norm ; - G4cout << " energy distribution of charged secondaries " << G4endl ; - G4cout << "#entries=" << entryTsec << " #underflows=" << underTsec << - " #overflows=" << overTsec << G4endl ; - if( entryTsec>0.) - { - E = Tseclow - dTsec ; - norm = TotNbofEvents*dTsec ; - G4cout << " bin nb Elow entries normalized " << G4endl ; - for(G4int itt=0; itt0) - {G4double R , dnorm, norm,sig ; - G4cout << " R distribution " << G4endl ; - G4cout << "#entries=" << entryR << " #underflows=" << underR << - " #overflows=" << overR << G4endl ; - if( entryR >0.) - { - Rmean /= entryR; - sig = R2mean/entryR - Rmean*Rmean; - if(sig<=0.) sig=0. ; - else sig = sqrt(sig/entryR) ; - G4cout << " mean lateral displacement at exit=" << Rmean/mm << " +- " - << sig/mm << " mm." << G4endl ; - R = Rlow - dR ; - norm = TotNbofEvents*dR ; - G4cout << " bin nb Rlow entries normalized " << G4endl ; - for(G4int ier=0; ier0) - {G4double Th,Thdeg, dnorm, norm,fac0,fnorm,pere,Thpere,Thmean,sum; - G4cout << " angle distribution " << G4endl ; - G4cout << "#entries=" << entryTh << " #underflows=" << underTh << - " #overflows=" << overTh << G4endl ; - if( entryTh>0.) - { - Th= Thlow - dTh ; - norm = TotNbofEvents ; - if(distTh[0] == 0.) - fac0 = 1. ; - else - fac0 = 1./distTh[0] ; - pere = 1./exp(1.) ; - - G4cout << " bin nb Thlowdeg Thlowrad " << - " entries normalized " << G4endl ; - Thpere = 0. ; - sum = 0. ; - Thmean = 0. ; - for(G4int ien=0; ien pere) - Thpere = Th ; - G4cout << G4std::setw( 5) << ien << G4std::setw(10) << Thdeg << " " - << G4std::setw(10) << Th << " " - << G4std::setw(12) << distTh[ien] << " " - << G4std::setw(12) << dnorm << " " - << G4std::setw(12) << fnorm <0) - {G4double Thb,Thdegb, dnormb, normb,fac0b,fnormb,pereb,Thpereb,Thmeanb,sumb; - G4cout << " backscattering angle distribution " << G4endl ; - G4cout << "#entries=" << entryThback << " #underflows=" << underThback << - " #overflows=" << overThback << G4endl ; - if( entryThback>0.) - { - Thb= Thlowback - dThback ; - normb = TotNbofEvents ; - if(distThback[0] == 0.) - fac0b = 1. ; - else - fac0b = 1./distThback[0] ; - pereb = 1./exp(1.) ; - - G4cout << " bin nb Thlowdeg Thlowrad " << - " entries normalized " << G4endl ; - Thpereb = 0. ; - sumb = 0. ; - Thmeanb = 0. ; - for(G4int ien=0; ien pereb) - Thpereb = Thb ; - G4cout << G4std::setw(5) << ien << G4std::setw(10) << Thdegb << " " - << G4std::setw(10) << Thb << " " - << G4std::setw(12) << distThback[ien] << " " - << G4std::setw(12) << dnormb << " " - << G4std::setw(12) << fnormb <0) - {G4double E , fact,dnorm, norm ; - G4cout << " gamma energy distribution " << G4endl ; - G4cout << "#entries=" << entryGamma << " #underflows=" << underGamma << - " #overflows=" << overGamma << G4endl ; - if( entryGamma>0.) - { - fact=exp(dEGamma) ; - E = ElowGamma/fact ; - norm = TotNbofEvents*dEGamma; - G4cout << " bin nb Elow entries normalized " << G4endl; - for(G4int itt=0; itt0) - {G4double z , dnorm, norm ; - G4cout << " vertex Z distribution " << G4endl ; - G4cout << "#entries=" << entryvertexz - << " #underflows=" << undervertexz - << " #overflows=" << oververtexz << G4endl; - if( entryvertexz >0.) - { - z =zlow - dz ; - norm = TotNbofEvents*dz ; - G4cout << " bin nb zlow entries normalized " << G4endl ; - for(G4int iez=0; iez0) - { - entryStep += 1. ; - - if(ns=Stephigh) - overStep += 1. ; - else - { - n = ns+eps ; - bin = (n-Steplow)/dStep ; - ibin= (G4int)bin ; - distStep[ibin] += 1. ; - } -#ifndef G4NOHIST - histo1->accumulate(ns); -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillEn(G4double En) -{ - G4double bin ; - G4int ibin; - - if(nbinEn>0) - { - entryEn += 1. ; - - if(En=Enhigh) - overEn += 1. ; - else - { - bin = (En-Enlow)/dEn ; - ibin= (G4int)bin ; - distEn[ibin] += 1. ; - } -#ifndef G4NOHIST - histo2->accumulate(En/MeV); -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillTt(G4double En) -{ - G4double bin ; - G4int ibin; - - if(nbinTt>0) - { - entryTt += 1. ; - Ttmean += En ; - Tt2mean += En*En ; - - if(En=Tthigh) - overTt += 1. ; - else - { - bin = (En-Ttlow)/dTt ; - ibin= (G4int)bin ; - distTt[ibin] += 1. ; - } -#ifndef G4NOHIST - histo5->accumulate(En/MeV); -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillTb(G4double En) -{ - G4double bin ; - G4int ibin; - - if(nbinTb>0) - { - entryTb += 1. ; - Tbmean += En ; - Tb2mean += En*En ; - - if(En=Tbhigh) - overTb += 1. ; - else - { - bin = (En-Tblow)/dTb ; - ibin= (G4int)bin ; - distTb[ibin] += 1. ; - } -#ifndef G4NOHIST - histo7->accumulate(En/MeV) ; -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillTsec(G4double En) -{ - G4double bin ; - G4int ibin; - - if(nbinTsec>0) - { - entryTsec += 1. ; - - if(En=Tsechigh) - overTsec += 1. ; - else - { - bin = (En-Tseclow)/dTsec ; - ibin= (G4int)bin ; - distTsec[ibin] += 1. ; - } -#ifndef G4NOHIST - histo8->accumulate(En/MeV) ; -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillGammaSpectrum(G4double En) -{ - G4double bin ; - G4int ibin; - - if(nbinGamma>0) - { - entryGamma += 1. ; - - if(En=EhighGamma) - overGamma += 1. ; - else - { - bin = log(En/ElowGamma)/dEGamma; - ibin= (G4int)bin ; - distGamma[ibin] += 1. ; - } -#ifndef G4NOHIST - histo10->accumulate(log10(En/MeV)) ; -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillTh(G4double Th) -{ - static const G4double cn=pi/(64800.*dTh) ; - static const G4double cs=pi/ - (64800.*(cos(Thlow)-cos(Thlow+dTh))); - G4double bin,Thbin ,wg; - G4int ibin; - - if(nbinTh>0) - { - entryTh += 1. ; - - wg = 0.; - - if(Th=Thhigh) - overTh += 1. ; - else - { - bin = (Th-Thlow)/dTh ; - ibin= (G4int)bin ; - Thbin = Thlow+ibin*dTh ; - if(Th > 0.001*dTh) - wg=cn/sin(Th) ; - else - { - G4double thdeg=Th*180./pi; - G4cout << "theta < 0.001*dth (from plot excluded) theta=" - << G4std::setw(12) << G4std::setprecision(4) << thdeg << G4endl; - wg=0. ; - } - distTh[ibin] += wg ; - } -#ifndef G4NOHIST - histo3->accumulate(Th/deg, wg) ; -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillThBack(G4double Th) -{ - static const G4double cn=pi/(64800.*dThback) ; - static const G4double cs=pi/ - (64800.*(cos(Thlowback)-cos(Thlowback+dThback))); - G4double bin,Thbin,wg ; - G4int ibin; - - if(nbinThback>0) - { - entryThback += 1. ; - - if(Th=Thhighback) - overThback += 1. ; - else - { - bin = (Th-Thlowback)/dThback ; - ibin= (G4int)bin ; - Thbin = Thlowback+ibin*dThback ; - if(Th > 0.001*dThback) - wg=cn/sin(Th) ; - else - { - G4double thdeg=Th*180./pi; - G4cout << "theta < 0.001*dth (from plot excluded) theta=" - << G4std::setw(12) << G4std::setprecision(4) << thdeg << G4endl; - wg=0. ; - } - distThback[ibin] += wg ; - } -#ifndef G4NOHIST - histo6->accumulate(Th/deg, wg) ; -#endif - } - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::FillR(G4double R ) -{ - G4double bin ; - G4int ibin; - - if(nbinR>0) - { - entryR += 1. ; - Rmean += R ; - R2mean += R*R ; - - if(R =Rhigh) - overR += 1. ; - else - { - bin = (R -Rlow)/dR ; - ibin= (G4int) bin ; - distR[ibin] += 1. ; - } -#ifndef G4NOHIST - histo4->accumulate(R/mm) ; -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::Fillvertexz(G4double z ) -{ - G4double bin ; - G4int ibin; - - if(nbinvertexz>0) - { - entryvertexz += 1. ; - - if(z =zhigh) - oververtexz += 1. ; - else - { - bin = (z -zlow)/dz ; - ibin= (G4int)bin ; - distvertexz[ibin] += 1. ; - } -#ifndef G4NOHIST - histo9->accumulate(z/mm) ; -#endif - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Em5RunAction::SethistName(G4String name) { histName = name ; diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc index 0c9e0b1175..d93213b0eb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc index 22832ffe0b..1b3107e0d3 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5SteppingAction.cc,v 1.5 2001/10/16 11:56:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: Em5SteppingAction.cc,v 1.9 2002/06/06 17:23:22 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -44,6 +44,10 @@ #include "g4std/iomanip" #include "G4UImanager.hh" +#ifndef G4NOHIST + #include "AIDA/IHistogram1D.h" +#endif + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... Em5SteppingAction::Em5SteppingAction(Em5DetectorConstruction* DET, @@ -67,6 +71,11 @@ Em5SteppingAction::~Em5SteppingAction() void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) { +#ifndef G4NOHIST + const G4double cn = pi/(64800.*runaction->GetdTh()) ; + const G4double cnback = pi/(64800.*runaction->GetdThback()) ; + G4double wg ; +#endif G4double Theta,Thetaback,Ttrans,Tback,Tsec,Egamma,yend,zend,rend; G4int evno = eventaction->GetEventno(); @@ -86,7 +95,11 @@ void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) ((aStep->GetTrack()->GetTrackID() != 1) || (aStep->GetTrack()->GetParentID() != 0)) ) ) - runaction->Fillvertexz(aStep->GetTrack()->GetVertexPosition().x()); +#ifndef G4NOHIST + if(runaction->GetHisto(8) != 0) + runaction->GetHisto(8)->fill( + aStep->GetTrack()->GetVertexPosition().x()); +#endif if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber") { @@ -99,7 +112,11 @@ void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) eventaction->AddE() ; Tsec = aStep->GetTrack()->GetKineticEnergy() ; // !!!!!!!!!!!! Tsec += aStep->GetTotalEnergyDeposit() ; // !!!!!!!!!!!! - runaction->FillTsec(Tsec) ; +#ifndef G4NOHIST + if(runaction->GetHisto(7) != 0) + runaction->GetHisto(7)->fill(Tsec/MeV) ; +#endif + } else if(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()-> @@ -111,7 +128,10 @@ void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) eventaction->AddP() ; Tsec = aStep->GetTrack()->GetKineticEnergy() ; // !!!!!!!!!!!! Tsec += aStep->GetTotalEnergyDeposit() ; // !!!!!!!!!!!! - runaction->FillTsec(Tsec) ; +#ifndef G4NOHIST + if(runaction->GetHisto(7) != 0) + runaction->GetHisto(7)->fill(Tsec) ; +#endif } else if(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()-> @@ -140,10 +160,7 @@ void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) if ( (((aStep->GetTrack()->GetTrackID() == 1) && - (aStep->GetTrack()->GetParentID()== 0)) || - (aStep->GetTrack()->GetDynamicParticle()->GetDefinition()-> - GetParticleName() == - Em5PrimaryGeneratorAction::GetPrimaryName())) + (aStep->GetTrack()->GetParentID()== 0))) && (aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber") && @@ -155,21 +172,31 @@ void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) { eventaction->SetTr(); Theta = acos(aStep->GetTrack()->GetMomentumDirection().x()) ; - runaction->FillTh(Theta) ; +#ifndef G4NOHIST + if((runaction->GetHisto(2) != 0) && (Theta > 0.)) + { + wg = cn/sin(Theta) ; + runaction->GetHisto(2)->fill(Theta/deg,wg) ; + } +#endif + Ttrans = aStep->GetTrack()->GetKineticEnergy() ; - runaction->FillTt(Ttrans) ; +#ifndef G4NOHIST + if(runaction->GetHisto(4) != 0) + runaction->GetHisto(4)->fill(Ttrans/MeV) ; +#endif yend= aStep->GetTrack()->GetPosition().y() ; zend= aStep->GetTrack()->GetPosition().z() ; rend = sqrt(yend*yend+zend*zend) ; - runaction->FillR(rend); +#ifndef G4NOHIST + if(runaction->GetHisto(3) != 0) + runaction->GetHisto(3)->fill(rend) ; +#endif } if ( (((aStep->GetTrack()->GetTrackID() == 1) && - (aStep->GetTrack()->GetParentID()== 0)) || - (aStep->GetTrack()->GetDynamicParticle()->GetDefinition()-> - GetParticleName() == - Em5PrimaryGeneratorAction::GetPrimaryName())) + (aStep->GetTrack()->GetParentID()== 0))) && (aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber") && (aStep->GetTrack()->GetNextVolume()->GetName()=="World") && @@ -181,9 +208,18 @@ void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) eventaction->SetRef(); Thetaback = acos(aStep->GetTrack()->GetMomentumDirection().x()) ; Thetaback -= 0.5*pi ; - runaction->FillThBack(Thetaback) ; +#ifndef G4NOHIST + if((runaction->GetHisto(5) != 0) && (Thetaback > 0.)) + { + wg = cnback/sin(Thetaback) ; + runaction->GetHisto(5)->fill(Thetaback/deg,wg) ; + } +#endif Tback = aStep->GetTrack()->GetKineticEnergy() ; - runaction->FillTb(Tback) ; +#ifndef G4NOHIST + if(runaction->GetHisto(6) != 0) + runaction->GetHisto(6)->fill(Tback/MeV) ; +#endif } @@ -198,7 +234,10 @@ void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) ) { Egamma = aStep->GetTrack()->GetKineticEnergy() ; - runaction->FillGammaSpectrum(Egamma) ; +#ifndef G4NOHIST + if(runaction->GetHisto(9) != 0) + runaction->GetHisto(9)->fill(log10(Egamma/MeV)) ; +#endif } } diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc index 5a1379890b..259025dd88 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc index 2b57d4f57e..c48c9f5250 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 index e400eadf45..3c3e758acf 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: Em5VisManager.cc,v 1.6 2001/11/15 13:09:49 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/electromagnetic/TestEm6/GNUmakefile b/examples/extended/electromagnetic/TestEm6/GNUmakefile new file mode 100644 index 0000000000..7ffdeb6b65 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/GNUmakefile @@ -0,0 +1,32 @@ +# $Id: GNUmakefile,v 1.7 2002/06/05 14:20:59 maire Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := TestEm6 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/architecture.gmk + +G4NOHIST := true +ifdef G4NOHIST + CPPFLAGS += -DG4NOHIST +else + # for the aida-config command see the README file + CPPFLAGS += `aida-config --useHBook --include` + LDFLAGS += `aida-config --useHBook --lib` +endif + +include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* diff --git a/examples/extended/electromagnetic/TestEm6/History b/examples/extended/electromagnetic/TestEm6/History new file mode 100644 index 0000000000..e4b48ccf63 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/History @@ -0,0 +1,22 @@ +$Id: History,v 1.6 2002/06/05 14:20:59 maire Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm6 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 * + ---------------------------------------------------------- + +05-06-02 mma (testem6-V04-00-01) +-old histograming package clhep/hist replaced by AIDA 2.2/anaphe + +23-05-02 mma (testem6-V04-00-00) +-creation diff --git a/examples/extended/electromagnetic/TestEm6/README b/examples/extended/electromagnetic/TestEm6/README new file mode 100644 index 0000000000..1393dddf68 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/README @@ -0,0 +1,136 @@ +$Id: README,v 1.4 2002/06/05 14:20:59 maire Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm6 + ------- + This example is intended to test the process of + gamma conversion to a pair of muons. + To make this process more visible, the usually much more frequent + gamma conversion to a pair of electrons is not selected in the + physics list. + + 1- GEOMETRY DEFINITION + + The geometry consists of a single block of a homogenous material. + + Two parameters define the geometry : + - the material of the box, + - the (full) size of the box. + The default is 500 m of iron. + + In addition a transverse uniform magnetic field can be applied. + + The default geometry is constructed in DetectorConstruction class, + but all of the above parameters can be changed interactively via + the commands defined in the DetectorMessenger class. + + 2- PHYSICS LIST + + The particle list is the one of novice/exampleN03. + The physics list contains the 'standard' electromagnetic processes, + and decay. + + For Gamma, only the GammaConversionToMuons has been registered. + Futhermore, a high production cut (1 km, which gives infinity in energy) + prevent any production of delta-electrons from ionization or gamma + from bremsstrahlung. + + + 3- AN EVENT : THE PRIMARY GENERATOR + + The primary kinematic consists of a single particle which hits the + block perpendicular to the input face. The type of the particle + and its energy are set in the PrimaryGeneratorAction class, and can + changed via the G4 build-in commands of ParticleGun class (see + the macros provided with this example). + The default is a Gamma of 100 TeV. + + In addition one can choose randomly the impact point of the incident + particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. + + A RUN is a set of events. + + + 4- VISUALIZATION + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the command + > /control/execute vis.mac + + The detector has a default view which is a longitudinal view of the box. + + The tracks are drawn at the end of event, and erased at the end of run. + Optionaly one can choose to draw all particles, only the charged one, + or none. This command is defined in EventActionMessenger class. + + 5- PHYSICS DEMO + + The particle's type and the physic processes which will be available + in this example are set in PhysicsList 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 + + 6- HOW TO START ? + + - compile and link to generate an executable + % cd geant4/examples/extended/electromagnetic/TestEm6 + % gmake + + - execute Test in 'batch' mode from macro files + % TestEm6 run01.mac + + - execute Test in 'interactive mode' with visualization + % TestEm6 + .... + Idle> type your commands + .... + Idle> exit + + 7- HISTOGRAMS + + Testem6 produces 6 histograms (saved as testem6.paw) which illustrate + the final state of the GammaConversionToMuons process. + See their definitions in RunAction.cc + + Note that histograms are disabled via the flag G4NOHIST in GNUmakefile. + + 8- Using the Anaphe implementation of the AIDA 2.2 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): + + # 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. + + 9- HOW TO INCREASE STATISTICS ON gamma -> mu+mu- ? + + The process of gamma -> mu+mu- has a low cross section but can be important + for leakage through thick absorbers and calorimeters. + Straight forward simulation will be quite time consuming. + To make the process more visible, the cross section can be artificially + increased by some factor (here 1000) using the command + (only effective after /run/initialize) + + /run/process/setGammaToMuPairFac 1000 + diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.cc b/examples/extended/electromagnetic/TestEm6/TestEm6.cc new file mode 100644 index 0000000000..dcde48cbdc --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.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. * +// ******************************************************************** +// +// +// $Id: TestEm6.cc,v 1.10 2002/05/23 13:30:13 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" +#include "Randomize.hh" + +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "PrimaryGeneratorAction.hh" +#include "SteppingVerbose.hh" + +#include "RunAction.hh" +#include "EventAction.hh" +#include "SteppingAction.hh" + +#ifdef G4VIS_USE + #include "VisManager.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) { + + //choose the Random engine + HepRandom::setTheEngine(new RanecuEngine); + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new SteppingVerbose); + + //Construct the default run manager + G4RunManager * runManager = new G4RunManager; + + //set mandatory initialization classes + DetectorConstruction* det; + runManager->SetUserInitialization(det = new DetectorConstruction); + runManager->SetUserInitialization(new PhysicsList); + runManager->SetUserAction(new PrimaryGeneratorAction(det)); + +#ifdef G4VIS_USE + //visualization manager + G4VisManager* visManager = new VisManager; + visManager->Initialize(); +#endif + + //set user action classes + RunAction* RunAct; + + runManager->SetUserAction(RunAct = new RunAction); + runManager->SetUserAction(new EventAction); + runManager->SetUserAction(new SteppingAction(RunAct)); + + //get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + + if (argc==1) // Define UI terminal for interactive mode + { + G4UIsession* session = new G4UIterminal(new G4UItcsh); + 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; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.in b/examples/extended/electromagnetic/TestEm6/TestEm6.in new file mode 100644 index 0000000000..fa64552c84 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.in @@ -0,0 +1,21 @@ +# $Id: TestEm6.in,v 1.4 2002/05/23 13:30:13 maire Exp $ +# +# Macro file for "TestEm6.cc" +# (can be run in batch, without graphic) +# +# +/control/verbose 2 +# +/run/initialize +# +/calor/setMat Iron +/calor/setSize 500 m +/calor/update +# +/gun/particle gamma +/gun/energy 100 TeV +# +/run/verbose 2 +/tracking/verbose 1 +# +/run/beamOn 5 diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh new file mode 100644 index 0000000000..f60e8eb5c3 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: DetectorConstruction.hh,v 1.1 2002/05/23 13:30:16 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +class G4LogicalVolume; +class G4Material; +class G4UniformMagField; +class G4UserLimits; +class DetectorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + + DetectorConstruction(); + ~DetectorConstruction(); + + public: + + G4VPhysicalVolume* Construct(); + + void SetSize (G4double); + void SetMaterial (G4String); + void SetMagField (G4double); + void SetMaxStepSize (G4double); + + void UpdateGeometry(); + + public: + + const + G4VPhysicalVolume* GetWorld() {return pBox;}; + + G4double GetSize() {return BoxSize;}; + G4Material* GetMaterial() {return aMaterial;}; + + void PrintParameters(); + + private: + + G4VPhysicalVolume* pBox; + G4LogicalVolume* lBox; + + G4double BoxSize; + G4Material* aMaterial; + G4UniformMagField* magField; + G4UserLimits* userLimits; + + DetectorMessenger* detectorMessenger; + + private: + + void DefineMaterials(); + G4VPhysicalVolume* ConstructVolumes(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +#endif + diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh new file mode 100644 index 0000000000..7e06ea8c34 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.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: DetectorMessenger.hh,v 1.1 2002/05/23 13:30:17 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorMessenger: public G4UImessenger +{ + public: + + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + + DetectorConstruction* Detector; + + G4UIdirectory* detDir; + G4UIcmdWithAString* MaterCmd; + G4UIcmdWithADoubleAndUnit* SizeCmd; + G4UIcmdWithADoubleAndUnit* MagFieldCmd; + G4UIcmdWithADoubleAndUnit* MaxStepCmd; + G4UIcmdWithoutParameter* UpdateCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh new file mode 100644 index 0000000000..a83cbe0156 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/EventAction.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: EventAction.hh,v 1.1 2002/05/23 13:30:28 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef EventAction_h +#define EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class EventActionMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventAction : public G4UserEventAction +{ + public: + EventAction(); + ~EventAction(); + + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + void SetDrawFlag(G4String val) {drawFlag = val;}; + void SetPrintModulo(G4int val) {printModulo = val;}; + + + private: + G4String drawFlag; + G4int printModulo; + EventActionMessenger* eventMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh new file mode 100644 index 0000000000..acc5331844 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.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: EventActionMessenger.hh,v 1.1 2002/05/23 13:30:29 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef EventActionMessenger_h +#define EventActionMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class EventAction; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventActionMessenger: public G4UImessenger +{ + public: + EventActionMessenger(EventAction*); + ~EventActionMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + EventAction* eventAction; + G4UIcmdWithAString* DrawCmd; + G4UIcmdWithAnInteger* PrintCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh new file mode 100644 index 0000000000..a9c04c9cf0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.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: PhysicsList.hh,v 1.1 2002/05/23 13:30:30 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysicsList_h +#define PhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +class PhysicsListMessenger; +class G4GammaConversionToMuons; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsList: public G4VUserPhysicsList +{ + public: + PhysicsList(); + ~PhysicsList(); + + // Construct particles + void ConstructParticle(); + void ConstructBosons(); + void ConstructLeptons(); + + void SetCuts(); + + // Construct processes and register them + void ConstructProcess(); + void ConstructGeneral(); + void ConstructEM(); + + void setGammaToMuPairFac(G4double); + + private: + PhysicsListMessenger* pMes; + G4GammaConversionToMuons* theGammaToMuPairProcess; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh new file mode 100644 index 0000000000..5d349c1a17 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.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: PhysicsListMessenger.hh,v 1.1 2002/05/23 13:30:30 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class PhysicsList; +class G4UIcmdWithADouble; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsListMessenger: public G4UImessenger +{ + public: + PhysicsListMessenger(PhysicsList*); + ~PhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + PhysicsList* physList; + G4UIcmdWithADouble* GammaToMuPairFac; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..0fb20deb46 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.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: PrimaryGeneratorAction.hh,v 1.1 2002/05/23 13:30:31 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4ParticleGun; +class G4Event; +class DetectorConstruction; +class PrimaryGeneratorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); + + public: + void SetRndmBeam(G4double val) {rndmBeam = val;} + void GeneratePrimaries(G4Event*); + + private: + G4ParticleGun* particleGun; + DetectorConstruction* Detector; + G4double rndmBeam; + PrimaryGeneratorMessenger* gunMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..04d22b94fa --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.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: PrimaryGeneratorMessenger.hh,v 1.1 2002/05/23 13:30:32 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorMessenger_h +#define PrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class PrimaryGeneratorAction; +class G4UIcmdWithADouble; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + PrimaryGeneratorMessenger(PrimaryGeneratorAction*); + ~PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + PrimaryGeneratorAction* Action; + G4UIcmdWithADouble* RndmCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh new file mode 100644 index 0000000000..aece4f4a6d --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RunAction.hh,v 1.3 2002/06/05 14:49:54 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef RunAction_h +#define RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +#ifndef G4NOHIST + class ITree; + class IHistogram1D; +#endif + +class RunAction : public G4UserRunAction +{ + public: + RunAction(); + ~RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + + +#ifndef G4NOHIST + IHistogram1D* GetHisto(G4int id) {return histo[id];} +#endif + + private: + void bookHisto(); + void cleanHisto(); + +#ifndef G4NOHIST + private: + ITree* tree; + IHistogram1D* histo[6]; +#endif +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh new file mode 100644 index 0000000000..a1f0ad3fce --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.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: SteppingAction.hh,v 1.1 2002/05/23 13:30:33 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingAction_h +#define SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +class RunAction; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class SteppingAction : public G4UserSteppingAction +{ + public: + SteppingAction(RunAction*); + ~SteppingAction(); + + void UserSteppingAction(const G4Step*); + + private: + RunAction* runAction; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh new file mode 100644 index 0000000000..10b82993a2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.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: SteppingVerbose.hh,v 1.1 2002/05/23 13:30:34 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose. +// It shows how to extract informations during the tracking of a particle. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingVerbose_h +#define SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class SteppingVerbose : public G4SteppingVerbose { + +public: + + SteppingVerbose(); + ~SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm6/include/VisManager.hh b/examples/extended/electromagnetic/TestEm6/include/VisManager.hh new file mode 100644 index 0000000000..3e23f7dfda --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/include/VisManager.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. * +// ******************************************************************** +// +// +// $Id: VisManager.hh,v 1.1 2002/05/23 13:30:35 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Example Visualization Manager implementing virtual function +// RegisterGraphicsSystems. Exploits C-pre-processor variables +// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if +// environment variables of the same name are set. + +// So all you have to do is set environment variables and compile and +// instantiate this in your main(). + +// Alternatively, you can implement an empty function here and just +// register the systems you want in your main(), e.g.: +// G4VisManager* myVisManager = new MyVisManager; +// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef VisManager_h +#define VisManager_h 1 + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class VisManager: public G4VisManager { + +public: + + VisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm6/run01.mac b/examples/extended/electromagnetic/TestEm6/run01.mac new file mode 100644 index 0000000000..bfffd7a34f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/run01.mac @@ -0,0 +1,13 @@ +# $Id: run01.mac,v 1.2 2002/05/23 13:30:14 maire Exp $ +# +# Macro file for "TestEm6.cc" +# (can be run in batch, without graphic) +# +# +/control/verbose 2 +# +/run/initialize +# +/run/verbose 2 +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm6/run02.mac b/examples/extended/electromagnetic/TestEm6/run02.mac new file mode 100644 index 0000000000..3d645d2763 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/run02.mac @@ -0,0 +1,21 @@ +# $Id: run02.mac,v 1.1 2002/05/23 13:30:14 maire Exp $ +# +# Macro file for "TestEm6.cc" +# (can be run in batch, without graphic) +# +# +/control/verbose 2 +# +/run/initialize +# +/calor/setMat Beryllium +/calor/setSize 10 km +/calor/update +# +/run/verbose 2 +# +/gun/particle gamma +/gun/energy 100 TeV +/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 new file mode 100644 index 0000000000..ba258fcda0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.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. * +// ******************************************************************** +// + +// +// $Id: DetectorConstruction.cc,v 1.1 2002/05/23 13:30:36 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" + +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4UniformMagField.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4RunManager.hh" +#include "G4UserLimits.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4UnitsTable.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::DetectorConstruction() +:pBox(0), lBox(0), BoxSize(500*m), + aMaterial(0), + magField (0) +{ + // create UserLimits + userLimits = new G4UserLimits(); + + // create commands for interactive definition of the detector + detectorMessenger = new DetectorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::~DetectorConstruction() +{ delete detectorMessenger;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::Construct() +{ + DefineMaterials(); + return ConstructVolumes(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::DefineMaterials() +{ + //This function illustrates the possible ways to define materials + + G4double a, z, density; + + z = 4.; + a = 9.012182*g/mole; + density = 1.848*g/cm3; + G4Material* Be = new G4Material("Beryllium", z, a, density); + + z = 26.; + a = 55.85*g/mole; + density = 7.870*g/cm3; + G4Material* Fe = new G4Material("Iron" , z, a, density); + + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + + //default materials of the calorimeter + aMaterial = Fe; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() +{ + G4Box* + sBox = new G4Box("Container", //its name + BoxSize/2,BoxSize/2,BoxSize/2); //its dimensions + + lBox = new G4LogicalVolume(sBox, //its shape + aMaterial, //its material + "Container"); //its name + + lBox->SetUserLimits(userLimits); + + pBox = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + "Container", //its name + lBox, //its logical volume + 0, //its mother volume + false, //no boolean operation + 0); //copy number + + // + // Visualization attributes + // + + G4VisAttributes* visAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + visAtt->SetVisibility(true); + lBox->SetVisAttributes(visAtt); + + // + //always return the root volume + // + + PrintParameters(); + return pBox; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::PrintParameters() +{ + G4cout << "\n The Box is " << G4BestUnit(BoxSize,"Length") + << " of " << aMaterial->GetName() << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetMaterial(G4String materialChoice) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + if (pttoMaterial) + {aMaterial = pttoMaterial; + lBox->SetMaterial(aMaterial); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetSize(G4double value) +{ + BoxSize = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetMagField(G4double fieldValue) +{ + //apply a global uniform magnetic field along Z axis + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager()->GetFieldManager(); + + if (magField) delete magField; //delete the existing magn field + + if (fieldValue!=0.) // create a new one if non nul + { + magField = new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue)); + fieldMgr->SetDetectorField(magField); + fieldMgr->CreateChordFinder(magField); + } + else + { + magField = 0; + fieldMgr->SetDetectorField(magField); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetMaxStepSize(G4double val) +{ + // set the maximum allowed step size + // + if (val <= DBL_MIN) + { G4cout << "\n --->warning from SetMaxStepSize: maxStep " + << val << " out of range. Command refused" << G4endl; + return; + } + userLimits->SetMaxAllowedStep(val); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::UpdateGeometry() +{ + G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc new file mode 100644 index 0000000000..19b80e1df8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: DetectorMessenger.cc,v 1.1 2002/05/23 13:30:36 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorMessenger.hh" + +#include "DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:Detector(Det) +{ + detDir = new G4UIdirectory("/calor/"); + detDir->SetGuidance(" detector control."); + + MaterCmd = new G4UIcmdWithAString("/calor/setMat",this); + MaterCmd->SetGuidance("Select material of the box."); + MaterCmd->SetParameterName("choice",false); + MaterCmd->AvailableForStates(PreInit,Idle); + + SizeCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSize",this); + SizeCmd->SetGuidance("Set size of the box"); + SizeCmd->SetParameterName("Size",false); + SizeCmd->SetRange("Size>0."); + SizeCmd->SetUnitCategory("Length"); + SizeCmd->AvailableForStates(PreInit,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); + + 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); + + MaxStepCmd = new G4UIcmdWithADoubleAndUnit("/tracking/stepMax",this); + MaxStepCmd->SetGuidance("Set max allowed step size"); + MaxStepCmd->SetParameterName("Size",false); + MaxStepCmd->SetRange("Size>0."); + MaxStepCmd->SetUnitCategory("Length"); + MaxStepCmd->AvailableForStates(Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::~DetectorMessenger() +{ + delete MaterCmd; + delete SizeCmd; + delete MagFieldCmd; + delete UpdateCmd; + delete MaxStepCmd; + delete detDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == MaterCmd ) + { Detector->SetMaterial(newValue);} + + if( command == SizeCmd ) + { Detector->SetSize(SizeCmd->GetNewDoubleValue(newValue));} + + if( command == MagFieldCmd ) + { Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + + if( command == UpdateCmd ) + { Detector->UpdateGeometry(); } + + if( command == MaxStepCmd ) + { Detector->SetMaxStepSize(MaxStepCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc new file mode 100644 index 0000000000..1925cfe133 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/EventAction.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: EventAction.cc,v 1.1 2002/05/23 13:30:41 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventAction.hh" + +#include "EventActionMessenger.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventAction::EventAction() +:drawFlag("none"),printModulo(10000),eventMessenger(0) +{ + eventMessenger = new EventActionMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventAction::~EventAction() +{ + delete eventMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::BeginOfEventAction(const G4Event* evt) +{ + G4int evtNb = evt->GetEventID(); + + //printing survey + if (evtNb%printModulo == 0) + G4cout << "\n---> Begin of Event: " << evtNb << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::EndOfEventAction(const G4Event* evt) +{ + if (G4VVisManager::GetConcreteInstance()) + { + const G4Event* evt = fpEventManager->GetConstCurrentEvent(); + 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); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc new file mode 100644 index 0000000000..dd50837bbd --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: EventActionMessenger.cc,v 1.1 2002/05/23 13:30:42 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventActionMessenger.hh" + +#include "EventAction.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventActionMessenger::EventActionMessenger(EventAction* EvAct) +:eventAction(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(Idle); + + PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); + PrintCmd->SetGuidance("Print events modulo n"); + PrintCmd->SetParameterName("EventNb",false); + PrintCmd->SetRange("EventNb>0"); + PrintCmd->AvailableForStates(Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventActionMessenger::~EventActionMessenger() +{ + delete DrawCmd; + delete PrintCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventActionMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if(command == DrawCmd) + {eventAction->SetDrawFlag(newValue);} + + if(command == PrintCmd) + {eventAction->SetPrintModulo(PrintCmd->GetNewIntValue(newValue));} + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc new file mode 100644 index 0000000000..96a50063bb --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.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. * +// ******************************************************************** +// +// +// $Id: PhysicsList.cc,v 1.1 2002/05/23 13:30:42 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::PhysicsList() +: G4VUserPhysicsList() +{ + defaultCutValue = 1.*km; + pMes = new PhysicsListMessenger(this); + theGammaToMuPairProcess = 0; + SetVerboseLevel(1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::~PhysicsList() +{ delete pMes; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::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(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructLeptons() +{ + // leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructProcess() +{ + AddTransportation(); + ConstructEM(); + ConstructGeneral(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4GammaConversionToMuons.hh" + +#include "G4MultipleScattering.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructEM() +{ + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma allow only gamma -> mu+mu- + theGammaToMuPairProcess=new G4GammaConversionToMuons; + pmanager->AddDiscreteProcess(theGammaToMuPairProcess); + + } 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); + + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4Decay.hh" + +void PhysicsList::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 PhysicsList::SetCuts() +{ + if (verboseLevel >0){ + G4cout << "PhysicsList::SetCuts:"; + G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; + } + + // set cut values for gamma at first and for e- second and next for e+, + // because some processes for e+/e- need cut values for gamma + SetCutValue(defaultCutValue, "gamma"); + SetCutValue(defaultCutValue, "e-"); + SetCutValue(defaultCutValue, "e+"); + + SetCutValueForOthers(defaultCutValue); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::setGammaToMuPairFac(G4double fac) +{ + if(theGammaToMuPairProcess) theGammaToMuPairProcess->SetCrossSecFactor(fac); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc new file mode 100644 index 0000000000..e6830f04cc --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.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: PhysicsListMessenger.cc,v 1.1 2002/05/23 13:30:43 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsListMessenger.hh" + +#include "PhysicsList.hh" +#include "G4UIcmdWithADouble.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* physL) +:physList(physL) +{ + GammaToMuPairFac=new G4UIcmdWithADouble + ("/run/process/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); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::~PhysicsListMessenger() +{ + delete GammaToMuPairFac; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if(command == GammaToMuPairFac) + { physList->setGammaToMuPairFac( + GammaToMuPairFac->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..7a35906025 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.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: PrimaryGeneratorAction.cc,v 1.1 2002/05/23 13:30:43 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorAction.hh" + +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::PrimaryGeneratorAction( + DetectorConstruction* DC) +:Detector(DC) +{ + particleGun = new G4ParticleGun(1); + G4ParticleDefinition* particle + = G4ParticleTable::GetParticleTable()->FindParticle("gamma"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleEnergy(100*TeV); + particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + + rndmBeam = 0.; + + //create a messenger for this class + gunMessenger = new PrimaryGeneratorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::~PrimaryGeneratorAction() +{ + delete particleGun; + delete gunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //this function is called at the begining of event + // + G4double x0 = -0.5*(Detector->GetSize()); + G4double y0 = 0.*cm, z0 = 0.*cm; + + //randomize the beam, if requested. + // + if (rndmBeam > 0.) + { + G4double rbeam = 0.5*(Detector->GetSize())*rndmBeam; + y0 = (2*G4UniformRand()-1.)*rbeam; + z0 = (2*G4UniformRand()-1.)*rbeam; + } + particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + particleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..e663f55275 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.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: PrimaryGeneratorMessenger.cc,v 1.1 2002/05/23 13:30:43 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorMessenger.hh" + +#include "PrimaryGeneratorAction.hh" +#include "G4UIcmdWithADouble.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( + PrimaryGeneratorAction* Gun) +:Action(Gun) +{ + 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); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() +{ + delete RndmCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if (command == RndmCmd) + {Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc new file mode 100644 index 0000000000..375ba2ce4e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/RunAction.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: RunAction.cc,v 1.2 2002/06/05 14:21:00 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "RunAction.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +#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" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::RunAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::~RunAction() +{ + cleanHisto(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::bookHisto() +{ +#ifndef G4NOHIST + // Creating the analysis factory + IAnalysisFactory* af = AIDA_createAnalysisFactory(); + + // Creating the tree factory + ITreeFactory* tf = af->createTreeFactory(); + + // Creating a tree mapped to an hbook file. + tree = tf->create("testem6.paw", false, false, "hbook"); + + // Creating a histogram factory, whose histograms will be handled by the tree + 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.); + + delete hf; + delete tf; + delete af; +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::cleanHisto() +{ +#ifndef G4NOHIST + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + + delete tree; +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + // save Rndm status + G4RunManager::GetRunManager()->SetRandomNumberStore(true); + HepRandom::showEngineStatus(); + + //histograms + // + if (aRun->GetRunID() == 0) bookHisto(); + + if (G4VVisManager::GetConcreteInstance()) + G4UImanager::GetUIpointer()->ApplyCommand("/vis/scene/notifyHandlers"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::EndOfRunAction(const G4Run* aRun) +{ + //draw the events + if (G4VVisManager::GetConcreteInstance()) + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + + // show Rndm status + HepRandom::showEngineStatus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc new file mode 100644 index 0000000000..9403adca09 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: SteppingAction.cc,v 1.2 2002/06/05 14:21:00 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingAction.hh" +#include "RunAction.hh" +#include "G4SteppingManager.hh" +#include "G4VProcess.hh" +#include "G4ParticleTypes.hh" + +#ifndef G4NOHIST + #include "AIDA/IHistogram1D.h" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::SteppingAction(RunAction* RuAct) +:runAction(RuAct) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::~SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingAction::UserSteppingAction(const G4Step* aStep) +{ + const G4VProcess* process = aStep->GetPostStepPoint()->GetProcessDefinedStep(); + if (process == 0) return; + G4String processName = process->GetProcessName(); + if (processName != "GammaToMuPair") return; + + G4StepPoint* PrePoint = aStep->GetPreStepPoint(); + G4double EGamma = PrePoint->GetTotalEnergy(); + G4ThreeVector PGamma = PrePoint->GetMomentum(); + + G4double Eplus(0), Eminus(0); + G4ThreeVector Pplus , Pminus; + G4TrackVector* secondary = fpSteppingManager->GetSecondary(); + for (size_t lp=0; lp<(*secondary).size(); lp++) { + if ((*secondary)[lp]->GetDefinition()==G4MuonPlus::MuonPlusDefinition()) { + Eplus = (*secondary)[lp]->GetTotalEnergy(); + Pplus = (*secondary)[lp]->GetMomentum(); + } else { + Eminus = (*secondary)[lp]->GetTotalEnergy(); + Pminus = (*secondary)[lp]->GetMomentum(); + } + } + G4double xPlus = Eplus/EGamma, xMinus = Eminus/EGamma; + G4double thetaPlus = PGamma.angle(Pplus), thetaMinus = PGamma.angle(Pminus); + + #ifndef G4NOHIST + static const G4double muonMass=G4MuonPlus::MuonPlus()->GetPDGMass(); + + G4double GammaPlus=EGamma*xPlus/muonMass; + runAction->GetHisto(0)->fill(1./(1.+pow(thetaPlus*GammaPlus,2))); + runAction->GetHisto(1)->fill(log10(thetaPlus*GammaPlus)); + + G4double GammaMinus=EGamma*xMinus/muonMass; + runAction->GetHisto(2)->fill(log10(thetaMinus*GammaMinus)); + runAction->GetHisto(3)->fill(log10(fabs(thetaPlus *GammaPlus + -thetaMinus*GammaMinus))); + + runAction->GetHisto(4)->fill(xPlus); + runAction->GetHisto(5)->fill(xMinus); + #endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc new file mode 100644 index 0000000000..f6adbde2f7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.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: SteppingVerbose.cc,v 1.1 2002/05/23 13:30:45 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingVerbose::SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingVerbose::~SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 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 SteppingVerbose::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/electromagnetic/TestEm6/src/VisManager.cc b/examples/extended/electromagnetic/TestEm6/src/VisManager.cc new file mode 100644 index 0000000000..ac37fb060b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/src/VisManager.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: VisManager.cc,v 1.1 2002/05/23 13:30:45 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// John Allison 24th January 1998. + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4VIS_USE + +#include "VisManager.hh" + +// Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4RayTracer.hh" +#include "G4VRML1File.hh" +#include "G4VRML2File.hh" + +// Needing external packages or libraries... + +#ifdef G4VIS_USE_DAWN +#include "G4FukuiRenderer.hh" +#endif + +#ifdef G4VIS_USE_OPACS +#include "G4Wo.hh" +#include "G4Xo.hh" +#endif + +#ifdef G4VIS_USE_OPENGLX +#include "G4OpenGLImmediateX.hh" +#include "G4OpenGLStoredX.hh" +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 +#include "G4OpenGLImmediateWin32.hh" +#include "G4OpenGLStoredWin32.hh" +#endif + +#ifdef G4VIS_USE_OPENGLXM +#include "G4OpenGLImmediateXm.hh" +#include "G4OpenGLStoredXm.hh" +#endif + +#ifdef G4VIS_USE_OIX +#include "G4OpenInventorX.hh" +#endif + +#ifdef G4VIS_USE_OIWIN32 +#include "G4OpenInventorWin32.hh" +#endif + +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +#include "G4VRML2.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +VisManager::VisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void VisManager::RegisterGraphicsSystems () { + + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... + +#ifdef G4VIS_USE_DAWN + RegisterGraphicsSystem (new G4FukuiRenderer); +#endif + +#ifdef G4VIS_USE_OPACS + RegisterGraphicsSystem (new G4Wo); + RegisterGraphicsSystem (new G4Xo); +#endif + +#ifdef G4VIS_USE_OPENGLX + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + +#ifdef G4VIS_USE_OPENGLXM + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); +#endif + +#ifdef G4VIS_USE_OIX + RegisterGraphicsSystem (new G4OpenInventorX); +#endif + +#ifdef G4VIS_USE_OIWIN32 + RegisterGraphicsSystem (new G4OpenInventorWin32); +#endif + +#ifdef G4VIS_USE_VRML + RegisterGraphicsSystem (new G4VRML1); + RegisterGraphicsSystem (new G4VRML2); +#endif + + if (fVerbose > 0) { + G4cout << + "\nYou have successfully chosen to use the following graphics systems." + << G4endl; + PrintAvailableGraphicsSystems (); + } +} + +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/vis.mac b/examples/extended/electromagnetic/TestEm6/vis.mac new file mode 100644 index 0000000000..46290c40bb --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/vis.mac @@ -0,0 +1,37 @@ +# +# Macro file for the initialization phase of "TestEm6.cc" +# +# Sets some default verbose +# and initializes the graphic. +# +/control/verbose 2 +/run/verbose 2 +# +/run/initialize +# +# Create empty scene ("world" is default) +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open OGLIX +# +#/vis/open DAWNFILE +# +# Draw scene +/vis/viewer/zoom 1.4 +/vis/viewer/flush +# +# for drawing the tracks +# if too many tracks cause core dump => storeTrajectory 0 +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +# +/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 diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.cc b/examples/extended/electromagnetic/TestEm8/TestEm8.cc index 85d551d74e..74f731681d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out index 296f9457df..ba189c2f74 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.out +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -133,16 +133,14 @@ 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.36 s -Em8PhysicsList::SetCuts:CutLength : 1 mm +total time for build X-ray TR tables = 6.5 s -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. +Em8PhysicsList::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 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 @@ -163,7 +161,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)=6.63 s +total time(SetCuts)=5.76 s # #control/saveHistory # @@ -244,47 +242,47 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 11 kByte - Total CPU time elapsed for geometry optimisation: 0.01 seconds + Total CPU time elapsed for geometry optimisation: 0 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- -427218800.00 42721.88 0.57 11k Radiator -427218700.00 42721.87 0.57 0k World + 0.00 0.00 0.54 0k World + 0.00 0.00 0.54 11k Radiator Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 96.00 11k 1 305 376 42721.88 Radiator - 4.00 0k 3 7 20 42721.87 World + 96.00 11k 1 305 376 42709.36 Radiator + 4.00 0k 3 7 20 42709.36 World Start Run processing. ---> Begin of Event: 0 Run terminated. Run Summary Number of events processed : 1000 - User=89.43s Real=91.56s Sys=1.14s + User=126.19s Real=133.52s Sys=2.13s ================== run summary ===================== - end of Run TotNbofEvents = 1000.000000 - mean charged track length in absorber=71.821217 +- 1.034940 mm + end of Run TotNbofEvents = 1000 + mean charged track length in absorber=155.499 +- 3.90364 mm - mean energy deposit in absorber=0.098855 +- 0.001018 MeV + mean energy deposit in absorber=0.101305 +- 0.00101646 MeV - mean number of steps in absorber (charged) =429.514000 +- 1.262516 - mean number of steps in absorber (neutral) =4.755000 +- 0.077518 + 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 charged secondaries = 1.349000 +- 0.038252 + mean number of charged secondaries = 1.481 +- 0.0379426 - mean number of neutral secondaries = 0.024000 +- 0.005042 + mean number of neutral secondaries = 0.033 +- 0.00564898 - mean number of e-s =1.349000 and e+s =0.000000 + mean number of e-s =1.481 and e+s =0 -(number) transmission coeff=0.843000 reflection coeff=0.001000 +(number) transmission coeff=0.682 reflection coeff=0.048 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1872357293, 1413261945 + Current couple of seeds = 1389024498, 296616067 ---------------------------------------- # # diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh index 301b47199e..0b9bc1f7c4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh index 398adc3212..709c5d591f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh index f398e24348..c5f32d6b81 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh index 9542127e87..dd45692b6b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh index 7f7722d814..83d365fbe1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh index ac69ba2f02..8bd1023edb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh index 3804bc6ad1..ca0139f0c4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef Em8PhysicsList_h diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh index 01b5a69d61..ef4e422a16 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh index 8ce1228974..b01af56bef 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh index c67ffdc20b..b27bf05f31 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh index 97d89a0a6c..315c9870a4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh index a2c59e10dc..cde51e2f83 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh b/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh index d7cda9aa0b..82db105d77 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh index 33351f7e05..3fbb7846e3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh index d6c41ff894..a568925c2b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh index c078b2d0a1..b8fe02144f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh b/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh index 1948fd9cbd..e7a389c096 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh index 8899e2808a..92656024cd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh index 5ebdf97e11..ec7e574f42 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc index 0c81cf150d..afa5fe525c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc index e4c36f314e..93dc915aea 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc index 33a3e8446c..cae4c599c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc index f8ff5455b9..5916c9efeb 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc index 5f87102aea..7139a7df46 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc index e5d3a260d0..4eebfe364b 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8EventActionMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc index a7af25d572..85f22f56da 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc index 547a1ea19b..6220654b67 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8PhysicsListMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc index 0eb373e875..a281d05ba9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc index 757dc7cce8..d55adbdce8 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc index 4c9a1c68c7..44ddc92425 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc index 7bd2485f6a..db22b8d378 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8RunMessenger.cc,v 1.4 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8StepCut.cc b/examples/extended/electromagnetic/TestEm8/src/Em8StepCut.cc index 012e00ec2a..4944f240f1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "Em8StepCut.hh" diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc index 87d57d10e5..13db1aa779 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc index 294eee5569..79550230d3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc index 33dd00d987..fe1b2784e1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc b/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc index a29350fee3..112086c6d4 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: Em8VisManager.cc,v 1.5 2001/11/15 13:09:50 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx01/GNUmakefile new file mode 100644 index 0000000000..742eed7dac --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/GNUmakefile @@ -0,0 +1,75 @@ +# $Id: GNUmakefile,v 1.2 2002/05/28 14:05:16 murakami Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- +name := hepmcEx01 +G4TARGET := $(name) +G4EXLIB := true + +#ifndef G4WORKDIR +# G4WORKDIR := . +#endif + +.PHONY: all +all : lib bin + +include $(G4INSTALL)/config/binmake.gmk + +# ----------------------------------------------------------------- +# HepMC and PYTHIA + +# if you donnot use Pythia library, comment out. +USE_PYTHIA := 1 + +# HepMC +HEPMC_DIR := /opt/heplib/HepMC/1.21 +INCFLAGS += -I$(HEPMC_DIR) + +# check gcc +USE_GCC := 0 +ifeq ($(G4SYSTEM),Linux-g++) + USE_GCC := 1 +endif +ifeq ($(G4SYSTEM),Linux-egcs) + USE_GCC := 1 +endif + +ifeq ($(USE_GCC),1) + LDLIBS1 += -Wl,-rpath $(HEPMC_DIR) +endif + +ifdef USE_PYTHIA + LDLIBS1 += -L$(HEPMC_DIR) -lHepMC +else + LDLIBS1 += -L$(HEPMC_DIR) -lHepMC $(G4TMPDIR)/HEPEvtcom.o +endif + +ifdef USE_PYTHIA + CERNLIB_DIR := /cern/pro/lib + LDLIBS1 += -L$(CERNLIB_DIR) -lpythia6 + + # if you get pythia initialization errors, try the next flag. + #NEED_INITPYDATA := 1 + ifdef NEED_INITPYDATA + CXXFLAGS += -DNEED_INITPYDATA + LDLIBS1 += $(HepMC_DIR)/src/initpydata.o + #LDLIBS1 += external/initpydata.o + endif + + LDLIBS1 += $(FCLIBS) +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/History b/examples/extended/eventgenerator/HepMC/HepMCEx01/History new file mode 100644 index 0000000000..879bac4f6a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/History @@ -0,0 +1,99 @@ +$Id: History,v 1.2 2002/05/28 14:05:17 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 * + ---------------------------------------------------------- + +May. 28, 2002 K.Murakami +- rename 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/README b/examples/extended/eventgenerator/HepMC/HepMCEx01/README new file mode 100644 index 0000000000..d4783a19af --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/README @@ -0,0 +1,52 @@ +$Id: README,v 1.2 2002/05/28 14:05:17 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 HepMCG4Interface 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/data/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx01/data/GNUmakefile new file mode 100644 index 0000000000..9c46c20e00 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/data/GNUmakefile @@ -0,0 +1,26 @@ +# // CLHEP +CLHEPD := /usr/local/CLHEP +CLHEPINC := -I$(CLHEPD)/include +CLHEPLIB := -L$(CLHEPD)/lib -lCLHEP + +# // HepMC +HEPMCD := /opt/heplib/HepMC/1.21 +HEPMCINC := -I$(HEPMCD) +HEPMCLIB := -L$(HEPMCD) -lHepMC +#HEPMCLIB := $(HEPMCD)/libHepMC.so + +# // CERN libraries +CLIBD := /cern/pro/lib +CLIB := -L$(CLIBD) -lpythia6 + +CXXFLAGS := $(CLHEPINC) $(HEPMCINC) +LOPT := -Wl,-rpath $(HEPMCD) $(HEPMCLIB) $(CLHEP) $(CLIB) -lg2c + +%.o: %.cxx + $(CXX) -c -o $@ $(CXXFLAGS) $*.cxx + +example_MyPythia : example_MyPythia.o + $(CXX) -o $@ $< $(LOPT) + +example_MyPythia.o : example_MyPythia.cxx + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.cxx b/examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.cxx new file mode 100644 index 0000000000..b92303cafd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.cxx @@ -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. * +// ******************************************************************** +// +// +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, December 1999 +// November 2000, updated to use Pythia 6.1 +// example of generating events with Pythia +// using HepMC/PythiaWrapper.h +// Events are read into the HepMC event record from the FORTRAN HEPEVT +// common block using the IO_HEPEVT strategy and then output to file in +// ascii format using the IO_Ascii strategy. +////////////////////////////////////////////////////////////////////////// +// To Compile: go to the HepMC directory and type: +// gmake examples/example_MyPythia.exe +// +// In this example the precision and number of entries for the HEPEVT +// fortran common block are explicitly defined to correspond to those +// used in the Pythia version of the HEPEVT common block. +// +// If you get funny output from HEPEVT in your own code, probably you have +// set these values incorrectly! +// + +#include +#include "HepMC/PythiaWrapper.h" +#include "HepMC/IO_HEPEVT.h" +#include "HepMC/IO_Ascii.h" +#include "HepMC/GenEvent.h" + +int main() { + // + //........................................HEPEVT + // Pythia 6.1 uses HEPEVT with 4000 entries and 8-byte floating point + // numbers. We need to explicitly pass this information to the + // HEPEVT_Wrapper. + // + HepMC::HEPEVT_Wrapper::set_max_number_entries(4000); + HepMC::HEPEVT_Wrapper::set_sizeof_real(8); + // + //........................................PYTHIA INITIALIZATIONS + // (Some platforms may require the initialization of pythia PYDATA block + // data as external - if you get pythia initialization errors try + // commenting in/out the below call to initpydata() ) + // initpydata(); + // + // Select W+gamma process (process number 20) + // (here we have to be careful of C/F77 differences: arrays in C + // start at 0, F77 at 1, so we need to subtract 1 from the process #) + 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. ); + + //........................................HepMC INITIALIZATIONS + // + // Instantiate an IO strategy for reading from HEPEVT. + HepMC::IO_HEPEVT hepevtio; + // + // Instantial an IO strategy to write the data to file - it uses the + // same ParticleDataTable + HepMC::IO_Ascii ascii_io("example_MyPythia.dat",std::ios::out); + // + //........................................EVENT LOOP + 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 = hepevtio.read_next_event(); + // 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 + ascii_io << evt; + // we also need to delete the created event from memory + delete evt; + } + //........................................TERMINATION + // write out some information from Pythia to the screen + call_pystat( 1 ); + + return 0; +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.dat b/examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.dat new file mode 100644 index 0000000000..f8ffcf1197 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/data/example_MyPythia.dat @@ -0,0 +1,5892 @@ + +HepMC::IO_Ascii-START_EVENT_LISTING +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 3 0 0 -1 0 +P 3 2 -7.7594698288360897e-01 -9.1232539665921930e-01 1.8833052220885656e+03 1.8833056029166935e+03 3 0 0 -3 0 +P 20 2101 7.7594698288360897e-01 9.1232539665921930e-01 4.4469502845870420e+03 4.4469504836059705e+03 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 3 0 0 -2 0 +P 4 -1 -1.0077355308447375e+00 -1.2716278982991639e-02 -4.1454166842423659e+00 4.2661659707370658e+00 3 0 0 -4 0 +P 13 2214 9.9965263761245238e-01 2.7342497748314848e-02 -4.0826017593891916e+03 4.0826020585869046e+03 2 0 0 -9 0 +P 26 1 8.0828932322852265e-03 -1.4626218765323211e-02 -2.4623230582064652e+03 2.4623230803764359e+03 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 3 0 0 -5 0 +P 21 21 1.4581184692651741e+00 -3.9123134860507047e-01 1.0923177669273832e+02 1.0924220892535446e+02 2 0 0 -16 0 +P 22 21 3.1078318510719791e+00 2.3161265926755781e-01 1.4647261850356662e+02 1.4650576860495917e+02 2 0 0 -16 0 +P 23 21 -1.0916504553308495e-01 -1.8718066652841989e+00 8.6094190154962845e+01 8.6114604775486654e+01 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 3 0 0 -5 0 +P 24 21 -5.3671673260814667e-01 -6.6758503288897897e+00 4.7470952833050397e+01 4.7941072217280407e+01 2 0 0 -16 0 +P 25 21 -7.1083651803421799e-01 -1.7119307722665538e+00 1.0816833663101894e+01 1.0974510741696802e+01 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 3 0 0 -6 0 +P 8 24 -9.6667421012420562e-01 1.0722995700918359e+01 1.2333197371451533e+03 1.2410038562029381e+03 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 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 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 0 0 0 0 +P 12 14 2.4655654232323258e+01 -3.6317182747008992e+01 1.0239517382666510e+03 1.0248921901095741e+03 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 1 0 0 0 0 +P 30 111 -2.4584199976963136e-02 -9.0850556101199478e-02 -3.4551154230660296e+02 3.4551158149169805e+02 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 2 0 0 -10 0 +P 15 -1 -2.3065048155050207e+00 -5.8203193328752807e+00 4.6213780965918581e+01 4.6635926416942638e+01 2 0 0 -10 0 +P 31 92 0 0 1.9674812102395055e+02 1.9730040006055842e+02 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 0 0 0 0 +P 33 211 1.8267397603378879e-01 -2.2451207083727245e-01 8.9833818072340854e+00 8.9891269838019312e+00 1 0 0 0 0 +P 34 -211 1.6527958883141400e+00 3.3636085038226837e+00 8.5511074879269898e+01 8.5593276623858827e+01 1 0 0 0 0 +P 35 221 1.5340695778001462e-01 1.0080214339909595e-01 1.6778513363366923e+01 1.6788445638414284e+01 2 0 0 -21 0 +P 36 211 -5.4270097089667468e-01 7.1269909168117845e-02 3.1032133671979825e+00 3.1542061966557080e+00 1 0 0 0 0 +P 37 221 -4.3895349893169139e-01 -1.0908000994225866e+00 1.6203900382989026e+01 1.6255725580713296e+01 2 0 0 -22 0 +P 38 -213 -1.1775778049994057e+00 -2.1994908478570685e+00 1.6736113732474852e+01 1.6955085170015739e+01 2 0 0 -23 0 +P 39 211 -8.3980164819194153e-02 -1.6679795495132113e+00 1.5269240867812080e+01 1.5360937631207282e+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 2 0 0 -12 0 +P 17 -2 3.9452709365158856e+00 1.3309715048590964e+00 4.3760023670797966e+02 4.3762004503311903e+02 2 0 0 -12 0 +P 40 92 0 0 4.7170060134112072e+02 4.7197366952926848e+02 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 2 0 0 -24 0 +P 42 211 -1.0793700584347439e+00 -1.7691740782741042e-01 8.9362513158609644e+00 9.0040217046253623e+00 1 0 0 0 0 +P 43 223 7.3128413379081270e-01 -2.4207212017445862e-01 2.9711160638588780e+01 2.9731384214780988e+01 2 0 0 -25 0 +P 44 -213 6.8313854697846552e-02 2.1615069868878325e-01 2.6710541480290658e+01 2.6723469313128675e+01 2 0 0 -26 0 +P 45 211 -7.6171122821958814e-02 3.3362556819896899e-01 9.9768132257362261e+00 9.9836561432089255e+00 1 0 0 0 0 +P 46 223 1.1759907015886510e+00 7.6699830168521430e-03 1.5941193545306197e+02 1.5941819661887365e+02 2 0 0 -27 0 +P 47 -213 4.1784646533132969e-01 2.7042442905701480e-01 5.6342534981914696e+01 5.6346454491891919e+01 2 0 0 -28 0 +P 48 111 1.4385917785683024e+00 3.3194541757471685e-01 1.5361171468655868e+02 1.5361886877141990e+02 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 2 0 0 -14 0 +P 19 -2 -1.5410660823344702e+00 -3.0415562160378746e+00 -3.1131552297791711e+02 3.1133419471028151e+02 2 0 0 -14 0 +P 49 92 0 0 -3.7456072109050922e+02 3.7467123784608367e+02 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 2 0 0 -30 0 +P 51 211 2.0243674382169874e-01 1.1974235089754615e-01 -2.6986180398301357e+01 2.6987566232256142e+01 1 0 0 0 0 +P 52 -211 -1.7675058607927574e+00 -2.9526250360211090e+00 -2.8642846177069208e+02 2.8644916698025321e+02 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 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 1 0 0 0 0 +P 55 113 -3.6038310812821978e-01 -1.6892929069557774e-01 8.6247137938804929e+02 8.6247157540874730e+02 2 0 0 -31 0 +P 56 -2214 1.0274054900145733e+00 9.2951858077602798e-02 4.5344312824574462e+02 4.5344608664771232e+02 2 0 0 -32 0 +P 57 223 -3.5950138267252507e-01 4.0383168579159467e-01 1.2478306984250651e+02 1.2478685771933476e+02 2 0 0 -33 0 +P 58 2212 1.6784465902779000e+00 -6.2450245543458038e-01 1.5667821954585344e+02 1.5669126337139798e+02 1 0 0 0 0 +P 59 -213 5.5576917486158994e-01 3.4454408402510756e-01 9.1366431045160198e+01 9.1370656398000975e+01 2 0 0 -34 0 +P 60 -311 6.8837804480312736e-02 -2.9839760512711585e-02 3.7650473956009833e+01 3.7653837700767077e+01 2 0 0 -35 0 +P 61 311 5.5852191137677354e-01 -2.3170010256673915e-01 5.8824232435728810e+01 5.8829445252735184e+01 2 0 0 -36 0 +P 62 211 3.2384754659479414e-01 -1.1095603539042695e+00 5.0326870381868780e+01 5.0340335354770062e+01 1 0 0 0 0 +P 63 113 -1.6488951177897816e-02 -7.8122143799785340e-02 4.9112488643673986e+00 4.9474711292126861e+00 2 0 0 -37 0 +P 64 -211 7.0648600777312476e-01 -6.4021847151240463e-01 6.5555221578401913e+01 6.5562302874050388e+01 1 0 0 0 0 +P 65 213 4.7207901564054866e-01 -4.3912457471518479e-01 1.4382616336991193e+01 1.4418576507834425e+01 2 0 0 -38 0 +P 66 -213 -3.0042801873910607e-01 -3.8199301959389176e-01 1.6229684769106441e+01 1.6256964556636262e+01 2 0 0 -39 0 +P 67 211 -4.3941675941743208e-01 -3.1906445983026024e+00 2.4837368567595707e+01 2.5045711353216259e+01 1 0 0 0 0 +P 68 -211 -1.3996633591260657e-01 -1.2032611277813125e-01 4.9245854481282014e-01 5.4411777389114624e-01 1 0 0 0 0 +P 69 -311 -2.6561371175678439e-01 -2.6535883073847484e+00 2.0655232762662497e+01 2.0832628193716424e+01 2 0 0 -40 0 +P 70 323 1.0866371896259655e-01 -8.8626238190570616e-01 4.6627917510728158e+00 4.8302466865539628e+00 2 0 0 -41 0 +P 71 113 -4.9783662946179669e-01 -2.2840858695582428e-01 1.7034444868848415e+00 1.9604937252009362e+00 2 0 0 -42 0 +P 72 -323 -2.9015742650522380e-01 -2.3021536904469947e-01 6.4282764365011924e-01 1.1577885131594590e+00 2 0 0 -43 0 +P 73 311 7.9013389939514289e-02 -3.2312546676672708e-02 -8.4688302464291099e-01 9.8598859161290120e-01 2 0 0 -44 0 +P 74 113 1.2774634435977392e-01 1.7876746229795942e-01 -7.0745137977013928e-01 1.0861776738766289e+00 2 0 0 -45 0 +P 75 -2112 2.3991231535880583e-01 -6.4340230480703609e-01 -2.3473851019465588e+00 2.6200253904556892e+00 1 0 0 0 0 +P 76 2112 1.4332258420217242e-01 -2.1997217583827630e-01 -2.2266533235780592e+00 2.4309886732740313e+00 1 0 0 0 0 +P 77 221 -1.5764236109767513e-01 9.2260932887338432e-01 -1.1183066194239037e+01 1.1235512008581036e+01 2 0 0 -46 0 +P 78 211 -3.9688019773273309e-01 -5.0114132735548866e-01 -1.1139586968129358e+00 1.2919134198703757e+00 1 0 0 0 0 +P 79 111 2.8720505725726897e-01 2.8206480950685814e-01 -1.0371931167428463e+00 1.1207303259460017e+00 2 0 0 -47 0 +P 80 223 4.0600347620418453e-01 -2.4511798802410625e-01 -3.5094643591439350e+01 3.5108232820041870e+01 2 0 0 -48 0 +P 81 -321 -6.1416080466482037e-01 2.7652838022953574e-01 -2.2846185259167453e+02 2.2846337866717087e+02 1 0 0 0 0 +P 82 323 1.2565639040248300e-01 -3.0746308740674749e-01 -1.4994406836076098e+03 1.4994409818689087e+03 2 0 0 -49 0 +P 83 -321 1.9429284964222532e-01 2.9316952731129947e-01 -1.6936871917454789e+02 1.6936980360698905e+02 1 0 0 0 0 +P 84 311 -9.3629085348251956e-02 -1.1090305621819395e-01 -5.0941280621429246e+02 5.0941306998980963e+02 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 2 0 0 -18 0 +P 28 21 1.3650212674856288e-01 5.9889764280123572e+00 -6.1244142694407962e+01 6.1536424058104799e+01 2 0 0 -18 0 +P 85 92 0 0 -7.5073273670269913e+01 7.6607301107349116e+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 1 0 0 0 0 +P 87 2212 1.8826721276030065e-01 -2.1411823793389910e+00 -4.4940750564267944e+00 5.0692373914317530e+00 1 0 0 0 0 +P 88 -213 2.0012868143999138e-01 -1.1118139792674885e-01 -1.6567370969599078e+00 1.8269381912397860e+00 2 0 0 -51 0 +P 89 -313 -6.2630872275736982e-01 1.3663451184419380e+00 -1.2866054962931736e+01 1.2986301018153689e+01 2 0 0 -52 0 +P 90 321 7.8884764052036593e-02 7.4459657794075773e-01 -1.0937413012935250e+01 1.0974119155786763e+01 1 0 0 0 0 +P 91 -211 4.2278301863584250e-02 3.9247341077632097e-01 -8.7403526103734830e+00 8.7503752131858565e+00 1 0 0 0 0 +P 92 211 6.4367355561099904e-02 3.6656271279001679e-01 -1.3767381548990618e+00 1.4329686357086739e+00 1 0 0 0 0 +P 93 -2212 4.1585942036274817e-02 5.6395536708324689e-01 -1.1971979631427098e+01 1.2021997418683901e+01 1 0 0 0 0 +P 94 2112 4.9188311626540610e-02 1.3014271868710594e+00 -1.5047619097566116e+01 1.5133068575244886e+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 1 0 0 0 0 +P 96 22 2.1135098588074424e-02 2.9217394006442684e-02 -7.3802480998431093e+01 7.3802489808083607e+01 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 0 0 0 0 +P 98 -211 -4.9893773724282060e-02 -5.3826599477990789e-02 4.3098583175285032e+00 4.3127421895514972e+00 1 0 0 0 0 +P 99 111 1.2717944250852329e-02 2.0789923927546888e-02 5.6102983279735579e+00 5.6119747768771902e+00 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 2 0 0 -54 0 +P 101 111 -1.9448733826450373e-01 -3.0772173043153522e-01 5.9693477937278034e+00 5.9819604370981914e+00 2 0 0 -55 0 +P 102 111 -2.6469435630176663e-01 -5.8497375613724767e-01 7.5508427208632973e+00 7.5792943466553382e+00 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 0 0 0 0 +P 104 111 -1.2368786453413552e+00 -1.4005317185689488e+00 1.2746545583623952e+01 1.2883477860959070e+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 1 0 0 0 0 +P 106 22 -2.6701434621632107e+00 -6.6149024683386048e-01 2.6198889178804361e+01 2.6342912323022706e+01 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 0 0 0 0 +P 108 211 3.9410357646856603e-01 9.7313149537317151e-02 1.4025732004537366e+01 1.4032299367033970e+01 1 0 0 0 0 +P 109 111 3.1959377834786096e-01 -3.7306221511642979e-01 1.2482378225204421e+01 1.2492769963341344e+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 0 0 0 0 +P 111 111 1.5239435838771678e-01 4.0414983069819693e-01 9.1658492565191594e+00 9.1770133115166939e+00 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 0 0 0 0 +P 113 211 5.9651172498042482e-01 -1.2288599138979327e-01 1.0093129545527971e+02 1.0093322946022674e+02 1 0 0 0 0 +P 114 111 1.0877872629489453e-01 6.2030942934870215e-02 9.2553300234852465e+00 9.2571612329700255e+00 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 0 0 0 0 +P 116 111 3.7716281534402596e-01 2.6387314224154818e-01 4.9755028559286941e+01 4.9757340838918765e+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 1 0 0 0 0 +P 118 22 9.6707579898488760e-01 2.8602364470440500e-01 1.0302333278063017e+02 1.0302826865649438e+02 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 0 0 0 0 +P 120 211 6.4923444799854679e-01 7.0777405005783134e-01 -1.7423230407349280e+01 1.7450240316020970e+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 0 0 0 0 +P 122 -211 -2.5305067720695146e-01 -2.1157383395427928e-01 7.0655409695023229e+02 7.0655418772736425e+02 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 1 0 0 0 0 +P 124 111 5.2795567011208044e-01 -5.5755347150152117e-02 1.2395602297064545e+02 1.2395723333532385e+02 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 0 0 0 0 +P 126 -211 -2.2097435527052245e-01 7.1076741178384292e-02 8.2130801390093922e+01 8.2131248001797573e+01 1 0 0 0 0 +P 127 111 -1.6637823561728583e-02 -1.7998512288051847e-02 1.0856708622226705e+01 1.0857575349586533e+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 0 0 0 0 +P 129 111 2.4485646346106241e-01 -1.1784239944012394e-02 5.7016077712252383e+01 5.7016764471916609e+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 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 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 0 0 0 0 +P 133 -211 -1.2477893517836794e-01 -2.6770715933836557e-02 5.3652236263234054e-01 5.6887826852539047e-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 0 0 0 0 +P 135 111 2.9051823129776339e-01 9.4253205862916190e-02 2.5554493631607658e+00 2.5771739478759641e+00 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 0 0 0 0 +P 137 111 1.9335000230150959e-01 -1.6887660807106833e-01 9.4847169615688305e+00 9.4891505928410194e+00 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 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 2 0 0 -68 0 +P 140 211 1.5423113089690546e-01 -6.9220110873578600e-01 2.8081145831536185e+00 2.8996408249458776e+00 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 0 0 0 0 +P 142 -211 -5.7019430719192066e-01 -9.5127740091841564e-02 1.6405461753823727e+00 1.7450049780303740e+00 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 2 0 0 -69 0 +P 144 -211 -1.8768353488580339e-01 1.4528908800357815e-01 3.8970686724282899e-01 4.7716376186416543e-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 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 0 0 0 0 +P 147 211 2.0079705428855016e-01 -1.2661225229997761e-01 2.5627217928987662e-02 2.7656221477673332e-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 0 0 0 0 +P 149 211 -6.2902915281313837e-02 5.6601656520515309e-01 -6.6535918753555769e+00 6.6793784259866031e+00 1 0 0 0 0 +P 150 111 4.2025934335575603e-02 1.4415388830729814e-01 -2.0478406253098065e+00 2.0577699943725856e+00 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 1 0 0 0 0 +P 152 22 1.5655151467895148e-01 1.1809668622962230e-01 -3.3786083906270786e-01 3.9064709216740479e-01 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 0 0 0 0 +P 154 211 4.7387253393100676e-01 -4.6099131523123638e-01 -2.8882389448288819e+01 2.8890291936888733e+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 1 0 0 0 0 +P 156 111 -1.4463108126498905e-01 -1.2879962101808320e-01 -8.4210278445963058e+02 8.4210281754768846e+02 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 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 0 0 0 0 +P 159 111 3.3310773039596953e-01 1.8320108049326658e-01 -7.0540906308433615e-01 8.1261611024208424e-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 2 0 0 -74 0 +P 161 111 -5.9812769882346839e-01 7.9865106895285420e-01 -7.1598821292469550e+00 7.2303341540449777e+00 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 1 0 0 0 0 +P 163 22 -4.5378527050218442e-02 -3.2638722195481272e-02 1.8337849139108104e+00 1.8346366417878721e+00 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 1 0 0 0 0 +P 165 22 -3.6512804490948913e-03 -1.0306116020996116e-01 6.2672271296364868e-01 6.3515060697228121e-01 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 1 0 0 0 0 +P 167 22 1.8239624371713066e-02 -5.4829489168192323e-02 8.8506442375569738e-01 8.8694869692540323e-01 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 1 0 0 0 0 +P 169 22 -3.0367330483346080e-02 -2.2072132364066455e-01 2.6522838638479649e+00 2.6616254003707325e+00 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 1 0 0 0 0 +P 171 22 -1.2247062310341752e+00 -1.3834980625027131e+00 1.2673852642980682e+01 1.2807830146331236e+01 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 1 0 0 0 0 +P 173 22 -6.4581054112161709e-03 -2.6583639104915669e-02 3.5036621273405388e-01 3.5143261092159195e-01 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 1 0 0 0 0 +P 175 22 1.7384684072970241e-01 3.8924427427810981e-01 8.6802877220690533e+00 8.6907496090379173e+00 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 1 0 0 0 0 +P 177 22 1.2513425613974663e-01 2.1669109411810668e-02 5.0155684975252131e+00 5.0171760469142059e+00 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 1 0 0 0 0 +P 179 22 2.6965070881795838e-01 2.3498879184710436e-01 4.1850296348452900e+01 4.1851824759386410e+01 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 1 0 0 0 0 +P 181 22 3.1844342457361852e-01 -9.8647565394610406e-02 7.8200450686792436e+01 7.8201161277657945e+01 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 1 0 0 0 0 +P 183 22 4.9445449803996989e-02 2.7664851056761277e-02 4.7844414683534406e+00 4.7847769394811230e+00 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 1 0 0 0 0 +P 185 22 7.6199375611534031e-02 -6.5424943890333209e-02 2.4383612858074731e+01 2.4383819692176896e+01 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 0 0 0 0 +P 187 -211 -8.9447096592936592e-02 3.4440698213342676e-02 5.4967591956659874e+00 5.4993661802812257e+00 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 1 0 0 0 0 +P 189 22 2.7784862546685535e-01 1.2046212744598270e-01 2.2388090022228502e+00 2.2591982496577647e+00 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 1 0 0 0 0 +P 191 22 1.9298941527035879e-01 -1.6930323073064041e-01 9.4850343963356085e+00 9.4885081018046158e+00 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 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 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 0 0 0 0 +P 195 -211 4.1229769453200796e-02 -2.0403909308820700e-01 -2.7736664210260031e-01 3.7382333320526429e-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 1 0 0 0 0 +P 197 22 1.9296130022377168e-02 2.4202879014850413e-03 -9.9488140703357786e-01 9.9507146099588162e-01 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 1 0 0 0 0 +P 199 22 1.7728165559323081e-02 1.3530446563782706e-03 -1.6871907806854932e+02 1.6871907900536871e+02 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 1 0 0 0 0 +P 201 22 1.9948703294844422e-01 1.4480375812720442e-01 -5.5781491967292174e-01 6.0985300629909467e-01 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 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 1 0 0 0 0 +P 204 22 -1.3697440480756579e-01 1.3666152734273918e-01 -1.0855759277723773e+00 1.1026846582713004e+00 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 0 0 0 0 +P 206 211 1.5590564395647613e-02 -2.7309508262078958e-01 1.5568780173782018e+00 1.5868752111446289e+00 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 0 0 0 0 +P 208 211 1.3822297001093711e-01 -4.8443808331334694e-02 7.5691258063481481e-02 2.1601236874660687e-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 0 0 0 0 +P 210 -211 -8.2368117484194217e-02 7.8733984280142638e-02 -6.6676006708054880e-01 6.9067526306635141e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 21 2.2381466690269431e-03 -3.4720102421292970e-01 8.5760509831394440e+00 8.5830766060849815e+00 3 0 0 -3 0 +P 13 1 -1.5953315142106061e-01 2.5534284672707136e-01 4.5110225338059212e+02 4.5110247456187125e+02 2 0 0 -9 0 +P 41 2203 1.5729500475203367e-01 9.1858177485858339e-02 4.1239913742420931e+03 4.1239914503976361e+03 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 3 0 0 -2 0 +P 4 1 1.8117451391948236e-01 -9.2107013792072212e-01 -1.9146656945590603e+03 1.9146659246760862e+03 3 0 0 -4 0 +P 39 2203 -1.8117451391948236e-01 9.2107013792072212e-01 -4.3349283892041103e+03 4.3349285594657858e+03 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 3 0 0 -5 0 +P 11 -4 1.9522097387122794e+00 -1.0579566003536176e+00 -8.1797583597675185e+00 8.6074875461043483e+00 2 0 0 -9 0 +P 12 21 1.8528631058109368e+00 6.4833945342773376e+00 -3.6105831959994241e+01 3.6730077700698025e+01 2 0 0 -9 0 +P 14 4 1.0685515977985798e+01 -5.1823216653895150e+00 -2.7066366488563993e+01 2.9595183805014884e+01 2 0 0 -11 0 +P 16 21 3.3207848203048465e-02 9.6085117788368979e-02 -6.6003952661133902e-02 1.2120904590654386e-01 2 0 0 -11 0 +P 17 21 -3.7579969777487718e-02 -1.6462158612486150e-01 -9.7318874051882720e-01 9.8772913565377995e-01 2 0 0 -11 0 +P 15 21 3.5171262487128507e-01 -6.4498578844444887e-01 -1.1127260710033722e+00 1.3333670713197316e+00 2 0 0 -11 0 +P 40 2 -5.7580659856764782e-01 -2.1687633978359599e+00 2.8191957870207176e+00 3.6182665463315975e+00 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 3 0 0 -5 0 +P 28 21 8.2987543073312353e-01 1.2838272062790441e+00 -3.8410647385758452e+01 3.8441055372078296e+01 2 0 0 -11 0 +P 29 21 1.4485320516326545e+00 3.4111844708869525e+00 -3.4836760966940879e+01 3.5033331832225194e+01 2 0 0 -11 0 +P 30 21 4.7483608911375708e+00 5.0805058534361418e+00 -7.0730773803904057e+01 7.1071800552528032e+01 2 0 0 -11 0 +P 31 21 7.0471823787681096e+00 5.3004641843654632e+00 -7.0878720555638282e+01 7.1425140725473000e+01 2 0 0 -11 0 +P 32 21 6.4330986433301513e-05 -2.8659752464543387e-01 -2.0138946295725479e+00 2.0341852728531187e+00 2 0 0 -11 0 +P 33 21 -2.0101138190485397e+00 1.8374935910906517e-01 -1.0007919765693144e+02 1.0009955107315744e+02 2 0 0 -11 0 +P 34 21 -1.9229525710899356e+00 -1.5157785543803595e+00 -2.2906932968426068e+02 2.2908241559144841e+02 2 0 0 -11 0 +P 35 21 -3.1664534528418580e+00 -1.7416366637989906e+00 -8.3806850645725774e+01 8.3884730081777633e+01 2 0 0 -11 0 +P 36 21 -3.7168946513508216e-01 -3.5284021138698476e+00 -1.0878664867278101e+02 1.0884448862478403e+02 2 0 0 -11 0 +P 37 21 -3.1241121155591017e-01 2.4591674095968902e-01 -7.8556145968468542e+01 7.8557152094687893e+01 2 0 0 -11 0 +P 38 21 2.1757864903890276e+00 -6.9754834757800643e-01 -1.5468366370543001e+02 1.5470053793663271e+02 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 3 0 0 -6 0 +P 8 -24 -9.2830779079555814e+00 1.7115243107301954e+00 -7.5936588839022193e+02 7.6374413200173183e+02 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 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 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 2 0 0 -15 0 +P 43 21 -1.2696872981433902e+00 -7.3488203514654904e-02 -1.1342868074612710e+01 1.1413945965755696e+01 2 0 0 -15 0 +P 44 21 -4.1552470502532822e-02 -2.4740042534493506e-01 -1.9652301256829328e+00 1.9811771816668682e+00 2 0 0 -15 0 +P 45 21 9.2875684016986071e-01 -5.2482893316735224e-01 -8.2669188038171093e+00 8.3354652651280841e+00 2 0 0 -15 0 +P 46 21 2.5933060912540751e+00 -1.5432000571134972e+00 -4.0105536618336508e+01 4.0218910606130805e+01 2 0 0 -15 0 +P 47 3 2.4911779059795872e+01 -1.9404993802709878e+01 -3.4832101052966868e+02 3.4974980614264371e+02 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 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 0 0 -21 0 +P 54 -323 5.0264419845508967e-01 1.5096096593072483e+00 -6.4075559093590417e+00 6.6727104662027399e+00 2 0 0 -22 0 +P 55 313 6.4824466837653216e-01 1.7028313815609744e+00 -1.2490128522047499e+01 1.2658108385343498e+01 2 0 0 -23 0 +P 56 113 3.1373653839431187e-01 1.0591234964860790e+00 -3.8183528211076077e+00 4.0448247418494256e+00 2 0 0 -24 0 +P 57 223 8.2692544173461439e-03 4.6939097115965078e-01 -5.5469163366739194e+00 5.6207627549321177e+00 2 0 0 -25 0 +P 58 213 1.9044107216389983e-01 8.1937027750395064e-01 -3.6346431429697050e+00 3.7966133083889493e+00 2 0 0 -26 0 +P 59 223 4.7623181452657998e-01 3.2991099537503743e-01 -1.3035235691380478e+00 1.6193069146444774e+00 2 0 0 -27 0 +P 60 -323 -1.0115943353617618e-01 5.6476717758048370e-03 1.7300715275273690e-01 8.2205819328193652e-01 2 0 0 -28 0 +P 61 313 -7.7118065121252105e-02 3.7088297201745679e-01 6.5831368662425160e-01 1.1370141416373667e+00 2 0 0 -29 0 +P 62 213 -3.5806889091875166e-01 -1.8533975814985065e-01 2.0214743365951066e-01 7.5874614723662881e-01 2 0 0 -30 0 +P 63 221 5.3742504319834894e-01 2.2371832414580742e-01 7.6764387006558730e+00 7.7179199395330977e+00 2 0 0 -31 0 +P 64 -213 -3.5723363435424654e-01 -2.4687075875660527e-01 4.3946274554500251e+00 4.4381896913330143e+00 2 0 0 -32 0 +P 65 211 -9.6962110337190308e-03 -1.9969339915386206e-01 9.7285408505103610e-01 1.0029438298701092e+00 1 0 0 0 0 +P 66 -213 3.6007407932397151e-01 -1.9108983779111039e-02 2.4483370677350226e+01 2.4497188617868417e+01 2 0 0 -33 0 +P 67 113 -3.7252120952480011e-01 1.1767633929689882e-02 3.8343277541438461e+01 3.8352383249490323e+01 2 0 0 -34 0 +P 68 113 -9.0606939026123462e-02 1.6342699333927246e-01 1.6719221309737839e+02 1.6719396525633584e+02 2 0 0 -35 0 +P 69 221 1.7346551830672804e-01 4.0747075115002573e-01 2.0582006607406680e+02 2.0582127057943939e+02 2 0 0 -36 0 +V -11 0 0 0 0 0 10 1 0 +P 23 21 -1.7556414536864717e+00 -3.2948210135311675e+00 9.6577188877003675e+00 1.0354209604743055e+01 2 0 0 -11 0 +P 24 21 -4.3740574207816687e+00 -6.7194450447463385e+00 8.7596980484749754e-01 8.0653978902882315e+00 2 0 0 -11 0 +P 25 21 -2.3472186202550427e+00 -1.7652302001002413e+00 -4.8822773731482902e+00 5.6975525674603205e+00 2 0 0 -11 0 +P 26 21 1.7556414536864717e+00 3.2948210135311675e+00 -4.6484359802172142e+00 5.9620532945694862e+00 2 0 0 -11 0 +P 27 21 2.3472186202550427e+00 1.7652302001002413e+00 -7.2800433838180606e+02 7.2801026241093734e+02 2 0 0 -11 0 +P 19 21 -3.9110823174159708e+00 3.1313981445182435e+00 7.8933491919030098e+02 7.8935081989720652e+02 2 0 0 -11 0 +P 20 21 3.8916892480043179e+00 1.8950634673498339e+00 1.4168700767391088e+03 1.4168766886604622e+03 2 0 0 -11 0 +P 21 21 4.3740574207816687e+00 6.7194450447463385e+00 8.3124634883261848e+01 8.3510408001070459e+01 2 0 0 -11 0 +P 22 21 3.9110823174159708e+00 -3.1313981445182435e+00 3.6591766345710994e+01 3.6933177273722393e+01 2 0 0 -11 0 +P 18 21 -3.8916892480043179e+00 -1.8950634673498339e+00 4.3405633505207952e+01 4.3620929961851424e+01 2 0 0 -11 0 +P 70 92 1.9317863021338749e+01 2.7609108265139839e+00 -3.6936736405113015e+03 8.4685219372436368e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 90 0 +P 157 211 7.1285808765427905e-01 -3.2842857210290849e-01 -1.3495391606091425e+02 1.3495627059140784e+02 1 0 0 0 0 +P 158 113 -8.5570937057012242e-01 4.5138982048336918e-01 -3.8575888425787775e+02 3.8576089945786532e+02 2 0 0 -101 0 +P 159 -211 8.5048282385916807e-01 -2.4394986791084675e-01 -2.3972504452141907e+03 2.3972506125543050e+03 1 0 0 0 0 +P 160 2224 -1.9025691153649760e-03 7.5090832178153066e-01 -1.3897064940632451e+03 1.3897072600852762e+03 2 0 0 -102 0 +P 71 423 6.7375280292117559e+00 -3.1280786052117606e+00 -1.8078833346658740e+01 1.9648160722343899e+01 2 0 0 -37 0 +P 72 213 1.0805121219025640e+00 -6.6038780518628226e-01 -2.3089962780132609e+00 2.7002122967490942e+00 2 0 0 -38 0 +P 73 331 8.8350480325607927e-01 -9.1723208806001100e-01 -1.3273651063348788e+00 2.0738588580152020e+00 2 0 0 -39 0 +P 74 -213 1.6671177452769768e+00 -6.0237742035546349e-01 -4.3269280810687976e+00 4.7129738478160546e+00 2 0 0 -40 0 +P 75 111 -2.2944867559712592e-01 -5.4494370034286373e-02 -1.1132060518150413e+00 1.1458898923091787e+00 2 0 0 -41 0 +P 76 211 1.9057714121074421e-01 -3.7678379479520874e-01 3.2988192916386494e-01 5.5370348279671411e-01 1 0 0 0 0 +P 77 -211 2.1514156450681340e-01 4.1042646895793555e-01 1.1603516057783952e-01 4.9767431377362004e-01 1 0 0 0 0 +P 78 211 1.1821640765841486e-01 -7.3020341573840120e-01 -1.3087805912292785e+00 1.5098207073272469e+00 1 0 0 0 0 +P 79 3112 -1.2499623449219958e-01 -5.9241869360866006e-02 4.0162992375308786e+00 4.1932869895481408e+00 2 0 0 -42 0 +P 80 311 -1.0795922983869366e-01 -3.0104120411989399e-02 1.6962385074932020e+00 1.7712882195102833e+00 2 0 0 -43 0 +P 81 -1114 -5.9337323488907867e-01 -4.6246084613168187e-01 7.5339721507890793e+00 7.6936474040793801e+00 2 0 0 -44 0 +P 82 -211 -3.9495796561206009e-01 3.0833169972538993e-01 9.3878856442942862e+00 9.4022835995784941e+00 1 0 0 0 0 +P 83 211 -3.1344790463608746e-01 -7.2171857255188154e-01 8.5253322989485287e+00 8.5627038883335214e+00 1 0 0 0 0 +P 84 -213 -1.2690227290925465e-01 -1.0105632908426881e-01 5.1452653640166943e+00 5.1881794411189812e+00 2 0 0 -45 0 +P 85 213 -1.2041062649028871e+00 -1.2215218528395928e-01 2.3429585452245682e+01 2.3473631837985316e+01 2 0 0 -46 0 +P 86 223 -7.4237011822675184e-02 1.4248179815169867e-01 1.5165880769368950e+01 1.5186849387363358e+01 2 0 0 -47 0 +P 87 -213 -9.0074449059785699e-01 -6.0424612216057405e-01 2.4880423729369195e+01 2.4913870228144820e+01 2 0 0 -48 0 +P 88 323 -3.9622224355221425e-01 4.7691198706436511e-01 8.3475162278290014e+01 8.3482329557234976e+01 2 0 0 -49 0 +P 89 -313 -1.1785958161298775e+00 4.3758697222424819e-01 2.3405851550380999e+02 2.3406361463389302e+02 2 0 0 -50 0 +P 90 111 -2.1010818134776000e-02 1.4739930625154105e-01 2.2010537086033544e+01 2.2011454527723057e+01 2 0 0 -51 0 +P 91 -213 -1.4723087124553025e+00 1.8245140592851474e+00 3.9234982586875026e+02 3.9235769486019092e+02 2 0 0 -52 0 +P 92 213 1.7539750249024346e+00 1.4987779798051035e+00 6.9123026432414906e+02 6.9123466203199087e+02 2 0 0 -53 0 +P 93 -211 -8.9424661017914325e-02 -3.0761209203019885e-01 1.4068666240461201e+02 1.4068709635323111e+02 1 0 0 0 0 +P 94 111 7.0564265001932358e-01 3.8262897153753883e-01 1.6816678510920750e+02 1.6816875503507225e+02 2 0 0 -54 0 +P 95 223 1.8302919870385345e-01 6.5783452518379060e-01 2.6383157492994411e+02 2.6383362307134547e+02 2 0 0 -55 0 +P 96 113 1.1656756707026841e+00 -6.4896512612338464e-01 1.0945955049891027e+02 1.0947082232861229e+02 2 0 0 -56 0 +P 97 213 -3.5903158855632840e-02 9.9198943525646954e-01 3.7343100725470698e+01 3.7367385916754081e+01 2 0 0 -57 0 +P 98 221 4.2162092047841054e-01 3.3016782868221339e-01 8.5630844493739087e+00 8.5972607140467154e+00 2 0 0 -58 0 +P 99 -213 9.7457004419126791e-01 2.5386776349576827e+00 3.2029157610337023e+01 3.2157623407268844e+01 2 0 0 -59 0 +P 100 111 1.2787995261416203e+00 5.9131216608945592e-01 1.8321222064458190e+01 1.8375809528872868e+01 2 0 0 -60 0 +P 101 331 1.5941076518656097e+00 2.2203899316199833e+00 3.0301907248901987e+01 3.0440010892784585e+01 2 0 0 -61 0 +P 102 213 1.7703923967892532e+00 -1.5783757695402438e+00 1.7113365104763496e+01 1.7299350723397684e+01 2 0 0 -62 0 +P 103 -211 -1.8759452428865081e-01 -1.2769116703025019e-01 3.8721698603132602e+00 3.8813239946826195e+00 1 0 0 0 0 +P 104 211 6.9482022183564407e-01 -7.4276553322659658e-02 2.8254613298076237e+00 2.9139326790753919e+00 1 0 0 0 0 +P 105 311 6.3686850058466904e-01 -2.8985459322238305e-01 6.1254602664267574e+00 6.1853501175537389e+00 2 0 0 -63 0 +P 106 333 8.7207094479077651e-02 -2.0295472311855449e+00 7.6184364527955317e+00 7.9504887791525123e+00 2 0 0 -64 0 +P 107 -323 -1.9822568338569455e-01 -1.5507438333859327e-01 2.6398270078375625e+00 2.7898910808615089e+00 2 0 0 -65 0 +P 108 113 -1.1042506848572424e+00 -1.9030565630970109e+00 5.3217383054275196e+00 5.8133432539368144e+00 2 0 0 -66 0 +P 109 213 -7.2310463393123914e-01 -7.6975522680298714e-01 6.1285789995101991e-01 1.6294860676683323e+00 2 0 0 -67 0 +P 110 -211 -4.3482640295969677e-01 -8.1532294744635425e-01 1.7768661421435300e-01 9.5125066471169373e-01 1 0 0 0 0 +P 111 213 -5.9736000021821500e-01 -1.2204809639168086e+00 2.6747136936349564e-01 1.5533645053088498e+00 2 0 0 -68 0 +P 112 -211 -1.4286103486218285e+00 -1.6452141393289603e+00 4.8302563621898731e-01 2.2361687419741094e+00 1 0 0 0 0 +P 113 111 4.3583065059189477e-02 -2.4339437891750076e-01 6.2664394827260231e-02 2.8859441094320626e-01 2 0 0 -69 0 +P 114 213 -1.1457523430575574e+00 -1.7185955494709606e+00 -2.0075212146900698e+00 2.9665875925104452e+00 2 0 0 -70 0 +P 115 -213 -9.9510244241403112e-01 -3.8721112665348262e-01 -1.1073021899671061e+00 1.6337817612725141e+00 2 0 0 -71 0 +P 116 321 3.6387094509041512e-01 4.3920647350883402e-01 9.9248798190379642e-02 7.6078622161241372e-01 1 0 0 0 0 +P 117 -321 -1.2747399230810363e-01 -1.0200080057828731e+00 -1.4513610769384608e+00 1.8457399291959007e+00 1 0 0 0 0 +P 118 211 -2.0133216812193178e-01 3.5802685432120634e-01 -1.7925786519980291e+00 1.8443253180593948e+00 1 0 0 0 0 +P 119 311 -2.8765138987802308e-01 7.2322394316508809e-01 -1.3293539465693636e+00 1.6188432716682488e+00 2 0 0 -72 0 +P 120 -321 1.0298266079353463e-01 -1.3133623038629999e-01 -8.4534917780111540e-01 9.9303113055191838e-01 1 0 0 0 0 +P 121 113 -2.0064710281109285e-02 9.6668445379680457e-01 -2.7580016928497004e+00 3.0477179748732270e+00 2 0 0 -73 0 +P 122 213 6.9914421880252642e-01 4.8815033788881651e-01 -2.1395488946251060e+00 2.3683512678933512e+00 2 0 0 -74 0 +P 123 223 1.5872029432710627e-01 -2.3339814721712135e-01 -7.4179222929870310e+00 7.4628850957322737e+00 2 0 0 -75 0 +P 124 223 -3.0717425565275075e-01 5.6842261363386204e-01 -1.7694534053195312e+01 1.7723823647209741e+01 2 0 0 -76 0 +P 125 1114 7.6998734838977989e-01 -3.4728630806103294e-01 -1.9364499157932190e+02 1.9364995150560429e+02 2 0 0 -77 0 +P 126 111 6.5158363716255141e-01 1.5605607263941090e+00 -1.1121050811925711e+02 1.1122344737851247e+02 2 0 0 -78 0 +P 127 -2112 1.0813888713417015e-01 9.3320687480095546e-02 -7.6290462496469246e+01 7.6296381712894501e+01 1 0 0 0 0 +P 128 211 3.9294549049558353e-01 -4.8295703118897615e-01 -5.9670507038186024e+01 5.9673918453806799e+01 1 0 0 0 0 +P 129 -211 -4.9079394553889405e-02 3.0193103218666079e-01 -5.2738809586108296e+01 5.2739881375291844e+01 1 0 0 0 0 +P 130 113 7.7374346420721107e-01 8.6434540604482102e-01 -8.8859763366085502e+01 8.8870436517698323e+01 2 0 0 -79 0 +P 131 223 1.6985777384718924e-02 2.8325881170135603e-01 -9.6927730933742907e+01 9.6931159023301547e+01 2 0 0 -80 0 +P 132 223 3.0185368861046491e-01 2.4293189269126073e-01 -3.2090245504750932e+01 3.2101336386389761e+01 2 0 0 -81 0 +P 133 221 6.5201407902947539e-01 -1.2988330070145512e-02 -7.4859939959601558e+00 7.5342616536739797e+00 2 0 0 -82 0 +P 134 213 1.2458254485181726e+00 2.4534172247832897e+00 -3.9148897598913670e+01 3.9260611329490111e+01 2 0 0 -83 0 +P 135 221 8.8556817596659831e-01 9.1587012185965244e-01 -1.2421218347891800e+01 1.2498376527489638e+01 2 0 0 -84 0 +P 136 -211 1.8161190527346487e+00 1.8932700926893988e+00 -2.7662401209321924e+01 2.7786879646840031e+01 1 0 0 0 0 +P 137 111 7.2247895685888563e-01 1.1632455888028332e+00 -1.2867988035904569e+01 1.2941346600549585e+01 2 0 0 -85 0 +P 138 113 1.2139941660877747e+00 1.6756779361740803e+00 -1.8860823514754017e+01 1.8989026284653107e+01 2 0 0 -86 0 +P 139 211 1.1157147548814101e+00 5.0436447513334515e-01 -1.1621107696187737e+01 1.1686266589862242e+01 1 0 0 0 0 +P 140 -213 4.5823331418939195e-01 1.1538176266903686e+00 -1.8447864138782936e+01 1.8525111286873642e+01 2 0 0 -87 0 +P 141 213 2.0821117255183093e+00 1.6804026242358250e+00 -2.6142179810664658e+01 2.6288201716404078e+01 2 0 0 -88 0 +P 142 313 1.7813828024493763e+00 1.2357154576419902e+00 -2.2601396009113010e+01 2.2725602197916988e+01 2 0 0 -89 0 +P 143 -313 1.4186766512402984e+00 6.4743845122084742e-01 -1.8091956801791984e+01 1.8183781843473593e+01 2 0 0 -90 0 +P 144 2112 -1.1231017999695494e+00 5.3690695272926670e-01 -5.0961864079027272e+01 5.0985723579479917e+01 1 0 0 0 0 +P 145 -213 -5.7530555364241898e-01 -4.7810186265971222e-01 -9.4505926829143817e+01 9.4510818189169768e+01 2 0 0 -91 0 +P 146 -1114 -8.0379050531219987e-01 -7.4317351469684056e-01 -3.3976739042042894e+01 3.4017782197130039e+01 2 0 0 -92 0 +P 147 -213 -1.7993965627187491e-01 6.2933882558033644e-02 -4.3212693477627020e+01 4.3219348613222635e+01 2 0 0 -93 0 +P 148 211 -1.1857733256197995e+00 -2.3402786696214123e-01 -3.9319959891382794e+01 3.9338779252375360e+01 1 0 0 0 0 +P 149 311 -1.4096245121895092e+00 -2.1826091973706498e+00 -7.8978356177349141e+01 7.9022650196503378e+01 2 0 0 -94 0 +P 150 -323 -3.0387368245023250e-01 -3.9194042956116942e-01 -7.8833271694584482e+01 7.8839861573241009e+01 2 0 0 -95 0 +P 151 213 -1.8006034881526349e+00 -1.2055027990336920e+00 -8.9338286707006162e+01 8.9369650117474464e+01 2 0 0 -96 0 +P 152 113 4.9137946671111676e-01 -9.7164155725422818e-01 -5.0430982625195028e+01 5.0451579348850466e+01 2 0 0 -97 0 +P 153 221 2.6692022391655834e-01 -2.6056453113669759e-01 -2.1564701043027426e+01 2.1574873646408001e+01 2 0 0 -98 0 +P 154 311 4.1329176006341922e-01 1.8028596136298070e-01 -8.9119644403072215e+01 8.9122174609160766e+01 2 0 0 -99 0 +P 155 -321 3.6881058325853905e-01 -3.6759956648503250e-01 -5.2482305038393726e+01 5.2487209239876819e+01 1 0 0 0 0 +P 156 221 -4.0997910950580485e-01 -2.7374853556398043e-01 -4.8760304863457051e+01 4.8765869755503466e+01 2 0 0 -100 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 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 0 0 0 0 +P 163 223 -1.3456644959131422e-02 1.0490675531334205e-01 2.8997985766568299e+00 3.0056909067982369e+00 2 0 0 -103 0 +P 164 -213 -7.6664826358880125e-02 -1.5791348259790233e-01 2.8310851989334567e+00 2.9388621741173262e+00 2 0 0 -104 0 +P 165 113 -3.9648671529754964e-01 -2.4605982607667140e-01 7.6583440010326704e+00 7.7151393693837971e+00 2 0 0 -105 0 +P 166 223 8.9691194834938370e-02 -2.5125974088198971e-02 1.8317488091703201e+01 1.8334490887220280e+01 2 0 0 -106 0 +P 167 331 7.9224066352126379e-02 -2.1422931649456503e-01 1.6453778503957725e+01 1.6483212902440073e+01 2 0 0 -107 0 +P 168 211 1.5527914687816030e-01 -4.5548875201547573e-02 2.0928087163014524e+01 2.0929178158760095e+01 1 0 0 0 0 +P 169 113 -9.0692399597892714e-02 1.6957858902038977e-01 7.6922069406224782e+00 7.7066837587922024e+00 2 0 0 -108 0 +P 170 -211 1.9561892851724411e-02 -3.4229386330714748e-02 4.3617570241825661e+00 4.3641675542360279e+00 1 0 0 0 0 +P 171 211 1.4955539305015297e-01 -7.3620802444243974e-02 6.1402424512466673e+01 6.1402809403415823e+01 1 0 0 0 0 +P 172 313 -9.7870346573322886e-02 5.6843447855507345e-01 7.2008545829421976e+01 7.2016348838853801e+01 2 0 0 -109 0 +P 173 -313 -1.3048017096509981e-01 -7.9611017480924984e-01 2.3671747454399076e+02 2.3672050958431549e+02 2 0 0 -110 0 +P 174 2112 5.2848587189431351e-01 -1.8847878506702731e-01 1.0586464613615185e+03 1.0586470269955985e+03 1 0 0 0 0 +P 175 211 -3.2198770221974171e-01 5.2452521536190455e-01 2.6139330780727728e+03 2.6139331542573095e+03 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 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 2 0 0 -111 0 +P 178 -2112 -3.3029260138577476e+00 1.9451764508002454e+00 -3.1157827697945482e+01 3.1406783507986372e+01 1 0 0 0 0 +P 179 2112 -3.6871070129151744e+00 2.3786739914127644e+00 -3.4678443322119684e+01 3.4967557408439028e+01 1 0 0 0 0 +P 180 -313 -1.6887882543152506e+00 9.5163004863946332e-01 -1.9256191761625256e+01 1.9375050572033444e+01 2 0 0 -112 0 +P 181 323 -1.0684585629853891e+00 1.1397180800571156e+00 -1.1888673019374792e+01 1.2026652906041873e+01 2 0 0 -113 0 +P 182 -323 -1.0389598140931948e+00 -2.4279557457761929e-02 -1.5588480592748905e+01 1.5651040269879616e+01 2 0 0 -114 0 +P 183 321 9.7335278175105699e-01 -7.7540269787809635e-01 -1.2014313647022332e+01 1.2088673969904482e+01 1 0 0 0 0 +P 184 113 9.1572165877639158e+00 -6.8871050884448293e+00 -1.3173902282931255e+02 1.3223974804671991e+02 2 0 0 -115 0 +P 185 111 1.5749182160948232e+00 -1.4409120111312630e+00 -2.3979729812343567e+01 2.4074930036961863e+01 2 0 0 -116 0 +P 186 -321 1.6188124904841935e+01 -1.2402999795367213e+01 -2.2505793379581706e+02 2.2598054561678759e+02 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 2 0 0 -17 0 +P 49 -3 -2.6809949063516858e+00 2.1334338920576483e+00 2.5402154973416849e+01 2.5632181942884813e+01 2 0 0 -17 0 +P 187 92 0 0 2.0476301069222714e+01 3.1632457815303390e+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 1 0 0 0 0 +P 189 213 -1.8805628523845630e-01 -4.7820853896800425e-01 -1.8580072096583751e-02 8.0239109587132929e-01 2 0 0 -117 0 +P 190 -211 5.2779424626199234e-01 -6.9896042852539919e-02 3.7768327334195961e-01 6.6751529050352554e-01 1 0 0 0 0 +P 191 213 -1.6891692283320525e-01 6.6648603572310589e-02 1.6599824117289130e+00 1.9453974090260178e+00 2 0 0 -118 0 +P 192 113 -7.4221913151521435e-01 4.9737556351137047e-01 2.7144616154803280e+00 2.9374218163653363e+00 2 0 0 -119 0 +P 193 -213 2.6977494445296846e-02 3.3051528732393581e-01 2.9686265628592207e-01 7.9252551915710912e-01 2 0 0 -120 0 +P 194 211 -6.8694313677862559e-03 -3.6465893769440583e-01 8.2207140953389746e-01 9.1011236515101712e-01 1 0 0 0 0 +P 195 113 -1.7926234409549882e-01 4.5811796288984646e-01 4.3631920667074748e+00 4.4594263972685484e+00 2 0 0 -121 0 +P 196 -213 -8.7517280978279891e-02 1.1556616042151517e-01 1.2143912094050173e+00 1.4643347407834515e+00 2 0 0 -122 0 +P 197 323 -7.6278088917320597e-01 6.2000960206627131e-01 7.1458893862408148e+00 7.2776101788726990e+00 2 0 0 -123 0 +P 198 221 -7.3573102667583368e-01 2.9137896094462912e-01 5.6348963975317616e+00 5.7164640081007310e+00 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 2 0 0 -19 0 +P 51 21 -1.2797607567819380e+00 2.6322105018962016e+00 2.1455385372104661e+00 3.6290019751368225e+00 2 0 0 -19 0 +P 199 92 0 0 3.1224364671569451e+00 6.7145569149208235e+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 2 0 0 -125 0 +P 201 111 3.7295347928756839e-01 -3.7777914400943240e-02 1.1758598639554589e+00 1.2415262738220798e+00 2 0 0 -126 0 +P 202 -213 -7.7174053973165080e-01 1.1344979778855320e+00 1.1415247517969562e+00 1.9615336994911579e+00 2 0 0 -127 0 +P 203 223 4.0683186443833641e-01 -5.2896991332825460e-01 1.1174071860398992e-01 1.0379283489087789e+00 2 0 0 -128 0 +P 204 223 -5.4926159000131487e-02 -3.9089357009414699e-01 1.0576731195622895e+00 1.3702232191791681e+00 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 2 0 0 -130 0 +P 206 111 1.7968957185550219e-01 -6.1256193952872552e-02 -7.5978817714920155e-01 7.9469386436974088e-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 2 0 0 -132 0 +P 208 -211 1.1885409638388056e-01 8.3490247668284856e-01 -4.0919076763111493e+00 4.1802364356759165e+00 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 2 0 0 -133 0 +P 210 111 1.5608318125249132e-01 3.2776161422857351e-02 -2.1970366209984036e+00 2.2069494218571477e+00 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 0 0 0 0 +P 212 211 1.0687235046510266e-01 1.0665286980031208e+00 -2.9742802779412334e+00 3.1646055235381785e+00 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 0 0 0 0 +P 214 -211 -3.2961684312823265e-02 9.7904714471502771e-02 -3.2110680804773697e+00 3.2157596004846356e+00 1 0 0 0 0 +P 215 111 -1.2371813995669578e-01 2.7781701450849755e-01 -1.2188863571466753e+00 1.2634840813176285e+00 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 0 0 0 0 +P 217 111 -7.1482009245183581e-02 -6.3077240170473347e-03 -1.1802194579810725e+00 1.1900785832982377e+00 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 0 0 0 0 +P 219 211 1.9975853129734369e-01 3.0355779618777118e-01 -9.8170033356441933e-01 1.0560616157558897e+00 1 0 0 0 0 +P 220 111 1.4897220997953661e-01 8.6760505956244627e-02 -4.6472305443281688e-02 2.2382890857345566e-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 2 0 0 -138 0 +P 222 -211 -1.8405188231880528e-02 -1.3401650405953600e-01 -1.1372650400998702e-01 2.2519475333258582e-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 1 0 0 0 0 +P 224 -211 -5.8511336571788884e-02 3.5244481235949815e-01 4.7335066859644559e-01 6.0924671737091951e-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 0 0 0 0 +P 226 111 -4.6380149176473889e-01 -1.5543106838779938e-01 2.5262943145065019e-02 5.0806343844024116e-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 1 0 0 0 0 +P 228 -211 1.6376765932694964e-01 -1.1407305807929946e-01 3.2242673069684358e+00 3.2334520192058642e+00 1 0 0 0 0 +P 229 211 2.8129986815416846e-01 2.1611268857698845e-01 2.9431364251746919e+00 2.9677206930702882e+00 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 0 0 0 0 +P 231 111 -1.1307147515979296e-02 -1.6769866681952736e-01 1.0504441492713814e+00 1.0723353978939945e+00 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 0 0 0 0 +P 233 111 1.1477924954231560e-01 -2.2979793525959996e-01 3.8904575735499605e+00 3.9012640386376463e+00 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 0 0 0 0 +P 235 211 -3.8320474011581890e-01 -2.8328556012237832e-01 1.9771742986078998e+01 1.9777977577949802e+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 0 0 0 0 +P 237 -211 -7.0567420656834565e-02 4.3227021311803671e-01 1.0675834001752031e+02 1.0675932971117506e+02 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 0 0 0 0 +P 239 -211 1.5228297752088477e-01 2.4892222450875526e-01 1.3594839004485266e+02 1.3594877486741612e+02 1 0 0 0 0 +P 240 111 -1.8372996459514808e-03 5.1323835337157217e-02 2.0956193140799577e+01 2.0956690770888397e+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 2 0 0 -143 0 +P 242 111 4.9387619354922196e-01 -2.6296728043550860e-01 -1.2797340263786521e+00 1.4032121235955854e+00 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 0 0 0 0 +P 244 111 8.1043539067834081e-01 -1.9587017425910982e-01 -1.3769041714155361e+00 1.6153189608525471e+00 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 0 0 0 0 +P 246 -211 6.6967622594905324e-02 -6.5307943664755175e-02 -1.1166100354230166e-01 2.0173684490892191e-01 1 0 0 0 0 +P 247 221 3.8909956284019970e-01 -5.3871218458285008e-01 -8.7107471401348857e-01 1.2247783258672331e+00 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 0 0 0 0 +P 249 111 7.7167108423919306e-01 -2.5894206886027965e-01 -2.6574100454998915e+00 2.7825482938486923e+00 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 1 0 0 0 0 +P 251 22 -4.2737566410076068e-02 1.8867838474912971e-02 -4.6527143948108279e-01 4.6761095721568580e-01 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 1 0 0 0 0 +P 253 -211 -1.4849118076197018e-01 1.7898563672047136e-02 3.2989479064236149e-01 3.8817566530963010e-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 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 1 0 0 0 0 +P 256 211 1.2282746276398639e-01 1.3160303099116163e-01 8.4157099372716293e-01 8.7185289226911644e-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 0 0 0 0 +P 258 111 -2.3607809641078237e-01 9.8924049628864474e-02 1.2207570821773017e+00 1.2545861027789014e+00 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 0 0 0 0 +P 260 111 -1.1115938983384583e+00 -1.8893723514333377e-01 2.2371197529621647e+01 2.2400000821057944e+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 0 0 0 0 +P 262 -211 -9.3830291977028552e-02 7.2250537096242073e-02 3.3416130761211456e+00 3.3466224763494039e+00 1 0 0 0 0 +P 263 111 1.0757250327674936e-01 2.5521449183574951e-01 3.9260193555040792e+00 3.9380901285390704e+00 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 0 0 0 0 +P 265 111 -3.2073406530239251e-01 -1.9939418805101175e-01 3.7968439357699193e+00 3.8179669794102113e+00 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 1 0 0 0 0 +P 267 111 -1.1765519819761945e-01 -1.6064093626715317e-01 1.9166237785949200e+01 1.9167747356536566e+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 1 0 0 0 0 +P 269 211 -2.8492412920335630e-01 4.1681594305669806e-01 8.0055157641769668e+01 8.0056871423527923e+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 1 0 0 0 0 +P 271 22 -2.4309358054476007e-02 9.5472016989760957e-03 7.2413056072650817e-01 7.2460138209044855e-01 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 0 0 0 0 +P 273 111 -1.1869009496520293e+00 8.8484723595274772e-01 2.4894306409889506e+02 2.4894750264070180e+02 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 0 0 0 0 +P 275 111 -3.9365165318030595e-02 2.1026551461701451e-01 7.2894196812983083e+01 7.2894635672408640e+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 1 0 0 0 0 +P 277 22 4.5564793068048387e-01 2.3203579530812810e-01 1.1960051942648138e+02 1.1960161245874228e+02 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 0 0 0 0 +P 279 -211 3.0260190289747680e-02 5.2722368310901424e-01 1.3997838615805080e+02 1.3997945189094159e+02 1 0 0 0 0 +P 280 111 -1.0915701330301296e-01 6.3947562447915010e-02 3.9337776782952176e+01 3.9338211784091911e+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 0 0 0 0 +P 282 211 1.1960987457174342e-01 -2.5875645151296439e-01 1.0301918998462718e+01 1.0306807277672448e+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 0 0 0 0 +P 284 111 1.2652227858485912e-01 9.6098178980106996e-01 3.5153440087509658e+01 3.5167059352095940e+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 2 0 0 -158 0 +P 286 111 7.2165970952666164e-02 1.0925849693542053e-01 1.7329492789665644e+00 1.7431231024763754e+00 2 0 0 -159 0 +P 287 111 5.7259665167642498e-02 1.0687387285916360e-02 3.2706781824117788e+00 3.2739804921236972e+00 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 0 0 0 0 +P 289 111 4.1830606098124423e-01 1.1755765771896662e+00 1.9730016713629471e+01 1.9769894773872441e+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 1 0 0 0 0 +P 291 22 5.0254836912804378e-02 3.1363380420649907e-02 4.9505241412208734e-01 4.9858409821478411e-01 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 0 0 0 0 +P 293 -211 3.0564376993854531e-01 6.9193900353716309e-01 8.2429344382337373e+00 8.2787466223238155e+00 1 0 0 0 0 +P 294 221 9.5599961032503467e-01 1.2801871992451461e+00 1.7605752316643834e+01 1.7686577697722150e+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 0 0 0 0 +P 296 111 1.6901191173961481e+00 -1.5985626590924316e+00 1.6544286957456936e+01 1.6707589764448741e+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 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 1 0 0 0 0 +P 299 310 -5.6376902188405402e-02 -9.4829366505374968e-01 3.4172653874114838e+00 3.5815942521706718e+00 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 1 0 0 0 0 +P 301 111 2.3195043580107069e-02 -3.1086024973021309e-01 9.9213467140438327e-01 1.0486767430966022e+00 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 0 0 0 0 +P 303 211 5.8229430385060822e-02 -1.4047080457471348e-01 3.0156695192662147e-01 3.6543826413656960e-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 0 0 0 0 +P 305 111 -7.2459948192582480e-01 -8.9543741457431492e-01 7.6366010654820127e-01 1.3886140325374496e+00 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 0 0 0 0 +P 307 111 -7.0299433074427298e-01 -9.4889402278916302e-01 3.0759404672122986e-01 1.2277762799150060e+00 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 1 0 0 0 0 +P 309 22 -1.0444000571005583e-02 -2.2348978880879536e-01 4.3593122701166338e-02 2.2794105202127599e-01 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 0 0 0 0 +P 311 111 -1.1020147543802561e+00 -1.6536485938923138e+00 -1.9715970413558779e+00 2.8025710847072287e+00 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 0 0 0 0 +P 313 111 -2.5499660395015161e-01 8.5088854900123176e-02 -1.8681615758638939e-01 3.5409498498237357e-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 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 0 0 0 0 +P 316 211 -1.5041483011075760e-02 -6.2116154231934534e-02 -7.5021064446656849e-02 1.7085844386054616e-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 0 0 0 0 +P 318 111 4.6838599969743122e-01 4.9174921370238156e-02 -8.7389061637774768e-01 1.0018522981944049e+00 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 0 0 0 0 +P 320 211 -9.8706113948430804e-02 -2.8964132523844838e-01 -1.4907848669725159e+00 1.5282520403097610e+00 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 0 0 0 0 +P 322 211 -1.2600615597077278e-01 3.3646972396956704e-01 -2.8764946640392428e+00 2.9022044662009816e+00 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 1 0 0 0 0 +P 324 -211 8.4749541376226964e-02 3.5211273219105275e-03 -3.0569414802299615e+01 3.0569851095860052e+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 1 0 0 0 0 +P 326 22 -1.5466324265940194e-04 6.2079934296075334e-02 -3.6677791592323956e+00 3.6683044997740333e+00 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 0 0 0 0 +P 328 211 1.0551080640961935e-01 1.5636350604201216e-01 -4.0467426697579832e+01 4.0468107015095086e+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 0 0 0 0 +P 330 -211 6.3753390431136939e-02 -3.4266989260422084e-02 -4.3006183481217263e+01 4.3006470863422045e+01 1 0 0 0 0 +P 331 111 1.1533681740304895e-01 2.6389423523999250e-01 -2.1069793643374290e+01 2.1072194155417638e+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 0 0 0 0 +P 333 211 8.5429989515703270e-02 2.9119120815685540e-01 -8.1609305243617207e+00 8.1677633052859324e+00 1 0 0 0 0 +P 334 111 1.5971224969655323e-01 1.6416391462325010e-03 -6.1583136127604776e+00 6.1618630990304570e+00 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 2 0 0 -175 0 +P 336 111 2.9110855186201823e-01 8.7859720184946685e-02 -3.6679991381187156e+00 3.6830559046853768e+00 2 0 0 -176 0 +P 337 111 4.0602579306178992e-02 5.1683011578460081e-03 -1.0151896366424780e+00 1.0249414029735842e+00 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 0 0 0 0 +P 339 111 5.8788972858264898e-01 1.8877221706897764e+00 -2.1951790012437453e+01 2.2041061990685371e+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 1 0 0 0 0 +P 341 22 2.1963494126495064e-01 2.8017614166117788e-01 -6.1100973275610935e+00 6.1204597482582805e+00 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 1 0 0 0 0 +P 343 22 6.6462261932697564e-01 1.0269836258559635e+00 -1.1112423286411024e+01 1.1179551417220072e+01 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 0 0 0 0 +P 345 211 8.0133869236026911e-01 1.5461792439251949e+00 -1.5223724224072070e+01 1.5323644246383349e+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 0 0 0 0 +P 347 111 1.5073350550211109e-02 7.2202155363162623e-01 -1.5089453750602873e+01 1.5107328566685394e+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 0 0 0 0 +P 349 111 5.5564478995138736e-02 5.3068180921456376e-02 -1.0567328314465232e+00 1.0680859144325889e+00 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 1 0 0 0 0 +P 351 -211 1.2280392089109184e+00 7.9181424127792643e-01 -1.6152530029392889e+01 1.6219086171133444e+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 2 0 0 -181 0 +P 353 111 9.2084903787267469e-01 1.3790049009253627e-01 -1.0572002769311638e+01 1.0613785453383338e+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 0 0 0 0 +P 355 111 -1.5883655598135957e-01 -4.7746020680533935e-01 -4.8794799426665946e+01 4.8797580554670517e+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 1 0 0 0 0 +P 357 211 -2.9468806770195133e-01 -2.9190475370197855e-01 -5.4819920692795092e+00 5.4994332685307823e+00 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 0 0 0 0 +P 359 111 6.8911093492632733e-02 -2.7130636779539036e-01 -1.4855359858410299e+01 1.4858610029450290e+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 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 1 0 0 0 0 +P 362 111 -2.6489328918552280e-01 -4.1560022800454127e-01 -3.3811621128573726e+01 3.3815482178238803e+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 0 0 0 0 +P 364 111 7.5450854587473110e-02 -1.1796572075934705e-01 -7.3526082944333560e+00 7.3551802883751556e+00 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 0 0 0 0 +P 366 211 1.6113589013928148e-01 1.0476930546125837e-01 -4.2265010413097350e+00 4.2331704689924887e+00 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 1 0 0 0 0 +P 368 22 4.1998551688228036e-01 -2.0427605522231063e-01 -1.8445987769881434e+01 1.8451899125774119e+01 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 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 0 0 0 0 +P 371 -211 -9.4699960295409211e-02 -7.0342706977206501e-02 -6.2577223207694175e+00 6.2603901322250373e+00 1 0 0 0 0 +P 372 111 -6.1340461783072626e-02 -9.5270249091627290e-02 -1.9913617131458697e+01 1.9914396951234526e+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 0 0 0 0 +P 374 -211 -2.8982224615837326e-01 2.8131974867272219e-01 -6.3245549272580966e+01 6.3246992974454749e+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 1 0 0 0 0 +P 376 211 -2.8581771916038204e-03 -1.1153332585833524e-01 -2.1689617899690685e+02 2.1689625259809148e+02 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 0 0 0 0 +P 378 211 -3.3611510436482870e-03 -3.9382859649498635e-02 1.3924281785635231e-01 2.0107375312329462e-01 1 0 0 0 0 +P 379 111 -7.9872569296045165e-02 9.6782587127883388e-02 4.2334861577519067e-01 4.6172518598825418e-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 0 0 0 0 +P 381 111 -3.2259075952935390e-01 9.6110605845984534e-02 1.8794513505486412e+00 1.9141209539025790e+00 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 0 0 0 0 +P 383 211 6.1887762052356861e-02 -1.3754108735555134e-01 5.4029978564595833e+00 5.4069042221598167e+00 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 0 0 0 0 +P 385 -211 -1.2475197802699829e-01 -1.9095926689690346e-01 6.3048485731892709e+00 6.3105169212499730e+00 1 0 0 0 0 +P 386 111 1.9899815204420815e-01 -6.7184283612308757e-02 5.5687097047954106e+00 5.5743036667519377e+00 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 1 0 0 0 0 +P 388 113 8.2999471421343396e-02 -2.8251000142352389e-01 1.6107349250332053e+01 1.6130098567719088e+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 0 0 0 0 +P 390 -211 5.6044408203317006e-02 1.6763803708868413e-01 2.3839451002379750e+00 2.3945599831740396e+00 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 1 0 0 0 0 +P 392 -211 -2.9633713105752252e-01 3.6457100116663532e-01 3.2491480380038389e+01 3.2495176638717545e+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 1 0 0 0 0 +P 394 211 -2.1815986473454180e-01 -4.1960556703188107e-01 6.4104946097799257e+01 6.4106842509556756e+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 0 0 0 0 +P 396 -14 -1.3089155169219182e+00 1.0462816645268493e+00 -1.2289940437364569e+01 1.2403652732398342e+01 1 0 0 0 0 +P 397 323 -2.1581479174280773e+01 1.3503790177823028e+01 -2.0949493928636579e+02 2.1103796270682068e+02 2 0 0 -192 0 +P 398 -211 -2.0850999230479355e+00 1.2367396416999163e+00 -1.9059552487099179e+01 1.9213619841764203e+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 2 0 0 -193 0 +P 400 111 -1.2418841812846488e+00 6.4683552692001378e-01 -1.2930629916089380e+01 1.3006924392256479e+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 2 0 0 -195 0 +P 402 211 -1.3587033582635805e-01 1.7718207748686304e-01 -7.1597924199696528e-01 7.6286322274092955e-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 1 0 0 0 0 +P 404 111 -1.1663521498522561e-01 6.8185846341943981e-02 -7.0050532350766603e-01 7.2607189153595308e-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 0 0 0 0 +P 406 211 1.0872137644979858e+00 -5.9716641606912368e-01 -1.2286932660223906e+01 1.2350175524257606e+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 1 0 0 0 0 +P 408 22 5.4642645271504009e-01 -5.8839714492554174e-01 -9.0399360168790608e+00 9.0755295304268895e+00 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 0 0 0 0 +P 410 111 -2.5129535497422834e-01 -4.3749634494359707e-01 1.7624108649708728e-01 5.5121042101932738e-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 0 0 0 0 +P 412 111 -7.9048986992116252e-02 5.1075014150674813e-01 7.7222665732593598e-01 9.3897181005524955e-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 0 0 0 0 +P 414 211 -6.7570053020446241e-01 4.1406156446148923e-01 1.4286956315294119e+00 1.6397161882881173e+00 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 0 0 0 0 +P 416 111 2.0615633368148753e-01 2.9319453099443760e-01 -3.9420844071029401e-02 3.8501567535532039e-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 0 0 0 0 +P 418 211 2.3022959581081737e-01 3.5933366808902623e-01 2.7454858413980707e+00 2.7819594968343444e+00 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 0 0 0 0 +P 420 111 -2.5858290813921248e-01 1.2412289720045558e-01 1.0618010768307151e-01 3.3431337044568815e-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 1 0 0 0 0 +P 422 111 -3.2914057460674639e-01 3.0667447028601713e-01 4.7608665461210302e+00 4.7839787435723471e+00 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 1 0 0 0 0 +P 424 211 -2.0485179035825907e-01 1.0503476392148384e-01 1.2552849482286934e+00 1.2838288997349061e+00 1 0 0 0 0 +P 425 -211 -1.6286584081530955e-01 1.2536930627288169e-02 7.4666982282661187e-01 7.7696722321727008e-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 0 0 0 0 +P 427 111 4.1426864992368700e-01 -4.6948895281791733e-02 1.3140310201161695e-01 4.5750310238953612e-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 1 0 0 0 0 +P 429 22 1.9965593891975320e-01 -2.0177213938078393e-03 8.2184891706479402e-01 8.4575540650126857e-01 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 0 0 0 0 +P 431 111 -7.3446105685645879e-01 4.2632886349871141e-01 4.9727371847637947e-01 9.9332275488792399e-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 0 0 0 0 +P 433 -211 -1.5008674707049818e-02 9.4286417803348802e-02 3.1852852341836643e-02 1.7207433858934496e-01 1 0 0 0 0 +P 434 111 6.2902258068042838e-02 -3.4099485009942332e-01 -3.8018334849563219e-02 3.7403098273955909e-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 0 0 0 0 +P 436 211 2.0006607633586731e-02 -2.7092422208840949e-01 8.6756397153503473e-01 9.1975389538118113e-01 1 0 0 0 0 +P 437 111 -1.3744564485215921e-01 -1.6334130447134231e-02 1.1762930332422402e-02 1.9369067100997739e-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 2 0 0 -206 0 +P 439 -211 7.4915303770725516e-01 -4.9674903661230729e-02 -1.6828668697901639e+00 1.8480309944092130e+00 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 1 0 0 0 0 +P 441 22 -3.4363715801602034e-03 2.3121721921194556e-02 -3.2898997053912235e-02 4.0357981631782891e-02 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 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 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 1 0 0 0 0 +P 445 22 -2.0807358571302472e-03 -1.3285414039545751e-02 -2.2720452416971754e-02 2.6401716723371889e-02 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 1 0 0 0 0 +P 447 22 -9.8480342496487655e-02 2.5330563686262997e-01 -8.3783194360571156e-01 8.8080899703098514e-01 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 1 0 0 0 0 +P 449 22 2.2057787920906725e-02 3.1394912294285607e-02 -1.4614697997947071e-01 1.5109972297476049e-01 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 1 0 0 0 0 +P 451 22 -1.3182901251046604e-02 -6.8603676000775432e-03 2.0194881719618613e-02 2.5073627114409011e-02 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 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 1 0 0 0 0 +P 454 22 -2.4152691014793695e-01 -1.1778311524703966e-01 7.1204539415547607e-02 2.7798956274703429e-01 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 1 0 0 0 0 +P 456 22 -5.8513823507732002e-02 -4.5192285691928666e-02 2.3397707802335543e-01 2.4538028296483455e-01 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 1 0 0 0 0 +P 458 22 7.4777626526306248e-02 -2.3010542100460624e-01 2.9296239307961844e+00 2.9395980293397774e+00 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 1 0 0 0 0 +P 460 22 -6.7156663551545731e-02 2.0665449414198934e-02 1.2079983338832347e+01 1.2080187686651476e+01 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 2 0 0 -209 0 +P 462 111 2.9176140131540547e+00 -1.3106559225548522e+00 -9.5626609746215951e+00 1.0084294471753186e+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 1 0 0 0 0 +P 464 22 1.8073067545782046e-01 -3.8726495117382520e-02 -3.2791682948089795e-01 3.7642099507376175e-01 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 1 0 0 0 0 +P 466 22 1.9830912724377689e-01 3.7668075123103504e-03 -2.7443846883299938e-01 3.3861064951124098e-01 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 0 0 0 0 +P 468 211 5.4061889742620196e-02 -2.0391370194446679e-01 -3.1469861234019963e-01 4.0375547955673285e-01 1 0 0 0 0 +P 469 111 1.6109978154052820e-01 -2.0414556888027760e-01 -1.2587726950965411e-01 3.1889377586441564e-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 1 0 0 0 0 +P 471 22 7.4662084294927367e-01 -2.2738813337831260e-01 -2.4517795314882425e+00 2.5730081456055021e+00 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 0 0 0 0 +P 473 -211 -1.1991827116210638e-01 -2.1037361365155197e-01 1.0171799220351061e+00 1.0548801959325360e+00 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 1 0 0 0 0 +P 475 22 -7.6077823418413418e-02 9.5583400703326729e-02 3.9483294225373233e-01 4.1330022259228810e-01 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 1 0 0 0 0 +P 477 22 -1.3018310489578394e-01 -5.3690746781996687e-02 2.2152591616907351e+00 2.2197304995303044e+00 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 1 0 0 0 0 +P 479 22 -2.6491571954957035e-03 3.9096045874903049e-02 1.3756608498543419e+00 1.3762188389420000e+00 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 1 0 0 0 0 +P 481 22 -8.7200867675081895e-02 -4.4954280050167550e-02 5.1927851948606241e-01 5.2846481379345667e-01 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 1 0 0 0 0 +P 483 22 -2.0782378455591517e-02 1.1484078805539037e-02 5.8170681214651880e+00 5.8171165813559886e+00 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 1 0 0 0 0 +P 485 22 -5.9557876820332156e-01 4.2660844740346221e-01 1.1212230984163310e+02 1.1212470322395373e+02 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 1 0 0 0 0 +P 487 22 1.3993599204279632e-02 1.0936795908476790e-01 5.2769647303955324e+01 5.2769762494776600e+01 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 1 0 0 0 0 +P 489 22 -5.0816223291669176e-02 4.9309885767650677e-02 6.6013173261676918e+00 6.6016970692501333e+00 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 1 0 0 0 0 +P 491 22 1.5175635805081697e-01 7.2553702530404074e-01 2.7157572142236390e+01 2.7167685926999180e+01 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 1 0 0 0 0 +P 493 22 5.0192199347641360e-02 1.0689500509646421e-01 1.3274551679537445e+00 1.3326976483497788e+00 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 1 0 0 0 0 +P 495 22 5.0890506431500629e-02 4.0498121370393020e-02 2.4660776878922408e-01 2.5503986572021459e-01 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 1 0 0 0 0 +P 497 22 7.0093495982825063e-02 3.3811751864884283e-02 3.1219093548200161e+00 3.1228791767303448e+00 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 1 0 0 0 0 +P 499 22 1.5373857476364564e-01 5.4044177273503313e-01 7.9880294607280593e+00 8.0077667001821897e+00 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 2 0 0 -212 0 +P 501 111 4.3040406011067917e-01 7.1737842978781352e-01 9.9218515099128535e+00 9.9579735112945826e+00 2 0 0 -213 0 +P 502 111 1.5302824405896340e-01 1.5887887524497102e-01 2.8455533486003191e+00 2.8572808053478687e+00 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 1 0 0 0 0 +P 504 22 6.5234961046689088e-01 -5.7699462341256325e-01 5.7777430561017944e+00 5.8430127187997627e+00 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 0 0 0 0 +P 506 211 4.6924787248882088e-01 -2.9025094100292242e-01 5.3374797093361082e+00 5.3677377550568766e+00 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 0 0 0 0 +P 508 -211 -4.6580152179340854e-02 -7.1359516020228234e-02 3.1754285571499852e-01 3.5717662468214256e-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 1 0 0 0 0 +P 510 22 3.9026217408659976e-02 -1.7071480593394573e-02 8.5950023758604277e-02 9.5926470168474803e-02 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 1 0 0 0 0 +P 512 22 -6.0123017804104317e-01 -7.7065620210665875e-01 5.8982394573139763e-01 1.1416133302440359e+00 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 1 0 0 0 0 +P 514 22 -2.1530788834862755e-01 -3.6701452356081865e-01 1.5837934419538133e-01 4.5402771276374626e-01 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 1 0 0 0 0 +P 516 22 -2.4453684219177260e-02 -2.4597163101588097e-02 -1.4540972319744369e-02 3.7609081091414698e-02 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 1 0 0 0 0 +P 518 22 -1.4222141692334364e-01 1.1349513010492379e-01 -9.1174700460411068e-02 2.0352125685849817e-01 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 0 0 0 0 +P 520 211 8.5831780283816786e-02 2.2532066093454553e-01 -3.1425194699553238e-01 4.1996495787285959e-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 1 0 0 0 0 +P 522 22 4.4848871157211562e-01 3.2931344889120584e-02 -7.4320029585512404e-01 8.6866177401965050e-01 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 1 0 0 0 0 +P 524 22 1.1022477824540093e-01 9.2828442345385592e-02 -8.2544886826868353e+00 8.2557464855730984e+00 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 1 0 0 0 0 +P 526 22 6.2239828849669235e-02 -5.8646048146063924e-02 -3.5541813861247409e+00 3.5552100473437531e+00 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 1 0 0 0 0 +P 528 22 2.6726521743199222e-01 -1.2481855947855978e-01 -2.0180385224711261e+00 2.0394827401615143e+00 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 1 0 0 0 0 +P 530 22 2.3442063103992584e-02 5.5563101627706384e-02 -8.7439114423986819e-01 8.7646828904996255e-01 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 1 0 0 0 0 +P 532 22 5.6030702577819128e-02 5.5559279973158932e-02 -7.7673543916687360e-01 7.8073312705447295e-01 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 1 0 0 0 0 +P 534 22 4.9348863218620098e-01 1.6536143709088655e+00 -1.8673672935241342e+01 1.8753240584233389e+01 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 1 0 0 0 0 +P 536 22 5.3526856649327458e-02 5.5295120846059187e-01 -1.2244678391462424e+01 1.2257274129008765e+01 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 1 0 0 0 0 +P 538 22 8.3568879894528450e-02 -9.5782166655390463e-03 -4.8375603873570577e-01 4.9101466875703387e-01 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 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 1 0 0 0 0 +P 541 22 6.4466287487593510e-01 1.2944043611362591e-01 -6.8208918870357209e+00 6.8525113048702293e+00 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 1 0 0 0 0 +P 543 22 -1.5136490069141190e-01 -4.8237850605192573e-01 -4.8523487127665760e+01 4.8526120835947800e+01 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 1 0 0 0 0 +P 545 22 5.5354700392647317e-02 -2.0972253436179353e-01 -1.3542239831247805e+01 1.3543976791596672e+01 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 1 0 0 0 0 +P 547 22 -2.4101259830608548e-01 -3.5185697101090135e-01 -3.1414181204563874e+01 3.1417076107648302e+01 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 1 0 0 0 0 +P 549 11 3.7993073439308529e-02 -5.4461719288112491e-02 -1.9843239859383353e+00 1.9854348374518325e+00 1 0 0 0 0 +P 550 -11 4.5152289921856444e-02 -6.0008799552382155e-02 -1.9431576419402867e+00 1.9446083582150522e+00 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 1 0 0 0 0 +P 552 22 -9.8612167830641417e-02 -9.7665221123780122e-02 -1.5416982381895389e+01 1.5417607097689778e+01 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 1 0 0 0 0 +P 554 22 -7.3324877363122987e-02 -6.8985724846230816e-03 2.3934255729599138e-01 2.5041762652742228e-01 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 1 0 0 0 0 +P 556 22 -2.0031525666097008e-01 1.2513360388871886e-01 1.1649976106813382e+00 1.1886984704989552e+00 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 1 0 0 0 0 +P 558 22 1.0511091056963101e-01 -1.0201083727144152e-01 3.7218980796791872e+00 3.7247791652608369e+00 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 0 0 0 0 +P 560 -211 -1.9661017956950227e-01 1.7695947757585628e-01 6.1182368816204669e+00 6.1255426326110252e+00 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 2 0 0 -216 0 +P 562 211 -2.8661817689837927e+00 1.9267205095557918e+00 -2.7067714435363381e+01 2.7287504363610779e+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 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 1 0 0 0 0 +P 565 22 -9.4756500827945667e-01 4.6940589272528510e-01 -9.2329793891821001e+00 9.2933379223023156e+00 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 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 1 0 0 0 0 +P 568 22 -1.3408943408499285e-01 2.4051772862582772e-02 -4.1888766865607635e-01 4.4048307920190266e-01 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 1 0 0 0 0 +P 570 22 -1.3565519498958165e-01 -2.2676802553368905e-01 1.6299504540646192e-01 3.1047295237937217e-01 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 1 0 0 0 0 +P 572 22 1.2278616621454207e-02 3.3315291206237996e-02 1.3700714622479238e-02 3.8057622567098298e-02 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 1 0 0 0 0 +P 574 22 3.4337132127359193e-03 2.6278263694003868e-02 3.2781733576932932e-02 4.2154235676950993e-02 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 1 0 0 0 0 +P 576 22 -2.1971692730504189e-01 4.0487950901408658e-02 6.0872361489346244e-02 2.3156046015210280e-01 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 1 0 0 0 0 +P 578 22 -6.5080422478704020e-02 1.4780156799337593e-01 1.6169437091533618e+00 1.6249885302555025e+00 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 1 0 0 0 0 +P 580 22 -9.6754780728841897e-04 -2.1736372129631837e-02 1.1269797581427982e-02 2.4503354048855987e-02 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 1 0 0 0 0 +P 582 22 -3.9367645685764430e-01 1.5550365848863854e-01 2.7266784789645226e-01 5.0349805934464398e-01 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 1 0 0 0 0 +P 584 22 7.1123513784841722e-03 -2.5848103644413822e-01 -7.2628004232803536e-02 2.6858491905207016e-01 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 1 0 0 0 0 +P 586 22 -4.2865418981593975e-02 -5.7687269223843832e-02 -3.5500429863546519e-02 8.0159501591941129e-02 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 1 0 0 0 0 +P 588 223 4.8704055034862392e-01 -3.5751374929749274e-01 -4.5334150716676227e+00 4.6420521179146625e+00 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 0 0 0 0 +P 590 211 2.3592192506966145e-01 8.1488461732517337e-02 -5.7233958686926234e-01 6.3980615167547805e-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 0 0 0 0 +P 592 -211 2.4805451902234124e-01 3.0548024721188094e-01 -2.3958669644380710e+00 2.4319760529309771e+00 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 1 0 0 0 0 +P 594 211 1.0488802059780338e+00 -5.0742444238384699e-01 -1.7288911768918163e+00 2.0895391208722200e+00 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 1 0 0 0 0 +P 596 22 3.1152346667941438e-01 -1.8460163474866495e-01 -1.1227277133266274e+00 1.1796788343085065e+00 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 1 0 0 0 0 +P 598 22 1.4578394081241561e-01 -1.4392298922477043e-01 -3.3526285435798248e-02 2.0758322678220872e-01 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 1 0 0 0 0 +P 600 22 3.1015455264095260e-01 3.1320509008833647e-01 4.2467618168902384e+00 4.2695759981967800e+00 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 1 0 0 0 0 +P 602 22 1.6002738768978980e-01 3.7519069133342203e-01 5.2416577152761965e+00 5.2575043912286512e+00 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 1 0 0 0 0 +P 604 22 -1.3305729582002584e-02 6.5719080727114673e-02 6.3985585719697713e-01 6.4335958685684069e-01 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 0 0 0 0 +P 606 211 5.2394465015238212e-01 3.6682702985754118e-01 -6.2490553510138218e+00 6.2832517561523735e+00 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 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 2 0 0 -220 0 +P 609 111 -8.7232309329445451e-02 -2.3995471551345536e-02 -2.9943149441869452e+00 2.9987208679413939e+00 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 2 0 0 -222 0 +P 611 111 -7.7192852378523358e-01 7.3780982779285698e-01 -9.6872752294012336e+00 9.7468845257544565e+00 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 0 0 0 0 +P 613 211 1.0327478319521827e-01 -2.9696360012404494e-01 -1.9981974224513948e+00 2.0275911285646449e+00 1 0 0 0 0 +P 614 111 6.3026061270601327e-02 1.6289134720296952e-01 -7.6316722630094946e-01 7.9444930051751483e-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 1 0 0 0 0 +P 616 22 -3.4051479929526993e-02 5.3273882692476640e-02 -2.1506183008037907e-01 2.2416333469156946e-01 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 1 0 0 0 0 +P 618 22 1.3726994904771693e-02 -5.1450901266621621e-02 -7.0051649099692037e-01 7.0253752909641898e-01 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 1 0 0 0 0 +P 620 22 -8.7622234215550196e-02 2.0421434472580581e-02 -4.7677313274400424e-01 4.8518791310313425e-01 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 1 0 0 0 0 +P 622 22 -1.0035717519513651e-01 1.6652560645400125e-01 -1.8237005745575405e+00 1.8340354756273183e+00 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 1 0 0 0 0 +P 624 22 7.1747515705343115e-02 1.8293520232410862e-01 -6.4467164441818470e-01 6.7395439265287005e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 14 2101 -9.4236956683619111e-01 2.1652326170818870e-01 6.5343226954385455e+03 6.5343227926610143e+03 2 0 0 -9 0 +P 15 2 3.9267024168019415e-01 -4.4202803044505923e-01 2.0241152885643043e+01 2.0252475128694172e+01 2 0 0 -11 0 +P 3 21 5.4969932515599695e-01 2.2550476873687056e-01 5.5705531929900893e+01 5.5708700481541165e+01 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 3 0 0 -2 0 +P 29 2203 2.4852244145458005e+00 5.1082941165122786e-01 -5.5694416402834304e+03 5.5694422716067393e+03 2 0 0 -11 0 +P 4 1 -2.4852244145458005e+00 -5.1082941165122786e-01 -1.2650126797311423e+03 1.2650152240853247e+03 3 0 0 -4 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 2 0 0 -9 0 +P 16 21 1.2784868462321570e+00 -8.7405515584658322e-01 5.0158545116382854e+01 5.0182448617257258e+01 2 0 0 -11 0 +P 5 -2 5.1478982848448318e-01 -3.7127142663721519e-01 4.3686552602229858e+00 4.4145214715099570e+00 3 0 0 -5 0 +P 17 21 -1.6686180664312625e-01 9.4299371379547992e-01 -4.2196845113635542e+00 4.3269871021549715e+00 2 0 0 -11 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 3 0 0 -5 0 +P 23 21 -6.2117781148280848e-01 -2.8319314770868491e+00 -4.2435587401747085e+01 4.2534512761940860e+01 2 0 0 -11 0 +P 24 21 -1.0853374093767046e-01 2.4951738842432462e-02 -1.2807245422014727e+01 1.2807729598250830e+01 2 0 0 -11 0 +P 25 21 -4.7236154263853830e-02 -2.8124786400644658e-01 -7.3009915305624826e+00 7.3065593095945598e+00 2 0 0 -11 0 +P 26 21 -3.6487430314729372e+00 1.0613239469355105e+00 -1.4428971573317793e+02 1.4433974435543163e+02 2 0 0 -11 0 +P 27 21 -8.5735899903395096e-01 1.3023755707753566e+00 -8.6410163495004923e+01 8.6424230409151221e+01 2 0 0 -11 0 +P 28 21 2.0970411268715061e-01 -2.3598056104377471e-01 -5.0430489298734267e+02 5.0430499179922384e+02 2 0 0 -11 0 +V -5 0 0 0 0 0 0 2 0 +P 8 -24 2.4764319374549677e+00 -4.6617630836504320e+00 -4.5253788365526782e+02 4.5961679266155716e+02 3 0 0 -7 0 +P 7 22 6.1062538570560743e-01 4.7283777698592582e+00 -5.7841992636145454e+00 7.4958242253514973e+00 3 0 0 -6 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 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 2 0 0 -8 0 +V -8 0 0 0 0 0 0 2 0 +P 12 -14 -9.1890454246686382e+00 -3.9174945591477190e+01 -1.6776899637465104e+02 1.7252695749496510e+02 1 0 0 0 0 +P 11 13 1.1665477362123605e+01 3.4513182507826755e+01 -2.8476888728061687e+02 2.8708983516659214e+02 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 2 0 0 -10 0 +V -10 0 0 0 0 0 0 9 0 +P 37 333 -1.1091211096030533e+00 1.4407005271255402e-01 2.4365019278869586e+00 2.8692745467802063e+00 2 0 0 -17 0 +P 38 -321 5.7487835922576980e-01 -1.6335008561432823e-01 3.0727085777785232e+00 3.1689662892385013e+00 1 0 0 0 0 +P 39 323 -4.9346996389094194e-01 1.1818828175705887e-01 1.1352455312350665e+01 1.1390232114301151e+01 2 0 0 -18 0 +P 40 333 4.6705005789470379e-02 -1.1036790308186785e-02 6.0989748896587884e+01 6.0998269072082245e+01 2 0 0 -19 0 +P 41 -313 6.6116839338003747e-02 2.0047724383885190e-01 1.0174249585391416e+02 1.0174747600392061e+02 2 0 0 -20 0 +P 42 -211 6.6195102743584266e-01 2.3352413161979789e-03 1.9139236560226081e+01 1.9151189010327013e+01 1 0 0 0 0 +P 43 213 -1.1330549383455299e+00 2.6772966756529654e-01 8.9903421865118207e+02 8.9903532297395714e+02 2 0 0 -21 0 +P 44 2112 -3.4375880581316148e-01 2.1765097284394738e-02 5.4362110987103097e+03 5.4362111908181760e+03 1 0 0 0 0 +P 36 321 -2.7347780861062648e-01 1.7597531166764313e-01 9.6890202910053802e-01 1.1349755610206478e+00 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 2 0 0 -11 0 +P 19 21 -2.1357165232265416e+00 4.1733949000175592e+00 -2.5122523216850832e+00 5.3188271063165358e+00 2 0 0 -11 0 +P 20 21 2.1357165232265416e+00 -4.1733949000175592e+00 -7.2379746050422105e+00 8.6236179438975249e+00 2 0 0 -11 0 +P 21 21 2.6814323415953143e+00 -1.7234320325764891e+00 -3.0705360378789067e+01 3.0870365293672400e+01 2 0 0 -11 0 +P 22 21 -2.6814323415953143e+00 1.7234320325764891e+00 -1.0476850460974710e+02 1.0481698266758141e+02 2 0 0 -11 0 +P 45 92 -1.4985589873352057e-01 2.0882523139261866e+00 -6.4263147483284502e+03 6.6115068849940917e+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 0 0 0 0 +P 47 113 6.8753804353602468e-02 -1.4130704072596839e-01 2.6547465088091574e+01 2.6560329224240288e+01 2 0 0 -22 0 +P 48 -211 -3.3705321336487631e-01 -1.6764450883023393e-01 9.4322808686628328e+00 9.4408215596006979e+00 1 0 0 0 0 +P 49 113 5.9981396172818402e-01 -2.6687872216516484e-01 2.2150499557325571e+00 2.4423648313647601e+00 2 0 0 -23 0 +P 50 323 -3.0748077012799063e-01 -6.1187613112430157e-02 -1.4211926385251549e-02 9.7630268316421653e-01 2 0 0 -24 0 +P 51 -313 1.4293786442054000e-02 4.6772668279335211e-01 -3.8804113875347573e-01 1.1164769507355792e+00 2 0 0 -25 0 +P 52 111 8.0828878413878216e-02 -1.3461691433235596e-02 -7.1537625213290668e-01 7.3259627847649700e-01 2 0 0 -26 0 +P 53 113 -2.3019258837112086e-01 1.4760214205834568e-01 -1.6237023486867372e+00 1.8378775046348748e+00 2 0 0 -27 0 +P 54 223 3.6047327332852880e-01 7.5799280465086738e-01 8.7170208350794642e-01 1.4416890830588578e+00 2 0 0 -28 0 +P 55 113 1.2071093866836292e-01 1.1591242726102904e-01 9.8276244825033521e-01 1.2590091097043403e+00 2 0 0 -29 0 +P 56 -213 8.6853791013771414e-02 1.0081227171470937e+00 7.4151556572422583e+00 7.5162670018422455e+00 2 0 0 -30 0 +P 57 323 1.7595879809624551e-01 4.2346453954444735e-01 1.9254698599629185e+00 2.1644899849972110e+00 2 0 0 -31 0 +P 58 -321 1.9281037659969705e-01 1.9746412913081476e-01 6.1305191305880840e+00 6.1565472217895207e+00 1 0 0 0 0 +P 59 223 -2.6288378130564161e-01 7.8988896286242360e-01 6.4711248501236418e-01 1.3136617569823170e+00 2 0 0 -32 0 +P 60 213 1.3477705105748747e-01 1.0791582261049506e+00 5.7410962076755911e-01 1.3686690060033124e+00 2 0 0 -33 0 +P 61 -211 -1.0477191658271894e+00 1.1109784504404854e+00 -1.2067512533016968e-01 1.5381907679342692e+00 1 0 0 0 0 +P 62 213 -9.0771555535794080e-02 5.8156740475700852e-01 -1.5429989954783372e+00 1.7635958777355596e+00 2 0 0 -34 0 +P 63 221 1.9394945996907104e-01 -2.7378498648517408e-01 -2.6641812525406994e-01 6.9516525503715665e-01 2 0 0 -35 0 +P 64 -213 2.3145858795471871e-01 2.7432639064021358e-01 -1.3070279086378056e+00 1.5830182128523671e+00 2 0 0 -36 0 +P 65 213 -4.5215145872547829e-01 2.8618967307221177e-01 -1.2291118677569723e+00 1.5726626222361686e+00 2 0 0 -37 0 +P 66 2114 9.5337951957865841e-01 -6.6930286811799566e-01 -3.0888059546382411e+00 3.5274937030638558e+00 2 0 0 -38 0 +P 67 211 -1.3638801371095294e-01 -6.4982930487435098e-01 -8.8570463039764313e-01 1.1157205263708860e+00 1 0 0 0 0 +P 68 -2212 8.4949812677802405e-01 -2.0925593127370514e+00 -5.2863706614781849e+00 5.8246473634168812e+00 1 0 0 0 0 +P 69 -211 1.1996322072747415e-01 2.3947821917494630e-01 -1.0577767107781229e+00 1.1000510654288269e+00 1 0 0 0 0 +P 70 323 1.4839074584839513e+00 -9.6300995788224397e-01 -1.5468440231889129e+01 1.5599973376532240e+01 2 0 0 -39 0 +P 71 -321 -2.7807528173586266e-01 3.2958209552231060e-01 -8.8436515986138815e+00 8.8679064484052397e+00 1 0 0 0 0 +P 72 213 4.8061490063831430e-01 -1.4112979134958886e-01 -1.3685006725010053e+01 1.3716801676932008e+01 2 0 0 -40 0 +P 73 111 -6.6907029234828486e-01 1.7831713785343023e-01 -1.8676644255472887e+01 1.8689962875930050e+01 2 0 0 -41 0 +P 74 -213 -3.4452308143729315e-01 -1.7121136884034183e-01 -1.7652850045181019e+01 1.7672257910595317e+01 2 0 0 -42 0 +P 75 2212 -3.9310532187388653e-01 8.2724580957524885e-02 -3.9775536449638281e+01 3.9788629350604467e+01 1 0 0 0 0 +P 76 -2212 -6.6472940215998422e-01 6.9112739079230504e-02 -2.6053725752692522e+01 2.6079179778862152e+01 1 0 0 0 0 +P 77 3224 -4.0748859480073829e-01 -1.6567442175761489e+00 -3.4492491111585458e+01 3.4561985780104671e+01 2 0 0 -43 0 +P 78 311 -2.7836629784373346e-01 5.3322922791229938e-02 -1.9006813991509159e+01 1.9015440690833291e+01 2 0 0 -44 0 +P 79 -2112 -1.8554501644645200e+00 2.6350454241754517e-01 -6.6852567158069846e+01 6.6885429335288151e+01 1 0 0 0 0 +P 80 -211 -4.2046149174458702e-01 -6.9882022956308021e-02 -4.4649768696748026e+01 4.4652021184053616e+01 1 0 0 0 0 +P 81 211 -1.2259199970940475e+00 5.3487296324306122e-01 -3.4837579454291500e+01 3.4863525222574047e+01 1 0 0 0 0 +P 82 311 -1.7383101241416014e-02 2.3283172203271379e-01 -6.0426993477096801e+01 6.0429493865934312e+01 2 0 0 -45 0 +P 83 -323 -5.6275410327378561e-01 -7.3372721057032519e-02 -1.4782442541338469e+02 1.4782894973592141e+02 2 0 0 -46 0 +P 84 211 -1.3376613799881737e-01 -9.1221013772773460e-02 -7.1076645245746004e+00 7.1108782461679887e+00 1 0 0 0 0 +P 85 113 1.7962314176801067e-02 8.3402302003156015e-01 -6.4704726517325719e+02 6.4704829538644378e+02 2 0 0 -47 0 +P 86 -211 2.6669980751781586e-01 -2.7900006105441300e-01 -5.1992006516225081e+02 5.1992022715790301e+02 1 0 0 0 0 +P 87 213 3.4004774827278034e-01 1.9424841399564963e-01 -1.0234108895905553e+03 1.0234111585835141e+03 2 0 0 -48 0 +P 88 2214 5.6694851511787103e-01 9.8756119003734349e-02 -8.8006311174153848e+02 8.8006411796473139e+02 2 0 0 -49 0 +P 89 223 1.2311994476002099e+00 3.3274939646704554e-01 -2.8709726179406398e+03 2.8709730082148681e+03 2 0 0 -50 0 +V -13 0 0 0 0 0 3 1 0 +P 30 21 -3.0018432040494889e+00 2.3510280488458859e+00 2.3572952493951814e+02 2.3576035994992682e+02 2 0 0 -13 0 +P 31 21 -9.3397002995552358e-01 -2.9110210203548919e+00 1.0151020105427864e+02 1.0155622709355579e+02 2 0 0 -13 0 +P 32 21 3.0018432040494889e+00 -2.3510280488458859e+00 2.9747792961823656e+01 2.9991158390560429e+01 2 0 0 -13 0 +P 90 92 -9.3397002995552336e-01 -2.9110210203548919e+00 3.6698751895562049e+02 3.6730774543404306e+02 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 0 0 0 0 +P 92 -211 -1.2971269419881442e+00 8.9201364509882908e-01 8.3237290846445731e+01 8.3252293024801261e+01 1 0 0 0 0 +P 93 -311 -2.0800376351271022e-02 -2.1447848449823942e-01 2.1067216961652552e+01 2.1074196060922706e+01 2 0 0 -51 0 +P 94 313 -3.6169721163227725e-01 5.4167305000773069e-01 5.0328382832671906e+01 5.0338889823024189e+01 2 0 0 -52 0 +P 95 213 -8.9383792146133589e-01 -3.4747707496988950e-01 5.5172517965309702e+01 5.5185392155323349e+01 2 0 0 -53 0 +P 96 113 -1.2750819481863768e-01 -1.5623904654280926e-01 3.4052323819224185e+01 3.4060522483400433e+01 2 0 0 -54 0 +P 97 -211 -5.7174412643767436e-01 -9.4910638921379709e-01 3.9932536181067732e+01 3.9948149142624189e+01 1 0 0 0 0 +P 98 111 4.2301035938398712e-01 -2.4488475692500022e-01 3.0794121251526874e+00 3.1208820780762889e+00 2 0 0 -55 0 +P 99 -2112 1.1392327237977038e+00 -1.4946995580917366e+00 2.4907483094827445e+01 2.4995949349283496e+01 1 0 0 0 0 +P 100 2112 5.3941297703374469e-01 -8.0160103815638795e-01 1.3991639212989071e+01 1.4056396772840444e+01 1 0 0 0 0 +P 101 223 1.0611518832031974e+00 -1.2174652051210852e-01 2.5293344573217894e+01 2.5327779416383844e+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 2 0 0 -15 0 +P 34 21 -1.0190408349472695e+00 2.8843457133167565e+00 -7.4489250551266313e+00 8.0526007534281785e+00 2 0 0 -15 0 +P 102 92 0 0 -1.7298054229303805e+01 1.8365856296991847e+01 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 2 0 0 -57 0 +P 104 223 -7.8492867790755053e-02 4.3394394227840256e-02 -9.8224104521300815e-01 1.2585985464264791e+00 2 0 0 -58 0 +P 105 213 1.7802555916136972e-01 3.2682068270571213e-01 -2.6219971626667316e+00 2.7700960092936304e+00 2 0 0 -59 0 +P 106 111 1.9399017214205891e-01 -8.3030313783991927e-01 -1.7838453636238722e+00 1.9817566372581945e+00 2 0 0 -60 0 +P 107 -211 -2.8807161077252330e-01 5.2270945259205381e-01 -3.1028538235201237e+00 3.1628139464400387e+00 1 0 0 0 0 +P 108 223 2.5327277586763380e-01 -1.3809611761063298e-01 -2.5208029155085732e+00 2.6552334264970665e+00 2 0 0 -61 0 +P 109 113 -5.1298857283856425e-01 2.0369159186405553e-01 -2.5954878859418495e+00 2.7657410684198265e+00 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 1 0 0 0 0 +P 111 -321 -5.7394313137697117e-01 1.4822473510143655e-01 1.0456318807218525e+00 1.2993722638769123e+00 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 2 0 0 -63 0 +P 113 211 -3.2865335309279431e-01 3.8638815541686355e-02 3.0947555914917761e+00 3.1155253073174056e+00 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 1 0 0 0 0 +P 115 -321 1.3575758368981719e-01 -4.9420936146039221e-02 2.8853847102143465e+01 2.8858430416506227e+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 2 0 0 -64 0 +P 117 111 2.7385784310641714e-01 -8.2056981273926410e-02 5.6493041302322936e+01 5.6493925927065568e+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 0 0 0 0 +P 119 111 -9.9992390976039472e-02 -1.6475195526542039e-01 2.6108067152460302e+02 2.6108077754791344e+02 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 0 0 0 0 +P 121 211 -1.8624572770160111e-01 -1.3127938613092227e-01 3.2252024135430615e+00 3.2362527932060021e+00 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 0 0 0 0 +P 123 -211 -1.6247431881658703e-01 -5.1699432548800363e-02 5.7355202446922249e-01 6.1442041410871839e-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 2 0 0 -67 0 +P 125 211 1.4022431052005524e-01 1.6558274022536204e-01 6.2252034723267097e-02 2.6539706450628059e-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 1 0 0 0 0 +P 127 211 4.0280392074036164e-02 1.7574053807250894e-01 -4.8344970037768237e-01 5.3451907767910722e-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 1 0 0 0 0 +P 129 22 9.7623839846720670e-02 -3.6283883937879464e-02 -6.7660656234392436e-01 6.8457532423167167e-01 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 0 0 0 0 +P 131 211 -1.4928718685232592e-01 -1.4694398802989114e-01 -1.4262687777514764e+00 1.4483099154066095e+00 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 0 0 0 0 +P 133 -211 -3.8819295397041619e-02 1.4724962955523235e-01 1.9980284787495695e-01 2.8738537544248732e-01 1 0 0 0 0 +P 134 111 2.0231940384947528e-01 2.6016983537227312e-01 -3.2669937178005843e-03 3.5616254443665946e-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 0 0 0 0 +P 136 211 5.8283610844239242e-03 -1.5557183535927488e-01 -1.4674435833912692e-02 2.0959887813876332e-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 0 0 0 0 +P 138 111 9.5339794246549328e-02 8.8013625641534876e-01 7.0319293620400245e+00 7.0887220046595649e+00 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 2 0 0 -70 0 +P 140 211 1.0962911252013950e-01 -9.7777127091463953e-02 1.6583863230006918e-01 2.6184183347465939e-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 0 0 0 0 +P 142 -211 -2.2545152457920553e-01 2.9947362949028894e-01 3.5940892111084544e-01 5.3774287737657378e-01 1 0 0 0 0 +P 143 111 1.4309831330975950e-01 4.3829981123911323e-02 1.6283401092664959e-01 2.5909980708576519e-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 0 0 0 0 +P 145 111 6.8642869327424763e-02 -8.0069400494364870e-04 7.4330954752438616e-02 1.6869254830845534e-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 0 0 0 0 +P 147 111 -4.9897414700676830e-02 6.3480828441875170e-01 -9.5634160118663458e-01 1.1568405977146143e+00 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 2 0 0 -74 0 +P 149 111 2.0056546976702694e-01 -6.3971292668162691e-02 -9.6007889896875975e-02 2.6787300959774685e-01 2 0 0 -75 0 +P 150 111 7.4076068237410586e-02 -1.5223454337385475e-01 -1.3786736993110663e-01 2.5668975860653298e-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 0 0 0 0 +P 152 111 -2.0372722030621004e-01 -1.3281479666583887e-01 -4.6890059482311636e-01 5.4518980064978795e-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 0 0 0 0 +P 154 111 -3.3667971097780769e-01 5.4736357389487933e-01 -7.3983201246404340e-01 9.8920731744041990e-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 1 0 0 0 0 +P 156 -211 3.4904634150528252e-01 4.3536191550377301e-02 -6.3812683238072887e-01 7.4189917616694812e-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 2 0 0 -79 0 +P 158 211 9.4508317557362542e-01 -6.6433046586075961e-01 -1.1051882572613879e+01 1.1112970141252495e+01 1 0 0 0 0 +V -40 0 0 0 0 0 0 2 0 +P 159 211 1.1797515950852807e-04 -3.5831001471481000e-01 -6.3446479853082618e+00 6.3562901068893360e+00 1 0 0 0 0 +P 160 111 4.8049692547880568e-01 2.1718022336522114e-01 -7.3403587397017889e+00 7.3605115700426689e+00 2 0 0 -80 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 1 0 0 0 0 +P 162 22 -1.6508152971228482e-01 9.8760404301210553e-02 -5.8983626961637485e+00 5.9014987947474795e+00 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 0 0 0 0 +P 164 111 -4.7731618002122833e-01 -2.9187784704482400e-01 -1.0465068868316324e+01 1.0480883046399720e+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 2 0 0 -82 0 +P 166 211 6.1174989411821111e-02 -3.8276203094391698e-02 -3.6341062113987506e+00 3.6375012285468498e+00 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 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 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 2 0 0 -84 0 +P 170 -211 -1.7576348254901095e-02 -3.3187471449250006e-01 -5.7959190696970708e+01 5.7960311557020233e+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 0 0 0 0 +P 172 -211 -7.4993185802273390e-02 8.4488984251952770e-01 -6.1410225298490639e+02 6.1410285462921172e+02 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 0 0 0 0 +P 174 111 2.5409858703281496e-01 -1.5284689738481802e-01 -3.2441921835528876e+02 3.2441938195200805e+02 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 1 0 0 0 0 +P 176 111 1.8441356365968553e-01 -6.4143169139693756e-02 -3.0353336334061498e+02 3.0353345615133566e+02 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 0 0 0 0 +P 178 -211 3.9966223398528372e-01 -1.6207176715030084e-02 -1.3243593232465137e+03 1.3243593910046934e+03 1 0 0 0 0 +P 179 111 2.9820310548844248e-01 2.7433902091179635e-01 -5.4068104775355994e+02 5.4068121643578320e+02 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 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 1 0 0 0 0 +P 182 -211 2.7929506800841261e-02 3.3600416982304704e-01 1.9387469077481260e+01 1.9390902915405476e+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 0 0 0 0 +P 184 111 -2.6301694449702272e-03 -1.6538867476866476e-01 1.8885785523187302e+01 1.8886992210507319e+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 0 0 0 0 +P 186 211 -1.1552097688423035e-01 1.7779241460690620e-01 5.4530335580076184e+00 5.4589385422854200e+00 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 1 0 0 0 0 +P 188 22 1.3549665622695076e-01 -1.4930999651612464e-01 1.3840869762369830e+00 1.3986956697928123e+00 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 0 0 0 0 +P 190 -211 2.5412965478975740e-02 -9.0827288189110802e-02 3.8528483651797676e+00 3.8565289737097310e+00 1 0 0 0 0 +P 191 111 5.3198633201816781e-01 1.6603512019262065e-01 1.2684371283985527e+01 1.2697325371470487e+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 0 0 0 0 +P 193 211 4.2568393842247360e-01 -7.1494346415030066e-02 -1.4526970261360295e+00 1.5218826142789872e+00 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 0 0 0 0 +P 195 211 -1.9416584560678463e-01 1.2013959035912780e-01 -1.3157418602565010e-01 2.9820370235825233e-01 1 0 0 0 0 +P 196 111 3.9213905941188162e-02 1.0795934726966315e-02 -6.7240374167578831e-02 1.5618947129684915e-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 0 0 0 0 +P 198 111 4.5819030623118540e-01 7.6300831800201821e-02 -1.2360737189153828e+00 1.3273499962899518e+00 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 1 0 0 0 0 +P 200 22 8.6452061747327294e-02 -2.4609259358863311e-01 -6.7839343307098976e-01 7.2681027347815286e-01 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 0 0 0 0 +P 202 211 1.2543443318519545e-01 2.9266802084010526e-02 -2.6988866705562498e-01 3.3001518182922718e-01 1 0 0 0 0 +P 203 111 1.6976212237140365e-01 -2.6210463640834042e-01 -1.9346621202013536e+00 1.9643459823464879e+00 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 0 0 0 0 +P 205 -211 1.1499260483261517e-01 6.9737906011698547e-02 -1.2871443966610814e+00 1.3016555448570508e+00 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 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 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 1 0 0 0 0 +P 209 22 2.4113439554956292e-01 -1.8563705044705985e-02 4.0134214667263159e+01 4.0134943345740787e+01 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 1 0 0 0 0 +P 211 22 -6.4490887525149324e-02 -1.6042978102883673e-01 1.4901178207850950e+02 1.4901188239533926e+02 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 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 1 0 0 0 0 +P 214 22 1.4273109276990548e-01 2.5985255780542243e-01 2.1304606071875768e-04 2.9647185706224466e-01 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 1 0 0 0 0 +P 216 22 -2.8990508836005870e-03 2.4532752483918649e-01 1.5522046022239493e+00 1.5714748251578743e+00 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 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 1 0 0 0 0 +P 218 22 1.4597052735358410e-01 -9.3507294289533575e-03 1.3481030230072180e-01 1.9891869847540525e-01 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 1 0 0 0 0 +P 221 22 4.4433158429187325e-02 -6.5331570702425915e-02 5.7575850427009183e-02 9.7762458289636103e-02 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 1 0 0 0 0 +P 223 22 1.9918305730394971e-02 4.2273685389968030e-01 -5.5984897325031024e-01 7.0180770827741401e-01 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 1 0 0 0 0 +P 225 22 3.1301920974180393e-02 6.0650545011126985e-03 -2.6814071781105887e-02 4.1660407922362044e-02 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 1 0 0 0 0 +P 227 22 2.2495915020264604e-02 3.0897490934717161e-02 1.0618283268731158e-02 3.9666977175415293e-02 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 1 0 0 0 0 +P 229 22 5.3242834410132556e-02 -1.4922231314776616e-01 -4.9706474096342455e-02 1.6605069022525973e-01 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 1 0 0 0 0 +P 231 22 -1.5024839438700266e-01 -2.4296058517503317e-02 -3.1123943785453106e-01 3.4646048281349889e-01 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 1 0 0 0 0 +P 233 22 -1.1718985001359787e-01 1.0102902599004575e-01 -1.2872580179196724e-01 2.0127259397566213e-01 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 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 1 0 0 0 0 +P 236 22 2.1478963812303389e-01 7.2768110805940062e-02 -4.0269625247378293e+00 4.0333431495768082e+00 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 1 0 0 0 0 +P 238 22 -2.9214261570838684e-01 -2.4474036593162976e-01 -7.4829162988857805e+00 7.4926151302972830e+00 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 1 0 0 0 0 +P 240 -211 5.0123644770492803e-03 -1.8153717996772661e-01 -4.7083166890535697e+00 4.7138844598514140e+00 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 0 0 0 0 +P 242 211 1.6662348476816261e-01 2.3316481548576576e-01 -3.4927202109991391e+01 3.4928656662315888e+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 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 1 0 0 0 0 +P 245 22 9.0908049065072161e-02 -9.4509648655208264e-02 -8.5304951917361947e+01 8.5305052710671873e+01 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 1 0 0 0 0 +P 247 22 1.4882567766781341e-01 1.5799677520724986e-02 -1.8550802425959540e+02 1.8550808463086122e+02 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 1 0 0 0 0 +P 249 22 1.1705464726993600e-01 3.4439652232437577e-02 -1.2306012080021719e+02 1.2306018129047324e+02 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 1 0 0 0 0 +P 251 22 1.0611185962569689e-02 -1.5514243362924734e-01 1.8634822130961478e+01 1.8635470952582644e+01 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 1 0 0 0 0 +P 253 22 3.4927699330329121e-01 5.6337602764626502e-02 6.9560506087998260e+00 6.9650418818353623e+00 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 1 0 0 0 0 +P 255 22 -3.7683019272935298e-02 -2.4826278578968294e-02 4.2367411948796398e-03 4.5324430780290477e-02 1 0 0 0 0 +V -91 0 4.0801170434363689e-05 6.7944764440148752e-06 -1.1007054009880686e-04 1.1819855786593737e-04 0 2 0 +P 257 22 3.3735132400291051e-01 1.1541367327565770e-01 -8.9640270848063985e-01 9.6470930728221138e-01 1 0 0 0 0 +P 256 22 1.2083898222827490e-01 -3.9112841475455871e-02 -3.3967101043474301e-01 3.6264068900774049e-01 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 1 0 0 0 0 +P 259 11 1.2719536651632049e-01 -2.1827911800405031e-01 -1.2119610200457922e+00 1.2380122005983156e+00 1 0 0 0 0 +P 260 -11 4.8036432108104722e-03 -2.4822349547580416e-02 -1.5389178821322286e-01 1.5595565589173888e-01 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 2 0 0 -97 0 +P 262 111 -2.5683085044881010e-01 -5.2606596492694856e-02 6.0028373615088171e+00 6.0100753347077882e+00 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 2 0 0 -99 0 +P 264 111 8.1692953034130586e-02 1.2637725332603228e-01 8.6178494344894041e+00 8.6202200334250758e+00 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 0 0 0 0 +P 266 -211 -1.5240691281153346e-01 -1.3509759160206133e-01 -2.3101061811660287e-01 3.3811967838627000e-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 2 0 0 -101 0 +P 268 111 -9.3765757918072581e-02 3.6642028788255870e-01 6.5980702099412725e-01 7.7241229280937296e-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 1 0 0 0 0 +P 270 22 7.5406148811942117e-02 1.5913383266840953e-01 2.0162338756716944e+00 2.0239092631302644e+00 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 1 0 0 0 0 +P 272 22 -1.8518079410849772e-01 -2.0927207569544297e-02 2.7563022818897256e+00 2.7625951827355784e+00 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 1 0 0 0 0 +P 274 22 -1.8982823478016234e-01 1.3113403154797515e-01 3.0429739539364984e+01 3.0430614179252810e+01 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 1 0 0 0 0 +P 276 22 4.0925939406402977e-03 1.2398917639195919e-01 5.0145378556855054e+00 5.0160721656780911e+00 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 1 0 0 0 0 +P 278 22 1.1316249313101989e-02 5.5550771279655430e-02 5.2944134857972314e-01 5.3246792135695076e-01 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 1 0 0 0 0 +P 280 22 -2.7734843220561155e-02 3.1484209872019292e-01 4.9057322637055928e-01 5.8357249685589085e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 2 -9.2820880453940977e-02 1.6078548997780676e-01 2.3716619521660218e+03 2.3716619594325907e+03 3 0 0 -3 0 +P 31 2103 9.2820880453940977e-02 -1.6078548997780676e-01 4.2732759596864398e+03 4.2732760333322394e+03 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 3 0 0 -2 0 +P 4 21 2.8438240035156620e-01 -3.1515117320208030e-01 -3.8035697500337951e+03 3.8035697737212290e+03 3 0 0 -4 0 +P 14 2203 -1.4352353535702972e-01 4.4026544033137993e-01 -2.9147371774374851e+03 2.9147373162806402e+03 2 0 0 -9 0 +P 33 1 -1.4085886499453648e-01 -1.2511426712929963e-01 -8.4457632655431709e+01 8.4458487486809346e+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 3 0 0 -5 0 +P 30 21 -5.9675894419355358e-01 -9.5050198748863479e-01 1.7993365505285936e+02 1.7993715512908133e+02 2 0 0 -11 0 +P 27 21 1.9372450554350890e-01 -5.2219821644400299e-01 1.2126803157754753e+02 1.2126931063898388e+02 2 0 0 -11 0 +P 28 21 -2.3795161344271451e-01 7.1609049465699426e-01 1.0167002308049599e+02 1.0167282330965078e+02 2 0 0 -11 0 +P 29 21 3.4192681965240401e-01 2.4291397251790178e-01 3.1944822354571826e+01 3.1947575751740445e+01 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 3 0 0 -5 0 +P 11 1 -9.8845705950266671e-01 -4.9594742583225058e+00 1.9044643416753072e+01 1.9707378698059269e+01 2 0 0 -9 0 +P 12 21 2.6044264833858743e-01 -3.1030363873699462e+00 1.1727671819750038e+01 1.2134041021282840e+01 2 0 0 -9 0 +P 13 21 7.5691010065949327e-01 -5.4011599026484958e-01 5.1524452837099819e+00 5.2356786174330239e+00 2 0 0 -9 0 +P 15 2 -1.8311360214351913e-01 -1.4805571719661075e+00 -2.1411903451828903e+03 2.1411908903188796e+03 2 0 0 -11 0 +P 16 21 4.3968109830755170e-01 -2.9544412986812052e-01 -3.1326029880598599e-01 6.1541751428642444e-01 2 0 0 -11 0 +P 17 21 2.7322936418785587e-01 -3.3048055802107390e-01 -7.6828223487860681e-01 8.7984616673284832e-01 2 0 0 -11 0 +P 18 21 2.9260573411497637e-01 1.3800589535119959e-01 -2.1582422861451325e+00 2.1823550372232328e+00 2 0 0 -11 0 +P 19 21 1.0223538075759215e+00 -1.4522275427264191e+00 -2.4692904014076042e+01 2.4756689616992229e+01 2 0 0 -11 0 +P 20 21 1.2063407328190996e+00 -7.4888083722587195e-01 -1.1210724096630058e+01 1.1300283856734948e+01 2 0 0 -11 0 +P 21 21 -5.4913410279006636e-01 1.0519596533332111e-01 3.4138908785026851e+00 3.4593735537367594e+00 2 0 0 -11 0 +P 22 21 6.4314231442077185e-01 3.1223541119268439e+00 7.5129505920112933e+00 8.1613205938051365e+00 2 0 0 -11 0 +P 23 21 1.2086144926726743e+00 3.4136643559921347e+00 6.3113339858338602e+00 7.2764544943269689e+00 2 0 0 -11 0 +P 24 21 2.4400337609788756e+00 6.9128514496625586e+00 2.4435124802319205e+01 2.5511107463705560e+01 2 0 0 -11 0 +P 32 -2 -7.1644398238490137e-01 8.6978994307757240e-01 -1.6189139599034304e+03 1.6189143857217191e+03 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 3 0 0 -6 0 +P 8 24 -1.9258873467210137e+01 9.2892052050382574e+00 8.6309059655865008e+02 8.6709454534264773e+02 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 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 2 0 0 -8 0 +V -8 0 0 0 0 0 0 9 0 +P 37 21 -1.0274145350843458e+00 -2.5975390684764665e-01 3.0272901154602945e+00 3.2074192370485028e+00 2 0 0 -15 0 +P 38 21 -2.6505880313310659e-01 5.5852304317418111e-01 2.2691371688433564e+00 2.3518477097595722e+00 2 0 0 -15 0 +P 39 21 2.3721188780666763e-01 2.7959374185858841e+00 2.6258281663350946e+01 2.6407780888220010e+01 2 0 0 -15 0 +P 40 21 3.3737992516561754e-01 1.9913397179993726e+00 1.8847206960760861e+01 1.8955117232772242e+01 2 0 0 -15 0 +P 41 21 9.3276664365375481e+00 2.1890146052654789e+01 2.2925649830527726e+02 2.3048801676129600e+02 2 0 0 -15 0 +P 34 4 -2.2700858926615656e+01 -1.6386334061858157e+01 3.4828459595439756e+02 3.4941129163080990e+02 2 0 0 -15 0 +P 35 21 -7.4503781777991165e+00 -8.5245909374436160e+00 1.2403122509900038e+02 1.2454686501555096e+02 2 0 0 -15 0 +P 36 21 -2.0027042250268927e+00 -1.0978633289287578e+00 2.1859513177439908e+01 2.1978499595209318e+01 2 0 0 -15 0 +P 42 -3 4.2852829509391617e+00 8.3218012077022046e+00 8.9256848114117304e+01 8.9747707271978427e+01 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 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 2 0 0 -25 0 +P 53 213 -1.5404831881885364e-01 -1.7509696799112910e+00 5.5613068929310039e+00 5.8606722227440304e+00 2 0 0 -26 0 +P 54 223 -5.1151607297610935e-01 -1.4176238804041423e+00 5.9722475655096865e+00 6.2094845467470412e+00 2 0 0 -27 0 +P 62 211 5.4968392420735113e-01 1.4756230968950473e-01 -1.8166962247609939e+00 1.9088719207253644e+00 1 0 0 0 0 +P 63 113 -8.7881886984997282e-01 -4.1468335965402653e-01 -2.3734060373081363e+01 2.3767575310168922e+01 2 0 0 -32 0 +P 64 -211 4.4026111693685754e-01 6.5311510758350333e-01 -3.0666546764622510e+01 3.0676977677837161e+01 1 0 0 0 0 +P 65 211 4.5884509599108031e-02 -7.3354084743733938e-01 -5.8516434437769988e+02 5.8516482259132022e+02 1 0 0 0 0 +P 66 2214 -4.9851835496356245e-01 6.3248545172766857e-01 -1.2651382944982172e+03 1.2651390770952955e+03 2 0 0 -33 0 +P 67 111 2.6622991607876895e-01 4.8781176567800157e-02 -9.9923848265446202e+02 9.9923852842810425e+02 2 0 0 -34 0 +P 55 223 2.1595395219106844e-01 -1.8737275125004771e+00 7.0985598228311808e+00 7.3857993220666733e+00 2 0 0 -28 0 +P 56 113 -4.7677120078934182e-02 -1.0152067643004612e+00 2.4368651745900176e+00 2.7334250167134941e+00 2 0 0 -29 0 +P 57 -211 2.1984336478833474e-01 4.7825007839895524e-03 2.2352079885760445e+00 2.2503307566776294e+00 1 0 0 0 0 +P 58 211 -3.3498969538027201e-01 6.9648415330084867e-02 -1.1066497586449596e-01 3.8574022288587678e-01 1 0 0 0 0 +P 59 113 1.3909780482065315e-01 -3.3069396730450967e-01 -1.7329298988899207e+00 1.9541788674726714e+00 2 0 0 -30 0 +P 60 -211 -2.8599753074680223e-01 6.4799383066966643e-01 -3.4804982825084108e+00 3.5545799571290018e+00 1 0 0 0 0 +P 61 111 4.1381767414316867e-01 -3.0024085245337195e-01 -3.1398849342385469e+00 3.1840990307421961e+00 2 0 0 -31 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 2 0 0 -11 0 +P 26 21 8.0759531061318546e-01 3.3406171290107096e+00 -1.6092526703563814e+02 1.6096196290888045e+02 2 0 0 -11 0 +P 68 92 6.5875152481577262e+00 8.7100003117229168e+00 2.4104713366823571e+03 7.0983573201329691e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 59 0 +P 71 -211 5.7620530575271300e-01 6.1421445206986870e-02 -3.3565202145218319e+02 3.3565255066790428e+02 1 0 0 0 0 +P 72 213 2.7459733564460981e-01 -4.6031431506940862e-01 -3.8571257213471154e+02 3.8571373935139655e+02 2 0 0 -37 0 +P 73 223 -5.7926526471571715e-01 -1.9525945624624185e-02 -8.4084403531743789e+01 8.4090163084732680e+01 2 0 0 -38 0 +P 74 -213 -7.3223666424297493e-02 3.6563852853395723e-01 -1.6810679233890163e+01 1.6836622172984743e+01 2 0 0 -39 0 +P 75 211 6.4146448505876097e-01 -6.3543078272220832e-01 -1.6981265495312542e+01 1.7005825665706883e+01 1 0 0 0 0 +P 76 -211 -1.5924531765929986e-01 1.8172819723608069e-02 -3.3819669982319928e-01 3.9943224111784109e-01 1 0 0 0 0 +P 77 331 -2.1878967436288869e-02 -2.4374301737778187e-01 -4.9639779751442061e+00 5.0614320935167747e+00 2 0 0 -40 0 +P 78 211 3.8160876729373411e-01 4.9824059133778851e-03 -3.9596912966490905e+00 3.9804880385830423e+00 1 0 0 0 0 +P 79 -211 8.2763694246190667e-01 -4.7171503722470046e-02 -5.3206398228798824e+00 5.3866405086107614e+00 1 0 0 0 0 +P 80 213 -9.2963436667075124e-03 -9.3331491880418926e-01 -5.7858987283250789e+00 5.9114736383731179e+00 2 0 0 -41 0 +P 69 323 2.6965373089886259e-02 -7.8436620352785036e-01 -6.3251215118341054e+02 6.3251328488303113e+02 2 0 0 -35 0 +P 70 -311 -5.1319872938403244e-01 -3.5703956672451648e-01 -6.6805309680723667e+02 6.6805357470741524e+02 2 0 0 -36 0 +P 81 111 6.8908760945870035e-02 -7.4336047790866958e-02 -3.2488145678831243e-01 3.6611723081706654e-01 2 0 0 -42 0 +P 82 311 8.0944838552899079e-01 -2.2401821592795629e-01 -2.2078412448770441e+00 2.4140483096622667e+00 2 0 0 -43 0 +P 83 -311 2.0825369584158310e-01 -2.9899435700293758e-01 -7.9825277911540260e+00 8.0063220390387535e+00 2 0 0 -44 0 +P 84 221 4.8600128562752809e-02 -2.9412330619311078e-01 -1.2557942635204722e+00 1.4019954445479514e+00 2 0 0 -45 0 +P 85 221 2.4321537069915566e-01 2.7897521224850303e-02 -2.0466306405757497e+00 2.1326815209210972e+00 2 0 0 -46 0 +P 86 113 -1.4242560875299726e-01 2.0098755311294011e-01 -9.3281640560500445e-01 1.1994889447031605e+00 2 0 0 -47 0 +P 87 -213 6.2995506969133175e-01 -5.3351618156801850e-01 -3.0268003767966487e+00 3.2877827626531611e+00 2 0 0 -48 0 +P 88 213 -4.4470514704296038e-01 2.6740585629040976e-02 -1.1790528923872898e+00 1.4643031719074535e+00 2 0 0 -49 0 +P 89 2112 -5.6465354678112804e-02 4.1816050990651149e-01 8.1955389032907600e-01 1.3162472839013655e+00 1 0 0 0 0 +P 90 -2212 -3.0528283048302102e-02 -4.0769401042822612e-01 1.4135481591829637e+00 1.7451691532440265e+00 1 0 0 0 0 +P 91 211 3.5221781060737328e-01 1.2088893752373304e+00 9.4706264424757203e-01 1.5817327033035504e+00 1 0 0 0 0 +P 92 -213 -2.9970119748950869e-01 5.7605009045793187e-01 1.9803888278068278e+00 2.1668024374217025e+00 2 0 0 -50 0 +P 93 323 5.3610594923405364e-01 1.5427556638110751e+00 4.1323311180303905e+00 4.5365775346539055e+00 2 0 0 -51 0 +P 94 -323 1.6764230184000011e+00 4.2661339477853915e+00 1.1422857768230408e+01 1.2340341966212989e+01 2 0 0 -52 0 +P 95 221 1.6521720620708708e-01 1.7305666862956806e+00 5.3795959051527014e+00 5.6799569880571275e+00 2 0 0 -53 0 +P 96 111 3.4091599571513381e-01 4.2578712335088759e-01 7.7507818540955942e-01 9.5733180478016111e-01 2 0 0 -54 0 +P 97 111 1.8636424148468736e-01 1.4599342475026946e+00 5.4281639450086834e+00 5.6257731070340586e+00 2 0 0 -55 0 +P 98 223 1.0069287360881967e+00 1.3509470596584172e+00 6.7582433289884696e+00 7.0091592256500288e+00 2 0 0 -56 0 +P 99 211 -3.4146209562673929e-01 1.5158950380356184e-01 5.2424511386917438e-01 6.5870210621260206e-01 1 0 0 0 0 +P 100 2112 -2.1154881148046689e-01 -1.0735068025792132e+00 7.0201326895106064e-01 1.6039900777454950e+00 1 0 0 0 0 +P 101 -2212 4.7469686931938010e-02 2.7754353367769968e-01 1.0039073590343506e+00 1.4026633105228941e+00 1 0 0 0 0 +P 102 111 1.7437178164815947e-01 -5.6048963315392508e-01 1.2589521396946993e-01 6.1532377851712639e-01 2 0 0 -57 0 +P 103 113 -3.1883151078144545e-01 -8.4606752962111467e-02 1.3914257241876302e-01 9.7271600632710076e-01 2 0 0 -58 0 +P 104 111 -1.1927545843921665e-01 -2.6335718259241964e-01 1.5515874628685319e-01 3.5479216107209921e-01 2 0 0 -59 0 +P 105 211 2.9312098402116255e-01 -6.2323282486230425e-01 -2.6684020281172388e-01 7.5167981481212065e-01 1 0 0 0 0 +P 106 1114 -4.4062914350054427e-01 2.4638804826043872e-01 -2.3241854935092199e+01 2.3280385473541951e+01 2 0 0 -60 0 +P 107 211 1.6813770838362588e-01 1.0298303158833499e-01 -3.2163782230045408e+00 3.2254370947351405e+00 1 0 0 0 0 +P 108 -2212 3.4457685450197267e-01 1.2186713305630190e+00 -5.3030716885410776e+01 5.3054134400573211e+01 1 0 0 0 0 +P 109 2214 1.2020287573136482e-01 3.7479987432403911e-01 -1.0966878173055145e+01 1.1045072570427967e+01 2 0 0 -61 0 +P 110 211 2.1009296797946009e-01 4.0052377799798089e-01 -1.6589816940124287e+01 1.6596567845300751e+01 1 0 0 0 0 +P 111 -2224 1.9658035577195881e-01 5.1914185814482328e-01 -3.0401238446225552e+01 3.0431387801714855e+01 2 0 0 -62 0 +P 112 323 -7.0406239463945264e-01 -1.9001858472173550e-01 -1.3737092732247977e+01 1.3787611740640099e+01 2 0 0 -63 0 +P 113 333 8.2916907628090986e-01 6.4319863963863733e-01 -5.3961951740099057e+00 5.5928926174794418e+00 2 0 0 -64 0 +P 114 -323 -4.4426618158725512e-01 -1.3800261314922405e-02 -1.0646399753717462e+00 1.4542717828265139e+00 2 0 0 -65 0 +P 115 213 4.6955864160020383e-01 -2.2138569541027434e-01 2.7803521001940323e-01 1.1481484305370542e+00 2 0 0 -66 0 +P 116 223 2.8564258373702955e-01 -7.0418327707246611e-02 -7.3250403882459747e-01 1.1252011437712499e+00 2 0 0 -67 0 +P 117 -213 -2.1467687225524573e-01 4.2741287912168013e-01 -7.4289123826589104e-04 1.0126576271927121e+00 2 0 0 -68 0 +P 118 113 1.7395230303924547e-01 -4.1608763137866295e-01 1.2004688227692567e+01 1.2053458057779810e+01 2 0 0 -69 0 +P 119 221 -1.9567117285229671e-01 2.8889340409270481e-01 5.3075723066706981e+00 5.3471274437637426e+00 2 0 0 -70 0 +P 120 111 -1.9087267842121336e-01 5.4252206762536037e-01 6.2318609039251946e+01 6.2321408960009578e+01 2 0 0 -71 0 +P 121 323 1.3070310306706950e-01 -6.1697493783128776e-01 2.9221144136450206e+01 2.9240305127864819e+01 2 0 0 -72 0 +P 122 -311 -4.9885948856357186e-02 1.2822300091927889e-02 4.5329270329114166e+00 4.5604556717363289e+00 2 0 0 -73 0 +P 123 2112 -4.7863725043095502e-02 -1.0825222107858737e-01 1.4718621532001902e+02 1.4718926177372941e+02 1 0 0 0 0 +P 124 -2112 1.9344894382294975e-01 -6.5018197886060145e-03 2.1812090513132770e+02 2.1812301463133616e+02 1 0 0 0 0 +P 125 313 -5.9342554539725090e-01 -3.3850796627627300e-01 5.9882469556753961e+02 5.9882576075663053e+02 2 0 0 -74 0 +P 126 3224 3.5223036811653632e-02 -3.4414941922204685e-02 2.5172332877548356e+03 2.5172336781781446e+03 2 0 0 -75 0 +P 127 -213 1.1663718569999987e-01 -2.4641154449404332e-01 1.1115119089591544e+03 1.1115121550661386e+03 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 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 2 0 0 -77 0 +P 130 -211 -7.1966617449677556e-02 -1.2056328262765621e-01 -2.8359148413735429e+01 2.8359839443063105e+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 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 0 0 -78 0 +P 133 211 -4.5604000871635657e+00 -4.7377185099919146e+00 7.2689922512815102e+01 7.2986899785775833e+01 1 0 0 0 0 +P 134 113 -5.1617104439380377e+00 -3.6881619942643642e+00 7.3158252581438703e+01 7.3436922903472933e+01 2 0 0 -79 0 +P 135 111 -1.0963849349911059e-01 -3.7173119868868731e-02 3.1818045250357909e+00 3.1867698498692643e+00 2 0 0 -80 0 +P 136 -213 -1.8575628946181175e+00 -2.6189368213267570e+00 3.1084349603980588e+01 3.1260260648800589e+01 2 0 0 -81 0 +P 137 113 -1.9702196225596913e+00 -7.5035350425204206e-01 1.8597051073293592e+01 1.8730245499430811e+01 2 0 0 -82 0 +P 138 331 -1.8481053319477775e-01 -3.7946619601020762e-02 3.7006231730721044e+00 3.8272144972627773e+00 2 0 0 -83 0 +P 139 323 5.4756376576753629e-01 3.2204856220182068e+00 3.6360592290988627e+01 3.6518541749074082e+01 2 0 0 -84 0 +P 140 -323 1.3311259853615089e+00 3.7379512567484707e+00 3.4112393141607136e+01 3.4353366987544497e+01 2 0 0 -85 0 +P 141 113 4.4805357982732119e-01 3.0030852094344707e+00 2.9362369493599097e+01 2.9533424673175375e+01 2 0 0 -86 0 +P 142 213 4.7752867246856443e+00 1.0891165458689070e+01 1.1393626861842178e+02 1.1455865944632977e+02 2 0 0 -87 0 +P 143 313 6.6208049038407921e+00 1.4438654991280693e+01 1.5197109868684942e+02 1.5280167720844955e+02 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 2 0 0 -17 0 +P 44 -2 -2.1378197802742376e+00 -2.3547451315414101e+00 -2.4068773120863955e+01 2.4277992865784292e+01 2 0 0 -17 0 +P 144 92 0 0 -2.9533951070096659e+01 3.0601225272095888e+01 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 2 0 0 -89 0 +P 146 -321 3.7073773471981229e-02 1.7044744097734246e-01 -1.6359966049568000e+00 1.7177172777396612e+00 1 0 0 0 0 +P 147 323 -4.7852083980675375e-01 -6.4107933193332411e-01 -5.4042107535842536e+00 5.5372300715771994e+00 2 0 0 -90 0 +P 148 -321 -1.4361781113938632e+00 -1.3612518803910378e+00 -1.7494258484193114e+01 1.7612732187859947e+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 2 0 0 -19 0 +P 46 -1 -1.8673293224089542e+00 -2.3063057798131541e+00 -3.0519906661080940e+00 4.2568312362999272e+00 2 0 0 -19 0 +P 149 92 0 0 2.1338515322241175e+01 2.8827194430929943e+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 0 0 0 0 +P 151 213 -2.0771851785387677e-01 4.2519322630392231e-01 6.3745975039723319e+00 6.4406040423465116e+00 2 0 0 -91 0 +P 152 311 3.6602657683902218e-01 2.7637537539729494e-02 1.1512728067232807e+00 1.3068449765883683e+00 2 0 0 -92 0 +P 153 -313 6.6372648031348541e-02 5.1378838214452516e-01 4.7850741764275320e+00 4.9115056800953063e+00 2 0 0 -93 0 +P 154 111 1.4261163265033819e-01 2.7035572090208759e-01 1.0157832817158920e-01 3.4923924571247367e-01 2 0 0 -94 0 +P 155 -213 2.4227172397104807e-01 -2.6403356349582480e-01 1.3501615848246171e+00 1.6600803924695697e+00 2 0 0 -95 0 +P 156 223 -1.1140200512928606e+00 -8.1846412592718654e-01 -1.3130036485215084e+00 2.0628775198106455e+00 2 0 0 -96 0 +P 157 213 -6.1483051266327160e-01 -1.1270525155338409e+00 -1.1718195444822426e+00 1.9257453281475732e+00 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 2 0 0 -21 0 +P 48 21 1.6032500697232532e-01 -4.0174652936366986e+00 2.9067715926331368e+02 2.9070496495396026e+02 2 0 0 -21 0 +P 158 92 0 0 2.9824498574246365e+02 2.9927454657221676e+02 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 1 0 0 0 0 +P 160 -2212 -1.5090219905010202e-01 6.0109050142401987e-01 3.2508753296939252e+00 3.4398578846651389e+00 1 0 0 0 0 +P 161 213 -1.3185920968150541e-01 5.1253454596483206e-01 2.8515148690980490e+00 3.0007314728969532e+00 2 0 0 -98 0 +P 162 2112 -2.9589184870575446e-02 8.1735278132525635e-01 3.9016671878094096e+00 4.0956977083678945e+00 1 0 0 0 0 +P 163 111 -1.6746154439354902e-02 7.6768893592516851e-01 2.2228509364031699e+00 2.3556130034237106e+00 2 0 0 -99 0 +P 164 -2112 1.5035799035598119e-01 2.6606398705642531e-01 4.0650357319587354e+00 4.1833843784038702e+00 1 0 0 0 0 +P 165 -213 1.6067245661882737e-01 -1.2470285603911700e-01 4.7366324423320982e+00 4.8109860944668297e+00 2 0 0 -100 0 +P 166 3222 -3.8764262791963577e-01 -4.9242591697810201e-01 5.0258807822997092e+01 5.0276785049131227e+01 2 0 0 -101 0 +P 167 -3322 -1.2309526187710051e-01 -2.5079778996359208e+00 1.8364860958891464e+02 1.8367048176432749e+02 2 0 0 -102 0 +P 168 -313 2.7382092931236746e-01 1.3620019933979283e-01 1.7228910752887057e+01 1.7258673294130080e+01 2 0 0 -103 0 +P 169 223 7.5340086447302335e-02 -2.0758010905029387e-01 2.0512148660659509e+01 2.0528076850627027e+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 2 0 0 -23 0 +P 50 21 2.6546407805414689e+00 -1.5019300198250121e+00 1.7863101526357177e+00 3.5346591659698707e+00 2 0 0 -23 0 +P 170 92 0 0 2.6738714322256449e+01 2.8672785295462329e+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 2 0 0 -105 0 +P 172 111 3.4623449760310282e-01 -1.0264048500571971e-01 9.3540089980756547e-01 1.0117350642601477e+00 2 0 0 -106 0 +P 173 -3222 -8.2595480421942175e-02 1.6978619896754682e-01 3.9520196416308315e+00 4.1314294876570097e+00 2 0 0 -107 0 +P 174 3222 -6.9310081431249626e-01 6.6149599980748386e-01 1.1548527819325548e+01 1.1649079855816854e+01 2 0 0 -108 0 +P 175 -211 -1.7560637096079756e-01 -5.6685470235918856e-01 2.1835043271014025e+00 2.2670096564592077e+00 1 0 0 0 0 +P 176 -2112 -1.9019072817495811e-01 1.9359363989648683e-02 1.6880525050363864e+00 1.9413552850309042e+00 1 0 0 0 0 +P 177 223 2.4540057371541862e-01 -2.8376756848088225e-01 2.3218440550203154e+00 2.4773736223134661e+00 2 0 0 -109 0 +P 178 3212 8.6531980859782553e-01 -4.4081003261827684e-01 1.9558781200763713e+00 2.4881170750393125e+00 2 0 0 -110 0 +P 179 321 -5.3790313905821097e-01 2.2848304826566801e-01 6.7526821892341016e-01 1.0203785659457194e+00 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 0 0 0 0 +P 181 111 4.5572139817173168e-01 -1.9605261286710240e+00 8.0168967910902253e+00 8.2668130771988633e+00 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 0 0 0 0 +P 183 111 -1.7253765650383687e-01 -9.8623454845585490e-01 3.8611934028869754e+00 3.9911730008078652e+00 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 0 0 0 0 +P 185 211 -3.7700741046237424e-01 -6.0130878108935260e-01 2.2322285260513164e+00 2.3464933017539047e+00 1 0 0 0 0 +P 186 111 -1.0933571600133193e-01 -4.0829396875412233e-02 6.6468542013166909e-01 6.8822063800669864e-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 0 0 0 0 +P 188 211 8.5502102732195953e-02 -1.0434887961818418e+00 3.1241617499531409e+00 3.2978850650225713e+00 1 0 0 0 0 +P 189 111 2.0070706376734491e-02 -7.0135766106683461e-01 3.3675483594623192e+00 3.4425146267966618e+00 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 0 0 0 0 +P 191 -211 -1.0819266888464543e-01 -2.5677967550644770e-01 1.4308860604703502e+00 1.4644303186911753e+00 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 0 0 0 0 +P 193 -211 -1.8721057036304636e-01 -4.5597688585249807e-01 -8.2213318313620309e-01 9.6868233895383105e-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 1 0 0 0 0 +P 195 22 1.7737180278809139e-01 -1.7465849917339041e-01 -1.1766695636128137e+00 1.2027126047774541e+00 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 0 0 0 0 +P 197 211 -1.7492617419341611e-01 -3.8276425193759644e-01 -4.9597781553916187e+00 4.9795568853643175e+00 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 1 0 0 0 0 +P 199 111 1.8917548469115111e-02 2.0422630417328605e-01 -1.7583218167193181e+02 1.7583235310194934e+02 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 1 0 0 0 0 +P 201 22 9.9196037593150224e-02 -8.2885750223403894e-03 -5.8097680311353236e+02 5.8097681164102789e+02 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 2 0 0 -116 0 +P 203 211 2.8598252516876038e-01 -1.7893990607076177e-01 -2.2708235927663534e+02 2.2708265274987977e+02 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 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 0 0 0 0 +P 206 111 -2.2653332810387683e-01 -2.8113619229296893e-01 -1.9147601799003647e+02 1.9147640596122679e+02 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 0 0 0 0 +P 208 -211 -6.5502456608810988e-02 -1.0670875197924584e-01 -3.2314799704027415e+01 3.2315343677978753e+01 1 0 0 0 0 +P 209 111 -3.8422305313766852e-01 1.5028302730875231e-01 -4.5360292923159719e+01 4.5362369933879265e+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 0 0 0 0 +P 211 111 -3.2681884277691242e-01 4.3998200609129667e-01 -1.3698938528391123e+01 1.3710562757477057e+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 2 0 0 -120 0 +P 213 111 -7.8383943780866334e-03 -2.5856424870530047e-02 -1.3381901875049935e+00 1.3452518624659702e+00 2 0 0 -121 0 +P 214 221 6.4900290020672255e-02 -4.4057740462636476e-02 -2.0562824278408782e+00 2.1293548454136566e+00 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 0 0 0 0 +P 216 111 8.7518585113978108e-03 7.5995291486977395e-02 -3.8164316030992712e-01 4.1197449140322134e-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 1 0 0 0 0 +P 218 22 3.2218662320975935e-02 -1.0644037587932491e-01 -2.7370684788599875e-01 2.9543702272865918e-01 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 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 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 0 0 0 0 +P 222 211 -6.8179243585667487e-02 -8.9502122733327735e-02 -3.5872734119120031e-01 4.0102883867347155e-01 1 0 0 0 0 +P 223 111 9.6442464484397972e-02 -1.3582615380310958e-01 -7.6925620551999541e-01 7.9857661069166797e-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 2 0 0 -126 0 +P 225 111 -1.7096717800365663e-02 2.3430492041171140e-02 -2.9482920802539647e-01 3.2555360237865472e-01 2 0 0 -127 0 +P 226 111 -1.2923175399401406e-03 -3.4357452815580718e-02 -7.2489645177744166e-01 7.3815755150789031e-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 0 0 0 0 +P 228 211 -1.8340879492189527e-01 -2.1217788017682243e-01 -4.4027072040772847e-01 5.4034834231204232e-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 0 0 0 0 +P 230 111 4.8683959823501871e-01 1.6019262842131735e-01 -9.3312701072855297e-01 1.0731356350254004e+00 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 0 0 0 0 +P 232 111 1.5134720443552790e-01 2.3316725891878089e-02 -1.0875069644217970e-01 2.3129193754522784e-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 0 0 0 0 +P 234 111 -1.0701046239974184e-01 4.0837590445731536e-01 5.4634206967446686e-01 7.0351359325923257e-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 2 0 0 -132 0 +P 236 211 -1.0332680675003121e-01 3.3144169812122276e-01 5.1385596659843058e-01 6.3565538427314960e-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 1 0 0 0 0 +P 238 111 1.0752995164331018e+00 2.8906487567215131e+00 7.7248778457409824e+00 8.3188987622639523e+00 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 2 0 0 -134 0 +P 240 111 -3.1779121290212139e-02 5.5540485052736488e-01 1.4046209535474936e+00 1.5167940150475190e+00 2 0 0 -135 0 +P 241 111 1.9411932483124106e-01 5.9987065342701418e-01 1.9607331550552445e+00 2.0640303338005435e+00 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 1 0 0 0 0 +P 243 22 7.0460546608299382e-02 1.3625766240761386e-01 3.1360978691828562e-01 3.4911593725302786e-01 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 1 0 0 0 0 +P 245 22 9.9865851746466866e-02 1.1714392193129286e+00 4.2318961831067856e+00 4.3921735322597746e+00 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 0 0 0 0 +P 247 211 2.9246050150768399e-01 2.7688149449938243e-01 1.5693519673596861e+00 1.6262047501142205e+00 1 0 0 0 0 +P 248 111 2.1938108245656321e-01 2.7911573154785918e-01 2.5748643801448514e+00 2.6027254614107957e+00 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 1 0 0 0 0 +P 250 22 9.4972394969514082e-02 -4.2637195208601375e-01 1.4030456822520732e-01 4.5880079467754337e-01 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 0 0 0 0 +P 252 211 -2.9299877647187089e-01 3.1963917806909597e-01 2.6394989349136422e-01 5.2646635062917657e-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 1 0 0 0 0 +P 254 22 -1.3676863020353203e-01 -2.4945236956791661e-01 1.6660942228000178e-01 3.2968294236019380e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 256 -211 -2.4924753882325268e-01 -5.7307336326951931e-02 -8.0502092127927884e+00 8.0554799125216761e+00 1 0 0 0 0 +P 255 2112 -1.9138160467729162e-01 3.0369538458739065e-01 -1.5191645722299414e+01 1.5224905561020293e+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 1 0 0 0 0 +P 258 211 3.7175815217142839e-02 2.6740268932865324e-01 -1.4844147785192647e+00 1.5152073320452397e+00 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 1 0 0 0 0 +P 260 -211 -3.3996362219612538e-03 -2.4490681945780598e-03 -9.8059964122678123e-01 9.9049129059046015e-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 2 0 0 -138 0 +P 262 211 -3.2410970022291918e-01 -3.5537657560602026e-01 -7.5887342744711495e+00 7.6052420922480319e+00 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 1 0 0 0 0 +P 264 321 5.6285097287058927e-01 4.6545950697236843e-01 -3.1778246174274649e+00 3.2978271679122821e+00 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 2 0 0 -139 0 +P 266 -211 -4.9735599405596756e-02 -2.6708316642768254e-01 -2.9208743241984952e-01 4.2261318095261929e-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 0 0 0 0 +P 268 111 4.2313793796367721e-01 9.7966164171689893e-02 5.4268928151349305e-01 7.0807791981977419e-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 0 0 0 0 +P 270 211 -1.4271113813788025e-02 -1.6982856077004688e-02 -5.1470645008149614e-03 1.4141555523701732e-01 1 0 0 0 0 +P 271 111 1.3605163797175168e-01 2.3453626189350621e-01 -3.3108250223819413e-01 4.4872322207133397e-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 0 0 0 0 +P 273 111 1.6228776433218009e-01 -4.0425537266713100e-02 -2.6536335188142224e-01 3.4148038221394672e-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 0 0 0 0 +P 275 211 -2.8494447274304274e-01 9.9144559728567477e-02 2.3859558054260877e+00 2.4090014293513886e+00 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 2 0 0 -143 0 +P 277 111 -1.4355787675334006e-01 2.4399905742791486e-01 2.9250863072903583e+00 2.9418521223034277e+00 2 0 0 -144 0 +P 278 111 -4.9167220466248530e-02 3.5605701780104602e-02 6.1268254615206985e-01 6.3030523108015979e-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 1 0 0 0 0 +P 280 22 -2.0331319966104358e-01 5.2854530978175718e-01 5.8136645928885947e+01 5.8139403989568891e+01 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 1 0 0 0 0 +P 282 111 -8.5724359704836925e-02 5.6304652189988848e-02 7.7384665104011416e+00 7.7403231465298052e+00 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 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 1 0 0 0 0 +P 285 -211 -3.1422244950363426e-01 -4.4329822380123687e-02 3.7312147425334075e+02 3.7312163530094614e+02 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 2 0 0 -148 0 +P 287 211 -3.9039541146372155e-02 2.1107166763967344e-01 4.2163294363264680e+02 4.2163302137220023e+02 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 0 0 0 0 +P 289 111 3.1720852422812107e-01 -3.0976971985094492e-01 5.7528165457763157e+02 5.7528184126713484e+02 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 0 0 0 0 +P 291 211 -4.3236004417965990e-01 8.1308540264093787e-01 -8.7028198251002880e+02 8.7028248092469994e+02 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 2 0 0 -150 0 +P 293 111 -1.4776451472050109e+00 -1.0577813465072390e+00 2.2908056187391484e+01 2.2980417629868313e+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 0 0 0 0 +P 295 211 -4.0033937843749587e+00 -2.6524733090065382e+00 5.2159779948282527e+01 5.2380577511954947e+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 1 0 0 0 0 +P 297 22 -2.3881849645594963e-02 -7.2540252771141386e-02 1.9413905114422942e+00 1.9428920579725391e+00 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 0 0 0 0 +P 299 111 -1.4863948599066970e+00 -2.4605035091902030e+00 2.7696156184156585e+01 2.7845264124728452e+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 0 0 0 0 +P 301 -211 -6.6001250531248001e-01 -8.3817907178677653e-02 3.8600596933206637e+00 3.9194620255376229e+00 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 2 0 0 -153 0 +P 303 111 2.6736441445761979e-02 -6.4664089522388349e-02 2.1034626839622458e-01 2.5954081529339207e-01 2 0 0 -154 0 +P 304 221 -1.1025089952773082e-01 9.3855832111780987e-03 2.3898831919172103e+00 2.4542792268866394e+00 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 2 0 0 -156 0 +P 306 211 3.3032821126792672e-01 6.6929463924130272e-01 6.4845571157288475e+00 6.5288615250536779e+00 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 2 0 0 -157 0 +P 308 -211 5.8970851337611008e-01 1.9279465025540885e+00 1.8876557468741275e+01 1.8984431397938966e+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 0 0 0 0 +P 310 211 -1.1698407055756944e-01 6.6383270616705115e-01 9.5858997540570403e+00 9.6105833857405401e+00 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 0 0 0 0 +P 312 111 3.4083938668539631e+00 7.3637743950997869e+00 8.1016841670164283e+01 8.1422289183628351e+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 1 0 0 0 0 +P 314 -211 1.4809390437974521e+00 3.6232085950452890e+00 3.9666759311137888e+01 3.9859654978528077e+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 2 0 0 -159 0 +P 316 211 1.0392575238106148e+00 7.2574223863792198e-01 -2.9001820808281353e+00 3.1681688535488077e+00 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 2 0 0 -160 0 +P 318 211 -4.9457973416370704e-01 -2.4449879686077405e-01 -2.6488057631132196e+00 2.7092509168981773e+00 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 0 0 0 0 +P 320 111 -2.6308556172843650e-01 -1.0479134122864993e-01 1.3534295300588093e+00 1.3893114594005462e+00 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 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 1 0 0 0 0 +P 323 211 2.5061687005741484e-01 4.1111105095076861e-01 1.4668363167462029e+00 1.5501321481721444e+00 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 1 0 0 0 0 +P 325 22 1.4114779065072622e-01 2.1691933131626764e-01 1.2899176186669112e-01 2.8916356916760982e-01 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 0 0 0 0 +P 327 111 4.1393041000816050e-01 1.7855384603152144e-01 6.8502876375156219e-01 8.3108595694378429e-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 0 0 0 0 +P 329 211 -7.2592869091610646e-01 -5.6546117318346967e-01 -8.6889461933755874e-01 1.2732542743250301e+00 1 0 0 0 0 +P 330 111 7.5195477124670789e-03 -3.7276307923386154e-02 -2.3492322655699543e-01 2.7359566792284662e-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 0 0 0 0 +P 332 111 -4.0237996847179375e-01 -1.8278784340935744e-01 -9.6114577330509182e-02 4.7199432952211190e-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 0 0 0 0 +P 334 111 -3.3335360091003480e-01 5.6583731288352612e-01 2.2813085968389601e+00 2.3777899407437744e+00 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 1 0 0 0 0 +P 336 22 -7.4857902311984215e-03 2.8558964801153959e-03 7.8874014455751498e-02 7.9279905123913585e-02 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 0 0 0 0 +P 338 111 6.7289261809585277e-02 1.3713406947866838e-01 4.0726953178542686e+00 4.0777935639557263e+00 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 1 0 0 0 0 +P 340 211 -5.6758936924963282e-02 8.2014820752740830e-02 1.0325214502289962e+01 1.0326639449062938e+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 2 0 0 -167 0 +P 342 111 -6.1144406211079527e-02 -6.4714570154417439e-01 4.3086981861879245e+01 4.3092096279523801e+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 2 0 0 -169 0 +P 344 111 4.3323721233431339e-02 -1.5003883936399090e-01 1.1853284016418417e+00 1.2031673276307036e+00 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 0 0 0 0 +P 346 -211 1.5951683483820989e-01 -1.9899631133411760e-01 1.3219014899412011e+01 1.3222211609571907e+01 1 0 0 0 0 +P 347 111 -7.4674051730606081e-02 -1.1330685333969616e-01 1.8391615088576583e+00 1.8490941871844135e+00 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 0 0 0 0 +P 349 -211 1.2820088924631756e-01 5.1534025291000973e-01 1.0318751511090531e+00 1.1688700341138147e+00 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 1 0 0 0 0 +P 351 22 1.4033350106869832e-01 5.4163779105943517e-03 4.8397333694826589e-01 5.0393751552023625e-01 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 1 0 0 0 0 +P 353 111 1.2185508809238729e-01 1.3773583207185866e-01 1.0497232649974710e+00 1.0742245367740775e+00 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 1 0 0 0 0 +P 355 111 -2.8752136302370007e-01 3.1395818652041142e-02 2.9221390377369709e+00 2.9395187340600821e+00 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 1 0 0 0 0 +P 357 111 1.6254024186608135e-01 -5.4323460646157928e-01 1.7376202728837526e+00 1.8327757585203810e+00 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 2 0 0 -175 0 +P 359 22 4.2440133887952043e-02 4.8963717863264443e-02 5.5112841739653869e-02 8.5064892617582183e-02 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 1 0 0 0 0 +P 361 22 6.5790980468783872e-02 -1.8567141221184214e-01 6.5654331790388576e-01 6.8545711368985129e-01 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 1 0 0 0 0 +P 363 22 -1.4452078978212046e-01 -9.5719552670846475e-01 3.7482280417359468e+00 3.8712172488618730e+00 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 1 0 0 0 0 +P 365 22 -1.6658093635336459e-02 -7.6592884067167299e-02 2.6284154819225458e-01 2.7428022427690846e-01 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 1 0 0 0 0 +P 367 22 2.5362907683383399e-02 -5.1640486805460895e-01 2.1691688376471201e+00 2.2299351360646953e+00 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 1 0 0 0 0 +P 369 22 6.1102140270908939e-03 3.5501549883767261e-02 -8.8595935336439027e+01 8.8595942660108562e+01 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 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 1 0 0 0 0 +P 372 22 -2.1288484139337188e-01 -2.5693504327423017e-01 -1.4674830135649992e+02 1.4674868069795471e+02 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 1 0 0 0 0 +P 374 22 -1.7782037660169078e-01 5.8755791844814761e-02 -1.3819694063004073e+01 1.3820962930434334e+01 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 1 0 0 0 0 +P 376 22 -1.8149523905037179e-01 2.5874855200269725e-01 -9.4444486025079506e+00 9.4497354852067552e+00 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 1 0 0 0 0 +P 378 22 -2.7515104904687560e-02 1.7605450827771700e-02 -1.4770409307338708e-01 1.5127303793933949e-01 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 1 0 0 0 0 +P 380 22 2.2770067252179792e-02 -7.2973838334351560e-02 -5.8580783350209997e-01 5.9077447036609565e-01 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 2 0 0 -176 0 +P 382 111 9.4051595670043689e-02 -1.5755662152753916e-01 -9.1611447140274083e-01 9.4401012534229567e-01 2 0 0 -177 0 +P 383 111 -5.8991234477435692e-02 5.1879693076710056e-03 -4.7175090929207414e-01 4.9424224990242172e-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 1 0 0 0 0 +P 385 22 -4.7151088874938803e-02 -5.2992830333063673e-03 -6.6098201979547425e-02 8.1365102394629227e-02 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 0 0 0 0 +P 387 -211 4.1789588401695882e-01 -8.7282582441069474e-03 -6.3432673863972289e-01 7.7237513464870078e-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 1 0 0 0 0 +P 389 22 1.2307273012265166e-01 -7.0007383103435336e-02 -4.6127175879284371e-01 4.8251379881686041e-01 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 1 0 0 0 0 +P 391 22 6.2267559322930169e-02 -3.7322393019573769e-02 -4.0553598837003274e-01 4.1198258194734583e-01 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 1 0 0 0 0 +P 393 22 -1.4702427472264043e-02 5.3561241855756364e-02 -2.8960087494286813e-01 2.9487901717548981e-01 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 1 0 0 0 0 +P 395 22 -3.1271496752553057e-02 1.8232125983285968e-02 -5.6995088522171715e-02 6.7518568132518497e-02 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 1 0 0 0 0 +P 397 22 1.1406207269271662e-02 3.5056505732190810e-02 -4.6625855552734644e-02 5.9439301513772705e-02 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 1 0 0 0 0 +P 399 22 1.2007827458552617e-01 3.9256837468990093e-02 -1.3691268131352266e-01 1.8629270951908428e-01 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 1 0 0 0 0 +P 401 22 -1.1681959734655756e-01 3.7999883038497267e-01 5.4346712538239117e-01 6.7335165091470495e-01 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 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 1 0 0 0 0 +P 404 22 1.0510982471609078e+00 2.8246364319896307e+00 7.4869221627889990e+00 8.0707733191912254e+00 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 1 0 0 0 0 +P 406 22 2.1601819009504697e-02 5.5695914997728446e-01 1.8289153502253255e+00 1.9119627328004498e+00 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 1 0 0 0 0 +P 408 22 1.2964127804323806e-02 3.5824089844551110e-01 7.4272826674382830e-01 8.2471200315568660e-01 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 1 0 0 0 0 +P 410 22 9.8717857676942675e-02 4.5785711823261399e-01 1.5460900319572877e+00 1.6154791063515139e+00 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 1 0 0 0 0 +P 412 22 -5.3958177061138798e-03 7.4258186776740800e-02 5.9475707649892273e-01 5.9939917684096833e-01 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 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 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 1 0 0 0 0 +P 416 22 2.8685562368232276e-01 1.2881424518545415e-01 3.5808914774329187e-01 4.7655754776562892e-01 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 1 0 0 0 0 +P 418 22 -1.5653415608630622e-02 8.6652869458158130e-02 -1.2713140471466566e-01 1.5464845059124649e-01 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 1 0 0 0 0 +P 420 22 -1.4239926135551901e-02 1.0264865654100702e-02 1.3965196634240379e-03 1.7609464228449393e-02 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 1 0 0 0 0 +P 422 22 -4.9596190139431888e-02 4.1468091973747144e-02 5.3909006044410879e-01 5.4295255593644887e-01 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 1 0 0 0 0 +P 424 22 -1.2734670917005905e-01 8.3708998510534635e-02 1.3800686115077676e+00 1.3884573285618313e+00 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 1 0 0 0 0 +P 426 22 -4.8718143319626740e-02 3.3080446741616781e-02 8.9616398642579656e-02 1.0723279512724822e-01 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 1 0 0 0 0 +P 428 22 -5.9337350640484919e-02 -2.7700212109627198e-02 1.7766079519621116e+00 1.7778143991730293e+00 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 0 0 0 0 +P 430 -211 1.2468457532958163e-01 -1.3551844351094258e-01 2.2427512581060007e+00 2.2546229135917155e+00 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 1 0 0 0 0 +P 432 -211 -7.5635894950737050e-03 -1.2815751709391118e-01 2.7593825627613575e+02 2.7593832143806401e+02 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 1 0 0 0 0 +P 434 22 2.6408053243379820e-01 -3.0654209014917899e-01 5.3221760294927924e+02 5.3221775674591811e+02 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 1 0 0 0 0 +P 436 12 -4.2238184423944363e+00 -2.9424417727589072e+00 5.8151692879242468e+01 5.8379088640900576e+01 1 0 0 0 0 +P 437 -323 -9.9910486473977098e+00 -7.9642417228415239e+00 1.6194109235634318e+02 1.6244679657182928e+02 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 1 0 0 0 0 +P 439 22 -1.0914836094260980e+00 -7.3693013073646418e-01 1.5957479430905517e+01 1.6011731707563854e+01 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 1 0 0 0 0 +P 441 22 -4.4284830510871187e-01 -6.6089762381432915e-01 8.1294326020695031e+00 8.1682663229164856e+00 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 1 0 0 0 0 +P 443 22 -2.0504908268697278e-02 4.9521802362317624e-02 7.6612421699404609e-01 7.6799685939270645e-01 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 1 0 0 0 0 +P 445 22 -1.7639118184421713e-02 1.6477124758334672e-02 1.4328248374937363e-01 1.4530142559526124e-01 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 0 0 0 0 +P 447 211 -3.9017277570356779e-02 6.7873350480066846e-02 9.7799031246865564e-01 9.9099645601633257e-01 1 0 0 0 0 +P 448 111 -5.9149728770745383e-02 -5.5443048548393381e-02 1.1932323674186009e+00 1.2035762149117901e+00 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 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 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 1 0 0 0 0 +P 452 22 2.3775344209412506e+00 4.9977773056955250e+00 5.5486707115077145e+01 5.5762040084581187e+01 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 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 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 1 0 0 0 0 +P 456 22 -3.0543733551068413e-02 2.0124412778677454e-02 3.4396625036352763e-01 3.4590561290339050e-01 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 1 0 0 0 0 +P 458 22 1.7104548388578150e-01 8.7885409177554094e-02 4.1149065068348356e-01 4.5420805618564708e-01 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 1 0 0 0 0 +P 460 22 1.1108271846650846e-02 4.9307231316853314e-02 -1.1521037306587376e-01 1.2580948623029431e-01 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 1 0 0 0 0 +P 462 22 7.5508652443164728e-03 -6.0164162191805306e-03 9.1819024799394983e-03 1.3323669284824168e-02 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 1 0 0 0 0 +P 464 22 -2.3331628256149614e-01 3.1300633656152188e-01 1.1577759352332588e+00 1.2218242797723524e+00 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 1 0 0 0 0 +P 466 22 5.8968862511553477e-02 6.3802825188019703e-03 2.0509055145574835e+00 2.0517630137014415e+00 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 1 0 0 0 0 +P 468 111 -7.8957076142989746e-02 -4.4096456938595763e-01 3.0269687171254702e+01 3.0273302842890274e+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 1 0 0 0 0 +P 470 22 -1.1716427381005567e-03 -5.4781226085292756e-01 3.5359059730487374e+01 3.5363303079181698e+01 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 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 1 0 0 0 0 +P 473 22 4.6181601221853615e-02 -5.4388057252354009e-02 1.8515854820070704e-01 1.9843006081461845e-01 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 1 0 0 0 0 +P 475 22 -1.8590552440473678e-02 -9.5298229235763990e-02 5.4420856140060736e-01 5.5280224261234023e-01 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 1 0 0 0 0 +P 477 22 3.6452396204277100e-02 1.3679788521451017e-01 6.0140305570375219e-01 6.1784146348234537e-01 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 1 0 0 0 0 +P 479 22 -2.9115390324447706e-02 7.9761080719343742e-03 7.9106579722816081e-02 8.4670982096361508e-02 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 1 0 0 0 0 +P 481 22 8.2557656234742274e-02 -2.4267906232538228e-01 9.9862063954256941e-01 1.0309956719669151e+00 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 1 0 0 0 0 +P 483 111 1.8052829953764615e-01 5.2050482907261431e-03 2.3403848050717271e-01 3.2497872271853295e-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 1 0 0 0 0 +P 485 22 -3.2565092580075930e-03 1.3040878835159950e-02 1.6009467926091832e-03 1.3536336431013284e-02 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 1 0 0 0 0 +P 487 22 3.2492972877430783e-02 8.7099336464362964e-03 -3.2884829478774430e-01 3.3056445243756311e-01 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 1 0 0 0 0 +P 489 22 -8.8565127466559770e-02 -1.3444885173545086e-02 -4.3251671379206064e-01 4.4169588457442188e-01 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 0 0 0 0 +P 491 211 2.9572692875989670e-01 3.1057457774407260e-01 1.5547461663221218e+00 1.6188348931648355e+00 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 2 0 0 -186 0 +P 493 -211 -4.6399972933638240e+00 -3.7103397152801953e+00 7.1812893272105555e+01 7.2058360483575626e+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 1 0 0 0 0 +P 495 22 -7.8520173533618898e-02 -6.0711804264671466e-02 1.1633549723925771e+00 1.1675813173476850e+00 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 0 0 0 0 +P 497 211 1.0112775431494231e-01 8.7127531238373843e-02 -4.2340636012195859e-01 4.6537163652741326e-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 1 0 0 0 0 +P 499 22 -6.2504364350997391e-02 -8.0774054803624262e-02 4.9964573927914531e+00 4.9975011477210005e+00 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 2 0 0 -187 0 +P 501 111 -6.2447227091235033e-04 1.5224269557071959e-01 1.1632825363342103e+01 1.1634604581279744e+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 1 0 0 0 0 +P 503 22 4.2036692998391960e-02 -4.3780713930145439e-02 1.3441800967046419e-01 1.4748571386491399e-01 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 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 1 0 0 0 0 +P 506 22 8.5557354024655349e-02 1.9217988164873117e-02 2.4045564566629887e+00 2.4061548464669662e+00 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 1 0 0 0 0 +P 508 22 5.2804838205574023e-02 4.9741384257874215e-02 6.8436871652228444e+00 6.8440716369484100e+00 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 0 0 0 0 +P 510 211 -3.6143240034591551e+00 -2.7080378417902127e+00 6.1280058519877166e+01 6.1446414532818906e+01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 21 3.2992939111429004e-01 -7.1181912190923491e-01 9.0096214824555136e+02 9.0096248984688827e+02 3 0 0 -3 0 +P 14 2 -5.5365822308336554e-01 3.4509673924388229e-01 2.5091064739376443e+00 2.6134545117488437e+00 2 0 0 -9 0 +P 29 2101 2.2372883196907553e-01 3.6672238266535262e-01 5.3966101099142470e+03 5.3966101581077546e+03 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 3 0 0 -2 0 +P 4 21 -4.4604738137447780e-01 -4.4508489499117149e-01 -3.3991077613470765e+01 3.3996917744924559e+01 3 0 0 -4 0 +P 16 2203 2.3781727192142083e-01 1.3771298185638053e-01 -6.2853045277091305e+03 6.2853045810455988e+03 2 0 0 -11 0 +P 37 1 2.0823010945305698e-01 3.0737191313479095e-01 -7.4415207898946619e+01 7.4416865722193066e+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 3 0 0 -5 0 +P 13 -1 1.2673117148687165e+00 -1.3842638091505211e+00 7.8698417845006162e+01 7.8721484593363400e+01 2 0 0 -9 0 +P 30 21 -4.6149507887473545e-01 -2.2715799945074164e-01 5.7059132312250952e+01 5.7061450723684736e+01 2 0 0 -25 0 +P 31 21 -4.0362956554163681e-01 1.1673687347620827e+00 1.4998499597455123e+02 1.4999008195235854e+02 2 0 0 -25 0 +P 32 21 2.5074276787416866e-01 -1.3942091873039719e+00 1.0761474191487194e+02 1.0762406500684733e+02 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 3 0 0 -5 0 +P 15 2 -4.1159171909325689e+00 -3.0147215458824776e+00 -2.9604825409076863e+01 3.0043034264596933e+01 2 0 0 -11 0 +P 35 21 -1.6212560032512757e-01 -8.5363446188281877e-01 8.8578769426193138e-01 1.2408047163436402e+00 2 0 0 -25 0 +P 36 21 1.6433585287674621e-01 -4.2451452632135017e-01 -8.6248126834592029e-02 4.6331155282492553e-01 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 3 0 0 -6 0 +P 8 22 4.2504512277975630e+00 1.2725936181188806e+00 1.1349349137188561e+01 1.2185793203339950e+01 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 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 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 1 0 0 0 0 +P 12 -12 3.0654525901059060e+01 -2.3208695038844859e+01 2.0588173180242171e+02 2.0944123513193171e+02 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 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 2 0 0 -35 0 +P 48 213 7.4830653663342495e-01 -1.7382372879353764e-02 4.3774839145295914e+01 4.3790551134415779e+01 2 0 0 -36 0 +P 49 -213 -2.9117511823875525e-01 -4.3939165795158736e-01 1.4260854072619713e+01 1.4288861360745033e+01 2 0 0 -37 0 +P 50 213 -2.1069355383734140e-01 -2.7656697558868826e-01 1.5627412790254821e+01 1.5654259573374869e+01 2 0 0 -38 0 +P 51 111 5.9709496225677960e-01 -5.4692659855521464e-02 5.0127030355570623e+00 5.0502400937061882e+00 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 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 2 0 0 -40 0 +P 54 221 -5.1630481154154895e-01 1.5967696321760094e-02 -2.0035205258790207e+01 2.0049338564902872e+01 2 0 0 -41 0 +P 55 211 -8.7519077897546693e-01 -6.7220077889196328e-01 -6.5156567288365199e+00 6.6099224790975617e+00 1 0 0 0 0 +P 56 111 1.9202974635290213e-01 2.5211810958452568e-01 -9.4217139466307191e+00 9.4280089232669173e+00 2 0 0 -42 0 +P 57 -213 9.4326428486984373e-02 -4.8155754348202640e-01 -4.3195836080971688e+01 4.3206533032295752e+01 2 0 0 -43 0 +P 58 321 -4.2092082351619076e-01 7.6023322511133951e-01 -5.4832750693731569e+01 5.4841857358199974e+01 1 0 0 0 0 +P 59 -323 5.3330045068290033e-01 -4.0351878893496296e-01 -6.3591499500441905e+01 6.3601150529299844e+01 2 0 0 -44 0 +P 60 111 -4.7209376929507818e-01 -5.2551861933480060e-01 -3.3238644448347941e+01 3.3246424570325850e+01 2 0 0 -45 0 +P 61 2224 6.8188613475259922e-03 3.7782727808420416e-02 -9.1247280998350175e+02 9.1247367669780419e+02 2 0 0 -46 0 +P 62 111 2.2414808927512009e-01 4.5621474029144382e-01 -5.1490251726043825e+03 5.1490251994632381e+03 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 2 0 0 -13 0 +P 18 -2 3.6919233007313528e+00 -8.1942682496522661e+00 1.0292203617146285e+02 1.0331370605822661e+02 2 0 0 -13 0 +P 63 92 0 0 3.9857967694938566e+02 3.9910791979502875e+02 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 2 0 0 -48 0 +P 65 -213 -1.1443922070689834e+00 2.4049085538196557e+00 9.6289570725061836e+01 9.6329373550777277e+01 2 0 0 -49 0 +P 66 213 -3.0046508081645801e-01 1.7803118867427987e+00 5.7444662891378144e+01 5.7478363119977544e+01 2 0 0 -50 0 +P 67 -213 -2.5016439277491315e-01 3.1350862441051930e-01 4.0612390002610852e+01 4.0622507641923903e+01 2 0 0 -51 0 +P 68 213 3.3250187937355535e-01 -8.3151583915031479e-01 6.8897046607273635e+00 6.9760920973408034e+00 2 0 0 -52 0 +P 69 223 1.8182876739207015e+00 -4.9227019655990896e+00 6.7504589614192298e+01 6.7712745517919686e+01 2 0 0 -53 0 +P 70 -211 1.1277768868918030e+00 -1.7836075465836119e+00 2.4005720626494561e+01 2.4098697872894373e+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 2 0 0 -15 0 +P 20 -1 -4.0721905699000063e+00 5.2481001487683923e+00 3.4479876218613377e+01 3.5113916831649327e+01 2 0 0 -15 0 +P 71 92 0 0 8.5859472182720751e+01 8.6921138071974539e+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 0 0 0 0 +P 73 211 2.6665249123579446e+00 -2.9349752846126558e+00 3.2950695340201079e+01 3.3188736616767464e+01 1 0 0 0 0 +P 74 111 3.6072230697643126e-01 -6.2146570580823457e-01 3.1338517615404928e+00 3.2180097373930638e+00 2 0 0 -54 0 +P 75 113 -4.4948408298591003e-01 -3.3788088157719054e-03 8.4523847160801058e+00 8.4982551917835956e+00 2 0 0 -55 0 +P 76 -213 -2.7928243095832456e-01 3.3421120888543193e-01 4.9816177588983468e+00 5.0588216417181506e+00 2 0 0 -56 0 +P 77 213 -3.0578817058647956e-01 7.0283103003245251e-01 4.1808064202695698e+00 4.3325688354318341e+00 2 0 0 -57 0 +P 78 -211 -3.2872639824348276e-01 9.2343958879558319e-01 4.7634610442269851e+00 4.8652690186489309e+00 1 0 0 0 0 +P 79 213 -2.0811691139406925e+00 2.5716900482525915e+00 1.9836447976676894e+01 2.0124312392487205e+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 2 0 0 -17 0 +P 22 -3 1.8652550805155896e+00 4.6351934290813315e+00 -3.8523971426252422e+02 3.8527211375820042e+02 2 0 0 -17 0 +P 80 92 0 0 -3.8774710911047379e+02 3.9086239313976193e+02 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 2 0 0 -59 0 +P 82 -211 -4.2766056399724119e-02 2.0905450136158240e-02 -1.4002124745972655e-01 2.0335119391229980e-01 1 0 0 0 0 +P 83 323 -4.4702319815240105e-01 -4.8462854486530810e-01 -3.3690973393284223e+00 3.5379978508332535e+00 2 0 0 -60 0 +P 84 333 2.9235882051604356e-01 4.1909099446358361e-01 -1.1614528740318077e+01 1.1670274542743341e+01 2 0 0 -61 0 +P 85 -313 -1.9559777497210154e-01 3.2725284319419412e-01 -4.0791168457425862e+01 4.0802601861674923e+01 2 0 0 -62 0 +P 86 -213 4.2480750680325324e-01 4.0902356994726946e-01 -2.7722906134034435e+01 2.7734649552550263e+01 2 0 0 -63 0 +P 87 113 3.6771897497445705e-01 4.4681480751080627e-01 -2.0704917165556715e+01 2.0730406353871473e+01 2 0 0 -64 0 +P 88 211 -2.8978227338924745e-01 -7.0628302343640245e-02 -1.4183290555585218e+01 1.4187112916027539e+01 1 0 0 0 0 +P 89 -211 -1.9540105972758251e-02 2.5692526030371343e-01 -1.4545461008205347e+01 1.4548412563961943e+01 1 0 0 0 0 +P 90 323 1.5332178619775767e+00 2.8706931692121325e+00 -2.5222669433968153e+02 2.5224968746070860e+02 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 2 0 0 -19 0 +P 24 -3 -1.3025773740614568e-01 4.3032393523974077e+00 -3.3157804489828713e+01 3.3436130676079749e+01 2 0 0 -19 0 +P 91 92 0 0 -3.0626155581135460e+01 3.8430535765683871e+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 2 0 0 -66 0 +P 93 -213 -3.7639146848800681e-01 -1.5406289235386026e+00 1.6502657513639488e-01 1.7867414552349492e+00 2 0 0 -67 0 +P 94 2114 1.6153252959411044e-01 -1.2772848818918856e+00 5.2372112884638644e-01 1.9163288714391824e+00 2 0 0 -68 0 +P 95 211 2.5979025784637988e-01 2.2354774310929568e-01 -6.7894811146840361e-01 7.7324956804880274e-01 1 0 0 0 0 +P 96 -2214 -1.8636538951424170e-01 2.9256938238575925e-01 -4.5902650063153603e+00 4.7327213645256432e+00 2 0 0 -69 0 +P 97 111 2.4447109857296742e-01 3.3083128753819330e-01 -2.0318743236789594e+00 2.0774860592739199e+00 2 0 0 -70 0 +P 98 213 -2.7401510515621635e-01 2.8125233782844189e-01 -1.7321877321484938e+00 1.8713869334189455e+00 2 0 0 -71 0 +P 99 111 -1.0109282624214720e-01 5.2155147439574179e-01 -1.7600692215106526e+00 1.8434475758402007e+00 2 0 0 -72 0 +P 100 313 4.3158615070028994e-02 2.5099903215472157e+00 -2.1510162712478085e+01 2.1674774281710462e+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 2 0 0 -21 0 +P 26 -2 2.8388113750031851e+00 -2.9291876839233497e+00 6.3131813241358550e+01 6.3263455751739258e+01 2 0 0 -21 0 +P 101 92 0 0 6.0314919158080976e+01 6.8220660890413654e+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 2 0 0 -74 0 +P 103 221 -8.9982101828616334e-01 5.4142902707731055e-01 -5.3645233237309187e-01 1.3001176345700249e+00 2 0 0 -75 0 +P 104 -211 -8.6753321823725624e-03 5.6832963889609747e-02 9.7176499890667928e-02 1.7952243370663501e-01 1 0 0 0 0 +P 105 321 -4.0054756700537497e-01 4.1344381052312046e-01 1.2388557587843947e-01 7.6835065810119207e-01 1 0 0 0 0 +P 106 -313 -4.3881953299186965e-01 1.5849794511534281e-02 1.5502399495560006e+00 1.8454355154493816e+00 2 0 0 -76 0 +P 107 -213 2.6975585621736647e-01 -2.0224994353228565e-01 1.4308574448043745e-01 8.2389832737315261e-01 2 0 0 -77 0 +P 108 213 7.7555631014750070e-01 1.3582975137081782e-01 4.8071584803948841e+00 4.9465123732681642e+00 2 0 0 -78 0 +P 109 -211 1.6084505806401775e-01 -9.8786281136593837e-02 1.3415766842308592e+01 1.3417820598522365e+01 1 0 0 0 0 +P 110 211 3.3737414580549596e-01 -7.4336572542037649e-01 6.7542972105104546e+00 6.8048824022753731e+00 1 0 0 0 0 +P 111 -213 1.4425566346812861e+00 -1.5949421846047691e+00 3.5486174703439339e+01 3.5560187917541761e+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 2 0 0 -23 0 +P 28 -2 3.5408957207564704e+00 -1.3337324649314468e+00 4.7168621002604638e+00 6.0469474006441590e+00 2 0 0 -23 0 +P 112 92 0 0 1.9654114509071672e+01 2.1455980281322294e+01 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 2 0 0 -80 0 +P 114 113 -1.0902801693616622e+00 4.5065934647299072e-01 4.8491888434946748e+00 5.1024990374205057e+00 2 0 0 -81 0 +P 115 111 -3.3248940486964124e-01 2.3166493925117712e-01 5.1260100030508238e-01 6.6723102021907743e-01 2 0 0 -82 0 +P 116 213 5.4395505009151517e-02 -3.5753673771347694e-01 3.6959306688638129e+00 3.7765891594248417e+00 2 0 0 -83 0 +P 117 223 -3.6940382873256322e-01 -2.0534285256312060e-01 1.5468769853517426e+00 1.7802756873006378e+00 2 0 0 -84 0 +P 118 113 -2.1983674369034181e-01 6.1736195755313583e-01 1.8723689218941149e+00 2.0935892371951130e+00 2 0 0 -85 0 +P 119 111 1.1404511704074396e+00 -2.7154403133829735e-01 1.2971289847431351e+00 1.7536043557484422e+00 2 0 0 -86 0 +P 120 -213 9.9550812414248135e-01 -5.7305409021822129e-01 2.9002523325451683e+00 3.1958313192714209e+00 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 2 0 0 -25 0 +P 34 21 -8.8527156785984806e-01 5.7553602736705196e+00 -6.2954009301687258e+01 6.3222742464919470e+01 2 0 0 -25 0 +P 121 92 -1.8021268256845246e-01 -1.0580531443966563e+00 5.5504994238782192e+03 5.8755200809247099e+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 2 0 0 -88 0 +P 123 2212 -6.2791982027313717e-02 7.6867611752465992e-01 2.9853349842085568e+03 2.9853352312756942e+03 1 0 0 0 0 +P 124 -211 -6.3737058678301636e-02 -6.4464644421178707e-01 1.9900387741310286e+02 1.9900498068310966e+02 1 0 0 0 0 +P 125 113 1.5027328344524130e-01 2.0693100318503993e-01 1.2269984836524957e+03 1.2269987428070176e+03 2 0 0 -89 0 +P 126 113 -9.9821919675496071e-02 5.0103807635626529e-01 2.1777529106655865e+02 2.1777760470222898e+02 2 0 0 -90 0 +P 127 -313 -9.1855261829841561e-01 -4.5271496597028515e-01 1.9852981625081372e+02 1.9853426767512232e+02 2 0 0 -91 0 +P 128 323 7.1450236264555178e-01 1.5079031761695599e-01 1.0405513205706657e+02 1.0406120895549580e+02 2 0 0 -92 0 +P 129 -213 -2.6371613026223212e-01 -3.3569803118640140e-01 1.5291910085517253e+02 1.5292119444523502e+02 2 0 0 -93 0 +P 130 211 3.0711481321928247e-01 5.6434962399740579e-02 1.7469094645523576e+01 1.7472442643564186e+01 1 0 0 0 0 +P 131 -211 -1.3416783174028993e-01 4.7853828154534966e-01 4.9650636537858709e+01 4.9653320012799036e+01 1 0 0 0 0 +P 132 211 -4.4171694323995486e-01 -8.0515863604828064e-01 1.9039571188948941e+01 1.9062217739053946e+01 1 0 0 0 0 +P 133 -2114 -1.3488630166892554e-01 -2.6020823766813067e-01 1.8719458121583301e+00 2.1920492447609377e+00 2 0 0 -94 0 +P 134 221 5.9907600476643053e-01 3.1183801267853273e-01 3.6841720694354785e-01 9.4422865160420322e-01 2 0 0 -95 0 +P 135 1114 -7.9078364399711776e-02 -5.3473729042418372e-02 2.4990460379589137e+00 2.8511181245797439e+00 2 0 0 -96 0 +P 136 223 -1.3331819562169198e-01 -3.1501969795261053e-01 -4.3131521562232121e-02 8.5408332284258204e-01 2 0 0 -97 0 +P 137 211 3.0231113463725909e-02 -2.1285675831915882e-01 -2.3543486414109713e-01 3.4803919310407555e-01 1 0 0 0 0 +P 138 111 -3.6331973746602270e-02 7.4355670744629440e-02 -7.6645288247255569e-02 1.7590588022778733e-01 2 0 0 -98 0 +P 139 113 1.6627168576861587e-01 -2.5512952828724614e-03 -1.1719602585717434e-01 7.9896620060520418e-01 2 0 0 -99 0 +P 140 -213 1.8246870701846693e-01 -6.4142436952788440e-01 -2.3077172616991168e+00 2.5247664616293304e+00 2 0 0 -100 0 +P 141 113 -9.2484989919595070e-02 -1.1964227291138891e+00 -5.3193696218967101e+00 5.5240094460187201e+00 2 0 0 -101 0 +P 142 221 4.3290844393668704e-01 -2.2932482823933737e+00 -1.1118240214783999e+01 1.1373713746251170e+01 2 0 0 -102 0 +P 143 211 1.4314659529045259e-01 3.3792954234072853e-01 -4.8759767464944481e+00 4.8917600452786267e+00 1 0 0 0 0 +P 144 -211 -1.5173971936078676e-01 1.2638509867730544e-01 -2.3517255215454607e+00 2.3641258107781722e+00 1 0 0 0 0 +P 145 111 2.8806011104816087e-01 1.8808112209402078e-01 -6.9861950017284147e-01 7.9034292714425880e-01 2 0 0 -103 0 +P 146 111 -2.9325266533451849e-01 -2.1300619373632457e-01 -6.2084500620099243e+00 6.2204855547752071e+00 2 0 0 -104 0 +P 147 213 -6.9858610278359504e-02 1.2685306871492477e+00 -1.8500623011952744e+01 1.8556331415289904e+01 2 0 0 -105 0 +P 148 223 5.5063662683315945e-02 1.1997527113990876e-01 -3.0076947242410959e+00 3.1107144834006855e+00 2 0 0 -106 0 +P 149 -2214 -1.8794218320233000e-01 1.5241617555512106e+00 -1.9106462282427337e+01 1.9207265750409690e+01 2 0 0 -107 0 +P 150 2214 -2.8650488155922194e-01 2.9534757115427968e-01 -7.5922854307518755e+00 7.7042773613584803e+00 2 0 0 -108 0 +P 151 -213 -1.3395677309501619e-01 2.8646169779760616e-01 -7.1516780777701350e-01 1.1477456820086733e+00 2 0 0 -109 0 +P 152 221 1.5464435260082576e-01 -3.5154860600178450e-01 -2.3517657972875368e-02 6.6914563505238200e-01 2 0 0 -110 0 +P 153 -311 9.3352618998182743e-02 4.0984422314125646e-01 -2.9781253674948460e+00 3.0485395080484676e+00 2 0 0 -111 0 +P 154 333 -3.2368338848019457e-01 -4.2702770182420224e-01 -9.2713163076349650e-02 1.1654977849741417e+00 2 0 0 -112 0 +P 155 333 -1.0877256872155437e-01 3.7570467122067591e-01 -1.1471981162283685e+01 1.1523662684436765e+01 2 0 0 -113 0 +P 156 321 6.2410157985014460e-02 -5.2815613120594274e-01 -2.4718281324740081e+00 2.5761248423242393e+00 1 0 0 0 0 +P 157 113 1.7841524909498518e-01 -2.1422710011190485e-01 -4.1990941872267165e+01 4.1999942208294883e+01 2 0 0 -114 0 +P 158 -211 1.6252710659019495e-01 4.3949932995684760e-01 -1.7920595656609230e+01 1.7927264241762899e+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 2 0 0 -27 0 +P 39 21 6.3139095306073623e+00 -7.0920315162380083e+00 -3.5928099200277863e+00 1.0152371531295421e+01 2 0 0 -27 0 +P 159 92 0 0 1.9015007647260251e+01 3.4673296875657634e+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 2 0 0 -115 0 +P 161 -213 1.2736655420832138e-01 8.1992574492073922e-01 1.5226761082985145e+00 1.8398587605528547e+00 2 0 0 -116 0 +P 162 223 -1.7023916178032368e+00 2.0795757104791130e+00 6.5575562691596261e+00 7.1299160716087355e+00 2 0 0 -117 0 +P 163 211 -2.9059822685827419e-01 -2.9736811450474465e-02 1.1929840970980694e+00 1.2361320512944036e+00 1 0 0 0 0 +P 164 -211 -1.0881062221915685e+00 1.2539725263908137e+00 2.4746291473983963e+00 2.9832350644507852e+00 1 0 0 0 0 +P 165 211 -1.2852746139432256e+00 1.4134826699002714e+00 5.3384294397887020e+00 5.6716992832711099e+00 1 0 0 0 0 +P 166 -2212 1.4237307138452032e-01 -3.5996864709774652e-02 5.6565571914432167e-01 1.1053880998206356e+00 1 0 0 0 0 +P 167 211 -1.7998566349533646e-01 -1.5840940836931164e-01 5.4777086598057086e-02 2.8278736506418189e-01 1 0 0 0 0 +P 168 2114 3.5739987847657645e-01 2.2720806770406607e-01 3.6523500098511946e-01 1.3004119985260876e+00 2 0 0 -118 0 +P 169 111 -5.1434735918982422e-01 -7.7300339775299809e-01 1.1148117917540183e-01 9.4484660794944053e-01 2 0 0 -119 0 +P 170 -211 1.5714668856322211e+00 -6.0581539196193168e-01 -5.4913199377787304e-02 1.6908624149062295e+00 1 0 0 0 0 +P 171 -1114 8.8585869246348492e-01 -1.5968024045320024e+00 -4.2221015967941866e-01 2.3027386541183241e+00 2 0 0 -120 0 +P 172 3112 1.2493548114864377e+00 -1.2508727455032398e+00 -6.8508891720731258e-01 2.2424940241854410e+00 2 0 0 -121 0 +P 173 313 6.8179411573870519e-01 -3.6752254254946726e-01 5.4549415498849577e-02 1.1551152151744939e+00 2 0 0 -122 0 +P 174 213 8.7514099172343518e-01 -9.1457541533900566e-01 -1.9944632590699943e-01 1.6271978862616123e+00 2 0 0 -123 0 +P 175 -211 7.3183821062345222e-02 7.1751877688641233e-02 -4.4579470420669780e-02 1.7880525076215875e-01 1 0 0 0 0 +P 176 113 -3.8901028257665571e-01 -2.8878531600595153e-01 7.6297841431025348e-01 1.2320758480194269e+00 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 2 0 0 -29 0 +P 41 21 -4.0592867731266056e+00 2.6703314664466724e+00 6.5387013204165399e+01 6.5567293485463281e+01 2 0 0 -29 0 +P 177 92 0 0 4.7180626410055723e+01 8.4410886543686203e+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 1 0 0 0 0 +P 179 211 9.2022143347366359e-01 -9.0492262529110890e-01 -3.4802493120833939e+00 3.7144727086822180e+00 1 0 0 0 0 +P 180 331 2.8547714123264654e+00 -1.3978162152551836e+00 -1.1295889724261475e+01 1.1773753288764665e+01 2 0 0 -125 0 +P 181 -211 -2.1966458442153422e-01 -7.8242988024705071e-02 -3.6872339754814093e-01 4.5805155127295866e-01 1 0 0 0 0 +P 182 211 2.9560049319651122e-01 -2.0553784478372053e-01 2.0154644030530203e-01 4.3557572213806423e-01 1 0 0 0 0 +P 183 -213 4.8499322815683815e-01 -2.4176671902283986e-01 -1.2630218756659783e+00 1.5443904458672615e+00 2 0 0 -126 0 +P 184 223 -4.9798993623797905e-01 -7.9872460916706869e-02 1.4542593319776393e+00 1.7271969649830978e+00 2 0 0 -127 0 +P 185 111 -8.1435240888755867e-02 2.1770867381234621e-01 -4.8166487593616319e-01 5.5158808745506804e-01 2 0 0 -128 0 +P 186 211 -4.0963834077238803e-02 -8.1786285732019265e-02 -7.3954640395227589e-02 1.8252700066602331e-01 1 0 0 0 0 +P 187 -213 -1.9208712477878448e-01 1.0153734892728536e+00 1.0093633192296094e+01 1.0172602378103548e+01 2 0 0 -129 0 +P 188 113 -4.0460519527275640e-01 -1.8742290283792634e-01 1.4460803220046335e+01 1.4483694098040059e+01 2 0 0 -130 0 +P 189 323 -1.8174133915270314e+00 8.5518474033833691e-01 1.5636980567886377e+01 1.5790404265907304e+01 2 0 0 -131 0 +P 190 -313 -6.1300964784639689e-01 4.4874979596463827e-01 1.5814169758309760e+01 1.5858292211205139e+01 2 0 0 -132 0 +P 191 2112 -2.0875628243328179e-01 2.2254556192762173e-01 2.8276378449769140e+00 2.9952350959206409e+00 1 0 0 0 0 +P 192 -3122 -4.4603745527894489e-01 1.7089584026390511e-01 3.9246158988903992e+00 4.1079808441562280e+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 2 0 0 -31 0 +P 43 21 3.5966403857613591e+00 -9.8909210856074747e-01 -5.4062667533947362e+01 5.4191199895830252e+01 2 0 0 -31 0 +P 193 92 0 0 -6.0961827711052806e+01 6.2034192718284217e+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 2 0 0 -134 0 +P 195 -213 6.9761486862091593e-01 -2.0191774573662452e-01 -9.7431391037408730e+00 9.7889921005604528e+00 2 0 0 -135 0 +P 196 321 9.0124089448534161e-01 -4.4767419129957531e-01 -8.9439134555301649e+00 9.0138713209953245e+00 1 0 0 0 0 +P 197 -321 -6.3603380049890879e-01 1.4504099316767780e-01 -4.6266617828900456e+00 4.6984269812705879e+00 1 0 0 0 0 +P 198 113 3.6907253066300794e-01 -1.4699212866480399e-01 -8.5021209501925501e+00 8.5375578909228391e+00 2 0 0 -136 0 +P 199 221 -1.1158814362096265e+00 7.2491333857959150e-01 -2.4507253306324639e+00 2.8419090198019128e+00 2 0 0 -137 0 +P 200 211 -3.4212525303292468e-01 -2.2696230407884616e-01 -6.7469338663752003e+00 6.7608548245304183e+00 1 0 0 0 0 +P 201 -213 -1.7598972275668995e-01 3.3505003289999202e-01 -1.7733387402423706e+00 1.9326147762775303e+00 2 0 0 -138 0 +P 202 323 -6.9239644466952743e-01 4.5349209741353164e-01 -3.5326948656226587e+00 3.7428911176348358e+00 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 2 0 0 -33 0 +P 45 21 -1.6002652901426460e+00 2.4352657274836234e+00 8.2577967751982451e-01 3.0287423525444375e+00 2 0 0 -33 0 +P 203 92 0 0 2.9514612040080941e+01 3.1865185796378242e+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 2 0 0 -140 0 +P 205 111 1.2478783609177713e-01 -3.6358255829143427e-02 2.1168354202844193e+00 2.1251131084660222e+00 2 0 0 -141 0 +P 206 -2224 -5.5186870172860858e-01 1.0329040235764173e+00 8.5442774549095424e-01 1.9723301257490100e+00 2 0 0 -142 0 +P 207 2224 -4.4972267469397098e-01 7.1644814273694990e-01 1.8328017645199988e+00 2.3811516687914014e+00 2 0 0 -143 0 +P 208 -213 -5.0716668288443600e-01 -5.4504576392598904e-02 1.3018912898240806e+00 1.5715730784703104e+00 2 0 0 -144 0 +P 209 211 1.1243572544296603e+00 -1.1191386976602283e-01 4.6556363922388408e+00 4.7928210848594484e+00 1 0 0 0 0 +P 210 -211 3.7004756859602959e-03 -8.3816613942284957e-01 6.7174081650278819e+00 6.7709370408591569e+00 1 0 0 0 0 +P 211 213 2.3150705552517567e-01 -5.3768853904646212e-03 3.2265766557190916e+00 3.3703104910732882e+00 2 0 0 -145 0 +P 212 221 -8.0782432554875203e-02 -5.4307719493941597e-01 8.0330277427792112e+00 8.0703590291778973e+00 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 1 0 0 0 0 +P 214 22 -1.4491207335906356e-01 -1.4502950690157407e-01 1.7619998130615260e+00 1.7738873718774226e+00 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 0 0 0 0 +P 216 111 6.7011046783931716e-01 3.1756771243611115e-01 3.4595425231838661e+01 3.4603635124986923e+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 0 0 0 0 +P 218 111 2.0568277559265397e-01 -7.6716771394558292e-02 3.4410912961920448e+00 3.4507274271256705e+00 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 0 0 0 0 +P 220 111 -3.6160430730145765e-01 1.7103168765392807e-01 6.7399550195350288e+00 6.7531639087909117e+00 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 1 0 0 0 0 +P 222 22 1.9818742468699430e-01 2.8719162130123162e-02 2.0232696605477911e+00 2.0331559617674917e+00 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 0 0 0 0 +P 224 211 -1.8430479575079395e+00 -1.8805736996568283e+00 -1.8133624777653438e+01 1.8324333837145126e+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 1 0 0 0 0 +P 226 22 4.2982874000373740e-02 1.6744026991665381e-01 -4.3431881820625335e+00 4.3466271241336942e+00 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 1 0 0 0 0 +P 228 -11 1.5797118386348692e-02 1.4711735030322620e-02 -1.0283381816186061e+00 1.0285648545286661e+00 1 0 0 0 0 +P 229 11 5.9939238082474242e-02 1.4813366540532533e-01 -5.5401626596588285e+00 5.5424668560728723e+00 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 0 0 0 0 +P 231 111 -5.0350326425457087e-02 -6.7011909820600379e-01 -3.1309205936853076e+01 3.1316707853122548e+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 2 0 0 -151 0 +P 233 -211 2.9364965893852782e-03 -2.8037181824656832e-01 -2.9550358086806355e+01 2.9552017863808569e+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 1 0 0 0 0 +P 235 22 -4.2790481089641280e-01 -5.2184434402458346e-01 -3.1134207733526843e+01 3.1141520759927278e+01 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 1 0 0 0 0 +P 237 211 -1.2295953257244377e-01 1.8096777706713205e-01 -3.0609568574526622e+02 3.0609579575687195e+02 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 1 0 0 0 0 +P 239 22 1.3123498171528272e-01 2.5927646721163589e-01 -2.2656630725712694e+03 2.2656630912075148e+03 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 0 0 0 0 +P 241 111 -6.5531495792427386e-01 1.7586644364637036e+00 5.3859919479611001e+01 5.3892777663103821e+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 0 0 0 0 +P 243 111 -3.8399339173650116e-01 3.7283975804546754e-01 2.7206887603585198e+01 2.7212486345143006e+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 0 0 0 0 +P 245 111 -4.1020081276223969e-01 5.9241060031560666e-01 2.7159228200759497e+01 2.7169120543136597e+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 0 0 0 0 +P 247 111 6.6426419466017059e-02 3.5700759179416253e-01 3.2854791305799246e+01 3.2857075314729755e+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 0 0 0 0 +P 249 111 3.0439207238921828e-01 -1.0014164915511482e-01 2.0179891546884896e+00 2.0477262298630827e+00 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 0 0 0 0 +P 251 211 5.8128837571324521e-01 -1.9934568518397549e+00 2.9607592755877548e+01 2.9680646808630684e+01 1 0 0 0 0 +P 252 111 6.5948645476388301e-01 -1.2682284115554467e+00 1.7819650401514330e+01 1.7877401537149723e+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 1 0 0 0 0 +P 254 22 8.3150786524103473e-02 -6.2673834877903317e-02 3.5390310973347999e-01 3.6890306851110266e-01 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 0 0 0 0 +P 256 -211 -1.0411121014131801e-01 -2.0872779943077877e-01 6.2062244364248373e+00 6.2121741748367851e+00 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 0 0 0 0 +P 258 111 -2.8056748593473252e-01 1.1916090751261861e-02 4.0696486529871594e+00 4.0815585095086817e+00 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 0 0 0 0 +P 260 111 -3.8387407607252627e-01 6.8367344397323782e-01 2.1019786165900940e+00 2.2475102645542622e+00 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 0 0 0 0 +P 262 111 -1.8889806198257593e+00 2.4579472809096470e+00 1.8831934148939073e+01 1.9085851199466742e+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 2 0 0 -161 0 +P 264 111 -1.9155619001346455e-01 -6.0914542296763896e-01 -1.2809667227843524e-01 6.6511674020709111e-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 2 0 0 -163 0 +P 266 211 -1.5043143739465120e-01 -4.3840705696961185e-01 -1.8263399040108697e+00 1.8893987389748650e+00 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 1 0 0 0 0 +P 268 321 1.6118644520389575e-01 1.9737463878801137e-01 -4.5373479438923123e+00 4.5712257811333235e+00 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 1 0 0 0 0 +P 270 211 -2.6567428535109305e-01 1.6610101468545962e-01 -2.5800207633514976e+01 2.5802487595004493e+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 0 0 0 0 +P 272 111 3.7620839570376235e-01 4.8378053771402385e-01 -1.9561155024868459e+01 1.9571218201047309e+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 0 0 0 0 +P 274 211 -1.6258540618367565e-01 1.6222338006653356e-01 -1.2249613526344374e+01 1.2252561437064626e+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 2 0 0 -165 0 +P 276 211 7.3266490640172433e-01 1.6751233348484984e+00 -1.1609843447379056e+02 1.1611291402381548e+02 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 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 0 0 0 0 +P 279 111 8.9810384677170528e-03 -6.3878733240759011e-01 -2.6775211174027441e-01 7.0571999322517431e-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 1 0 0 0 0 +P 281 111 -8.5409563822338136e-02 -4.3012054975671515e-01 -1.2184751648084854e-01 4.7472613008753961e-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 1 0 0 0 0 +P 283 111 -6.6404144386860195e-02 6.2308146282458045e-02 -9.8313964690159639e-01 9.9653147526543429e-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 1 0 0 0 0 +P 285 22 8.9437597330653915e-02 2.3309905645556292e-01 -1.1748130566901320e+00 1.2010495294143226e+00 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 0 0 0 0 +P 287 111 4.5237516943432650e-02 1.4303653358737961e-01 -1.2206147222144386e+00 1.2371846197583172e+00 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 1 0 0 0 0 +P 289 22 -9.8330182436480451e-03 3.6615228052958404e-01 -1.2448772907468852e+00 1.2976454253000318e+00 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 2 0 0 -170 0 +P 291 111 -2.4972174502373165e-01 1.2171174499571773e+00 -9.8820220121753870e+00 9.9607386516486240e+00 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 0 0 0 0 +P 293 111 -4.1995931923232044e-01 6.9352306047057866e-01 -2.4353681474951611e-01 8.5724549911498049e-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 1 0 0 0 0 +P 295 22 -6.5988345454275177e-01 3.7272537616398288e-01 -8.6204472334868429e-02 7.6275919572719031e-01 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 1 0 0 0 0 +P 297 211 -4.6850393570640159e-01 -8.5880035046017392e-02 7.6480086906950495e-01 9.1174090202280789e-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 0 0 0 0 +P 299 111 3.9915573664182591e-01 -1.0301564308733102e-01 -1.5144973175224732e-01 4.5944983019106961e-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 0 0 0 0 +P 301 111 7.5486711156253306e-01 3.9411709508809456e-01 3.2919551559674907e+00 3.4029900073406600e+00 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 0 0 0 0 +P 303 111 2.6685635170597993e-01 -8.2387989842869880e-01 1.2612720468497917e+01 1.2643137570094973e+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 0 0 0 0 +P 305 -211 -2.8515883010338406e-02 -1.2080898873270086e-01 9.9053262633137185e-01 1.0079894027564984e+00 1 0 0 0 0 +P 306 111 1.5031021128478475e-01 6.1869303805222545e-03 7.3336808953253430e-01 7.6071005834589123e-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 0 0 0 0 +P 308 -211 -1.1415211181414819e+00 1.1959649466073342e-01 4.2262254369293686e+00 4.3815334089045752e+00 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 1 0 0 0 0 +P 310 22 -2.4944757644687382e-01 9.5072045551801362e-02 3.3303916405451600e-01 4.2682299848386052e-01 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 0 0 0 0 +P 312 111 -4.8694682571265593e-02 -3.6180916417226161e-01 3.4696204820675303e+00 3.4913840999483670e+00 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 0 0 0 0 +P 314 211 -1.5562677085262105e-01 -2.3620058456930920e-01 9.0884352597140916e-01 9.6202221780842523e-01 1 0 0 0 0 +P 315 111 -2.4435179757304334e-01 7.4349308208397899e-02 5.9722684245561075e-01 6.6342680256207898e-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 2 0 0 -179 0 +P 317 22 1.4409213370305821e-01 -5.7604870198693786e-02 3.7612512111205554e-01 4.0687955318161023e-01 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 1 0 0 0 0 +P 319 22 9.3084625249818934e-02 7.1564722039120275e-03 7.2125724752282516e-02 1.1797492412943782e-01 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 0 0 0 0 +P 321 111 5.8064185894314453e-02 9.8787864581293211e-02 3.1042140903798182e-01 3.5736751875517092e-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 0 0 0 0 +P 323 211 6.6821925997163825e-04 -1.0568054772206613e-03 2.1333331792164230e+02 2.1333336358105069e+02 1 0 0 0 0 +P 324 111 3.1232342162247389e-02 7.4080388596620431e-02 7.1134026050131084e+01 7.1134199546099481e+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 0 0 0 0 +P 326 -211 2.7182151527050440e-02 2.1590966128895990e-03 4.4588081331807786e+01 4.4588308110623188e+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 0 0 0 0 +P 328 -211 -1.3786723222707301e-01 5.9274844571574309e-02 1.1735950011477758e+01 1.1737739277123415e+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 1 0 0 0 0 +P 330 211 -8.2279004458571267e-02 7.3018712211581877e-02 5.1415548559796406e+01 5.1415855677568857e+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 2 0 0 -182 0 +P 332 211 5.2951984991579670e-01 -6.4554600935646037e-02 4.9941304935652070e+01 4.9944348799725510e+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 0 0 0 0 +P 334 111 -1.8723935235103165e-01 6.7174295629019873e-02 2.0892529195013871e+01 2.0893912192932397e+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 1 0 0 0 0 +P 336 211 -5.5352999453907193e-03 -1.0816988709474940e-01 3.6815646393669343e-01 4.0835074489701390e-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 1 0 0 0 0 +P 338 22 1.3168775031267746e-01 1.5037716076096133e-01 -1.3292620991243345e-01 2.4005068494513118e-01 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 1 0 0 0 0 +P 340 -211 -2.6075250516129161e-01 9.9943367152509469e-02 1.1394118409731577e+00 1.1814058040468192e+00 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 0 0 0 0 +P 342 -211 -2.3240549013258138e-01 -1.2739824390148866e-01 -1.7172491484146121e-02 3.0002883820846565e-01 1 0 0 0 0 +P 343 111 5.3155140450545445e-02 -3.2198458976233074e-01 8.1469103673461631e-04 3.5315691855352199e-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 1 0 0 0 0 +P 345 22 -6.5257195441118784e-02 -2.3379870579969641e-03 -6.6691702615093121e-02 9.3336760914571146e-02 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 0 0 0 0 +P 347 -211 3.2808169398020481e-01 1.6708294975973997e-01 1.4593698511490616e-01 4.1991868087733947e-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 0 0 0 0 +P 349 111 -2.8173495143786537e-01 -2.3294554347192373e-01 -8.3799170321694616e-01 9.2416876388761626e-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 0 0 0 0 +P 351 -211 3.4464639850554046e-01 -3.9448924009807262e-01 -2.4618660005043602e+00 2.5208464629753493e+00 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 1 0 0 0 0 +P 353 22 1.0434568190199986e-01 -2.7883825262630772e-02 -4.8973860227147370e-01 5.0150715607820417e-01 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 1 0 0 0 0 +P 355 22 6.4511010772874300e-02 2.7782206584984766e-02 -5.1236759212390626e-02 8.6940939770953726e-02 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 1 0 0 0 0 +P 357 22 -4.0221420025721384e-02 -1.5335598110120413e-02 -1.7319040659961942e+00 1.7324389273542784e+00 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 0 0 0 0 +P 359 111 1.6319333803292452e-01 9.1595544301201692e-01 -1.4636028000277902e+01 1.4666190427799593e+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 0 0 0 0 +P 361 -211 -3.9918742821603924e-02 2.3757962531374108e-01 -4.9884072044398658e-01 5.7127877053654863e-01 1 0 0 0 0 +P 362 111 1.4605102514493379e-01 -7.1654523819423611e-04 -1.0841280953562038e+00 1.1022181013409436e+00 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 1 0 0 0 0 +P 364 111 -7.3879643598863620e-02 2.1911131985195054e-01 -5.3599032767510568e+00 5.3665865043575209e+00 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 2 0 0 -189 0 +P 365 2212 -9.2672351349186208e-02 3.2713801118000992e-02 -5.0230624849063501e+00 5.1108869756297421e+00 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 0 0 0 0 +P 368 111 -4.4699794465351418e-02 -2.0886308426759173e-01 1.1405705795541135e-02 2.5292597755017221e-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 0 0 0 0 +P 370 211 1.1822125040940321e-01 -3.6410489305205150e-02 -7.4902779595835356e-02 2.0097810594935350e-01 1 0 0 0 0 +P 371 111 -1.6232482169526979e-02 -5.4435203098128715e-02 7.9250327722834704e-02 1.6651396235119514e-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 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 1 0 0 0 0 +P 374 310 -1.0058249844852461e-01 -3.3078112442504448e-01 -8.2668057706903650e-02 6.1159008161927886e-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 1 0 0 0 0 +P 376 321 -1.6771205287668237e-01 1.4016513775476167e-01 -5.5593832946803383e+00 5.5855310558345961e+00 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 0 0 0 0 +P 378 -211 -2.6784944598235311e-01 8.4540277169185385e-02 -1.4243508730173986e+01 1.4246961469577274e+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 0 0 0 0 +P 380 111 -3.7138811372573445e-02 -2.6763057762592657e-01 1.8964640672464467e-01 3.5663816028872181e-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 0 0 0 0 +P 382 111 -5.5029184311155943e-02 -3.1797439570535158e-02 2.5538799358925224e-01 2.9577341996659695e-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 0 0 0 0 +P 384 -211 -5.3662832160087004e-01 7.6596039196045107e-01 2.0066624387491827e+00 2.2182964647637142e+00 1 0 0 0 0 +P 385 111 -5.4333294606349714e-01 8.9116704629103738e-01 3.0590759352765375e+00 3.2350509382173804e+00 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 1 0 0 0 0 +P 387 -211 2.0173096820492542e-01 3.0084177275992156e-02 1.9384965688599484e-01 3.1409857629427085e-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 1 0 0 0 0 +P 389 22 -3.9737322549938564e-01 -6.7635414352139833e-01 7.0137957301546427e-02 7.8757840299032089e-01 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 1 0 0 0 0 +P 391 211 5.8301081246194575e-01 -7.0551758694164624e-01 -7.9066317918965748e-02 9.2918670914986956e-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 1 0 0 0 0 +P 393 -211 5.2572010790258272e-01 -3.8798397863996692e-01 -2.3747258980458383e-01 7.0907419593643206e-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 2 0 0 -196 0 +P 395 111 1.0969872995552975e-01 -2.7592125031730930e-01 1.9284939585462296e-01 3.7891534359539542e-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 0 0 0 0 +P 397 111 7.4745645835255581e-01 -1.8452765224834686e-01 -3.5285787768360583e-01 8.5759541382904525e-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 0 0 0 0 +P 399 211 1.3030258692077507e-01 1.1737552180221024e-01 1.4023573824788065e-02 2.2457119761760758e-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 0 0 0 0 +P 401 211 7.2245244435792022e-01 -5.5562326516907601e-01 -3.3678421544139758e+00 3.4917753806772347e+00 1 0 0 0 0 +P 402 221 1.6929001772174577e+00 -6.2763907466060598e-01 -6.2654951393025753e+00 6.5433915258975537e+00 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 0 0 0 0 +P 404 111 -5.8526099968283993e-02 -2.8429634583446145e-01 -3.7477092780150040e-01 4.9287175345877016e-01 2 0 0 -200 0 +V -127 0 0 0 0 0 0 3 0 +P 407 111 2.2104562458507233e-02 -3.0138619608482096e-02 6.8918524799908965e-01 7.0327295876704488e-01 2 0 0 -201 0 +P 405 211 -1.7994431618017598e-01 -1.4981023610554228e-01 1.8335551296569244e-01 3.2851498109288968e-01 1 0 0 0 0 +P 406 -211 -3.4015018251631030e-01 1.0007639479731749e-01 5.8171857101285707e-01 6.9540902512316316e-01 1 0 0 0 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 1 0 0 0 0 +P 409 22 7.3136079243070681e-03 1.7887105092202264e-04 6.5286998810985524e-03 9.8053443519745542e-03 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 0 0 0 0 +P 411 111 -5.9981210232161325e-02 1.0568271312618416e+00 8.3436496620987999e+00 8.4116104650175920e+00 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 0 0 0 0 +P 413 211 -4.2564457750844004e-01 -3.6237405135327300e-01 1.1465562013267260e+01 1.1480029630816887e+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 2 0 0 -203 0 +P 415 211 -1.0295964159075386e+00 3.1096384658587001e-01 6.4911205497073698e+00 6.5811012049098920e+00 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 2 0 0 -204 0 +P 417 111 1.1338504577602361e-01 8.4838802122491092e-02 4.4320364364653537e+00 4.4363521462467022e+00 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 1 0 0 0 0 +P 419 211 -5.3458486904178924e-03 1.0072609051156285e-01 4.7245178192138493e-01 5.0285663418976212e-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 1 0 0 0 0 +P 421 211 1.6711326947641161e-01 -1.9094728388891710e-01 -1.2625904583366416e+00 1.2953772270818957e+00 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 0 0 0 0 +P 423 111 7.0217973892037344e-01 -2.8698062984842038e-01 -7.3498259370883083e+00 7.3900998080915326e+00 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 0 0 0 0 +P 425 -211 -9.8483352004072017e-02 -2.1413651713213966e-01 -2.3969506914096916e+00 2.4125517239099432e+00 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 2 0 0 -207 0 +P 427 111 -5.9749928543227060e-01 4.0523346497645923e-01 -1.0521574728239369e+00 1.2831502270771551e+00 2 0 0 -208 0 +P 428 111 -3.7075092612150112e-01 1.6389697387756819e-01 -7.6281205611413760e-01 8.7431132934398903e-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 0 0 0 0 +P 430 111 -3.2472936796134794e-01 4.1437910527456240e-02 -1.2473036619170828e+00 1.2965925683410431e+00 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 1 0 0 0 0 +P 432 111 -5.5302161674478068e-01 2.7557884791839724e-02 -1.6155048992407390e+00 1.7130872790001219e+00 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 1 0 0 0 0 +P 434 22 9.7839239745626749e-02 -8.7531718590624669e-02 6.6506319147565862e-01 6.7789628059845486e-01 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 1 0 0 0 0 +P 436 22 4.4054345042207586e-02 -7.7627615962248125e-02 7.5395896312458921e-01 7.5922391305397241e-01 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 1 0 0 0 0 +P 438 -211 -2.1550620238062704e-01 4.0104914462364860e-01 -5.9206301760771352e-02 4.7986301246925406e-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 1 0 0 0 0 +P 440 211 -1.3656134001203910e-01 8.4180305408821043e-02 7.6571336719638172e-01 7.9468992003663097e-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 0 0 0 0 +P 442 111 -6.1402112512214591e-01 1.1088767981697505e-01 9.1946862391992579e-01 1.1193570343749397e+00 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 0 0 0 0 +P 444 111 1.3390057130873545e-01 -4.0022089132772154e-01 8.8662696215810521e-01 9.9117763053736829e-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 1 0 0 0 0 +P 446 22 -1.2530381878315813e-01 -6.1237208583624381e-01 7.7611359023390527e+00 7.7862655434482386e+00 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 1 0 0 0 0 +P 448 22 2.4777890833036781e-01 4.7433913116153387e-02 1.1288556037138038e+01 1.1291374662419651e+01 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 1 0 0 0 0 +P 450 22 2.1389614826006173e-01 -8.5684375324878909e-02 2.7826281846175691e+00 2.7921520353024070e+00 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 1 0 0 0 0 +P 452 22 -7.0619670035219672e-03 2.8828873325877486e-02 2.1532441192296625e-01 2.1736047866429073e-01 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 1 0 0 0 0 +P 454 22 4.6521748008517740e-03 -5.3335256863215397e-01 -2.2905947866752722e+01 2.2912156910242874e+01 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 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 1 0 0 0 0 +P 457 22 -2.9100960940826009e-01 9.5126997185016959e-01 2.9396772505842296e+01 2.9413599489221941e+01 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 1 0 0 0 0 +P 459 22 -1.5354506319408460e-02 5.2254180686976508e-02 4.5892932496961736e+00 4.5896164101121171e+00 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 1 0 0 0 0 +P 461 22 -1.2923082607457784e-01 2.8072928560789373e-01 1.3016518255258111e+01 1.3020186520464037e+01 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 1 0 0 0 0 +P 463 22 7.9910814805674857e-02 3.3420179014562956e-01 2.6486554060175386e+01 2.6488782957271795e+01 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 1 0 0 0 0 +P 465 22 1.7235440236200694e-01 -6.0021433533256625e-02 1.5217956773985872e+00 1.5327004587478847e+00 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 1 0 0 0 0 +P 467 22 4.5893050301397365e-01 -9.5017947224512112e-01 1.3741002689570054e+01 1.3781459035633496e+01 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 1 0 0 0 0 +P 469 22 -1.6198332741124952e-01 -1.5422356089156571e-02 3.1055237191692759e+00 3.1097835966107890e+00 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 1 0 0 0 0 +P 471 22 -3.1902888396194151e-01 5.7381192287508798e-01 1.8818432921245529e+00 1.9930814654072178e+00 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 1 0 0 0 0 +P 473 22 -1.7879141260115867e+00 2.3465591294882859e+00 1.8067359255970079e+01 1.8306623040704810e+01 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 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 1 0 0 0 0 +P 476 22 -1.0157807603458334e-01 -1.8740788115304952e-01 6.8186928478867403e-03 2.1327520723543308e-01 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 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 1 0 0 0 0 +P 479 22 2.4737772584635406e-01 3.9643239817152115e-01 -1.5628282636309663e+01 1.5635266948342874e+01 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 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 1 0 0 0 0 +P 482 22 3.2985457263139006e-02 -5.7681815569483774e-01 -2.7308933268050717e-01 6.3905008313428557e-01 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 1 0 0 0 0 +P 484 22 -4.7654369480567102e-02 -3.8742572097895756e-01 -6.7818522609498041e-02 3.9619310975279542e-01 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 1 0 0 0 0 +P 486 22 -5.7282665603845380e-02 2.9700501285987765e-02 -1.5759441819103331e-01 1.7029217304471525e-01 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 1 0 0 0 0 +P 488 22 4.8867158637845319e-02 9.2115856024567719e-02 -3.5325296707559606e-01 3.6832185500209919e-01 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 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 1 0 0 0 0 +P 491 22 -1.5474800128245778e-01 5.7213576285513090e-01 -5.1589794557811262e+00 5.1929139507804729e+00 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 1 0 0 0 0 +P 493 22 -4.9683819629574119e-02 7.1398417580221585e-02 1.5437415960085871e-02 8.8343249756098599e-02 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 1 0 0 0 0 +P 495 22 7.1660498494050137e-02 -5.6128878595896443e-02 -7.9560338291332564e-02 1.2089468758336715e-01 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 1 0 0 0 0 +P 497 22 3.0750215958027394e-01 1.4437409126494161e-01 1.5750231618747674e+00 1.6112415761818897e+00 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 1 0 0 0 0 +P 499 22 1.4321552040215901e-01 -5.3001598407664563e-01 7.0922510505452010e+00 7.1134697997967420e+00 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 1 0 0 0 0 +P 501 22 8.9503713642537751e-03 4.6483512089294167e-02 1.0188440558207200e-01 1.1234437299894350e-01 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 1 0 0 0 0 +P 503 22 -7.2745052887069936e-02 -9.5452461341506492e-02 1.2347314951840711e+00 1.2405502328786151e+00 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 1 0 0 0 0 +P 505 22 -8.9511477232786629e-02 4.1278342536144701e-02 3.9210415654668013e-01 4.0430418709198446e-01 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 1 0 0 0 0 +P 507 22 -2.0488139654333862e-01 2.4854871656929914e-01 5.7081408313582516e-01 6.5542472387299155e-01 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 1 0 0 0 0 +P 509 22 9.5720803038463378e-02 8.4602554698270271e-02 2.7707064192895242e-01 3.0510359718417601e-01 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 1 0 0 0 0 +P 511 22 7.1426379875077009e-02 2.6570375761728566e-02 5.5104241235417319e+01 5.5104293932902152e+01 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 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 1 0 0 0 0 +P 514 22 -1.6079201520980721e-01 1.0648402032122213e-01 1.7070295252939683e+01 1.7071384622849845e+01 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 1 0 0 0 0 +P 516 22 -1.8658185022900918e-02 -9.6440795705683577e-02 -5.1254393546604243e-02 1.1079696657636637e-01 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 1 0 0 0 0 +P 518 22 -8.4630153565993557e-02 -1.2123114591746497e-04 -1.8410075719873392e-01 2.0262123874545424e-01 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 1 0 0 0 0 +P 520 22 1.6227427277457440e-01 9.1743438683356748e-01 -1.4376785736923154e+01 1.4406942316784155e+01 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 1 0 0 0 0 +P 522 22 6.0103580822178510e-02 6.6002762741430479e-02 -4.3983483125659523e-01 4.4880227707049974e-01 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 1 0 0 0 0 +P 524 22 -4.2167611336134614e-02 2.2119967837399371e-01 -5.0591000356033122e+00 5.0641090603777545e+00 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 1 0 0 0 0 +P 526 22 5.3730450744935102e-03 3.3115812041689355e-02 -5.9176009596032075e-01 5.9271033211132973e-01 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 1 0 0 0 0 +P 528 22 -7.1181574739910172e-02 -2.1214716485238358e-01 2.0564214843628897e-02 2.2471342431971594e-01 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 1 0 0 0 0 +P 530 22 -6.0239884439087552e-02 -7.3485626307050064e-02 3.4996208595725116e-02 1.0126063187166835e-01 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 0 0 0 0 +P 532 211 -1.7292216029916171e-01 -5.5668170439967064e-03 -1.1251381807496415e-01 2.4914294517873958e-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 533 22 -4.1799321747595368e-02 -2.2002625342251989e-01 2.0776320166063492e-01 3.0549023463604780e-01 1 0 0 0 0 +P 534 22 4.6605103750219246e-03 -4.7604324203406684e-02 -1.8116794935990260e-02 5.1147925652673905e-02 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 1 0 0 0 0 +P 536 22 -5.6116641951763281e-02 -1.3098107147460443e-02 2.2073098540934744e-02 6.1707856825420224e-02 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 1 0 0 0 0 +P 538 22 -3.2584382015507379e-01 4.8800065774682477e-01 1.5232221985470455e+00 1.6323371904239272e+00 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 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 1 0 0 0 0 +P 541 22 4.2850452954082546e-02 -2.1496304034714489e-01 1.8723159014023277e-01 2.8827233370564426e-01 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 1 0 0 0 0 +P 543 22 5.1382275035746849e-01 -1.7895462591953512e-01 -2.0715568038038368e-01 5.8219588871510730e-01 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 0 0 0 0 +P 545 -211 2.0811046164856656e-01 -9.7076490529901388e-02 -9.3664893491201751e-01 9.7443564253007409e-01 1 0 0 0 0 +P 546 111 7.6439448341283889e-01 -1.6319820437628141e-01 -2.4284510447741372e+00 2.5547067654523916e+00 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 1 0 0 0 0 +P 548 22 -7.9439325183585624e-02 -2.8797215164941031e-01 -3.5346441087396047e-01 4.6279115837026358e-01 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 1 0 0 0 0 +P 550 22 7.8822474490421540e-02 -1.2392968377188934e-02 4.3241421457486973e-01 4.3971424938975157e-01 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 1 0 0 0 0 +P 552 22 1.0198438854068275e-02 7.1738839806950361e-01 5.3210085651958536e+00 5.3691602949369495e+00 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 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 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 1 0 0 0 0 +P 556 22 3.3520899152715923e-02 -3.6724958742843213e-02 1.2670753477375407e+00 1.2680505944633595e+00 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 1 0 0 0 0 +P 558 22 2.1773520565967508e-01 -1.1635860158145582e-01 -2.9754965831844515e+00 2.9857206601569413e+00 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 1 0 0 0 0 +P 560 22 -1.3581064020573216e-01 1.7184310656263610e-01 -6.2394029876529555e-01 6.6126853825772958e-01 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 1 0 0 0 0 +P 562 22 -2.2530657193845258e-01 9.1815962874002371e-02 -4.2049020891801436e-01 4.8580370335460860e-01 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 1 0 0 0 0 +P 564 22 -7.9559396942135666e-02 4.7349669899603999e-02 -7.7891837640231998e-02 1.2099102137088527e-01 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 1 0 0 0 0 +P 566 22 -1.1651249793019035e-01 4.4992959343746600e-02 -2.7201300190967870e-01 2.9931689189278221e-01 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 1 0 0 0 0 +P 568 22 -3.1705682481445735e-01 -5.1135467688872380e-02 -9.0197030996840699e-01 9.5743945306305900e-01 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 1 0 0 0 0 +P 570 22 -3.5963372460583565e-01 6.5867476299182534e-02 4.1859802343527158e-01 5.5578705052547384e-01 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 1 0 0 0 0 +P 572 22 1.0453326376355529e-01 -2.0969741933778815e-01 3.5195232928334702e-01 4.2281278717413778e-01 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 0 0 0 0 +P 574 -211 1.5459267829018677e-01 -5.0714137832912419e-02 -4.4241473770426190e+00 4.4293374920692319e+00 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 0 0 0 0 +P 576 -211 -1.0949136603911050e-01 2.9294698802222685e-02 -1.4927954083399445e-01 2.3368933400271319e-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 0 0 0 0 +P 578 -211 1.4932450380815165e-01 -2.1983707797596455e-01 -4.3945446938190864e-02 3.0337622764013394e-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 1 0 0 0 0 +P 580 22 2.1746013190544179e-02 -1.6682119000114660e-02 -3.5282650085253067e-02 4.4677148309350663e-02 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 0 0 0 0 +P 582 -211 -3.1225368074799753e-01 -3.0867352142145359e-02 3.1198502882648715e+00 3.1386941170899947e+00 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 2 5.1553292069003653e-01 3.8485835711180655e-01 1.7290951843317296e+03 1.7290953040157517e+03 3 0 0 -3 0 +P 34 2101 -5.1553292069003653e-01 -3.8485835711180655e-01 4.2219673894488587e+03 4.2219674782123802e+03 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 3 0 0 -2 0 +P 4 21 -4.9797130516589477e-01 1.0933883123411841e+00 -1.3097958796984543e+02 1.3098509815308313e+02 3 0 0 -4 0 +P 19 2103 2.9142878896144259e-01 -6.5062234924971918e-01 -6.7718730985476304e+03 6.7718731800014712e+03 2 0 0 -9 0 +P 47 2 2.0654251620445219e-01 -4.4276596309146488e-01 -5.7621689243983575e+01 5.7624705403492385e+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 3 0 0 -5 0 +P 36 21 3.9295485495835827e+00 2.0268615205012281e+00 5.6968906941557279e+01 5.7140229939532411e+01 2 0 0 -13 0 +P 37 21 7.2056915500682295e-01 2.7350626169661183e+00 3.1393811690569535e+01 3.1520964450486176e+01 2 0 0 -13 0 +P 35 21 -5.5465777356364798e-01 9.8068482118457034e-01 7.0650666253777854e+02 7.0650756089247534e+02 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 3 0 0 -5 0 +P 11 1 1.0452289512758353e+00 1.6158783855979435e+00 -6.1449917248529795e+00 6.4477430017130333e+00 2 0 0 -9 0 +P 12 21 2.0507170473914881e-02 -8.9170706750033535e-01 6.3770653890766849e-01 1.0964632543028934e+00 2 0 0 -9 0 +P 13 21 2.4396972905842967e-01 -1.4625120878663037e-01 1.0957508431732279e+00 1.1320691476598213e+00 2 0 0 -9 0 +P 14 21 2.2404339997558728e-01 3.9772174914434660e-02 2.5679435268111024e+00 2.5780052808055083e+00 2 0 0 -9 0 +P 15 21 2.2907916028215539e-01 5.6145433093357851e-02 2.9566325145909338e+00 2.9660251849350718e+00 2 0 0 -9 0 +P 16 21 -6.4153613197677273e-01 -7.0041909254235180e-01 1.0594798881277963e+00 1.4229030701972845e+00 2 0 0 -9 0 +P 17 21 -6.0129688723679253e-01 1.0936253434099126e+00 -4.3678739538393438e+00 4.5426751166000470e+00 2 0 0 -9 0 +P 18 21 -3.0305601865621408e+00 -1.6350966724517046e+00 -5.7074862415394945e+00 6.6658259330709209e+00 2 0 0 -9 0 +P 42 21 -6.7308225475211777e-03 8.7119620191138739e-02 7.4004359099556938e-02 1.1450666950073547e-01 2 0 0 -13 0 +P 43 21 -5.4922530444249185e-01 -5.7443001559112279e+00 6.3312048654001273e+01 6.3574477091698256e+01 2 0 0 -13 0 +P 44 21 4.9246236874230154e-01 -5.4861752836502131e-01 4.3982393709953467e+00 4.4595975089272537e+00 2 0 0 -13 0 +P 45 21 4.3766303360700642e-01 2.8042708174598313e-01 -4.3159676870355774e+00 4.3471560076327940e+00 2 0 0 -13 0 +P 46 21 -1.4413565938367516e+00 2.1405263273210222e+00 -1.0566874068613508e+02 1.0570024654645897e+02 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 3 0 0 -6 0 +P 8 24 -1.3862798589011460e+01 5.3190305179177280e+00 5.2899710750727365e+02 5.3519431562641421e+02 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 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 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 2 0 0 -11 0 +P 21 21 8.7653865698945155e-01 1.9452440200741499e+00 3.7291978086873669e+00 4.2964183468500563e+00 2 0 0 -11 0 +P 22 21 -2.0857452765265194e-01 -7.8097599171663326e-02 5.4489705676514189e-01 5.8865556232250016e-01 2 0 0 -11 0 +P 23 21 4.3330618320281716e-01 -2.4374988476555451e-01 8.2552704145238334e+00 8.2702271958899356e+00 2 0 0 -11 0 +P 24 21 2.6578215572600017e-01 -6.1069772931963884e-01 4.5356490599717514e+00 4.5842888506420660e+00 2 0 0 -11 0 +P 25 21 1.6304916049466662e+00 -3.6620941265445184e-01 9.3379838052457362e+00 9.4863351066020183e+00 2 0 0 -11 0 +P 26 21 2.6494131576136009e+00 -1.8737085154722346e+00 9.4375769353402248e+00 9.9798813665872306e+00 2 0 0 -11 0 +P 27 21 4.8537372653729438e-01 -5.1150354578642432e-01 3.0414025015288576e+01 3.0422198164537093e+01 2 0 0 -11 0 +P 28 21 -5.8689790026581257e-01 -6.6235167154779151e-01 4.0123127325052408e+01 4.0132885583078945e+01 2 0 0 -11 0 +P 29 21 4.1758121948632577e-02 4.2034989308576348e-01 1.8538918442599272e+01 1.8543730336550770e+01 2 0 0 -11 0 +P 33 4 -1.6288441893558204e+01 -1.0335743124208518e+01 2.4206509617684176e+02 2.4283719178155783e+02 2 0 0 -11 0 +P 30 21 -2.5101750377319743e+00 -1.9382973720472618e+00 6.5945986831567893e+01 6.6022201982453325e+01 2 0 0 -11 0 +P 31 21 8.7123477679498865e-02 -8.9409756075726099e-01 2.1265649086936058e+01 2.1284614913998784e+01 2 0 0 -11 0 +P 32 21 -1.4970574855498966e+00 -4.0178069904057806e-01 2.0564942822669387e+01 2.0623275252607758e+01 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 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 2 0 0 -19 0 +P 56 2214 9.3832780090047519e-03 9.1663704029871862e-01 -1.5328564926592643e+00 2.1740194902635626e+00 2 0 0 -20 0 +P 57 -2214 1.8785147040946842e-01 2.0187292697287215e-01 -1.2056659478163527e+00 1.7030569421445392e+00 2 0 0 -21 0 +P 74 -323 4.7081490132332504e-01 -1.5865648494546025e-02 -3.2261583443112883e+01 3.2277241798891765e+01 2 0 0 -33 0 +P 75 211 -9.1757958893698033e-02 3.2181918311161262e-01 -1.6614336925585420e+01 1.6618292883789543e+01 1 0 0 0 0 +P 76 -211 -5.6452720769387055e-01 -4.8762420703273973e-01 -5.1472406189058162e+01 5.1478000612026534e+01 1 0 0 0 0 +P 77 2212 4.1629393788876684e-01 4.8136660226161482e-01 -2.2629571529474541e+02 2.2629855528880839e+02 1 0 0 0 0 +P 78 -2212 1.6931670804072943e-01 -2.7905712401517913e-01 -3.0378841559864082e+02 3.0379003990182349e+02 1 0 0 0 0 +P 79 113 -3.4822564064186329e-01 -1.3279027021738696e-01 -5.8612314068012904e+02 5.8612361777362742e+02 2 0 0 -34 0 +P 80 223 3.1115346594947385e-01 9.5015147249963641e-02 -1.6070126147938757e+02 1.6070340807922597e+02 2 0 0 -35 0 +P 81 111 -3.0700454395497856e-01 -2.6156960683994035e-01 -8.8893536417835003e+02 8.8893546592367738e+02 2 0 0 -36 0 +P 82 2214 4.7537093601289926e-01 -3.4129421297560109e-01 -4.4813354731965437e+03 4.4813356767779196e+03 2 0 0 -37 0 +P 65 -311 -5.9377456944595330e-01 4.5203893895285015e-02 -9.6189558945220821e-01 1.2359329210161991e+00 2 0 0 -28 0 +P 66 -211 -1.4391794255819610e-02 -7.1461790982322015e-01 -2.6658286748581150e-01 7.7552052901194535e-01 1 0 0 0 0 +P 67 211 -1.3248904077166496e-01 -4.3317492476548036e-01 -1.1482597221245971e+00 1.2422455617645944e+00 1 0 0 0 0 +P 68 -213 -5.2211437200382105e-01 7.9286955835134260e-02 -8.5790184370084488e-01 1.2011011581202928e+00 2 0 0 -29 0 +P 69 223 -9.5592288677932846e-01 -1.7918868574715585e-01 -3.0639090063121457e+00 3.3077794403724048e+00 2 0 0 -30 0 +P 70 211 7.0967562238259174e-02 3.8996758193883674e-01 -2.7910900605680138e+00 2.8225475409556564e+00 1 0 0 0 0 +P 71 221 -7.9420492103182139e-01 -1.1446092486693100e+00 -5.8237902163823607e+00 6.0130795584011185e+00 2 0 0 -31 0 +P 72 -211 -2.2868738909695571e-01 5.3871835020221159e-01 -8.0709761702752125e+00 8.0933708372239366e+00 1 0 0 0 0 +P 73 323 -3.7655233898013341e-01 -5.2497601208213923e-02 -9.3341650875051556e+00 9.3805406988977769e+00 2 0 0 -32 0 +P 58 -211 4.3147175131205556e-02 -2.3557373365294690e-02 2.1335388761743965e-01 2.5964648047518357e-01 1 0 0 0 0 +P 59 213 5.4943604442193794e-01 -4.4949867669686494e-01 1.8435024615148028e+00 2.2056789519361231e+00 2 0 0 -22 0 +P 60 313 -7.8106864351388319e-02 -2.9683058321885142e-01 1.5358913398195986e+00 1.7943222638789789e+00 2 0 0 -23 0 +P 61 -313 -2.8127679350961809e-01 -4.0985048763141485e-01 1.3613208314607497e+00 1.6998147557129637e+00 2 0 0 -24 0 +P 62 111 5.2287976246185208e-01 3.1551855841571058e-01 1.6575473956800690e+00 1.7716202121286238e+00 2 0 0 -25 0 +P 63 223 4.2062353527572627e-01 -5.3534021227090882e-02 -5.1902760003831150e-01 1.0278601073623364e+00 2 0 0 -26 0 +P 64 313 -1.0164883296342317e+00 3.0317113360459302e-01 -4.7102726088297031e-01 1.4817262414936587e+00 2 0 0 -27 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 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 2 0 0 -38 0 +P 85 -2214 5.9843068834265156e-01 7.0360055489560640e+00 1.7358883624012101e+01 1.8783497498949131e+01 2 0 0 -39 0 +P 86 2212 3.4886119643935054e-01 4.9862993156252911e+00 1.2320349332712045e+01 1.3328775010192965e+01 1 0 0 0 0 +P 87 213 -1.7633909923617705e-01 5.5008275946494822e-01 3.1366704522030666e+00 3.2788845202711485e+00 2 0 0 -40 0 +P 88 -213 9.3596281426276295e-01 3.1300597444033751e+00 1.2279947128812188e+01 1.2716588374863234e+01 2 0 0 -41 0 +P 89 223 2.1870910397305326e-01 -5.2382770779191845e-01 2.3985226478001938e+00 2.5828193483021984e+00 2 0 0 -42 0 +P 90 213 6.1204214328732109e-01 -1.6796573188674388e-01 4.5599062798313206e+00 4.6552912175547361e+00 2 0 0 -43 0 +P 91 221 5.4269273511143312e-01 7.7987872353382517e-02 1.0780774373457542e+00 1.3276106267994858e+00 2 0 0 -44 0 +P 92 -211 8.0098137319982554e-01 -5.7398530539559300e-01 6.2237539585614439e+00 6.3028266208608654e+00 1 0 0 0 0 +P 93 213 5.5057551623275680e-01 -1.0534036535349371e+00 9.4814928549044328e+00 9.5835615561107037e+00 2 0 0 -45 0 +P 94 -321 1.5575020040762801e+00 -8.3099763629883872e-01 8.8844400576506484e+00 9.0715646755244688e+00 1 0 0 0 0 +P 95 313 3.3279971362282484e-01 -1.8260757454558951e-01 7.4157827342161626e+00 7.4614577188472992e+00 2 0 0 -46 0 +P 96 -1114 -5.0615240179884302e-01 -3.3322629949875109e-02 2.3237572673526984e+01 2.3276087644739984e+01 2 0 0 -47 0 +P 97 -211 1.7928451814409808e-02 -8.9954836115038374e-03 3.5726096339188897e+00 3.5753911295660967e+00 1 0 0 0 0 +P 98 3122 -6.5369447377612477e-01 -1.0702310712709195e+00 2.9383501117182917e+01 2.9431404838655745e+01 2 0 0 -48 0 +P 99 321 -2.4057580701681808e-01 -2.6944576020956384e-01 4.7340903611494610e+01 4.7344854772714633e+01 1 0 0 0 0 +P 100 -211 5.7342976079554991e-02 -6.8530273376454165e-01 2.0599804297672083e+01 2.0611752592661787e+01 1 0 0 0 0 +P 101 223 -2.3410430059255853e+00 -1.1503275478832635e+00 4.4285266064355085e+01 4.4369010681721200e+01 2 0 0 -49 0 +P 102 223 -3.1953002833548410e+00 -2.9014902189151588e+00 5.7122129530076670e+01 5.7290619886004976e+01 2 0 0 -50 0 +P 103 111 -9.4229307627474845e-01 -2.6009023256420677e-01 1.3944330755467364e+01 1.3979203946897107e+01 2 0 0 -51 0 +P 104 411 -1.2640115643219200e+01 -7.6436973349308683e+00 1.8593454150456017e+02 1.8652974733115090e+02 2 0 0 -52 0 +V -13 0 0 0 0 0 4 1 0 +P 40 21 3.6780928056629758e+00 -1.8218289456156361e-01 5.0306149033881333e+01 5.0440759192474694e+01 2 0 0 -13 0 +P 41 21 -3.1335321392207005e-01 3.6624933692512527e+00 2.9580619506280872e+01 2.9808138121859425e+01 2 0 0 -13 0 +P 38 21 -3.6780928056629758e+00 1.8218289456156361e-01 2.3176136987604477e+02 2.3179062561742003e+02 2 0 0 -13 0 +P 39 21 1.9326626594872165e+00 3.0361539888006712e+00 4.1524606600260074e+02 4.1526166298688753e+02 2 0 0 -13 0 +P 105 92 4.3385916536288640e+00 7.8287873414824647e+00 5.6439088698045143e+03 5.9802581086412247e+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 1 0 0 0 0 +P 107 223 -2.5910643630590879e-01 2.6822308539292211e-01 3.3980500829705886e+02 3.3980610932012291e+02 2 0 0 -53 0 +P 108 -213 -8.4375493495365134e-02 9.5940084333554179e-02 4.2717554323319206e+02 4.2717675743312810e+02 2 0 0 -54 0 +P 109 113 -3.4570270925533353e-01 3.3786281887310854e-01 1.4073143387350351e+02 1.4073480152132342e+02 2 0 0 -55 0 +P 110 213 2.4695902556986107e-01 1.2962129105176443e-01 1.2135495094371257e+02 1.2135708944265656e+02 2 0 0 -56 0 +P 111 -213 7.1828294249699365e-01 2.4088172256065112e-02 1.8213566215684704e+01 1.8242281874573358e+01 2 0 0 -57 0 +P 112 211 3.2873577492781386e-01 9.7272501560572222e-01 3.9426955314388032e+01 3.9440569802087708e+01 1 0 0 0 0 +P 113 111 3.6542984071301632e-02 -1.2598519400611854e-01 1.0816686858157469e+00 1.0979227682619390e+00 2 0 0 -58 0 +P 114 -323 8.6173923366826966e-01 1.1984057445008052e+00 3.0606103245405613e+01 3.0655843761329539e+01 2 0 0 -59 0 +P 115 321 9.6888861415451444e-03 7.5096383158525493e-01 1.2274824797803829e+01 1.2307680745276246e+01 1 0 0 0 0 +P 116 113 1.7372162770218658e+00 5.9807209762691627e-01 1.9986477309083451e+01 2.0086000654430649e+01 2 0 0 -60 0 +P 117 111 3.0531402020407761e-01 1.8264305008182584e+00 4.1855045772255252e+01 4.1896206764135989e+01 2 0 0 -61 0 +P 118 -211 -3.5077119331308954e-01 -4.5694813801297091e-01 4.3816705499162680e+01 4.3820714309743344e+01 1 0 0 0 0 +P 119 211 -3.7029195227841366e-01 2.5395295815850005e-01 1.0279729792404048e+01 1.0290477764643340e+01 1 0 0 0 0 +P 120 -323 -7.3509947734007886e-01 2.6814421430056673e-01 6.0116876101422612e+01 6.0128892408855542e+01 2 0 0 -62 0 +P 121 311 -6.9510494917716592e-01 3.2581753110533535e-01 7.2855221980526849e+01 7.2860966046400250e+01 2 0 0 -63 0 +P 122 113 -5.2905073522641244e-01 3.1400871973230815e-01 7.3063252128309969e+01 7.3071887443745908e+01 2 0 0 -64 0 +P 123 211 6.6028226411728730e-01 4.7432898901159826e-01 8.6408369660818963e+01 8.6412306923746485e+01 1 0 0 0 0 +P 124 -323 3.0867648137115933e-01 4.2956262666170625e-01 1.9432116829669465e+02 1.9432395791775645e+02 2 0 0 -65 0 +P 125 323 6.2311833999943100e-01 6.5723937948714817e-01 2.0539373968623146e+01 2.0576811112060657e+01 2 0 0 -66 0 +P 126 -213 8.2345550936719503e-01 5.3491978714712018e-01 3.7603445724436263e+01 3.7621593707277178e+01 2 0 0 -67 0 +P 127 213 9.8022239868273831e-01 8.7532758950826225e-02 3.4555170316705698e+01 3.4579992236556180e+01 2 0 0 -68 0 +P 128 -211 -5.4933402605629666e-01 6.9404217019334813e-01 8.2074041622333471e+00 8.2561749783622673e+00 1 0 0 0 0 +P 129 113 -1.8452176626646558e-01 6.0381110882112632e-01 1.3101634256941848e+01 1.3132355266544623e+01 2 0 0 -69 0 +P 130 -3112 1.4055290907999738e+00 4.7729917439304131e-01 2.0435320259645351e+01 2.0524120034603992e+01 2 0 0 -70 0 +P 131 3122 5.3829758889303592e-01 4.0787393536340916e-01 1.1614299998698201e+01 1.1687293603033934e+01 2 0 0 -71 0 +P 132 113 3.0711687734085993e-03 -8.8265073989745946e-01 1.3713684841961960e+01 1.3753831262363400e+01 2 0 0 -72 0 +P 133 221 -7.5480206365605290e-02 1.8124278719185263e-01 5.6912987989439365e+00 5.7209378366508021e+00 2 0 0 -73 0 +P 134 -323 3.4119607349226949e-02 2.9236525030979216e-01 9.4123046873792351e+00 9.4590213924699373e+00 2 0 0 -74 0 +P 135 311 3.1370849344690394e-01 -1.6502140696154801e+00 1.7013060483686480e+01 1.7103026689591879e+01 2 0 0 -75 0 +P 136 111 -4.0944263992706453e-01 4.8640258974619648e-02 1.8573871902464190e+00 1.9073845771304352e+00 2 0 0 -76 0 +P 137 211 4.2521983009641312e-01 1.0095857429967137e-01 1.7231640563937192e+00 1.7831933960676001e+00 1 0 0 0 0 +P 138 331 -6.4813629763747049e-01 -1.8623822616724834e+00 1.5746494503179859e+01 1.5898343095215896e+01 2 0 0 -77 0 +P 139 223 2.6048232688869083e-01 -7.5634998087022398e-01 9.4625709838721264e+00 9.5283224643966609e+00 2 0 0 -78 0 +P 140 -213 1.8439421727607613e-01 -1.4205338969033782e-02 4.9823217426385797e+00 5.0459413515342293e+00 2 0 0 -79 0 +P 141 223 2.2982888723697886e-02 -2.4721922626951739e-01 7.1905766008958572e-01 1.0910344129213754e+00 2 0 0 -80 0 +P 142 211 -2.5858770326589875e-01 3.7058982588567041e-01 -1.3267284914603703e+00 1.4085072574477475e+00 1 0 0 0 0 +P 143 113 3.8294560107957676e-01 -4.0649528732935525e-01 -2.2779494568707106e+00 2.5112020323957029e+00 2 0 0 -81 0 +P 144 -213 -1.7928345872764893e-02 -4.4205911706645860e-02 -7.7159032233104536e+00 7.7555350485384382e+00 2 0 0 -82 0 +P 145 -2112 1.2412666094555554e-01 6.0949944184229277e-01 -5.5543953322427688e+00 5.6675388211554232e+00 1 0 0 0 0 +P 146 2212 -6.3965319906624407e-01 -1.8727663295352737e-02 -7.6895933419740139e+00 7.7730112117685382e+00 1 0 0 0 0 +P 147 223 -1.7596507607359885e-02 5.0768816135776895e-01 -3.0916304915378632e+01 3.0930486957261824e+01 2 0 0 -83 0 +P 148 -213 -6.6424238417843881e-02 1.1248577022620441e+00 -6.6508630910885344e+01 6.6523631467643838e+01 2 0 0 -84 0 +P 149 213 -4.1830686176762299e-01 -2.4546245054114987e-01 -4.5077618999398048e+01 4.5083098707959479e+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 2 0 0 -15 0 +P 49 21 3.1335321392207005e-01 -3.6624933692512527e+00 -1.5996227394120206e+01 1.6413145303715751e+01 2 0 0 -15 0 +P 50 21 -1.5946597234291504e+00 9.2504118596319991e+00 3.4553214778277602e-01 9.3932130643086573e+00 2 0 0 -15 0 +P 51 21 -1.9326626594872165e+00 -3.0361539888006712e+00 -2.2403930493388815e+00 4.2394312135724528e+00 2 0 0 -15 0 +P 150 92 -1.6193094455651464e+00 -6.6986473580519243e+00 -3.1231955917792302e+01 4.6358110327498416e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 16 0 +P 151 -213 -9.1575437638018786e-01 1.9786173531659450e+00 1.0038490462694034e-01 2.3689498194545235e+00 2 0 0 -86 0 +P 152 221 -1.1496652822320098e-01 -7.9300120639953120e-01 -1.4401545991065330e+00 1.7366102003012958e+00 2 0 0 -87 0 +P 153 213 -7.2057087624760130e-01 -1.4035436254698561e+00 -1.4434746483930367e+00 2.3576881056684051e+00 2 0 0 -88 0 +P 154 311 -4.2407341657881786e-01 -1.1323088737363824e+00 -4.2536503779649254e-01 1.3749809062203735e+00 2 0 0 -89 0 +P 155 -323 6.8739672657553341e-01 -3.4637271310558235e+00 -5.6861873569991586e+00 6.7553227489313796e+00 2 0 0 -90 0 +P 156 211 3.2027042541495282e-01 -2.3824354336932485e+00 -4.9432086795529084e+00 5.4984873897845601e+00 1 0 0 0 0 +P 157 -211 3.7929530102443287e-01 -1.7398661940045272e+00 -1.6262506930350391e+00 2.4156097366743579e+00 1 0 0 0 0 +P 158 211 3.5929042858649445e-02 -2.5352917615846560e-01 -5.9214749380134923e-01 6.6006543508924009e-01 1 0 0 0 0 +P 159 113 -1.8124205568734308e-01 -3.1612383038769862e+00 -1.1255356346808174e+01 1.1743159345237892e+01 2 0 0 -91 0 +P 160 -211 2.8532095261363383e-01 1.0522733295491603e-02 -1.4240332868527008e+00 1.4590645499363166e+00 1 0 0 0 0 +P 161 111 8.0154759639689030e-02 -3.4769109444583562e-01 -8.8595154092897399e-01 9.6459505281971181e-01 2 0 0 -92 0 +P 162 211 3.8450845074859470e-02 2.0662978645006660e-01 -7.8432525673484271e-02 2.6420783886723115e-01 1 0 0 0 0 +P 163 2112 -6.2517197323617857e-01 3.1384370147711613e+00 1.1380234215497604e-02 3.3351983728762726e+00 1 0 0 0 0 +P 164 -2212 4.7227611869119018e-01 9.0023711940114270e-01 -1.4423015082082278e+00 1.9985134067384713e+00 1 0 0 0 0 +P 165 213 -8.8060853310417464e-01 -2.2704271380420674e-01 -3.0207510516881181e-01 1.2785039593373555e+00 2 0 0 -93 0 +P 166 113 -5.6015858000582994e-02 1.9712923875091308e+00 2.0121776569014715e-01 2.1471534595610358e+00 2 0 0 -94 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 2 0 0 -17 0 +P 53 21 3.0362721334232550e+00 -7.6960555799361619e-01 4.2639680730324301e+00 5.2908094759627442e+00 2 0 0 -17 0 +P 167 92 0 0 3.1375449003662573e+02 3.1479718166639202e+02 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 2 0 0 -95 0 +P 169 311 -3.9549707014260671e-01 -2.8851686492632728e-01 8.4163752596000130e+00 8.4452772514077648e+00 2 0 0 -96 0 +P 170 -323 5.2128742450140031e-01 9.7134097701761499e-02 8.3960820516559060e+00 8.4589041202825257e+00 2 0 0 -97 0 +P 171 113 3.8591072460653691e-01 -2.7644757220945215e-01 4.7314982713787517e+00 4.8147268927460747e+00 2 0 0 -98 0 +P 172 213 6.0325469359176376e-01 -3.0740340709509106e-01 1.4598324375000185e+00 1.7877548921809201e+00 2 0 0 -99 0 +P 173 1114 3.6710399464270077e-01 1.2951245679680667e-01 3.1121459445196282e+00 3.3467359928685627e+00 2 0 0 -100 0 +P 174 -1114 9.7380249513257433e-01 -6.3457340363777717e-02 1.2276570613075052e+01 1.2375786282599574e+01 2 0 0 -101 0 +P 175 2112 -3.2151359419442543e-01 -3.9573049090654866e-01 1.2203622044795935e+01 1.2250353317754321e+01 1 0 0 0 0 +P 176 211 -2.6031509045536677e-01 -2.5957138973744100e-02 2.1813184663724797e+01 2.1815199808345582e+01 1 0 0 0 0 +P 177 -3222 -1.3419797779501037e+00 1.0195367754860356e+00 7.0658805821816856e+01 7.0688908649965128e+01 2 0 0 -102 0 +P 178 -323 6.5303950764476326e-01 4.5843110713109797e-01 4.3702629036619392e+01 4.3720185385460475e+01 2 0 0 -103 0 +P 179 113 -1.2053222613750429e+00 -6.5261496518697781e-01 8.2787798768823720e+01 8.2800346532049119e+01 2 0 0 -104 0 +P 180 213 2.0228441721426238e-01 1.5934395893829920e-01 2.2925780883396051e+01 2.2952070100818403e+01 2 0 0 -105 0 +P 181 -211 -5.1204870311642947e-01 -4.2325221952605135e-01 9.6591851821438173e+00 9.6830095777884910e+00 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 1 0 0 0 0 +P 183 111 2.5327040357331115e-01 5.8815220376537669e-01 -1.6074980532960521e+00 1.7356089720529952e+00 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 1 0 0 0 0 +P 185 111 1.9093758885898043e-01 3.4307324296551578e-01 -5.4152418423568671e-01 6.8236680413856798e-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 1 0 0 0 0 +P 187 111 -1.2735758821479068e-01 -8.9349224266055422e-03 -1.3398243917761030e-01 2.2906479983323427e-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 0 0 0 0 +P 189 111 -2.4862271094782207e-01 -1.2852231239011683e-01 2.9308707044207477e-01 4.2714267925538041e-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 1 0 0 0 0 +P 191 -211 7.2622240627725473e-02 1.3135692979402222e-01 1.4767520864444364e-01 2.5261905111626654e-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 1 0 0 0 0 +P 193 211 -2.0819494951518142e-01 -3.7697843105844819e-01 3.5213703177172428e-01 5.7353129690708116e-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 1 0 0 0 0 +P 195 22 2.5082939369000368e-01 1.0548989384833672e-01 8.8928486895552616e-01 9.2998445180351008e-01 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 0 0 0 0 +P 197 -211 3.7753509906070848e-01 -2.8072898252255268e-02 -4.9028060511515958e-01 6.3496117620776427e-01 1 0 0 0 0 +P 198 111 -5.0087081665597831e-03 8.2679167170274983e-03 1.1982873351947212e-01 1.8075389727808949e-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 2 0 0 -111 0 +P 200 111 -1.7089083775893985e-01 2.9320013029682768e-01 5.3461345449179000e-02 3.6911747546447249e-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 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 0 0 0 0 +P 203 111 -5.7967958732875779e-01 1.9060824615963567e-01 -5.1323302876053767e-01 8.0869504121170799e-01 2 0 0 -114 0 +V -30 0 0 0 0 0 0 3 0 +P 204 211 -2.9500658243202599e-01 -2.2831491421237085e-01 -7.6054280475650438e-01 8.5852299124538090e-01 1 0 0 0 0 +P 205 -211 -3.1517645369553471e-01 -1.6670151526215007e-01 -1.3583103023518337e+00 1.4112449307366599e+00 1 0 0 0 0 +P 206 111 -3.4573985065176793e-01 2.1582774372736507e-01 -9.4505589920380773e-01 1.0380115183903642e+00 2 0 0 -115 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 1 0 0 0 0 +P 208 22 -5.2123567655416625e-01 -1.0273993326069992e+00 -5.1403413175097858e+00 5.2678596108526312e+00 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 2 0 0 -116 0 +P 210 211 -2.0554842986190747e-01 2.1336500028280095e-01 -4.1667454612314101e+00 4.1795959498445461e+00 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 1 0 0 0 0 +P 212 111 -3.1214615232548548e-02 9.2315020056256067e-02 -1.5055624232852555e+01 1.5056544658599103e+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 0 0 0 0 +P 214 -211 -4.3948488936305879e-01 -8.5865907398658278e-02 -2.5473884247645952e+02 2.5473927429030923e+02 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 0 0 0 0 +P 216 211 7.5480641148820526e-02 -1.0982597901254602e-01 -1.5712350184328226e+01 1.5713535158350382e+01 1 0 0 0 0 +P 217 111 2.4767673741972890e-01 5.0668514556659799e-02 -1.0757404831534404e+02 1.0757443005480903e+02 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 1 0 0 0 0 +P 219 22 -1.0394410803041193e-01 -1.5801888561298336e-01 -3.1804802338288772e+02 3.1804807962336088e+02 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 1 0 0 0 0 +P 221 111 2.7792522862110680e-01 -4.6183830318953831e-02 -1.5611958512606125e+03 1.5611958825170939e+03 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 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 1 0 0 0 0 +P 224 111 -4.2370572833966343e-02 3.7630958362777911e-01 7.0705246002361244e-01 8.1335536501447692e-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 0 0 0 0 +P 226 111 -2.4791741699645198e-01 5.9538292801339954e-01 1.5554365516311630e+00 1.6892443112736077e+00 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 0 0 0 0 +P 228 111 1.0381122433908205e-01 6.6594352716038974e-01 2.1528987967838971e+00 2.2599668982662449e+00 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 0 0 0 0 +P 230 -211 2.2523982939715814e-01 -2.3702484908296056e-02 5.6148232442395496e-01 6.2131873791011349e-01 1 0 0 0 0 +P 231 111 -2.1496075116390248e-02 -2.6359322531633833e-01 3.9880052266159505e-01 4.9719707053968126e-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 0 0 0 0 +P 233 111 3.7290789623554016e-01 -5.1190371861218900e-02 9.2180964685596467e-01 1.0048051446339359e+00 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 2 0 0 -125 0 +P 235 111 1.6865575199696520e-01 1.3369711769649753e-01 2.2670061612841966e-01 3.4048854858132604e-01 2 0 0 -126 0 +P 236 111 1.1737773793019404e-01 1.8028103922700229e-02 4.6420344251526557e-01 4.9780215179896570e-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 0 0 0 0 +P 238 111 1.4412581789419426e-01 5.3202859311188878e-02 1.1740086701081160e+00 1.1916873556061522e+00 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 2 0 0 -129 0 +P 240 111 8.1017910362551057e-02 -1.5036507976175487e-01 3.4051200055065252e+00 3.4120720114487666e+00 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 1 0 0 0 0 +P 242 211 -2.4056819339966279e-01 8.0717251922855018e-03 9.3665887871712474e+00 9.3707205433352510e+00 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 1 0 0 0 0 +P 244 -211 -1.0461544316330479e-02 -1.0680244434445450e-01 2.1851814227995972e+00 2.1922622656689379e+00 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 0 0 0 0 +P 246 -211 -4.9088454070215592e-01 -3.0027745336315973e-02 7.2664188190925962e+00 7.2843799693009830e+00 1 0 0 0 0 +P 247 111 -7.8433224325262052e-01 -2.9777701257474420e-01 1.5463318749655521e+01 1.5486648913527794e+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 0 0 0 0 +P 249 211 -1.0146380362055605e+00 -1.1421994186045756e+00 1.6785995231936074e+01 1.6855955195949480e+01 1 0 0 0 0 +P 250 111 -9.6179822519988656e-01 -8.2506899661188349e-01 1.9413229757131628e+01 1.9455012307339945e+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 1 0 0 0 0 +P 252 22 -4.0117919049830292e-01 -8.2636215895192267e-02 4.9896361441928754e+00 5.0064201120663352e+00 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 0 0 0 0 +P 254 14 -1.7622608552463395e+00 -6.1124567981443900e-01 2.3767021479078203e+01 2.3840102654770387e+01 1 0 0 0 0 +P 255 -323 -7.3856701894561985e+00 -4.9147012895514184e+00 1.1208276364753114e+02 1.1243641907035618e+02 2 0 0 -133 0 +P 256 211 -8.3032704528557788e-01 -5.0102375923189180e-01 1.3941317982788394e+01 1.3975703727954690e+01 1 0 0 0 0 +V -53 0 0 0 0 0 0 3 0 +P 259 111 -2.1788911425523635e-01 -3.3819150870949083e-02 1.5879812474349990e+02 1.5879833519610222e+02 2 0 0 -134 0 +P 257 -211 1.3857831485530528e-01 2.6488289772950824e-01 1.2033220667879797e+02 1.2033265895372175e+02 1 0 0 0 0 +P 258 211 -1.7979563690597777e-01 3.7159338534362971e-02 6.0674676874761047e+01 6.0675115170299051e+01 1 0 0 0 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 0 0 0 0 +P 261 111 2.3397054695967343e-01 -2.0782937300071624e-01 6.3017049896018172e+01 6.3017971503871578e+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 0 0 0 0 +P 263 -211 -1.7657170564239925e-02 5.4286517071622287e-01 7.7233692867527111e+01 7.7235728831348879e+01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 264 211 2.3313981532533326e-01 2.5928411580336491e-01 1.0957397434947973e+02 1.0957461803242364e+02 1 0 0 0 0 +P 265 111 1.3819210244527837e-02 -1.2966282475160049e-01 1.1780976594232847e+01 1.1782471410232937e+01 2 0 0 -136 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 0 0 0 0 +P 267 111 2.6278645540909368e-01 -2.0399835461058230e-01 1.2281845329601460e+01 1.2287091452027347e+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 1 0 0 0 0 +P 269 22 8.3218703776255343e-02 -1.0804888052179129e-01 8.5457841226349773e-01 8.6539249820356823e-01 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 2 0 0 -138 0 +P 271 -211 1.1684349484407686e-01 3.3304617277479132e-01 1.3094954766581912e+01 1.3100453895923364e+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 0 0 0 0 +P 273 211 2.5378665607382822e-01 5.1504212546178629e-03 1.3539237060033491e+00 1.3845661342883115e+00 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 1 0 0 0 0 +P 275 22 1.4120857610435908e-01 6.4894838398572974e-01 1.6291014133057946e+01 1.6304545849257401e+01 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 2 0 0 -139 0 +P 277 -211 -2.5911615941498739e-01 3.5248729860197742e-01 3.2768538452078332e+01 3.2771755835627452e+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 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 0 0 0 0 +P 280 211 -1.7020988803033060e-01 4.8234612082944878e-01 2.0173812743598088e+01 2.0180778716018942e+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 1 0 0 0 0 +P 282 111 -3.2573253343187690e-02 3.1947085801068070e-01 3.7927127562285655e+01 3.7928727204748640e+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 1 0 0 0 0 +P 284 111 1.2384987075047131e-01 1.5431966147040221e-01 1.6072972622645629e+00 1.6250469033490718e+00 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 0 0 0 0 +P 286 111 6.4486344276971752e-01 4.1954089445604403e-01 3.4093148585283814e+01 3.4102094708105270e+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 0 0 0 0 +P 288 111 8.2817694285958010e-01 3.5851535166798970e-01 2.9026079952350351e+01 2.9040419199913433e+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 0 0 0 0 +P 290 211 -2.0671728245952670e-01 5.6845359322346689e-03 5.6135734926813177e+00 5.6191148316661534e+00 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 1 0 0 0 0 +P 292 211 5.3478597298736574e-01 1.8426256885623099e-01 5.3298961272609038e+00 5.3616435207384239e+00 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 1 0 0 0 0 +P 294 -211 1.1536274026245073e-01 1.0969302893092955e-01 2.8246189572817935e+00 2.8325418198453116e+00 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 0 0 0 0 +P 296 -211 -1.8119511039128258e-01 -1.3216308974087224e-01 3.6693369790839530e+00 3.6788330216649565e+00 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 0 0 0 0 +P 298 211 9.0350579840365638e-02 1.9611894399870142e-01 2.5597390976925207e+00 2.5726192684943445e+00 1 0 0 0 0 +P 299 111 -7.3500095204024493e-02 -2.8029675650135422e-02 1.4396825602645615e+00 1.4481344555813784e+00 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 1 0 0 0 0 +P 301 111 2.0114716920673079e-01 1.5846874708903921e-01 5.7634264972716922e+00 5.7706912165993858e+00 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 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 1 0 0 0 0 +P 304 22 -2.3150197645234680e-01 6.1989629781244990e-02 1.3070978228067121e+00 1.3288869770179124e+00 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 1 0 0 0 0 +P 306 113 -1.6665913895179937e-01 -8.1594819202784230e-01 7.9877425118423817e+00 8.0545508376702948e+00 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 0 0 0 0 +P 308 -211 3.5179468682444448e-01 -2.3385890449493285e-01 3.1756943767047940e+00 3.2067061056517057e+00 1 0 0 0 0 +P 309 111 9.0534432904070691e-02 -2.3749201050634819e-01 3.2731976007131105e+00 3.2858242607159731e+00 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 0 0 0 0 +P 311 111 -9.4170629718448959e-02 -2.9997688368599973e-01 1.5278571859945593e+00 1.5657015741969307e+00 2 0 0 -150 0 +V -80 0 0 0 0 0 0 3 0 +P 312 211 -2.4615362835751831e-01 -1.3753471735515529e-01 4.7223885765926288e-01 5.6744755776623024e-01 1 0 0 0 0 +P 313 -211 7.9426483332274311e-02 -1.5467016237984951e-01 9.7427050026002354e-02 2.4331716002351791e-01 1 0 0 0 0 +P 314 111 1.8971003374894185e-01 4.4985653465487427e-02 1.4939175240432037e-01 2.8026969513162736e-01 2 0 0 -151 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 0 0 0 0 +P 316 -211 -1.9425629667973457e-01 -1.1419431352636915e-02 -1.1646984667205262e+00 1.1890619056606293e+00 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 0 0 0 0 +P 318 111 2.7228862930317249e-01 -1.6409330052984511e-01 -5.7080765886119700e+00 5.7185160357199880e+00 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 0 0 0 0 +P 320 -211 -2.6126819940006357e-01 2.3461403354789964e-01 -1.1509852823941991e+01 1.1516053865385521e+01 1 0 0 0 0 +P 321 111 -1.7919897259041917e-02 1.5330504745657006e-01 -4.6525951151258740e+00 4.6571111717444085e+00 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 0 0 0 0 +P 323 111 -1.7831872374999885e-01 1.0951995265665338e-02 -2.0281315249784544e+01 2.0282551254094816e+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 0 0 0 0 +P 325 111 -2.2960427640955786e-01 -3.4454698564168434e-01 -3.2341356799315314e+01 3.2344288676211129e+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 0 0 0 0 +P 327 111 1.0395726111678255e-01 4.3839738579715976e-01 2.0604050465128451e-01 5.1348969801705135e-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 1 0 0 0 0 +P 329 -211 -1.2443340358908676e-01 -5.8991175846200250e-01 -1.2399150957152332e+00 1.3857664969911101e+00 1 0 0 0 0 +P 330 211 2.9365126251793771e-03 -7.2719994381920436e-02 -1.0380865883666240e-01 1.8855461606328006e-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 0 0 0 0 +P 332 111 -4.8875895366781463e-01 -1.0438837818201401e+00 -1.5081607656981406e+00 1.9029837519875930e+00 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 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 2 0 0 -158 0 +P 335 -211 1.4206249538727772e-01 -1.2704767907742456e+00 -1.5334522019844594e+00 2.0013116871598671e+00 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 0 0 0 0 +P 337 -211 -5.8985066728510137e-02 -1.1565457627145266e-02 -1.0576927309564947e+00 1.0685535531386812e+00 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 1 0 0 0 0 +P 339 22 6.5158901574831854e-02 -1.4829414915611150e-01 -5.5279133443610673e-01 5.7603393698290495e-01 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 0 0 0 0 +P 341 111 -9.6650164117480342e-01 -6.5388813680532676e-02 -3.5814431438071642e-01 1.0415796031371627e+00 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 0 0 0 0 +P 343 -211 2.8288613453084904e-01 1.1469241558673431e+00 3.3338963934249888e-01 1.2353493517797889e+00 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 0 0 0 0 +P 345 111 2.2635792709284186e-01 7.3162424785401936e-01 7.5368670247839322e+00 7.5768790475288128e+00 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 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 2 0 0 -161 0 +P 348 -211 2.0356629405886905e-02 2.6450194609587585e-01 2.1461021282513455e+00 2.1669355785611693e+00 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 0 0 0 0 +P 350 211 1.9833343048630526e-02 1.5399358150276715e-01 4.7818642606202344e-01 5.2177526542612684e-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 0 0 0 0 +P 352 111 4.4384650908363849e-01 -1.1612861185648843e-01 2.4019833176905525e-01 5.3516391610616321e-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 1 0 0 0 0 +P 354 -211 1.2249192763084313e-01 1.6638271141054020e-01 8.2289236642324926e-01 8.5983667670593000e-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 1 0 0 0 0 +P 356 211 -5.6839362417106777e-02 6.3129684964331675e-02 1.2267245939576892e+00 1.2375577095894705e+00 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 1 0 0 0 0 +P 358 -211 -2.0412167434448733e-01 4.0920312535230922e-02 1.4585951983370913e+01 1.4588105263399255e+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 2 0 0 -163 0 +P 360 -211 1.7967918223592744e-01 2.5885318350017517e-01 5.4584200602766515e+00 5.4692887031558053e+00 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 0 0 0 0 +P 362 211 -8.8439883740469394e-01 -2.9929391419485957e-01 5.4686939688980750e+01 5.4695087443771357e+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 0 0 0 0 +P 364 111 1.0891567153138218e-01 5.3615728162335041e-01 7.6529234059726923e+00 7.6736421282352971e+00 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 1 0 0 0 0 +P 366 22 4.1026448030886967e-02 1.0734013789231003e-01 -1.7137726053839816e-01 2.0633768456202375e-01 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 1 0 0 0 0 +P 368 22 1.3030486076758502e-01 3.1311964620364563e-01 -4.9591895367456895e-01 6.0079853377986470e-01 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 1 0 0 0 0 +P 370 22 -1.5504829056605138e-01 -1.9221804201258064e-02 -1.1386631619291016e-01 1.9332611858605653e-01 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 1 0 0 0 0 +P 372 22 -6.7287207673414770e-02 -1.0743813451843676e-01 1.4027076936302429e-01 1.8906720975087596e-01 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 1 0 0 0 0 +P 374 22 -6.3455584296092616e-03 -6.2926021078025848e-02 6.6649886259870242e-02 9.1881214505193501e-02 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 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 1 0 0 0 0 +P 377 22 -1.0138909794407150e-01 2.3445286016514555e-01 -1.4024037988002492e-02 2.5582135654205801e-01 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 0 0 0 0 +P 379 211 -1.2733627113911816e-01 1.6113936305111573e-01 -1.7659441751103602e-01 3.0470607717634451e-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 1 0 0 0 0 +P 381 22 -4.6791164082034109e-01 1.7113690629232955e-01 -4.7660078537344397e-01 6.8947621636215795e-01 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 1 0 0 0 0 +P 383 22 -3.3008524394544181e-01 1.5663386576763144e-01 -7.6368839195815341e-01 8.4658750060904175e-01 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 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 1 0 0 0 0 +P 386 22 1.5719078175245767e-02 6.3860166588475972e-02 -1.3060589964743238e+01 1.3060755546194381e+01 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 1 0 0 0 0 +P 388 22 1.0260154843681210e-02 -2.2971575277084405e-02 -2.3710361774420765e+01 2.3710375122253165e+01 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 1 0 0 0 0 +P 390 22 2.3552360385043181e-01 7.1908758031656028e-03 -1.0339574842891241e+03 1.0339575111389108e+03 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 1 0 0 0 0 +P 392 22 4.2736363582437008e-02 1.0174128803230018e-01 1.4668580658605107e-01 1.8356037785023779e-01 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 1 0 0 0 0 +P 394 22 -2.6235155521216191e-02 6.0881532406653491e-02 2.9457331756189681e-01 3.0194086141631588e-01 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 1 0 0 0 0 +P 396 22 1.0782252001879759e-01 5.1112676566625326e-01 1.4802027003965594e+00 1.5696739472466619e+00 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 1 0 0 0 0 +P 398 22 1.2707702234842765e-02 -1.8627834838151267e-01 1.6714412980962137e-01 2.5059582778180722e-01 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 1 0 0 0 0 +P 400 22 9.2426469250633983e-02 -4.9499445074743652e-02 3.8643277767653045e-01 4.0040371994231605e-01 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 1 0 0 0 0 +P 402 22 2.4098140449885502e-01 -7.3933929715660526e-02 2.6347993526548569e-01 3.6463672273229075e-01 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 1 0 0 0 0 +P 404 22 1.7349290496990249e-01 6.5493135264584043e-02 1.5914491837677636e-01 2.4436907309811426e-01 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 1 0 0 0 0 +P 406 22 4.2183059397594619e-02 1.5839315147350983e-03 1.9522297629404592e-02 4.6508487869585918e-02 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 1 0 0 0 0 +P 408 22 7.3374743433465395e-02 -5.4860080114057562e-03 8.9298349100003183e-01 8.9600974573741798e-01 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 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 1 0 0 0 0 +P 411 22 5.8407246803437063e-02 -1.6620906127341661e-01 3.2288752809096777e+00 3.2336778500954755e+00 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 1 0 0 0 0 +P 413 22 -1.4353546444437934e-01 -1.8343298954584674e-03 2.7875972997355194e+00 2.7912908303887272e+00 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 1 0 0 0 0 +P 415 22 -7.7204765374333273e-01 -5.8882294422292536e-01 1.4997827233334203e+01 1.5029224589453543e+01 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 2 0 0 -165 0 +P 417 -211 -1.6323447011722816e+00 -8.8456314377591827e-01 2.1686911267723048e+01 2.1766685583656617e+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 1 0 0 0 0 +P 419 22 -1.4527780310138280e-01 -7.1017137651406562e-02 7.7019024855621765e+01 7.7019194612673004e+01 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 1 0 0 0 0 +P 421 22 1.5872388908114299e-01 -6.2326529194992208e-02 2.6001459406053321e+01 2.6002018558447446e+01 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 1 0 0 0 0 +P 423 22 -3.9175857367738848e-02 -2.5778290654386461e-02 1.2992834958659103e+00 1.3001295591975057e+00 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 1 0 0 0 0 +P 425 22 1.1707757909111839e-01 -7.7828899667208698e-02 7.5703948639384269e+00 7.5717001322750876e+00 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 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 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 0 0 0 0 +P 429 211 -2.0594778188345286e-01 -2.7975227103050119e-02 3.2761197474600237e+01 3.2762154032615854e+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 1 0 0 0 0 +P 431 22 -8.5701044998682224e-02 1.9572668409402283e-01 2.3390663781688637e+01 2.3391639655055833e+01 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 1 0 0 0 0 +P 433 22 1.2915793110420093e-01 9.2048864231064606e-02 8.1502456738822093e-01 8.3031307951862532e-01 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 1 0 0 0 0 +P 435 22 1.7119797565636166e-01 1.5360451337469549e-01 8.0697161914225859e+00 8.0729934041534896e+00 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 1 0 0 0 0 +P 437 22 7.1395691893479074e-01 3.5202350085120604e-01 2.4681962924026539e+01 2.4694795986407076e+01 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 1 0 0 0 0 +P 439 22 3.3797644432614085e-02 2.2387159118688409e-03 6.1743533525827154e-01 6.1836371646759947e-01 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 1 0 0 0 0 +P 441 22 1.8302887004733309e-01 1.2889321762858399e-01 3.5816146721340854e+00 3.5886037240781548e+00 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 0 0 0 0 +P 443 211 1.4202736966257906e-01 -1.0267272091220803e+00 1.2193506724211735e+01 1.2238277107255811e+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 0 0 0 0 +P 445 -211 2.1778470945671029e-02 -2.4462331826562256e-01 9.8717902473717956e-01 1.0267994358281778e+00 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 1 0 0 0 0 +P 447 22 4.8588031729018710e-02 -2.9686399776247515e-03 4.6635888441359208e-01 4.6889254496324323e-01 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 1 0 0 0 0 +P 449 22 -9.1354270497869719e-02 -8.4166128558272837e-02 4.7690219716075166e-01 4.9281360126465479e-01 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 1 0 0 0 0 +P 451 22 -1.9531428350450693e-02 1.7786760017401684e-03 2.9058724355280816e-02 3.5057807160233830e-02 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 1 0 0 0 0 +P 453 22 7.6955925907224484e-02 -5.9373409033625792e-02 -8.7929594389071397e-01 8.8465178074493211e-01 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 1 0 0 0 0 +P 455 22 5.3670388799414187e-02 1.0116877789444984e-01 -2.9364681511251565e+00 2.9387005350710602e+00 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 1 0 0 0 0 +P 457 22 -1.1367821570845126e-01 4.3241950459031744e-02 -1.7024964794881363e+01 1.7025399227916957e+01 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 1 0 0 0 0 +P 459 22 -5.5639920627447256e-02 -1.7037205726974725e-01 -1.7162333386727944e+01 1.7163269202452724e+01 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 1 0 0 0 0 +P 461 22 4.9996200145225052e-02 3.5923933344749981e-01 2.0713822197716783e-01 4.1768260884148362e-01 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 1 0 0 0 0 +P 463 22 -1.7159394224262578e-01 -4.6238326591962625e-01 -7.3145491151569741e-01 8.8219558670246279e-01 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 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 1 0 0 0 0 +P 466 22 -1.3303388673837305e-01 -1.6754162505457412e-02 -2.5178224124823680e-03 1.3410837562090722e-01 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 1 0 0 0 0 +P 468 22 1.3186361989659259e-01 6.0223555965823572e-01 5.8276278810181124e+00 5.8601469608866257e+00 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 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 1 0 0 0 0 +P 471 22 1.8665769195734039e-01 -9.9018351789270556e-02 1.6058137083810370e-01 2.6539047574875341e-01 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 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 1 0 0 0 0 +P 474 22 5.2001694195469371e-02 4.5689027713045866e-01 6.6906422812036404e+00 6.7064258019130722e+00 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 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 0 0 0 0 +P 477 211 -9.1786539306086476e-02 -1.8807822687740958e-01 1.3620887632698674e+01 1.3623210263213544e+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 0 0 0 0 +P 479 -211 1.0609611203995273e-01 -2.7402782356586536e-01 -7.9707759184005411e-01 8.6090656019789924e-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 0 0 0 0 +P 481 -211 4.9014070372956692e-01 1.8660786125943651e-01 3.4021716724520246e+01 3.4026045157669103e+01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 2 9.5585977786327769e-02 7.9414932775068517e-02 2.4315489624226007e+02 2.4315492799858069e+02 3 0 0 -3 0 +P 24 2101 -9.5585977786327769e-02 -7.9414932775068517e-02 6.5004858943937879e+03 6.5004859213968966e+03 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 3 0 0 -2 0 +P 4 21 -3.1839018050093307e-03 5.0554804870918790e-01 -2.5725369994220681e+01 2.5730337158815754e+01 3 0 0 -4 0 +P 12 2101 3.8701429021918715e-01 -2.0438006852161128e-01 -5.1057965796384815e+03 5.1057966312635817e+03 2 0 0 -9 0 +P 33 2 -3.8383038841417783e-01 -3.0116798018757662e-01 -1.4059242432952470e+02 1.4059365813141250e+02 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 3 0 0 -5 0 +P 25 21 -3.6511185605667584e-03 -1.4425395575640334e+00 8.1652186717378754e+00 8.2916662778419035e+00 2 0 0 -17 0 +P 26 21 2.9593935486652639e-01 6.8709099958216890e-01 4.0361549279216140e+00 4.1049020384963599e+00 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 3 0 0 -5 0 +P 11 3 -2.8557959363283214e-01 -1.4780078065351945e+00 -1.0810465318999622e+01 1.0926217240828231e+01 2 0 0 -9 0 +P 31 21 1.2172273336784700e+00 -4.7627796523471329e-02 -9.7231787370062306e-01 1.5586253033918638e+00 2 0 0 -17 0 +P 32 21 1.0642173874125529e+00 1.1887517313130824e+00 -1.4482536478625649e+00 2.1547918588388710e+00 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 3 0 0 -6 0 +P 8 24 -3.5958396201755241e+00 1.7596743824934931e+00 1.3507743361623650e+02 1.5845551205159941e+02 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 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 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 2 0 0 -11 0 +P 14 21 -6.6611694690988275e+00 2.4614122585280231e+00 7.0400917686742488e+01 7.0758172249839646e+01 2 0 0 -11 0 +P 15 21 -1.1364538745352168e+00 -8.4363652633784314e-01 1.5206113213728849e+00 2.0773802704860946e+00 2 0 0 -11 0 +P 16 21 -7.0207935266386619e+00 -9.6120038752047388e-01 5.9385495803026025e+00 9.2456378388066369e+00 2 0 0 -11 0 +P 17 21 1.9233062830932506e+00 -9.9992930184166651e-01 2.0384347101481007e-01 2.1772730255856527e+00 2 0 0 -11 0 +P 18 21 6.5191036641582967e+00 1.4569596471037023e+00 -1.4166998204938244e+00 6.8285051349997472e+00 2 0 0 -11 0 +P 19 -3 7.7159427700610506e+00 -7.8868310021418342e-01 -8.9189618218918798e-01 7.8232520516230650e+00 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 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 2 0 0 -23 0 +P 40 113 -2.6276647691303950e-01 -5.6521457952856013e-01 -1.1962401435561386e+01 1.1993068060118460e+01 2 0 0 -24 0 +P 41 -211 2.1202252232348538e-02 1.2037186058540997e-01 -3.8928936098051310e+01 3.8929378166513047e+01 1 0 0 0 0 +P 42 2114 -3.0865407405585576e-01 -4.5752156743261424e-01 -6.0439787274539817e+01 6.0455579370402425e+01 2 0 0 -25 0 +P 43 223 7.5934744704867152e-01 -4.5802192101885630e-02 -7.5778630043207073e+01 7.5786642607491785e+01 2 0 0 -26 0 +P 44 -3114 -4.7130125309522669e-01 -3.6998042550758815e-02 -1.6236037253483892e+02 1.6236696425649211e+02 2 0 0 -27 0 +P 45 -311 3.9338164815186982e-01 1.5120222274855744e-01 -1.5841292434872400e+02 1.5841426667878346e+02 2 0 0 -28 0 +P 46 2112 1.8062528917922832e-01 -2.6417322619040490e-01 -4.5968511499413735e+03 4.5968512571022029e+03 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 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 2 0 0 -29 0 +P 49 111 6.6697298340082936e-02 -2.7309372095162640e-02 1.5613189066221931e+00 1.5687991139677566e+00 2 0 0 -30 0 +P 50 -213 -1.2537860530518419e+00 6.3570399222428886e-01 2.3101138766532216e+01 2.3148198586365478e+01 2 0 0 -31 0 +P 51 223 -4.9718024532112670e+00 1.2416775214387061e+00 4.4371163546531150e+01 4.4672913013609495e+01 2 0 0 -32 0 +P 52 211 2.0193990881854440e-01 1.9756624416254592e-01 8.6476093093118023e-01 9.2038220331072151e-01 1 0 0 0 0 +P 53 3112 -7.0584972907924126e-01 -6.5661601113311763e-02 9.0004313706404595e+00 9.1073685934583164e+00 2 0 0 -33 0 +P 54 -3212 -1.3667402501295773e+00 -6.0384937118763382e-01 5.0703170378781293e+00 5.4187547777607730e+00 2 0 0 -34 0 +P 55 211 -2.6364081709202364e-01 7.3413299932848253e-01 2.6874106938374962e+00 2.8018054470987304e+00 1 0 0 0 0 +P 56 -213 -3.4695940866764934e+00 -5.0692299600103696e-01 3.4058985381402325e+00 4.9419726631930434e+00 2 0 0 -35 0 +P 57 111 -2.2664032636498591e-01 -6.4174781661402613e-01 5.5446080822234844e-01 8.8817368004139652e-01 2 0 0 -36 0 +P 58 113 -5.0290045956692175e-01 -2.2402253400552827e-02 4.2604824703776056e-01 1.0487762353368946e+00 2 0 0 -37 0 +P 59 213 -1.2005200767227959e+00 6.2152297680195367e-02 1.6050487128422106e+00 2.2598983813267526e+00 2 0 0 -38 0 +P 60 -213 -2.9276047393825264e-02 -5.2442944213790954e-01 9.3491138108836302e-02 9.6897732639620227e-01 2 0 0 -39 0 +P 61 213 4.8741035118588283e-01 -5.4382265811505015e-01 -2.1420018845659008e-01 9.8970129623833414e-01 2 0 0 -40 0 +P 62 -211 1.8697788601233423e-01 4.2760734454290197e-02 -2.6920172278503485e-01 3.5880156454388884e-01 1 0 0 0 0 +P 63 211 1.2983839367590966e-01 -2.1540737154801419e-02 3.5452183158205530e-01 4.0309741477440403e-01 1 0 0 0 0 +P 64 311 4.6391648249289439e+00 8.7190463208380886e-01 -2.7041866263032449e-01 4.7542475369195865e+00 2 0 0 -41 0 +P 65 -323 2.2512956578581989e+00 -8.1702811801166697e-01 -6.8930905945599441e-01 2.6161470913906841e+00 2 0 0 -42 0 +P 66 323 7.0336564886840316e+00 2.6471663135766954e-01 -7.6549975370238721e-01 7.1298753405532898e+00 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 2 0 0 -13 0 +P 21 -3 -2.9480913835759774e+00 4.2454566557718891e+00 -1.4413638757204703e+02 1.4422903094502612e+02 2 0 0 -13 0 +P 67 92 0 0 -1.8601200773994825e+02 1.8642242745998198e+02 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 2 0 0 -44 0 +P 69 111 1.8807531206737291e+00 -2.0970278275644705e+00 -2.6588570500903835e+01 2.6737708557249952e+01 2 0 0 -45 0 +P 70 113 -1.1068971892740748e-01 -5.1341043207208503e-01 -9.0115038018838742e+00 9.0608170742198180e+00 2 0 0 -46 0 +P 71 223 -2.0672406052829917e-01 1.7379335103852600e-01 -1.3130580146872006e+01 1.3156750961396625e+01 2 0 0 -47 0 +P 72 113 -4.4140526611159947e-01 5.7742869906215955e-01 -2.4813075874939347e+01 2.4836133069027387e+01 2 0 0 -48 0 +P 73 -211 7.7896309901419436e-02 -3.6602920137854170e-02 -1.3397448490641568e+00 1.3497420695647062e+00 1 0 0 0 0 +P 74 323 -1.8710737454221880e+00 2.8975759827919654e+00 -9.9077077929701588e+01 9.9140660670090867e+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 2 0 0 -15 0 +P 23 -3 2.3797373606868244e+00 2.4917871101526390e+00 -9.6661085500222009e+02 9.6661699610602295e+02 2 0 0 -15 0 +P 75 92 0 0 -9.7093893119688357e+02 9.7214912015153971e+02 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 2 0 0 -50 0 +P 77 111 -6.7528675734192661e-02 -1.2563759364867366e-01 -1.7655103539140375e+00 1.7763984173495295e+00 2 0 0 -51 0 +P 78 113 1.5354061763556762e-01 6.2318321309839064e-01 -1.0151106705392891e+01 1.0185911304933418e+01 2 0 0 -52 0 +P 79 111 -1.6671670434852973e-01 -5.1368748512571094e-01 -7.9559061682556891e+00 7.9753577882357432e+00 2 0 0 -53 0 +P 80 211 -9.6736485997603927e-02 5.1279243800840213e-01 -4.1217511496160233e+00 4.1569972764560212e+00 1 0 0 0 0 +P 81 111 4.4784540883304857e-02 -6.3293049003740509e-01 -2.8876930883969312e+01 2.8884216512452983e+01 2 0 0 -54 0 +P 82 -211 -1.1552696499474494e-01 2.9652397766424610e-01 -1.5381300035866197e+01 1.5385224844870098e+01 1 0 0 0 0 +P 83 213 1.3734383108429742e+00 1.9976391213286977e+00 -5.6939502407682789e+02 5.6940054246694490e+02 2 0 0 -55 0 +P 84 313 1.1145814743658564e+00 2.7626103241949523e-01 -3.2842812827294995e+02 3.2843139117752128e+02 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 2 0 0 -17 0 +P 28 21 3.2798144322212153e+00 -8.7986496652623636e-01 5.5985508273586087e+00 6.5479093179154937e+00 2 0 0 -17 0 +P 29 21 -3.7733390949497778e+00 9.0629369874865717e-01 -3.3241294584168473e+00 5.1097253204240456e+00 2 0 0 -17 0 +P 30 21 3.7733390949497778e+00 -9.0629369874865717e-01 -1.2185775397046967e+01 1.2788767658423664e+01 2 0 0 -17 0 +P 85 92 2.0943165911964767e+00 5.0924638451013138e-03 6.6074307187661043e+03 6.9293270467247485e+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 2 0 0 -57 0 +P 87 2112 -1.1641820817776909e-01 7.5916177472945279e-01 1.5838148551780225e+03 1.5838153200907500e+03 1 0 0 0 0 +P 88 113 2.7160958203151061e-02 -4.0515716778460686e-01 1.6165720701806258e+03 1.6165722765277476e+03 2 0 0 -58 0 +P 89 111 -1.4385672069497962e-01 9.5872413866507322e-01 7.8787988037092839e+02 7.8788048837348356e+02 2 0 0 -59 0 +P 90 -2214 -3.6919767591725938e-01 -8.0507840752899340e-01 8.0872498075085002e+02 8.0872637466061587e+02 2 0 0 -60 0 +P 91 211 3.5761092944521689e-01 -5.0085597321715558e-01 3.0003167406315214e+01 3.0009803006335137e+01 1 0 0 0 0 +P 92 2114 -9.8516795397972409e-02 -1.4151599991198704e-01 6.0200362965077282e+01 6.0212675769296112e+01 2 0 0 -61 0 +P 93 223 -6.6801252072040476e-02 3.4914305837557824e-01 1.7318687060519537e+01 1.7340112417543374e+01 2 0 0 -62 0 +P 94 223 1.0880283197397357e-01 -1.1874086178082427e-01 5.9048803867980695e+00 5.9574951798301630e+00 2 0 0 -63 0 +P 95 223 -1.1326999883260454e-01 -3.7014701840945025e-01 2.2018767133093363e+01 2.2035600678331608e+01 2 0 0 -64 0 +P 96 211 1.7074748485127106e-02 3.1351296613888224e-01 1.0137555013396343e+01 1.0143376329482720e+01 1 0 0 0 0 +P 97 221 -2.4049267933068028e-01 -5.2371012095719160e-01 1.4536298958950805e+01 1.4558014904034785e+01 2 0 0 -65 0 +P 98 -211 -2.7609773133260801e-01 -5.7044915366057758e-01 6.8816596070175269e+00 6.9121893004977597e+00 1 0 0 0 0 +P 99 211 -3.2003753499352694e-01 5.9754365375792062e-01 1.9274593244220643e+01 1.9287013946098735e+01 1 0 0 0 0 +P 100 223 -3.4604842053761919e-01 3.1486430485676520e-01 6.2632131591575501e+01 6.2638853372545277e+01 2 0 0 -66 0 +P 101 111 2.2948981413776891e-02 5.5605194404662266e-02 1.1648969035652028e+00 1.1742329367414746e+00 2 0 0 -67 0 +P 102 111 -2.9172378240014335e-01 3.0693544637119191e-01 5.3046712918767929e+00 5.3232573908011185e+00 2 0 0 -68 0 +P 103 -213 3.2106496746452690e-01 2.1715005346640492e-01 1.8335690284947212e+01 1.8357740097185115e+01 2 0 0 -69 0 +P 104 211 -4.1566685736877346e-01 -2.4857973476376449e-01 7.6291201423937034e+00 7.6457520724142878e+00 1 0 0 0 0 +P 105 221 -2.5513573334891759e-01 3.0928061930424477e-01 4.8173473574429913e+01 4.8178252422360707e+01 2 0 0 -70 0 +P 106 223 -7.4215211736769937e-01 -2.4846169610654173e-01 2.0946282884976224e+01 2.0974976715559247e+01 2 0 0 -71 0 +P 107 113 2.4449291316315186e-01 -4.2766229921875031e-02 1.6107139368476123e+01 1.6128248722013453e+01 2 0 0 -72 0 +P 108 223 4.7207387017201917e-02 -3.2716583505686320e-01 2.1203916701555983e+00 2.2765517765484846e+00 2 0 0 -73 0 +P 109 -2212 9.4887946882507612e-01 4.1648238312682367e-01 3.2378432709009703e+00 3.5267278689504029e+00 1 0 0 0 0 +P 110 223 1.6600334088172941e-01 -4.1616381624079307e-01 2.6794215643440502e+00 2.8255103226053060e+00 2 0 0 -74 0 +P 111 2212 1.5707280006131925e+00 1.9053939806349487e-01 4.0977610121829917e+00 4.4917132165791367e+00 1 0 0 0 0 +P 112 221 -1.1579086126404439e+00 9.9177839411389315e-02 -7.1473619559073187e-01 1.4700809266311647e+00 2 0 0 -75 0 +P 113 -213 -1.0802536131659559e+00 -4.3742284486781746e-02 -8.7239930641296504e-01 1.8065991907361469e+00 2 0 0 -76 0 +P 114 -311 -1.2221059279354842e+00 7.8797526225771200e-02 -6.0729148702831515e-01 1.4547268913275133e+00 2 0 0 -77 0 +P 115 323 1.7061356136889678e+00 -2.9014219266128297e-02 -5.6916355500633795e+00 6.0003241000917313e+00 2 0 0 -78 0 +P 116 -213 5.0727937246066324e-01 -4.7763269349581511e-01 -1.4192395564892897e+00 1.7279116972796664e+00 2 0 0 -79 0 +P 117 113 1.8377335751287966e+00 3.7435212119187783e-01 -6.4021253801990987e+00 6.7571572558931825e+00 2 0 0 -80 0 +P 118 113 1.1595987846627662e+00 3.3781193392132147e-01 -1.7297809040002605e+00 2.3075689039392140e+00 2 0 0 -81 0 +P 119 211 2.7239080429789903e-01 -2.2711690982550835e-02 -1.2958981254113522e-01 3.3314542708521427e-01 1 0 0 0 0 +P 120 113 2.1267666995458101e-01 1.7395120076323969e-01 -1.6083970877226670e+00 1.8184518290999967e+00 2 0 0 -82 0 +P 121 221 -4.7135039096220882e-01 -1.2291206979554646e-01 -1.3887351759484287e+02 1.3887545092360841e+02 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 2 0 0 -19 0 +P 35 21 1.7804898284392838e+00 2.5209727458596531e+00 -3.9047632682122253e+00 4.9772104431420550e+00 2 0 0 -19 0 +P 122 92 0 0 -1.6417647660027328e+02 1.6527863757967410e+02 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 0 0 0 0 +P 124 -313 -5.5418962740188848e-01 5.6022873335349721e-01 -2.6963373036122778e+01 2.6989313170610149e+01 2 0 0 -84 0 +P 125 -3122 7.8192980547996760e-01 -1.0098791190461021e+00 -2.5752937819053422e+01 2.5808715935323384e+01 2 0 0 -85 0 +P 126 2112 -5.2911926360048755e-01 -7.0628422357488740e-01 -3.1365989018949879e+01 3.1392465075577743e+01 1 0 0 0 0 +P 127 -313 -6.6375047799976095e-01 -5.2431994602761678e-01 -3.0745812034728321e+01 3.0766432948134987e+01 2 0 0 -86 0 +P 128 323 -1.0010822452572499e-01 2.3468051859673056e-01 -2.0435238020895113e+01 2.0455561586261695e+01 2 0 0 -87 0 +P 129 -2212 7.6440809257191722e-01 -3.6826018672418046e-03 -3.6284282265723400e+00 3.8249412128597280e+00 1 0 0 0 0 +P 130 331 -2.1598897730547920e-01 3.8740437897781693e-01 -2.8085273570100782e+00 3.0002184788953326e+00 2 0 0 -88 0 +P 131 2114 3.7114271301432933e-01 1.6103528252915164e-01 -3.1873923166002567e+00 3.4301830299056255e+00 2 0 0 -89 0 +P 132 213 1.4340847993733810e-01 8.3134947437200180e-01 -7.5071475809012984e+00 7.6369252082162546e+00 2 0 0 -90 0 +P 133 111 2.5133273495763248e-01 1.9971281449766987e-01 -1.8807651137350476e+00 1.9127337413708869e+00 2 0 0 -91 0 +P 134 223 3.5163629723965795e-01 -4.4343363850532036e-01 -7.5286241082333785e+00 7.5901269538058527e+00 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 2 0 0 -21 0 +P 37 21 7.9835767352754738e-01 -2.8310917836013409e+00 -3.3864087660105230e+02 3.3865365162772304e+02 2 0 0 -21 0 +P 135 92 0 0 -3.8815266563796246e+02 3.8825274143083885e+02 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 2 0 0 -93 0 +P 137 -211 2.9811563003694558e-01 5.4783511804293061e-01 -4.4437689646128113e+01 4.4442285462337956e+01 1 0 0 0 0 +P 138 -3112 2.3307186571895475e-01 1.4326900914430873e-01 -2.7582276932951583e+01 2.7609612671372336e+01 2 0 0 -94 0 +P 139 -323 -2.7304396428318978e-01 8.3408142249412254e-01 -4.6194743956008772e+01 4.6211892601868342e+01 2 0 0 -95 0 +P 140 113 -1.2438472963311790e-01 -5.3617617384831562e-01 -3.5265788970736466e+01 3.5278430062698547e+01 2 0 0 -96 0 +P 141 321 1.7857873999080959e-01 3.3202431338286048e-01 -2.0117667576333965e+01 2.0127253170339291e+01 1 0 0 0 0 +P 142 -321 -8.8311177964749923e-02 -9.5005248461867819e-01 -1.2922147930037769e+02 1.2922594457819073e+02 1 0 0 0 0 +P 143 111 -1.3174275413026160e-01 -1.9950654911601931e-01 -4.1534180411145236e+00 4.1624824373277072e+00 2 0 0 -97 0 +P 144 211 5.7322046445197547e-02 2.0835777786463264e-01 -2.1095375841649318e+01 2.1096944339547068e+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 1 0 0 0 0 +P 146 211 -2.1513185186894951e-01 5.5253778360839806e-02 -1.6231025987568579e+00 1.6441643849393461e+00 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 0 0 0 0 +P 148 211 -2.2213787884234046e-01 -1.9035086479588445e-01 -8.6925041161229846e+00 8.6985450670017315e+00 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 1 0 0 0 0 +P 150 111 1.9439971445648394e-01 -1.0750830516930852e-01 -1.1517209099759532e+01 1.1520142114255574e+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 0 0 0 0 +P 152 -211 3.2763508143091863e-01 2.6975363668793567e-01 -2.7798223999518537e+01 2.7801813773266648e+01 1 0 0 0 0 +P 153 111 3.7624470113100927e-01 -2.2697476149644069e-01 -3.9173658724607755e+01 3.9176355561612958e+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 2 0 0 -100 0 +P 155 211 -1.2658824667944718e-01 5.6045897494217310e-02 -9.1400235910024410e+00 9.1421374281840926e+00 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 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 0 0 0 0 +P 158 111 -4.8159128705046694e-01 1.3448094949075709e-01 5.8718796761526999e+00 5.8946760576942649e+00 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 1 0 0 0 0 +P 160 22 -2.5631944427193760e-02 -4.6174321832131868e-02 3.6873305970836540e-01 3.7249581728345482e-01 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 0 0 0 0 +P 162 111 -1.1968527011163542e-01 3.3035230632374672e-02 2.8142194490767198e+00 2.8201891068342042e+00 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 1 0 0 0 0 +P 164 111 -1.5341100192305239e+00 6.7694638573483645e-01 1.2781020070891630e+01 1.2891254539927354e+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 1 0 0 0 0 +P 166 -211 -1.8675959006408943e-01 -3.1443655385611960e-02 3.1794570083460498e+00 3.1881490712897551e+00 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 2 0 0 -105 0 +P 168 22 -8.9088999710365789e-03 -4.2747657113092849e-02 3.1710490820171716e-01 3.2009725630341157e-01 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 0 0 0 0 +P 170 111 -1.1249397207202128e+00 1.4237079142511824e-01 1.1663329747194109e+00 1.6322717377394349e+00 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 1 0 0 0 0 +P 172 22 -1.4766384618138196e-02 -4.5393292462897188e-02 1.4969497191911496e-03 4.7758119453917933e-02 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 0 0 0 0 +P 174 211 -4.6264467692447137e-01 2.5591075993571022e-01 3.5889789046657225e-02 5.4799477734302793e-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 0 0 0 0 +P 176 111 -1.2785553127783380e+00 1.1884783629086837e-01 1.0045692970771025e+00 1.6359118463580851e+00 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 0 0 0 0 +P 178 111 -1.5555177445162185e-01 8.8890488378568028e-02 -1.6380203759515596e-01 2.7775633454442306e-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 0 0 0 0 +P 180 111 1.3101330793119204e-01 9.0416991608367872e-02 2.7437988898070045e-02 2.1050454356462622e-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 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 1 0 0 0 0 +P 183 111 2.9874439049285023e-01 -2.8475562149392120e-01 -1.9024244903122581e-01 4.7407358567708918e-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 1 0 0 0 0 +P 185 111 2.8873808576949571e+00 -5.7210969847366372e-02 -1.3031788905640951e-01 2.8940358783301670e+00 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 1 0 0 0 0 +P 187 211 -7.5085744445380881e-02 -9.4925952617013309e-02 -1.1136929490878451e+00 1.1289112344410193e+00 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 1 0 0 0 0 +P 189 22 2.5002754365000407e-01 -3.5028539841192269e-01 -3.9778855607587129e+00 4.0010982451593105e+00 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 0 0 0 0 +P 191 211 2.3702088705655167e-01 -4.9089442089346247e-01 -4.8952940415866841e+00 4.9275287692574148e+00 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 0 0 0 0 +P 193 -211 1.2388078103698906e-02 -1.3418403734202855e-01 -2.2669176314964452e+00 2.2752042003402604e+00 1 0 0 0 0 +P 194 111 -2.9481615955898893e-01 1.1357919037439569e-01 -7.8235932090650602e+00 7.8311331939734075e+00 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 0 0 0 0 +P 196 211 -1.8300377467698797e-01 8.5819329580133663e-02 -1.7124223317576995e+01 1.7125984916320089e+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 1 0 0 0 0 +P 198 111 -8.6514329764970965e-01 1.2820801404340156e+00 -5.0363263569510103e+01 5.0387188246461093e+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 2 0 0 -115 0 +P 200 -211 -7.8919655988042958e-02 -3.2709922664563601e-02 -2.0207531257067607e-01 2.6002397580325015e-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 1 0 0 0 0 +P 202 22 -6.5865805639046926e-02 -1.5310413880685866e-01 -1.5946516929484500e+00 1.6033381438410388e+00 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 0 0 0 0 +P 204 211 -5.2333999937162846e-02 4.5462768293088435e-01 -7.9512134694810550e+00 7.9655948051475409e+00 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 1 0 0 0 0 +P 206 22 -1.4734769876723883e-01 -2.4375103224998654e-01 -4.3429556459108172e+00 4.3522855665045208e+00 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 1 0 0 0 0 +P 208 22 4.4457545443559635e-02 -4.6761148186613616e-01 -2.3675294738488155e+01 2.3679953925749196e+01 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 0 0 0 0 +P 210 111 5.4263936381458211e-01 4.6734157035509338e-01 -2.1145862994016593e+02 2.1145988570269063e+02 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 1 0 0 0 0 +P 212 -211 1.6804735433903449e-02 -4.2423390924212670e-02 -8.0724325227349169e+01 8.0724458780093229e+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 0 0 0 0 +P 214 -211 2.4482588483854287e-01 7.7909997263942679e-04 1.0140498242515802e+03 1.0140498634114431e+03 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 0 0 0 0 +P 216 211 -1.9928619525354679e-01 -2.2203313483144810e-01 1.2997895205791938e+03 1.2997895623142140e+03 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 1 0 0 0 0 +P 218 22 -4.5575709842319061e-02 7.0729404434862853e-01 5.7534913658297194e+02 5.7534957313687289e+02 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 1 0 0 0 0 +P 220 111 -3.4003331637259090e-02 -4.0291788547051194e-01 2.4175947776846803e+02 2.4175985359346117e+02 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 1 0 0 0 0 +P 222 111 6.0767090723995811e-02 1.5192470187574267e-01 8.1321949629446006e+00 8.1349608646936105e+00 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 0 0 0 0 +P 224 211 1.8322216671360106e-01 8.4641186236416213e-02 3.0390432107555543e+00 3.0489338980243836e+00 1 0 0 0 0 +P 225 111 -4.1465490166762591e-02 -3.5765910717375442e-02 1.9984446344580136e+00 2.0037462775107624e+00 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 0 0 0 0 +P 227 -211 -4.0632702319755090e-02 -1.2069487246477217e-01 6.9918612236714750e-01 7.2426465283617236e-01 1 0 0 0 0 +P 228 111 -1.0286168933441908e-01 -7.6499887889112148e-02 3.1988902541620599e+00 3.2043019861668447e+00 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 0 0 0 0 +P 230 211 9.8968590493889952e-02 -2.6775289950262515e-01 5.1595877232286771e+00 5.1693627901017445e+00 1 0 0 0 0 +P 231 111 -4.4664340621416956e-02 1.0405778336843771e-01 8.0887900876842203e+00 8.0907087210343445e+00 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 1 0 0 0 0 +P 233 211 -1.0483563972662920e-01 -3.3980469291825055e-01 5.8420066258245038e+00 5.8544836614140072e+00 1 0 0 0 0 +P 234 -211 -1.7885887895793467e-01 -2.0510136573886101e-01 8.3797429311231948e+00 8.3853222028386707e+00 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 0 0 0 0 +P 236 -211 -6.9803021048007466e-02 1.9955448295151124e-01 3.0748651976026064e+01 3.0749695487615565e+01 1 0 0 0 0 +P 237 111 -2.1379581197174061e-01 2.7391517770198009e-01 1.7311417557900477e+01 1.7315430564620016e+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 1 0 0 0 0 +P 239 22 -4.9277372803545674e-02 2.7427407669828176e-02 2.6132684023139513e-01 2.6734292507420448e-01 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 1 0 0 0 0 +P 241 22 -2.9527711295698492e-02 1.0649081569596784e-01 1.6596144706705973e+00 1.6632896232530285e+00 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 0 0 0 0 +P 243 111 4.7885545567532817e-01 -2.7126526635969879e-02 7.1201563610581680e+00 7.1375685357266061e+00 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 0 0 0 0 +P 245 211 -2.2533489453973266e-01 6.7750325072043191e-02 1.3920844135234320e+01 1.3923532136050548e+01 1 0 0 0 0 +P 246 111 -4.4248312943774556e-02 1.3821775128610481e-01 2.1230751378670416e+01 2.1231676470860343e+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 0 0 0 0 +P 248 211 -3.0260312919721499e-01 -2.2696578300232692e-01 6.5963063148826535e+00 6.6086170190982152e+00 1 0 0 0 0 +P 249 111 -4.8351748599884498e-01 6.8085391814766527e-02 1.1578342287069946e+01 1.1589419937891513e+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 0 0 0 0 +P 251 -211 -3.4690021616336185e-02 7.3188080772198266e-02 7.3508544257158037e-01 7.5258905489484496e-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 0 0 0 0 +P 253 -211 -1.7967466933591134e-01 -5.9481031195502451e-02 9.5730795988163619e-01 9.8576837787879446e-01 1 0 0 0 0 +P 254 111 1.5727707714584355e-01 -3.3174440295699437e-01 8.1664405133604978e-01 9.0549297891888092e-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 0 0 0 0 +P 256 211 5.8658587383824110e-02 4.7066254481115677e-02 1.1853313384479452e-01 1.9795441622710730e-01 1 0 0 0 0 +P 257 111 1.3411328140931753e-01 -1.4694297772286691e-01 1.1236134462109026e+00 1.1490454246279296e+00 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 2 0 0 -128 0 +P 259 111 -2.9461008023809460e-01 7.9261822040132043e-03 -1.9522454331244052e-01 3.7840473894202054e-01 2 0 0 -129 0 +P 260 111 -5.6947447824850161e-01 -6.7738430395329619e-02 -2.4221023236473779e-01 6.3700476716505527e-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 0 0 0 0 +P 262 111 1.1957147566873839e-01 -2.6522135805362312e-01 -3.4214359030111036e-01 4.6895793344983716e-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 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 2 0 0 -133 0 +P 265 211 1.0915840528824405e+00 -1.2515087994438999e-02 -3.5835761605516261e+00 3.7487611627454607e+00 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 0 0 0 0 +P 267 111 3.3145760189254819e-01 -3.6043831788505409e-01 -1.3814531933934078e+00 1.4718737883354707e+00 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 0 0 0 0 +P 269 211 4.2350384391560253e-01 3.4379285852778824e-01 -3.2627959808932827e+00 3.3110219620563313e+00 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 0 0 0 0 +P 271 -211 9.3697441288108851e-01 1.1617066478887220e-01 -6.0163047616962251e-01 1.1282090624115000e+00 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 0 0 0 0 +P 273 211 -1.8596767408214455e-02 -2.3324161234313170e-01 -2.3184009526130650e-01 3.5773887705591995e-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 2 0 0 -135 0 +P 275 111 -2.6461917860165884e-01 -1.6666569637677223e-01 -6.3921636890275806e+01 6.3922544404120060e+01 2 0 0 -136 0 +P 276 111 -6.3263579171512346e-02 3.2972257103575209e-02 -1.6871339394895315e+01 1.6872030169138945e+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 1 0 0 0 0 +P 278 211 -3.6177450768530445e-01 4.9189474727843974e-01 -1.1900910688400808e+01 1.1917382104934106e+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 1 0 0 0 0 +P 280 211 7.3612976178848225e-02 -9.6472091324671175e-02 -4.4368453769818323e+00 4.4406984156562039e+00 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 1 0 0 0 0 +P 282 211 -2.2251296710200200e-01 -9.6639171739989163e-02 -1.3148198706335124e+01 1.3151177139564950e+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 2 0 0 -138 0 +P 284 211 -2.1064306399016169e-01 -5.2260446477074120e-03 -1.1383456938792117e+01 1.1386262313603362e+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 1 0 0 0 0 +P 286 113 -1.8011439266886359e-01 2.8077452479029485e-01 -2.5609809355757700e+00 2.7283064666710946e+00 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 1 0 0 0 0 +P 288 -211 4.8767346650093954e-02 1.4882602618582788e-01 -2.3244126658180475e-01 3.1310727790919962e-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 0 0 0 0 +P 290 111 4.4253202957958163e-02 7.6399174961335814e-01 -2.3232855375278914e+00 2.4497993854059930e+00 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 1 0 0 0 0 +P 292 22 2.6360212558589025e-01 1.9997238663270561e-01 -1.7222704560088657e+00 1.7537646819542143e+00 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 0 0 0 0 +P 294 -211 1.6587673815884174e-01 -1.3851309640486942e-01 -4.3161880209091308e+00 4.3238477987641240e+00 1 0 0 0 0 +P 295 111 -6.0279320681069205e-02 -9.2315970712068443e-02 -4.7308201386323090e-01 5.0416468260993141e-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 1 0 0 0 0 +P 297 111 -2.2377722266168973e-01 7.9799221498159933e-03 -1.1264902435367182e+01 1.1267936208697719e+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 1 0 0 0 0 +P 299 211 -8.7336220343602930e-02 -7.3013290121362429e-02 -2.3510529596090493e+00 2.3579415513758439e+00 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 2 0 0 -143 0 +P 301 -211 1.5737610531318013e-02 3.7670828302362941e-01 -2.7139552080295822e+01 2.7142529795633884e+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 0 0 0 0 +P 303 211 -3.3050248543040528e-01 -9.0924683313200385e-03 -1.2204737552097738e+01 1.2210012820072743e+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 1 0 0 0 0 +P 305 22 6.0810257120624319e-03 -2.5958144784292918e-02 -1.1760447735839455e-01 1.2058862819144350e-01 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 1 0 0 0 0 +P 307 22 1.9356459172481594e-01 -9.9707485553815978e-02 -8.1053994378958087e+00 8.1083234322322628e+00 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 1 0 0 0 0 +P 309 22 3.3690374561586876e-02 -1.9613343538932699e-02 -8.4176032808599981e+00 8.4176935509988660e+00 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 1 0 0 0 0 +P 311 211 -5.4498994801466791e-02 8.6292130705541509e-02 -2.3497713675750649e+01 2.3498349819608933e+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 0 0 0 0 +P 313 211 4.2383582982990159e-01 1.6064602755654347e-01 -1.3924639783538171e+02 1.3924720547957548e+02 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 1 0 0 0 0 +P 315 22 -4.1706123551801033e-01 9.3333285929744852e-02 5.3717810433809960e+00 5.3887552138190218e+00 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 1 0 0 0 0 +P 317 22 2.5240978913187006e-02 4.6550563290277975e-03 1.7852116177452235e-01 1.8035681791173727e-01 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 1 0 0 0 0 +P 319 22 -9.9347804282512375e-01 4.6072215222226937e-01 8.8000271104699053e+00 8.8679050890347977e+00 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 1 0 0 0 0 +P 321 211 -1.1064351208874038e-01 2.0387854652763094e-02 4.6671800491127502e-01 4.9996313103371370e-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 1 0 0 0 0 +P 323 22 -4.5792166884553959e-01 1.2498167845266275e-01 4.8664723914508007e-01 6.7980748018439574e-01 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 1 0 0 0 0 +P 325 22 -6.9129603308469112e-01 7.6339252843770522e-02 6.2741953896410996e-01 9.3668199766906590e-01 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 1 0 0 0 0 +P 327 22 -1.6493420608249607e-01 5.8221046989452609e-02 -8.8745584212347600e-02 1.9613454913860082e-01 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 1 0 0 0 0 +P 329 22 1.8719174672564270e-02 -2.6704167802973904e-02 -2.3774098692370686e-02 4.0357500506175224e-02 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 0 0 0 0 +P 331 211 1.2535932196400428e+00 1.1672562602205658e-01 5.1489773792014568e-02 1.2677743544506974e+00 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 1 0 0 0 0 +P 333 22 2.8440430632540273e-02 5.2681886990469471e-03 9.1000640864471617e-03 3.0321989926628289e-02 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 1 0 0 0 0 +P 335 22 1.0246907154836133e+00 -8.4899091998007395e-02 -4.8200779350839988e-02 1.0293309639520400e+00 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 1 0 0 0 0 +P 337 22 -1.8538134664903849e-01 1.3570574223792362e-01 -5.6606275362368574e+00 5.6652878476000419e+00 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 1 0 0 0 0 +P 339 22 -2.2060320357166030e-01 2.6255908732698097e-01 -9.8168503025321545e+00 9.8228383326862136e+00 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 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 1 0 0 0 0 +P 342 22 3.6515589074457233e-02 3.3473123180800382e-02 -7.3387457182011460e+00 7.3389129000579238e+00 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 1 0 0 0 0 +P 344 22 3.0942924365591040e-02 -3.0871019736151784e-01 1.8550345407790874e+02 1.8550371353233157e+02 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 1 0 0 0 0 +P 346 22 1.1223862360092251e-02 7.4486156690947375e-03 6.8093200372141963e-02 6.9412829495597211e-02 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 1 0 0 0 0 +P 348 22 -2.1816430663347673e-02 6.2291465370471460e-03 1.7926444798778951e+00 1.7927880494219495e+00 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 1 0 0 0 0 +P 350 22 -8.3219283532173879e-02 1.6359286886682384e-02 1.0989481787777651e+00 1.1022160292147887e+00 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 1 0 0 0 0 +P 352 22 -5.9951059525466630e-02 2.8420682734860746e-03 4.6723495593551112e+00 4.6727350247682775e+00 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 1 0 0 0 0 +P 354 22 -1.9701672792787284e-01 2.1247646906597906e-01 1.1445655045598098e+01 1.1449322305875373e+01 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 1 0 0 0 0 +P 356 22 4.8477764023430803e-01 -1.7763098576969477e-02 7.0331113651009813e+00 7.0498213000085883e+00 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 1 0 0 0 0 +P 358 22 1.6572976597038779e-02 2.0914445617698917e-02 7.1233755145640765e-01 7.1283719375723653e-01 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 1 0 0 0 0 +P 360 22 -8.3282326790722602e-02 -1.8195796101566498e-02 1.2113351506416694e+00 1.2143310422333451e+00 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 1 0 0 0 0 +P 362 22 8.2854054207988859e-02 -5.0438373195187056e-02 2.5751681862275960e-01 2.7517946083031813e-01 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 1 0 0 0 0 +P 364 22 8.8898795765316174e-02 -1.1244861370181165e-01 1.0268536256674834e+00 1.0368105203741129e+00 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 1 0 0 0 0 +P 366 22 -2.2791738499094746e-01 1.7053419924879248e-01 -2.6008790670221665e-01 3.8558263278742178e-01 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 1 0 0 0 0 +P 368 22 -2.8760418411723598e-01 3.1572933608220874e-02 -1.4767526381608859e-01 3.2483996121401310e-01 1 0 0 0 0 +V -130 0 -6.6891221062580290e-05 -7.9566451089120833e-06 -2.8450332395157243e-05 7.4823417599693525e-05 0 2 0 +P 370 22 -4.0216266385833066e-01 -8.2083877934753996e-02 -2.2531815989549669e-01 4.6823161405134645e-01 1 0 0 0 0 +P 369 22 -1.6731181439017095e-01 1.4345447539424376e-02 -1.6892072469241130e-02 1.6877315311370919e-01 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 1 0 0 0 0 +P 372 22 1.4735894064874117e-01 -2.2568443790815346e-01 -3.1063108310384269e-01 4.1126608502684042e-01 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 0 0 0 0 +P 374 211 -5.2094392724806982e-01 -1.5128160125026907e-01 -3.5171956602845583e-01 6.6140391308241664e-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 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 1 0 0 0 0 +P 377 22 1.5852178443479484e-01 -2.0054185081282136e-01 -9.0460415924719695e-01 9.4002918837403693e-01 1 0 0 0 0 +V -135 0 -3.0421302276829038e-05 2.2861135473366665e-06 -1.2315570169442151e-02 1.2315641212460739e-02 0 2 0 +P 378 22 -6.3213644028068727e-02 -5.2095115397050848e-02 -1.5820369430860998e+01 1.5820581493572236e+01 1 0 0 0 0 +P 379 22 -8.0253989160968833e-02 6.2876484874701419e-02 -4.2260171878810738e+01 4.2260294856777207e+01 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 1 0 0 0 0 +P 381 22 -1.9238729045382397e-01 -1.7573663989709587e-01 -5.4676952041087944e+01 5.4677572922904659e+01 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 1 0 0 0 0 +P 383 22 -5.5924405626760355e-02 -2.4912024241247683e-02 -3.3154674699699282e+00 3.3160326736214896e+00 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 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 0 0 0 0 +P 386 211 -3.8005634452398301e-01 -1.4412602541072891e-01 -9.1373216249149591e-01 1.0097531311588057e+00 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 1 0 0 0 0 +P 388 22 6.3118015182099169e-02 4.4880327170562045e-01 -1.5387434537915861e+00 1.6041008936848880e+00 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 1 0 0 0 0 +P 390 22 -8.5152879382827049e-02 -8.7018304052106268e-02 -4.5945451991180614e-01 4.7531216476614546e-01 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 1 0 0 0 0 +P 392 22 -6.7341384605742141e-02 -4.4398695132734589e-02 -5.7532558890580363e+00 5.7538212894728558e+00 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 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 0 0 0 0 +P 395 211 -9.9178311542215425e-01 -1.0828339203847432e+00 -2.4794674438069451e+00 2.8850306128307914e+00 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 0 0 0 0 +P 397 211 3.9331485195342403e-01 1.7125072443330774e-01 -9.8750894864100902e-01 1.0856689605640144e+00 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 0 0 0 0 +P 399 -211 -1.5795426962103520e-01 1.2261947461726234e-01 -1.2786528843793228e+01 1.2788853926169581e+01 1 0 0 0 0 +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 3 0 0 -1 0 +P 41 2203 -3.5096158275163236e-01 -6.5324073291532936e-01 6.4120718804435573e+03 6.4120719697163750e+03 2 0 0 -13 0 +P 3 1 3.5096158275163236e-01 6.5324073291532936e-01 4.1594615987003954e+02 4.1594682088954704e+02 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 3 0 0 -2 0 +P 4 2 2.7501906829241841e-02 -1.2146878480571459e-01 -2.4425191616079805e+03 2.4425191647831903e+03 3 0 0 -4 0 +P 25 2103 -2.7501906829241841e-02 1.2146878480571459e-01 -4.3752498996173417e+03 4.3752499693803265e+03 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 3 0 0 -5 0 +P 39 21 5.6879342880917538e-01 7.5338012753840347e-02 1.3882129535590456e+01 1.3893981510846166e+01 2 0 0 -13 0 +P 40 21 4.0353127377792430e-01 -1.0794042666778709e+00 2.4382432099069892e+01 2.4409648627655276e+01 2 0 0 -13 0 +V -4 0 0 0 0 0 0 27 0 +P 12 21 3.6714966898125962e+00 -2.8959215128987843e+00 -1.0957485461237511e+00 4.8028027471995083e+00 2 0 0 -9 0 +P 13 21 9.0366392277633989e-02 -5.2691266877741805e-01 1.9123724213929416e-01 5.6778052815543023e-01 2 0 0 -9 0 +P 14 21 -5.4742252565373975e-02 9.9812434983835754e-02 5.6673941239040604e-01 5.7805951073393502e-01 2 0 0 -9 0 +P 15 21 -4.2785424343628164e-01 -3.2385695231399270e-01 -3.5095687498530953e-02 5.3774927844631759e-01 2 0 0 -9 0 +P 16 -4 2.9718367737999309e+00 -5.2406590168947231e-01 -2.3934560712361521e+00 4.1334115261319404e+00 2 0 0 -9 0 +P 11 2 1.6176455215218464e+00 -3.5208120614031763e-01 -8.1690576640657608e-01 1.8753594962580435e+00 2 0 0 -9 0 +P 6 -2 -2.5309383529199383e+01 2.5605502229007829e+01 3.5459450278646557e+01 5.0532952150964263e+01 3 0 0 -5 0 +P 17 4 3.7194740649112351e-02 1.2081735484703142e+00 -1.0381037228237732e+01 1.0558266936671616e+01 2 0 0 -11 0 +P 18 21 -3.8063394485410336e+00 5.6572199649196686e-01 -5.4033256081716328e+00 6.6335653311592448e+00 2 0 0 -11 0 +P 19 21 1.4421971897575430e+00 -1.4182830615990176e+00 5.7062472324337099e-01 2.1016831711130513e+00 2 0 0 -11 0 +P 20 21 2.7303036205130007e+00 -7.3316197951629114e-01 9.1820481918052266e-01 2.9724038148207561e+00 2 0 0 -11 0 +P 21 21 -2.0182388692079840e+00 1.5399105798395493e-01 -1.0724900871680109e+01 1.0914233829567960e+01 2 0 0 -11 0 +P 22 21 1.2491774325410158e-01 -5.4800394801420538e-01 -7.6805684279456621e+00 7.7011066831965493e+00 2 0 0 -11 0 +P 30 21 1.5370980407646048e-01 8.1756875564613984e-01 -1.5100758824998671e+01 1.5123655724223996e+01 2 0 0 -13 0 +P 31 21 3.5609178221999949e-01 -1.2821539734905008e+00 -1.5993658274378207e+01 1.6048919750771034e+01 2 0 0 -13 0 +P 32 21 -5.7321384139990961e-01 1.8778171682794662e-01 1.6282864814338351e+00 1.7364195768210722e+00 2 0 0 -13 0 +P 33 21 3.1657101493395272e+00 -1.6119295557286719e+00 4.4063722475163161e+00 5.6600489420096816e+00 2 0 0 -13 0 +P 34 21 2.6326825731670658e+00 -1.7437994078856278e+00 2.2174731113567527e+00 3.8586319992440359e+00 2 0 0 -13 0 +P 35 21 6.8425955467206965e+00 -4.4447064866609622e+00 1.5000198384257514e+01 1.7075786398747489e+01 2 0 0 -13 0 +P 36 21 4.0164782232489156e+00 -5.4148487689946281e+00 1.3344639617162901e+01 1.4950989633494801e+01 2 0 0 -13 0 +P 37 21 3.9627824931833042e+00 -7.3524675138650126e+00 1.5839388268499249e+01 1.7906664802553045e+01 2 0 0 -13 0 +P 23 21 6.3545309142797402e-01 5.0932772066100540e-01 -1.0519858948403776e+01 1.0551333927648679e+01 2 0 0 -11 0 +P 24 21 -1.3293995544884336e+00 5.4471300945374300e-02 -2.4605532627938929e+00 2.7972473357117349e+00 2 0 0 -11 0 +P 26 2 -9.0376759228672943e-01 8.5542850621349587e-01 -2.0776141357023594e+03 2.0776145345862528e+03 2 0 0 -13 0 +P 27 21 4.5222474530545992e-01 3.0982198771832353e-01 -1.3647713867247677e+02 1.3647823957360674e+02 2 0 0 -13 0 +P 28 21 -9.6670908210745185e-02 -1.0947679481510482e+00 -1.0578578360202395e+02 1.0579149244820697e+02 2 0 0 -13 0 +P 29 21 -4.8393908701574007e-01 2.0274532889938918e-01 -2.1573305980675745e+01 2.1579685670653127e+01 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 8 22 -5.8563239941287950e+00 -1.9298209509462974e-01 8.3500314047580435e+00 1.0200823362537069e+01 3 0 0 -7 0 +P 7 -24 -1.9947058501930567e+01 2.7030936827831496e+01 2.9618547273355034e+02 3.0941145860556639e+02 3 0 0 -6 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 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 1 0 0 0 0 +V -8 0 0 0 0 0 0 10 0 +P 46 21 -3.7285968742864894e+00 2.8910858542250293e+00 1.1679555837123013e+01 1.2596540660828801e+01 2 0 0 -17 0 +P 47 21 -1.8023297258181672e+00 2.5930887493787522e+00 1.4214934742857999e+01 1.4561485894181056e+01 2 0 0 -17 0 +P 48 21 4.5585582966435784e-01 6.8325648113844262e-01 4.4766795478450598e+00 4.5514067858796050e+00 2 0 0 -17 0 +P 49 21 1.8795211728249670e+00 2.1980346924035365e+00 1.6255259634668267e+01 1.6510524587019709e+01 2 0 0 -17 0 +P 50 21 1.0534179425365028e+01 3.0060939727642277e+00 5.9681656292270027e+01 6.0678708250320625e+01 2 0 0 -17 0 +P 51 1 1.4568595374906375e+01 4.2271332429249249e+00 9.1375908388900839e+01 9.2627091936149995e+01 2 0 0 -17 0 +P 42 -2 -3.0517819564912308e+01 1.0428844168876985e+01 7.4912511307218153e+01 8.1560354045635137e+01 2 0 0 -15 0 +P 43 21 -5.7206370395985298e+00 5.4834348217882312e-01 1.3778163054100464e+01 1.4928635096975666e+01 2 0 0 -15 0 +P 44 2 -2.2525958537263930e+00 1.3998775512003811e-01 5.1363462708508241e+00 5.6200300413691791e+00 2 0 0 -15 0 +P 45 -2 -3.3632312463497884e+00 3.1506842882115055e-01 4.6744576577204295e+00 5.7766813072113079e+00 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 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 1 0 0 0 0 +P 65 -311 7.0071389671228546e-01 -5.7580058229065734e-01 -6.8836441564177575e-01 1.2426050350911262e+00 2 0 0 -23 0 +P 66 -211 1.0077824213790697e-01 -4.4819776346861628e-01 6.6159383291203300e-01 8.1744949318836269e-01 1 0 0 0 0 +P 67 213 2.9009203059815278e+00 -1.7893295104458362e+00 -1.1484922938389688e+00 3.6608745191428511e+00 2 0 0 -24 0 +P 68 2112 5.5409088873312584e-01 1.6103136011254437e-01 -4.0047552306756740e-01 1.1730815152379661e+00 1 0 0 0 0 +P 69 -4122 1.8989528992549274e+00 -7.6588145825984388e-01 -1.6149441071155617e+00 3.4671903612005783e+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 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 0 0 -26 0 +P 72 -311 1.5493234368667361e-01 -5.2903668164922500e-02 -2.2756098012880561e+00 2.3351398728649673e+00 2 0 0 -27 0 +P 73 311 -1.0479399410759047e+00 3.5508361290150353e-01 -1.2285977863989042e+00 1.7266703338789495e+00 2 0 0 -28 0 +P 74 -321 7.1709044630839699e-02 -8.0540288172282606e-02 -1.1040623347056104e+00 1.2141760679639282e+00 1 0 0 0 0 +P 75 323 -9.5436433963787692e-01 -2.9602351803484112e-01 -1.0976303074658433e+00 1.7459894215858962e+00 2 0 0 -29 0 +P 76 -313 4.5229065483994757e-01 8.1631980606907503e-02 -5.8961679501597064e-01 1.1604642453115961e+00 2 0 0 -30 0 +P 77 113 -2.4190544648866458e-01 -1.5219642166406071e-02 2.7578108978004551e-01 9.1680871617924098e-01 2 0 0 -31 0 +P 78 -211 9.1225699860842469e-01 -2.2413756750953776e-01 -9.7235135008989171e-02 9.5466482969645439e-01 1 0 0 0 0 +P 79 211 -1.6019746019187674e-02 -1.0962764287148888e-01 -3.9451013408667096e-01 4.3288899632718902e-01 1 0 0 0 0 +P 80 -211 2.2284319500814491e-02 -1.1912520537149757e-01 8.0408625454810090e-02 2.0157563691564462e-01 1 0 0 0 0 +P 81 111 2.6147842628995627e-01 -5.3714869055077885e-01 3.2448827889606002e-01 6.9311754177514195e-01 2 0 0 -32 0 +P 82 223 8.0109014259129629e-01 -6.0688849198709971e-01 -2.0305333370163012e-01 1.2882559187308529e+00 2 0 0 -33 0 +P 83 211 1.0621591005162476e+00 -2.6715583755681332e-01 -2.2047937637000264e-01 1.1258974805259456e+00 1 0 0 0 0 +P 84 -213 -3.9080845150093041e-01 2.6753344288388836e-01 -1.4175065470742074e+00 1.6446536225973012e+00 2 0 0 -34 0 +P 85 213 -7.0973282225719359e-01 3.4100256795269435e-01 -4.5663121010528904e+00 4.6984477584393929e+00 2 0 0 -35 0 +P 86 113 -2.3157800835597475e-01 -5.5195889026928313e-01 -5.6838651946392025e+00 5.7714335617292285e+00 2 0 0 -36 0 +P 87 111 -4.6066273585814793e-01 3.9227103753437581e-01 -4.7966952888036269e+00 4.8365888823764545e+00 2 0 0 -37 0 +P 88 311 2.7517509894565889e-01 -1.1487381757051843e-01 -2.1239959178119161e+00 2.2018063985792806e+00 2 0 0 -38 0 +P 89 -323 -7.0371163798211422e-01 -2.0006265444806237e-01 -4.1983731881486621e+00 4.3521687974762546e+00 2 0 0 -39 0 +P 90 211 -1.0761954765935261e-01 -1.6382379153854643e-01 -2.3860134843071883e+00 2.3981159967583294e+00 1 0 0 0 0 +P 91 111 -1.7970542608682286e-01 6.5692258472370091e-01 -2.4966648992850491e+00 2.5914082160491692e+00 2 0 0 -40 0 +P 92 -213 -3.7677031801546979e-01 -2.2171436967981403e-01 -7.8528785468690341e+00 7.8980386958816329e+00 2 0 0 -41 0 +P 93 111 6.5806093929116216e-01 1.7165685794549929e-01 -8.5486801528223268e+01 8.5489613201855903e+01 2 0 0 -42 0 +P 94 323 -4.8433024369999383e-01 -1.4687330505886736e-01 -8.3957716820012237e+01 8.3964255353447285e+01 2 0 0 -43 0 +P 95 331 3.5807589393682532e-01 -1.5224080954598848e-01 -4.3981009527858146e+02 4.3981131055034541e+02 2 0 0 -44 0 +P 96 -313 -4.8374978977586536e-01 -3.5240006944584942e-02 -6.3924051825900631e+02 6.3924131911008010e+02 2 0 0 -45 0 +P 97 2114 2.5503907680222165e-01 4.3505021898565793e-01 -1.9084717226924338e+03 1.9084721994174818e+03 2 0 0 -46 0 +P 98 223 -8.2278535331352418e-02 -1.5371015913753452e-01 -1.2132425478781010e+03 1.2132428143693633e+03 2 0 0 -47 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 2 0 0 -13 0 +P 99 92 2.1325344736888994e+01 -1.9078086942355402e+01 4.2593028050939884e+03 9.0133192852153970e+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 0 0 0 0 +P 101 -213 2.5952690952053969e-01 1.7113996608260679e-01 -5.5927702746122156e+02 5.5927759069273088e+02 2 0 0 -48 0 +P 102 211 4.2014540449212504e-02 -3.5537589858044005e-01 -7.2949847678164119e+01 7.2950858893526046e+01 1 0 0 0 0 +P 103 223 -6.3998361774731272e-01 2.5907507037149113e-02 -1.3487047205365673e+02 1.3487424091129336e+02 2 0 0 -49 0 +P 104 -213 -1.2839848855141253e-01 -2.0565346315218563e-01 -7.5718320753566431e+01 7.5722517718575858e+01 2 0 0 -50 0 +P 105 323 -1.9872082796055467e-02 2.6794098698287805e-01 -6.8108399991638535e+01 6.8114172641420211e+01 2 0 0 -51 0 +P 106 -321 2.7142152013196741e-01 5.2993467515270787e-01 -2.6160140573056200e+01 2.6171570380158332e+01 1 0 0 0 0 +P 107 211 2.9437631694032651e-01 -4.6347150711519880e-01 -6.0143844523795785e+01 6.0146512593344127e+01 1 0 0 0 0 +P 108 -213 2.4619007605199436e-01 -6.0434473709003467e-01 -5.8018576150880186e+01 5.8030267612341916e+01 2 0 0 -52 0 +P 109 323 -9.9384342697108385e-02 -5.3376492002751497e-01 -2.0781667217870002e+01 2.0807229643207261e+01 2 0 0 -53 0 +P 110 -323 -2.7981634786068688e-01 3.1851689070453132e-01 -2.3479670779247950e+01 2.3502171437618404e+01 2 0 0 -54 0 +P 111 213 6.3127980478257359e-04 8.7114195588813836e-01 -3.8001408612870264e+00 3.9658129295852458e+00 2 0 0 -55 0 +P 112 223 1.1771085064566952e-01 -1.8207163509755123e-01 -9.8029417254923035e-01 1.2741930596758400e+00 2 0 0 -56 0 +P 113 2112 1.9209205934717882e-01 -5.3351059012014823e-01 -4.1646177314502335e+00 4.3067813437698792e+00 1 0 0 0 0 +P 114 113 -2.7598565373989276e-01 3.7960657283068916e-01 -4.9916024639480350e-01 1.0051155152174889e+00 2 0 0 -57 0 +P 115 -2112 -9.9845269053552094e-02 -3.5876231396345826e-01 -1.8622805531032363e+00 2.1188582111692340e+00 1 0 0 0 0 +P 116 -213 3.7849030650847143e-01 3.7784357170711968e-03 -9.0606253780559282e-02 1.0192850428959987e+00 2 0 0 -58 0 +P 117 321 5.8085707824128519e-01 -9.7162071509718617e-01 3.6764844693599641e-01 1.2885061505027517e+00 1 0 0 0 0 +P 118 333 4.7060519423644726e-01 1.3602005935586783e-01 1.1809574745448215e+00 1.6340056336417663e+00 2 0 0 -59 0 +P 119 -323 1.4599984686426251e+00 -7.3997071978743245e-01 2.5814573561830843e+00 3.1906207354049889e+00 2 0 0 -60 0 +P 120 213 1.6442662451119143e+00 -1.1808050207330052e+00 3.0613568265944324e+00 3.7231193798014286e+00 2 0 0 -61 0 +P 121 -211 2.3285071815343761e+00 -1.4930049131139151e+00 3.7980187414499524e+00 4.7005782102146254e+00 1 0 0 0 0 +P 122 113 2.0705991745434469e+00 -2.1281647954902798e+00 5.8472746169042855e+00 6.6028251690195514e+00 2 0 0 -62 0 +P 123 213 1.6982439540579044e+00 -2.0586767864933027e+00 5.4934725034644734e+00 6.1605691667856659e+00 2 0 0 -63 0 +P 124 113 2.9418564684892945e+00 -3.1012166205676479e+00 5.9093890342429791e+00 7.3452154730835240e+00 2 0 0 -64 0 +P 125 2112 2.3972505494101850e+00 -3.1969828230803983e+00 9.5256435215448363e+00 1.0372472494645029e+01 1 0 0 0 0 +P 126 -2112 3.4184366439918845e+00 -3.6749985902842326e+00 9.6543481666732056e+00 1.0921563717518836e+01 1 0 0 0 0 +P 127 313 7.2107705342681427e-01 -1.9937173017311436e+00 4.6809918289416128e+00 5.2178012042881861e+00 2 0 0 -65 0 +P 128 -313 2.7935483674053357e-01 -8.1871255653283084e-02 1.1718388726820061e+01 1.1756180517434442e+01 2 0 0 -66 0 +P 129 113 -8.2708674444163105e-02 3.4522701208939077e-01 6.1206736781408893e+00 6.1737560715212680e+00 2 0 0 -67 0 +P 130 311 2.4695926864221421e-01 4.1868501205522318e-01 1.8281949053007391e+01 1.8295180311364682e+01 2 0 0 -68 0 +P 131 -311 2.9376002073213692e-01 5.4077841199444876e-01 2.3165952234661379e+01 2.3179468384934378e+01 2 0 0 -69 0 +P 132 -211 8.2622565565000405e-01 2.0025688618269719e-01 1.2637005194543391e+01 1.2666338528806758e+01 1 0 0 0 0 +P 133 221 -1.9997941753530871e-01 6.5041493910278059e-01 4.3772957762713439e+01 4.3781669271045850e+01 2 0 0 -70 0 +P 134 2224 1.1786850791080654e+00 3.2621875180768561e-01 6.7450236130820841e+01 6.7471056333264244e+01 2 0 0 -71 0 +P 135 -213 -6.0071912138819927e-01 -1.7948907599716118e-01 5.4158753007648563e+01 5.4167324041288985e+01 2 0 0 -72 0 +P 136 -2214 4.8755136324043447e-01 -5.7626612657803589e-01 1.5857152644493947e+03 1.5857159489133173e+03 2 0 0 -73 0 +P 137 113 -4.1376307441085342e-01 -8.6244447369672600e-02 1.4358186673828980e+03 1.4358189407957868e+03 2 0 0 -74 0 +P 138 2224 -3.9430912224019385e-02 -3.0577286480143262e-01 3.3195578920930161e+03 3.3195581504912811e+03 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 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 0 0 0 0 +P 141 211 -3.8214210133710984e+00 4.1209563848882319e-01 8.8452891185503653e+00 9.6452942283966223e+00 1 0 0 0 0 +P 142 -211 -1.9337263835215596e-01 3.8299880626085796e-02 7.4065220340539428e-01 7.7904128865453037e-01 1 0 0 0 0 +P 143 -313 -8.2556654128106732e+00 2.7128082773100708e+00 2.0430817739322297e+01 2.2220577016158007e+01 2 0 0 -76 0 +P 144 323 -7.0541203470947975e+00 1.7671260695652278e+00 1.7253849810841484e+01 1.8737883624206951e+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 2 0 0 -18 0 +V -18 0 0 0 0 0 0 14 0 +P 146 -2112 -2.6743483898333138e+00 8.2173272799491937e-01 3.9048032086408360e+00 4.8946566651373811e+00 1 0 0 0 0 +P 147 -211 -3.4761870385601772e+00 1.5018145990736227e+00 1.0041938198918368e+01 1.0733094893498349e+01 1 0 0 0 0 +P 148 2212 -1.5117020725326820e+00 1.9137806911799142e+00 8.1880940760776273e+00 8.5949424012979971e+00 1 0 0 0 0 +P 149 113 -1.2447883978844071e-01 2.5267362074443822e-01 1.5280844145927219e+00 1.6030732744200233e+00 2 0 0 -78 0 +P 150 -2212 1.3647329543852704e-01 5.2795247924943911e-01 4.2715630293953559e+00 4.4072621986569747e+00 1 0 0 0 0 +P 151 2212 5.8338973945168648e-01 1.6779417880182423e+00 1.4261748231538144e+01 1.4402556906492567e+01 1 0 0 0 0 +P 152 111 1.4165244960744796e+00 4.6731499980347514e-02 6.0300599428003485e+00 6.1958508693507808e+00 2 0 0 -79 0 +P 153 -211 -8.8908673032611560e-03 7.5389806891575817e-01 4.3882568137415596e+00 4.4547411814925377e+00 1 0 0 0 0 +P 154 113 1.8185267740322264e+00 1.0824417118785685e+00 1.1430218213996847e+01 1.1643291552010357e+01 2 0 0 -80 0 +P 155 213 1.5036150668328048e+00 3.5431629391135439e-01 8.4987502245096724e+00 8.6550697519553221e+00 2 0 0 -81 0 +P 156 223 4.6405083798304085e+00 1.6629892500258932e+00 3.0667601777968951e+01 3.1071117824765778e+01 2 0 0 -82 0 +P 157 -213 3.9970063450751039e+00 1.4686799434037365e+00 2.8332911049604355e+01 2.8661754230859430e+01 2 0 0 -83 0 +P 158 113 9.3580203216703879e+00 3.1521852498297869e+00 5.4878039383787858e+01 5.5765298071186237e+01 2 0 0 -84 0 +P 159 221 2.8855367459185346e+00 6.9662349745004337e-01 1.5936383535813000e+01 1.6219729600467367e+01 2 0 0 -85 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 2 0 0 -19 0 +P 53 21 -1.1792977287052229e+00 -3.1505474039551125e+00 3.5604699631516148e+00 4.8983301681289770e+00 2 0 0 -19 0 +P 54 21 5.4393098289857278e+00 1.2064682052724261e-01 -6.0927087448274282e+00 8.1683380757838790e+00 2 0 0 -19 0 +P 55 21 4.3229282211027176e+00 8.4560344871155246e-01 -3.2960883103994504e+01 3.3253910575937830e+01 2 0 0 -19 0 +P 56 21 2.9321949272632235e+00 6.6737924249356242e+00 -6.4867381486965698e+01 6.5275680413138062e+01 2 0 0 -19 0 +P 57 21 -4.3229282211027176e+00 -8.4560344871155246e-01 -3.3185882553128543e+01 3.3476940637210568e+01 2 0 0 -19 0 +P 58 21 -2.9321949272632235e+00 -6.6737924249356242e+00 -1.3725188086854727e+01 1.5540851342257129e+01 2 0 0 -19 0 +P 59 21 -5.4393098289857278e+00 -1.2064682052724261e-01 -6.8094310938794118e+00 8.7160196703137292e+00 2 0 0 -19 0 +P 60 -3 -1.0101998152855945e+01 -6.4603650197245228e+00 -1.0742083072280693e+01 1.6099038219724946e+01 2 0 0 -19 0 +P 160 92 -1.1792977287052206e+00 -3.1505474039551116e+00 -1.3837876686758571e+02 2.1446510077624441e+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 2 0 0 -86 0 +P 162 3214 1.1200777844798961e+00 4.1111180711726349e-02 3.7259896703360691e+00 4.1247208876059354e+00 2 0 0 -87 0 +P 163 -3122 5.4889822392614185e-01 6.7168289205653042e-02 1.2394553573684344e+00 1.7569269434479631e+00 2 0 0 -88 0 +P 164 -211 -1.8246867227292973e-01 -7.4395915930269774e-01 9.3316746363469338e-01 1.2153400129831278e+00 1 0 0 0 0 +P 165 213 -2.4505059959837305e-01 -1.9411646561574297e-01 4.9179202248504200e-01 1.1013212363778255e+00 2 0 0 -89 0 +P 166 111 1.0831519365169956e-01 -8.5977649139333909e-02 -1.2164921808366023e-01 2.2834725745604548e-01 2 0 0 -90 0 +P 167 2112 2.1446758121909784e-01 -3.2834007745682020e-01 2.5652908362645738e-01 1.0499535730233749e+00 1 0 0 0 0 +P 168 -3122 -1.6966076865868715e-01 -3.3109432038849090e-01 -2.5618579747388798e-01 1.2036532933709381e+00 2 0 0 -91 0 +P 169 -323 1.8511690574403743e+00 7.7549450304113823e-02 -1.7771148289683374e+00 2.7167454062741467e+00 2 0 0 -92 0 +P 170 221 1.1371300019760869e-01 -4.0058843868012450e-01 -1.2195001765893660e+00 1.4001013987635382e+00 2 0 0 -93 0 +P 171 2212 1.2523629043783191e-01 1.5016324154887450e-01 -1.0511017569858179e+00 1.4224621696177961e+00 1 0 0 0 0 +P 172 -211 5.5214282633985745e-01 1.1107501711974165e-01 -2.9656055335364906e+00 3.0218364160802897e+00 1 0 0 0 0 +P 173 -3114 2.4243956428752380e+00 1.3862290434432972e-01 -3.4795719084528560e+00 4.4684697068205574e+00 2 0 0 -94 0 +P 174 -321 9.7258158118116156e-01 -3.2442714147895962e-01 -5.7679095353058232e+00 5.8790806483371956e+00 1 0 0 0 0 +P 175 321 1.1597250287476084e+00 4.0770177789498285e-01 -8.7674225604355964e+00 8.8669342049683344e+00 1 0 0 0 0 +P 176 -321 1.2473896171875081e+00 5.8064712076131186e-01 -7.6950130852787115e+00 7.8326240353106558e+00 1 0 0 0 0 +P 177 211 4.6411646485160624e-01 -3.1056116558930160e-03 -6.8807161452354304e+00 6.8977639995852016e+00 1 0 0 0 0 +P 178 113 1.1429721118154468e+00 2.0039644079081445e+00 -1.8192672029751531e+01 1.8365275501470027e+01 2 0 0 -95 0 +P 179 113 -3.7950464568590037e-01 6.9483727246069926e-01 -1.1395936644018100e+01 1.1448140272842123e+01 2 0 0 -96 0 +P 180 -211 1.1066748123962553e+00 1.5207401839636081e+00 -2.0061478070674706e+01 2.0149932059750874e+01 1 0 0 0 0 +P 181 211 2.4841143236311466e-02 2.3230814679517509e-01 -4.8359467720177013e-01 5.5491238423969202e-01 1 0 0 0 0 +P 182 221 -4.2542141885817947e-01 5.9981854143176938e-01 -9.4453389518417676e+00 9.4897257644226993e+00 2 0 0 -97 0 +P 183 111 -3.2417120919680359e-01 -3.9808752168111899e-01 -7.9310594479818883e+00 7.9488039487468249e+00 2 0 0 -98 0 +P 184 111 -5.0210374058263441e-01 1.5238011936667630e+00 -8.2367846286676585e+00 8.3926705442060054e+00 2 0 0 -99 0 +P 185 -211 2.4005831721027357e-01 -3.1272585897954058e-01 -3.1418638717544294e+00 3.1695762858893386e+00 1 0 0 0 0 +P 186 111 -7.1801802285008720e-01 -1.5663690926018516e+00 -4.6475347856871210e+00 4.9585140112706885e+00 2 0 0 -100 0 +P 187 213 -8.7754060313250792e-01 1.0687002965254111e-01 -7.7721991707009082e+00 7.8598301364746987e+00 2 0 0 -101 0 +P 188 -213 -1.7607285674592426e+00 -2.1828765548774491e+00 -9.9325807070362337e+00 1.0374911328171784e+01 2 0 0 -102 0 +P 189 111 6.0732737211851184e-02 -1.4876097180116929e-01 -8.8365199189003499e-02 2.2769782811477235e-01 2 0 0 -103 0 +P 190 3322 -8.9819328650589736e-01 -1.4101551478664545e+00 -4.9514548113054522e+00 5.3889846427113186e+00 2 0 0 -104 0 +P 191 311 -9.8211331445284256e-01 -7.9298343389061809e-01 -1.4504485608208735e+00 1.9861635746679696e+00 2 0 0 -105 0 +P 192 -3212 -1.7421317431910346e+00 -8.2221491446806805e-01 -3.7329995940397152e+00 4.3667518646939678e+00 2 0 0 -106 0 +P 193 211 -1.4263310139354122e+00 -6.0848557736261411e-01 -2.6734691732657865e+00 3.0937989696285668e+00 1 0 0 0 0 +P 194 -211 -2.5524022272364206e+00 -5.2387494780839883e-01 -2.0619036105597894e+00 3.3256771302521524e+00 1 0 0 0 0 +P 195 211 -2.0644196153139507e-01 1.6631552161324753e-02 -9.1057393117718233e-01 9.4420313547863910e-01 1 0 0 0 0 +P 196 311 -9.4646039874614889e+00 -5.6457554838761190e+00 -1.0111196049899565e+01 1.4964532889856393e+01 2 0 0 -107 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 2 0 0 -21 0 +P 62 -1 -2.6048674114218304e+00 -1.3071749066125802e+00 3.9636024064472406e+00 4.9197748428113490e+00 2 0 0 -21 0 +P 197 92 0 0 -9.4512391699145715e-01 1.0628508028552741e+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 1 0 0 0 0 +P 199 111 1.2648914843620779e-01 -7.9047867519565176e-02 -4.6372272917197632e-01 5.0547644849410533e-01 2 0 0 -108 0 +P 200 -2112 7.9792227079239864e-01 4.2225813261826067e-01 -1.8859938515610912e+00 2.2923233789792832e+00 1 0 0 0 0 +P 201 313 -3.4282732844273572e-01 -3.3700984327477074e-01 4.3482101578220667e-01 1.2094706287093313e+00 2 0 0 -109 0 +P 202 -321 3.5673637654704443e-01 4.8759571964329723e-01 3.3223694327211195e-01 8.4795800287583600e-01 1 0 0 0 0 +P 203 321 -1.2446271985425277e+00 -6.2023897699434571e-01 1.2956105175346537e+00 1.9636804284509302e+00 1 0 0 0 0 +P 204 -313 -5.7809698523889164e-01 -5.9865262101058792e-01 1.0244967728543724e+00 1.5686672710805456e+00 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 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 0 0 0 0 +P 207 111 2.6649022515117178e+00 -1.5231421757903791e+00 -8.8732310945740023e-01 3.1980037521492721e+00 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 2 0 0 -114 0 +P 208 311 9.8128386922335242e-01 -7.1757193254617169e-01 -6.8412429949797804e-01 1.4810567161454691e+00 2 0 0 -112 0 +P 209 111 1.5789089989780553e-01 5.4611185360415225e-02 1.0867920409584220e-01 2.4071287385579151e-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 2 0 0 -115 0 +P 212 22 -1.2934347935662455e-01 1.8056299939314888e-01 -1.1528577356542393e+00 1.1740586403837536e+00 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 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 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 2 0 0 -117 0 +P 216 211 -3.2133320191013570e-01 -8.8845493592173877e-02 -7.7314963448494112e-01 8.5345690610929803e-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 2 0 0 -118 0 +P 218 111 1.6018610539930081e-01 2.4271751083915055e-01 -4.3737795180144273e-01 5.4230107094949964e-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 0 0 0 0 +P 220 211 -2.6130105545298021e-01 -1.3189239271634661e-02 -2.4039842802187339e-01 3.8173732684765543e-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 1 0 0 0 0 +P 222 22 2.0679224809817040e-01 -4.7905401060734981e-01 3.2231230740117400e-01 6.1330335271768321e-01 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 0 0 0 0 +P 224 211 3.2705663503245730e-01 -4.8246898921629483e-01 -1.9339384413010952e-01 6.2978038388121327e-01 1 0 0 0 0 +P 225 111 4.6015692466867701e-02 -2.0383276089091178e-02 1.0990311970840183e-01 1.8119386860202738e-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 0 0 0 0 +P 227 111 -1.7214071331345446e-01 -4.8264226777565866e-02 -6.7228410955527756e-02 2.3388270651355680e-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 0 0 0 0 +P 229 111 -3.1703515942667282e-01 4.6263260948433826e-01 -3.4987204494063704e+00 3.5459560921090518e+00 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 0 0 0 0 +P 231 211 2.5100062397212689e-02 -4.5049125374518711e-01 -4.9833364175074433e+00 5.0056661912066387e+00 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 1 0 0 0 0 +P 233 22 -2.3047286774980685e-01 1.2163186034124118e-01 -1.7622407592754459e+00 1.7814052166395471e+00 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 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 1 0 0 0 0 +P 236 111 -4.1140648547337716e-01 -2.6823730180912397e-01 -2.6724082079295770e+00 2.7205131458202456e+00 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 1 0 0 0 0 +P 238 22 -1.5625329294792351e-01 5.0377676570762064e-01 -2.1083686814135736e+00 2.1733441094289487e+00 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 0 0 0 0 +P 240 111 -2.1813350257864123e-01 -2.5306866209122109e-01 -7.2407392074981836e+00 7.2496999830393873e+00 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 1 0 0 0 0 +P 242 22 3.1283714292142595e-01 1.6177329345823128e-02 -3.5951437496245113e+01 3.5952802211098856e+01 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 2 0 0 -126 0 +P 244 211 -8.8322010909638760e-02 -2.3230389018430980e-01 -4.7761957316121880e+01 4.7762807835458695e+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 2 0 0 -127 0 +P 246 111 -5.2246677240471596e-03 -1.4230926848259157e-01 -7.6470870445203118e+01 7.6471122166949328e+01 2 0 0 -128 0 +P 247 221 3.1118378890592058e-01 -1.3630984864950577e-01 -2.8432103404018636e+02 2.8432176405422894e+02 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 2 0 0 -130 0 +P 249 111 7.1429956195406319e-02 1.1262397425854469e-01 -2.4149855125190902e+02 2.4149862579892570e+02 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 1 0 0 0 0 +P 251 111 3.3522844139410250e-02 2.0556422059052964e-01 -7.8301754502786298e+02 7.8301758436288753e+02 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 0 0 0 0 +P 253 211 -1.0931233412869321e-01 5.8050394161407254e-02 -2.2407062653002762e+02 2.2407070418146742e+02 1 0 0 0 0 +P 254 111 8.5648550805267079e-02 -1.7810518048657847e-01 -1.6434057182756410e+02 1.6434074608976536e+02 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 0 0 0 0 +P 256 111 4.5496572858580364e-01 1.4838294526426893e-01 -2.6649909534793096e+02 2.6649955919696873e+02 2 0 0 -134 0 +V -49 0 0 0 0 0 0 2 0 +P 257 22 -1.4711751798151942e-01 -5.6259697251430631e-02 -9.8098834067931008e+01 9.8098960515415683e+01 1 0 0 0 0 +P 258 111 -4.9286609976579326e-01 8.2167204288579737e-02 -3.6771637985725704e+01 3.6775280395877665e+01 2 0 0 -135 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 0 0 0 0 +P 260 111 1.0357375259596519e-01 -4.1258376884160269e-01 -3.6822266804582732e+01 3.6824971216781876e+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 2 0 0 -137 0 +P 262 211 1.4456308089166173e-01 -1.1923682482498356e-01 -1.9767890695868459e+01 1.9769271566080882e+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 0 0 0 0 +P 264 111 5.9359015453132734e-02 -3.5269859385229346e-01 -5.2306540289773871e+01 5.2307937222537824e+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 1 0 0 0 0 +P 266 111 1.7121583094049395e-01 -3.2406303517067925e-01 -1.1157425407826961e+01 1.1164259628078851e+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 1 0 0 0 0 +P 268 111 1.2461278822945901e-01 3.3466457865971788e-01 -1.0255848812896222e+01 1.0262951973023387e+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 0 0 0 0 +P 270 111 -1.4346561340253111e-01 3.0620444051767443e-01 -5.4173952238189038e-01 6.5272111359466933e-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 0 0 0 0 +P 272 211 5.9785090683486621e-02 -1.8030085794299547e-01 -1.0356062916028855e-01 2.5746309493806629e-01 1 0 0 0 0 +P 273 111 6.9407967703243298e-02 1.8135039476984641e-01 -2.2897781125613634e-01 3.2917452834556382e-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 0 0 0 0 +P 275 211 1.6238597675872291e-01 3.5045427364307591e-01 -2.1453629200455779e-01 4.6334976945029910e-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 0 0 0 0 +P 277 111 1.7384618945869995e-01 -2.2906445694892602e-01 3.4351937443349062e-01 4.6788693510055751e-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 2 0 0 -144 0 +P 279 -211 3.0681245317011434e-02 -9.2785550344249429e-02 1.4467368603156844e-01 2.2351903162113226e-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 2 0 0 -145 0 +P 281 -211 5.6647411898707156e-01 -4.8869691139755277e-02 1.2180527593897912e+00 1.3514486611600747e+00 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 0 0 0 0 +P 283 111 1.3052456300222421e+00 -7.8115318420007707e-01 1.8715126470489638e+00 2.4155011157816300e+00 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 0 0 0 0 +P 285 -211 1.9298980497479277e+00 -2.1173709670199026e+00 5.4886366910921414e+00 6.1929297433527006e+00 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 0 0 0 0 +P 287 111 1.0786305410186852e+00 -1.7407558071848346e+00 4.4223555485988415e+00 4.8753587378662653e+00 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 0 0 0 0 +P 289 -211 1.8996147715411444e+00 -1.8005444514622688e+00 4.2213455750106634e+00 4.9688766185638968e+00 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 1 0 0 0 0 +P 291 -211 3.1541098797646633e-01 -1.2938587588144628e+00 3.0596643542673432e+00 3.3398473505193902e+00 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 2 0 0 -148 0 +P 293 111 2.7600478909195956e-02 -2.9500235341042041e-01 5.3366817197150453e+00 5.3466044881676478e+00 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 0 0 0 0 +P 295 211 -3.5836080004238641e-01 2.1559117239341402e-01 2.5939841337981151e+00 2.6311851869295220e+00 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 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 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 2 0 0 -152 0 +P 299 111 -6.8709360746503190e-02 2.8337710712952435e-01 1.3589332359602992e+01 1.3593130512919101e+01 2 0 0 -153 0 +P 300 111 -5.8255209471673002e-02 3.6797523313229671e-04 7.8563483379036310e+00 7.8577237551162042e+00 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 1 0 0 0 0 +P 302 211 1.4692461191261935e-01 1.1989080247045376e-01 1.5123711862160690e+01 1.5125544648727947e+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 0 0 0 0 +P 304 111 -2.7873164949551793e-01 -8.2638242188484548e-02 7.1702453720709034e+00 7.1774061267011149e+00 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 1 0 0 0 0 +P 306 111 2.3416759166387574e-01 2.9532218771703617e-02 1.6610797461973073e+02 1.6610819714415794e+02 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 0 0 0 0 +P 308 211 -4.7179331260214574e-01 -3.3273969337000420e-01 1.0192483723750648e+03 1.0192485454361155e+03 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 1 0 0 0 0 +P 310 211 2.2815662682757848e-01 -2.6928563661664261e-02 1.0051037300159285e+03 1.0051037659626548e+03 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 1 0 0 0 0 +P 312 211 -3.7209029891736556e+00 1.5220631875289932e+00 9.4377232787534950e+00 1.0259234663116835e+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 2 0 0 -157 0 +P 314 211 -3.4944866593546617e+00 8.7788614127547804e-01 8.4904996449162073e+00 9.2244341341175780e+00 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 0 0 0 0 +P 316 211 -7.6805537606505728e-02 9.1776230273459644e-02 2.7290467811597724e-01 3.2905731307451080e-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 1 0 0 0 0 +P 318 22 1.1640677187514868e-01 -2.9856806517261601e-02 5.8322414217913543e-01 5.9547658682301741e-01 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 0 0 0 0 +P 320 211 5.3693988632829892e-01 4.9357797188294417e-01 2.7670560188673816e+00 2.8649611606980869e+00 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 0 0 0 0 +P 322 111 1.3774964266230527e+00 2.3042017249713853e-01 6.9719171579236301e+00 7.1117113494996964e+00 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 1 0 0 0 0 +P 324 111 7.6480365263055428e-01 5.6549345963268216e-01 5.5303297068260200e+00 5.6131518549355803e+00 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 0 0 0 0 +P 326 111 1.3814159463609341e-01 1.5224944402949425e-01 1.3575896401481926e+00 1.3796855528755789e+00 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 0 0 0 0 +P 328 -211 4.9177559628960754e+00 1.9209371235558570e+00 3.0908055846156746e+01 3.1356047568488268e+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 1 0 0 0 0 +P 330 22 5.8319108406716824e-01 2.5998213749120752e-01 2.4833213834801269e+00 2.5640958730124712e+00 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 1 0 0 0 0 +P 332 211 4.3871570358615983e+00 3.0086902262651471e+00 1.2397932613841485e+01 1.3491759581951781e+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 2 0 0 -161 0 +P 334 111 -4.0838506149200336e-02 5.5177303624111697e-02 2.2512846801554973e-01 2.7132037507484408e-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 1 0 0 0 0 +P 336 211 1.1291406118563700e-01 1.0198900028598853e-02 6.6200807966546288e-02 1.9161402519296616e-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 0 0 0 0 +P 338 111 -2.6692130361395883e-01 2.8247638498948274e-01 1.3711111945500606e-02 4.1163999488689595e-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 1 0 0 0 0 +P 340 22 8.9379809260152335e-02 -7.4950989278527919e-02 -1.5157148880174542e-01 1.9125981625733321e-01 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 1 0 0 0 0 +P 342 211 -9.5710096102158526e-02 -6.7488139943758838e-02 3.1274848257071206e-02 1.8485933182410788e-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 2 0 0 -164 0 +P 344 -211 7.3708063476785890e-01 -8.6107444359986976e-02 -3.5085329035071899e-01 8.3263447584995176e-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 1 0 0 0 0 +P 346 22 1.7083633293661915e-01 -6.5795912271685339e-02 -9.4736965871340673e-01 9.6489555132856297e-01 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 2 0 0 -165 0 +P 348 211 4.2728076719684455e-01 5.6535142741856115e-02 -7.9829192528761195e-01 9.1788608185360798e-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 0 0 0 0 +P 350 -211 5.2672204566684544e-01 1.6666969663619966e+00 -1.4316452561049747e+01 1.4423439555416719e+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 0 0 0 0 +P 352 -211 -1.0983855673091272e-01 7.6080732621216451e-01 -8.1057023413813170e+00 8.1432660848174052e+00 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 0 0 0 0 +P 354 211 -1.0201638753756302e-01 7.8384892820417440e-02 -1.4266697985266141e+00 1.4392421733942666e+00 1 0 0 0 0 +P 355 111 -2.2760644876592431e-01 4.5203798359883485e-01 -5.3624791339187565e+00 5.3880001017306958e+00 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 1 0 0 0 0 +P 357 22 -3.0932795275517122e-01 -2.9990935440231759e-01 -6.2811245020150359e+00 6.2958839262670150e+00 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 1 0 0 0 0 +P 359 22 -9.0848161860804577e-02 1.5244269026970386e-01 -1.0001543769902554e+00 1.0157760285333168e+00 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 1 0 0 0 0 +P 361 22 -4.1156227503042225e-01 -7.5046998327434278e-01 -2.3830743804433507e+00 2.5321201007751331e+00 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 0 0 0 0 +P 363 111 -5.2369471399431522e-01 3.5402828098625916e-01 -3.1635543138635680e+00 3.2289143182141680e+00 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 0 0 0 0 +P 365 111 -1.7623650520795352e-02 -4.0860185430857604e-01 -2.4765470325309402e+00 2.5137165459016839e+00 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 1 0 0 0 0 +P 367 22 6.9736646900344174e-02 -1.2760031062704383e-01 -1.2003718089938287e-01 1.8855758799712244e-01 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 2 0 0 -169 0 +P 369 111 -3.3051734332077809e-02 -1.4370417322118634e-02 -2.7128761233052251e-01 3.0514831646326673e-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 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 2 0 0 -171 0 +P 372 22 -6.0636364410652108e-02 -4.9613725855513595e-02 -3.9809263716227318e-02 8.7880987476447889e-02 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 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 1 0 0 0 0 +P 375 22 1.1669422088618255e-01 3.1168904522249487e-03 -3.0286833064202273e-01 3.2458663234983964e-01 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 1 0 0 0 0 +P 377 -211 -3.1119569790222151e-01 -9.0643724178569043e-02 -1.6873807237875477e-01 3.9116667687305512e-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 1 0 0 0 0 +P 379 211 -7.8076367030763885e-02 7.0110717268449307e-02 2.5930781099697733e-02 1.7653221256490112e-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 1 0 0 0 0 +P 381 22 8.6717598533476581e-01 -5.4343012835935178e-01 -2.4567080071055178e-01 1.0524564771389584e+00 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 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 1 0 0 0 0 +P 384 22 5.0614414143909950e-02 1.0209838651658623e-02 1.1330832045279429e-01 1.2451841312937319e-01 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 1 0 0 0 0 +P 386 111 -1.9254000030087138e-02 2.8169300845293684e-02 -2.5015083906664392e-03 1.3924828175420992e-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 1 0 0 0 0 +P 388 12 2.1061848626626939e-01 -1.0932717228124468e-01 -5.7973006096139035e-01 6.2641800815302651e-01 1 0 0 0 0 +P 389 333 -8.2733678267311739e-01 7.8189051332515147e-01 -6.1775965545865690e+00 6.3632738927342753e+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 2 0 0 -174 0 +P 391 111 -4.9730802910561589e-01 3.5328622614581767e-01 -4.8136339144703161e-01 7.8870574260788417e-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 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 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 1 0 0 0 0 +P 395 22 -1.3087207843465083e-02 -8.3584398965809228e-03 -1.9916672401752208e-02 2.5254947360894051e-02 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 1 0 0 0 0 +P 397 22 8.3029492775547220e-02 -4.0808975961671698e-02 4.2924127396728746e-02 1.0198896951325444e-01 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 1 0 0 0 0 +P 399 22 -1.7830128657396835e-01 -6.8516278907592251e-02 -8.2206441930538970e-02 2.0795126439662356e-01 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 1 0 0 0 0 +P 401 22 -2.0731679393122815e-01 2.4976577479240111e-01 -2.3687989918503392e+00 2.3909353523453438e+00 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 0 0 0 0 +P 403 211 2.6199693228118459e-01 -2.2459694595086344e-01 -1.7279186944177274e+00 1.7675601772141933e+00 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 1 0 0 0 0 +P 405 22 -2.8659220894343101e-01 -2.2783917032142667e-01 -1.6772483158185125e+00 1.7167433397790914e+00 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 1 0 0 0 0 +P 407 22 -2.7824715291029679e-02 -1.1261703875241377e-01 -1.7282577645224619e+00 1.7321465621680421e+00 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 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 1 0 0 0 0 +P 410 22 2.1260360401738412e-02 1.2040059846141607e-01 -7.5341361049769660e+01 7.5341460253560143e+01 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 1 0 0 0 0 +P 412 22 -4.3843673255012677e-02 -1.4791465150096908e-01 -5.5050001270001772e+01 5.5050217445883071e+01 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 1 0 0 0 0 +P 414 22 -1.3003727210228663e-01 7.9025968672578689e-02 -7.4810369626294275e+01 7.4810524382727280e+01 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 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 1 0 0 0 0 +P 417 22 8.1837259871931953e-02 8.1188153434088417e-02 -9.3801495122328660e+01 9.3801565957278186e+01 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 1 0 0 0 0 +P 419 22 -3.2552372563759389e-02 1.3649394946647336e-01 -5.7824396454182443e+02 5.7824398156773043e+02 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 1 0 0 0 0 +P 421 22 3.9629365422943770e-02 -1.8792706158184605e-01 -1.3464955211032841e+02 1.3464968908459880e+02 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 1 0 0 0 0 +P 423 22 4.1588831353803374e-01 9.9632495738959437e-02 -2.1450209612089199e+02 2.1450252243267425e+02 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 1 0 0 0 0 +P 425 22 -1.3839157224524873e-01 7.2327228775374577e-02 -8.6819129374255386e+00 8.6833170913152617e+00 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 1 0 0 0 0 +P 427 22 4.3748804964200425e-04 -2.7007640811787147e-02 -6.7720101606043936e+00 6.7720640294807559e+00 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 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 1 0 0 0 0 +P 430 22 5.0570583812301105e-03 -1.1570539817897650e-01 -2.6457944783177410e+01 2.6458198265616499e+01 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 1 0 0 0 0 +P 432 22 1.9178902818280380e-01 -2.5946581598005236e-01 -9.1085691476294492e+00 9.1142820593912131e+00 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 1 0 0 0 0 +P 434 22 1.1608995226234577e-01 1.2096495451637290e-01 -4.6889176423048236e+00 4.6919141140428886e+00 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 1 0 0 0 0 +P 436 22 -1.2242449936314574e-01 1.2531852860900106e-01 -3.2856409062700143e-01 3.7235312984664198e-01 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 1 0 0 0 0 +P 438 22 -3.2461054705402004e-02 5.9524468091877421e-03 -2.4019657273122230e-02 4.0817834718681036e-02 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 1 0 0 0 0 +P 440 22 1.9612868801801220e-01 -2.1142122433834418e-01 3.0204130924743805e-01 4.1760549428413618e-01 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 0 0 0 0 +P 442 111 2.6635305935910647e-01 4.0889525284211697e-01 1.0011697241444379e+00 1.1219178655187840e+00 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 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 1 0 0 0 0 +P 445 22 1.0356516178300175e+00 -6.0049722614494039e-01 1.3849834207209339e+00 1.8306693496624562e+00 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 1 0 0 0 0 +P 447 22 1.7343572995639095e-01 -2.0058424793239438e-01 5.3163279403360253e-01 5.9409378101111721e-01 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 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 1 0 0 0 0 +P 450 22 2.0323798811088076e-02 -2.9774572188157267e-01 4.4993895698041380e+00 4.5092762249122815e+00 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 2 0 0 -179 0 +P 452 111 1.7675263292019575e-01 3.5322205481198321e-01 7.2615539871198669e+00 7.2735406248611998e+00 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 0 0 0 0 +P 454 -211 3.4636119397885656e-01 2.1037906261040085e-01 1.2892185623906263e+01 1.2899308329241325e+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 1 0 0 0 0 +P 456 22 -9.9098119570552284e-02 2.0714520593309504e-01 1.4981227068259312e+01 1.4982986819869694e+01 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 1 0 0 0 0 +P 458 22 -3.6569994921477583e-02 2.6983933006361521e-01 1.0251379936951878e+01 1.0254995916153122e+01 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 1 0 0 0 0 +P 460 22 -2.5679357125610595e-02 -6.3223944824902775e-02 2.6222854744377790e+00 2.6231732321806303e+00 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 1 0 0 0 0 +P 462 22 -3.7168364320045832e-02 3.1873735678067699e-02 7.4926851253561166e-01 7.5086665008484121e-01 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 1 0 0 0 0 +P 464 22 2.4984841316886486e-01 3.4946261031404309e-02 1.4809004018287865e+02 1.4809025507047161e+02 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 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 1 0 0 0 0 +P 467 22 2.6686104938252070e-01 8.6051621728536865e-02 1.5831961221517605e+00 1.6078338416876363e+00 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 1 0 0 0 0 +P 469 22 4.4148515143451034e-01 3.9804770404431883e-01 3.2443680482544379e+00 3.2983746218655052e+00 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 1 0 0 0 0 +P 471 22 1.6244293470231447e-01 1.0834216026005766e-01 1.1135702572616186e+00 1.1305593520829520e+00 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 1 0 0 0 0 +P 473 -211 6.0322890773452480e-02 4.7682886849288987e-02 4.2625801427967658e-01 4.5506943260034610e-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 1 0 0 0 0 +P 475 22 -4.1278238818121267e-02 -1.1879042022493941e-03 2.0850251996335911e-01 2.1255259336783106e-01 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 1 0 0 0 0 +P 477 22 -2.6910859266995735e-01 2.9287804807327755e-01 4.7986823712958485e-03 3.9776879345232552e-01 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 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 2 0 0 -181 0 +P 480 22 -1.6076131313801340e-02 1.4322867873945886e-02 -9.7430843067236299e-03 2.3632905745189673e-02 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 1 0 0 0 0 +P 482 22 -1.0811595167675146e-01 3.1684618315194474e-01 -2.9942984095479352e+00 3.0129559452813477e+00 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 1 0 0 0 0 +P 484 22 -4.7410925234586326e-01 2.6337114730522432e-01 -2.5997490496274094e+00 2.6557181826073788e+00 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 1 0 0 0 0 +P 486 22 3.3722397264361485e-02 -2.4447934454129777e-01 -1.7366403164793534e+00 1.7540886348204032e+00 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 1 0 0 0 0 +P 488 111 -1.2441886187471768e-02 -1.4748650932380047e-01 -5.9280379660612814e-01 6.2573397912776096e-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 1 0 0 0 0 +P 490 22 -8.7575975301444949e-03 -4.8910075968903524e-02 -2.5514816277699598e-01 2.5994129339960659e-01 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 1 0 0 0 0 +P 492 111 -1.1562836020309447e-01 -5.4397271860069998e-03 -3.6143853957406552e-01 4.0281127914266263e-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 1 0 0 0 0 +P 494 22 -2.7604472616102490e-02 3.4337928036938747e-02 -6.3547114597041404e-02 7.7326166230407709e-02 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 1 0 0 0 0 +P 496 310 -4.4352446428434805e-01 2.8594973325957562e-01 -2.9436292264552462e+00 3.0316842929486327e+00 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 1 0 0 0 0 +P 498 22 -5.4512945059224993e-02 4.1471367457650572e-02 -7.5483015880856680e-02 1.0192752907976933e-01 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 1 0 0 0 0 +P 500 22 -1.4336849767438012e-01 1.7655084486868911e-01 -2.0435345439003930e-01 3.0575326861768554e-01 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 0 0 0 0 +P 502 -211 2.4512620249294581e-01 9.9917069010506745e-02 -8.3903576116670597e-02 3.1078910986942410e-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 1 0 0 0 0 +P 504 22 2.3022644940023498e-01 2.6831909245892044e-01 7.9190608955485142e-01 8.6724541397200472e-01 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 2 0 0 -185 0 +P 506 111 2.3080376582982970e-01 -1.5048700915484961e-01 1.3240547924864057e-01 3.3416691874071680e-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 1 0 0 0 0 +P 508 22 4.1285086439393701e-02 7.9835975721270214e-03 9.2188183229143235e+00 9.2189142238711259e+00 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 1 0 0 0 0 +P 510 22 1.3673235942334631e-02 2.7402835750636373e-02 1.5902008574409892e+00 1.5904957214008373e+00 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 1 0 0 0 0 +P 512 211 2.3613467877146080e-01 1.0195151092157670e-01 -3.5505108550341169e-01 4.6010298337963895e-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 1 0 0 0 0 +P 514 22 -5.2639003451683840e-02 -1.7081695812703201e-02 -2.6399737984578697e-01 2.6973554749358647e-01 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 1 0 0 0 0 +P 516 22 -1.0291803033443389e-01 1.0248107272182054e-02 -3.6746302574828849e-01 3.8174103782887814e-01 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 0 0 0 0 +P 518 -211 -3.2435942883237623e-01 1.6288129826094347e-01 -9.5976189211099172e-01 1.0355491445818044e+00 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 1 0 0 0 0 +P 520 22 2.2128911821098113e-01 -1.1097224518372439e-01 4.0374926180791465e-01 4.7360023168295245e-01 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 1 0 0 0 0 +P 522 22 1.8144699326808689e-01 -4.5356327895343163e-02 5.6329464841998966e-02 1.9532848347223983e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 -2 -1.3063956680622808e+00 1.2879304852865372e+00 5.1893828474231309e+00 5.5041010995066388e+00 3 0 0 -3 0 +P 14 2224 6.2629672068355446e-01 -5.5829354058455705e-01 1.9862339814540292e+03 1.9862345051592931e+03 2 0 0 -9 0 +P 20 1 6.8009894737872634e-01 -7.2963694470198015e-01 2.2511960482291925e+03 2.2511962933887798e+03 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 3 0 0 -2 0 +P 4 1 7.0565678882479643e-01 -1.5984513018320162e-01 -1.0981823600478867e+03 1.0981825983971498e+03 3 0 0 -4 0 +P 28 2203 -7.0565678882479643e-01 1.5984513018320162e-01 -4.3114475678564886e+03 4.3114476975637281e+03 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 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 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 3 0 0 -6 0 +P 8 -24 2.3715758047052646e+00 -1.8198815967210915e+00 -1.0956387055972511e+03 1.0987344230020528e+03 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 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 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 1 0 0 0 0 +P 12 11 7.7686205977028244e+00 -2.9576059382324004e+01 -9.4035688046136852e+02 9.4085395114538073e+02 1 0 0 0 0 +P 13 22 1.6417212790378732e-02 -6.2331934778808794e-02 -1.9810795368566805e+00 1.9821278783976966e+00 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 1 0 0 0 0 +P 32 211 2.2784005542354996e-01 -1.3829166838531035e-01 2.6539700828516311e+02 2.6539717881352135e+02 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 2 0 0 -10 0 +P 16 -2 5.8774466266559076e+00 9.3245626556735572e-01 -2.6116865900135838e+02 2.6123644902291909e+02 2 0 0 -10 0 +P 33 92 0 0 -4.3055478521843401e+02 4.3072707887708964e+02 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 0 0 0 0 +P 35 313 -1.4318407714997392e+00 1.0448174597780837e+00 -7.2468641710313307e+01 7.2496138880553076e+01 2 0 0 -18 0 +P 36 -313 1.0440864295074967e+00 -4.5871170804924338e-01 -4.5617120785926659e+01 4.5640092033581006e+01 2 0 0 -19 0 +P 37 -213 3.2409711340366965e-01 2.3335471252859891e-01 -4.0111237075385660e+01 4.0121708510378014e+01 2 0 0 -20 0 +P 38 111 1.2936126903917291e+00 4.7104501694792161e-01 -5.4152907899216984e+01 5.4170572922410656e+01 2 0 0 -21 0 +P 39 213 1.2548924127288779e+00 -4.7071757914042800e-01 -7.1343007544735329e+01 7.1361058743643341e+01 2 0 0 -22 0 +P 40 -211 9.3746176774424972e-01 3.5580634848562342e-01 -4.4737236216968142e+01 4.4748689554458579e+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 2 0 0 -12 0 +P 18 21 1.4025793372001376e+00 -2.7884933102773206e+00 9.4380500095915245e+00 9.9408104157635311e+00 2 0 0 -12 0 +P 19 -2 1.2925484085993182e+00 2.9944775922487810e+00 6.0026559409271556e+02 6.0027445475292370e+02 2 0 0 -12 0 +P 41 92 1.4025793372001376e+00 -2.7884933102773206e+00 -5.0964693032025559e+02 1.7295705912548949e+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 1 0 0 0 0 +P 43 -2212 -4.9702749607820934e-01 -1.9489755847429249e+00 -5.5795580111420406e+02 5.5796021532878854e+02 1 0 0 0 0 +P 44 113 1.6533916537684344e-02 -2.9412170960257544e-01 -7.6806020852310596e+01 7.6812204400634272e+01 2 0 0 -23 0 +P 45 221 -1.4972892483807126e-01 4.5696574621284011e-03 -1.0055577843303921e+02 1.0055738022348076e+02 2 0 0 -24 0 +P 46 221 3.0200268424734572e-01 2.8534525335404792e-01 -2.8870835357085056e+01 2.8879014236177056e+01 2 0 0 -25 0 +P 47 211 -6.4308952739707492e-01 -7.2529706032234698e-01 -5.7806554947847131e+00 5.8630263260746780e+00 1 0 0 0 0 +P 48 -213 3.3534244198776286e-01 1.3819689112114653e-01 -4.9513827912839794e+00 4.9961422616793758e+00 2 0 0 -26 0 +P 49 213 3.8463247216398370e-02 -2.6825695664888762e-02 -6.2305386932288869e+00 6.2750941019503417e+00 2 0 0 -27 0 +P 50 -211 -3.0493494659552672e-01 4.0145043880181042e-01 -5.0694511698343381e-01 7.2843730890360803e-01 1 0 0 0 0 +P 51 213 4.5194685326190176e-01 -3.3844629401524673e-01 -1.5162335922911572e+00 1.8063449324268250e+00 2 0 0 -28 0 +P 52 113 2.7127567356955044e-02 -3.5096115077676360e-01 -2.0560156402869595e-01 8.5167643807785465e-01 2 0 0 -29 0 +P 53 313 1.5417297555815859e-01 -2.8232887295282283e-01 9.8735536340780428e-01 1.3695271653989567e+00 2 0 0 -30 0 +P 54 -321 1.6551837760939633e-01 -1.1656322834342046e+00 1.9035451055119379e+00 2.2919903756841866e+00 1 0 0 0 0 +P 55 223 2.7048492858539253e-01 6.4531024760498323e-01 4.8493013060375016e+00 4.9634403118180437e+00 2 0 0 -31 0 +P 56 211 3.8312833002830518e-02 -6.7146029886687178e-02 -3.8093840362958112e-02 1.6403471606902364e-01 1 0 0 0 0 +P 57 113 -1.9506129454061361e-01 -4.4996827569324266e-01 9.0912943373856825e-01 1.1300284456403529e+00 2 0 0 -32 0 +P 58 311 2.5486600266519988e-01 -5.5963768406031345e-01 7.0488897796228791e+00 7.0931427146862651e+00 2 0 0 -33 0 +P 59 -323 5.8984323195972610e-01 5.0704121519152545e-01 1.2620140238622938e+01 1.2677108878334321e+01 2 0 0 -34 0 +P 60 113 4.7159765669982140e-01 -9.8137013413514440e-01 2.4370406619890971e+01 2.4406162239602889e+01 2 0 0 -35 0 +P 61 113 -3.7486729996664692e-01 7.1444064961249365e-01 3.2438220987768268e+01 3.2455915309327651e+01 2 0 0 -36 0 +P 62 223 1.4179614786791939e-01 3.7607095473386615e-01 9.2454157450938268e+01 9.2458324597560690e+01 2 0 0 -37 0 +P 63 223 -2.5333004221869093e-01 -1.7482317991745372e-01 4.1049255544223520e+01 4.1057845264441667e+01 2 0 0 -38 0 +P 64 321 8.9930855079187644e-01 4.6279031139923948e-01 1.3433665469657635e+02 1.3434136878403856e+02 1 0 0 0 0 +P 65 -321 3.1245794752940531e-01 1.4688432657087267e+00 2.5561448142535130e+02 2.5561936915229936e+02 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 2 0 0 -14 0 +P 22 21 2.3306161753086991e+00 2.5263018388499852e+00 1.6213072005400015e+01 1.6573402685926418e+01 2 0 0 -14 0 +P 23 21 -2.3306161753086991e+00 -2.5263018388499852e+00 1.7097855225215859e+01 1.7439914737177720e+01 2 0 0 -14 0 +P 24 21 -4.5189465118581147e+00 -3.0246444971641862e-01 -3.2145610931228710e+00 5.5538964107909132e+00 2 0 0 -14 0 +P 25 21 3.3444552178150491e+00 -3.3682323125838081e+00 -1.2861369300978330e+01 1.3709310336835030e+01 2 0 0 -14 0 +P 26 21 -1.4025793372001376e+00 2.7884933102773206e+00 -5.6917899608951075e+00 6.4914864782689392e+00 2 0 0 -14 0 +P 27 21 -3.3444552178150491e+00 3.3682323125838081e+00 -1.4040682664225221e+01 1.4821306936062644e+01 2 0 0 -14 0 +P 66 92 -1.4281371786462076e+00 2.2187014957585420e+00 -1.9871596487759671e+03 6.7129582165122420e+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 2 0 0 -39 0 +P 68 211 1.0135732704315257e-02 5.3514575211682114e-01 2.3409980209226654e+02 2.3410045558078767e+02 1 0 0 0 0 +P 69 1114 8.9641438172015775e-01 -3.6392129443568710e-01 4.4812864618973961e+01 4.4840773987411758e+01 2 0 0 -40 0 +P 70 211 3.8473184386194154e-01 1.7416136993019182e-01 7.6482609489049134e+00 7.6611830745584788e+00 1 0 0 0 0 +P 71 -2212 1.3570820383715327e+00 -3.4833837508799126e-01 5.9400969475256197e+01 5.9424898287465744e+01 1 0 0 0 0 +P 72 223 5.3513808491869197e-01 5.6258841694084194e-01 1.3497984646533387e+01 1.3542742700934161e+01 2 0 0 -41 0 +P 73 111 1.4249126471823113e+00 -8.7326689179198683e-02 2.6487334767795783e+01 2.6526121554128995e+01 2 0 0 -42 0 +P 74 113 1.0243223484583437e+00 8.9460184235475726e-01 7.8398598406213731e+00 8.0044033243370425e+00 2 0 0 -43 0 +P 75 213 7.8146511190515611e-01 8.1085897447583399e-01 9.7004079181519618e+00 9.7985969509811213e+00 2 0 0 -44 0 +P 76 223 -6.0070864720254791e-01 -7.5020685309669766e-01 4.3286489963019363e+00 4.5018892429835349e+00 2 0 0 -45 0 +P 77 -213 2.0007537718930121e-01 -8.0481277249238786e-02 2.7952951677960907e+00 2.9524405521698647e+00 2 0 0 -46 0 +P 78 113 -4.2184079371557825e-01 6.6478556099176161e-02 2.1918020937664431e+00 2.2875634621838854e+00 2 0 0 -47 0 +P 79 213 -6.8390630107822026e-01 -1.2031666983062672e+00 6.5479758970760322e+00 6.7835848615007661e+00 2 0 0 -48 0 +P 80 111 -5.9823858771689586e-01 -1.2013185150743945e-01 9.0499212497479931e-01 1.0997960793922275e+00 2 0 0 -49 0 +P 81 -211 -1.8659891773971918e-01 3.9874400471142490e-01 -3.5494610553090200e-01 5.8247957914977033e-01 1 0 0 0 0 +P 82 113 -9.1461437410828916e-01 -4.4389801834541065e-01 -7.0381543247325407e-01 1.5379185055407165e+00 2 0 0 -50 0 +P 83 213 -1.2615073893577071e+00 1.7769459083209821e-01 -8.9289455873395662e-01 1.7351143047719249e+00 2 0 0 -51 0 +P 84 -211 -8.7219080940381755e-01 -1.8926094685784717e-01 -5.3480327737921796e-01 1.0497765688037612e+00 1 0 0 0 0 +P 85 113 6.2141214984468351e-01 -8.6421893286914353e-02 -2.4332734261172653e+00 2.6283177307616250e+00 2 0 0 -52 0 +P 86 211 -3.5446434481312317e-01 -1.2268348898738159e+00 -1.2253959392308320e+00 1.7753432939966589e+00 1 0 0 0 0 +P 87 2112 9.1472463744437760e-01 -1.2569570091894453e-01 -3.6476223116165620e+00 3.8782033062592536e+00 1 0 0 0 0 +P 88 -2212 8.6361312614816066e-01 -9.1836205712359598e-01 -4.8715921735632639e+00 5.1187867115208592e+00 1 0 0 0 0 +P 89 113 2.0594892520170244e-02 2.0438980965336340e-01 -5.7002702256806792e-01 9.3915477322444918e-01 2 0 0 -53 0 +P 90 213 -6.4584413784606176e-01 7.8022036598574573e-01 -3.1474571005361729e+00 3.4019473481372686e+00 2 0 0 -54 0 +P 91 113 -1.0973380029073554e+00 7.4299977704846509e-01 -5.3024187721700224e+00 5.5125660457410666e+00 2 0 0 -55 0 +P 92 313 -5.3612158238681562e-01 9.9278532523932750e-01 -3.4650732050135691e+00 3.7239560285499427e+00 2 0 0 -56 0 +P 93 -321 -1.2221331636647612e+00 1.5690691103915120e+00 -4.6853289562246045e+00 5.1138572262970730e+00 1 0 0 0 0 +P 94 221 -6.2878961836263358e-01 3.9774130133513302e-01 -4.6596960331790589e+00 4.7503729486297237e+00 2 0 0 -57 0 +P 95 213 -1.5227279129650367e-01 7.2806206429657749e-01 -2.1391236973384483e+01 2.1421593665725354e+01 2 0 0 -58 0 +P 96 113 3.0209002088422593e-01 -3.9448441998462064e-01 -1.0899232925753084e+01 1.0936206424161766e+01 2 0 0 -59 0 +P 97 111 -8.0811401894910795e-01 4.0766228483193984e-01 -2.8448690697297046e+01 2.8463405607849737e+01 2 0 0 -60 0 +P 98 -213 1.2089810072332315e-01 -5.2079050430329710e-01 -1.1939975039352846e+02 1.1940300095633448e+02 2 0 0 -61 0 +P 99 223 5.4114373167817453e-01 2.7085749567615108e-01 -4.2861438876063943e+02 4.2861551326973716e+02 2 0 0 -62 0 +P 100 2212 -8.2348818137401925e-01 8.9103884396884103e-02 -1.7961757953324147e+03 1.7961762313762292e+03 1 0 0 0 0 +P 101 213 -1.6088234688084649e-01 6.2448336922287219e-02 -1.9053309529925027e+03 1.9053311124555951e+03 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 2 0 0 -16 0 +P 30 21 -1.7182462671114402e+00 -2.3426872894360549e+00 2.0339078055224470e+03 2.0339098804812140e+03 2 0 0 -16 0 +P 102 92 0 0 2.0341203600610895e+03 2.0368229086998253e+03 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 0 0 0 0 +P 104 111 3.0137821631491024e-01 6.9978369862249840e-02 2.1411449928155655e+00 2.1675902016241224e+00 2 0 0 -64 0 +P 105 211 -7.4504913328202721e-02 1.3535438527297250e-01 7.5149850953364265e+01 7.5150139387026329e+01 1 0 0 0 0 +P 106 311 -3.0824762001330436e-01 -1.4402182869475991e-01 3.9741975944594941e+02 3.9742021668806382e+02 2 0 0 -65 0 +P 107 333 -9.1866028181973891e-01 -2.0597240947952193e+00 9.9285414260558821e+02 9.9285721752589359e+02 2 0 0 -66 0 +P 108 -323 -2.3490715754350402e-01 8.3095883242977953e-02 4.9572324857581219e+02 4.9572416549705343e+02 2 0 0 -67 0 +P 109 111 4.1806436528339791e-01 -2.2899116272598369e-01 6.4652151043041934e+00 6.4841684672322852e+00 2 0 0 -68 0 +P 110 3222 -5.6454807151714115e-01 3.0038362700044496e-01 1.5559636563150063e+01 1.5618125233927406e+01 2 0 0 -69 0 +P 111 -3212 -1.2459659851310380e-01 1.4248779043166906e-01 1.5027023583236335e+01 1.5075458213813077e+01 2 0 0 -70 0 +P 112 -213 3.7655640018993020e-01 -3.8287574679571718e-01 1.8935226661500398e+01 1.8955778084047072e+01 2 0 0 -71 0 +P 113 211 -1.4243498041231339e-01 3.1036147917840962e-01 3.6873645553705686e-01 5.2159211070040012e-01 1 0 0 0 0 +P 114 113 3.8953818738287976e-01 3.5983308392962821e-03 2.9199479223354214e+00 3.0414263991854740e+00 2 0 0 -72 0 +P 115 111 -9.0634448722506072e-03 6.1399994260374857e-01 8.6138652128429471e-01 1.0664353777893050e+00 2 0 0 -73 0 +P 116 -213 2.1126425569031212e-01 7.2662728626688444e-01 1.7631477856117816e-01 1.0907967455146763e+00 2 0 0 -74 0 +P 117 211 1.8890292053918842e-01 -3.9217829654797970e-01 4.2376063239215755e-01 6.2333056088797001e-01 1 0 0 0 0 +P 118 -211 -5.8451538057038684e-02 1.9531982712468343e-01 3.1711758377891242e-01 4.0200716910401635e-01 1 0 0 0 0 +P 119 221 9.1656294346312978e-02 -7.2250132436744510e-02 4.2083038462435490e-01 7.0030041628825801e-01 2 0 0 -75 0 +P 120 323 3.2393892176032707e-01 5.9901412523414366e-01 3.2048749331960464e+00 3.3826342799303069e+00 2 0 0 -76 0 +P 121 -323 8.3047607121168998e-01 3.6045783335863357e-01 4.3175731064757974e+00 4.4982902518816132e+00 2 0 0 -77 0 +P 122 211 -6.3597693739585281e-01 -2.3904422135293027e-01 1.1612828223115010e+00 1.3526516118193193e+00 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 2 0 0 -78 0 +P 124 111 -5.4348142711345571e-01 3.6407659910904144e-01 -1.5577875128577560e+01 1.5592188331135288e+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 1 0 0 0 0 +P 126 211 -3.3282478902592651e-02 5.7785678436559643e-02 -5.2385564741797834e+00 5.2408396871212544e+00 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 0 0 0 0 +P 128 111 8.7458662032133927e-02 -1.2806458468340143e-01 -2.7357839164058722e+00 2.7434982764856324e+00 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 1 0 0 0 0 +P 130 22 1.1787030455063505e+00 3.8583131502431123e-01 -4.8591266614428093e+01 4.8607092053192950e+01 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 0 0 0 0 +P 132 111 3.2916938375814553e-01 -4.5042884129510524e-01 -3.9848056808092458e+01 3.9852190524557592e+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 0 0 0 0 +P 134 -211 -3.9094998744296061e-02 -1.2171649033446306e-01 -7.2403963168064124e+01 7.2404210551253385e+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 1 0 0 0 0 +P 136 22 -1.3428452078583464e-01 1.2760657021293417e-01 -9.5147757177670613e+01 9.5147937506339346e+01 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 2 0 0 -82 0 +P 138 111 1.5389951085199688e-01 1.3360790730478667e-01 -6.2955950525981503e+00 6.3003391019081789e+00 2 0 0 -83 0 +P 139 111 5.5791692764156894e-02 -2.8364874272475478e-02 -7.5531394189043217e+00 7.5546046859435538e+00 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 0 0 0 0 +P 141 111 -1.2616270239931780e-02 9.0612641154672498e-03 -3.1783389119279665e-01 3.4565772025645797e-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 0 0 0 0 +P 143 111 3.0353451369983231e-01 -1.9294045346846636e-01 -2.5685127621855748e+00 2.5970823301354509e+00 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 0 0 0 0 +P 145 111 2.6262134649075942e-02 1.9741185741202916e-01 -6.5317860563600838e-01 6.9607688686221558e-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 0 0 0 0 +P 147 -211 -2.4778790206768489e-01 -3.6597390883771697e-01 -2.6994157072330072e-01 5.3636180220595964e-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 1 0 0 0 0 +P 149 -211 1.8867321425149802e-01 -1.7634955497925797e-01 4.1041335305949819e-02 2.9641343326689734e-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 0 0 0 0 +P 151 211 2.2174429060384263e-02 -7.0700764257547011e-02 9.6535187332727646e-01 9.7819953363679191e-01 1 0 0 0 0 +P 152 111 7.4582340824285623e-02 3.1784453981659611e-01 2.5732918564902025e+00 2.5974291628710198e+00 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 0 0 0 0 +P 154 211 -2.2902340300623730e-01 -4.3783153607398917e-01 6.0529885371887526e-01 7.9373462839846587e-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 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 2 0 0 -89 0 +P 157 -211 -4.6447952583897813e-02 2.4637794452732709e-01 5.3302393166445974e+00 5.3379575177639449e+00 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 0 0 0 0 +P 159 211 6.1003735004736936e-01 -8.6563061780384321e-01 2.1592828499359829e+01 2.1619231816200092e+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 0 0 0 0 +P 161 211 -3.2130385226474850e-01 5.3315941558826262e-02 1.5660217768454098e+01 1.5664226093088988e+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 0 0 0 0 +P 163 -211 1.5997741131462320e-01 -8.4859508363502090e-02 1.5752145709471709e+01 1.5753804878365688e+01 1 0 0 0 0 +P 164 111 4.8726667593223340e-02 3.3917289858335631e-01 6.3187581408216893e+01 6.3188654649103782e+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 0 0 0 0 +P 166 211 -8.8088472241610968e-02 1.2956137830090980e-01 4.4468232102231378e+00 4.4517706789061249e+00 1 0 0 0 0 +P 167 111 6.2569003693889999e-02 -1.2362432616788839e-01 1.4397808672856140e+01 1.4399108029138999e+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 0 0 0 0 +P 169 111 4.2640598588065382e-01 -1.9192933429383069e-01 1.2101213867318643e+03 1.2101214846057335e+03 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 1 0 0 0 0 +P 171 -211 3.1910484454034588e-01 1.2875420380123584e-01 1.1686515518017115e+01 1.1692413364423977e+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 0 0 0 0 +P 173 211 2.1429886442208966e-02 1.3131790882612157e-01 1.6489652622608375e+00 1.6602017510695333e+00 1 0 0 0 0 +P 174 111 4.1822099132220031e-01 4.9413362255140486e-01 1.0594169568099732e+01 1.0614788046521172e+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 1 0 0 0 0 +P 176 22 7.4871976079584612e-01 4.5693614737851275e-03 1.4684152569220737e+01 1.4703228857479658e+01 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 0 0 0 0 +P 178 211 8.4177140583491938e-01 4.0178917000174957e-01 3.3009840535326229e+00 3.4330728427152049e+00 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 0 0 0 0 +P 180 111 1.3668399679800877e-01 9.7557048732413817e-02 4.6808974642280660e-01 5.1529360935705770e-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 0 0 0 0 +P 182 211 -1.2829685354263031e-02 -1.2856125071302602e-01 5.3883610377089486e-01 5.7141642226854616e-01 1 0 0 0 0 +P 183 111 -2.4802802579383956e-01 -5.8780591108267710e-01 2.7773615772969507e+00 2.8528916246728215e+00 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 0 0 0 0 +P 185 111 6.6485477591014169e-02 -4.6693675376272548e-01 1.1277783095652469e+00 1.2298592466907843e+00 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 0 0 0 0 +P 187 -211 -3.2788728789114446e-01 2.2564476766690900e-01 1.3381366775043535e+00 1.4030378424399157e+00 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 0 0 0 0 +P 189 111 -3.7093332348151864e-01 6.6909331741895992e-02 9.1008015579875357e-01 9.9425041087337529e-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 1 0 0 0 0 +P 191 22 -5.6748497803831199e-01 -7.9179990550143464e-02 8.4453887023221308e-01 1.0205658109773066e+00 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 0 0 0 0 +P 193 -211 -5.4065628168678093e-01 1.0314863476464556e-01 -9.3061363835372987e-03 5.6790425676831746e-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 0 0 0 0 +P 195 111 -2.5782032116764880e-01 1.1678624653832320e-01 8.5693793346426558e-02 3.2507440995193648e-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 0 0 0 0 +P 197 211 6.6270285177700960e-01 1.2024071808597084e-01 -1.3402529085075296e+00 1.5064496485784395e+00 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 0 0 0 0 +P 199 211 3.3718414212105013e-01 5.3270697108805012e-02 -2.7744532318724890e-01 4.6150471842316365e-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 0 0 0 0 +P 201 111 -7.2444747882162719e-01 7.5539425128146231e-01 -3.0092677963981189e+00 3.1889429118877124e+00 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 0 0 0 0 +P 203 -211 -3.8396987451115550e-01 6.2143699058585955e-01 -3.1808611328278378e+00 3.2666456999551263e+00 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 1 0 0 0 0 +P 205 -211 -3.5718484953977997e-01 3.8710008422418218e-01 -1.7049727542491055e+00 1.7899271967258628e+00 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 2 0 0 -100 0 +P 207 111 -8.3861532678087297e-02 5.2894938783996322e-02 -8.9880718379003643e-01 9.1427817716746196e-01 2 0 0 -101 0 +P 208 111 -5.1537379352633073e-01 2.7614663553016722e-01 -3.0842146687927694e+00 3.1420481910634095e+00 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 0 0 0 0 +P 210 111 -1.2348533400834598e-01 4.7926836171116444e-01 -4.7033438020998224e+00 4.7312376088506980e+00 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 0 0 0 0 +P 212 211 -7.0472479986327845e-03 -1.4536363234069261e-01 -8.3527033319280903e+00 8.3551369220027905e+00 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 1 0 0 0 0 +P 214 22 -5.0594597322126056e-01 2.1881684789260519e-01 -1.5444831448137609e+01 1.5454665334523453e+01 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 0 0 0 0 +P 216 111 3.4510819533982345e-01 -4.5554062643907289e-01 -6.8210690910088516e+01 6.8213218594058873e+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 0 0 0 0 +P 218 -211 2.0155403003524568e-02 1.0084712989668214e-01 -1.6553192481345258e+02 1.6553201560005030e+02 1 0 0 0 0 +P 219 111 2.0102218594058774e-01 -5.6970762719395704e-02 -4.9236656213007620e+01 4.9237284553733737e+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 0 0 0 0 +P 221 111 -1.4891641871379296e-01 2.3853893762025774e-01 -3.3949548407814893e+02 3.3949562737387589e+02 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 1 0 0 0 0 +P 223 22 2.6716427064635639e-01 9.2138136881784183e-03 1.7441199336875117e+00 1.7644874567303706e+00 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 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 1 0 0 0 0 +P 226 310 -3.5147060289058818e-01 -9.1662062570886449e-01 4.3080173018224508e+02 4.3080313616360888e+02 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 2 0 0 -108 0 +P 228 -211 1.0559389890479413e-02 3.1455748153945978e-01 2.1230192600598207e+02 2.1230220517824185e+02 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 1 0 0 0 0 +P 230 22 1.5121375552434085e-01 -8.8871558871697537e-02 1.5898616601878772e+00 1.5995073780296898e+00 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 1 0 0 0 0 +P 232 211 -8.3921271769354780e-02 -6.5345167289508649e-02 9.6605538183553463e-01 9.8186330841766378e-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 2 0 0 -109 0 +P 234 22 -6.0263618086868719e-02 -2.1865550854848093e-02 4.2463179579810417e-01 4.2944378908284236e-01 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 0 0 0 0 +P 236 111 2.5490886059890411e-01 7.2339769121301689e-02 1.1751666788979339e+01 1.1755428681635065e+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 0 0 0 0 +P 238 211 2.7023525158656675e-01 -1.9690143473533661e-01 5.6736419410684646e-01 6.7318584347518806e-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 1 0 0 0 0 +P 240 22 2.5776988954046759e-02 3.7564349841102102e-01 4.2362052734556249e-01 5.6676877317521679e-01 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 0 0 0 0 +P 242 111 2.5989684114912343e-01 1.5049630889423141e-01 3.4060456346050649e-01 4.7373682153723579e-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 1 0 0 0 0 +P 244 22 1.7368549233198097e-01 1.0668255504719676e-01 -3.2194728432922044e-02 2.0635968195573082e-01 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 1 0 0 0 0 +P 246 111 1.1971265141411374e-02 7.1476378845153385e-02 1.0826442031294552e-01 1.8759789185276041e-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 1 0 0 0 0 +P 248 111 4.5901243856616902e-01 3.3522470827209677e-01 2.7867613575488490e+00 2.8473367359906829e+00 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 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 1 0 0 0 0 +P 251 22 -1.0682997537163530e-01 1.4785343756005780e-02 -2.2312143912955911e+00 2.2338193548164194e+00 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 1 0 0 0 0 +P 253 22 6.6419842695921730e-02 -9.7178601158091210e-02 -2.6000708777066524e+00 2.6027339174654478e+00 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 1 0 0 0 0 +P 255 22 1.9756790216339634e-01 -2.7435110628171355e-01 -2.8496537235756634e+01 2.8498542700186409e+01 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 1 0 0 0 0 +P 257 22 1.8140566479408472e-02 6.0789768965475235e-02 -1.6319031665550834e+00 1.6331357632406374e+00 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 1 0 0 0 0 +P 259 22 9.6099152341945396e-02 2.7503238293923368e-02 -1.5578167178456963e+00 1.5610203078746385e+00 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 1 0 0 0 0 +P 261 22 8.7451068289363970e-02 -5.7504309359996640e-02 -5.7455202499548106e+00 5.7464734731468763e+00 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 1 0 0 0 0 +P 263 22 -2.1187813471082882e-04 -4.0107887412976712e-03 1.3371891962832829e-02 1.3962049037908679e-02 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 1 0 0 0 0 +P 265 22 2.4055413927146813e-01 -8.3259803324823314e-02 -1.8648425442445429e+00 1.8821360746754701e+00 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 1 0 0 0 0 +P 267 22 5.3352751664943285e-02 5.4970537672586084e-02 -1.1115741347810988e-01 1.3499720994664230e-01 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 1 0 0 0 0 +P 269 22 1.0251930686823132e-01 3.0265419391104781e-01 2.2501274191538188e+00 2.2727039340399169e+00 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 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 1 0 0 0 0 +P 272 22 -2.9808474054989965e-02 2.3961204189102020e-01 4.1710356478041902e+01 4.1711055369063452e+01 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 1 0 0 0 0 +P 274 22 -5.8713569331480097e-03 -4.7758662190614712e-02 9.9876875379365302e+00 9.9878034481110625e+00 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 1 0 0 0 0 +P 276 22 4.0969453328655292e-01 -2.0879998791888793e-01 1.1741018337664309e+03 1.1741019238127251e+03 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 1 0 0 0 0 +P 278 22 4.0520254140559964e-01 4.6012244020071186e-01 1.0322018464498882e+01 1.0340211165203236e+01 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 1 0 0 0 0 +P 280 22 5.6620908615590333e-02 6.6318274786224957e-02 3.8847625782063722e-01 3.9814299410312703e-01 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 1 0 0 0 0 +P 282 22 -8.8983864789347528e-02 -8.1716658249179147e-02 4.6205314557993754e-01 4.7758648407233734e-01 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 1 0 0 0 0 +P 284 22 -2.5486999986110755e-02 -2.1012184866980223e-02 5.0855773592181873e-02 6.0641642365914170e-02 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 1 0 0 0 0 +P 286 22 -1.8722012261886847e-01 -8.0752428112496038e-03 3.1025464783563805e-01 3.6245624613668997e-01 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 1 0 0 0 0 +P 288 22 -2.1217902662870536e-01 3.6377118875589240e-02 8.8048427878029925e-02 2.3258495172858076e-01 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 1 0 0 0 0 +P 290 22 -5.2601345084628082e-01 4.7080724876546715e-01 -2.1169302521603504e+00 2.2315338465891585e+00 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 1 0 0 0 0 +P 292 22 1.8534885426808229e-02 -3.4926143952101800e-02 -2.0035006467754016e-01 2.0421441164972265e-01 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 1 0 0 0 0 +P 294 22 -1.1952793505927364e-01 2.9821350131781360e-02 -6.0489333323150396e-01 6.1731044440470606e-01 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 1 0 0 0 0 +P 296 22 -3.0064913576336771e-01 2.3402868461541579e-01 -2.0030701687861194e+00 2.0389824494435782e+00 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 1 0 0 0 0 +P 298 22 -6.9171629961732761e-02 7.9094368332956660e-02 -7.5090556894472305e-01 7.5822147619659941e-01 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 1 0 0 0 0 +P 300 22 3.4014693925553080e-01 -4.1417459316756067e-01 -6.5661566925582846e+01 6.5663754169684097e+01 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 1 0 0 0 0 +P 302 22 2.0211965316448932e-01 -1.1737316740827236e-02 -3.8369531602823471e+01 3.8370065748430363e+01 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 1 0 0 0 0 +P 304 22 -5.4882756440301453e-02 1.9822100618454153e-01 -2.5064170351061375e+02 2.5064178790135270e+02 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 0 0 0 0 +P 306 -211 -1.1373747167277996e-01 -4.4974691440525599e-02 6.6540356779718223e+01 6.6540615559915182e+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 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 1 0 0 0 0 +P 309 211 -1.0525237235338031e-01 4.7100855272609099e-02 2.0377528622594481e+00 2.0457793294976856e+00 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 1 0 0 0 0 +P 311 22 2.6128546929969942e-01 4.1550866511718992e-02 1.0810037554410400e+01 1.0813274642712919e+01 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 1 0 0 0 0 +P 313 22 7.4962660998596956e-02 8.1342874367822907e-02 2.0896117223847074e-01 2.3643357472593826e-01 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 1 0 0 0 0 +P 315 22 5.9766717578129680e-03 -2.4345786178581225e-03 -3.0009324360881350e-02 3.0695395859049578e-02 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 1 0 0 0 0 +P 317 22 -1.9780965771179549e-03 6.5258330808300215e-03 4.7809670707489029e-03 8.3280855902691311e-03 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 0 0 0 0 +P 319 211 3.7850436990390546e-01 -6.7049613305079067e-02 3.4392471257592194e+00 3.4634753912253751e+00 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 0 0 0 0 +P 321 -211 -3.6766616789029316e-02 -3.0639477087794825e-01 1.6578670678848133e+02 1.6578705274265090e+02 1 0 0 0 0 +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 3 0 0 -1 0 +P 16 2103 -4.3597932309017928e-02 -1.9178552605452839e-01 5.7710271643278456e+03 5.7710272192255625e+03 2 0 0 -9 0 +P 28 2 6.9871172008364035e-01 1.9445633487239519e-01 5.4217114364762290e+02 5.4217172917398170e+02 2 0 0 -13 0 +P 3 21 -6.5511378777462237e-01 -2.6708088178667958e-03 1.3902379475140679e+01 1.3917806446382523e+01 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 3 0 0 -2 0 +P 4 2 1.5554951969939107e-01 -1.1414155502218004e+00 -2.5318090541773952e+02 2.5318352610953531e+02 3 0 0 -4 0 +P 31 2103 -1.5554951969939107e-01 1.1414155502218004e+00 -3.0079396582618142e+03 3.0079399777454469e+03 2 0 0 -13 0 +V -3 0 0 0 0 0 0 6 0 +P 12 21 -9.6370912240519885e-02 2.1371062251800688e-01 2.0354592242001850e+00 2.0489152828471759e+00 2 0 0 -9 0 +P 13 21 9.5280060735029493e-01 -3.6665346932772618e-02 2.4849955628758677e-02 9.5382957876527541e-01 2 0 0 -9 0 +P 14 21 1.8560548483485220e-02 -1.7257190047342610e-01 -1.8018846212308559e-01 2.5018680355946143e-01 2 0 0 -9 0 +P 15 21 7.9695242284356750e-05 -2.5824124117734876e-01 -4.6415843771256871e-01 5.3116061628844602e-01 2 0 0 -9 0 +P 11 1 1.1257705880566493e+00 -9.6356028506991842e-01 3.2813867683361453e+00 3.6155507136961815e+00 2 0 0 -9 0 +P 5 -1 -2.6336683162149233e+00 1.2040498771434778e+00 7.5527386554890201e+00 8.0888692723150033e+00 3 0 0 -5 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 3 0 0 -5 0 +P 30 21 -1.1480277436005311e+00 -4.8222213924733737e-01 -9.6575619960129195e+00 9.7375053067246053e+00 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 8 22 1.3514360574585182e+00 -3.7655964528149486e+00 -4.3922038667661063e+01 4.4103872582647035e+01 3 0 0 -7 0 +P 7 24 -2.7038131088254236e+00 4.3210603841580824e+00 -1.9039627432725470e+02 2.0586031167139001e+02 3 0 0 -6 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 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 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 2 0 0 -11 0 +P 18 21 8.4413619755245706e-01 -5.9573077753593484e-01 -9.7003942899011300e+00 9.7552606556087653e+00 2 0 0 -11 0 +P 19 21 1.3955327171164982e+00 -1.7699729137026712e+00 -8.4370450330890154e+00 8.7329287510064866e+00 2 0 0 -11 0 +P 20 21 1.7406612186275408e+00 -4.8453470359648625e+00 -2.0800170594403422e+01 2.1427888046498008e+01 2 0 0 -11 0 +P 21 21 4.3275523129907159e+00 -8.8306149160675105e+00 -5.6722222314980336e+01 5.7568376502795338e+01 2 0 0 -11 0 +P 22 21 5.0727116372506353e-01 5.3006276683040177e-01 -4.1876929772878206e+00 4.2514777480721468e+00 2 0 0 -11 0 +P 23 21 -1.4242475998353649e-02 2.6112816047433607e-01 -9.0335618313322297e-01 9.4044838131622055e-01 2 0 0 -11 0 +P 24 21 -2.1919670271754521e+00 3.5035232013803053e+00 -4.8234484426313431e+00 6.3517752754294783e+00 2 0 0 -11 0 +P 25 21 -1.7594584975864209e+00 2.2946842674852479e+00 -5.0312742416153835e+00 5.8030156458961768e+00 2 0 0 -11 0 +P 26 21 -1.6358735708068866e+00 1.9697163809587677e+00 -2.8994328596137606e+00 3.8681488943020028e+00 2 0 0 -11 0 +P 27 -3 -1.8445152698695317e+01 1.3832811111161117e+01 -2.6290961648407542e+01 3.4971917100915213e+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 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 0 0 0 0 +P 41 223 2.8112506374623569e-01 5.4000903387299448e-01 5.8416822415061209e-01 1.1500024027454310e+00 2 0 0 -19 0 +P 42 2214 4.4881519761355032e-01 -1.3187483483780489e+00 2.3761689627847922e+00 3.0194592377826033e+00 2 0 0 -20 0 +P 43 223 4.4098049591794489e-02 3.6975571581476430e-01 1.2240256589844973e+00 1.5000787933206947e+00 2 0 0 -21 0 +P 44 -3122 5.1854209512044214e-01 2.8340706828298096e-01 1.4726857248798244e+00 1.9397810643032543e+00 2 0 0 -22 0 +P 45 -313 2.7417269706128827e-01 4.4906334318631121e-02 2.5317079951813390e+00 2.6984767938152476e+00 2 0 0 -23 0 +P 46 -213 -4.0680312455968282e-01 -2.5441007810341781e-01 1.5500120461449101e+00 1.7845955709874386e+00 2 0 0 -24 0 +P 47 111 1.0967169427730127e-01 -4.8556656735419729e-01 1.5733209930176220e+00 1.6557056862038457e+00 2 0 0 -25 0 +P 48 211 -2.0496925059681456e-01 3.5773003283645954e-01 8.1445332873483611e+00 8.1561562898039721e+00 1 0 0 0 0 +P 49 -211 2.9397211730379580e-01 -2.7463569397919968e-01 7.6207890473349726e+00 7.6326764544974779e+00 1 0 0 0 0 +P 50 223 -2.5509337878352928e-01 2.6149346255806938e-01 1.3907466962922905e+02 1.3907740332277268e+02 2 0 0 -26 0 +P 51 213 -3.6699974497245429e-02 -1.8001381623673610e-01 1.8723285347838268e+02 1.8723606959241326e+02 2 0 0 -27 0 +P 52 311 -2.0826395264017022e-01 -3.8873428077532614e-02 7.7769704741499027e+02 7.7769723550906360e+02 2 0 0 -28 0 +P 53 -321 2.9365263740186642e-01 -1.5350918725169876e-01 9.7138769739024906e+02 9.7138787931445381e+02 1 0 0 0 0 +P 54 2212 7.1090572027448316e-03 3.1651971253956951e-01 1.4534367235662871e+03 1.4534370608997706e+03 1 0 0 0 0 +P 55 113 4.7933697015449042e-02 -2.3601649041716902e-01 2.2178322239381737e+03 2.2178323944788513e+03 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 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 0 0 -30 0 +P 58 213 3.1593705763741533e+00 -9.7376654979652177e-01 -1.3392766193005166e+01 1.3814953051794681e+01 2 0 0 -31 0 +P 59 113 9.3523891341231291e-01 -2.2812398079724634e+00 -1.3732909593833934e+01 1.3984515733375392e+01 2 0 0 -32 0 +P 60 -213 1.0751687044528315e+00 -1.8471396089324810e+00 -1.0247617174688440e+01 1.0494828426213823e+01 2 0 0 -33 0 +P 61 211 1.0910074909423624e+00 -1.6408161014628322e+00 -1.4658262289795276e+01 1.4790764279287474e+01 1 0 0 0 0 +P 62 2112 1.8670048695663655e+00 -2.5858616180543601e+00 -1.5263383116042007e+01 1.5621332959215980e+01 1 0 0 0 0 +P 63 111 3.8895094638623819e-02 -6.8899625648955701e-02 -4.4678720222461937e-01 4.7339031599011050e-01 2 0 0 -34 0 +P 64 -2214 1.1524734474439160e+00 -3.9869224263739502e+00 -2.0153218017127685e+01 2.0618217127901126e+01 2 0 0 -35 0 +P 65 221 8.6263433165107117e-01 -6.4053962327754621e-01 -6.5229053808755504e+00 6.6334323776976012e+00 2 0 0 -36 0 +P 66 211 2.7687726878260471e-01 -4.4854367382269267e-01 -5.0833022953049456e+00 5.1124646169579897e+00 1 0 0 0 0 +P 67 -211 3.6317039313948940e-01 -6.1629174309821100e-01 -4.9883909457620250e+00 5.0413522253185885e+00 1 0 0 0 0 +P 68 111 -3.8693244171548362e-03 -6.3946170356676169e-01 -1.8470751031459909e+00 1.9592938215238989e+00 2 0 0 -37 0 +P 69 321 3.3833666963563275e-01 5.4299664689447102e-01 -3.1762619017227935e+00 3.2774376712447890e+00 1 0 0 0 0 +P 70 -323 -1.3745959258300033e+00 1.5798806728773855e+00 -2.7160124589975716e+00 3.5482417244696087e+00 2 0 0 -38 0 +P 71 211 -1.0294428816501737e+00 9.5496503398017951e-01 -2.7208975408319782e+00 3.0650406319183578e+00 1 0 0 0 0 +P 72 -211 -3.6822566989713057e-01 1.1035290774262612e+00 -1.2321916930023735e+00 1.7003360614597640e+00 1 0 0 0 0 +P 73 213 -1.6161918040002012e+00 1.2552448784983889e+00 -1.7897181449593560e+00 2.7573168640824823e+00 2 0 0 -39 0 +P 74 2112 -3.2740868421481886e+00 2.8787612972034244e+00 -6.5131664185879137e+00 7.8937342137498883e+00 1 0 0 0 0 +P 75 -2112 -2.6281380275611408e+00 3.1441450497976531e+00 -4.6117236755707163e+00 6.2404763144169966e+00 1 0 0 0 0 +P 76 313 -1.3494277917651111e+01 1.0422303713166622e+01 -2.0123003719808548e+01 2.6390257574927315e+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 2 0 0 -13 0 +P 77 92 9.7760773719237326e-01 4.2292788741631151e+00 -6.2083226682664099e+03 7.2927476655854471e+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 0 0 0 0 +P 79 -213 8.1415453961843220e-01 -1.3658531520860595e-01 1.8147547255500226e+02 1.8147807889488487e+02 2 0 0 -41 0 +P 80 213 -3.1343969057550247e-01 -6.8751614116676532e-02 2.3490909782090895e+02 2.3491051292454674e+02 2 0 0 -42 0 +P 81 -211 2.4510416203644247e-01 1.9103572210561356e-01 4.9160055436805315e+01 4.9161235755746112e+01 1 0 0 0 0 +P 82 2212 5.9834549250678958e-02 2.2658407019457144e-01 9.6037237171125334e+00 9.6522940455458546e+00 1 0 0 0 0 +P 83 331 -4.4228289654992226e-01 -2.6644076626223800e-01 1.5250029814397761e+01 1.5288792292206974e+01 2 0 0 -43 0 +P 84 -2212 4.0600120601960499e-01 1.1341309506958630e-01 5.8544874327854846e+00 5.9441629522554207e+00 1 0 0 0 0 +P 85 211 3.1262473932432039e-01 6.7353189834058402e-01 1.8631926232668552e+00 2.0105586243668481e+00 1 0 0 0 0 +P 86 -213 -4.0230691978361560e-01 -7.2916784443047689e-01 1.2727585532551626e+00 1.6552834098551243e+00 2 0 0 -44 0 +P 87 111 -1.0918019607099445e-01 9.2778953753129487e-02 8.7863240603013404e-01 9.0041254700272333e-01 2 0 0 -45 0 +P 88 211 -1.3970682706965667e-01 -6.9289838877254262e-02 1.0396580156519743e-01 2.3368301627760824e-01 1 0 0 0 0 +P 89 311 3.4248690127551151e-01 -3.5064896127775863e-01 6.5641413010847338e-01 9.5854416210028415e-01 2 0 0 -46 0 +P 90 -311 3.4345529704259643e-02 4.2425337653113343e-01 -1.1177846011983017e+00 1.2954877021742741e+00 2 0 0 -47 0 +P 91 221 -2.2059027947856552e-02 6.8777216446446396e-02 -2.5995327345599137e+00 2.6575343547665886e+00 2 0 0 -48 0 +P 92 -211 7.8520032410541465e-02 8.6029665973671565e-02 -1.7637091485257692e-01 2.5328439237984829e-01 1 0 0 0 0 +P 93 211 9.1990315018622704e-02 -2.4519229699912645e-01 -1.7635783993765985e+00 1.7883707770517441e+00 1 0 0 0 0 +P 94 113 2.3916994123891654e-02 3.2774863600096921e-01 -2.1964548095601693e+00 2.3336785531389950e+00 2 0 0 -49 0 +P 95 -211 -2.2116319795837658e-01 -7.0985668931981008e-02 -1.4721936080260471e+02 1.4721961019863397e+02 1 0 0 0 0 +P 96 213 5.5418235924584147e-01 1.7536325683372644e+00 -1.7140605218064102e+03 1.7140616606041549e+03 2 0 0 -50 0 +P 97 113 -6.1783849261428873e-02 1.4046889857876368e-01 -1.0047869804122965e+02 1.0048130714945734e+02 2 0 0 -51 0 +P 98 221 5.3919364001689940e-01 -4.4261608605164110e-01 -1.6979921711826634e+02 1.6980153260279991e+02 2 0 0 -52 0 +P 99 1114 -2.0186593100368855e-01 5.2273469161686792e-01 -6.6287974334912337e+02 6.6288096452226989e+02 2 0 0 -53 0 +P 100 223 5.4569932897003848e-01 4.9089417068522490e-01 -5.5137637879476370e+02 5.5137741731893857e+02 2 0 0 -54 0 +P 101 -2114 -3.7116038230162590e-01 4.2691750743684054e-01 -3.0183378648302647e+02 3.0183654713177589e+02 2 0 0 -55 0 +P 102 213 1.2718626065914557e-01 -4.3273443653089196e-02 -2.0958549985729146e+01 2.0973175423021143e+01 2 0 0 -56 0 +P 103 111 -4.7798486804409918e-01 9.0585383083558874e-02 -8.5228987495888582e+00 8.5378391845859252e+00 2 0 0 -57 0 +P 104 113 1.5181900039448251e-01 4.9030903333713738e-02 -9.3885028370079510e+01 9.3887609752929094e+01 2 0 0 -58 0 +P 105 -211 -2.9881524415693622e-01 -4.2409333153494246e-02 -1.6592385765903004e+00 1.6922297540891829e+00 1 0 0 0 0 +P 106 2224 -3.7739651006785435e-01 -2.1399552580528344e-01 -1.0092898709838120e+02 1.0093591655187358e+02 2 0 0 -59 0 +P 107 -213 5.1568029838271176e-02 1.0489281204351286e+00 -2.8682166939055642e+03 2.8682169478887886e+03 2 0 0 -60 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 2 0 0 -15 0 +P 33 21 -1.9264630307413937e+00 4.3605697082707904e+00 1.0934871286863569e+01 1.1928840599562703e+01 2 0 0 -15 0 +P 108 92 0 0 7.0645245230670666e+00 1.8069313876235451e+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 2 0 0 -61 0 +P 110 211 -3.8949504695687842e-01 6.3318573167586201e-01 2.8287487702745040e-01 8.0754476244672213e-01 1 0 0 0 0 +P 111 -3214 1.3070293253442316e-02 6.8191945199945314e-01 3.6368408201980333e+00 3.9512642278438408e+00 2 0 0 -62 0 +P 112 111 -5.1252162865341999e-01 2.2292822157692199e-01 -3.3826285438294201e-01 6.6709577338512560e-01 2 0 0 -63 0 +P 113 3312 -2.8307230829558164e-02 7.4361433324065440e-01 2.8196795987175673e+00 3.2015918392796796e+00 2 0 0 -64 0 +P 114 321 1.7310712184575286e-01 2.5372564212865023e-01 -3.7818935156200967e-02 5.8259248962174692e-01 1 0 0 0 0 +P 115 -211 -1.7176330612558119e-01 2.3528839325019374e-01 6.2378220828836273e-01 7.0245803405367480e-01 1 0 0 0 0 +P 116 -2114 -2.3785732100599724e-01 -4.3066782908091966e-01 9.2976032860807897e-02 1.3554702372103349e+00 2 0 0 -65 0 +P 117 2214 6.0515337633293520e-01 -9.5121595517125890e-01 -9.1396794922064373e-01 1.8612896641441454e+00 2 0 0 -66 0 +P 118 221 1.5610406892865505e-01 -4.1180279740384002e-01 2.4550193443675206e-01 7.4425985152895202e-01 2 0 0 -67 0 +P 119 223 -1.6654532327853938e-01 2.6409934496084531e-01 9.2003618590961966e-01 1.2501855628480039e+00 2 0 0 -68 0 +P 120 -213 8.3236400701983415e-01 -1.4204480697325057e+00 -9.2271825719703426e-01 2.0310196515416505e+00 2 0 0 -69 0 +V -17 0 0 0 0 0 5 1 0 +P 37 21 -2.4549304752250420e+00 1.9106102320850373e+00 1.4255136986869084e+02 1.4258530838251687e+02 2 0 0 -17 0 +P 38 21 2.4549304752250420e+00 -1.9106102320850373e+00 3.9326543344547179e+02 3.9327773679443379e+02 2 0 0 -17 0 +P 34 21 -1.2874686984272923e+00 -4.5354152466705555e+00 2.9174823306294378e+01 2.9553305772157866e+01 2 0 0 -17 0 +P 35 21 -1.5824732804086550e+00 -3.3756291283162567e+00 1.8613755585412271e+01 1.8983439906629435e+01 2 0 0 -17 0 +P 36 21 1.2874686984272923e+00 4.5354152466705555e+00 7.6246561156214881e+01 7.6392183207822896e+01 2 0 0 -17 0 +P 121 92 -1.5824732804086552e+00 -3.3756291283162563e+00 6.5985194336208417e+02 6.6079197406356082e+02 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 2 0 0 -70 0 +P 123 211 1.4542095804863758e-01 8.3928851259360959e-01 1.4793046030567339e+01 1.4818206474124844e+01 1 0 0 0 0 +P 124 -211 1.6346163015651471e-01 6.7768762034861363e-01 3.6385442177273340e+01 3.6392387424238997e+01 1 0 0 0 0 +P 125 111 -3.2068447332136946e-01 3.8594024532024324e-01 2.9733721957725852e+00 3.0184350613158366e+00 2 0 0 -71 0 +P 126 321 3.3497849686451375e-01 1.2223626454055394e+00 2.9996662117980971e+01 3.0027483414541404e+01 1 0 0 0 0 +P 127 221 -5.8214749389140619e-01 5.7231243477632643e-01 4.5061968638670571e+01 4.5072687476149831e+01 2 0 0 -72 0 +P 128 -313 -9.2056140784737284e-02 1.1853320044069728e+00 4.0445501109361459e+01 4.0472952620159873e+01 2 0 0 -73 0 +P 129 -211 -6.8690343434950507e-02 -2.4724652780047213e-01 1.0978301805670297e+01 1.0982187374565884e+01 1 0 0 0 0 +P 130 3222 -5.6571475378204539e-01 -1.8495675331422309e-02 7.6655798754955228e+01 7.6667114586566711e+01 2 0 0 -74 0 +P 131 -3222 8.9269875728812620e-01 -2.0156941201723866e-01 1.7491908481387679e+02 1.7492552236429151e+02 2 0 0 -75 0 +P 132 111 5.4105896816734045e-01 -3.9755607846732188e-01 3.4247692832522112e+01 3.4254539547244640e+01 2 0 0 -76 0 +P 133 221 4.7159087264181826e-01 1.2020772703630062e-01 4.8034580061584379e+01 4.8040164769118533e+01 2 0 0 -77 0 +P 134 223 -3.9429121872598855e-01 -3.4625309703953722e-01 2.6395512218946230e+01 2.6411912261172318e+01 2 0 0 -78 0 +P 135 213 3.9795313085803385e-01 -6.1677401758222283e-01 3.1845668885775709e+01 3.1863855985015093e+01 2 0 0 -79 0 +P 136 313 1.0265114771882194e-01 -2.2622249924026197e-01 2.3452325229467018e+01 2.3473299881761864e+01 2 0 0 -80 0 +P 137 -313 -5.5700154512051092e-01 -1.6396713032419616e+00 1.3646660379336359e+01 1.3785980020161174e+01 2 0 0 -81 0 +P 138 111 -5.4077088808668135e-02 -2.3831882224430384e-01 3.8434254226100957e+00 3.8535514492654079e+00 2 0 0 -82 0 +P 139 -213 -5.8266223094836611e-01 -1.4614386039001783e+00 9.6551877108618420e+00 9.8199075697669720e+00 2 0 0 -83 0 +P 140 111 -7.2162541386152523e-01 -9.6677069323893028e-01 7.6826305172722131e+00 7.7779444634529762e+00 2 0 0 -84 0 +P 141 323 -9.0562613680950854e-01 -1.6754637359482516e+00 1.0954221378986349e+01 1.1149779322154751e+01 2 0 0 -85 0 +P 142 -313 -3.2412782438111951e-02 -4.3364122365194685e-01 6.9269303072013768e+00 6.9998631630231944e+00 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 0 0 0 0 +P 144 -211 1.8531506706893134e-02 1.1294735671448289e-01 -1.0826952941544615e-01 2.1048182351323930e-01 1 0 0 0 0 +P 145 111 1.7687031218441127e-01 3.6700809031877518e-01 3.4467520160307075e-01 5.5045312306477356e-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 1 0 0 0 0 +P 147 211 1.9947470488272068e-01 -3.1529697057596912e-01 2.3407955759243465e-01 4.6203394001426124e-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 0 0 0 0 +P 149 -211 -6.6861426897547510e-02 -6.1023832547298297e-02 2.4621632999211213e-01 2.9714747954563148e-01 1 0 0 0 0 +P 150 111 -1.3106070854233884e-01 2.8593337821219544e-01 2.9804398527314574e-01 4.5385528933456026e-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 1 0 0 0 0 +P 152 211 1.8747123682644409e-01 2.8786942277955141e-02 2.7481107891332301e-01 3.6190477570274704e-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 1 0 0 0 0 +P 154 211 1.5980586075320719e-01 -1.3134046715429157e-01 1.6320686282669057e+00 1.6510348341923013e+00 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 155 -211 -3.7892725164608876e-01 -2.1323299448707161e-01 3.4834728880062177e-01 5.7435162617748858e-01 1 0 0 0 0 +P 156 111 -2.7875872913594103e-02 -4.1177083616346186e-02 1.2016647573442882e+00 1.2102439448099500e+00 2 0 0 -89 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 1 0 0 0 0 +P 158 22 4.5982890070555262e-02 -3.4094506991459012e-01 1.2397092182027323e+00 1.2865601084190099e+00 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 0 0 0 0 +P 160 211 -1.1685871788492098e-01 3.0883905152444485e-01 5.6084708578525380e+01 5.6085854309644873e+01 1 0 0 0 0 +P 161 111 -4.1631047557651339e-02 -1.2874234277955540e-01 6.9624511421666696e+01 6.9624773737809306e+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 0 0 0 0 +P 163 111 -5.3285294633266200e-01 -4.9076400014206613e-04 9.9538598315359692e+01 9.9540116067293155e+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 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 0 0 0 0 +P 166 -211 4.3023698600706616e-02 -4.3317947286873226e-01 6.8997695486606995e+02 6.8997710630247286e+02 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 2 0 0 -92 0 +P 168 22 1.1674953354169699e+00 -2.7288291403232995e-01 -4.4930199129953658e+00 4.6502406799609899e+00 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 0 0 0 0 +P 170 111 2.7306121861372836e+00 -7.6705071398434499e-01 -1.0368784994499388e+01 1.0750559593410056e+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 0 0 0 0 +P 172 211 2.6610359075821943e-01 -1.1315064916010875e+00 -4.2716621511963080e+00 4.4291867628733934e+00 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 0 0 0 0 +P 174 111 9.4437749042226293e-02 -8.2149919135419225e-01 -3.9179502857745612e+00 4.0065363410358232e+00 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 1 0 0 0 0 +P 176 22 7.0215709396855189e-02 -1.3441967011516463e-03 -3.0782979379073439e-01 3.1573918771055498e-01 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 1 0 0 0 0 +P 178 -211 1.3661267712066744e-01 -1.4613037293932616e+00 -6.8481648843881722e+00 7.0050634316725500e+00 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 2 0 0 -95 0 +P 180 111 4.1762967717743038e-01 -1.7457001757955024e-01 -2.2827569132806103e+00 2.3311130311135639e+00 2 0 0 -96 0 +P 181 111 2.3922967851484872e-01 -3.7578479703185902e-01 -2.8286977598559608e+00 2.8667395538794112e+00 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 1 0 0 0 0 +P 183 22 4.8894777854157266e-02 -3.6661152493506532e-01 -1.1812608522813814e+00 1.2378093191801220e+00 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 2 0 0 -98 0 +P 185 -211 -9.1358751268296934e-01 6.5680151488065541e-01 -1.2472094022546043e+00 1.6855389201237880e+00 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 0 0 0 0 +P 187 111 -1.3188671348400147e+00 8.7462138905242814e-01 -1.2634973141822292e+00 2.0295364389177188e+00 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 1 0 0 0 0 +P 189 -211 -3.3171297377828615e+00 2.5345084667162929e+00 -4.5201053575106149e+00 6.1545036431085274e+00 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 0 0 0 0 +P 191 111 1.5680949446327844e-01 -5.1801813994789669e-02 1.9047927380199486e+01 1.9049121494894198e+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 0 0 0 0 +P 193 111 -2.6281976757985070e-01 2.0439037285097228e-01 5.6390753552022026e+01 5.6391897959015616e+01 2 0 0 -101 0 +V -43 0 0 0 0 0 0 3 0 +P 194 211 -7.4549090353008274e-03 -4.7591526351828985e-02 3.6465918317571173e+00 3.6495797431193293e+00 1 0 0 0 0 +P 195 -211 4.1840956779000425e-02 1.1065370009422846e-02 2.3223399295776672e+00 2.3269326680177986e+00 1 0 0 0 0 +P 196 221 -4.7666894429362194e-01 -2.2991460991983190e-01 9.2810980530629781e+00 9.3122798810698342e+00 2 0 0 -102 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 0 0 0 0 +P 198 111 -4.3446677963083974e-01 -7.8069277641445167e-01 1.0468480002047293e+00 1.3828784941856385e+00 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 1 0 0 0 0 +P 200 22 -1.2005583534141563e-01 1.1792995056802119e-01 7.1789015938312140e-01 7.3735144794027918e-01 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 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 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 0 0 0 0 +P 204 211 -9.9161576416783720e-02 -1.0551044999043914e-01 -9.9295638064943059e-01 1.0131177779839140e+00 1 0 0 0 0 +P 205 111 7.3326975328856361e-02 7.3893963973200610e-02 -6.2198799242777869e-01 6.4492311661692658e-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 0 0 0 0 +P 207 211 1.6448440148163432e-01 -1.0315875828041352e-01 -1.2761807265788860e+00 1.2983889554105663e+00 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 0 0 0 0 +P 209 111 6.9716897678052181e-01 1.3778964005077581e+00 -1.3537396883659865e+03 1.3537405758563607e+03 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 0 0 0 0 +P 211 -211 2.2899627357348501e-01 2.5707148863093887e-01 -6.0357280793668032e+01 6.0358424015494023e+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 0 0 0 0 +P 213 211 -1.1274188888036062e-02 -1.4725853542175005e-01 -4.0564276257440682e+01 4.0564785223866963e+01 1 0 0 0 0 +P 214 111 2.8295515860935339e-01 -1.6630421945240220e-01 -6.5321241841682792e+01 6.5322205841927925e+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 1 0 0 0 0 +P 216 -211 1.6585355152244120e-02 7.4750230739152670e-02 -1.6951937808817900e+02 1.6951945283612403e+02 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 0 0 0 0 +P 218 211 3.7148306018183180e-01 3.1989607288807170e-01 -3.3769988231507233e+02 3.3770026699509737e+02 1 0 0 0 0 +P 219 111 -2.4335846251811649e-02 -9.4387977975935594e-02 -7.7609371571857679e+01 7.7609550164286290e+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 1 0 0 0 0 +P 221 111 5.8313103641705534e-02 -1.8636801168062198e-03 -5.9184340215263624e+01 5.9184522894147172e+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 0 0 0 0 +P 223 111 -8.9638781795857811e-02 2.6362743774593289e-01 -4.9839795421006370e+00 4.9935764952198349e+00 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 1 0 0 0 0 +P 225 22 -1.0144310122609973e-01 -1.3397792516092778e-02 -1.1285875580297213e+00 1.1332166958574881e+00 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 0 0 0 0 +P 227 -211 -1.9314214957996700e-01 -1.3047251766359474e-01 -4.5836001434910052e+01 4.5836806545545755e+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 1 0 0 0 0 +P 229 211 -4.5724156530593883e-02 -8.5894814744234493e-02 -1.9645435027066917e+01 1.9646171784989004e+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 0 0 0 0 +P 231 111 1.4339741172950205e-03 6.4265897102186520e-01 -2.2818245590395259e+03 2.2818246535323738e+03 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 1 0 0 0 0 +P 233 211 3.2072488781638424e-02 7.4310750623015523e-02 1.9183184940054263e-01 2.5065908229951850e-01 1 0 0 0 0 +P 234 -211 3.6277635485791552e-03 7.2109035769672120e-02 1.0378590046087431e-01 1.8831933448924135e-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 2 0 0 -111 0 +P 236 -211 -7.0161828819345753e-02 1.5410727715577854e-01 3.5732234516368805e-01 4.1932180762383553e-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 1 0 0 0 0 +P 238 22 -5.0646985754231766e-01 2.2227734416277739e-01 -3.0170677841869392e-01 6.3003643900236450e-01 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 2 0 0 -112 0 +P 240 -211 -8.0238418068374492e-02 2.4430819712669047e-01 5.1410251659835626e-01 5.9152842821809692e-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 1 0 0 0 0 +P 242 111 -2.6825282256905353e-01 -1.8661431245093574e-01 1.4664249568572760e-01 3.8276376574688753e-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 1 0 0 0 0 +P 244 211 9.9423550289329768e-02 -3.6368958364413451e-01 -2.5949939376894660e-01 4.7851319299453970e-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 2 0 0 -114 0 +P 246 111 1.4009134464458384e-01 -4.0884284586234554e-02 6.9315279214559475e-02 2.1052628791447428e-01 2 0 0 -115 0 +P 247 111 7.8135734516086748e-03 -1.4352575440229270e-01 1.8309356614861544e-01 2.6907907475656356e-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 0 0 0 0 +P 249 -211 9.8183549295323566e-02 -9.0366883444205459e-02 2.8497224847354313e-01 3.4423124535072736e-01 1 0 0 0 0 +P 250 111 -8.9081241279593756e-02 -3.5896718271989543e-02 6.1330119536645196e-02 1.7664944351169345e-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 0 0 0 0 +P 252 111 5.1011684333153062e-01 -6.1963457427255142e-01 -8.1190431695912335e-01 1.1495975033816452e+00 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 0 0 0 0 +P 254 111 2.5831045357956911e-01 -2.5003056765727244e-01 6.3219226034303873e+00 6.3335743920282130e+00 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 1 0 0 0 0 +P 256 22 -2.8721994320842464e-01 2.5531471698636882e-01 2.2569730841935161e+00 2.2894559186104617e+00 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 0 0 0 0 +P 258 211 -1.2411261561070656e-01 1.6023975462299647e-01 1.1180974600038915e+01 1.1183682466519279e+01 1 0 0 0 0 +P 259 111 -2.0433372632142410e-01 1.6817746660681263e-01 2.1939337867558944e+01 2.1941349128968632e+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 2 0 0 -121 0 +P 261 111 1.2976008347469933e-01 3.6468272062361839e-01 6.3463218449327279e+00 6.3595480755990161e+00 2 0 0 -122 0 +V -74 0 -1.0001014862923057e+01 -3.2697666563000749e-01 1.3551631410569682e+03 1.3553631885179477e+03 0 2 0 +P 262 2112 -2.6701945902112212e-01 3.2379757227036086e-02 5.3708962497965480e+01 5.3717853570604774e+01 1 0 0 0 0 +P 263 211 -2.9869529476092338e-01 -5.0875432558458403e-02 2.2946836256989762e+01 2.2949261015961937e+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 1 0 0 0 0 +P 265 111 3.3211251027235189e-01 -1.9314217307222326e-01 4.9488125953721443e+01 4.9489801299159566e+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 1 0 0 0 0 +P 267 22 3.2610470661881691e-01 -1.8506440846382186e-01 1.6385595973758694e+01 1.6389885555738825e+01 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 2 0 0 -124 0 +P 269 111 2.1168570079863799e-01 1.5888476958365427e-02 1.4419743327632153e+01 1.4421937474376135e+01 2 0 0 -125 0 +P 270 111 4.2338651776527382e-02 5.9397905537924622e-02 5.3617926069090789e+00 5.3639873445526884e+00 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 0 0 0 0 +P 272 -211 6.1921227808798385e-02 6.5909961337744488e-02 6.8540815103096717e+00 6.8560988540368788e+00 1 0 0 0 0 +P 273 111 -2.9104043237975502e-01 -1.7136327052337760e-01 1.4152408887417174e+01 1.4157081861061936e+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 0 0 0 0 +P 275 111 4.5010499856196384e-01 -1.5099879120799736e-01 2.2489630496284530e+01 2.2495046001386349e+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 1 0 0 0 0 +P 277 -211 3.0617347118293892e-01 9.2311657222136315e-02 1.0906099986540170e+01 1.0911679996124647e+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 1 0 0 0 0 +P 279 211 1.4520040899471007e-01 -3.8694870159807759e-01 3.1236150576917168e+00 3.1539282284127990e+00 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 1 0 0 0 0 +P 281 22 -6.6582630892394315e-02 -6.0171731654043326e-02 8.2969235123366514e-01 8.3453177394419598e-01 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 0 0 0 0 +P 283 111 -6.3457866147058040e-01 -5.6503110734722573e-01 5.4665917789662455e+00 5.5338770774318045e+00 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 1 0 0 0 0 +P 285 22 -1.9494804319896730e-01 -3.0662827210148269e-01 1.9697558616883879e+00 2.0029887147597236e+00 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 2 0 0 -130 0 +P 287 211 -1.9216241447018820e-02 -3.0070888016722131e-02 8.4870724776096818e-01 8.6084685022567276e-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 1 0 0 0 0 +P 289 211 2.6855393914793912e-01 -1.0507833884512403e-01 1.6147842692616270e+00 1.6462596079237115e+00 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 1 0 0 0 0 +P 291 22 1.8558634600392554e-01 2.6293302518989264e-01 2.3144817197854431e-01 3.9641433358395012e-01 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 1 0 0 0 0 +P 293 22 3.5575337961664942e-03 8.2885029894210052e-02 1.4226668800229234e-01 1.6468878147104177e-01 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 1 0 0 0 0 +P 295 22 -4.6569336840087371e-02 -9.8341969562946805e-03 1.3844765075107546e-01 1.4640070546958606e-01 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 1 0 0 0 0 +P 297 22 4.2184079505536640e-02 -6.1793889286651952e-03 1.5759481117893948e+01 1.5759538787244599e+01 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 1 0 0 0 0 +P 299 22 -3.6407780625288773e-02 3.6660625408091146e-02 1.0135847529573983e+01 1.0135979216174251e+01 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 2 0 0 -131 0 +P 301 211 8.8637402086832295e-01 -3.1039363085465904e-01 -3.8525417889436788e+00 3.9678156624776282e+00 1 0 0 0 0 +P 302 -211 1.5690167489104487e+00 -1.3700604791982612e-01 -6.5896015529868883e+00 6.7766446437418670e+00 1 0 0 0 0 +P 303 111 3.6836236547444208e+00 -1.1723870494551110e+00 -1.6622326812590639e+01 1.7066444939954319e+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 1 0 0 0 0 +P 305 22 1.9131827501388010e+00 -6.0120664425247261e-01 -7.3123993668507001e+00 7.5824074122168170e+00 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 1 0 0 0 0 +P 307 22 3.7793281528448693e-02 -4.2957481970880629e-01 -1.7226094181319094e+00 1.7757663318391017e+00 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 1 0 0 0 0 +P 309 22 1.1951445344448942e-01 -1.1271539078465091e-01 -1.0766703872758272e+00 1.0891315745760710e+00 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 1 0 0 0 0 +P 311 22 3.1920037468237635e-03 -2.4896877670223756e-02 -5.8950439232089813e-02 6.4071816669282453e-02 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 1 0 0 0 0 +P 313 22 1.4586170170862600e-01 -1.4517528675274019e-01 -1.5935857777240650e+00 1.6068189477578019e+00 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 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 1 0 0 0 0 +P 316 22 -7.3379340537514304e-01 5.5669727479453446e-01 -7.7410338128069411e-01 1.2031627747091891e+00 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 1 0 0 0 0 +P 318 22 -1.2379688754138632e-03 -1.2520220168175604e-02 1.6061130963062439e-01 1.6110332479890169e-01 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 1 0 0 0 0 +P 320 22 -5.3403805297841091e-02 6.5329308994338591e-03 1.7259420536092140e+01 1.7259504392863857e+01 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 0 0 0 0 +P 322 211 -1.8066085545057711e-01 -1.2250346517093816e-01 3.1803689410937466e+00 3.1909045473101791e+00 1 0 0 0 0 +P 323 111 -2.3585617180557428e-01 -1.8672286710230040e-01 3.8096424514449647e+00 3.8238839902812538e+00 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 1 0 0 0 0 +P 325 22 -1.2939964609640288e-02 -2.9314140567959529e-02 7.5559281487998032e-03 3.2921931467134069e-02 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 1 0 0 0 0 +P 327 22 3.8108464736028018e-02 -3.4021362056526450e-02 -1.2301819660984770e-01 1.3320354671651011e-01 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 1 0 0 0 0 +P 329 22 2.4537375012384985e-01 3.5996480717567148e-01 -4.0033810407170330e+02 4.0033834109995706e+02 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 1 0 0 0 0 +P 331 22 6.1281753021005136e-02 -6.9147018899507251e-02 -9.7734815197710532e+00 9.7739182409503673e+00 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 1 0 0 0 0 +P 333 22 -6.3511087209696176e-03 -7.3161221563865633e-02 -7.4895266735079133e+01 7.4895302738019382e+01 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 1 0 0 0 0 +P 335 22 -1.1335839468064239e-02 -3.1698743443086888e-02 -4.2224888317224256e+01 4.2224901737169894e+01 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 1 0 0 0 0 +P 337 22 -2.7790706220732229e-02 6.9132579659654650e-02 -2.5391801684161410e+00 2.5402731279530690e+00 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 1 0 0 0 0 +P 339 22 -4.9776175188644113e-02 1.0585874910747640e-01 -4.4078164060048624e+02 4.4078165612261887e+02 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 1 0 0 0 0 +P 341 211 -1.6636767295654004e-01 1.1297760048730578e-01 4.6493117045607391e-01 5.2543593232524399e-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 1 0 0 0 0 +P 343 -211 -6.7996745488604390e-02 5.5989719598877254e-02 1.9771880117508914e-01 2.5754788940295620e-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 1 0 0 0 0 +P 345 22 -2.6060566020735898e-01 -1.3928870578333724e-01 1.5565617169762194e-01 3.3398427729231522e-01 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 1 0 0 0 0 +P 347 22 5.4701295373774099e-02 -2.0276896501862660e-01 -1.8308024747732833e-02 2.1081429899429852e-01 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 1 0 0 0 0 +P 349 22 1.5554508615043744e-01 -3.9851490465752641e-02 2.3644315392168085e-02 1.6230055073305602e-01 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 1 0 0 0 0 +P 351 22 -4.2957833154388850e-02 -1.3948045792591390e-01 1.2906121320666405e-01 1.9482548685148704e-01 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 1 0 0 0 0 +P 353 22 1.3626247902199785e-02 3.7184217333022761e-02 1.4089970909410013e-02 4.2034128167355814e-02 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 1 0 0 0 0 +P 355 22 4.9004630498621926e-01 -5.8336201340606209e-01 -8.0353626423030966e-01 1.1073062573872792e+00 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 1 0 0 0 0 +P 357 22 2.7157220269959242e-01 -2.5180080050229070e-01 6.0526227086513051e+00 6.0639423445225926e+00 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 1 0 0 0 0 +P 359 22 -7.6911270929779313e-02 3.6347974549852820e-03 9.0894091818038234e+00 9.0897353003048575e+00 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 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 1 0 0 0 0 +P 362 22 1.1330261036987670e-01 2.4110641392544135e-01 3.3249131073885452e+00 3.3355684607030280e+00 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 1 0 0 0 0 +P 364 22 4.3636955441329298e-02 -8.7163582461208516e-03 1.2809612421069319e+01 1.2809689712744593e+01 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 1 0 0 0 0 +P 366 22 1.8472596630477001e-01 1.1434021428166474e-02 1.5428621653813121e+01 1.5429731707193888e+01 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 1 0 0 0 0 +P 368 22 5.7849775424257200e-03 -5.1827386375097220e-04 2.3318613186452682e-02 2.4031069345820253e-02 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 1 0 0 0 0 +P 370 22 4.6990507384627421e-02 -2.9539925853952553e-02 3.0051429349701460e+00 3.0056554650532892e+00 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 1 0 0 0 0 +P 372 22 -1.8993147600415941e-01 -1.1806799940949568e-01 1.1549236995418905e+01 1.1551402044531839e+01 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 1 0 0 0 0 +P 374 22 4.4907023564857852e-02 1.0003370978663674e-02 4.0502831854952213e+00 4.0505444807953541e+00 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 1 0 0 0 0 +P 376 22 -3.5818511152162880e-01 -2.9636370047210259e-01 2.5643110819839920e+00 2.6061119205166898e+00 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 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 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 1 0 0 0 0 +P 380 22 7.9146423222132656e-01 -2.5688044426217738e-01 -3.8276810970475545e+00 3.9170838354859354e+00 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 1 0 0 0 0 +P 382 22 -1.2096730624219609e-01 -5.0536457444721711e-02 9.9375836751438251e-01 1.0023685528364348e+00 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 2 0 0 -135 0 +P 384 111 -6.1583799664525751e-01 -1.3314618568279268e+00 8.4240635221834612e+00 8.5519069768374898e+00 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 1 0 0 0 0 +P 386 22 -1.6927373800586196e-01 -1.0875575392471017e-01 6.4664044363374906e-01 6.7721877981422007e-01 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 1 0 0 0 0 +P 388 22 -3.1472533914843293e-01 -6.1571004774675597e-01 4.3276873468824339e+00 4.3825824207155222e+00 1 0 0 0 0 +HepMC::IO_Ascii-END_EVENT_LISTING diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/GNUmakefile new file mode 100644 index 0000000000..6b8f84d80a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/GNUmakefile @@ -0,0 +1,13 @@ +include $(G4INSTALL)/config/sys/$(G4SYSTEM).gmk + +%.o: %.f + @echo "Compiling $< with $(FC) ..." + $(FC) -c $(FCFLAGS) -o $@ $< + +initpydata.o : initpydata.f + +.PHONY: clean + +clean: + @rm initpydata.o + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f new file mode 100644 index 0000000000..01dc39c5e9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f @@ -0,0 +1,11 @@ +c +c Matt.Dobbs@Cern.CH, December 1999 +c EXTERNAL statement links PYDATA on most machines. +c (Often necessary for the initialization of Pythia) +c + subroutine initpydata + EXTERNAL PYDATA + return + end + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc new file mode 100644 index 0000000000..ea96906850 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.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: hepmcEx01.cc,v 1.1 2002/04/29 20:43:22 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleN04 +// +// -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" + +#include "ExN04DetectorConstruction.hh" +#include "ExN04PhysicsList.hh" +#include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04EventAction.hh" +#include "ExN04StackingAction.hh" +#include "ExN04TrackingAction.hh" +#include "ExN04SteppingAction.hh" + + +int main(int argc,char** argv) +{ + G4RunManager* runManager = new G4RunManager; + + runManager->SetUserInitialization(new ExN04DetectorConstruction); + runManager->SetUserInitialization(new ExN04PhysicsList); + + runManager->Initialize(); + + runManager->SetUserAction(new ExN04PrimaryGeneratorAction); + runManager->SetUserAction(new ExN04EventAction); + runManager->SetUserAction(new ExN04StackingAction); + runManager->SetUserAction(new ExN04TrackingAction); + runManager->SetUserAction(new ExN04SteppingAction); + + if(argc==1) + { + // G4UIterminal is a (dumb) terminal. + G4UIsession* session = new G4UIterminal; + session->SessionStart(); + delete session; + } + else + { + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + + delete runManager; + + return 0; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.in b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.in new file mode 100644 index 0000000000..e9614c8430 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out new file mode 100644 index 0000000000..6dbc3cb9bd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out @@ -0,0 +1,2077 @@ +********************************************** + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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. + +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. + +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 +IO_Ascii: unformated ascii file IO for machine reading. + File openmode: 1 file state: 0 bad:0 eof:0 fail:0 good:0 +________________________________________________________________________________ +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 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 + 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) + 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 +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 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 + 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 +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 + 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 + 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 + 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 + 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 +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 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 + 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 53 -423 +1.80e+00,-7.41e-01,-9.90e+00,+1.03e+01 2 -21 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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) + 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 + 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 + 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) + 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 + 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 + 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 + 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 + 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 + 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 + 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 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 387 22 -3.78e-03,+6.83e-02,+3.46e-01,+3.53e-01 1 (nil) + 388 113 +8.30e-02,-2.83e-01,+1.61e+01,+1.61e+01 2 -191 +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) + 396 -14 -1.31e+00,+1.05e+00,-1.23e+01,+1.24e+01 1 (nil) + 397 323 -2.16e+01,+1.35e+01,-2.09e+02,+2.11e+02 2 -192 + 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 423 22 -3.68e-01,+1.74e-01,+3.63e+00,+3.66e+00 1 (nil) + 424 211 -2.05e-01,+1.05e-01,+1.26e+00,+1.28e+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 548 22 -7.69e-03,-3.50e-03,-3.43e+00,+3.43e+00 1 (nil) + 549 11 +3.80e-02,-5.45e-02,-1.98e+00,+1.99e+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 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 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 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 +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 + 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 +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 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 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 + 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 + 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 + 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 + 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 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) + 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 + 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) + 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 + 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 + 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 + 89 223 +1.23e+00,+3.33e-01,-2.87e+03,+2.87e+03 2 -50 +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 + 32 21 +3.00e+00,-2.35e+00,+2.97e+01,+3.00e+01 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 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) + 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) + 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 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 + 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 +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 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 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 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 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 159 211 +1.18e-04,-3.58e-01,-6.34e+00,+6.36e+00 1 (nil) + 160 111 +4.80e-01,+2.17e-01,-7.34e+00,+7.36e+00 2 -80 +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 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 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 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 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 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 257 22 +3.37e-01,+1.15e-01,-8.96e-01,+9.65e-01 1 (nil) + 256 22 +1.21e-01,-3.91e-02,-3.40e-01,+3.63e-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 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 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) +________________________________________________________________________________ +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/hepmc_pygen.in b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.in new file mode 100644 index 0000000000..3881261753 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out new file mode 100644 index 0000000000..661c2f0cbd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out @@ -0,0 +1,259 @@ +********************************************** + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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. + +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. + +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 + 75 hits are stored in ExN04TrackerHitsCollection. + 58 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.917237 (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) + 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) + 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) + 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) + 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/advanced/brachytherapy/include/BrachyWaterBoxHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh similarity index 56% rename from examples/advanced/brachytherapy/include/BrachyWaterBoxHit.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh index a01a2c144f..3b902165ba 100644 --- a/examples/advanced/brachytherapy/include/BrachyWaterBoxHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh @@ -20,14 +20,9 @@ // * statement, and all its terms. * // ******************************************************************** // -// ******************************** -// * * -// * BrachyWaterBoxHit.hh * -// * * -// ******************************** -#ifndef BrachyWaterBoxHit_h -#define BrachyWaterBoxHit_h 1 +#ifndef ExN04CalorimeterHit_h +#define ExN04CalorimeterHit_h 1 #include "G4VHit.hh" #include "G4THitsCollection.hh" @@ -37,14 +32,16 @@ #include "G4Transform3D.hh" #include "G4RotationMatrix.hh" -class BrachyWaterBoxHit : public G4VHit +class ExN04CalorimeterHit : public G4VHit { - public: - BrachyWaterBoxHit(G4LogicalVolume* logVol,G4int XID,G4int ZID); - ~BrachyWaterBoxHit(); - BrachyWaterBoxHit(const BrachyWaterBoxHit &right); - const BrachyWaterBoxHit& operator=(const BrachyWaterBoxHit &right); - int operator==(const BrachyWaterBoxHit &right) const; + 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); @@ -52,54 +49,55 @@ class BrachyWaterBoxHit : public G4VHit void Draw(); void Print(); - private: - G4ThreeVector m_Pos; - G4RotationMatrix m_Rot; - const G4LogicalVolume* m_pLogV; + private: + G4int ZCellID; + G4int PhiCellID; + G4double edep; + G4ThreeVector pos; + G4RotationMatrix rot; + const G4LogicalVolume* pLogV; - 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;} + 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 m_Edep;} + { return edep; } inline void SetPos(G4ThreeVector xyz) - {m_Pos = xyz;} + { pos = xyz; } inline G4ThreeVector GetPos() - {return m_Pos;} + { return pos; } inline void SetRot(G4RotationMatrix rmat) - {m_Rot = rmat;} + { rot = rmat; } inline G4RotationMatrix GetRot() - {return m_Rot;} + { return rot; } inline const G4LogicalVolume * GetLogV() - {return m_pLogV;} + { return pLogV; } + }; -typedef G4THitsCollection BrachyWaterBoxHitsCollection; -extern G4Allocator BrachyWaterBoxHitAllocator; +typedef G4THitsCollection ExN04CalorimeterHitsCollection; -inline void* BrachyWaterBoxHit::operator new(size_t) +extern G4Allocator ExN04CalorimeterHitAllocator; + +inline void* ExN04CalorimeterHit::operator new(size_t) { - void *aHit; - aHit = (void *) BrachyWaterBoxHitAllocator.MallocSingle(); - return aHit; + void *aHit; + aHit = (void *) ExN04CalorimeterHitAllocator.MallocSingle(); + return aHit; } -inline void BrachyWaterBoxHit::operator delete(void *aHit) +inline void ExN04CalorimeterHit::operator delete(void *aHit) { - BrachyWaterBoxHitAllocator.FreeSingle((BrachyWaterBoxHit*) aHit); + ExN04CalorimeterHitAllocator.FreeSingle((ExN04CalorimeterHit*) aHit); } #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterParametrisation.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterParametrisation.hh new file mode 100644 index 0000000000..bfab08a8f8 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/include/ExN04CalorimeterROGeometry.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh new file mode 100644 index 0000000000..b48798df80 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/advanced/brachytherapy/include/BrachyWaterBoxSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterSD.hh similarity index 74% rename from examples/advanced/brachytherapy/include/BrachyWaterBoxSD.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterSD.hh index c6775c7fd6..32c01e0383 100644 --- a/examples/advanced/brachytherapy/include/BrachyWaterBoxSD.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterSD.hh @@ -20,27 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // -// ******************************** -// * * -// * BrachyWaterBoxSD.hh * -// * * -// ******************************** -#ifndef BrachyWaterBoxSD_h -#define BrachyWaterBoxSD_h 1 +#ifndef ExN04CalorimeterSD_h +#define ExN04CalorimeterSD_h 1 #include "G4VSensitiveDetector.hh" -#include "BrachyWaterBoxHit.hh" - +#include "ExN04CalorimeterHit.hh" class G4Step; class G4HCofThisEvent; class G4TouchableHistory; -class BrachyWaterBoxSD : public G4VSensitiveDetector +class ExN04CalorimeterSD : public G4VSensitiveDetector { - public: - BrachyWaterBoxSD(G4String name, G4int NumVoxelX, G4int NumVoxelZ); - ~BrachyWaterBoxSD(); + + public: + ExN04CalorimeterSD(G4String name); + ~ExN04CalorimeterSD(); void Initialize(G4HCofThisEvent*HCE); G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); @@ -48,12 +43,16 @@ class BrachyWaterBoxSD : public G4VSensitiveDetector void clear(); void DrawAll(); void PrintAll(); - private: - BrachyWaterBoxHitsCollection *m_pWaterBoxHitsCollection; - - const G4int m_NumVoxelX; - const G4int m_NumVoxelZ; - G4int *m_pVoxelID; + + private: + ExN04CalorimeterHitsCollection *CalCollection; + int CellID[20][48]; + const int numberOfCellsInZ; + const int numberOfCellsInPhi; }; + + + + #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh new file mode 100644 index 0000000000..3601f184e5 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh @@ -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. * +// ******************************************************************** +// + +#ifndef ExN04DetectorConstruction_h +#define ExN04DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +class G4VPhysicalVolume; + +class ExN04DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + ExN04DetectorConstruction(); + ~ExN04DetectorConstruction(); + + public: + G4VPhysicalVolume* Construct(); + + private: + +#include "ExN04DetectorParameterDef.hh" + +}; + +#endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorParameterDef.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorParameterDef.hh new file mode 100644 index 0000000000..d26e656d67 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh new file mode 100644 index 0000000000..eeed0dd0df --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.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. * +// ******************************************************************** +// +// +// Dummy sensitive used only to flag sensitivity +// in cells of RO geometry. +// + +#ifndef ExN04DummySD_h +#define ExN04DummySD_h 1 + +#include "G4VSensitiveDetector.hh" +class G4Step; + +class ExN04DummySD : public G4VSensitiveDetector +{ +public: + ExN04DummySD(); + ~ExN04DummySD() {}; + + void Initialize(G4HCofThisEvent*HCE) {}; + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} + void EndOfEvent(G4HCofThisEvent*HCE) {}; + void clear() {}; + void DrawAll() {}; + void PrintAll() {}; +}; +ExN04DummySD::ExN04DummySD() + : G4VSensitiveDetector("dummySD") +{} +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh new file mode 100644 index 0000000000..bc28c7dd81 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:43:37 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 +// ------------------------------------------------------------ +#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/eventgenerator/HepMC/HepMCEx01/include/ExN04EventAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EventAction.hh new file mode 100644 index 0000000000..96b251bcdb --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EventAction.hh @@ -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. * +// ******************************************************************** +// + +#ifndef ExN04EventAction_h +#define ExN04EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class ExN04EventAction : public G4UserEventAction +{ + public: + ExN04EventAction(); + ~ExN04EventAction(); + + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + private: + G4int trackerCollID; + G4int calorimeterCollID; + G4int muonCollID; +}; + +#endif + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04Field.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04Field.hh new file mode 100644 index 0000000000..efa14063d0 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04Field.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 ExN04Field_H +#define ExN04Field_H 1 + +#include "globals.hh" +#include "G4MagneticField.hh" + +class ExN04Field : public G4MagneticField +{ + public: + ExN04Field(); + ~ExN04Field(); + + 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/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh new file mode 100644 index 0000000000..78bc5e52da --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:43:39 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 +// ------------------------------------------------------------ +#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/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh new file mode 100644 index 0000000000..6e79888a43 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh @@ -0,0 +1,331 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * 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 +// ------------------------------------------------------------ +#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 + +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; + G4HEPionPlusInelastic* theHEPionPlusModel; + G4MultipleScattering thePionPlusMult; + G4hIonisation thePionPlusIonisation; + + // Pi - + G4PionMinusInelasticProcess thePionMinusInelastic; + G4LEPionMinusInelastic* theLEPionMinusModel; + G4HEPionMinusInelastic* theHEPionMinusModel; + G4MultipleScattering thePionMinusMult; + G4hIonisation thePionMinusIonisation; +#ifdef TRIUMF_STOP_PIMINUS + G4PionMinusAbsorptionAtRest thePionMinusAbsorption; +#else + G4PiMinusAbsorptionAtRest thePionMinusAbsorption; +#endif + + // 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/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh new file mode 100644 index 0000000000..82fe7d2080 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:43:41 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 +// ------------------------------------------------------------ +#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/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.hh new file mode 100644 index 0000000000..2b6607cf81 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.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 ExN04MuonHit_h +#define ExN04MuonHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +class ExN04MuonHit : public G4VHit +{ + public: + + 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); + + void Draw(); + void Print(); + + private: + G4double edep; + G4ThreeVector pos; + + public: + 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; } + +}; + +typedef G4THitsCollection ExN04MuonHitsCollection; + +extern G4Allocator ExN04MuonHitAllocator; + +inline void* ExN04MuonHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN04MuonHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExN04MuonHit::operator delete(void *aHit) +{ + ExN04MuonHitAllocator.FreeSingle((ExN04MuonHit*) aHit); +} + +#endif + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh new file mode 100644 index 0000000000..ca1977039d --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:43:43 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 +// ------------------------------------------------------------ +#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/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonSD.hh new file mode 100644 index 0000000000..1f0c39e381 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonSD.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 ExN04MuonSD_h +#define ExN04MuonSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04MuonHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04MuonSD : public G4VSensitiveDetector +{ + + public: + ExN04MuonSD(G4String name); + ~ExN04MuonSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + ExN04MuonHitsCollection * muonCollection; + G4double positionResolution; + +}; + + + + +#endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PhysicsList.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PhysicsList.hh new file mode 100644 index 0000000000..445ac20653 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PhysicsList.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 ExN04PhysicsList_h +#define ExN04PhysicsList_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" + +class ExN04PhysicsList: public G4VModularPhysicsList +{ +public: + ExN04PhysicsList(); + virtual ~ExN04PhysicsList(); + +public: + // SetCuts() + virtual void SetCuts(); + + +}; + + +#endif + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..b9d0eeb135 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:43:45 asaim 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; + std::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/include/ExN04PrimaryGeneratorMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..ade17ed37d --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:43:46 asaim 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/eventgenerator/HepMC/HepMCEx01/include/ExN04StackingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04StackingAction.hh new file mode 100644 index 0000000000..6fa030f3a7 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/include/ExN04StackingActionMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04StackingActionMessenger.hh new file mode 100644 index 0000000000..38da86a685 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/include/ExN04SteppingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingAction.hh new file mode 100644 index 0000000000..aafc85416e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.hh new file mode 100644 index 0000000000..8731dadeb6 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.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 ExN04TrackerHit_h +#define ExN04TrackerHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +class ExN04TrackerHit : public G4VHit +{ + public: + + 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: + G4double edep; + G4ThreeVector pos; + + public: + inline void SetEdep(G4double de) + { edep = de; } + inline G4double GetEdep() + { return edep; } + inline void SetPos(G4ThreeVector xyz) + { pos = xyz; } + inline G4ThreeVector GetPos() + { 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/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.hh new file mode 100644 index 0000000000..dc1fa0102e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.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 ExN04TrackerParametrisation_H +#define ExN04TrackerParametrisation_H 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4Tubs; + +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/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerSD.hh new file mode 100644 index 0000000000..57068a1950 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerSD.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 ExN04TrackerSD_h +#define ExN04TrackerSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04TrackerHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04TrackerSD : public G4VSensitiveDetector +{ + + public: + 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: + ExN04TrackerHitsCollection *trackerCollection; + + public: +}; + + + + +#endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackingAction.hh new file mode 100644 index 0000000000..9007f2bd85 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/include/HepMCG4AsciiReader.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReader.hh new file mode 100644 index 0000000000..f69a3ea6a9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReader.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReader.hh +// $Id: HepMCG4AsciiReader.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// +// ==================================================================== +#ifndef HEPMC_G4_ASCII_READER_H +#define HEPMC_G4_ASCII_READER_H + +#include "HepMCG4Interface.hh" +#include "HepMC/IO_Ascii.h" + +class HepMCG4AsciiReaderMessenger; + +class HepMCG4AsciiReader : public HepMCG4Interface { +protected: + G4String filename; + HepMC::IO_Ascii* asciiInput; + + G4int verbose; + HepMCG4AsciiReaderMessenger* messenger; + + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + HepMCG4AsciiReader(); + ~HepMCG4AsciiReader(); + + // set/get methods + void SetFileName(G4String name); + G4String GetFileName() const; + + void SetVerboseLevel(G4int i); + G4int GetVerboseLevel() const; + + // methods... + void Initialize(); +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void HepMCG4AsciiReader::SetFileName(G4String name) +{ + filename= name; +} + +inline G4String HepMCG4AsciiReader::GetFileName() const +{ + return filename; +} + +inline void HepMCG4AsciiReader::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int HepMCG4AsciiReader::GetVerboseLevel() const +{ + return verbose; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.hh new file mode 100644 index 0000000000..3cbc08bf44 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReaderMessenger.hh +// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// +// ==================================================================== +#ifndef HEPMC_G4_ASCII_READER_MESSENGER_H +#define HEPMC_G4_ASCII_READER_MESSENGER_H + +#include "G4UImessenger.hh" + +class HepMCG4AsciiReader; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class HepMCG4AsciiReaderMessenger : public G4UImessenger { +private: + HepMCG4AsciiReader* gen; + + G4UIdirectory* dir; + G4UIcmdWithAnInteger* verbose; + G4UIcmdWithAString* open; + +public: + HepMCG4AsciiReaderMessenger(HepMCG4AsciiReader* agen); + ~HepMCG4AsciiReaderMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.hh new file mode 100644 index 0000000000..97fbf18825 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4Interface.hh +// $Id: HepMCG4Interface.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// +// A base class for primary generation via HepMC object. +// This class is derived from G4VPrimaryGenerator. +// +// ==================================================================== +#ifndef HEPMC_G4_INTERFACE_H +#define HEPMC_G4_INTERFACE_H + +#include "G4VPrimaryGenerator.hh" +#include "HepMC/GenEvent.h" + +class HepMCG4Interface : 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: + HepMCG4Interface(); + virtual ~HepMCG4Interface(); + + // 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* HepMCG4Interface::GetHepMCGenEvent() const +{ + return hepmcEvent; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh new file mode 100644 index 0000000000..819046a86a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4PythiaInterface.hh +// $Id: HepMCG4PythiaInterface.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// +// A generic interface class with Pythia event generator via HepMC. +// +// ==================================================================== +#ifndef HEPMC_G4_PYTHIA_INTERFACE_H +#define HEPMC_G4_PYTHIA_INTERFACE_H + +#include "HepMCG4Interface.hh" +#include "HepMC/IO_HEPEVT.h" + +class HepMCG4PythiaMessenger; + +class HepMCG4PythiaInterface : public HepMCG4Interface { +protected: + G4int verbose; + G4int mpylist; + HepMC::IO_HEPEVT hepevtio; + + HepMCG4PythiaMessenger* messenger; + + // In default, this is automatic conversion, Pythia->HEPEVT->HepMC, + // by HepMC utilities. + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + HepMCG4PythiaInterface(); + ~HepMCG4PythiaInterface(); + + // 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); + + // random numbers operations + void SetRandomSeed(G4int iseed); + void CallPygive(G4String par); + void CallPyrget(G4int lun, G4int move); + void CallPyrset(G4int lun, G4int move); + void PrintRandomStatus(G4std::ostream& ostr=G4std::cout) 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 HepMCG4PythiaInterface::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int HepMCG4PythiaInterface::GetVerboseLevel() const +{ + return verbose; +} + +inline void HepMCG4PythiaInterface::SetPylist(G4int i) +{ + mpylist= i; +} + +inline G4int HepMCG4PythiaInterface::GetPylist() const +{ + return mpylist; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.hh new file mode 100644 index 0000000000..98a071a6de --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.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: HepMCG4PythiaMessenger.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// +// ==================================================================== +#ifndef HEPMC_G4_PYTHIA_MESSENGER_H +#define HEPMC_G4_PYTHIA_MESSENGER_H + +#include "G4UImessenger.hh" + +class HepMCG4PythiaInterface; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class HepMCG4PythiaMessenger : public G4UImessenger { +private: + HepMCG4PythiaInterface* 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: + HepMCG4PythiaMessenger(HepMCG4PythiaInterface* agen); + ~HepMCG4PythiaMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/pyh4mu.mac b/examples/extended/eventgenerator/HepMC/HepMCEx01/pyh4mu.mac new file mode 100644 index 0000000000..d4b3e63e60 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/pyset.mac b/examples/extended/eventgenerator/HepMC/HepMCEx01/pyset.mac new file mode 100644 index 0000000000..c4177f91fa --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04CalorimeterHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterHit.cc new file mode 100644 index 0000000000..4b43319609 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.cc new file mode 100644 index 0000000000..c054aaa3eb --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.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. * +// ******************************************************************** +// + +#include "ExN04CalorimeterParametrisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Tubs.hh" + +ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation() +{ + +#include "ExN04DetectorParameterDef.icc" + +} + +ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation() +{;} + +void ExN04CalorimeterParametrisation::ComputeTransformation +(const G4int copyNo,G4VPhysicalVolume *physVol) const +{ + G4ThreeVector origin; + physVol->SetTranslation(origin); +} + +void ExN04CalorimeterParametrisation::ComputeDimensions +(G4Tubs & calorimeterLayer, const G4int copyNo, + const G4VPhysicalVolume * physVol) const +{ + 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/src/ExN04CalorimeterROGeometry.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterROGeometry.cc new file mode 100644 index 0000000000..5710bc97a9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04CalorimeterSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterSD.cc new file mode 100644 index 0000000000..c2df7f35ce --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorConstruction.cc new file mode 100644 index 0000000000..7ed0cc02dd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04DetectorParameterDef.icc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorParameterDef.icc new file mode 100644 index 0000000000..0b2dc61eb6 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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 = 800.*cm; + expHall_y = 800.*cm; + expHall_z = 800.*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 = 2.*muBox_radius; + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc new file mode 100644 index 0000000000..24c4ce3d75 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:43:59 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/src/ExN04EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EventAction.cc new file mode 100644 index 0000000000..b04da6d39e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EventAction.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 "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 "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; + + 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/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04Field.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04Field.cc new file mode 100644 index 0000000000..fa8abd7c8c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04Field.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. * +// ******************************************************************** +// + +#include "ExN04Field.hh" + +ExN04Field::ExN04Field() +{ + Bz = 3.0*tesla; + rmax_sq = sqr(50.*cm); + zmax = 100.*cm; +} + +ExN04Field::~ExN04Field() +{;} + +void ExN04Field::GetFieldValue(const double Point[3],double *Bfield) const +{ + 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/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc new file mode 100644 index 0000000000..b4ac73f71d --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc @@ -0,0 +1,428 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * 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" +#include "G4ios.hh" +#include "g4std/iomanip" + + +ExN04HadronPhysics::ExN04HadronPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +ExN04HadronPhysics::~ExN04HadronPhysics() +{ +} + +#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); + + // PionPlus + pManager = G4PionPlus::PionPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEPionPlusModel = new G4LEPionPlusInelastic(); + theHEPionPlusModel = new G4HEPionPlusInelastic(); + thePionPlusInelastic.RegisterMe(theLEPionPlusModel); + thePionPlusInelastic.RegisterMe(theHEPionPlusModel); + 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(); + theHEPionMinusModel = new G4HEPionMinusInelastic(); + thePionMinusInelastic.RegisterMe(theLEPionMinusModel); + thePionMinusInelastic.RegisterMe(theHEPionMinusModel); + 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(theHEKaonPlusModel); + 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(theHEProtonModel); + 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(theHENeutronModel); + 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/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc new file mode 100644 index 0000000000..5eeb8081cc --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:44:01 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/src/ExN04MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonHit.cc new file mode 100644 index 0000000000..ca82efb025 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc new file mode 100644 index 0000000000..e9feca3695 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:44:03 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.cc new file mode 100644 index 0000000000..b464103b89 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.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. * +// ******************************************************************** +// + +#include "ExN04MuonSD.hh" +#include "ExN04MuonHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ios.hh" + +ExN04MuonSD::ExN04MuonSD(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="muonCollection"); + positionResolution = 5*cm; +} + +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 ExN04MuonSD::clear() +{ +} + +void ExN04MuonSD::DrawAll() +{ +} + +void ExN04MuonSD::PrintAll() +{ +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc new file mode 100644 index 0000000000..5bb1ff4165 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:44:04 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/src/ExN04PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..07c2fc62e5 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorAction.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. * +// ******************************************************************** + +// ==================================================================== +// +// ExN04PrimaryGeneratorAction.cc +// $Id: ExN04PrimaryGeneratorAction.cc,v 1.2 2002/05/28 13:58:12 murakami Exp $ +// +// ==================================================================== +#include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "HepMCG4AsciiReader.hh" +#include "HepMCG4PythiaInterface.hh" + +////////////////////////////////////////////////////////// +ExN04PrimaryGeneratorAction::ExN04PrimaryGeneratorAction() +////////////////////////////////////////////////////////// +{ + // default generator is particle gun. + currentGenerator= particleGun= new G4ParticleGun(); + currentGeneratorName= "particleGun"; + hepmcAscii= new HepMCG4AsciiReader(); + pythiaGen= new HepMCG4PythiaInterface(); + + 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/src/ExN04PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..be7fe43633 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/04/29 20:44:06 asaim 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/src/ExN04StackingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04StackingAction.cc new file mode 100644 index 0000000000..cbe49ae54f --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04StackingActionMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04StackingActionMessenger.cc new file mode 100644 index 0000000000..64244bb9a6 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04SteppingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingAction.cc new file mode 100644 index 0000000000..83ce56ad7c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04TrackerHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerHit.cc new file mode 100644 index 0000000000..f6094b7618 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.cc new file mode 100644 index 0000000000..55b3ff1cc8 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.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 "ExN04TrackerParametrisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Tubs.hh" + +ExN04TrackerParametrisation::ExN04TrackerParametrisation() +{ + +#include "ExN04DetectorParameterDef.icc" + +} + +ExN04TrackerParametrisation::~ExN04TrackerParametrisation() +{;} + +void ExN04TrackerParametrisation::ComputeTransformation +(const G4int copyNo,G4VPhysicalVolume *physVol) const +{ + G4ThreeVector origin; + physVol->SetTranslation(origin); +} + +void ExN04TrackerParametrisation::ComputeDimensions +(G4Tubs & trackerLayer, const G4int copyNo, + const G4VPhysicalVolume * physVol) const +{ + 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/src/ExN04TrackerSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerSD.cc new file mode 100644 index 0000000000..0389809c88 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/ExN04TrackingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackingAction.cc new file mode 100644 index 0000000000..400d3b5601 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/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/src/HEPEvtcom.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HEPEvtcom.cc new file mode 100644 index 0000000000..6f1e586170 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HEPEvtcom.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: HEPEvtcom.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// ====================================================================== +// PARAMETER (NMXHEP=4000) +// COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), +// & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) +// ====================================================================== +///**********************************************************/ +///* D E S C R I P T I O N : */ +///*--------------------------------------------------------*/ +///* NEVHEP - event number (or some special meaning*/ +///* (see documentation for details) */ +///* NHEP - actual number of entries in current */ +///* event. */ +///* ISTHEP[IHEP] - status code for IHEP'th entry - see */ +///* documentation for details */ +///* IDHEP [IHEP] - IHEP'th particle identifier according*/ +///* to PDG. */ +///* JMOHEP[IHEP][0] - pointer to position of 1st mother */ +///* JMOHEP[IHEP][1] - pointer to position of 2nd mother */ +///* JDAHEP[IHEP][0] - pointer to position of 1st daughter */ +///* JDAHEP[IHEP][1] - pointer to position of 2nd daughter */ +///* PHEP [IHEP][0] - X momentum [Gev/c] */ +///* PHEP [IHEP][1] - Y momentum [Gev/c] */ +///* PHEP [IHEP][2] - Z momentum [Gev/c] */ +///* PHEP [IHEP][3] - Energy [Gev] */ +///* PHEP [IHEP][4] - Mass[Gev/c^2] */ +///* VHEP [IHEP][0] - X vertex [mm] */ +///* VHEP [IHEP][1] - Y vertex [mm] */ +///* VHEP [IHEP][2] - Z vertex [mm] */ +///* VHEP [IHEP][3] - production time [mm/c] */ +///*========================================================*/ +// +// This interface to HEPEVT common block treats the block as +// an array of bytes --- the precision and number of entries +// is determined "on the fly" by the wrapper and used to decode +// each entry. +// +// HEPEVT_EntriesAllocation is the maximum size of the HEPEVT common block +// that can be interfaced. It is NOT the actual size of the HEPEVT common +// used in each individual application. The actual size can be changed on +// the fly using HepMC::HEPEVT_Wrapper::set_max_number_entries(). +// Thus HEPEVT_EntriesAllocation should typically be set +// to the maximum possible number of entries --- 10000 is a good choice +// (and is the number used by ATLAS versions of Pythia). + +#include + +enum {HEPEVT_EntriesAllocation=4000}; + +const unsigned int hepevt_bytes_allocation = +sizeof(long int) * ( 2 + 4 * HEPEVT_EntriesAllocation ) + + sizeof(double) * ( 9 * HEPEVT_EntriesAllocation ); + +extern "C" struct hepevt{ + char data[hepevt_bytes_allocation]; +}; + +hepevt hepevt_; + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc new file mode 100644 index 0000000000..b20e9d6d86 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReader.cc +// $Id: HepMCG4AsciiReader.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4AsciiReader.hh" +#include "HepMCG4AsciiReaderMessenger.hh" + +#include "g4std/iostream" +#include "g4std/fstream" + +//////////////////////////////////////// +HepMCG4AsciiReader::HepMCG4AsciiReader() + : filename("xxx.dat"), verbose(0) +//////////////////////////////////////// +{ + asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + + messenger= new HepMCG4AsciiReaderMessenger(this); +} + +///////////////////////////////////////// +HepMCG4AsciiReader::~HepMCG4AsciiReader() +///////////////////////////////////////// +{ + delete asciiInput; + delete messenger; +} + +///////////////////////////////////// +void HepMCG4AsciiReader::Initialize() +///////////////////////////////////// +{ + delete asciiInput; + + asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + asciiInput-> print(); +} + +///////////////////////////////////////////////////////// +HepMC::GenEvent* HepMCG4AsciiReader::GenerateHepMCEvent() +///////////////////////////////////////////////////////// +{ + HepMC::GenEvent* evt= asciiInput-> read_next_event(); + if(!evt) return 0; // no more event + + if(verbose>0) evt-> print(); + + return evt; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.cc new file mode 100644 index 0000000000..e42a886f4b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReaderMessenger.cc +// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4AsciiReaderMessenger.hh" +#include "HepMCG4AsciiReader.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////// +HepMCG4AsciiReaderMessenger::HepMCG4AsciiReaderMessenger + (HepMCG4AsciiReader* 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); +} + +/////////////////////////////////////////////////////////// +HepMCG4AsciiReaderMessenger::~HepMCG4AsciiReaderMessenger() +/////////////////////////////////////////////////////////// +{ + delete verbose; + delete open; + + delete dir; +} + +/////////////////////////////////////////////////////////////////// +void HepMCG4AsciiReaderMessenger::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 HepMCG4AsciiReaderMessenger::GetCurrentValue(G4UIcommand* command) +/////////////////////////////////////////////////////////////////////////// +{ + G4String cv; + + if (command == verbose) { + cv= verbose-> ConvertToString(gen-> GetVerboseLevel()); + } else if (command == open) { + cv= gen-> GetFileName(); + } + return cv; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.cc new file mode 100644 index 0000000000..58cbc829ee --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4Interface.cc +// $Id: HepMCG4Interface.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4Interface.hh" + +#include "G4RunManager.hh" +#include "G4LorentzVector.hh" +#include "G4Event.hh" +#include "G4PrimaryParticle.hh" +#include "G4PrimaryVertex.hh" +#include "G4TransportationManager.hh" + +//////////////////////////////////// +HepMCG4Interface::HepMCG4Interface() + : hepmcEvent(0) +//////////////////////////////////// +{ +} + +///////////////////////////////////// +HepMCG4Interface::~HepMCG4Interface() +///////////////////////////////////// +{ + delete hepmcEvent; +} + +///////////////////////////////////////////////////////// +G4bool HepMCG4Interface::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 HepMCG4Interface::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* HepMCG4Interface::GenerateHepMCEvent() +/////////////////////////////////////////////////////// +{ + HepMC::GenEvent* aevent= new HepMC::GenEvent(); + return aevent; +} + +////////////////////////////////////////////////////////////// +void HepMCG4Interface::GeneratePrimaryVertex(G4Event* anEvent) +////////////////////////////////////////////////////////////// +{ + // delete previous event object + delete hepmcEvent; + + // generate next event + hepmcEvent= GenerateHepMCEvent(); + if(! hepmcEvent) { + G4cout << "HepMCInterface: no generated particles. run terminated..." + << G4endl; + G4RunManager::GetRunManager()-> AbortRun(); + return; + } + HepMC2G4(hepmcEvent, anEvent); +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc new file mode 100644 index 0000000000..42391232f9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc @@ -0,0 +1,161 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4PythiaInterface.cc +// $Id: HepMCG4PythiaInterface.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4PythiaInterface.hh" +#include "HepMCG4PythiaMessenger.hh" + +#include "HepMC/GenEvent.h" +#include "HepMC/PythiaWrapper6_152.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); } + +//////////////////////////////////////////////// +HepMCG4PythiaInterface::HepMCG4PythiaInterface() + : verbose(0), mpylist(0) +//////////////////////////////////////////////// +{ +#ifdef NEED_INITPYDATA + initpydata(); + // Some platforms may require the initialization of pythia PYDATA block + // data as external - if you get pythia initialization errors try + // commenting in/out the below call to initpydata(). +#endif + + messenger= new HepMCG4PythiaMessenger(this); +} + +///////////////////////////////////////////////// +HepMCG4PythiaInterface::~HepMCG4PythiaInterface() +///////////////////////////////////////////////// +{ + delete messenger; +} + +///////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPygive(G4String par) +///////////////////////////////////////////////////// +{ + call_pygive(par); +} + +////////////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPyinit(G4String frame, G4String beam, + G4String target, G4double win) +////////////////////////////////////////////////////////////////////// +{ + call_pyinit(frame.c_str(), beam.c_str(), target.c_str(), win); +} + +//////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPystat(G4int istat) +//////////////////////////////////////////////////// +{ + call_pystat(istat); +} + +/////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::SetRandomSeed(G4int iseed) +/////////////////////////////////////////////////////// +{ + pydatr.mrpy[1-1]= iseed; +} + +////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPyrget(G4int lun, G4int move) +////////////////////////////////////////////////////////////// +{ + call_pyrget(lun, move); +} + +////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPyrset(G4int lun, G4int move) +////////////////////////////////////////////////////////////// +{ + call_pyrset(lun, move); +} + +////////////////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::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 HepMCG4PythiaInterface::SetUserParameters() +//////////////////////////////////////////////// +{ + G4cout << "set user parameters of PYTHIA common." << G4endl + << "nothing to be done in default." + << G4endl; +} + +///////////////////////////////////////////////////////////// +HepMC::GenEvent* HepMCG4PythiaInterface::GenerateHepMCEvent() +///////////////////////////////////////////////////////////// +{ + static G4int nevent= 0; // event counter + + call_pyevnt(); // generate one event with Pythia + if(mpylist >=1 && mpylist<= 3) call_pylist(mpylist); + + call_pyhepc(1); + + HepMC::GenEvent* evt= hepevtio.read_next_event(); + evt-> set_event_number(nevent++); + if(verbose>0) evt-> print(); + + return evt; +} + +////////////////////////////////////////// +void HepMCG4PythiaInterface::Print() const +////////////////////////////////////////// +{ + G4cout << "PythiaInterface::Print()..." << G4endl; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc new file mode 100644 index 0000000000..84177b189b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4PythiaMessenger.cc +// $Id: HepMCG4PythiaMessenger.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4PythiaMessenger.hh" +#include "HepMCG4PythiaInterface.hh" + +#include "g4std/fstream" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////////////////////////// +HepMCG4PythiaMessenger::HepMCG4PythiaMessenger(HepMCG4PythiaInterface* 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("std::cout"); +} + +///////////////////////////////////////////////// +HepMCG4PythiaMessenger::~HepMCG4PythiaMessenger() +///////////////////////////////////////////////// +{ + 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 HepMCG4PythiaMessenger::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 == "std::cout") { + 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 HepMCG4PythiaMessenger::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/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx02/GNUmakefile new file mode 100644 index 0000000000..fed8b6056b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/GNUmakefile @@ -0,0 +1,75 @@ +# $Id: GNUmakefile,v 1.2 2002/05/28 14:19:07 murakami Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- +name := hepmcEx02 +G4TARGET := $(name) +G4EXLIB := true + +#ifndef G4WORKDIR +# G4WORKDIR := . +#endif + +.PHONY: all +all : lib bin + +include $(G4INSTALL)/config/binmake.gmk + +# ----------------------------------------------------------------- +# HepMC and PYTHIA + +# if you donnot use Pythia library, comment out. +USE_PYTHIA := 1 + +# HepMC +HEPMC_DIR := /opt/heplib/HepMC/1.21 +INCFLAGS += -I$(HEPMC_DIR) + +# check gcc +USE_GCC := 0 +ifeq ($(G4SYSTEM),Linux-g++) + USE_GCC := 1 +endif +ifeq ($(G4SYSTEM),Linux-egcs) + USE_GCC := 1 +endif + +ifeq ($(USE_GCC),1) + LDLIBS1 += -Wl,-rpath $(HEPMC_DIR) +endif + +ifdef USE_PYTHIA + LDLIBS1 += -L$(HEPMC_DIR) -lHepMC +else + LDLIBS1 += -L$(HEPMC_DIR) -lHepMC $(G4TMPDIR)/HEPEvtcom.o +endif + +ifdef USE_PYTHIA + CERNLIB_DIR := /cern/pro/lib + LDLIBS1 += -L$(CERNLIB_DIR) -lpythia6 + + # if you get pythia initialization errors, try the next flag. + #NEED_INITPYDATA := 1 + ifdef NEED_INITPYDATA + CXXFLAGS += -DNEED_INITPYDATA + LDLIBS1 += $(HepMC_DIR)/src/initpydata.o + #LDLIBS1 += external/initpydata.o + endif + + LDLIBS1 += $(FCLIBS) +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/History b/examples/extended/eventgenerator/HepMC/HepMCEx02/History new file mode 100644 index 0000000000..7b27006707 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/History @@ -0,0 +1,23 @@ +$Id: History,v 1.2 2002/05/28 14:19:07 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 * + ---------------------------------------------------------- + +May. 28, 2002 K.Murakami +- rename classes and filenames. + +April 15, 02 K.Murakami + +- Created. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/README b/examples/extended/eventgenerator/HepMC/HepMCEx02/README new file mode 100644 index 0000000000..374e7f90f8 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/README @@ -0,0 +1,42 @@ +$Id: README,v 1.1 2002/05/28 14:20:36 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 HepMCG4Interface 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/data/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx02/data/GNUmakefile new file mode 100644 index 0000000000..9c46c20e00 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/data/GNUmakefile @@ -0,0 +1,26 @@ +# // CLHEP +CLHEPD := /usr/local/CLHEP +CLHEPINC := -I$(CLHEPD)/include +CLHEPLIB := -L$(CLHEPD)/lib -lCLHEP + +# // HepMC +HEPMCD := /opt/heplib/HepMC/1.21 +HEPMCINC := -I$(HEPMCD) +HEPMCLIB := -L$(HEPMCD) -lHepMC +#HEPMCLIB := $(HEPMCD)/libHepMC.so + +# // CERN libraries +CLIBD := /cern/pro/lib +CLIB := -L$(CLIBD) -lpythia6 + +CXXFLAGS := $(CLHEPINC) $(HEPMCINC) +LOPT := -Wl,-rpath $(HEPMCD) $(HEPMCLIB) $(CLHEP) $(CLIB) -lg2c + +%.o: %.cxx + $(CXX) -c -o $@ $(CXXFLAGS) $*.cxx + +example_MyPythia : example_MyPythia.o + $(CXX) -o $@ $< $(LOPT) + +example_MyPythia.o : example_MyPythia.cxx + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.cxx b/examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.cxx new file mode 100644 index 0000000000..b92303cafd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.cxx @@ -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. * +// ******************************************************************** +// +// +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, December 1999 +// November 2000, updated to use Pythia 6.1 +// example of generating events with Pythia +// using HepMC/PythiaWrapper.h +// Events are read into the HepMC event record from the FORTRAN HEPEVT +// common block using the IO_HEPEVT strategy and then output to file in +// ascii format using the IO_Ascii strategy. +////////////////////////////////////////////////////////////////////////// +// To Compile: go to the HepMC directory and type: +// gmake examples/example_MyPythia.exe +// +// In this example the precision and number of entries for the HEPEVT +// fortran common block are explicitly defined to correspond to those +// used in the Pythia version of the HEPEVT common block. +// +// If you get funny output from HEPEVT in your own code, probably you have +// set these values incorrectly! +// + +#include +#include "HepMC/PythiaWrapper.h" +#include "HepMC/IO_HEPEVT.h" +#include "HepMC/IO_Ascii.h" +#include "HepMC/GenEvent.h" + +int main() { + // + //........................................HEPEVT + // Pythia 6.1 uses HEPEVT with 4000 entries and 8-byte floating point + // numbers. We need to explicitly pass this information to the + // HEPEVT_Wrapper. + // + HepMC::HEPEVT_Wrapper::set_max_number_entries(4000); + HepMC::HEPEVT_Wrapper::set_sizeof_real(8); + // + //........................................PYTHIA INITIALIZATIONS + // (Some platforms may require the initialization of pythia PYDATA block + // data as external - if you get pythia initialization errors try + // commenting in/out the below call to initpydata() ) + // initpydata(); + // + // Select W+gamma process (process number 20) + // (here we have to be careful of C/F77 differences: arrays in C + // start at 0, F77 at 1, so we need to subtract 1 from the process #) + 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. ); + + //........................................HepMC INITIALIZATIONS + // + // Instantiate an IO strategy for reading from HEPEVT. + HepMC::IO_HEPEVT hepevtio; + // + // Instantial an IO strategy to write the data to file - it uses the + // same ParticleDataTable + HepMC::IO_Ascii ascii_io("example_MyPythia.dat",std::ios::out); + // + //........................................EVENT LOOP + 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 = hepevtio.read_next_event(); + // 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 + ascii_io << evt; + // we also need to delete the created event from memory + delete evt; + } + //........................................TERMINATION + // write out some information from Pythia to the screen + call_pystat( 1 ); + + return 0; +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.dat b/examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.dat new file mode 100644 index 0000000000..f8ffcf1197 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/data/example_MyPythia.dat @@ -0,0 +1,5892 @@ + +HepMC::IO_Ascii-START_EVENT_LISTING +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 3 0 0 -1 0 +P 3 2 -7.7594698288360897e-01 -9.1232539665921930e-01 1.8833052220885656e+03 1.8833056029166935e+03 3 0 0 -3 0 +P 20 2101 7.7594698288360897e-01 9.1232539665921930e-01 4.4469502845870420e+03 4.4469504836059705e+03 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 3 0 0 -2 0 +P 4 -1 -1.0077355308447375e+00 -1.2716278982991639e-02 -4.1454166842423659e+00 4.2661659707370658e+00 3 0 0 -4 0 +P 13 2214 9.9965263761245238e-01 2.7342497748314848e-02 -4.0826017593891916e+03 4.0826020585869046e+03 2 0 0 -9 0 +P 26 1 8.0828932322852265e-03 -1.4626218765323211e-02 -2.4623230582064652e+03 2.4623230803764359e+03 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 3 0 0 -5 0 +P 21 21 1.4581184692651741e+00 -3.9123134860507047e-01 1.0923177669273832e+02 1.0924220892535446e+02 2 0 0 -16 0 +P 22 21 3.1078318510719791e+00 2.3161265926755781e-01 1.4647261850356662e+02 1.4650576860495917e+02 2 0 0 -16 0 +P 23 21 -1.0916504553308495e-01 -1.8718066652841989e+00 8.6094190154962845e+01 8.6114604775486654e+01 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 3 0 0 -5 0 +P 24 21 -5.3671673260814667e-01 -6.6758503288897897e+00 4.7470952833050397e+01 4.7941072217280407e+01 2 0 0 -16 0 +P 25 21 -7.1083651803421799e-01 -1.7119307722665538e+00 1.0816833663101894e+01 1.0974510741696802e+01 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 3 0 0 -6 0 +P 8 24 -9.6667421012420562e-01 1.0722995700918359e+01 1.2333197371451533e+03 1.2410038562029381e+03 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 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 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 0 0 0 0 +P 12 14 2.4655654232323258e+01 -3.6317182747008992e+01 1.0239517382666510e+03 1.0248921901095741e+03 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 1 0 0 0 0 +P 30 111 -2.4584199976963136e-02 -9.0850556101199478e-02 -3.4551154230660296e+02 3.4551158149169805e+02 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 2 0 0 -10 0 +P 15 -1 -2.3065048155050207e+00 -5.8203193328752807e+00 4.6213780965918581e+01 4.6635926416942638e+01 2 0 0 -10 0 +P 31 92 0 0 1.9674812102395055e+02 1.9730040006055842e+02 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 0 0 0 0 +P 33 211 1.8267397603378879e-01 -2.2451207083727245e-01 8.9833818072340854e+00 8.9891269838019312e+00 1 0 0 0 0 +P 34 -211 1.6527958883141400e+00 3.3636085038226837e+00 8.5511074879269898e+01 8.5593276623858827e+01 1 0 0 0 0 +P 35 221 1.5340695778001462e-01 1.0080214339909595e-01 1.6778513363366923e+01 1.6788445638414284e+01 2 0 0 -21 0 +P 36 211 -5.4270097089667468e-01 7.1269909168117845e-02 3.1032133671979825e+00 3.1542061966557080e+00 1 0 0 0 0 +P 37 221 -4.3895349893169139e-01 -1.0908000994225866e+00 1.6203900382989026e+01 1.6255725580713296e+01 2 0 0 -22 0 +P 38 -213 -1.1775778049994057e+00 -2.1994908478570685e+00 1.6736113732474852e+01 1.6955085170015739e+01 2 0 0 -23 0 +P 39 211 -8.3980164819194153e-02 -1.6679795495132113e+00 1.5269240867812080e+01 1.5360937631207282e+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 2 0 0 -12 0 +P 17 -2 3.9452709365158856e+00 1.3309715048590964e+00 4.3760023670797966e+02 4.3762004503311903e+02 2 0 0 -12 0 +P 40 92 0 0 4.7170060134112072e+02 4.7197366952926848e+02 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 2 0 0 -24 0 +P 42 211 -1.0793700584347439e+00 -1.7691740782741042e-01 8.9362513158609644e+00 9.0040217046253623e+00 1 0 0 0 0 +P 43 223 7.3128413379081270e-01 -2.4207212017445862e-01 2.9711160638588780e+01 2.9731384214780988e+01 2 0 0 -25 0 +P 44 -213 6.8313854697846552e-02 2.1615069868878325e-01 2.6710541480290658e+01 2.6723469313128675e+01 2 0 0 -26 0 +P 45 211 -7.6171122821958814e-02 3.3362556819896899e-01 9.9768132257362261e+00 9.9836561432089255e+00 1 0 0 0 0 +P 46 223 1.1759907015886510e+00 7.6699830168521430e-03 1.5941193545306197e+02 1.5941819661887365e+02 2 0 0 -27 0 +P 47 -213 4.1784646533132969e-01 2.7042442905701480e-01 5.6342534981914696e+01 5.6346454491891919e+01 2 0 0 -28 0 +P 48 111 1.4385917785683024e+00 3.3194541757471685e-01 1.5361171468655868e+02 1.5361886877141990e+02 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 2 0 0 -14 0 +P 19 -2 -1.5410660823344702e+00 -3.0415562160378746e+00 -3.1131552297791711e+02 3.1133419471028151e+02 2 0 0 -14 0 +P 49 92 0 0 -3.7456072109050922e+02 3.7467123784608367e+02 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 2 0 0 -30 0 +P 51 211 2.0243674382169874e-01 1.1974235089754615e-01 -2.6986180398301357e+01 2.6987566232256142e+01 1 0 0 0 0 +P 52 -211 -1.7675058607927574e+00 -2.9526250360211090e+00 -2.8642846177069208e+02 2.8644916698025321e+02 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 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 1 0 0 0 0 +P 55 113 -3.6038310812821978e-01 -1.6892929069557774e-01 8.6247137938804929e+02 8.6247157540874730e+02 2 0 0 -31 0 +P 56 -2214 1.0274054900145733e+00 9.2951858077602798e-02 4.5344312824574462e+02 4.5344608664771232e+02 2 0 0 -32 0 +P 57 223 -3.5950138267252507e-01 4.0383168579159467e-01 1.2478306984250651e+02 1.2478685771933476e+02 2 0 0 -33 0 +P 58 2212 1.6784465902779000e+00 -6.2450245543458038e-01 1.5667821954585344e+02 1.5669126337139798e+02 1 0 0 0 0 +P 59 -213 5.5576917486158994e-01 3.4454408402510756e-01 9.1366431045160198e+01 9.1370656398000975e+01 2 0 0 -34 0 +P 60 -311 6.8837804480312736e-02 -2.9839760512711585e-02 3.7650473956009833e+01 3.7653837700767077e+01 2 0 0 -35 0 +P 61 311 5.5852191137677354e-01 -2.3170010256673915e-01 5.8824232435728810e+01 5.8829445252735184e+01 2 0 0 -36 0 +P 62 211 3.2384754659479414e-01 -1.1095603539042695e+00 5.0326870381868780e+01 5.0340335354770062e+01 1 0 0 0 0 +P 63 113 -1.6488951177897816e-02 -7.8122143799785340e-02 4.9112488643673986e+00 4.9474711292126861e+00 2 0 0 -37 0 +P 64 -211 7.0648600777312476e-01 -6.4021847151240463e-01 6.5555221578401913e+01 6.5562302874050388e+01 1 0 0 0 0 +P 65 213 4.7207901564054866e-01 -4.3912457471518479e-01 1.4382616336991193e+01 1.4418576507834425e+01 2 0 0 -38 0 +P 66 -213 -3.0042801873910607e-01 -3.8199301959389176e-01 1.6229684769106441e+01 1.6256964556636262e+01 2 0 0 -39 0 +P 67 211 -4.3941675941743208e-01 -3.1906445983026024e+00 2.4837368567595707e+01 2.5045711353216259e+01 1 0 0 0 0 +P 68 -211 -1.3996633591260657e-01 -1.2032611277813125e-01 4.9245854481282014e-01 5.4411777389114624e-01 1 0 0 0 0 +P 69 -311 -2.6561371175678439e-01 -2.6535883073847484e+00 2.0655232762662497e+01 2.0832628193716424e+01 2 0 0 -40 0 +P 70 323 1.0866371896259655e-01 -8.8626238190570616e-01 4.6627917510728158e+00 4.8302466865539628e+00 2 0 0 -41 0 +P 71 113 -4.9783662946179669e-01 -2.2840858695582428e-01 1.7034444868848415e+00 1.9604937252009362e+00 2 0 0 -42 0 +P 72 -323 -2.9015742650522380e-01 -2.3021536904469947e-01 6.4282764365011924e-01 1.1577885131594590e+00 2 0 0 -43 0 +P 73 311 7.9013389939514289e-02 -3.2312546676672708e-02 -8.4688302464291099e-01 9.8598859161290120e-01 2 0 0 -44 0 +P 74 113 1.2774634435977392e-01 1.7876746229795942e-01 -7.0745137977013928e-01 1.0861776738766289e+00 2 0 0 -45 0 +P 75 -2112 2.3991231535880583e-01 -6.4340230480703609e-01 -2.3473851019465588e+00 2.6200253904556892e+00 1 0 0 0 0 +P 76 2112 1.4332258420217242e-01 -2.1997217583827630e-01 -2.2266533235780592e+00 2.4309886732740313e+00 1 0 0 0 0 +P 77 221 -1.5764236109767513e-01 9.2260932887338432e-01 -1.1183066194239037e+01 1.1235512008581036e+01 2 0 0 -46 0 +P 78 211 -3.9688019773273309e-01 -5.0114132735548866e-01 -1.1139586968129358e+00 1.2919134198703757e+00 1 0 0 0 0 +P 79 111 2.8720505725726897e-01 2.8206480950685814e-01 -1.0371931167428463e+00 1.1207303259460017e+00 2 0 0 -47 0 +P 80 223 4.0600347620418453e-01 -2.4511798802410625e-01 -3.5094643591439350e+01 3.5108232820041870e+01 2 0 0 -48 0 +P 81 -321 -6.1416080466482037e-01 2.7652838022953574e-01 -2.2846185259167453e+02 2.2846337866717087e+02 1 0 0 0 0 +P 82 323 1.2565639040248300e-01 -3.0746308740674749e-01 -1.4994406836076098e+03 1.4994409818689087e+03 2 0 0 -49 0 +P 83 -321 1.9429284964222532e-01 2.9316952731129947e-01 -1.6936871917454789e+02 1.6936980360698905e+02 1 0 0 0 0 +P 84 311 -9.3629085348251956e-02 -1.1090305621819395e-01 -5.0941280621429246e+02 5.0941306998980963e+02 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 2 0 0 -18 0 +P 28 21 1.3650212674856288e-01 5.9889764280123572e+00 -6.1244142694407962e+01 6.1536424058104799e+01 2 0 0 -18 0 +P 85 92 0 0 -7.5073273670269913e+01 7.6607301107349116e+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 1 0 0 0 0 +P 87 2212 1.8826721276030065e-01 -2.1411823793389910e+00 -4.4940750564267944e+00 5.0692373914317530e+00 1 0 0 0 0 +P 88 -213 2.0012868143999138e-01 -1.1118139792674885e-01 -1.6567370969599078e+00 1.8269381912397860e+00 2 0 0 -51 0 +P 89 -313 -6.2630872275736982e-01 1.3663451184419380e+00 -1.2866054962931736e+01 1.2986301018153689e+01 2 0 0 -52 0 +P 90 321 7.8884764052036593e-02 7.4459657794075773e-01 -1.0937413012935250e+01 1.0974119155786763e+01 1 0 0 0 0 +P 91 -211 4.2278301863584250e-02 3.9247341077632097e-01 -8.7403526103734830e+00 8.7503752131858565e+00 1 0 0 0 0 +P 92 211 6.4367355561099904e-02 3.6656271279001679e-01 -1.3767381548990618e+00 1.4329686357086739e+00 1 0 0 0 0 +P 93 -2212 4.1585942036274817e-02 5.6395536708324689e-01 -1.1971979631427098e+01 1.2021997418683901e+01 1 0 0 0 0 +P 94 2112 4.9188311626540610e-02 1.3014271868710594e+00 -1.5047619097566116e+01 1.5133068575244886e+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 1 0 0 0 0 +P 96 22 2.1135098588074424e-02 2.9217394006442684e-02 -7.3802480998431093e+01 7.3802489808083607e+01 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 0 0 0 0 +P 98 -211 -4.9893773724282060e-02 -5.3826599477990789e-02 4.3098583175285032e+00 4.3127421895514972e+00 1 0 0 0 0 +P 99 111 1.2717944250852329e-02 2.0789923927546888e-02 5.6102983279735579e+00 5.6119747768771902e+00 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 2 0 0 -54 0 +P 101 111 -1.9448733826450373e-01 -3.0772173043153522e-01 5.9693477937278034e+00 5.9819604370981914e+00 2 0 0 -55 0 +P 102 111 -2.6469435630176663e-01 -5.8497375613724767e-01 7.5508427208632973e+00 7.5792943466553382e+00 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 0 0 0 0 +P 104 111 -1.2368786453413552e+00 -1.4005317185689488e+00 1.2746545583623952e+01 1.2883477860959070e+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 1 0 0 0 0 +P 106 22 -2.6701434621632107e+00 -6.6149024683386048e-01 2.6198889178804361e+01 2.6342912323022706e+01 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 0 0 0 0 +P 108 211 3.9410357646856603e-01 9.7313149537317151e-02 1.4025732004537366e+01 1.4032299367033970e+01 1 0 0 0 0 +P 109 111 3.1959377834786096e-01 -3.7306221511642979e-01 1.2482378225204421e+01 1.2492769963341344e+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 0 0 0 0 +P 111 111 1.5239435838771678e-01 4.0414983069819693e-01 9.1658492565191594e+00 9.1770133115166939e+00 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 0 0 0 0 +P 113 211 5.9651172498042482e-01 -1.2288599138979327e-01 1.0093129545527971e+02 1.0093322946022674e+02 1 0 0 0 0 +P 114 111 1.0877872629489453e-01 6.2030942934870215e-02 9.2553300234852465e+00 9.2571612329700255e+00 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 0 0 0 0 +P 116 111 3.7716281534402596e-01 2.6387314224154818e-01 4.9755028559286941e+01 4.9757340838918765e+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 1 0 0 0 0 +P 118 22 9.6707579898488760e-01 2.8602364470440500e-01 1.0302333278063017e+02 1.0302826865649438e+02 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 0 0 0 0 +P 120 211 6.4923444799854679e-01 7.0777405005783134e-01 -1.7423230407349280e+01 1.7450240316020970e+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 0 0 0 0 +P 122 -211 -2.5305067720695146e-01 -2.1157383395427928e-01 7.0655409695023229e+02 7.0655418772736425e+02 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 1 0 0 0 0 +P 124 111 5.2795567011208044e-01 -5.5755347150152117e-02 1.2395602297064545e+02 1.2395723333532385e+02 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 0 0 0 0 +P 126 -211 -2.2097435527052245e-01 7.1076741178384292e-02 8.2130801390093922e+01 8.2131248001797573e+01 1 0 0 0 0 +P 127 111 -1.6637823561728583e-02 -1.7998512288051847e-02 1.0856708622226705e+01 1.0857575349586533e+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 0 0 0 0 +P 129 111 2.4485646346106241e-01 -1.1784239944012394e-02 5.7016077712252383e+01 5.7016764471916609e+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 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 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 0 0 0 0 +P 133 -211 -1.2477893517836794e-01 -2.6770715933836557e-02 5.3652236263234054e-01 5.6887826852539047e-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 0 0 0 0 +P 135 111 2.9051823129776339e-01 9.4253205862916190e-02 2.5554493631607658e+00 2.5771739478759641e+00 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 0 0 0 0 +P 137 111 1.9335000230150959e-01 -1.6887660807106833e-01 9.4847169615688305e+00 9.4891505928410194e+00 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 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 2 0 0 -68 0 +P 140 211 1.5423113089690546e-01 -6.9220110873578600e-01 2.8081145831536185e+00 2.8996408249458776e+00 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 0 0 0 0 +P 142 -211 -5.7019430719192066e-01 -9.5127740091841564e-02 1.6405461753823727e+00 1.7450049780303740e+00 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 2 0 0 -69 0 +P 144 -211 -1.8768353488580339e-01 1.4528908800357815e-01 3.8970686724282899e-01 4.7716376186416543e-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 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 0 0 0 0 +P 147 211 2.0079705428855016e-01 -1.2661225229997761e-01 2.5627217928987662e-02 2.7656221477673332e-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 0 0 0 0 +P 149 211 -6.2902915281313837e-02 5.6601656520515309e-01 -6.6535918753555769e+00 6.6793784259866031e+00 1 0 0 0 0 +P 150 111 4.2025934335575603e-02 1.4415388830729814e-01 -2.0478406253098065e+00 2.0577699943725856e+00 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 1 0 0 0 0 +P 152 22 1.5655151467895148e-01 1.1809668622962230e-01 -3.3786083906270786e-01 3.9064709216740479e-01 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 0 0 0 0 +P 154 211 4.7387253393100676e-01 -4.6099131523123638e-01 -2.8882389448288819e+01 2.8890291936888733e+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 1 0 0 0 0 +P 156 111 -1.4463108126498905e-01 -1.2879962101808320e-01 -8.4210278445963058e+02 8.4210281754768846e+02 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 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 0 0 0 0 +P 159 111 3.3310773039596953e-01 1.8320108049326658e-01 -7.0540906308433615e-01 8.1261611024208424e-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 2 0 0 -74 0 +P 161 111 -5.9812769882346839e-01 7.9865106895285420e-01 -7.1598821292469550e+00 7.2303341540449777e+00 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 1 0 0 0 0 +P 163 22 -4.5378527050218442e-02 -3.2638722195481272e-02 1.8337849139108104e+00 1.8346366417878721e+00 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 1 0 0 0 0 +P 165 22 -3.6512804490948913e-03 -1.0306116020996116e-01 6.2672271296364868e-01 6.3515060697228121e-01 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 1 0 0 0 0 +P 167 22 1.8239624371713066e-02 -5.4829489168192323e-02 8.8506442375569738e-01 8.8694869692540323e-01 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 1 0 0 0 0 +P 169 22 -3.0367330483346080e-02 -2.2072132364066455e-01 2.6522838638479649e+00 2.6616254003707325e+00 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 1 0 0 0 0 +P 171 22 -1.2247062310341752e+00 -1.3834980625027131e+00 1.2673852642980682e+01 1.2807830146331236e+01 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 1 0 0 0 0 +P 173 22 -6.4581054112161709e-03 -2.6583639104915669e-02 3.5036621273405388e-01 3.5143261092159195e-01 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 1 0 0 0 0 +P 175 22 1.7384684072970241e-01 3.8924427427810981e-01 8.6802877220690533e+00 8.6907496090379173e+00 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 1 0 0 0 0 +P 177 22 1.2513425613974663e-01 2.1669109411810668e-02 5.0155684975252131e+00 5.0171760469142059e+00 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 1 0 0 0 0 +P 179 22 2.6965070881795838e-01 2.3498879184710436e-01 4.1850296348452900e+01 4.1851824759386410e+01 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 1 0 0 0 0 +P 181 22 3.1844342457361852e-01 -9.8647565394610406e-02 7.8200450686792436e+01 7.8201161277657945e+01 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 1 0 0 0 0 +P 183 22 4.9445449803996989e-02 2.7664851056761277e-02 4.7844414683534406e+00 4.7847769394811230e+00 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 1 0 0 0 0 +P 185 22 7.6199375611534031e-02 -6.5424943890333209e-02 2.4383612858074731e+01 2.4383819692176896e+01 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 0 0 0 0 +P 187 -211 -8.9447096592936592e-02 3.4440698213342676e-02 5.4967591956659874e+00 5.4993661802812257e+00 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 1 0 0 0 0 +P 189 22 2.7784862546685535e-01 1.2046212744598270e-01 2.2388090022228502e+00 2.2591982496577647e+00 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 1 0 0 0 0 +P 191 22 1.9298941527035879e-01 -1.6930323073064041e-01 9.4850343963356085e+00 9.4885081018046158e+00 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 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 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 0 0 0 0 +P 195 -211 4.1229769453200796e-02 -2.0403909308820700e-01 -2.7736664210260031e-01 3.7382333320526429e-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 1 0 0 0 0 +P 197 22 1.9296130022377168e-02 2.4202879014850413e-03 -9.9488140703357786e-01 9.9507146099588162e-01 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 1 0 0 0 0 +P 199 22 1.7728165559323081e-02 1.3530446563782706e-03 -1.6871907806854932e+02 1.6871907900536871e+02 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 1 0 0 0 0 +P 201 22 1.9948703294844422e-01 1.4480375812720442e-01 -5.5781491967292174e-01 6.0985300629909467e-01 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 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 1 0 0 0 0 +P 204 22 -1.3697440480756579e-01 1.3666152734273918e-01 -1.0855759277723773e+00 1.1026846582713004e+00 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 0 0 0 0 +P 206 211 1.5590564395647613e-02 -2.7309508262078958e-01 1.5568780173782018e+00 1.5868752111446289e+00 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 0 0 0 0 +P 208 211 1.3822297001093711e-01 -4.8443808331334694e-02 7.5691258063481481e-02 2.1601236874660687e-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 0 0 0 0 +P 210 -211 -8.2368117484194217e-02 7.8733984280142638e-02 -6.6676006708054880e-01 6.9067526306635141e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 21 2.2381466690269431e-03 -3.4720102421292970e-01 8.5760509831394440e+00 8.5830766060849815e+00 3 0 0 -3 0 +P 13 1 -1.5953315142106061e-01 2.5534284672707136e-01 4.5110225338059212e+02 4.5110247456187125e+02 2 0 0 -9 0 +P 41 2203 1.5729500475203367e-01 9.1858177485858339e-02 4.1239913742420931e+03 4.1239914503976361e+03 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 3 0 0 -2 0 +P 4 1 1.8117451391948236e-01 -9.2107013792072212e-01 -1.9146656945590603e+03 1.9146659246760862e+03 3 0 0 -4 0 +P 39 2203 -1.8117451391948236e-01 9.2107013792072212e-01 -4.3349283892041103e+03 4.3349285594657858e+03 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 3 0 0 -5 0 +P 11 -4 1.9522097387122794e+00 -1.0579566003536176e+00 -8.1797583597675185e+00 8.6074875461043483e+00 2 0 0 -9 0 +P 12 21 1.8528631058109368e+00 6.4833945342773376e+00 -3.6105831959994241e+01 3.6730077700698025e+01 2 0 0 -9 0 +P 14 4 1.0685515977985798e+01 -5.1823216653895150e+00 -2.7066366488563993e+01 2.9595183805014884e+01 2 0 0 -11 0 +P 16 21 3.3207848203048465e-02 9.6085117788368979e-02 -6.6003952661133902e-02 1.2120904590654386e-01 2 0 0 -11 0 +P 17 21 -3.7579969777487718e-02 -1.6462158612486150e-01 -9.7318874051882720e-01 9.8772913565377995e-01 2 0 0 -11 0 +P 15 21 3.5171262487128507e-01 -6.4498578844444887e-01 -1.1127260710033722e+00 1.3333670713197316e+00 2 0 0 -11 0 +P 40 2 -5.7580659856764782e-01 -2.1687633978359599e+00 2.8191957870207176e+00 3.6182665463315975e+00 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 3 0 0 -5 0 +P 28 21 8.2987543073312353e-01 1.2838272062790441e+00 -3.8410647385758452e+01 3.8441055372078296e+01 2 0 0 -11 0 +P 29 21 1.4485320516326545e+00 3.4111844708869525e+00 -3.4836760966940879e+01 3.5033331832225194e+01 2 0 0 -11 0 +P 30 21 4.7483608911375708e+00 5.0805058534361418e+00 -7.0730773803904057e+01 7.1071800552528032e+01 2 0 0 -11 0 +P 31 21 7.0471823787681096e+00 5.3004641843654632e+00 -7.0878720555638282e+01 7.1425140725473000e+01 2 0 0 -11 0 +P 32 21 6.4330986433301513e-05 -2.8659752464543387e-01 -2.0138946295725479e+00 2.0341852728531187e+00 2 0 0 -11 0 +P 33 21 -2.0101138190485397e+00 1.8374935910906517e-01 -1.0007919765693144e+02 1.0009955107315744e+02 2 0 0 -11 0 +P 34 21 -1.9229525710899356e+00 -1.5157785543803595e+00 -2.2906932968426068e+02 2.2908241559144841e+02 2 0 0 -11 0 +P 35 21 -3.1664534528418580e+00 -1.7416366637989906e+00 -8.3806850645725774e+01 8.3884730081777633e+01 2 0 0 -11 0 +P 36 21 -3.7168946513508216e-01 -3.5284021138698476e+00 -1.0878664867278101e+02 1.0884448862478403e+02 2 0 0 -11 0 +P 37 21 -3.1241121155591017e-01 2.4591674095968902e-01 -7.8556145968468542e+01 7.8557152094687893e+01 2 0 0 -11 0 +P 38 21 2.1757864903890276e+00 -6.9754834757800643e-01 -1.5468366370543001e+02 1.5470053793663271e+02 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 3 0 0 -6 0 +P 8 -24 -9.2830779079555814e+00 1.7115243107301954e+00 -7.5936588839022193e+02 7.6374413200173183e+02 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 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 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 2 0 0 -15 0 +P 43 21 -1.2696872981433902e+00 -7.3488203514654904e-02 -1.1342868074612710e+01 1.1413945965755696e+01 2 0 0 -15 0 +P 44 21 -4.1552470502532822e-02 -2.4740042534493506e-01 -1.9652301256829328e+00 1.9811771816668682e+00 2 0 0 -15 0 +P 45 21 9.2875684016986071e-01 -5.2482893316735224e-01 -8.2669188038171093e+00 8.3354652651280841e+00 2 0 0 -15 0 +P 46 21 2.5933060912540751e+00 -1.5432000571134972e+00 -4.0105536618336508e+01 4.0218910606130805e+01 2 0 0 -15 0 +P 47 3 2.4911779059795872e+01 -1.9404993802709878e+01 -3.4832101052966868e+02 3.4974980614264371e+02 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 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 0 0 -21 0 +P 54 -323 5.0264419845508967e-01 1.5096096593072483e+00 -6.4075559093590417e+00 6.6727104662027399e+00 2 0 0 -22 0 +P 55 313 6.4824466837653216e-01 1.7028313815609744e+00 -1.2490128522047499e+01 1.2658108385343498e+01 2 0 0 -23 0 +P 56 113 3.1373653839431187e-01 1.0591234964860790e+00 -3.8183528211076077e+00 4.0448247418494256e+00 2 0 0 -24 0 +P 57 223 8.2692544173461439e-03 4.6939097115965078e-01 -5.5469163366739194e+00 5.6207627549321177e+00 2 0 0 -25 0 +P 58 213 1.9044107216389983e-01 8.1937027750395064e-01 -3.6346431429697050e+00 3.7966133083889493e+00 2 0 0 -26 0 +P 59 223 4.7623181452657998e-01 3.2991099537503743e-01 -1.3035235691380478e+00 1.6193069146444774e+00 2 0 0 -27 0 +P 60 -323 -1.0115943353617618e-01 5.6476717758048370e-03 1.7300715275273690e-01 8.2205819328193652e-01 2 0 0 -28 0 +P 61 313 -7.7118065121252105e-02 3.7088297201745679e-01 6.5831368662425160e-01 1.1370141416373667e+00 2 0 0 -29 0 +P 62 213 -3.5806889091875166e-01 -1.8533975814985065e-01 2.0214743365951066e-01 7.5874614723662881e-01 2 0 0 -30 0 +P 63 221 5.3742504319834894e-01 2.2371832414580742e-01 7.6764387006558730e+00 7.7179199395330977e+00 2 0 0 -31 0 +P 64 -213 -3.5723363435424654e-01 -2.4687075875660527e-01 4.3946274554500251e+00 4.4381896913330143e+00 2 0 0 -32 0 +P 65 211 -9.6962110337190308e-03 -1.9969339915386206e-01 9.7285408505103610e-01 1.0029438298701092e+00 1 0 0 0 0 +P 66 -213 3.6007407932397151e-01 -1.9108983779111039e-02 2.4483370677350226e+01 2.4497188617868417e+01 2 0 0 -33 0 +P 67 113 -3.7252120952480011e-01 1.1767633929689882e-02 3.8343277541438461e+01 3.8352383249490323e+01 2 0 0 -34 0 +P 68 113 -9.0606939026123462e-02 1.6342699333927246e-01 1.6719221309737839e+02 1.6719396525633584e+02 2 0 0 -35 0 +P 69 221 1.7346551830672804e-01 4.0747075115002573e-01 2.0582006607406680e+02 2.0582127057943939e+02 2 0 0 -36 0 +V -11 0 0 0 0 0 10 1 0 +P 23 21 -1.7556414536864717e+00 -3.2948210135311675e+00 9.6577188877003675e+00 1.0354209604743055e+01 2 0 0 -11 0 +P 24 21 -4.3740574207816687e+00 -6.7194450447463385e+00 8.7596980484749754e-01 8.0653978902882315e+00 2 0 0 -11 0 +P 25 21 -2.3472186202550427e+00 -1.7652302001002413e+00 -4.8822773731482902e+00 5.6975525674603205e+00 2 0 0 -11 0 +P 26 21 1.7556414536864717e+00 3.2948210135311675e+00 -4.6484359802172142e+00 5.9620532945694862e+00 2 0 0 -11 0 +P 27 21 2.3472186202550427e+00 1.7652302001002413e+00 -7.2800433838180606e+02 7.2801026241093734e+02 2 0 0 -11 0 +P 19 21 -3.9110823174159708e+00 3.1313981445182435e+00 7.8933491919030098e+02 7.8935081989720652e+02 2 0 0 -11 0 +P 20 21 3.8916892480043179e+00 1.8950634673498339e+00 1.4168700767391088e+03 1.4168766886604622e+03 2 0 0 -11 0 +P 21 21 4.3740574207816687e+00 6.7194450447463385e+00 8.3124634883261848e+01 8.3510408001070459e+01 2 0 0 -11 0 +P 22 21 3.9110823174159708e+00 -3.1313981445182435e+00 3.6591766345710994e+01 3.6933177273722393e+01 2 0 0 -11 0 +P 18 21 -3.8916892480043179e+00 -1.8950634673498339e+00 4.3405633505207952e+01 4.3620929961851424e+01 2 0 0 -11 0 +P 70 92 1.9317863021338749e+01 2.7609108265139839e+00 -3.6936736405113015e+03 8.4685219372436368e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 90 0 +P 157 211 7.1285808765427905e-01 -3.2842857210290849e-01 -1.3495391606091425e+02 1.3495627059140784e+02 1 0 0 0 0 +P 158 113 -8.5570937057012242e-01 4.5138982048336918e-01 -3.8575888425787775e+02 3.8576089945786532e+02 2 0 0 -101 0 +P 159 -211 8.5048282385916807e-01 -2.4394986791084675e-01 -2.3972504452141907e+03 2.3972506125543050e+03 1 0 0 0 0 +P 160 2224 -1.9025691153649760e-03 7.5090832178153066e-01 -1.3897064940632451e+03 1.3897072600852762e+03 2 0 0 -102 0 +P 71 423 6.7375280292117559e+00 -3.1280786052117606e+00 -1.8078833346658740e+01 1.9648160722343899e+01 2 0 0 -37 0 +P 72 213 1.0805121219025640e+00 -6.6038780518628226e-01 -2.3089962780132609e+00 2.7002122967490942e+00 2 0 0 -38 0 +P 73 331 8.8350480325607927e-01 -9.1723208806001100e-01 -1.3273651063348788e+00 2.0738588580152020e+00 2 0 0 -39 0 +P 74 -213 1.6671177452769768e+00 -6.0237742035546349e-01 -4.3269280810687976e+00 4.7129738478160546e+00 2 0 0 -40 0 +P 75 111 -2.2944867559712592e-01 -5.4494370034286373e-02 -1.1132060518150413e+00 1.1458898923091787e+00 2 0 0 -41 0 +P 76 211 1.9057714121074421e-01 -3.7678379479520874e-01 3.2988192916386494e-01 5.5370348279671411e-01 1 0 0 0 0 +P 77 -211 2.1514156450681340e-01 4.1042646895793555e-01 1.1603516057783952e-01 4.9767431377362004e-01 1 0 0 0 0 +P 78 211 1.1821640765841486e-01 -7.3020341573840120e-01 -1.3087805912292785e+00 1.5098207073272469e+00 1 0 0 0 0 +P 79 3112 -1.2499623449219958e-01 -5.9241869360866006e-02 4.0162992375308786e+00 4.1932869895481408e+00 2 0 0 -42 0 +P 80 311 -1.0795922983869366e-01 -3.0104120411989399e-02 1.6962385074932020e+00 1.7712882195102833e+00 2 0 0 -43 0 +P 81 -1114 -5.9337323488907867e-01 -4.6246084613168187e-01 7.5339721507890793e+00 7.6936474040793801e+00 2 0 0 -44 0 +P 82 -211 -3.9495796561206009e-01 3.0833169972538993e-01 9.3878856442942862e+00 9.4022835995784941e+00 1 0 0 0 0 +P 83 211 -3.1344790463608746e-01 -7.2171857255188154e-01 8.5253322989485287e+00 8.5627038883335214e+00 1 0 0 0 0 +P 84 -213 -1.2690227290925465e-01 -1.0105632908426881e-01 5.1452653640166943e+00 5.1881794411189812e+00 2 0 0 -45 0 +P 85 213 -1.2041062649028871e+00 -1.2215218528395928e-01 2.3429585452245682e+01 2.3473631837985316e+01 2 0 0 -46 0 +P 86 223 -7.4237011822675184e-02 1.4248179815169867e-01 1.5165880769368950e+01 1.5186849387363358e+01 2 0 0 -47 0 +P 87 -213 -9.0074449059785699e-01 -6.0424612216057405e-01 2.4880423729369195e+01 2.4913870228144820e+01 2 0 0 -48 0 +P 88 323 -3.9622224355221425e-01 4.7691198706436511e-01 8.3475162278290014e+01 8.3482329557234976e+01 2 0 0 -49 0 +P 89 -313 -1.1785958161298775e+00 4.3758697222424819e-01 2.3405851550380999e+02 2.3406361463389302e+02 2 0 0 -50 0 +P 90 111 -2.1010818134776000e-02 1.4739930625154105e-01 2.2010537086033544e+01 2.2011454527723057e+01 2 0 0 -51 0 +P 91 -213 -1.4723087124553025e+00 1.8245140592851474e+00 3.9234982586875026e+02 3.9235769486019092e+02 2 0 0 -52 0 +P 92 213 1.7539750249024346e+00 1.4987779798051035e+00 6.9123026432414906e+02 6.9123466203199087e+02 2 0 0 -53 0 +P 93 -211 -8.9424661017914325e-02 -3.0761209203019885e-01 1.4068666240461201e+02 1.4068709635323111e+02 1 0 0 0 0 +P 94 111 7.0564265001932358e-01 3.8262897153753883e-01 1.6816678510920750e+02 1.6816875503507225e+02 2 0 0 -54 0 +P 95 223 1.8302919870385345e-01 6.5783452518379060e-01 2.6383157492994411e+02 2.6383362307134547e+02 2 0 0 -55 0 +P 96 113 1.1656756707026841e+00 -6.4896512612338464e-01 1.0945955049891027e+02 1.0947082232861229e+02 2 0 0 -56 0 +P 97 213 -3.5903158855632840e-02 9.9198943525646954e-01 3.7343100725470698e+01 3.7367385916754081e+01 2 0 0 -57 0 +P 98 221 4.2162092047841054e-01 3.3016782868221339e-01 8.5630844493739087e+00 8.5972607140467154e+00 2 0 0 -58 0 +P 99 -213 9.7457004419126791e-01 2.5386776349576827e+00 3.2029157610337023e+01 3.2157623407268844e+01 2 0 0 -59 0 +P 100 111 1.2787995261416203e+00 5.9131216608945592e-01 1.8321222064458190e+01 1.8375809528872868e+01 2 0 0 -60 0 +P 101 331 1.5941076518656097e+00 2.2203899316199833e+00 3.0301907248901987e+01 3.0440010892784585e+01 2 0 0 -61 0 +P 102 213 1.7703923967892532e+00 -1.5783757695402438e+00 1.7113365104763496e+01 1.7299350723397684e+01 2 0 0 -62 0 +P 103 -211 -1.8759452428865081e-01 -1.2769116703025019e-01 3.8721698603132602e+00 3.8813239946826195e+00 1 0 0 0 0 +P 104 211 6.9482022183564407e-01 -7.4276553322659658e-02 2.8254613298076237e+00 2.9139326790753919e+00 1 0 0 0 0 +P 105 311 6.3686850058466904e-01 -2.8985459322238305e-01 6.1254602664267574e+00 6.1853501175537389e+00 2 0 0 -63 0 +P 106 333 8.7207094479077651e-02 -2.0295472311855449e+00 7.6184364527955317e+00 7.9504887791525123e+00 2 0 0 -64 0 +P 107 -323 -1.9822568338569455e-01 -1.5507438333859327e-01 2.6398270078375625e+00 2.7898910808615089e+00 2 0 0 -65 0 +P 108 113 -1.1042506848572424e+00 -1.9030565630970109e+00 5.3217383054275196e+00 5.8133432539368144e+00 2 0 0 -66 0 +P 109 213 -7.2310463393123914e-01 -7.6975522680298714e-01 6.1285789995101991e-01 1.6294860676683323e+00 2 0 0 -67 0 +P 110 -211 -4.3482640295969677e-01 -8.1532294744635425e-01 1.7768661421435300e-01 9.5125066471169373e-01 1 0 0 0 0 +P 111 213 -5.9736000021821500e-01 -1.2204809639168086e+00 2.6747136936349564e-01 1.5533645053088498e+00 2 0 0 -68 0 +P 112 -211 -1.4286103486218285e+00 -1.6452141393289603e+00 4.8302563621898731e-01 2.2361687419741094e+00 1 0 0 0 0 +P 113 111 4.3583065059189477e-02 -2.4339437891750076e-01 6.2664394827260231e-02 2.8859441094320626e-01 2 0 0 -69 0 +P 114 213 -1.1457523430575574e+00 -1.7185955494709606e+00 -2.0075212146900698e+00 2.9665875925104452e+00 2 0 0 -70 0 +P 115 -213 -9.9510244241403112e-01 -3.8721112665348262e-01 -1.1073021899671061e+00 1.6337817612725141e+00 2 0 0 -71 0 +P 116 321 3.6387094509041512e-01 4.3920647350883402e-01 9.9248798190379642e-02 7.6078622161241372e-01 1 0 0 0 0 +P 117 -321 -1.2747399230810363e-01 -1.0200080057828731e+00 -1.4513610769384608e+00 1.8457399291959007e+00 1 0 0 0 0 +P 118 211 -2.0133216812193178e-01 3.5802685432120634e-01 -1.7925786519980291e+00 1.8443253180593948e+00 1 0 0 0 0 +P 119 311 -2.8765138987802308e-01 7.2322394316508809e-01 -1.3293539465693636e+00 1.6188432716682488e+00 2 0 0 -72 0 +P 120 -321 1.0298266079353463e-01 -1.3133623038629999e-01 -8.4534917780111540e-01 9.9303113055191838e-01 1 0 0 0 0 +P 121 113 -2.0064710281109285e-02 9.6668445379680457e-01 -2.7580016928497004e+00 3.0477179748732270e+00 2 0 0 -73 0 +P 122 213 6.9914421880252642e-01 4.8815033788881651e-01 -2.1395488946251060e+00 2.3683512678933512e+00 2 0 0 -74 0 +P 123 223 1.5872029432710627e-01 -2.3339814721712135e-01 -7.4179222929870310e+00 7.4628850957322737e+00 2 0 0 -75 0 +P 124 223 -3.0717425565275075e-01 5.6842261363386204e-01 -1.7694534053195312e+01 1.7723823647209741e+01 2 0 0 -76 0 +P 125 1114 7.6998734838977989e-01 -3.4728630806103294e-01 -1.9364499157932190e+02 1.9364995150560429e+02 2 0 0 -77 0 +P 126 111 6.5158363716255141e-01 1.5605607263941090e+00 -1.1121050811925711e+02 1.1122344737851247e+02 2 0 0 -78 0 +P 127 -2112 1.0813888713417015e-01 9.3320687480095546e-02 -7.6290462496469246e+01 7.6296381712894501e+01 1 0 0 0 0 +P 128 211 3.9294549049558353e-01 -4.8295703118897615e-01 -5.9670507038186024e+01 5.9673918453806799e+01 1 0 0 0 0 +P 129 -211 -4.9079394553889405e-02 3.0193103218666079e-01 -5.2738809586108296e+01 5.2739881375291844e+01 1 0 0 0 0 +P 130 113 7.7374346420721107e-01 8.6434540604482102e-01 -8.8859763366085502e+01 8.8870436517698323e+01 2 0 0 -79 0 +P 131 223 1.6985777384718924e-02 2.8325881170135603e-01 -9.6927730933742907e+01 9.6931159023301547e+01 2 0 0 -80 0 +P 132 223 3.0185368861046491e-01 2.4293189269126073e-01 -3.2090245504750932e+01 3.2101336386389761e+01 2 0 0 -81 0 +P 133 221 6.5201407902947539e-01 -1.2988330070145512e-02 -7.4859939959601558e+00 7.5342616536739797e+00 2 0 0 -82 0 +P 134 213 1.2458254485181726e+00 2.4534172247832897e+00 -3.9148897598913670e+01 3.9260611329490111e+01 2 0 0 -83 0 +P 135 221 8.8556817596659831e-01 9.1587012185965244e-01 -1.2421218347891800e+01 1.2498376527489638e+01 2 0 0 -84 0 +P 136 -211 1.8161190527346487e+00 1.8932700926893988e+00 -2.7662401209321924e+01 2.7786879646840031e+01 1 0 0 0 0 +P 137 111 7.2247895685888563e-01 1.1632455888028332e+00 -1.2867988035904569e+01 1.2941346600549585e+01 2 0 0 -85 0 +P 138 113 1.2139941660877747e+00 1.6756779361740803e+00 -1.8860823514754017e+01 1.8989026284653107e+01 2 0 0 -86 0 +P 139 211 1.1157147548814101e+00 5.0436447513334515e-01 -1.1621107696187737e+01 1.1686266589862242e+01 1 0 0 0 0 +P 140 -213 4.5823331418939195e-01 1.1538176266903686e+00 -1.8447864138782936e+01 1.8525111286873642e+01 2 0 0 -87 0 +P 141 213 2.0821117255183093e+00 1.6804026242358250e+00 -2.6142179810664658e+01 2.6288201716404078e+01 2 0 0 -88 0 +P 142 313 1.7813828024493763e+00 1.2357154576419902e+00 -2.2601396009113010e+01 2.2725602197916988e+01 2 0 0 -89 0 +P 143 -313 1.4186766512402984e+00 6.4743845122084742e-01 -1.8091956801791984e+01 1.8183781843473593e+01 2 0 0 -90 0 +P 144 2112 -1.1231017999695494e+00 5.3690695272926670e-01 -5.0961864079027272e+01 5.0985723579479917e+01 1 0 0 0 0 +P 145 -213 -5.7530555364241898e-01 -4.7810186265971222e-01 -9.4505926829143817e+01 9.4510818189169768e+01 2 0 0 -91 0 +P 146 -1114 -8.0379050531219987e-01 -7.4317351469684056e-01 -3.3976739042042894e+01 3.4017782197130039e+01 2 0 0 -92 0 +P 147 -213 -1.7993965627187491e-01 6.2933882558033644e-02 -4.3212693477627020e+01 4.3219348613222635e+01 2 0 0 -93 0 +P 148 211 -1.1857733256197995e+00 -2.3402786696214123e-01 -3.9319959891382794e+01 3.9338779252375360e+01 1 0 0 0 0 +P 149 311 -1.4096245121895092e+00 -2.1826091973706498e+00 -7.8978356177349141e+01 7.9022650196503378e+01 2 0 0 -94 0 +P 150 -323 -3.0387368245023250e-01 -3.9194042956116942e-01 -7.8833271694584482e+01 7.8839861573241009e+01 2 0 0 -95 0 +P 151 213 -1.8006034881526349e+00 -1.2055027990336920e+00 -8.9338286707006162e+01 8.9369650117474464e+01 2 0 0 -96 0 +P 152 113 4.9137946671111676e-01 -9.7164155725422818e-01 -5.0430982625195028e+01 5.0451579348850466e+01 2 0 0 -97 0 +P 153 221 2.6692022391655834e-01 -2.6056453113669759e-01 -2.1564701043027426e+01 2.1574873646408001e+01 2 0 0 -98 0 +P 154 311 4.1329176006341922e-01 1.8028596136298070e-01 -8.9119644403072215e+01 8.9122174609160766e+01 2 0 0 -99 0 +P 155 -321 3.6881058325853905e-01 -3.6759956648503250e-01 -5.2482305038393726e+01 5.2487209239876819e+01 1 0 0 0 0 +P 156 221 -4.0997910950580485e-01 -2.7374853556398043e-01 -4.8760304863457051e+01 4.8765869755503466e+01 2 0 0 -100 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 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 0 0 0 0 +P 163 223 -1.3456644959131422e-02 1.0490675531334205e-01 2.8997985766568299e+00 3.0056909067982369e+00 2 0 0 -103 0 +P 164 -213 -7.6664826358880125e-02 -1.5791348259790233e-01 2.8310851989334567e+00 2.9388621741173262e+00 2 0 0 -104 0 +P 165 113 -3.9648671529754964e-01 -2.4605982607667140e-01 7.6583440010326704e+00 7.7151393693837971e+00 2 0 0 -105 0 +P 166 223 8.9691194834938370e-02 -2.5125974088198971e-02 1.8317488091703201e+01 1.8334490887220280e+01 2 0 0 -106 0 +P 167 331 7.9224066352126379e-02 -2.1422931649456503e-01 1.6453778503957725e+01 1.6483212902440073e+01 2 0 0 -107 0 +P 168 211 1.5527914687816030e-01 -4.5548875201547573e-02 2.0928087163014524e+01 2.0929178158760095e+01 1 0 0 0 0 +P 169 113 -9.0692399597892714e-02 1.6957858902038977e-01 7.6922069406224782e+00 7.7066837587922024e+00 2 0 0 -108 0 +P 170 -211 1.9561892851724411e-02 -3.4229386330714748e-02 4.3617570241825661e+00 4.3641675542360279e+00 1 0 0 0 0 +P 171 211 1.4955539305015297e-01 -7.3620802444243974e-02 6.1402424512466673e+01 6.1402809403415823e+01 1 0 0 0 0 +P 172 313 -9.7870346573322886e-02 5.6843447855507345e-01 7.2008545829421976e+01 7.2016348838853801e+01 2 0 0 -109 0 +P 173 -313 -1.3048017096509981e-01 -7.9611017480924984e-01 2.3671747454399076e+02 2.3672050958431549e+02 2 0 0 -110 0 +P 174 2112 5.2848587189431351e-01 -1.8847878506702731e-01 1.0586464613615185e+03 1.0586470269955985e+03 1 0 0 0 0 +P 175 211 -3.2198770221974171e-01 5.2452521536190455e-01 2.6139330780727728e+03 2.6139331542573095e+03 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 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 2 0 0 -111 0 +P 178 -2112 -3.3029260138577476e+00 1.9451764508002454e+00 -3.1157827697945482e+01 3.1406783507986372e+01 1 0 0 0 0 +P 179 2112 -3.6871070129151744e+00 2.3786739914127644e+00 -3.4678443322119684e+01 3.4967557408439028e+01 1 0 0 0 0 +P 180 -313 -1.6887882543152506e+00 9.5163004863946332e-01 -1.9256191761625256e+01 1.9375050572033444e+01 2 0 0 -112 0 +P 181 323 -1.0684585629853891e+00 1.1397180800571156e+00 -1.1888673019374792e+01 1.2026652906041873e+01 2 0 0 -113 0 +P 182 -323 -1.0389598140931948e+00 -2.4279557457761929e-02 -1.5588480592748905e+01 1.5651040269879616e+01 2 0 0 -114 0 +P 183 321 9.7335278175105699e-01 -7.7540269787809635e-01 -1.2014313647022332e+01 1.2088673969904482e+01 1 0 0 0 0 +P 184 113 9.1572165877639158e+00 -6.8871050884448293e+00 -1.3173902282931255e+02 1.3223974804671991e+02 2 0 0 -115 0 +P 185 111 1.5749182160948232e+00 -1.4409120111312630e+00 -2.3979729812343567e+01 2.4074930036961863e+01 2 0 0 -116 0 +P 186 -321 1.6188124904841935e+01 -1.2402999795367213e+01 -2.2505793379581706e+02 2.2598054561678759e+02 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 2 0 0 -17 0 +P 49 -3 -2.6809949063516858e+00 2.1334338920576483e+00 2.5402154973416849e+01 2.5632181942884813e+01 2 0 0 -17 0 +P 187 92 0 0 2.0476301069222714e+01 3.1632457815303390e+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 1 0 0 0 0 +P 189 213 -1.8805628523845630e-01 -4.7820853896800425e-01 -1.8580072096583751e-02 8.0239109587132929e-01 2 0 0 -117 0 +P 190 -211 5.2779424626199234e-01 -6.9896042852539919e-02 3.7768327334195961e-01 6.6751529050352554e-01 1 0 0 0 0 +P 191 213 -1.6891692283320525e-01 6.6648603572310589e-02 1.6599824117289130e+00 1.9453974090260178e+00 2 0 0 -118 0 +P 192 113 -7.4221913151521435e-01 4.9737556351137047e-01 2.7144616154803280e+00 2.9374218163653363e+00 2 0 0 -119 0 +P 193 -213 2.6977494445296846e-02 3.3051528732393581e-01 2.9686265628592207e-01 7.9252551915710912e-01 2 0 0 -120 0 +P 194 211 -6.8694313677862559e-03 -3.6465893769440583e-01 8.2207140953389746e-01 9.1011236515101712e-01 1 0 0 0 0 +P 195 113 -1.7926234409549882e-01 4.5811796288984646e-01 4.3631920667074748e+00 4.4594263972685484e+00 2 0 0 -121 0 +P 196 -213 -8.7517280978279891e-02 1.1556616042151517e-01 1.2143912094050173e+00 1.4643347407834515e+00 2 0 0 -122 0 +P 197 323 -7.6278088917320597e-01 6.2000960206627131e-01 7.1458893862408148e+00 7.2776101788726990e+00 2 0 0 -123 0 +P 198 221 -7.3573102667583368e-01 2.9137896094462912e-01 5.6348963975317616e+00 5.7164640081007310e+00 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 2 0 0 -19 0 +P 51 21 -1.2797607567819380e+00 2.6322105018962016e+00 2.1455385372104661e+00 3.6290019751368225e+00 2 0 0 -19 0 +P 199 92 0 0 3.1224364671569451e+00 6.7145569149208235e+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 2 0 0 -125 0 +P 201 111 3.7295347928756839e-01 -3.7777914400943240e-02 1.1758598639554589e+00 1.2415262738220798e+00 2 0 0 -126 0 +P 202 -213 -7.7174053973165080e-01 1.1344979778855320e+00 1.1415247517969562e+00 1.9615336994911579e+00 2 0 0 -127 0 +P 203 223 4.0683186443833641e-01 -5.2896991332825460e-01 1.1174071860398992e-01 1.0379283489087789e+00 2 0 0 -128 0 +P 204 223 -5.4926159000131487e-02 -3.9089357009414699e-01 1.0576731195622895e+00 1.3702232191791681e+00 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 2 0 0 -130 0 +P 206 111 1.7968957185550219e-01 -6.1256193952872552e-02 -7.5978817714920155e-01 7.9469386436974088e-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 2 0 0 -132 0 +P 208 -211 1.1885409638388056e-01 8.3490247668284856e-01 -4.0919076763111493e+00 4.1802364356759165e+00 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 2 0 0 -133 0 +P 210 111 1.5608318125249132e-01 3.2776161422857351e-02 -2.1970366209984036e+00 2.2069494218571477e+00 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 0 0 0 0 +P 212 211 1.0687235046510266e-01 1.0665286980031208e+00 -2.9742802779412334e+00 3.1646055235381785e+00 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 0 0 0 0 +P 214 -211 -3.2961684312823265e-02 9.7904714471502771e-02 -3.2110680804773697e+00 3.2157596004846356e+00 1 0 0 0 0 +P 215 111 -1.2371813995669578e-01 2.7781701450849755e-01 -1.2188863571466753e+00 1.2634840813176285e+00 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 0 0 0 0 +P 217 111 -7.1482009245183581e-02 -6.3077240170473347e-03 -1.1802194579810725e+00 1.1900785832982377e+00 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 0 0 0 0 +P 219 211 1.9975853129734369e-01 3.0355779618777118e-01 -9.8170033356441933e-01 1.0560616157558897e+00 1 0 0 0 0 +P 220 111 1.4897220997953661e-01 8.6760505956244627e-02 -4.6472305443281688e-02 2.2382890857345566e-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 2 0 0 -138 0 +P 222 -211 -1.8405188231880528e-02 -1.3401650405953600e-01 -1.1372650400998702e-01 2.2519475333258582e-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 1 0 0 0 0 +P 224 -211 -5.8511336571788884e-02 3.5244481235949815e-01 4.7335066859644559e-01 6.0924671737091951e-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 0 0 0 0 +P 226 111 -4.6380149176473889e-01 -1.5543106838779938e-01 2.5262943145065019e-02 5.0806343844024116e-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 1 0 0 0 0 +P 228 -211 1.6376765932694964e-01 -1.1407305807929946e-01 3.2242673069684358e+00 3.2334520192058642e+00 1 0 0 0 0 +P 229 211 2.8129986815416846e-01 2.1611268857698845e-01 2.9431364251746919e+00 2.9677206930702882e+00 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 0 0 0 0 +P 231 111 -1.1307147515979296e-02 -1.6769866681952736e-01 1.0504441492713814e+00 1.0723353978939945e+00 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 0 0 0 0 +P 233 111 1.1477924954231560e-01 -2.2979793525959996e-01 3.8904575735499605e+00 3.9012640386376463e+00 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 0 0 0 0 +P 235 211 -3.8320474011581890e-01 -2.8328556012237832e-01 1.9771742986078998e+01 1.9777977577949802e+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 0 0 0 0 +P 237 -211 -7.0567420656834565e-02 4.3227021311803671e-01 1.0675834001752031e+02 1.0675932971117506e+02 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 0 0 0 0 +P 239 -211 1.5228297752088477e-01 2.4892222450875526e-01 1.3594839004485266e+02 1.3594877486741612e+02 1 0 0 0 0 +P 240 111 -1.8372996459514808e-03 5.1323835337157217e-02 2.0956193140799577e+01 2.0956690770888397e+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 2 0 0 -143 0 +P 242 111 4.9387619354922196e-01 -2.6296728043550860e-01 -1.2797340263786521e+00 1.4032121235955854e+00 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 0 0 0 0 +P 244 111 8.1043539067834081e-01 -1.9587017425910982e-01 -1.3769041714155361e+00 1.6153189608525471e+00 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 0 0 0 0 +P 246 -211 6.6967622594905324e-02 -6.5307943664755175e-02 -1.1166100354230166e-01 2.0173684490892191e-01 1 0 0 0 0 +P 247 221 3.8909956284019970e-01 -5.3871218458285008e-01 -8.7107471401348857e-01 1.2247783258672331e+00 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 0 0 0 0 +P 249 111 7.7167108423919306e-01 -2.5894206886027965e-01 -2.6574100454998915e+00 2.7825482938486923e+00 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 1 0 0 0 0 +P 251 22 -4.2737566410076068e-02 1.8867838474912971e-02 -4.6527143948108279e-01 4.6761095721568580e-01 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 1 0 0 0 0 +P 253 -211 -1.4849118076197018e-01 1.7898563672047136e-02 3.2989479064236149e-01 3.8817566530963010e-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 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 1 0 0 0 0 +P 256 211 1.2282746276398639e-01 1.3160303099116163e-01 8.4157099372716293e-01 8.7185289226911644e-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 0 0 0 0 +P 258 111 -2.3607809641078237e-01 9.8924049628864474e-02 1.2207570821773017e+00 1.2545861027789014e+00 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 0 0 0 0 +P 260 111 -1.1115938983384583e+00 -1.8893723514333377e-01 2.2371197529621647e+01 2.2400000821057944e+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 0 0 0 0 +P 262 -211 -9.3830291977028552e-02 7.2250537096242073e-02 3.3416130761211456e+00 3.3466224763494039e+00 1 0 0 0 0 +P 263 111 1.0757250327674936e-01 2.5521449183574951e-01 3.9260193555040792e+00 3.9380901285390704e+00 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 0 0 0 0 +P 265 111 -3.2073406530239251e-01 -1.9939418805101175e-01 3.7968439357699193e+00 3.8179669794102113e+00 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 1 0 0 0 0 +P 267 111 -1.1765519819761945e-01 -1.6064093626715317e-01 1.9166237785949200e+01 1.9167747356536566e+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 1 0 0 0 0 +P 269 211 -2.8492412920335630e-01 4.1681594305669806e-01 8.0055157641769668e+01 8.0056871423527923e+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 1 0 0 0 0 +P 271 22 -2.4309358054476007e-02 9.5472016989760957e-03 7.2413056072650817e-01 7.2460138209044855e-01 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 0 0 0 0 +P 273 111 -1.1869009496520293e+00 8.8484723595274772e-01 2.4894306409889506e+02 2.4894750264070180e+02 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 0 0 0 0 +P 275 111 -3.9365165318030595e-02 2.1026551461701451e-01 7.2894196812983083e+01 7.2894635672408640e+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 1 0 0 0 0 +P 277 22 4.5564793068048387e-01 2.3203579530812810e-01 1.1960051942648138e+02 1.1960161245874228e+02 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 0 0 0 0 +P 279 -211 3.0260190289747680e-02 5.2722368310901424e-01 1.3997838615805080e+02 1.3997945189094159e+02 1 0 0 0 0 +P 280 111 -1.0915701330301296e-01 6.3947562447915010e-02 3.9337776782952176e+01 3.9338211784091911e+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 0 0 0 0 +P 282 211 1.1960987457174342e-01 -2.5875645151296439e-01 1.0301918998462718e+01 1.0306807277672448e+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 0 0 0 0 +P 284 111 1.2652227858485912e-01 9.6098178980106996e-01 3.5153440087509658e+01 3.5167059352095940e+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 2 0 0 -158 0 +P 286 111 7.2165970952666164e-02 1.0925849693542053e-01 1.7329492789665644e+00 1.7431231024763754e+00 2 0 0 -159 0 +P 287 111 5.7259665167642498e-02 1.0687387285916360e-02 3.2706781824117788e+00 3.2739804921236972e+00 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 0 0 0 0 +P 289 111 4.1830606098124423e-01 1.1755765771896662e+00 1.9730016713629471e+01 1.9769894773872441e+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 1 0 0 0 0 +P 291 22 5.0254836912804378e-02 3.1363380420649907e-02 4.9505241412208734e-01 4.9858409821478411e-01 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 0 0 0 0 +P 293 -211 3.0564376993854531e-01 6.9193900353716309e-01 8.2429344382337373e+00 8.2787466223238155e+00 1 0 0 0 0 +P 294 221 9.5599961032503467e-01 1.2801871992451461e+00 1.7605752316643834e+01 1.7686577697722150e+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 0 0 0 0 +P 296 111 1.6901191173961481e+00 -1.5985626590924316e+00 1.6544286957456936e+01 1.6707589764448741e+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 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 1 0 0 0 0 +P 299 310 -5.6376902188405402e-02 -9.4829366505374968e-01 3.4172653874114838e+00 3.5815942521706718e+00 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 1 0 0 0 0 +P 301 111 2.3195043580107069e-02 -3.1086024973021309e-01 9.9213467140438327e-01 1.0486767430966022e+00 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 0 0 0 0 +P 303 211 5.8229430385060822e-02 -1.4047080457471348e-01 3.0156695192662147e-01 3.6543826413656960e-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 0 0 0 0 +P 305 111 -7.2459948192582480e-01 -8.9543741457431492e-01 7.6366010654820127e-01 1.3886140325374496e+00 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 0 0 0 0 +P 307 111 -7.0299433074427298e-01 -9.4889402278916302e-01 3.0759404672122986e-01 1.2277762799150060e+00 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 1 0 0 0 0 +P 309 22 -1.0444000571005583e-02 -2.2348978880879536e-01 4.3593122701166338e-02 2.2794105202127599e-01 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 0 0 0 0 +P 311 111 -1.1020147543802561e+00 -1.6536485938923138e+00 -1.9715970413558779e+00 2.8025710847072287e+00 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 0 0 0 0 +P 313 111 -2.5499660395015161e-01 8.5088854900123176e-02 -1.8681615758638939e-01 3.5409498498237357e-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 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 0 0 0 0 +P 316 211 -1.5041483011075760e-02 -6.2116154231934534e-02 -7.5021064446656849e-02 1.7085844386054616e-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 0 0 0 0 +P 318 111 4.6838599969743122e-01 4.9174921370238156e-02 -8.7389061637774768e-01 1.0018522981944049e+00 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 0 0 0 0 +P 320 211 -9.8706113948430804e-02 -2.8964132523844838e-01 -1.4907848669725159e+00 1.5282520403097610e+00 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 0 0 0 0 +P 322 211 -1.2600615597077278e-01 3.3646972396956704e-01 -2.8764946640392428e+00 2.9022044662009816e+00 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 1 0 0 0 0 +P 324 -211 8.4749541376226964e-02 3.5211273219105275e-03 -3.0569414802299615e+01 3.0569851095860052e+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 1 0 0 0 0 +P 326 22 -1.5466324265940194e-04 6.2079934296075334e-02 -3.6677791592323956e+00 3.6683044997740333e+00 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 0 0 0 0 +P 328 211 1.0551080640961935e-01 1.5636350604201216e-01 -4.0467426697579832e+01 4.0468107015095086e+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 0 0 0 0 +P 330 -211 6.3753390431136939e-02 -3.4266989260422084e-02 -4.3006183481217263e+01 4.3006470863422045e+01 1 0 0 0 0 +P 331 111 1.1533681740304895e-01 2.6389423523999250e-01 -2.1069793643374290e+01 2.1072194155417638e+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 0 0 0 0 +P 333 211 8.5429989515703270e-02 2.9119120815685540e-01 -8.1609305243617207e+00 8.1677633052859324e+00 1 0 0 0 0 +P 334 111 1.5971224969655323e-01 1.6416391462325010e-03 -6.1583136127604776e+00 6.1618630990304570e+00 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 2 0 0 -175 0 +P 336 111 2.9110855186201823e-01 8.7859720184946685e-02 -3.6679991381187156e+00 3.6830559046853768e+00 2 0 0 -176 0 +P 337 111 4.0602579306178992e-02 5.1683011578460081e-03 -1.0151896366424780e+00 1.0249414029735842e+00 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 0 0 0 0 +P 339 111 5.8788972858264898e-01 1.8877221706897764e+00 -2.1951790012437453e+01 2.2041061990685371e+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 1 0 0 0 0 +P 341 22 2.1963494126495064e-01 2.8017614166117788e-01 -6.1100973275610935e+00 6.1204597482582805e+00 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 1 0 0 0 0 +P 343 22 6.6462261932697564e-01 1.0269836258559635e+00 -1.1112423286411024e+01 1.1179551417220072e+01 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 0 0 0 0 +P 345 211 8.0133869236026911e-01 1.5461792439251949e+00 -1.5223724224072070e+01 1.5323644246383349e+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 0 0 0 0 +P 347 111 1.5073350550211109e-02 7.2202155363162623e-01 -1.5089453750602873e+01 1.5107328566685394e+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 0 0 0 0 +P 349 111 5.5564478995138736e-02 5.3068180921456376e-02 -1.0567328314465232e+00 1.0680859144325889e+00 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 1 0 0 0 0 +P 351 -211 1.2280392089109184e+00 7.9181424127792643e-01 -1.6152530029392889e+01 1.6219086171133444e+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 2 0 0 -181 0 +P 353 111 9.2084903787267469e-01 1.3790049009253627e-01 -1.0572002769311638e+01 1.0613785453383338e+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 0 0 0 0 +P 355 111 -1.5883655598135957e-01 -4.7746020680533935e-01 -4.8794799426665946e+01 4.8797580554670517e+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 1 0 0 0 0 +P 357 211 -2.9468806770195133e-01 -2.9190475370197855e-01 -5.4819920692795092e+00 5.4994332685307823e+00 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 0 0 0 0 +P 359 111 6.8911093492632733e-02 -2.7130636779539036e-01 -1.4855359858410299e+01 1.4858610029450290e+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 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 1 0 0 0 0 +P 362 111 -2.6489328918552280e-01 -4.1560022800454127e-01 -3.3811621128573726e+01 3.3815482178238803e+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 0 0 0 0 +P 364 111 7.5450854587473110e-02 -1.1796572075934705e-01 -7.3526082944333560e+00 7.3551802883751556e+00 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 0 0 0 0 +P 366 211 1.6113589013928148e-01 1.0476930546125837e-01 -4.2265010413097350e+00 4.2331704689924887e+00 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 1 0 0 0 0 +P 368 22 4.1998551688228036e-01 -2.0427605522231063e-01 -1.8445987769881434e+01 1.8451899125774119e+01 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 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 0 0 0 0 +P 371 -211 -9.4699960295409211e-02 -7.0342706977206501e-02 -6.2577223207694175e+00 6.2603901322250373e+00 1 0 0 0 0 +P 372 111 -6.1340461783072626e-02 -9.5270249091627290e-02 -1.9913617131458697e+01 1.9914396951234526e+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 0 0 0 0 +P 374 -211 -2.8982224615837326e-01 2.8131974867272219e-01 -6.3245549272580966e+01 6.3246992974454749e+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 1 0 0 0 0 +P 376 211 -2.8581771916038204e-03 -1.1153332585833524e-01 -2.1689617899690685e+02 2.1689625259809148e+02 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 0 0 0 0 +P 378 211 -3.3611510436482870e-03 -3.9382859649498635e-02 1.3924281785635231e-01 2.0107375312329462e-01 1 0 0 0 0 +P 379 111 -7.9872569296045165e-02 9.6782587127883388e-02 4.2334861577519067e-01 4.6172518598825418e-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 0 0 0 0 +P 381 111 -3.2259075952935390e-01 9.6110605845984534e-02 1.8794513505486412e+00 1.9141209539025790e+00 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 0 0 0 0 +P 383 211 6.1887762052356861e-02 -1.3754108735555134e-01 5.4029978564595833e+00 5.4069042221598167e+00 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 0 0 0 0 +P 385 -211 -1.2475197802699829e-01 -1.9095926689690346e-01 6.3048485731892709e+00 6.3105169212499730e+00 1 0 0 0 0 +P 386 111 1.9899815204420815e-01 -6.7184283612308757e-02 5.5687097047954106e+00 5.5743036667519377e+00 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 1 0 0 0 0 +P 388 113 8.2999471421343396e-02 -2.8251000142352389e-01 1.6107349250332053e+01 1.6130098567719088e+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 0 0 0 0 +P 390 -211 5.6044408203317006e-02 1.6763803708868413e-01 2.3839451002379750e+00 2.3945599831740396e+00 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 1 0 0 0 0 +P 392 -211 -2.9633713105752252e-01 3.6457100116663532e-01 3.2491480380038389e+01 3.2495176638717545e+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 1 0 0 0 0 +P 394 211 -2.1815986473454180e-01 -4.1960556703188107e-01 6.4104946097799257e+01 6.4106842509556756e+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 0 0 0 0 +P 396 -14 -1.3089155169219182e+00 1.0462816645268493e+00 -1.2289940437364569e+01 1.2403652732398342e+01 1 0 0 0 0 +P 397 323 -2.1581479174280773e+01 1.3503790177823028e+01 -2.0949493928636579e+02 2.1103796270682068e+02 2 0 0 -192 0 +P 398 -211 -2.0850999230479355e+00 1.2367396416999163e+00 -1.9059552487099179e+01 1.9213619841764203e+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 2 0 0 -193 0 +P 400 111 -1.2418841812846488e+00 6.4683552692001378e-01 -1.2930629916089380e+01 1.3006924392256479e+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 2 0 0 -195 0 +P 402 211 -1.3587033582635805e-01 1.7718207748686304e-01 -7.1597924199696528e-01 7.6286322274092955e-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 1 0 0 0 0 +P 404 111 -1.1663521498522561e-01 6.8185846341943981e-02 -7.0050532350766603e-01 7.2607189153595308e-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 0 0 0 0 +P 406 211 1.0872137644979858e+00 -5.9716641606912368e-01 -1.2286932660223906e+01 1.2350175524257606e+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 1 0 0 0 0 +P 408 22 5.4642645271504009e-01 -5.8839714492554174e-01 -9.0399360168790608e+00 9.0755295304268895e+00 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 0 0 0 0 +P 410 111 -2.5129535497422834e-01 -4.3749634494359707e-01 1.7624108649708728e-01 5.5121042101932738e-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 0 0 0 0 +P 412 111 -7.9048986992116252e-02 5.1075014150674813e-01 7.7222665732593598e-01 9.3897181005524955e-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 0 0 0 0 +P 414 211 -6.7570053020446241e-01 4.1406156446148923e-01 1.4286956315294119e+00 1.6397161882881173e+00 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 0 0 0 0 +P 416 111 2.0615633368148753e-01 2.9319453099443760e-01 -3.9420844071029401e-02 3.8501567535532039e-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 0 0 0 0 +P 418 211 2.3022959581081737e-01 3.5933366808902623e-01 2.7454858413980707e+00 2.7819594968343444e+00 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 0 0 0 0 +P 420 111 -2.5858290813921248e-01 1.2412289720045558e-01 1.0618010768307151e-01 3.3431337044568815e-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 1 0 0 0 0 +P 422 111 -3.2914057460674639e-01 3.0667447028601713e-01 4.7608665461210302e+00 4.7839787435723471e+00 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 1 0 0 0 0 +P 424 211 -2.0485179035825907e-01 1.0503476392148384e-01 1.2552849482286934e+00 1.2838288997349061e+00 1 0 0 0 0 +P 425 -211 -1.6286584081530955e-01 1.2536930627288169e-02 7.4666982282661187e-01 7.7696722321727008e-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 0 0 0 0 +P 427 111 4.1426864992368700e-01 -4.6948895281791733e-02 1.3140310201161695e-01 4.5750310238953612e-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 1 0 0 0 0 +P 429 22 1.9965593891975320e-01 -2.0177213938078393e-03 8.2184891706479402e-01 8.4575540650126857e-01 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 0 0 0 0 +P 431 111 -7.3446105685645879e-01 4.2632886349871141e-01 4.9727371847637947e-01 9.9332275488792399e-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 0 0 0 0 +P 433 -211 -1.5008674707049818e-02 9.4286417803348802e-02 3.1852852341836643e-02 1.7207433858934496e-01 1 0 0 0 0 +P 434 111 6.2902258068042838e-02 -3.4099485009942332e-01 -3.8018334849563219e-02 3.7403098273955909e-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 0 0 0 0 +P 436 211 2.0006607633586731e-02 -2.7092422208840949e-01 8.6756397153503473e-01 9.1975389538118113e-01 1 0 0 0 0 +P 437 111 -1.3744564485215921e-01 -1.6334130447134231e-02 1.1762930332422402e-02 1.9369067100997739e-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 2 0 0 -206 0 +P 439 -211 7.4915303770725516e-01 -4.9674903661230729e-02 -1.6828668697901639e+00 1.8480309944092130e+00 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 1 0 0 0 0 +P 441 22 -3.4363715801602034e-03 2.3121721921194556e-02 -3.2898997053912235e-02 4.0357981631782891e-02 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 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 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 1 0 0 0 0 +P 445 22 -2.0807358571302472e-03 -1.3285414039545751e-02 -2.2720452416971754e-02 2.6401716723371889e-02 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 1 0 0 0 0 +P 447 22 -9.8480342496487655e-02 2.5330563686262997e-01 -8.3783194360571156e-01 8.8080899703098514e-01 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 1 0 0 0 0 +P 449 22 2.2057787920906725e-02 3.1394912294285607e-02 -1.4614697997947071e-01 1.5109972297476049e-01 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 1 0 0 0 0 +P 451 22 -1.3182901251046604e-02 -6.8603676000775432e-03 2.0194881719618613e-02 2.5073627114409011e-02 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 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 1 0 0 0 0 +P 454 22 -2.4152691014793695e-01 -1.1778311524703966e-01 7.1204539415547607e-02 2.7798956274703429e-01 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 1 0 0 0 0 +P 456 22 -5.8513823507732002e-02 -4.5192285691928666e-02 2.3397707802335543e-01 2.4538028296483455e-01 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 1 0 0 0 0 +P 458 22 7.4777626526306248e-02 -2.3010542100460624e-01 2.9296239307961844e+00 2.9395980293397774e+00 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 1 0 0 0 0 +P 460 22 -6.7156663551545731e-02 2.0665449414198934e-02 1.2079983338832347e+01 1.2080187686651476e+01 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 2 0 0 -209 0 +P 462 111 2.9176140131540547e+00 -1.3106559225548522e+00 -9.5626609746215951e+00 1.0084294471753186e+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 1 0 0 0 0 +P 464 22 1.8073067545782046e-01 -3.8726495117382520e-02 -3.2791682948089795e-01 3.7642099507376175e-01 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 1 0 0 0 0 +P 466 22 1.9830912724377689e-01 3.7668075123103504e-03 -2.7443846883299938e-01 3.3861064951124098e-01 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 0 0 0 0 +P 468 211 5.4061889742620196e-02 -2.0391370194446679e-01 -3.1469861234019963e-01 4.0375547955673285e-01 1 0 0 0 0 +P 469 111 1.6109978154052820e-01 -2.0414556888027760e-01 -1.2587726950965411e-01 3.1889377586441564e-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 1 0 0 0 0 +P 471 22 7.4662084294927367e-01 -2.2738813337831260e-01 -2.4517795314882425e+00 2.5730081456055021e+00 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 0 0 0 0 +P 473 -211 -1.1991827116210638e-01 -2.1037361365155197e-01 1.0171799220351061e+00 1.0548801959325360e+00 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 1 0 0 0 0 +P 475 22 -7.6077823418413418e-02 9.5583400703326729e-02 3.9483294225373233e-01 4.1330022259228810e-01 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 1 0 0 0 0 +P 477 22 -1.3018310489578394e-01 -5.3690746781996687e-02 2.2152591616907351e+00 2.2197304995303044e+00 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 1 0 0 0 0 +P 479 22 -2.6491571954957035e-03 3.9096045874903049e-02 1.3756608498543419e+00 1.3762188389420000e+00 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 1 0 0 0 0 +P 481 22 -8.7200867675081895e-02 -4.4954280050167550e-02 5.1927851948606241e-01 5.2846481379345667e-01 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 1 0 0 0 0 +P 483 22 -2.0782378455591517e-02 1.1484078805539037e-02 5.8170681214651880e+00 5.8171165813559886e+00 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 1 0 0 0 0 +P 485 22 -5.9557876820332156e-01 4.2660844740346221e-01 1.1212230984163310e+02 1.1212470322395373e+02 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 1 0 0 0 0 +P 487 22 1.3993599204279632e-02 1.0936795908476790e-01 5.2769647303955324e+01 5.2769762494776600e+01 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 1 0 0 0 0 +P 489 22 -5.0816223291669176e-02 4.9309885767650677e-02 6.6013173261676918e+00 6.6016970692501333e+00 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 1 0 0 0 0 +P 491 22 1.5175635805081697e-01 7.2553702530404074e-01 2.7157572142236390e+01 2.7167685926999180e+01 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 1 0 0 0 0 +P 493 22 5.0192199347641360e-02 1.0689500509646421e-01 1.3274551679537445e+00 1.3326976483497788e+00 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 1 0 0 0 0 +P 495 22 5.0890506431500629e-02 4.0498121370393020e-02 2.4660776878922408e-01 2.5503986572021459e-01 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 1 0 0 0 0 +P 497 22 7.0093495982825063e-02 3.3811751864884283e-02 3.1219093548200161e+00 3.1228791767303448e+00 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 1 0 0 0 0 +P 499 22 1.5373857476364564e-01 5.4044177273503313e-01 7.9880294607280593e+00 8.0077667001821897e+00 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 2 0 0 -212 0 +P 501 111 4.3040406011067917e-01 7.1737842978781352e-01 9.9218515099128535e+00 9.9579735112945826e+00 2 0 0 -213 0 +P 502 111 1.5302824405896340e-01 1.5887887524497102e-01 2.8455533486003191e+00 2.8572808053478687e+00 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 1 0 0 0 0 +P 504 22 6.5234961046689088e-01 -5.7699462341256325e-01 5.7777430561017944e+00 5.8430127187997627e+00 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 0 0 0 0 +P 506 211 4.6924787248882088e-01 -2.9025094100292242e-01 5.3374797093361082e+00 5.3677377550568766e+00 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 0 0 0 0 +P 508 -211 -4.6580152179340854e-02 -7.1359516020228234e-02 3.1754285571499852e-01 3.5717662468214256e-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 1 0 0 0 0 +P 510 22 3.9026217408659976e-02 -1.7071480593394573e-02 8.5950023758604277e-02 9.5926470168474803e-02 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 1 0 0 0 0 +P 512 22 -6.0123017804104317e-01 -7.7065620210665875e-01 5.8982394573139763e-01 1.1416133302440359e+00 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 1 0 0 0 0 +P 514 22 -2.1530788834862755e-01 -3.6701452356081865e-01 1.5837934419538133e-01 4.5402771276374626e-01 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 1 0 0 0 0 +P 516 22 -2.4453684219177260e-02 -2.4597163101588097e-02 -1.4540972319744369e-02 3.7609081091414698e-02 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 1 0 0 0 0 +P 518 22 -1.4222141692334364e-01 1.1349513010492379e-01 -9.1174700460411068e-02 2.0352125685849817e-01 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 0 0 0 0 +P 520 211 8.5831780283816786e-02 2.2532066093454553e-01 -3.1425194699553238e-01 4.1996495787285959e-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 1 0 0 0 0 +P 522 22 4.4848871157211562e-01 3.2931344889120584e-02 -7.4320029585512404e-01 8.6866177401965050e-01 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 1 0 0 0 0 +P 524 22 1.1022477824540093e-01 9.2828442345385592e-02 -8.2544886826868353e+00 8.2557464855730984e+00 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 1 0 0 0 0 +P 526 22 6.2239828849669235e-02 -5.8646048146063924e-02 -3.5541813861247409e+00 3.5552100473437531e+00 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 1 0 0 0 0 +P 528 22 2.6726521743199222e-01 -1.2481855947855978e-01 -2.0180385224711261e+00 2.0394827401615143e+00 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 1 0 0 0 0 +P 530 22 2.3442063103992584e-02 5.5563101627706384e-02 -8.7439114423986819e-01 8.7646828904996255e-01 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 1 0 0 0 0 +P 532 22 5.6030702577819128e-02 5.5559279973158932e-02 -7.7673543916687360e-01 7.8073312705447295e-01 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 1 0 0 0 0 +P 534 22 4.9348863218620098e-01 1.6536143709088655e+00 -1.8673672935241342e+01 1.8753240584233389e+01 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 1 0 0 0 0 +P 536 22 5.3526856649327458e-02 5.5295120846059187e-01 -1.2244678391462424e+01 1.2257274129008765e+01 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 1 0 0 0 0 +P 538 22 8.3568879894528450e-02 -9.5782166655390463e-03 -4.8375603873570577e-01 4.9101466875703387e-01 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 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 1 0 0 0 0 +P 541 22 6.4466287487593510e-01 1.2944043611362591e-01 -6.8208918870357209e+00 6.8525113048702293e+00 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 1 0 0 0 0 +P 543 22 -1.5136490069141190e-01 -4.8237850605192573e-01 -4.8523487127665760e+01 4.8526120835947800e+01 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 1 0 0 0 0 +P 545 22 5.5354700392647317e-02 -2.0972253436179353e-01 -1.3542239831247805e+01 1.3543976791596672e+01 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 1 0 0 0 0 +P 547 22 -2.4101259830608548e-01 -3.5185697101090135e-01 -3.1414181204563874e+01 3.1417076107648302e+01 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 1 0 0 0 0 +P 549 11 3.7993073439308529e-02 -5.4461719288112491e-02 -1.9843239859383353e+00 1.9854348374518325e+00 1 0 0 0 0 +P 550 -11 4.5152289921856444e-02 -6.0008799552382155e-02 -1.9431576419402867e+00 1.9446083582150522e+00 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 1 0 0 0 0 +P 552 22 -9.8612167830641417e-02 -9.7665221123780122e-02 -1.5416982381895389e+01 1.5417607097689778e+01 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 1 0 0 0 0 +P 554 22 -7.3324877363122987e-02 -6.8985724846230816e-03 2.3934255729599138e-01 2.5041762652742228e-01 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 1 0 0 0 0 +P 556 22 -2.0031525666097008e-01 1.2513360388871886e-01 1.1649976106813382e+00 1.1886984704989552e+00 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 1 0 0 0 0 +P 558 22 1.0511091056963101e-01 -1.0201083727144152e-01 3.7218980796791872e+00 3.7247791652608369e+00 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 0 0 0 0 +P 560 -211 -1.9661017956950227e-01 1.7695947757585628e-01 6.1182368816204669e+00 6.1255426326110252e+00 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 2 0 0 -216 0 +P 562 211 -2.8661817689837927e+00 1.9267205095557918e+00 -2.7067714435363381e+01 2.7287504363610779e+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 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 1 0 0 0 0 +P 565 22 -9.4756500827945667e-01 4.6940589272528510e-01 -9.2329793891821001e+00 9.2933379223023156e+00 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 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 1 0 0 0 0 +P 568 22 -1.3408943408499285e-01 2.4051772862582772e-02 -4.1888766865607635e-01 4.4048307920190266e-01 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 1 0 0 0 0 +P 570 22 -1.3565519498958165e-01 -2.2676802553368905e-01 1.6299504540646192e-01 3.1047295237937217e-01 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 1 0 0 0 0 +P 572 22 1.2278616621454207e-02 3.3315291206237996e-02 1.3700714622479238e-02 3.8057622567098298e-02 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 1 0 0 0 0 +P 574 22 3.4337132127359193e-03 2.6278263694003868e-02 3.2781733576932932e-02 4.2154235676950993e-02 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 1 0 0 0 0 +P 576 22 -2.1971692730504189e-01 4.0487950901408658e-02 6.0872361489346244e-02 2.3156046015210280e-01 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 1 0 0 0 0 +P 578 22 -6.5080422478704020e-02 1.4780156799337593e-01 1.6169437091533618e+00 1.6249885302555025e+00 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 1 0 0 0 0 +P 580 22 -9.6754780728841897e-04 -2.1736372129631837e-02 1.1269797581427982e-02 2.4503354048855987e-02 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 1 0 0 0 0 +P 582 22 -3.9367645685764430e-01 1.5550365848863854e-01 2.7266784789645226e-01 5.0349805934464398e-01 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 1 0 0 0 0 +P 584 22 7.1123513784841722e-03 -2.5848103644413822e-01 -7.2628004232803536e-02 2.6858491905207016e-01 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 1 0 0 0 0 +P 586 22 -4.2865418981593975e-02 -5.7687269223843832e-02 -3.5500429863546519e-02 8.0159501591941129e-02 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 1 0 0 0 0 +P 588 223 4.8704055034862392e-01 -3.5751374929749274e-01 -4.5334150716676227e+00 4.6420521179146625e+00 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 0 0 0 0 +P 590 211 2.3592192506966145e-01 8.1488461732517337e-02 -5.7233958686926234e-01 6.3980615167547805e-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 0 0 0 0 +P 592 -211 2.4805451902234124e-01 3.0548024721188094e-01 -2.3958669644380710e+00 2.4319760529309771e+00 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 1 0 0 0 0 +P 594 211 1.0488802059780338e+00 -5.0742444238384699e-01 -1.7288911768918163e+00 2.0895391208722200e+00 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 1 0 0 0 0 +P 596 22 3.1152346667941438e-01 -1.8460163474866495e-01 -1.1227277133266274e+00 1.1796788343085065e+00 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 1 0 0 0 0 +P 598 22 1.4578394081241561e-01 -1.4392298922477043e-01 -3.3526285435798248e-02 2.0758322678220872e-01 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 1 0 0 0 0 +P 600 22 3.1015455264095260e-01 3.1320509008833647e-01 4.2467618168902384e+00 4.2695759981967800e+00 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 1 0 0 0 0 +P 602 22 1.6002738768978980e-01 3.7519069133342203e-01 5.2416577152761965e+00 5.2575043912286512e+00 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 1 0 0 0 0 +P 604 22 -1.3305729582002584e-02 6.5719080727114673e-02 6.3985585719697713e-01 6.4335958685684069e-01 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 0 0 0 0 +P 606 211 5.2394465015238212e-01 3.6682702985754118e-01 -6.2490553510138218e+00 6.2832517561523735e+00 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 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 2 0 0 -220 0 +P 609 111 -8.7232309329445451e-02 -2.3995471551345536e-02 -2.9943149441869452e+00 2.9987208679413939e+00 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 2 0 0 -222 0 +P 611 111 -7.7192852378523358e-01 7.3780982779285698e-01 -9.6872752294012336e+00 9.7468845257544565e+00 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 0 0 0 0 +P 613 211 1.0327478319521827e-01 -2.9696360012404494e-01 -1.9981974224513948e+00 2.0275911285646449e+00 1 0 0 0 0 +P 614 111 6.3026061270601327e-02 1.6289134720296952e-01 -7.6316722630094946e-01 7.9444930051751483e-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 1 0 0 0 0 +P 616 22 -3.4051479929526993e-02 5.3273882692476640e-02 -2.1506183008037907e-01 2.2416333469156946e-01 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 1 0 0 0 0 +P 618 22 1.3726994904771693e-02 -5.1450901266621621e-02 -7.0051649099692037e-01 7.0253752909641898e-01 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 1 0 0 0 0 +P 620 22 -8.7622234215550196e-02 2.0421434472580581e-02 -4.7677313274400424e-01 4.8518791310313425e-01 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 1 0 0 0 0 +P 622 22 -1.0035717519513651e-01 1.6652560645400125e-01 -1.8237005745575405e+00 1.8340354756273183e+00 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 1 0 0 0 0 +P 624 22 7.1747515705343115e-02 1.8293520232410862e-01 -6.4467164441818470e-01 6.7395439265287005e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 14 2101 -9.4236956683619111e-01 2.1652326170818870e-01 6.5343226954385455e+03 6.5343227926610143e+03 2 0 0 -9 0 +P 15 2 3.9267024168019415e-01 -4.4202803044505923e-01 2.0241152885643043e+01 2.0252475128694172e+01 2 0 0 -11 0 +P 3 21 5.4969932515599695e-01 2.2550476873687056e-01 5.5705531929900893e+01 5.5708700481541165e+01 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 3 0 0 -2 0 +P 29 2203 2.4852244145458005e+00 5.1082941165122786e-01 -5.5694416402834304e+03 5.5694422716067393e+03 2 0 0 -11 0 +P 4 1 -2.4852244145458005e+00 -5.1082941165122786e-01 -1.2650126797311423e+03 1.2650152240853247e+03 3 0 0 -4 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 2 0 0 -9 0 +P 16 21 1.2784868462321570e+00 -8.7405515584658322e-01 5.0158545116382854e+01 5.0182448617257258e+01 2 0 0 -11 0 +P 5 -2 5.1478982848448318e-01 -3.7127142663721519e-01 4.3686552602229858e+00 4.4145214715099570e+00 3 0 0 -5 0 +P 17 21 -1.6686180664312625e-01 9.4299371379547992e-01 -4.2196845113635542e+00 4.3269871021549715e+00 2 0 0 -11 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 3 0 0 -5 0 +P 23 21 -6.2117781148280848e-01 -2.8319314770868491e+00 -4.2435587401747085e+01 4.2534512761940860e+01 2 0 0 -11 0 +P 24 21 -1.0853374093767046e-01 2.4951738842432462e-02 -1.2807245422014727e+01 1.2807729598250830e+01 2 0 0 -11 0 +P 25 21 -4.7236154263853830e-02 -2.8124786400644658e-01 -7.3009915305624826e+00 7.3065593095945598e+00 2 0 0 -11 0 +P 26 21 -3.6487430314729372e+00 1.0613239469355105e+00 -1.4428971573317793e+02 1.4433974435543163e+02 2 0 0 -11 0 +P 27 21 -8.5735899903395096e-01 1.3023755707753566e+00 -8.6410163495004923e+01 8.6424230409151221e+01 2 0 0 -11 0 +P 28 21 2.0970411268715061e-01 -2.3598056104377471e-01 -5.0430489298734267e+02 5.0430499179922384e+02 2 0 0 -11 0 +V -5 0 0 0 0 0 0 2 0 +P 8 -24 2.4764319374549677e+00 -4.6617630836504320e+00 -4.5253788365526782e+02 4.5961679266155716e+02 3 0 0 -7 0 +P 7 22 6.1062538570560743e-01 4.7283777698592582e+00 -5.7841992636145454e+00 7.4958242253514973e+00 3 0 0 -6 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 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 2 0 0 -8 0 +V -8 0 0 0 0 0 0 2 0 +P 12 -14 -9.1890454246686382e+00 -3.9174945591477190e+01 -1.6776899637465104e+02 1.7252695749496510e+02 1 0 0 0 0 +P 11 13 1.1665477362123605e+01 3.4513182507826755e+01 -2.8476888728061687e+02 2.8708983516659214e+02 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 2 0 0 -10 0 +V -10 0 0 0 0 0 0 9 0 +P 37 333 -1.1091211096030533e+00 1.4407005271255402e-01 2.4365019278869586e+00 2.8692745467802063e+00 2 0 0 -17 0 +P 38 -321 5.7487835922576980e-01 -1.6335008561432823e-01 3.0727085777785232e+00 3.1689662892385013e+00 1 0 0 0 0 +P 39 323 -4.9346996389094194e-01 1.1818828175705887e-01 1.1352455312350665e+01 1.1390232114301151e+01 2 0 0 -18 0 +P 40 333 4.6705005789470379e-02 -1.1036790308186785e-02 6.0989748896587884e+01 6.0998269072082245e+01 2 0 0 -19 0 +P 41 -313 6.6116839338003747e-02 2.0047724383885190e-01 1.0174249585391416e+02 1.0174747600392061e+02 2 0 0 -20 0 +P 42 -211 6.6195102743584266e-01 2.3352413161979789e-03 1.9139236560226081e+01 1.9151189010327013e+01 1 0 0 0 0 +P 43 213 -1.1330549383455299e+00 2.6772966756529654e-01 8.9903421865118207e+02 8.9903532297395714e+02 2 0 0 -21 0 +P 44 2112 -3.4375880581316148e-01 2.1765097284394738e-02 5.4362110987103097e+03 5.4362111908181760e+03 1 0 0 0 0 +P 36 321 -2.7347780861062648e-01 1.7597531166764313e-01 9.6890202910053802e-01 1.1349755610206478e+00 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 2 0 0 -11 0 +P 19 21 -2.1357165232265416e+00 4.1733949000175592e+00 -2.5122523216850832e+00 5.3188271063165358e+00 2 0 0 -11 0 +P 20 21 2.1357165232265416e+00 -4.1733949000175592e+00 -7.2379746050422105e+00 8.6236179438975249e+00 2 0 0 -11 0 +P 21 21 2.6814323415953143e+00 -1.7234320325764891e+00 -3.0705360378789067e+01 3.0870365293672400e+01 2 0 0 -11 0 +P 22 21 -2.6814323415953143e+00 1.7234320325764891e+00 -1.0476850460974710e+02 1.0481698266758141e+02 2 0 0 -11 0 +P 45 92 -1.4985589873352057e-01 2.0882523139261866e+00 -6.4263147483284502e+03 6.6115068849940917e+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 0 0 0 0 +P 47 113 6.8753804353602468e-02 -1.4130704072596839e-01 2.6547465088091574e+01 2.6560329224240288e+01 2 0 0 -22 0 +P 48 -211 -3.3705321336487631e-01 -1.6764450883023393e-01 9.4322808686628328e+00 9.4408215596006979e+00 1 0 0 0 0 +P 49 113 5.9981396172818402e-01 -2.6687872216516484e-01 2.2150499557325571e+00 2.4423648313647601e+00 2 0 0 -23 0 +P 50 323 -3.0748077012799063e-01 -6.1187613112430157e-02 -1.4211926385251549e-02 9.7630268316421653e-01 2 0 0 -24 0 +P 51 -313 1.4293786442054000e-02 4.6772668279335211e-01 -3.8804113875347573e-01 1.1164769507355792e+00 2 0 0 -25 0 +P 52 111 8.0828878413878216e-02 -1.3461691433235596e-02 -7.1537625213290668e-01 7.3259627847649700e-01 2 0 0 -26 0 +P 53 113 -2.3019258837112086e-01 1.4760214205834568e-01 -1.6237023486867372e+00 1.8378775046348748e+00 2 0 0 -27 0 +P 54 223 3.6047327332852880e-01 7.5799280465086738e-01 8.7170208350794642e-01 1.4416890830588578e+00 2 0 0 -28 0 +P 55 113 1.2071093866836292e-01 1.1591242726102904e-01 9.8276244825033521e-01 1.2590091097043403e+00 2 0 0 -29 0 +P 56 -213 8.6853791013771414e-02 1.0081227171470937e+00 7.4151556572422583e+00 7.5162670018422455e+00 2 0 0 -30 0 +P 57 323 1.7595879809624551e-01 4.2346453954444735e-01 1.9254698599629185e+00 2.1644899849972110e+00 2 0 0 -31 0 +P 58 -321 1.9281037659969705e-01 1.9746412913081476e-01 6.1305191305880840e+00 6.1565472217895207e+00 1 0 0 0 0 +P 59 223 -2.6288378130564161e-01 7.8988896286242360e-01 6.4711248501236418e-01 1.3136617569823170e+00 2 0 0 -32 0 +P 60 213 1.3477705105748747e-01 1.0791582261049506e+00 5.7410962076755911e-01 1.3686690060033124e+00 2 0 0 -33 0 +P 61 -211 -1.0477191658271894e+00 1.1109784504404854e+00 -1.2067512533016968e-01 1.5381907679342692e+00 1 0 0 0 0 +P 62 213 -9.0771555535794080e-02 5.8156740475700852e-01 -1.5429989954783372e+00 1.7635958777355596e+00 2 0 0 -34 0 +P 63 221 1.9394945996907104e-01 -2.7378498648517408e-01 -2.6641812525406994e-01 6.9516525503715665e-01 2 0 0 -35 0 +P 64 -213 2.3145858795471871e-01 2.7432639064021358e-01 -1.3070279086378056e+00 1.5830182128523671e+00 2 0 0 -36 0 +P 65 213 -4.5215145872547829e-01 2.8618967307221177e-01 -1.2291118677569723e+00 1.5726626222361686e+00 2 0 0 -37 0 +P 66 2114 9.5337951957865841e-01 -6.6930286811799566e-01 -3.0888059546382411e+00 3.5274937030638558e+00 2 0 0 -38 0 +P 67 211 -1.3638801371095294e-01 -6.4982930487435098e-01 -8.8570463039764313e-01 1.1157205263708860e+00 1 0 0 0 0 +P 68 -2212 8.4949812677802405e-01 -2.0925593127370514e+00 -5.2863706614781849e+00 5.8246473634168812e+00 1 0 0 0 0 +P 69 -211 1.1996322072747415e-01 2.3947821917494630e-01 -1.0577767107781229e+00 1.1000510654288269e+00 1 0 0 0 0 +P 70 323 1.4839074584839513e+00 -9.6300995788224397e-01 -1.5468440231889129e+01 1.5599973376532240e+01 2 0 0 -39 0 +P 71 -321 -2.7807528173586266e-01 3.2958209552231060e-01 -8.8436515986138815e+00 8.8679064484052397e+00 1 0 0 0 0 +P 72 213 4.8061490063831430e-01 -1.4112979134958886e-01 -1.3685006725010053e+01 1.3716801676932008e+01 2 0 0 -40 0 +P 73 111 -6.6907029234828486e-01 1.7831713785343023e-01 -1.8676644255472887e+01 1.8689962875930050e+01 2 0 0 -41 0 +P 74 -213 -3.4452308143729315e-01 -1.7121136884034183e-01 -1.7652850045181019e+01 1.7672257910595317e+01 2 0 0 -42 0 +P 75 2212 -3.9310532187388653e-01 8.2724580957524885e-02 -3.9775536449638281e+01 3.9788629350604467e+01 1 0 0 0 0 +P 76 -2212 -6.6472940215998422e-01 6.9112739079230504e-02 -2.6053725752692522e+01 2.6079179778862152e+01 1 0 0 0 0 +P 77 3224 -4.0748859480073829e-01 -1.6567442175761489e+00 -3.4492491111585458e+01 3.4561985780104671e+01 2 0 0 -43 0 +P 78 311 -2.7836629784373346e-01 5.3322922791229938e-02 -1.9006813991509159e+01 1.9015440690833291e+01 2 0 0 -44 0 +P 79 -2112 -1.8554501644645200e+00 2.6350454241754517e-01 -6.6852567158069846e+01 6.6885429335288151e+01 1 0 0 0 0 +P 80 -211 -4.2046149174458702e-01 -6.9882022956308021e-02 -4.4649768696748026e+01 4.4652021184053616e+01 1 0 0 0 0 +P 81 211 -1.2259199970940475e+00 5.3487296324306122e-01 -3.4837579454291500e+01 3.4863525222574047e+01 1 0 0 0 0 +P 82 311 -1.7383101241416014e-02 2.3283172203271379e-01 -6.0426993477096801e+01 6.0429493865934312e+01 2 0 0 -45 0 +P 83 -323 -5.6275410327378561e-01 -7.3372721057032519e-02 -1.4782442541338469e+02 1.4782894973592141e+02 2 0 0 -46 0 +P 84 211 -1.3376613799881737e-01 -9.1221013772773460e-02 -7.1076645245746004e+00 7.1108782461679887e+00 1 0 0 0 0 +P 85 113 1.7962314176801067e-02 8.3402302003156015e-01 -6.4704726517325719e+02 6.4704829538644378e+02 2 0 0 -47 0 +P 86 -211 2.6669980751781586e-01 -2.7900006105441300e-01 -5.1992006516225081e+02 5.1992022715790301e+02 1 0 0 0 0 +P 87 213 3.4004774827278034e-01 1.9424841399564963e-01 -1.0234108895905553e+03 1.0234111585835141e+03 2 0 0 -48 0 +P 88 2214 5.6694851511787103e-01 9.8756119003734349e-02 -8.8006311174153848e+02 8.8006411796473139e+02 2 0 0 -49 0 +P 89 223 1.2311994476002099e+00 3.3274939646704554e-01 -2.8709726179406398e+03 2.8709730082148681e+03 2 0 0 -50 0 +V -13 0 0 0 0 0 3 1 0 +P 30 21 -3.0018432040494889e+00 2.3510280488458859e+00 2.3572952493951814e+02 2.3576035994992682e+02 2 0 0 -13 0 +P 31 21 -9.3397002995552358e-01 -2.9110210203548919e+00 1.0151020105427864e+02 1.0155622709355579e+02 2 0 0 -13 0 +P 32 21 3.0018432040494889e+00 -2.3510280488458859e+00 2.9747792961823656e+01 2.9991158390560429e+01 2 0 0 -13 0 +P 90 92 -9.3397002995552336e-01 -2.9110210203548919e+00 3.6698751895562049e+02 3.6730774543404306e+02 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 0 0 0 0 +P 92 -211 -1.2971269419881442e+00 8.9201364509882908e-01 8.3237290846445731e+01 8.3252293024801261e+01 1 0 0 0 0 +P 93 -311 -2.0800376351271022e-02 -2.1447848449823942e-01 2.1067216961652552e+01 2.1074196060922706e+01 2 0 0 -51 0 +P 94 313 -3.6169721163227725e-01 5.4167305000773069e-01 5.0328382832671906e+01 5.0338889823024189e+01 2 0 0 -52 0 +P 95 213 -8.9383792146133589e-01 -3.4747707496988950e-01 5.5172517965309702e+01 5.5185392155323349e+01 2 0 0 -53 0 +P 96 113 -1.2750819481863768e-01 -1.5623904654280926e-01 3.4052323819224185e+01 3.4060522483400433e+01 2 0 0 -54 0 +P 97 -211 -5.7174412643767436e-01 -9.4910638921379709e-01 3.9932536181067732e+01 3.9948149142624189e+01 1 0 0 0 0 +P 98 111 4.2301035938398712e-01 -2.4488475692500022e-01 3.0794121251526874e+00 3.1208820780762889e+00 2 0 0 -55 0 +P 99 -2112 1.1392327237977038e+00 -1.4946995580917366e+00 2.4907483094827445e+01 2.4995949349283496e+01 1 0 0 0 0 +P 100 2112 5.3941297703374469e-01 -8.0160103815638795e-01 1.3991639212989071e+01 1.4056396772840444e+01 1 0 0 0 0 +P 101 223 1.0611518832031974e+00 -1.2174652051210852e-01 2.5293344573217894e+01 2.5327779416383844e+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 2 0 0 -15 0 +P 34 21 -1.0190408349472695e+00 2.8843457133167565e+00 -7.4489250551266313e+00 8.0526007534281785e+00 2 0 0 -15 0 +P 102 92 0 0 -1.7298054229303805e+01 1.8365856296991847e+01 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 2 0 0 -57 0 +P 104 223 -7.8492867790755053e-02 4.3394394227840256e-02 -9.8224104521300815e-01 1.2585985464264791e+00 2 0 0 -58 0 +P 105 213 1.7802555916136972e-01 3.2682068270571213e-01 -2.6219971626667316e+00 2.7700960092936304e+00 2 0 0 -59 0 +P 106 111 1.9399017214205891e-01 -8.3030313783991927e-01 -1.7838453636238722e+00 1.9817566372581945e+00 2 0 0 -60 0 +P 107 -211 -2.8807161077252330e-01 5.2270945259205381e-01 -3.1028538235201237e+00 3.1628139464400387e+00 1 0 0 0 0 +P 108 223 2.5327277586763380e-01 -1.3809611761063298e-01 -2.5208029155085732e+00 2.6552334264970665e+00 2 0 0 -61 0 +P 109 113 -5.1298857283856425e-01 2.0369159186405553e-01 -2.5954878859418495e+00 2.7657410684198265e+00 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 1 0 0 0 0 +P 111 -321 -5.7394313137697117e-01 1.4822473510143655e-01 1.0456318807218525e+00 1.2993722638769123e+00 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 2 0 0 -63 0 +P 113 211 -3.2865335309279431e-01 3.8638815541686355e-02 3.0947555914917761e+00 3.1155253073174056e+00 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 1 0 0 0 0 +P 115 -321 1.3575758368981719e-01 -4.9420936146039221e-02 2.8853847102143465e+01 2.8858430416506227e+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 2 0 0 -64 0 +P 117 111 2.7385784310641714e-01 -8.2056981273926410e-02 5.6493041302322936e+01 5.6493925927065568e+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 0 0 0 0 +P 119 111 -9.9992390976039472e-02 -1.6475195526542039e-01 2.6108067152460302e+02 2.6108077754791344e+02 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 0 0 0 0 +P 121 211 -1.8624572770160111e-01 -1.3127938613092227e-01 3.2252024135430615e+00 3.2362527932060021e+00 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 0 0 0 0 +P 123 -211 -1.6247431881658703e-01 -5.1699432548800363e-02 5.7355202446922249e-01 6.1442041410871839e-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 2 0 0 -67 0 +P 125 211 1.4022431052005524e-01 1.6558274022536204e-01 6.2252034723267097e-02 2.6539706450628059e-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 1 0 0 0 0 +P 127 211 4.0280392074036164e-02 1.7574053807250894e-01 -4.8344970037768237e-01 5.3451907767910722e-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 1 0 0 0 0 +P 129 22 9.7623839846720670e-02 -3.6283883937879464e-02 -6.7660656234392436e-01 6.8457532423167167e-01 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 0 0 0 0 +P 131 211 -1.4928718685232592e-01 -1.4694398802989114e-01 -1.4262687777514764e+00 1.4483099154066095e+00 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 0 0 0 0 +P 133 -211 -3.8819295397041619e-02 1.4724962955523235e-01 1.9980284787495695e-01 2.8738537544248732e-01 1 0 0 0 0 +P 134 111 2.0231940384947528e-01 2.6016983537227312e-01 -3.2669937178005843e-03 3.5616254443665946e-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 0 0 0 0 +P 136 211 5.8283610844239242e-03 -1.5557183535927488e-01 -1.4674435833912692e-02 2.0959887813876332e-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 0 0 0 0 +P 138 111 9.5339794246549328e-02 8.8013625641534876e-01 7.0319293620400245e+00 7.0887220046595649e+00 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 2 0 0 -70 0 +P 140 211 1.0962911252013950e-01 -9.7777127091463953e-02 1.6583863230006918e-01 2.6184183347465939e-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 0 0 0 0 +P 142 -211 -2.2545152457920553e-01 2.9947362949028894e-01 3.5940892111084544e-01 5.3774287737657378e-01 1 0 0 0 0 +P 143 111 1.4309831330975950e-01 4.3829981123911323e-02 1.6283401092664959e-01 2.5909980708576519e-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 0 0 0 0 +P 145 111 6.8642869327424763e-02 -8.0069400494364870e-04 7.4330954752438616e-02 1.6869254830845534e-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 0 0 0 0 +P 147 111 -4.9897414700676830e-02 6.3480828441875170e-01 -9.5634160118663458e-01 1.1568405977146143e+00 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 2 0 0 -74 0 +P 149 111 2.0056546976702694e-01 -6.3971292668162691e-02 -9.6007889896875975e-02 2.6787300959774685e-01 2 0 0 -75 0 +P 150 111 7.4076068237410586e-02 -1.5223454337385475e-01 -1.3786736993110663e-01 2.5668975860653298e-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 0 0 0 0 +P 152 111 -2.0372722030621004e-01 -1.3281479666583887e-01 -4.6890059482311636e-01 5.4518980064978795e-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 0 0 0 0 +P 154 111 -3.3667971097780769e-01 5.4736357389487933e-01 -7.3983201246404340e-01 9.8920731744041990e-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 1 0 0 0 0 +P 156 -211 3.4904634150528252e-01 4.3536191550377301e-02 -6.3812683238072887e-01 7.4189917616694812e-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 2 0 0 -79 0 +P 158 211 9.4508317557362542e-01 -6.6433046586075961e-01 -1.1051882572613879e+01 1.1112970141252495e+01 1 0 0 0 0 +V -40 0 0 0 0 0 0 2 0 +P 159 211 1.1797515950852807e-04 -3.5831001471481000e-01 -6.3446479853082618e+00 6.3562901068893360e+00 1 0 0 0 0 +P 160 111 4.8049692547880568e-01 2.1718022336522114e-01 -7.3403587397017889e+00 7.3605115700426689e+00 2 0 0 -80 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 1 0 0 0 0 +P 162 22 -1.6508152971228482e-01 9.8760404301210553e-02 -5.8983626961637485e+00 5.9014987947474795e+00 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 0 0 0 0 +P 164 111 -4.7731618002122833e-01 -2.9187784704482400e-01 -1.0465068868316324e+01 1.0480883046399720e+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 2 0 0 -82 0 +P 166 211 6.1174989411821111e-02 -3.8276203094391698e-02 -3.6341062113987506e+00 3.6375012285468498e+00 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 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 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 2 0 0 -84 0 +P 170 -211 -1.7576348254901095e-02 -3.3187471449250006e-01 -5.7959190696970708e+01 5.7960311557020233e+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 0 0 0 0 +P 172 -211 -7.4993185802273390e-02 8.4488984251952770e-01 -6.1410225298490639e+02 6.1410285462921172e+02 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 0 0 0 0 +P 174 111 2.5409858703281496e-01 -1.5284689738481802e-01 -3.2441921835528876e+02 3.2441938195200805e+02 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 1 0 0 0 0 +P 176 111 1.8441356365968553e-01 -6.4143169139693756e-02 -3.0353336334061498e+02 3.0353345615133566e+02 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 0 0 0 0 +P 178 -211 3.9966223398528372e-01 -1.6207176715030084e-02 -1.3243593232465137e+03 1.3243593910046934e+03 1 0 0 0 0 +P 179 111 2.9820310548844248e-01 2.7433902091179635e-01 -5.4068104775355994e+02 5.4068121643578320e+02 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 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 1 0 0 0 0 +P 182 -211 2.7929506800841261e-02 3.3600416982304704e-01 1.9387469077481260e+01 1.9390902915405476e+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 0 0 0 0 +P 184 111 -2.6301694449702272e-03 -1.6538867476866476e-01 1.8885785523187302e+01 1.8886992210507319e+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 0 0 0 0 +P 186 211 -1.1552097688423035e-01 1.7779241460690620e-01 5.4530335580076184e+00 5.4589385422854200e+00 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 1 0 0 0 0 +P 188 22 1.3549665622695076e-01 -1.4930999651612464e-01 1.3840869762369830e+00 1.3986956697928123e+00 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 0 0 0 0 +P 190 -211 2.5412965478975740e-02 -9.0827288189110802e-02 3.8528483651797676e+00 3.8565289737097310e+00 1 0 0 0 0 +P 191 111 5.3198633201816781e-01 1.6603512019262065e-01 1.2684371283985527e+01 1.2697325371470487e+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 0 0 0 0 +P 193 211 4.2568393842247360e-01 -7.1494346415030066e-02 -1.4526970261360295e+00 1.5218826142789872e+00 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 0 0 0 0 +P 195 211 -1.9416584560678463e-01 1.2013959035912780e-01 -1.3157418602565010e-01 2.9820370235825233e-01 1 0 0 0 0 +P 196 111 3.9213905941188162e-02 1.0795934726966315e-02 -6.7240374167578831e-02 1.5618947129684915e-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 0 0 0 0 +P 198 111 4.5819030623118540e-01 7.6300831800201821e-02 -1.2360737189153828e+00 1.3273499962899518e+00 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 1 0 0 0 0 +P 200 22 8.6452061747327294e-02 -2.4609259358863311e-01 -6.7839343307098976e-01 7.2681027347815286e-01 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 0 0 0 0 +P 202 211 1.2543443318519545e-01 2.9266802084010526e-02 -2.6988866705562498e-01 3.3001518182922718e-01 1 0 0 0 0 +P 203 111 1.6976212237140365e-01 -2.6210463640834042e-01 -1.9346621202013536e+00 1.9643459823464879e+00 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 0 0 0 0 +P 205 -211 1.1499260483261517e-01 6.9737906011698547e-02 -1.2871443966610814e+00 1.3016555448570508e+00 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 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 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 1 0 0 0 0 +P 209 22 2.4113439554956292e-01 -1.8563705044705985e-02 4.0134214667263159e+01 4.0134943345740787e+01 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 1 0 0 0 0 +P 211 22 -6.4490887525149324e-02 -1.6042978102883673e-01 1.4901178207850950e+02 1.4901188239533926e+02 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 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 1 0 0 0 0 +P 214 22 1.4273109276990548e-01 2.5985255780542243e-01 2.1304606071875768e-04 2.9647185706224466e-01 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 1 0 0 0 0 +P 216 22 -2.8990508836005870e-03 2.4532752483918649e-01 1.5522046022239493e+00 1.5714748251578743e+00 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 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 1 0 0 0 0 +P 218 22 1.4597052735358410e-01 -9.3507294289533575e-03 1.3481030230072180e-01 1.9891869847540525e-01 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 1 0 0 0 0 +P 221 22 4.4433158429187325e-02 -6.5331570702425915e-02 5.7575850427009183e-02 9.7762458289636103e-02 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 1 0 0 0 0 +P 223 22 1.9918305730394971e-02 4.2273685389968030e-01 -5.5984897325031024e-01 7.0180770827741401e-01 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 1 0 0 0 0 +P 225 22 3.1301920974180393e-02 6.0650545011126985e-03 -2.6814071781105887e-02 4.1660407922362044e-02 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 1 0 0 0 0 +P 227 22 2.2495915020264604e-02 3.0897490934717161e-02 1.0618283268731158e-02 3.9666977175415293e-02 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 1 0 0 0 0 +P 229 22 5.3242834410132556e-02 -1.4922231314776616e-01 -4.9706474096342455e-02 1.6605069022525973e-01 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 1 0 0 0 0 +P 231 22 -1.5024839438700266e-01 -2.4296058517503317e-02 -3.1123943785453106e-01 3.4646048281349889e-01 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 1 0 0 0 0 +P 233 22 -1.1718985001359787e-01 1.0102902599004575e-01 -1.2872580179196724e-01 2.0127259397566213e-01 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 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 1 0 0 0 0 +P 236 22 2.1478963812303389e-01 7.2768110805940062e-02 -4.0269625247378293e+00 4.0333431495768082e+00 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 1 0 0 0 0 +P 238 22 -2.9214261570838684e-01 -2.4474036593162976e-01 -7.4829162988857805e+00 7.4926151302972830e+00 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 1 0 0 0 0 +P 240 -211 5.0123644770492803e-03 -1.8153717996772661e-01 -4.7083166890535697e+00 4.7138844598514140e+00 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 0 0 0 0 +P 242 211 1.6662348476816261e-01 2.3316481548576576e-01 -3.4927202109991391e+01 3.4928656662315888e+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 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 1 0 0 0 0 +P 245 22 9.0908049065072161e-02 -9.4509648655208264e-02 -8.5304951917361947e+01 8.5305052710671873e+01 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 1 0 0 0 0 +P 247 22 1.4882567766781341e-01 1.5799677520724986e-02 -1.8550802425959540e+02 1.8550808463086122e+02 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 1 0 0 0 0 +P 249 22 1.1705464726993600e-01 3.4439652232437577e-02 -1.2306012080021719e+02 1.2306018129047324e+02 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 1 0 0 0 0 +P 251 22 1.0611185962569689e-02 -1.5514243362924734e-01 1.8634822130961478e+01 1.8635470952582644e+01 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 1 0 0 0 0 +P 253 22 3.4927699330329121e-01 5.6337602764626502e-02 6.9560506087998260e+00 6.9650418818353623e+00 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 1 0 0 0 0 +P 255 22 -3.7683019272935298e-02 -2.4826278578968294e-02 4.2367411948796398e-03 4.5324430780290477e-02 1 0 0 0 0 +V -91 0 4.0801170434363689e-05 6.7944764440148752e-06 -1.1007054009880686e-04 1.1819855786593737e-04 0 2 0 +P 257 22 3.3735132400291051e-01 1.1541367327565770e-01 -8.9640270848063985e-01 9.6470930728221138e-01 1 0 0 0 0 +P 256 22 1.2083898222827490e-01 -3.9112841475455871e-02 -3.3967101043474301e-01 3.6264068900774049e-01 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 1 0 0 0 0 +P 259 11 1.2719536651632049e-01 -2.1827911800405031e-01 -1.2119610200457922e+00 1.2380122005983156e+00 1 0 0 0 0 +P 260 -11 4.8036432108104722e-03 -2.4822349547580416e-02 -1.5389178821322286e-01 1.5595565589173888e-01 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 2 0 0 -97 0 +P 262 111 -2.5683085044881010e-01 -5.2606596492694856e-02 6.0028373615088171e+00 6.0100753347077882e+00 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 2 0 0 -99 0 +P 264 111 8.1692953034130586e-02 1.2637725332603228e-01 8.6178494344894041e+00 8.6202200334250758e+00 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 0 0 0 0 +P 266 -211 -1.5240691281153346e-01 -1.3509759160206133e-01 -2.3101061811660287e-01 3.3811967838627000e-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 2 0 0 -101 0 +P 268 111 -9.3765757918072581e-02 3.6642028788255870e-01 6.5980702099412725e-01 7.7241229280937296e-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 1 0 0 0 0 +P 270 22 7.5406148811942117e-02 1.5913383266840953e-01 2.0162338756716944e+00 2.0239092631302644e+00 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 1 0 0 0 0 +P 272 22 -1.8518079410849772e-01 -2.0927207569544297e-02 2.7563022818897256e+00 2.7625951827355784e+00 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 1 0 0 0 0 +P 274 22 -1.8982823478016234e-01 1.3113403154797515e-01 3.0429739539364984e+01 3.0430614179252810e+01 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 1 0 0 0 0 +P 276 22 4.0925939406402977e-03 1.2398917639195919e-01 5.0145378556855054e+00 5.0160721656780911e+00 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 1 0 0 0 0 +P 278 22 1.1316249313101989e-02 5.5550771279655430e-02 5.2944134857972314e-01 5.3246792135695076e-01 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 1 0 0 0 0 +P 280 22 -2.7734843220561155e-02 3.1484209872019292e-01 4.9057322637055928e-01 5.8357249685589085e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 2 -9.2820880453940977e-02 1.6078548997780676e-01 2.3716619521660218e+03 2.3716619594325907e+03 3 0 0 -3 0 +P 31 2103 9.2820880453940977e-02 -1.6078548997780676e-01 4.2732759596864398e+03 4.2732760333322394e+03 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 3 0 0 -2 0 +P 4 21 2.8438240035156620e-01 -3.1515117320208030e-01 -3.8035697500337951e+03 3.8035697737212290e+03 3 0 0 -4 0 +P 14 2203 -1.4352353535702972e-01 4.4026544033137993e-01 -2.9147371774374851e+03 2.9147373162806402e+03 2 0 0 -9 0 +P 33 1 -1.4085886499453648e-01 -1.2511426712929963e-01 -8.4457632655431709e+01 8.4458487486809346e+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 3 0 0 -5 0 +P 30 21 -5.9675894419355358e-01 -9.5050198748863479e-01 1.7993365505285936e+02 1.7993715512908133e+02 2 0 0 -11 0 +P 27 21 1.9372450554350890e-01 -5.2219821644400299e-01 1.2126803157754753e+02 1.2126931063898388e+02 2 0 0 -11 0 +P 28 21 -2.3795161344271451e-01 7.1609049465699426e-01 1.0167002308049599e+02 1.0167282330965078e+02 2 0 0 -11 0 +P 29 21 3.4192681965240401e-01 2.4291397251790178e-01 3.1944822354571826e+01 3.1947575751740445e+01 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 3 0 0 -5 0 +P 11 1 -9.8845705950266671e-01 -4.9594742583225058e+00 1.9044643416753072e+01 1.9707378698059269e+01 2 0 0 -9 0 +P 12 21 2.6044264833858743e-01 -3.1030363873699462e+00 1.1727671819750038e+01 1.2134041021282840e+01 2 0 0 -9 0 +P 13 21 7.5691010065949327e-01 -5.4011599026484958e-01 5.1524452837099819e+00 5.2356786174330239e+00 2 0 0 -9 0 +P 15 2 -1.8311360214351913e-01 -1.4805571719661075e+00 -2.1411903451828903e+03 2.1411908903188796e+03 2 0 0 -11 0 +P 16 21 4.3968109830755170e-01 -2.9544412986812052e-01 -3.1326029880598599e-01 6.1541751428642444e-01 2 0 0 -11 0 +P 17 21 2.7322936418785587e-01 -3.3048055802107390e-01 -7.6828223487860681e-01 8.7984616673284832e-01 2 0 0 -11 0 +P 18 21 2.9260573411497637e-01 1.3800589535119959e-01 -2.1582422861451325e+00 2.1823550372232328e+00 2 0 0 -11 0 +P 19 21 1.0223538075759215e+00 -1.4522275427264191e+00 -2.4692904014076042e+01 2.4756689616992229e+01 2 0 0 -11 0 +P 20 21 1.2063407328190996e+00 -7.4888083722587195e-01 -1.1210724096630058e+01 1.1300283856734948e+01 2 0 0 -11 0 +P 21 21 -5.4913410279006636e-01 1.0519596533332111e-01 3.4138908785026851e+00 3.4593735537367594e+00 2 0 0 -11 0 +P 22 21 6.4314231442077185e-01 3.1223541119268439e+00 7.5129505920112933e+00 8.1613205938051365e+00 2 0 0 -11 0 +P 23 21 1.2086144926726743e+00 3.4136643559921347e+00 6.3113339858338602e+00 7.2764544943269689e+00 2 0 0 -11 0 +P 24 21 2.4400337609788756e+00 6.9128514496625586e+00 2.4435124802319205e+01 2.5511107463705560e+01 2 0 0 -11 0 +P 32 -2 -7.1644398238490137e-01 8.6978994307757240e-01 -1.6189139599034304e+03 1.6189143857217191e+03 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 3 0 0 -6 0 +P 8 24 -1.9258873467210137e+01 9.2892052050382574e+00 8.6309059655865008e+02 8.6709454534264773e+02 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 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 2 0 0 -8 0 +V -8 0 0 0 0 0 0 9 0 +P 37 21 -1.0274145350843458e+00 -2.5975390684764665e-01 3.0272901154602945e+00 3.2074192370485028e+00 2 0 0 -15 0 +P 38 21 -2.6505880313310659e-01 5.5852304317418111e-01 2.2691371688433564e+00 2.3518477097595722e+00 2 0 0 -15 0 +P 39 21 2.3721188780666763e-01 2.7959374185858841e+00 2.6258281663350946e+01 2.6407780888220010e+01 2 0 0 -15 0 +P 40 21 3.3737992516561754e-01 1.9913397179993726e+00 1.8847206960760861e+01 1.8955117232772242e+01 2 0 0 -15 0 +P 41 21 9.3276664365375481e+00 2.1890146052654789e+01 2.2925649830527726e+02 2.3048801676129600e+02 2 0 0 -15 0 +P 34 4 -2.2700858926615656e+01 -1.6386334061858157e+01 3.4828459595439756e+02 3.4941129163080990e+02 2 0 0 -15 0 +P 35 21 -7.4503781777991165e+00 -8.5245909374436160e+00 1.2403122509900038e+02 1.2454686501555096e+02 2 0 0 -15 0 +P 36 21 -2.0027042250268927e+00 -1.0978633289287578e+00 2.1859513177439908e+01 2.1978499595209318e+01 2 0 0 -15 0 +P 42 -3 4.2852829509391617e+00 8.3218012077022046e+00 8.9256848114117304e+01 8.9747707271978427e+01 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 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 2 0 0 -25 0 +P 53 213 -1.5404831881885364e-01 -1.7509696799112910e+00 5.5613068929310039e+00 5.8606722227440304e+00 2 0 0 -26 0 +P 54 223 -5.1151607297610935e-01 -1.4176238804041423e+00 5.9722475655096865e+00 6.2094845467470412e+00 2 0 0 -27 0 +P 62 211 5.4968392420735113e-01 1.4756230968950473e-01 -1.8166962247609939e+00 1.9088719207253644e+00 1 0 0 0 0 +P 63 113 -8.7881886984997282e-01 -4.1468335965402653e-01 -2.3734060373081363e+01 2.3767575310168922e+01 2 0 0 -32 0 +P 64 -211 4.4026111693685754e-01 6.5311510758350333e-01 -3.0666546764622510e+01 3.0676977677837161e+01 1 0 0 0 0 +P 65 211 4.5884509599108031e-02 -7.3354084743733938e-01 -5.8516434437769988e+02 5.8516482259132022e+02 1 0 0 0 0 +P 66 2214 -4.9851835496356245e-01 6.3248545172766857e-01 -1.2651382944982172e+03 1.2651390770952955e+03 2 0 0 -33 0 +P 67 111 2.6622991607876895e-01 4.8781176567800157e-02 -9.9923848265446202e+02 9.9923852842810425e+02 2 0 0 -34 0 +P 55 223 2.1595395219106844e-01 -1.8737275125004771e+00 7.0985598228311808e+00 7.3857993220666733e+00 2 0 0 -28 0 +P 56 113 -4.7677120078934182e-02 -1.0152067643004612e+00 2.4368651745900176e+00 2.7334250167134941e+00 2 0 0 -29 0 +P 57 -211 2.1984336478833474e-01 4.7825007839895524e-03 2.2352079885760445e+00 2.2503307566776294e+00 1 0 0 0 0 +P 58 211 -3.3498969538027201e-01 6.9648415330084867e-02 -1.1066497586449596e-01 3.8574022288587678e-01 1 0 0 0 0 +P 59 113 1.3909780482065315e-01 -3.3069396730450967e-01 -1.7329298988899207e+00 1.9541788674726714e+00 2 0 0 -30 0 +P 60 -211 -2.8599753074680223e-01 6.4799383066966643e-01 -3.4804982825084108e+00 3.5545799571290018e+00 1 0 0 0 0 +P 61 111 4.1381767414316867e-01 -3.0024085245337195e-01 -3.1398849342385469e+00 3.1840990307421961e+00 2 0 0 -31 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 2 0 0 -11 0 +P 26 21 8.0759531061318546e-01 3.3406171290107096e+00 -1.6092526703563814e+02 1.6096196290888045e+02 2 0 0 -11 0 +P 68 92 6.5875152481577262e+00 8.7100003117229168e+00 2.4104713366823571e+03 7.0983573201329691e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 59 0 +P 71 -211 5.7620530575271300e-01 6.1421445206986870e-02 -3.3565202145218319e+02 3.3565255066790428e+02 1 0 0 0 0 +P 72 213 2.7459733564460981e-01 -4.6031431506940862e-01 -3.8571257213471154e+02 3.8571373935139655e+02 2 0 0 -37 0 +P 73 223 -5.7926526471571715e-01 -1.9525945624624185e-02 -8.4084403531743789e+01 8.4090163084732680e+01 2 0 0 -38 0 +P 74 -213 -7.3223666424297493e-02 3.6563852853395723e-01 -1.6810679233890163e+01 1.6836622172984743e+01 2 0 0 -39 0 +P 75 211 6.4146448505876097e-01 -6.3543078272220832e-01 -1.6981265495312542e+01 1.7005825665706883e+01 1 0 0 0 0 +P 76 -211 -1.5924531765929986e-01 1.8172819723608069e-02 -3.3819669982319928e-01 3.9943224111784109e-01 1 0 0 0 0 +P 77 331 -2.1878967436288869e-02 -2.4374301737778187e-01 -4.9639779751442061e+00 5.0614320935167747e+00 2 0 0 -40 0 +P 78 211 3.8160876729373411e-01 4.9824059133778851e-03 -3.9596912966490905e+00 3.9804880385830423e+00 1 0 0 0 0 +P 79 -211 8.2763694246190667e-01 -4.7171503722470046e-02 -5.3206398228798824e+00 5.3866405086107614e+00 1 0 0 0 0 +P 80 213 -9.2963436667075124e-03 -9.3331491880418926e-01 -5.7858987283250789e+00 5.9114736383731179e+00 2 0 0 -41 0 +P 69 323 2.6965373089886259e-02 -7.8436620352785036e-01 -6.3251215118341054e+02 6.3251328488303113e+02 2 0 0 -35 0 +P 70 -311 -5.1319872938403244e-01 -3.5703956672451648e-01 -6.6805309680723667e+02 6.6805357470741524e+02 2 0 0 -36 0 +P 81 111 6.8908760945870035e-02 -7.4336047790866958e-02 -3.2488145678831243e-01 3.6611723081706654e-01 2 0 0 -42 0 +P 82 311 8.0944838552899079e-01 -2.2401821592795629e-01 -2.2078412448770441e+00 2.4140483096622667e+00 2 0 0 -43 0 +P 83 -311 2.0825369584158310e-01 -2.9899435700293758e-01 -7.9825277911540260e+00 8.0063220390387535e+00 2 0 0 -44 0 +P 84 221 4.8600128562752809e-02 -2.9412330619311078e-01 -1.2557942635204722e+00 1.4019954445479514e+00 2 0 0 -45 0 +P 85 221 2.4321537069915566e-01 2.7897521224850303e-02 -2.0466306405757497e+00 2.1326815209210972e+00 2 0 0 -46 0 +P 86 113 -1.4242560875299726e-01 2.0098755311294011e-01 -9.3281640560500445e-01 1.1994889447031605e+00 2 0 0 -47 0 +P 87 -213 6.2995506969133175e-01 -5.3351618156801850e-01 -3.0268003767966487e+00 3.2877827626531611e+00 2 0 0 -48 0 +P 88 213 -4.4470514704296038e-01 2.6740585629040976e-02 -1.1790528923872898e+00 1.4643031719074535e+00 2 0 0 -49 0 +P 89 2112 -5.6465354678112804e-02 4.1816050990651149e-01 8.1955389032907600e-01 1.3162472839013655e+00 1 0 0 0 0 +P 90 -2212 -3.0528283048302102e-02 -4.0769401042822612e-01 1.4135481591829637e+00 1.7451691532440265e+00 1 0 0 0 0 +P 91 211 3.5221781060737328e-01 1.2088893752373304e+00 9.4706264424757203e-01 1.5817327033035504e+00 1 0 0 0 0 +P 92 -213 -2.9970119748950869e-01 5.7605009045793187e-01 1.9803888278068278e+00 2.1668024374217025e+00 2 0 0 -50 0 +P 93 323 5.3610594923405364e-01 1.5427556638110751e+00 4.1323311180303905e+00 4.5365775346539055e+00 2 0 0 -51 0 +P 94 -323 1.6764230184000011e+00 4.2661339477853915e+00 1.1422857768230408e+01 1.2340341966212989e+01 2 0 0 -52 0 +P 95 221 1.6521720620708708e-01 1.7305666862956806e+00 5.3795959051527014e+00 5.6799569880571275e+00 2 0 0 -53 0 +P 96 111 3.4091599571513381e-01 4.2578712335088759e-01 7.7507818540955942e-01 9.5733180478016111e-01 2 0 0 -54 0 +P 97 111 1.8636424148468736e-01 1.4599342475026946e+00 5.4281639450086834e+00 5.6257731070340586e+00 2 0 0 -55 0 +P 98 223 1.0069287360881967e+00 1.3509470596584172e+00 6.7582433289884696e+00 7.0091592256500288e+00 2 0 0 -56 0 +P 99 211 -3.4146209562673929e-01 1.5158950380356184e-01 5.2424511386917438e-01 6.5870210621260206e-01 1 0 0 0 0 +P 100 2112 -2.1154881148046689e-01 -1.0735068025792132e+00 7.0201326895106064e-01 1.6039900777454950e+00 1 0 0 0 0 +P 101 -2212 4.7469686931938010e-02 2.7754353367769968e-01 1.0039073590343506e+00 1.4026633105228941e+00 1 0 0 0 0 +P 102 111 1.7437178164815947e-01 -5.6048963315392508e-01 1.2589521396946993e-01 6.1532377851712639e-01 2 0 0 -57 0 +P 103 113 -3.1883151078144545e-01 -8.4606752962111467e-02 1.3914257241876302e-01 9.7271600632710076e-01 2 0 0 -58 0 +P 104 111 -1.1927545843921665e-01 -2.6335718259241964e-01 1.5515874628685319e-01 3.5479216107209921e-01 2 0 0 -59 0 +P 105 211 2.9312098402116255e-01 -6.2323282486230425e-01 -2.6684020281172388e-01 7.5167981481212065e-01 1 0 0 0 0 +P 106 1114 -4.4062914350054427e-01 2.4638804826043872e-01 -2.3241854935092199e+01 2.3280385473541951e+01 2 0 0 -60 0 +P 107 211 1.6813770838362588e-01 1.0298303158833499e-01 -3.2163782230045408e+00 3.2254370947351405e+00 1 0 0 0 0 +P 108 -2212 3.4457685450197267e-01 1.2186713305630190e+00 -5.3030716885410776e+01 5.3054134400573211e+01 1 0 0 0 0 +P 109 2214 1.2020287573136482e-01 3.7479987432403911e-01 -1.0966878173055145e+01 1.1045072570427967e+01 2 0 0 -61 0 +P 110 211 2.1009296797946009e-01 4.0052377799798089e-01 -1.6589816940124287e+01 1.6596567845300751e+01 1 0 0 0 0 +P 111 -2224 1.9658035577195881e-01 5.1914185814482328e-01 -3.0401238446225552e+01 3.0431387801714855e+01 2 0 0 -62 0 +P 112 323 -7.0406239463945264e-01 -1.9001858472173550e-01 -1.3737092732247977e+01 1.3787611740640099e+01 2 0 0 -63 0 +P 113 333 8.2916907628090986e-01 6.4319863963863733e-01 -5.3961951740099057e+00 5.5928926174794418e+00 2 0 0 -64 0 +P 114 -323 -4.4426618158725512e-01 -1.3800261314922405e-02 -1.0646399753717462e+00 1.4542717828265139e+00 2 0 0 -65 0 +P 115 213 4.6955864160020383e-01 -2.2138569541027434e-01 2.7803521001940323e-01 1.1481484305370542e+00 2 0 0 -66 0 +P 116 223 2.8564258373702955e-01 -7.0418327707246611e-02 -7.3250403882459747e-01 1.1252011437712499e+00 2 0 0 -67 0 +P 117 -213 -2.1467687225524573e-01 4.2741287912168013e-01 -7.4289123826589104e-04 1.0126576271927121e+00 2 0 0 -68 0 +P 118 113 1.7395230303924547e-01 -4.1608763137866295e-01 1.2004688227692567e+01 1.2053458057779810e+01 2 0 0 -69 0 +P 119 221 -1.9567117285229671e-01 2.8889340409270481e-01 5.3075723066706981e+00 5.3471274437637426e+00 2 0 0 -70 0 +P 120 111 -1.9087267842121336e-01 5.4252206762536037e-01 6.2318609039251946e+01 6.2321408960009578e+01 2 0 0 -71 0 +P 121 323 1.3070310306706950e-01 -6.1697493783128776e-01 2.9221144136450206e+01 2.9240305127864819e+01 2 0 0 -72 0 +P 122 -311 -4.9885948856357186e-02 1.2822300091927889e-02 4.5329270329114166e+00 4.5604556717363289e+00 2 0 0 -73 0 +P 123 2112 -4.7863725043095502e-02 -1.0825222107858737e-01 1.4718621532001902e+02 1.4718926177372941e+02 1 0 0 0 0 +P 124 -2112 1.9344894382294975e-01 -6.5018197886060145e-03 2.1812090513132770e+02 2.1812301463133616e+02 1 0 0 0 0 +P 125 313 -5.9342554539725090e-01 -3.3850796627627300e-01 5.9882469556753961e+02 5.9882576075663053e+02 2 0 0 -74 0 +P 126 3224 3.5223036811653632e-02 -3.4414941922204685e-02 2.5172332877548356e+03 2.5172336781781446e+03 2 0 0 -75 0 +P 127 -213 1.1663718569999987e-01 -2.4641154449404332e-01 1.1115119089591544e+03 1.1115121550661386e+03 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 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 2 0 0 -77 0 +P 130 -211 -7.1966617449677556e-02 -1.2056328262765621e-01 -2.8359148413735429e+01 2.8359839443063105e+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 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 0 0 -78 0 +P 133 211 -4.5604000871635657e+00 -4.7377185099919146e+00 7.2689922512815102e+01 7.2986899785775833e+01 1 0 0 0 0 +P 134 113 -5.1617104439380377e+00 -3.6881619942643642e+00 7.3158252581438703e+01 7.3436922903472933e+01 2 0 0 -79 0 +P 135 111 -1.0963849349911059e-01 -3.7173119868868731e-02 3.1818045250357909e+00 3.1867698498692643e+00 2 0 0 -80 0 +P 136 -213 -1.8575628946181175e+00 -2.6189368213267570e+00 3.1084349603980588e+01 3.1260260648800589e+01 2 0 0 -81 0 +P 137 113 -1.9702196225596913e+00 -7.5035350425204206e-01 1.8597051073293592e+01 1.8730245499430811e+01 2 0 0 -82 0 +P 138 331 -1.8481053319477775e-01 -3.7946619601020762e-02 3.7006231730721044e+00 3.8272144972627773e+00 2 0 0 -83 0 +P 139 323 5.4756376576753629e-01 3.2204856220182068e+00 3.6360592290988627e+01 3.6518541749074082e+01 2 0 0 -84 0 +P 140 -323 1.3311259853615089e+00 3.7379512567484707e+00 3.4112393141607136e+01 3.4353366987544497e+01 2 0 0 -85 0 +P 141 113 4.4805357982732119e-01 3.0030852094344707e+00 2.9362369493599097e+01 2.9533424673175375e+01 2 0 0 -86 0 +P 142 213 4.7752867246856443e+00 1.0891165458689070e+01 1.1393626861842178e+02 1.1455865944632977e+02 2 0 0 -87 0 +P 143 313 6.6208049038407921e+00 1.4438654991280693e+01 1.5197109868684942e+02 1.5280167720844955e+02 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 2 0 0 -17 0 +P 44 -2 -2.1378197802742376e+00 -2.3547451315414101e+00 -2.4068773120863955e+01 2.4277992865784292e+01 2 0 0 -17 0 +P 144 92 0 0 -2.9533951070096659e+01 3.0601225272095888e+01 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 2 0 0 -89 0 +P 146 -321 3.7073773471981229e-02 1.7044744097734246e-01 -1.6359966049568000e+00 1.7177172777396612e+00 1 0 0 0 0 +P 147 323 -4.7852083980675375e-01 -6.4107933193332411e-01 -5.4042107535842536e+00 5.5372300715771994e+00 2 0 0 -90 0 +P 148 -321 -1.4361781113938632e+00 -1.3612518803910378e+00 -1.7494258484193114e+01 1.7612732187859947e+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 2 0 0 -19 0 +P 46 -1 -1.8673293224089542e+00 -2.3063057798131541e+00 -3.0519906661080940e+00 4.2568312362999272e+00 2 0 0 -19 0 +P 149 92 0 0 2.1338515322241175e+01 2.8827194430929943e+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 0 0 0 0 +P 151 213 -2.0771851785387677e-01 4.2519322630392231e-01 6.3745975039723319e+00 6.4406040423465116e+00 2 0 0 -91 0 +P 152 311 3.6602657683902218e-01 2.7637537539729494e-02 1.1512728067232807e+00 1.3068449765883683e+00 2 0 0 -92 0 +P 153 -313 6.6372648031348541e-02 5.1378838214452516e-01 4.7850741764275320e+00 4.9115056800953063e+00 2 0 0 -93 0 +P 154 111 1.4261163265033819e-01 2.7035572090208759e-01 1.0157832817158920e-01 3.4923924571247367e-01 2 0 0 -94 0 +P 155 -213 2.4227172397104807e-01 -2.6403356349582480e-01 1.3501615848246171e+00 1.6600803924695697e+00 2 0 0 -95 0 +P 156 223 -1.1140200512928606e+00 -8.1846412592718654e-01 -1.3130036485215084e+00 2.0628775198106455e+00 2 0 0 -96 0 +P 157 213 -6.1483051266327160e-01 -1.1270525155338409e+00 -1.1718195444822426e+00 1.9257453281475732e+00 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 2 0 0 -21 0 +P 48 21 1.6032500697232532e-01 -4.0174652936366986e+00 2.9067715926331368e+02 2.9070496495396026e+02 2 0 0 -21 0 +P 158 92 0 0 2.9824498574246365e+02 2.9927454657221676e+02 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 1 0 0 0 0 +P 160 -2212 -1.5090219905010202e-01 6.0109050142401987e-01 3.2508753296939252e+00 3.4398578846651389e+00 1 0 0 0 0 +P 161 213 -1.3185920968150541e-01 5.1253454596483206e-01 2.8515148690980490e+00 3.0007314728969532e+00 2 0 0 -98 0 +P 162 2112 -2.9589184870575446e-02 8.1735278132525635e-01 3.9016671878094096e+00 4.0956977083678945e+00 1 0 0 0 0 +P 163 111 -1.6746154439354902e-02 7.6768893592516851e-01 2.2228509364031699e+00 2.3556130034237106e+00 2 0 0 -99 0 +P 164 -2112 1.5035799035598119e-01 2.6606398705642531e-01 4.0650357319587354e+00 4.1833843784038702e+00 1 0 0 0 0 +P 165 -213 1.6067245661882737e-01 -1.2470285603911700e-01 4.7366324423320982e+00 4.8109860944668297e+00 2 0 0 -100 0 +P 166 3222 -3.8764262791963577e-01 -4.9242591697810201e-01 5.0258807822997092e+01 5.0276785049131227e+01 2 0 0 -101 0 +P 167 -3322 -1.2309526187710051e-01 -2.5079778996359208e+00 1.8364860958891464e+02 1.8367048176432749e+02 2 0 0 -102 0 +P 168 -313 2.7382092931236746e-01 1.3620019933979283e-01 1.7228910752887057e+01 1.7258673294130080e+01 2 0 0 -103 0 +P 169 223 7.5340086447302335e-02 -2.0758010905029387e-01 2.0512148660659509e+01 2.0528076850627027e+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 2 0 0 -23 0 +P 50 21 2.6546407805414689e+00 -1.5019300198250121e+00 1.7863101526357177e+00 3.5346591659698707e+00 2 0 0 -23 0 +P 170 92 0 0 2.6738714322256449e+01 2.8672785295462329e+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 2 0 0 -105 0 +P 172 111 3.4623449760310282e-01 -1.0264048500571971e-01 9.3540089980756547e-01 1.0117350642601477e+00 2 0 0 -106 0 +P 173 -3222 -8.2595480421942175e-02 1.6978619896754682e-01 3.9520196416308315e+00 4.1314294876570097e+00 2 0 0 -107 0 +P 174 3222 -6.9310081431249626e-01 6.6149599980748386e-01 1.1548527819325548e+01 1.1649079855816854e+01 2 0 0 -108 0 +P 175 -211 -1.7560637096079756e-01 -5.6685470235918856e-01 2.1835043271014025e+00 2.2670096564592077e+00 1 0 0 0 0 +P 176 -2112 -1.9019072817495811e-01 1.9359363989648683e-02 1.6880525050363864e+00 1.9413552850309042e+00 1 0 0 0 0 +P 177 223 2.4540057371541862e-01 -2.8376756848088225e-01 2.3218440550203154e+00 2.4773736223134661e+00 2 0 0 -109 0 +P 178 3212 8.6531980859782553e-01 -4.4081003261827684e-01 1.9558781200763713e+00 2.4881170750393125e+00 2 0 0 -110 0 +P 179 321 -5.3790313905821097e-01 2.2848304826566801e-01 6.7526821892341016e-01 1.0203785659457194e+00 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 0 0 0 0 +P 181 111 4.5572139817173168e-01 -1.9605261286710240e+00 8.0168967910902253e+00 8.2668130771988633e+00 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 0 0 0 0 +P 183 111 -1.7253765650383687e-01 -9.8623454845585490e-01 3.8611934028869754e+00 3.9911730008078652e+00 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 0 0 0 0 +P 185 211 -3.7700741046237424e-01 -6.0130878108935260e-01 2.2322285260513164e+00 2.3464933017539047e+00 1 0 0 0 0 +P 186 111 -1.0933571600133193e-01 -4.0829396875412233e-02 6.6468542013166909e-01 6.8822063800669864e-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 0 0 0 0 +P 188 211 8.5502102732195953e-02 -1.0434887961818418e+00 3.1241617499531409e+00 3.2978850650225713e+00 1 0 0 0 0 +P 189 111 2.0070706376734491e-02 -7.0135766106683461e-01 3.3675483594623192e+00 3.4425146267966618e+00 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 0 0 0 0 +P 191 -211 -1.0819266888464543e-01 -2.5677967550644770e-01 1.4308860604703502e+00 1.4644303186911753e+00 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 0 0 0 0 +P 193 -211 -1.8721057036304636e-01 -4.5597688585249807e-01 -8.2213318313620309e-01 9.6868233895383105e-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 1 0 0 0 0 +P 195 22 1.7737180278809139e-01 -1.7465849917339041e-01 -1.1766695636128137e+00 1.2027126047774541e+00 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 0 0 0 0 +P 197 211 -1.7492617419341611e-01 -3.8276425193759644e-01 -4.9597781553916187e+00 4.9795568853643175e+00 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 1 0 0 0 0 +P 199 111 1.8917548469115111e-02 2.0422630417328605e-01 -1.7583218167193181e+02 1.7583235310194934e+02 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 1 0 0 0 0 +P 201 22 9.9196037593150224e-02 -8.2885750223403894e-03 -5.8097680311353236e+02 5.8097681164102789e+02 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 2 0 0 -116 0 +P 203 211 2.8598252516876038e-01 -1.7893990607076177e-01 -2.2708235927663534e+02 2.2708265274987977e+02 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 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 0 0 0 0 +P 206 111 -2.2653332810387683e-01 -2.8113619229296893e-01 -1.9147601799003647e+02 1.9147640596122679e+02 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 0 0 0 0 +P 208 -211 -6.5502456608810988e-02 -1.0670875197924584e-01 -3.2314799704027415e+01 3.2315343677978753e+01 1 0 0 0 0 +P 209 111 -3.8422305313766852e-01 1.5028302730875231e-01 -4.5360292923159719e+01 4.5362369933879265e+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 0 0 0 0 +P 211 111 -3.2681884277691242e-01 4.3998200609129667e-01 -1.3698938528391123e+01 1.3710562757477057e+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 2 0 0 -120 0 +P 213 111 -7.8383943780866334e-03 -2.5856424870530047e-02 -1.3381901875049935e+00 1.3452518624659702e+00 2 0 0 -121 0 +P 214 221 6.4900290020672255e-02 -4.4057740462636476e-02 -2.0562824278408782e+00 2.1293548454136566e+00 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 0 0 0 0 +P 216 111 8.7518585113978108e-03 7.5995291486977395e-02 -3.8164316030992712e-01 4.1197449140322134e-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 1 0 0 0 0 +P 218 22 3.2218662320975935e-02 -1.0644037587932491e-01 -2.7370684788599875e-01 2.9543702272865918e-01 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 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 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 0 0 0 0 +P 222 211 -6.8179243585667487e-02 -8.9502122733327735e-02 -3.5872734119120031e-01 4.0102883867347155e-01 1 0 0 0 0 +P 223 111 9.6442464484397972e-02 -1.3582615380310958e-01 -7.6925620551999541e-01 7.9857661069166797e-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 2 0 0 -126 0 +P 225 111 -1.7096717800365663e-02 2.3430492041171140e-02 -2.9482920802539647e-01 3.2555360237865472e-01 2 0 0 -127 0 +P 226 111 -1.2923175399401406e-03 -3.4357452815580718e-02 -7.2489645177744166e-01 7.3815755150789031e-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 0 0 0 0 +P 228 211 -1.8340879492189527e-01 -2.1217788017682243e-01 -4.4027072040772847e-01 5.4034834231204232e-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 0 0 0 0 +P 230 111 4.8683959823501871e-01 1.6019262842131735e-01 -9.3312701072855297e-01 1.0731356350254004e+00 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 0 0 0 0 +P 232 111 1.5134720443552790e-01 2.3316725891878089e-02 -1.0875069644217970e-01 2.3129193754522784e-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 0 0 0 0 +P 234 111 -1.0701046239974184e-01 4.0837590445731536e-01 5.4634206967446686e-01 7.0351359325923257e-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 2 0 0 -132 0 +P 236 211 -1.0332680675003121e-01 3.3144169812122276e-01 5.1385596659843058e-01 6.3565538427314960e-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 1 0 0 0 0 +P 238 111 1.0752995164331018e+00 2.8906487567215131e+00 7.7248778457409824e+00 8.3188987622639523e+00 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 2 0 0 -134 0 +P 240 111 -3.1779121290212139e-02 5.5540485052736488e-01 1.4046209535474936e+00 1.5167940150475190e+00 2 0 0 -135 0 +P 241 111 1.9411932483124106e-01 5.9987065342701418e-01 1.9607331550552445e+00 2.0640303338005435e+00 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 1 0 0 0 0 +P 243 22 7.0460546608299382e-02 1.3625766240761386e-01 3.1360978691828562e-01 3.4911593725302786e-01 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 1 0 0 0 0 +P 245 22 9.9865851746466866e-02 1.1714392193129286e+00 4.2318961831067856e+00 4.3921735322597746e+00 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 0 0 0 0 +P 247 211 2.9246050150768399e-01 2.7688149449938243e-01 1.5693519673596861e+00 1.6262047501142205e+00 1 0 0 0 0 +P 248 111 2.1938108245656321e-01 2.7911573154785918e-01 2.5748643801448514e+00 2.6027254614107957e+00 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 1 0 0 0 0 +P 250 22 9.4972394969514082e-02 -4.2637195208601375e-01 1.4030456822520732e-01 4.5880079467754337e-01 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 0 0 0 0 +P 252 211 -2.9299877647187089e-01 3.1963917806909597e-01 2.6394989349136422e-01 5.2646635062917657e-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 1 0 0 0 0 +P 254 22 -1.3676863020353203e-01 -2.4945236956791661e-01 1.6660942228000178e-01 3.2968294236019380e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 256 -211 -2.4924753882325268e-01 -5.7307336326951931e-02 -8.0502092127927884e+00 8.0554799125216761e+00 1 0 0 0 0 +P 255 2112 -1.9138160467729162e-01 3.0369538458739065e-01 -1.5191645722299414e+01 1.5224905561020293e+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 1 0 0 0 0 +P 258 211 3.7175815217142839e-02 2.6740268932865324e-01 -1.4844147785192647e+00 1.5152073320452397e+00 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 1 0 0 0 0 +P 260 -211 -3.3996362219612538e-03 -2.4490681945780598e-03 -9.8059964122678123e-01 9.9049129059046015e-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 2 0 0 -138 0 +P 262 211 -3.2410970022291918e-01 -3.5537657560602026e-01 -7.5887342744711495e+00 7.6052420922480319e+00 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 1 0 0 0 0 +P 264 321 5.6285097287058927e-01 4.6545950697236843e-01 -3.1778246174274649e+00 3.2978271679122821e+00 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 2 0 0 -139 0 +P 266 -211 -4.9735599405596756e-02 -2.6708316642768254e-01 -2.9208743241984952e-01 4.2261318095261929e-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 0 0 0 0 +P 268 111 4.2313793796367721e-01 9.7966164171689893e-02 5.4268928151349305e-01 7.0807791981977419e-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 0 0 0 0 +P 270 211 -1.4271113813788025e-02 -1.6982856077004688e-02 -5.1470645008149614e-03 1.4141555523701732e-01 1 0 0 0 0 +P 271 111 1.3605163797175168e-01 2.3453626189350621e-01 -3.3108250223819413e-01 4.4872322207133397e-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 0 0 0 0 +P 273 111 1.6228776433218009e-01 -4.0425537266713100e-02 -2.6536335188142224e-01 3.4148038221394672e-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 0 0 0 0 +P 275 211 -2.8494447274304274e-01 9.9144559728567477e-02 2.3859558054260877e+00 2.4090014293513886e+00 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 2 0 0 -143 0 +P 277 111 -1.4355787675334006e-01 2.4399905742791486e-01 2.9250863072903583e+00 2.9418521223034277e+00 2 0 0 -144 0 +P 278 111 -4.9167220466248530e-02 3.5605701780104602e-02 6.1268254615206985e-01 6.3030523108015979e-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 1 0 0 0 0 +P 280 22 -2.0331319966104358e-01 5.2854530978175718e-01 5.8136645928885947e+01 5.8139403989568891e+01 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 1 0 0 0 0 +P 282 111 -8.5724359704836925e-02 5.6304652189988848e-02 7.7384665104011416e+00 7.7403231465298052e+00 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 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 1 0 0 0 0 +P 285 -211 -3.1422244950363426e-01 -4.4329822380123687e-02 3.7312147425334075e+02 3.7312163530094614e+02 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 2 0 0 -148 0 +P 287 211 -3.9039541146372155e-02 2.1107166763967344e-01 4.2163294363264680e+02 4.2163302137220023e+02 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 0 0 0 0 +P 289 111 3.1720852422812107e-01 -3.0976971985094492e-01 5.7528165457763157e+02 5.7528184126713484e+02 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 0 0 0 0 +P 291 211 -4.3236004417965990e-01 8.1308540264093787e-01 -8.7028198251002880e+02 8.7028248092469994e+02 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 2 0 0 -150 0 +P 293 111 -1.4776451472050109e+00 -1.0577813465072390e+00 2.2908056187391484e+01 2.2980417629868313e+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 0 0 0 0 +P 295 211 -4.0033937843749587e+00 -2.6524733090065382e+00 5.2159779948282527e+01 5.2380577511954947e+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 1 0 0 0 0 +P 297 22 -2.3881849645594963e-02 -7.2540252771141386e-02 1.9413905114422942e+00 1.9428920579725391e+00 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 0 0 0 0 +P 299 111 -1.4863948599066970e+00 -2.4605035091902030e+00 2.7696156184156585e+01 2.7845264124728452e+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 0 0 0 0 +P 301 -211 -6.6001250531248001e-01 -8.3817907178677653e-02 3.8600596933206637e+00 3.9194620255376229e+00 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 2 0 0 -153 0 +P 303 111 2.6736441445761979e-02 -6.4664089522388349e-02 2.1034626839622458e-01 2.5954081529339207e-01 2 0 0 -154 0 +P 304 221 -1.1025089952773082e-01 9.3855832111780987e-03 2.3898831919172103e+00 2.4542792268866394e+00 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 2 0 0 -156 0 +P 306 211 3.3032821126792672e-01 6.6929463924130272e-01 6.4845571157288475e+00 6.5288615250536779e+00 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 2 0 0 -157 0 +P 308 -211 5.8970851337611008e-01 1.9279465025540885e+00 1.8876557468741275e+01 1.8984431397938966e+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 0 0 0 0 +P 310 211 -1.1698407055756944e-01 6.6383270616705115e-01 9.5858997540570403e+00 9.6105833857405401e+00 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 0 0 0 0 +P 312 111 3.4083938668539631e+00 7.3637743950997869e+00 8.1016841670164283e+01 8.1422289183628351e+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 1 0 0 0 0 +P 314 -211 1.4809390437974521e+00 3.6232085950452890e+00 3.9666759311137888e+01 3.9859654978528077e+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 2 0 0 -159 0 +P 316 211 1.0392575238106148e+00 7.2574223863792198e-01 -2.9001820808281353e+00 3.1681688535488077e+00 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 2 0 0 -160 0 +P 318 211 -4.9457973416370704e-01 -2.4449879686077405e-01 -2.6488057631132196e+00 2.7092509168981773e+00 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 0 0 0 0 +P 320 111 -2.6308556172843650e-01 -1.0479134122864993e-01 1.3534295300588093e+00 1.3893114594005462e+00 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 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 1 0 0 0 0 +P 323 211 2.5061687005741484e-01 4.1111105095076861e-01 1.4668363167462029e+00 1.5501321481721444e+00 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 1 0 0 0 0 +P 325 22 1.4114779065072622e-01 2.1691933131626764e-01 1.2899176186669112e-01 2.8916356916760982e-01 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 0 0 0 0 +P 327 111 4.1393041000816050e-01 1.7855384603152144e-01 6.8502876375156219e-01 8.3108595694378429e-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 0 0 0 0 +P 329 211 -7.2592869091610646e-01 -5.6546117318346967e-01 -8.6889461933755874e-01 1.2732542743250301e+00 1 0 0 0 0 +P 330 111 7.5195477124670789e-03 -3.7276307923386154e-02 -2.3492322655699543e-01 2.7359566792284662e-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 0 0 0 0 +P 332 111 -4.0237996847179375e-01 -1.8278784340935744e-01 -9.6114577330509182e-02 4.7199432952211190e-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 0 0 0 0 +P 334 111 -3.3335360091003480e-01 5.6583731288352612e-01 2.2813085968389601e+00 2.3777899407437744e+00 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 1 0 0 0 0 +P 336 22 -7.4857902311984215e-03 2.8558964801153959e-03 7.8874014455751498e-02 7.9279905123913585e-02 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 0 0 0 0 +P 338 111 6.7289261809585277e-02 1.3713406947866838e-01 4.0726953178542686e+00 4.0777935639557263e+00 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 1 0 0 0 0 +P 340 211 -5.6758936924963282e-02 8.2014820752740830e-02 1.0325214502289962e+01 1.0326639449062938e+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 2 0 0 -167 0 +P 342 111 -6.1144406211079527e-02 -6.4714570154417439e-01 4.3086981861879245e+01 4.3092096279523801e+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 2 0 0 -169 0 +P 344 111 4.3323721233431339e-02 -1.5003883936399090e-01 1.1853284016418417e+00 1.2031673276307036e+00 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 0 0 0 0 +P 346 -211 1.5951683483820989e-01 -1.9899631133411760e-01 1.3219014899412011e+01 1.3222211609571907e+01 1 0 0 0 0 +P 347 111 -7.4674051730606081e-02 -1.1330685333969616e-01 1.8391615088576583e+00 1.8490941871844135e+00 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 0 0 0 0 +P 349 -211 1.2820088924631756e-01 5.1534025291000973e-01 1.0318751511090531e+00 1.1688700341138147e+00 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 1 0 0 0 0 +P 351 22 1.4033350106869832e-01 5.4163779105943517e-03 4.8397333694826589e-01 5.0393751552023625e-01 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 1 0 0 0 0 +P 353 111 1.2185508809238729e-01 1.3773583207185866e-01 1.0497232649974710e+00 1.0742245367740775e+00 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 1 0 0 0 0 +P 355 111 -2.8752136302370007e-01 3.1395818652041142e-02 2.9221390377369709e+00 2.9395187340600821e+00 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 1 0 0 0 0 +P 357 111 1.6254024186608135e-01 -5.4323460646157928e-01 1.7376202728837526e+00 1.8327757585203810e+00 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 2 0 0 -175 0 +P 359 22 4.2440133887952043e-02 4.8963717863264443e-02 5.5112841739653869e-02 8.5064892617582183e-02 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 1 0 0 0 0 +P 361 22 6.5790980468783872e-02 -1.8567141221184214e-01 6.5654331790388576e-01 6.8545711368985129e-01 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 1 0 0 0 0 +P 363 22 -1.4452078978212046e-01 -9.5719552670846475e-01 3.7482280417359468e+00 3.8712172488618730e+00 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 1 0 0 0 0 +P 365 22 -1.6658093635336459e-02 -7.6592884067167299e-02 2.6284154819225458e-01 2.7428022427690846e-01 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 1 0 0 0 0 +P 367 22 2.5362907683383399e-02 -5.1640486805460895e-01 2.1691688376471201e+00 2.2299351360646953e+00 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 1 0 0 0 0 +P 369 22 6.1102140270908939e-03 3.5501549883767261e-02 -8.8595935336439027e+01 8.8595942660108562e+01 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 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 1 0 0 0 0 +P 372 22 -2.1288484139337188e-01 -2.5693504327423017e-01 -1.4674830135649992e+02 1.4674868069795471e+02 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 1 0 0 0 0 +P 374 22 -1.7782037660169078e-01 5.8755791844814761e-02 -1.3819694063004073e+01 1.3820962930434334e+01 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 1 0 0 0 0 +P 376 22 -1.8149523905037179e-01 2.5874855200269725e-01 -9.4444486025079506e+00 9.4497354852067552e+00 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 1 0 0 0 0 +P 378 22 -2.7515104904687560e-02 1.7605450827771700e-02 -1.4770409307338708e-01 1.5127303793933949e-01 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 1 0 0 0 0 +P 380 22 2.2770067252179792e-02 -7.2973838334351560e-02 -5.8580783350209997e-01 5.9077447036609565e-01 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 2 0 0 -176 0 +P 382 111 9.4051595670043689e-02 -1.5755662152753916e-01 -9.1611447140274083e-01 9.4401012534229567e-01 2 0 0 -177 0 +P 383 111 -5.8991234477435692e-02 5.1879693076710056e-03 -4.7175090929207414e-01 4.9424224990242172e-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 1 0 0 0 0 +P 385 22 -4.7151088874938803e-02 -5.2992830333063673e-03 -6.6098201979547425e-02 8.1365102394629227e-02 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 0 0 0 0 +P 387 -211 4.1789588401695882e-01 -8.7282582441069474e-03 -6.3432673863972289e-01 7.7237513464870078e-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 1 0 0 0 0 +P 389 22 1.2307273012265166e-01 -7.0007383103435336e-02 -4.6127175879284371e-01 4.8251379881686041e-01 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 1 0 0 0 0 +P 391 22 6.2267559322930169e-02 -3.7322393019573769e-02 -4.0553598837003274e-01 4.1198258194734583e-01 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 1 0 0 0 0 +P 393 22 -1.4702427472264043e-02 5.3561241855756364e-02 -2.8960087494286813e-01 2.9487901717548981e-01 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 1 0 0 0 0 +P 395 22 -3.1271496752553057e-02 1.8232125983285968e-02 -5.6995088522171715e-02 6.7518568132518497e-02 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 1 0 0 0 0 +P 397 22 1.1406207269271662e-02 3.5056505732190810e-02 -4.6625855552734644e-02 5.9439301513772705e-02 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 1 0 0 0 0 +P 399 22 1.2007827458552617e-01 3.9256837468990093e-02 -1.3691268131352266e-01 1.8629270951908428e-01 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 1 0 0 0 0 +P 401 22 -1.1681959734655756e-01 3.7999883038497267e-01 5.4346712538239117e-01 6.7335165091470495e-01 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 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 1 0 0 0 0 +P 404 22 1.0510982471609078e+00 2.8246364319896307e+00 7.4869221627889990e+00 8.0707733191912254e+00 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 1 0 0 0 0 +P 406 22 2.1601819009504697e-02 5.5695914997728446e-01 1.8289153502253255e+00 1.9119627328004498e+00 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 1 0 0 0 0 +P 408 22 1.2964127804323806e-02 3.5824089844551110e-01 7.4272826674382830e-01 8.2471200315568660e-01 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 1 0 0 0 0 +P 410 22 9.8717857676942675e-02 4.5785711823261399e-01 1.5460900319572877e+00 1.6154791063515139e+00 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 1 0 0 0 0 +P 412 22 -5.3958177061138798e-03 7.4258186776740800e-02 5.9475707649892273e-01 5.9939917684096833e-01 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 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 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 1 0 0 0 0 +P 416 22 2.8685562368232276e-01 1.2881424518545415e-01 3.5808914774329187e-01 4.7655754776562892e-01 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 1 0 0 0 0 +P 418 22 -1.5653415608630622e-02 8.6652869458158130e-02 -1.2713140471466566e-01 1.5464845059124649e-01 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 1 0 0 0 0 +P 420 22 -1.4239926135551901e-02 1.0264865654100702e-02 1.3965196634240379e-03 1.7609464228449393e-02 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 1 0 0 0 0 +P 422 22 -4.9596190139431888e-02 4.1468091973747144e-02 5.3909006044410879e-01 5.4295255593644887e-01 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 1 0 0 0 0 +P 424 22 -1.2734670917005905e-01 8.3708998510534635e-02 1.3800686115077676e+00 1.3884573285618313e+00 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 1 0 0 0 0 +P 426 22 -4.8718143319626740e-02 3.3080446741616781e-02 8.9616398642579656e-02 1.0723279512724822e-01 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 1 0 0 0 0 +P 428 22 -5.9337350640484919e-02 -2.7700212109627198e-02 1.7766079519621116e+00 1.7778143991730293e+00 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 0 0 0 0 +P 430 -211 1.2468457532958163e-01 -1.3551844351094258e-01 2.2427512581060007e+00 2.2546229135917155e+00 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 1 0 0 0 0 +P 432 -211 -7.5635894950737050e-03 -1.2815751709391118e-01 2.7593825627613575e+02 2.7593832143806401e+02 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 1 0 0 0 0 +P 434 22 2.6408053243379820e-01 -3.0654209014917899e-01 5.3221760294927924e+02 5.3221775674591811e+02 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 1 0 0 0 0 +P 436 12 -4.2238184423944363e+00 -2.9424417727589072e+00 5.8151692879242468e+01 5.8379088640900576e+01 1 0 0 0 0 +P 437 -323 -9.9910486473977098e+00 -7.9642417228415239e+00 1.6194109235634318e+02 1.6244679657182928e+02 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 1 0 0 0 0 +P 439 22 -1.0914836094260980e+00 -7.3693013073646418e-01 1.5957479430905517e+01 1.6011731707563854e+01 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 1 0 0 0 0 +P 441 22 -4.4284830510871187e-01 -6.6089762381432915e-01 8.1294326020695031e+00 8.1682663229164856e+00 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 1 0 0 0 0 +P 443 22 -2.0504908268697278e-02 4.9521802362317624e-02 7.6612421699404609e-01 7.6799685939270645e-01 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 1 0 0 0 0 +P 445 22 -1.7639118184421713e-02 1.6477124758334672e-02 1.4328248374937363e-01 1.4530142559526124e-01 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 0 0 0 0 +P 447 211 -3.9017277570356779e-02 6.7873350480066846e-02 9.7799031246865564e-01 9.9099645601633257e-01 1 0 0 0 0 +P 448 111 -5.9149728770745383e-02 -5.5443048548393381e-02 1.1932323674186009e+00 1.2035762149117901e+00 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 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 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 1 0 0 0 0 +P 452 22 2.3775344209412506e+00 4.9977773056955250e+00 5.5486707115077145e+01 5.5762040084581187e+01 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 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 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 1 0 0 0 0 +P 456 22 -3.0543733551068413e-02 2.0124412778677454e-02 3.4396625036352763e-01 3.4590561290339050e-01 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 1 0 0 0 0 +P 458 22 1.7104548388578150e-01 8.7885409177554094e-02 4.1149065068348356e-01 4.5420805618564708e-01 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 1 0 0 0 0 +P 460 22 1.1108271846650846e-02 4.9307231316853314e-02 -1.1521037306587376e-01 1.2580948623029431e-01 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 1 0 0 0 0 +P 462 22 7.5508652443164728e-03 -6.0164162191805306e-03 9.1819024799394983e-03 1.3323669284824168e-02 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 1 0 0 0 0 +P 464 22 -2.3331628256149614e-01 3.1300633656152188e-01 1.1577759352332588e+00 1.2218242797723524e+00 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 1 0 0 0 0 +P 466 22 5.8968862511553477e-02 6.3802825188019703e-03 2.0509055145574835e+00 2.0517630137014415e+00 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 1 0 0 0 0 +P 468 111 -7.8957076142989746e-02 -4.4096456938595763e-01 3.0269687171254702e+01 3.0273302842890274e+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 1 0 0 0 0 +P 470 22 -1.1716427381005567e-03 -5.4781226085292756e-01 3.5359059730487374e+01 3.5363303079181698e+01 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 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 1 0 0 0 0 +P 473 22 4.6181601221853615e-02 -5.4388057252354009e-02 1.8515854820070704e-01 1.9843006081461845e-01 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 1 0 0 0 0 +P 475 22 -1.8590552440473678e-02 -9.5298229235763990e-02 5.4420856140060736e-01 5.5280224261234023e-01 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 1 0 0 0 0 +P 477 22 3.6452396204277100e-02 1.3679788521451017e-01 6.0140305570375219e-01 6.1784146348234537e-01 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 1 0 0 0 0 +P 479 22 -2.9115390324447706e-02 7.9761080719343742e-03 7.9106579722816081e-02 8.4670982096361508e-02 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 1 0 0 0 0 +P 481 22 8.2557656234742274e-02 -2.4267906232538228e-01 9.9862063954256941e-01 1.0309956719669151e+00 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 1 0 0 0 0 +P 483 111 1.8052829953764615e-01 5.2050482907261431e-03 2.3403848050717271e-01 3.2497872271853295e-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 1 0 0 0 0 +P 485 22 -3.2565092580075930e-03 1.3040878835159950e-02 1.6009467926091832e-03 1.3536336431013284e-02 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 1 0 0 0 0 +P 487 22 3.2492972877430783e-02 8.7099336464362964e-03 -3.2884829478774430e-01 3.3056445243756311e-01 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 1 0 0 0 0 +P 489 22 -8.8565127466559770e-02 -1.3444885173545086e-02 -4.3251671379206064e-01 4.4169588457442188e-01 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 0 0 0 0 +P 491 211 2.9572692875989670e-01 3.1057457774407260e-01 1.5547461663221218e+00 1.6188348931648355e+00 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 2 0 0 -186 0 +P 493 -211 -4.6399972933638240e+00 -3.7103397152801953e+00 7.1812893272105555e+01 7.2058360483575626e+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 1 0 0 0 0 +P 495 22 -7.8520173533618898e-02 -6.0711804264671466e-02 1.1633549723925771e+00 1.1675813173476850e+00 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 0 0 0 0 +P 497 211 1.0112775431494231e-01 8.7127531238373843e-02 -4.2340636012195859e-01 4.6537163652741326e-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 1 0 0 0 0 +P 499 22 -6.2504364350997391e-02 -8.0774054803624262e-02 4.9964573927914531e+00 4.9975011477210005e+00 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 2 0 0 -187 0 +P 501 111 -6.2447227091235033e-04 1.5224269557071959e-01 1.1632825363342103e+01 1.1634604581279744e+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 1 0 0 0 0 +P 503 22 4.2036692998391960e-02 -4.3780713930145439e-02 1.3441800967046419e-01 1.4748571386491399e-01 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 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 1 0 0 0 0 +P 506 22 8.5557354024655349e-02 1.9217988164873117e-02 2.4045564566629887e+00 2.4061548464669662e+00 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 1 0 0 0 0 +P 508 22 5.2804838205574023e-02 4.9741384257874215e-02 6.8436871652228444e+00 6.8440716369484100e+00 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 0 0 0 0 +P 510 211 -3.6143240034591551e+00 -2.7080378417902127e+00 6.1280058519877166e+01 6.1446414532818906e+01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 21 3.2992939111429004e-01 -7.1181912190923491e-01 9.0096214824555136e+02 9.0096248984688827e+02 3 0 0 -3 0 +P 14 2 -5.5365822308336554e-01 3.4509673924388229e-01 2.5091064739376443e+00 2.6134545117488437e+00 2 0 0 -9 0 +P 29 2101 2.2372883196907553e-01 3.6672238266535262e-01 5.3966101099142470e+03 5.3966101581077546e+03 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 3 0 0 -2 0 +P 4 21 -4.4604738137447780e-01 -4.4508489499117149e-01 -3.3991077613470765e+01 3.3996917744924559e+01 3 0 0 -4 0 +P 16 2203 2.3781727192142083e-01 1.3771298185638053e-01 -6.2853045277091305e+03 6.2853045810455988e+03 2 0 0 -11 0 +P 37 1 2.0823010945305698e-01 3.0737191313479095e-01 -7.4415207898946619e+01 7.4416865722193066e+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 3 0 0 -5 0 +P 13 -1 1.2673117148687165e+00 -1.3842638091505211e+00 7.8698417845006162e+01 7.8721484593363400e+01 2 0 0 -9 0 +P 30 21 -4.6149507887473545e-01 -2.2715799945074164e-01 5.7059132312250952e+01 5.7061450723684736e+01 2 0 0 -25 0 +P 31 21 -4.0362956554163681e-01 1.1673687347620827e+00 1.4998499597455123e+02 1.4999008195235854e+02 2 0 0 -25 0 +P 32 21 2.5074276787416866e-01 -1.3942091873039719e+00 1.0761474191487194e+02 1.0762406500684733e+02 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 3 0 0 -5 0 +P 15 2 -4.1159171909325689e+00 -3.0147215458824776e+00 -2.9604825409076863e+01 3.0043034264596933e+01 2 0 0 -11 0 +P 35 21 -1.6212560032512757e-01 -8.5363446188281877e-01 8.8578769426193138e-01 1.2408047163436402e+00 2 0 0 -25 0 +P 36 21 1.6433585287674621e-01 -4.2451452632135017e-01 -8.6248126834592029e-02 4.6331155282492553e-01 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 3 0 0 -6 0 +P 8 22 4.2504512277975630e+00 1.2725936181188806e+00 1.1349349137188561e+01 1.2185793203339950e+01 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 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 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 1 0 0 0 0 +P 12 -12 3.0654525901059060e+01 -2.3208695038844859e+01 2.0588173180242171e+02 2.0944123513193171e+02 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 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 2 0 0 -35 0 +P 48 213 7.4830653663342495e-01 -1.7382372879353764e-02 4.3774839145295914e+01 4.3790551134415779e+01 2 0 0 -36 0 +P 49 -213 -2.9117511823875525e-01 -4.3939165795158736e-01 1.4260854072619713e+01 1.4288861360745033e+01 2 0 0 -37 0 +P 50 213 -2.1069355383734140e-01 -2.7656697558868826e-01 1.5627412790254821e+01 1.5654259573374869e+01 2 0 0 -38 0 +P 51 111 5.9709496225677960e-01 -5.4692659855521464e-02 5.0127030355570623e+00 5.0502400937061882e+00 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 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 2 0 0 -40 0 +P 54 221 -5.1630481154154895e-01 1.5967696321760094e-02 -2.0035205258790207e+01 2.0049338564902872e+01 2 0 0 -41 0 +P 55 211 -8.7519077897546693e-01 -6.7220077889196328e-01 -6.5156567288365199e+00 6.6099224790975617e+00 1 0 0 0 0 +P 56 111 1.9202974635290213e-01 2.5211810958452568e-01 -9.4217139466307191e+00 9.4280089232669173e+00 2 0 0 -42 0 +P 57 -213 9.4326428486984373e-02 -4.8155754348202640e-01 -4.3195836080971688e+01 4.3206533032295752e+01 2 0 0 -43 0 +P 58 321 -4.2092082351619076e-01 7.6023322511133951e-01 -5.4832750693731569e+01 5.4841857358199974e+01 1 0 0 0 0 +P 59 -323 5.3330045068290033e-01 -4.0351878893496296e-01 -6.3591499500441905e+01 6.3601150529299844e+01 2 0 0 -44 0 +P 60 111 -4.7209376929507818e-01 -5.2551861933480060e-01 -3.3238644448347941e+01 3.3246424570325850e+01 2 0 0 -45 0 +P 61 2224 6.8188613475259922e-03 3.7782727808420416e-02 -9.1247280998350175e+02 9.1247367669780419e+02 2 0 0 -46 0 +P 62 111 2.2414808927512009e-01 4.5621474029144382e-01 -5.1490251726043825e+03 5.1490251994632381e+03 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 2 0 0 -13 0 +P 18 -2 3.6919233007313528e+00 -8.1942682496522661e+00 1.0292203617146285e+02 1.0331370605822661e+02 2 0 0 -13 0 +P 63 92 0 0 3.9857967694938566e+02 3.9910791979502875e+02 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 2 0 0 -48 0 +P 65 -213 -1.1443922070689834e+00 2.4049085538196557e+00 9.6289570725061836e+01 9.6329373550777277e+01 2 0 0 -49 0 +P 66 213 -3.0046508081645801e-01 1.7803118867427987e+00 5.7444662891378144e+01 5.7478363119977544e+01 2 0 0 -50 0 +P 67 -213 -2.5016439277491315e-01 3.1350862441051930e-01 4.0612390002610852e+01 4.0622507641923903e+01 2 0 0 -51 0 +P 68 213 3.3250187937355535e-01 -8.3151583915031479e-01 6.8897046607273635e+00 6.9760920973408034e+00 2 0 0 -52 0 +P 69 223 1.8182876739207015e+00 -4.9227019655990896e+00 6.7504589614192298e+01 6.7712745517919686e+01 2 0 0 -53 0 +P 70 -211 1.1277768868918030e+00 -1.7836075465836119e+00 2.4005720626494561e+01 2.4098697872894373e+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 2 0 0 -15 0 +P 20 -1 -4.0721905699000063e+00 5.2481001487683923e+00 3.4479876218613377e+01 3.5113916831649327e+01 2 0 0 -15 0 +P 71 92 0 0 8.5859472182720751e+01 8.6921138071974539e+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 0 0 0 0 +P 73 211 2.6665249123579446e+00 -2.9349752846126558e+00 3.2950695340201079e+01 3.3188736616767464e+01 1 0 0 0 0 +P 74 111 3.6072230697643126e-01 -6.2146570580823457e-01 3.1338517615404928e+00 3.2180097373930638e+00 2 0 0 -54 0 +P 75 113 -4.4948408298591003e-01 -3.3788088157719054e-03 8.4523847160801058e+00 8.4982551917835956e+00 2 0 0 -55 0 +P 76 -213 -2.7928243095832456e-01 3.3421120888543193e-01 4.9816177588983468e+00 5.0588216417181506e+00 2 0 0 -56 0 +P 77 213 -3.0578817058647956e-01 7.0283103003245251e-01 4.1808064202695698e+00 4.3325688354318341e+00 2 0 0 -57 0 +P 78 -211 -3.2872639824348276e-01 9.2343958879558319e-01 4.7634610442269851e+00 4.8652690186489309e+00 1 0 0 0 0 +P 79 213 -2.0811691139406925e+00 2.5716900482525915e+00 1.9836447976676894e+01 2.0124312392487205e+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 2 0 0 -17 0 +P 22 -3 1.8652550805155896e+00 4.6351934290813315e+00 -3.8523971426252422e+02 3.8527211375820042e+02 2 0 0 -17 0 +P 80 92 0 0 -3.8774710911047379e+02 3.9086239313976193e+02 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 2 0 0 -59 0 +P 82 -211 -4.2766056399724119e-02 2.0905450136158240e-02 -1.4002124745972655e-01 2.0335119391229980e-01 1 0 0 0 0 +P 83 323 -4.4702319815240105e-01 -4.8462854486530810e-01 -3.3690973393284223e+00 3.5379978508332535e+00 2 0 0 -60 0 +P 84 333 2.9235882051604356e-01 4.1909099446358361e-01 -1.1614528740318077e+01 1.1670274542743341e+01 2 0 0 -61 0 +P 85 -313 -1.9559777497210154e-01 3.2725284319419412e-01 -4.0791168457425862e+01 4.0802601861674923e+01 2 0 0 -62 0 +P 86 -213 4.2480750680325324e-01 4.0902356994726946e-01 -2.7722906134034435e+01 2.7734649552550263e+01 2 0 0 -63 0 +P 87 113 3.6771897497445705e-01 4.4681480751080627e-01 -2.0704917165556715e+01 2.0730406353871473e+01 2 0 0 -64 0 +P 88 211 -2.8978227338924745e-01 -7.0628302343640245e-02 -1.4183290555585218e+01 1.4187112916027539e+01 1 0 0 0 0 +P 89 -211 -1.9540105972758251e-02 2.5692526030371343e-01 -1.4545461008205347e+01 1.4548412563961943e+01 1 0 0 0 0 +P 90 323 1.5332178619775767e+00 2.8706931692121325e+00 -2.5222669433968153e+02 2.5224968746070860e+02 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 2 0 0 -19 0 +P 24 -3 -1.3025773740614568e-01 4.3032393523974077e+00 -3.3157804489828713e+01 3.3436130676079749e+01 2 0 0 -19 0 +P 91 92 0 0 -3.0626155581135460e+01 3.8430535765683871e+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 2 0 0 -66 0 +P 93 -213 -3.7639146848800681e-01 -1.5406289235386026e+00 1.6502657513639488e-01 1.7867414552349492e+00 2 0 0 -67 0 +P 94 2114 1.6153252959411044e-01 -1.2772848818918856e+00 5.2372112884638644e-01 1.9163288714391824e+00 2 0 0 -68 0 +P 95 211 2.5979025784637988e-01 2.2354774310929568e-01 -6.7894811146840361e-01 7.7324956804880274e-01 1 0 0 0 0 +P 96 -2214 -1.8636538951424170e-01 2.9256938238575925e-01 -4.5902650063153603e+00 4.7327213645256432e+00 2 0 0 -69 0 +P 97 111 2.4447109857296742e-01 3.3083128753819330e-01 -2.0318743236789594e+00 2.0774860592739199e+00 2 0 0 -70 0 +P 98 213 -2.7401510515621635e-01 2.8125233782844189e-01 -1.7321877321484938e+00 1.8713869334189455e+00 2 0 0 -71 0 +P 99 111 -1.0109282624214720e-01 5.2155147439574179e-01 -1.7600692215106526e+00 1.8434475758402007e+00 2 0 0 -72 0 +P 100 313 4.3158615070028994e-02 2.5099903215472157e+00 -2.1510162712478085e+01 2.1674774281710462e+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 2 0 0 -21 0 +P 26 -2 2.8388113750031851e+00 -2.9291876839233497e+00 6.3131813241358550e+01 6.3263455751739258e+01 2 0 0 -21 0 +P 101 92 0 0 6.0314919158080976e+01 6.8220660890413654e+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 2 0 0 -74 0 +P 103 221 -8.9982101828616334e-01 5.4142902707731055e-01 -5.3645233237309187e-01 1.3001176345700249e+00 2 0 0 -75 0 +P 104 -211 -8.6753321823725624e-03 5.6832963889609747e-02 9.7176499890667928e-02 1.7952243370663501e-01 1 0 0 0 0 +P 105 321 -4.0054756700537497e-01 4.1344381052312046e-01 1.2388557587843947e-01 7.6835065810119207e-01 1 0 0 0 0 +P 106 -313 -4.3881953299186965e-01 1.5849794511534281e-02 1.5502399495560006e+00 1.8454355154493816e+00 2 0 0 -76 0 +P 107 -213 2.6975585621736647e-01 -2.0224994353228565e-01 1.4308574448043745e-01 8.2389832737315261e-01 2 0 0 -77 0 +P 108 213 7.7555631014750070e-01 1.3582975137081782e-01 4.8071584803948841e+00 4.9465123732681642e+00 2 0 0 -78 0 +P 109 -211 1.6084505806401775e-01 -9.8786281136593837e-02 1.3415766842308592e+01 1.3417820598522365e+01 1 0 0 0 0 +P 110 211 3.3737414580549596e-01 -7.4336572542037649e-01 6.7542972105104546e+00 6.8048824022753731e+00 1 0 0 0 0 +P 111 -213 1.4425566346812861e+00 -1.5949421846047691e+00 3.5486174703439339e+01 3.5560187917541761e+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 2 0 0 -23 0 +P 28 -2 3.5408957207564704e+00 -1.3337324649314468e+00 4.7168621002604638e+00 6.0469474006441590e+00 2 0 0 -23 0 +P 112 92 0 0 1.9654114509071672e+01 2.1455980281322294e+01 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 2 0 0 -80 0 +P 114 113 -1.0902801693616622e+00 4.5065934647299072e-01 4.8491888434946748e+00 5.1024990374205057e+00 2 0 0 -81 0 +P 115 111 -3.3248940486964124e-01 2.3166493925117712e-01 5.1260100030508238e-01 6.6723102021907743e-01 2 0 0 -82 0 +P 116 213 5.4395505009151517e-02 -3.5753673771347694e-01 3.6959306688638129e+00 3.7765891594248417e+00 2 0 0 -83 0 +P 117 223 -3.6940382873256322e-01 -2.0534285256312060e-01 1.5468769853517426e+00 1.7802756873006378e+00 2 0 0 -84 0 +P 118 113 -2.1983674369034181e-01 6.1736195755313583e-01 1.8723689218941149e+00 2.0935892371951130e+00 2 0 0 -85 0 +P 119 111 1.1404511704074396e+00 -2.7154403133829735e-01 1.2971289847431351e+00 1.7536043557484422e+00 2 0 0 -86 0 +P 120 -213 9.9550812414248135e-01 -5.7305409021822129e-01 2.9002523325451683e+00 3.1958313192714209e+00 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 2 0 0 -25 0 +P 34 21 -8.8527156785984806e-01 5.7553602736705196e+00 -6.2954009301687258e+01 6.3222742464919470e+01 2 0 0 -25 0 +P 121 92 -1.8021268256845246e-01 -1.0580531443966563e+00 5.5504994238782192e+03 5.8755200809247099e+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 2 0 0 -88 0 +P 123 2212 -6.2791982027313717e-02 7.6867611752465992e-01 2.9853349842085568e+03 2.9853352312756942e+03 1 0 0 0 0 +P 124 -211 -6.3737058678301636e-02 -6.4464644421178707e-01 1.9900387741310286e+02 1.9900498068310966e+02 1 0 0 0 0 +P 125 113 1.5027328344524130e-01 2.0693100318503993e-01 1.2269984836524957e+03 1.2269987428070176e+03 2 0 0 -89 0 +P 126 113 -9.9821919675496071e-02 5.0103807635626529e-01 2.1777529106655865e+02 2.1777760470222898e+02 2 0 0 -90 0 +P 127 -313 -9.1855261829841561e-01 -4.5271496597028515e-01 1.9852981625081372e+02 1.9853426767512232e+02 2 0 0 -91 0 +P 128 323 7.1450236264555178e-01 1.5079031761695599e-01 1.0405513205706657e+02 1.0406120895549580e+02 2 0 0 -92 0 +P 129 -213 -2.6371613026223212e-01 -3.3569803118640140e-01 1.5291910085517253e+02 1.5292119444523502e+02 2 0 0 -93 0 +P 130 211 3.0711481321928247e-01 5.6434962399740579e-02 1.7469094645523576e+01 1.7472442643564186e+01 1 0 0 0 0 +P 131 -211 -1.3416783174028993e-01 4.7853828154534966e-01 4.9650636537858709e+01 4.9653320012799036e+01 1 0 0 0 0 +P 132 211 -4.4171694323995486e-01 -8.0515863604828064e-01 1.9039571188948941e+01 1.9062217739053946e+01 1 0 0 0 0 +P 133 -2114 -1.3488630166892554e-01 -2.6020823766813067e-01 1.8719458121583301e+00 2.1920492447609377e+00 2 0 0 -94 0 +P 134 221 5.9907600476643053e-01 3.1183801267853273e-01 3.6841720694354785e-01 9.4422865160420322e-01 2 0 0 -95 0 +P 135 1114 -7.9078364399711776e-02 -5.3473729042418372e-02 2.4990460379589137e+00 2.8511181245797439e+00 2 0 0 -96 0 +P 136 223 -1.3331819562169198e-01 -3.1501969795261053e-01 -4.3131521562232121e-02 8.5408332284258204e-01 2 0 0 -97 0 +P 137 211 3.0231113463725909e-02 -2.1285675831915882e-01 -2.3543486414109713e-01 3.4803919310407555e-01 1 0 0 0 0 +P 138 111 -3.6331973746602270e-02 7.4355670744629440e-02 -7.6645288247255569e-02 1.7590588022778733e-01 2 0 0 -98 0 +P 139 113 1.6627168576861587e-01 -2.5512952828724614e-03 -1.1719602585717434e-01 7.9896620060520418e-01 2 0 0 -99 0 +P 140 -213 1.8246870701846693e-01 -6.4142436952788440e-01 -2.3077172616991168e+00 2.5247664616293304e+00 2 0 0 -100 0 +P 141 113 -9.2484989919595070e-02 -1.1964227291138891e+00 -5.3193696218967101e+00 5.5240094460187201e+00 2 0 0 -101 0 +P 142 221 4.3290844393668704e-01 -2.2932482823933737e+00 -1.1118240214783999e+01 1.1373713746251170e+01 2 0 0 -102 0 +P 143 211 1.4314659529045259e-01 3.3792954234072853e-01 -4.8759767464944481e+00 4.8917600452786267e+00 1 0 0 0 0 +P 144 -211 -1.5173971936078676e-01 1.2638509867730544e-01 -2.3517255215454607e+00 2.3641258107781722e+00 1 0 0 0 0 +P 145 111 2.8806011104816087e-01 1.8808112209402078e-01 -6.9861950017284147e-01 7.9034292714425880e-01 2 0 0 -103 0 +P 146 111 -2.9325266533451849e-01 -2.1300619373632457e-01 -6.2084500620099243e+00 6.2204855547752071e+00 2 0 0 -104 0 +P 147 213 -6.9858610278359504e-02 1.2685306871492477e+00 -1.8500623011952744e+01 1.8556331415289904e+01 2 0 0 -105 0 +P 148 223 5.5063662683315945e-02 1.1997527113990876e-01 -3.0076947242410959e+00 3.1107144834006855e+00 2 0 0 -106 0 +P 149 -2214 -1.8794218320233000e-01 1.5241617555512106e+00 -1.9106462282427337e+01 1.9207265750409690e+01 2 0 0 -107 0 +P 150 2214 -2.8650488155922194e-01 2.9534757115427968e-01 -7.5922854307518755e+00 7.7042773613584803e+00 2 0 0 -108 0 +P 151 -213 -1.3395677309501619e-01 2.8646169779760616e-01 -7.1516780777701350e-01 1.1477456820086733e+00 2 0 0 -109 0 +P 152 221 1.5464435260082576e-01 -3.5154860600178450e-01 -2.3517657972875368e-02 6.6914563505238200e-01 2 0 0 -110 0 +P 153 -311 9.3352618998182743e-02 4.0984422314125646e-01 -2.9781253674948460e+00 3.0485395080484676e+00 2 0 0 -111 0 +P 154 333 -3.2368338848019457e-01 -4.2702770182420224e-01 -9.2713163076349650e-02 1.1654977849741417e+00 2 0 0 -112 0 +P 155 333 -1.0877256872155437e-01 3.7570467122067591e-01 -1.1471981162283685e+01 1.1523662684436765e+01 2 0 0 -113 0 +P 156 321 6.2410157985014460e-02 -5.2815613120594274e-01 -2.4718281324740081e+00 2.5761248423242393e+00 1 0 0 0 0 +P 157 113 1.7841524909498518e-01 -2.1422710011190485e-01 -4.1990941872267165e+01 4.1999942208294883e+01 2 0 0 -114 0 +P 158 -211 1.6252710659019495e-01 4.3949932995684760e-01 -1.7920595656609230e+01 1.7927264241762899e+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 2 0 0 -27 0 +P 39 21 6.3139095306073623e+00 -7.0920315162380083e+00 -3.5928099200277863e+00 1.0152371531295421e+01 2 0 0 -27 0 +P 159 92 0 0 1.9015007647260251e+01 3.4673296875657634e+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 2 0 0 -115 0 +P 161 -213 1.2736655420832138e-01 8.1992574492073922e-01 1.5226761082985145e+00 1.8398587605528547e+00 2 0 0 -116 0 +P 162 223 -1.7023916178032368e+00 2.0795757104791130e+00 6.5575562691596261e+00 7.1299160716087355e+00 2 0 0 -117 0 +P 163 211 -2.9059822685827419e-01 -2.9736811450474465e-02 1.1929840970980694e+00 1.2361320512944036e+00 1 0 0 0 0 +P 164 -211 -1.0881062221915685e+00 1.2539725263908137e+00 2.4746291473983963e+00 2.9832350644507852e+00 1 0 0 0 0 +P 165 211 -1.2852746139432256e+00 1.4134826699002714e+00 5.3384294397887020e+00 5.6716992832711099e+00 1 0 0 0 0 +P 166 -2212 1.4237307138452032e-01 -3.5996864709774652e-02 5.6565571914432167e-01 1.1053880998206356e+00 1 0 0 0 0 +P 167 211 -1.7998566349533646e-01 -1.5840940836931164e-01 5.4777086598057086e-02 2.8278736506418189e-01 1 0 0 0 0 +P 168 2114 3.5739987847657645e-01 2.2720806770406607e-01 3.6523500098511946e-01 1.3004119985260876e+00 2 0 0 -118 0 +P 169 111 -5.1434735918982422e-01 -7.7300339775299809e-01 1.1148117917540183e-01 9.4484660794944053e-01 2 0 0 -119 0 +P 170 -211 1.5714668856322211e+00 -6.0581539196193168e-01 -5.4913199377787304e-02 1.6908624149062295e+00 1 0 0 0 0 +P 171 -1114 8.8585869246348492e-01 -1.5968024045320024e+00 -4.2221015967941866e-01 2.3027386541183241e+00 2 0 0 -120 0 +P 172 3112 1.2493548114864377e+00 -1.2508727455032398e+00 -6.8508891720731258e-01 2.2424940241854410e+00 2 0 0 -121 0 +P 173 313 6.8179411573870519e-01 -3.6752254254946726e-01 5.4549415498849577e-02 1.1551152151744939e+00 2 0 0 -122 0 +P 174 213 8.7514099172343518e-01 -9.1457541533900566e-01 -1.9944632590699943e-01 1.6271978862616123e+00 2 0 0 -123 0 +P 175 -211 7.3183821062345222e-02 7.1751877688641233e-02 -4.4579470420669780e-02 1.7880525076215875e-01 1 0 0 0 0 +P 176 113 -3.8901028257665571e-01 -2.8878531600595153e-01 7.6297841431025348e-01 1.2320758480194269e+00 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 2 0 0 -29 0 +P 41 21 -4.0592867731266056e+00 2.6703314664466724e+00 6.5387013204165399e+01 6.5567293485463281e+01 2 0 0 -29 0 +P 177 92 0 0 4.7180626410055723e+01 8.4410886543686203e+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 1 0 0 0 0 +P 179 211 9.2022143347366359e-01 -9.0492262529110890e-01 -3.4802493120833939e+00 3.7144727086822180e+00 1 0 0 0 0 +P 180 331 2.8547714123264654e+00 -1.3978162152551836e+00 -1.1295889724261475e+01 1.1773753288764665e+01 2 0 0 -125 0 +P 181 -211 -2.1966458442153422e-01 -7.8242988024705071e-02 -3.6872339754814093e-01 4.5805155127295866e-01 1 0 0 0 0 +P 182 211 2.9560049319651122e-01 -2.0553784478372053e-01 2.0154644030530203e-01 4.3557572213806423e-01 1 0 0 0 0 +P 183 -213 4.8499322815683815e-01 -2.4176671902283986e-01 -1.2630218756659783e+00 1.5443904458672615e+00 2 0 0 -126 0 +P 184 223 -4.9798993623797905e-01 -7.9872460916706869e-02 1.4542593319776393e+00 1.7271969649830978e+00 2 0 0 -127 0 +P 185 111 -8.1435240888755867e-02 2.1770867381234621e-01 -4.8166487593616319e-01 5.5158808745506804e-01 2 0 0 -128 0 +P 186 211 -4.0963834077238803e-02 -8.1786285732019265e-02 -7.3954640395227589e-02 1.8252700066602331e-01 1 0 0 0 0 +P 187 -213 -1.9208712477878448e-01 1.0153734892728536e+00 1.0093633192296094e+01 1.0172602378103548e+01 2 0 0 -129 0 +P 188 113 -4.0460519527275640e-01 -1.8742290283792634e-01 1.4460803220046335e+01 1.4483694098040059e+01 2 0 0 -130 0 +P 189 323 -1.8174133915270314e+00 8.5518474033833691e-01 1.5636980567886377e+01 1.5790404265907304e+01 2 0 0 -131 0 +P 190 -313 -6.1300964784639689e-01 4.4874979596463827e-01 1.5814169758309760e+01 1.5858292211205139e+01 2 0 0 -132 0 +P 191 2112 -2.0875628243328179e-01 2.2254556192762173e-01 2.8276378449769140e+00 2.9952350959206409e+00 1 0 0 0 0 +P 192 -3122 -4.4603745527894489e-01 1.7089584026390511e-01 3.9246158988903992e+00 4.1079808441562280e+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 2 0 0 -31 0 +P 43 21 3.5966403857613591e+00 -9.8909210856074747e-01 -5.4062667533947362e+01 5.4191199895830252e+01 2 0 0 -31 0 +P 193 92 0 0 -6.0961827711052806e+01 6.2034192718284217e+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 2 0 0 -134 0 +P 195 -213 6.9761486862091593e-01 -2.0191774573662452e-01 -9.7431391037408730e+00 9.7889921005604528e+00 2 0 0 -135 0 +P 196 321 9.0124089448534161e-01 -4.4767419129957531e-01 -8.9439134555301649e+00 9.0138713209953245e+00 1 0 0 0 0 +P 197 -321 -6.3603380049890879e-01 1.4504099316767780e-01 -4.6266617828900456e+00 4.6984269812705879e+00 1 0 0 0 0 +P 198 113 3.6907253066300794e-01 -1.4699212866480399e-01 -8.5021209501925501e+00 8.5375578909228391e+00 2 0 0 -136 0 +P 199 221 -1.1158814362096265e+00 7.2491333857959150e-01 -2.4507253306324639e+00 2.8419090198019128e+00 2 0 0 -137 0 +P 200 211 -3.4212525303292468e-01 -2.2696230407884616e-01 -6.7469338663752003e+00 6.7608548245304183e+00 1 0 0 0 0 +P 201 -213 -1.7598972275668995e-01 3.3505003289999202e-01 -1.7733387402423706e+00 1.9326147762775303e+00 2 0 0 -138 0 +P 202 323 -6.9239644466952743e-01 4.5349209741353164e-01 -3.5326948656226587e+00 3.7428911176348358e+00 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 2 0 0 -33 0 +P 45 21 -1.6002652901426460e+00 2.4352657274836234e+00 8.2577967751982451e-01 3.0287423525444375e+00 2 0 0 -33 0 +P 203 92 0 0 2.9514612040080941e+01 3.1865185796378242e+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 2 0 0 -140 0 +P 205 111 1.2478783609177713e-01 -3.6358255829143427e-02 2.1168354202844193e+00 2.1251131084660222e+00 2 0 0 -141 0 +P 206 -2224 -5.5186870172860858e-01 1.0329040235764173e+00 8.5442774549095424e-01 1.9723301257490100e+00 2 0 0 -142 0 +P 207 2224 -4.4972267469397098e-01 7.1644814273694990e-01 1.8328017645199988e+00 2.3811516687914014e+00 2 0 0 -143 0 +P 208 -213 -5.0716668288443600e-01 -5.4504576392598904e-02 1.3018912898240806e+00 1.5715730784703104e+00 2 0 0 -144 0 +P 209 211 1.1243572544296603e+00 -1.1191386976602283e-01 4.6556363922388408e+00 4.7928210848594484e+00 1 0 0 0 0 +P 210 -211 3.7004756859602959e-03 -8.3816613942284957e-01 6.7174081650278819e+00 6.7709370408591569e+00 1 0 0 0 0 +P 211 213 2.3150705552517567e-01 -5.3768853904646212e-03 3.2265766557190916e+00 3.3703104910732882e+00 2 0 0 -145 0 +P 212 221 -8.0782432554875203e-02 -5.4307719493941597e-01 8.0330277427792112e+00 8.0703590291778973e+00 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 1 0 0 0 0 +P 214 22 -1.4491207335906356e-01 -1.4502950690157407e-01 1.7619998130615260e+00 1.7738873718774226e+00 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 0 0 0 0 +P 216 111 6.7011046783931716e-01 3.1756771243611115e-01 3.4595425231838661e+01 3.4603635124986923e+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 0 0 0 0 +P 218 111 2.0568277559265397e-01 -7.6716771394558292e-02 3.4410912961920448e+00 3.4507274271256705e+00 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 0 0 0 0 +P 220 111 -3.6160430730145765e-01 1.7103168765392807e-01 6.7399550195350288e+00 6.7531639087909117e+00 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 1 0 0 0 0 +P 222 22 1.9818742468699430e-01 2.8719162130123162e-02 2.0232696605477911e+00 2.0331559617674917e+00 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 0 0 0 0 +P 224 211 -1.8430479575079395e+00 -1.8805736996568283e+00 -1.8133624777653438e+01 1.8324333837145126e+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 1 0 0 0 0 +P 226 22 4.2982874000373740e-02 1.6744026991665381e-01 -4.3431881820625335e+00 4.3466271241336942e+00 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 1 0 0 0 0 +P 228 -11 1.5797118386348692e-02 1.4711735030322620e-02 -1.0283381816186061e+00 1.0285648545286661e+00 1 0 0 0 0 +P 229 11 5.9939238082474242e-02 1.4813366540532533e-01 -5.5401626596588285e+00 5.5424668560728723e+00 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 0 0 0 0 +P 231 111 -5.0350326425457087e-02 -6.7011909820600379e-01 -3.1309205936853076e+01 3.1316707853122548e+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 2 0 0 -151 0 +P 233 -211 2.9364965893852782e-03 -2.8037181824656832e-01 -2.9550358086806355e+01 2.9552017863808569e+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 1 0 0 0 0 +P 235 22 -4.2790481089641280e-01 -5.2184434402458346e-01 -3.1134207733526843e+01 3.1141520759927278e+01 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 1 0 0 0 0 +P 237 211 -1.2295953257244377e-01 1.8096777706713205e-01 -3.0609568574526622e+02 3.0609579575687195e+02 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 1 0 0 0 0 +P 239 22 1.3123498171528272e-01 2.5927646721163589e-01 -2.2656630725712694e+03 2.2656630912075148e+03 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 0 0 0 0 +P 241 111 -6.5531495792427386e-01 1.7586644364637036e+00 5.3859919479611001e+01 5.3892777663103821e+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 0 0 0 0 +P 243 111 -3.8399339173650116e-01 3.7283975804546754e-01 2.7206887603585198e+01 2.7212486345143006e+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 0 0 0 0 +P 245 111 -4.1020081276223969e-01 5.9241060031560666e-01 2.7159228200759497e+01 2.7169120543136597e+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 0 0 0 0 +P 247 111 6.6426419466017059e-02 3.5700759179416253e-01 3.2854791305799246e+01 3.2857075314729755e+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 0 0 0 0 +P 249 111 3.0439207238921828e-01 -1.0014164915511482e-01 2.0179891546884896e+00 2.0477262298630827e+00 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 0 0 0 0 +P 251 211 5.8128837571324521e-01 -1.9934568518397549e+00 2.9607592755877548e+01 2.9680646808630684e+01 1 0 0 0 0 +P 252 111 6.5948645476388301e-01 -1.2682284115554467e+00 1.7819650401514330e+01 1.7877401537149723e+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 1 0 0 0 0 +P 254 22 8.3150786524103473e-02 -6.2673834877903317e-02 3.5390310973347999e-01 3.6890306851110266e-01 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 0 0 0 0 +P 256 -211 -1.0411121014131801e-01 -2.0872779943077877e-01 6.2062244364248373e+00 6.2121741748367851e+00 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 0 0 0 0 +P 258 111 -2.8056748593473252e-01 1.1916090751261861e-02 4.0696486529871594e+00 4.0815585095086817e+00 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 0 0 0 0 +P 260 111 -3.8387407607252627e-01 6.8367344397323782e-01 2.1019786165900940e+00 2.2475102645542622e+00 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 0 0 0 0 +P 262 111 -1.8889806198257593e+00 2.4579472809096470e+00 1.8831934148939073e+01 1.9085851199466742e+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 2 0 0 -161 0 +P 264 111 -1.9155619001346455e-01 -6.0914542296763896e-01 -1.2809667227843524e-01 6.6511674020709111e-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 2 0 0 -163 0 +P 266 211 -1.5043143739465120e-01 -4.3840705696961185e-01 -1.8263399040108697e+00 1.8893987389748650e+00 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 1 0 0 0 0 +P 268 321 1.6118644520389575e-01 1.9737463878801137e-01 -4.5373479438923123e+00 4.5712257811333235e+00 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 1 0 0 0 0 +P 270 211 -2.6567428535109305e-01 1.6610101468545962e-01 -2.5800207633514976e+01 2.5802487595004493e+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 0 0 0 0 +P 272 111 3.7620839570376235e-01 4.8378053771402385e-01 -1.9561155024868459e+01 1.9571218201047309e+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 0 0 0 0 +P 274 211 -1.6258540618367565e-01 1.6222338006653356e-01 -1.2249613526344374e+01 1.2252561437064626e+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 2 0 0 -165 0 +P 276 211 7.3266490640172433e-01 1.6751233348484984e+00 -1.1609843447379056e+02 1.1611291402381548e+02 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 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 0 0 0 0 +P 279 111 8.9810384677170528e-03 -6.3878733240759011e-01 -2.6775211174027441e-01 7.0571999322517431e-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 1 0 0 0 0 +P 281 111 -8.5409563822338136e-02 -4.3012054975671515e-01 -1.2184751648084854e-01 4.7472613008753961e-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 1 0 0 0 0 +P 283 111 -6.6404144386860195e-02 6.2308146282458045e-02 -9.8313964690159639e-01 9.9653147526543429e-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 1 0 0 0 0 +P 285 22 8.9437597330653915e-02 2.3309905645556292e-01 -1.1748130566901320e+00 1.2010495294143226e+00 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 0 0 0 0 +P 287 111 4.5237516943432650e-02 1.4303653358737961e-01 -1.2206147222144386e+00 1.2371846197583172e+00 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 1 0 0 0 0 +P 289 22 -9.8330182436480451e-03 3.6615228052958404e-01 -1.2448772907468852e+00 1.2976454253000318e+00 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 2 0 0 -170 0 +P 291 111 -2.4972174502373165e-01 1.2171174499571773e+00 -9.8820220121753870e+00 9.9607386516486240e+00 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 0 0 0 0 +P 293 111 -4.1995931923232044e-01 6.9352306047057866e-01 -2.4353681474951611e-01 8.5724549911498049e-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 1 0 0 0 0 +P 295 22 -6.5988345454275177e-01 3.7272537616398288e-01 -8.6204472334868429e-02 7.6275919572719031e-01 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 1 0 0 0 0 +P 297 211 -4.6850393570640159e-01 -8.5880035046017392e-02 7.6480086906950495e-01 9.1174090202280789e-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 0 0 0 0 +P 299 111 3.9915573664182591e-01 -1.0301564308733102e-01 -1.5144973175224732e-01 4.5944983019106961e-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 0 0 0 0 +P 301 111 7.5486711156253306e-01 3.9411709508809456e-01 3.2919551559674907e+00 3.4029900073406600e+00 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 0 0 0 0 +P 303 111 2.6685635170597993e-01 -8.2387989842869880e-01 1.2612720468497917e+01 1.2643137570094973e+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 0 0 0 0 +P 305 -211 -2.8515883010338406e-02 -1.2080898873270086e-01 9.9053262633137185e-01 1.0079894027564984e+00 1 0 0 0 0 +P 306 111 1.5031021128478475e-01 6.1869303805222545e-03 7.3336808953253430e-01 7.6071005834589123e-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 0 0 0 0 +P 308 -211 -1.1415211181414819e+00 1.1959649466073342e-01 4.2262254369293686e+00 4.3815334089045752e+00 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 1 0 0 0 0 +P 310 22 -2.4944757644687382e-01 9.5072045551801362e-02 3.3303916405451600e-01 4.2682299848386052e-01 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 0 0 0 0 +P 312 111 -4.8694682571265593e-02 -3.6180916417226161e-01 3.4696204820675303e+00 3.4913840999483670e+00 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 0 0 0 0 +P 314 211 -1.5562677085262105e-01 -2.3620058456930920e-01 9.0884352597140916e-01 9.6202221780842523e-01 1 0 0 0 0 +P 315 111 -2.4435179757304334e-01 7.4349308208397899e-02 5.9722684245561075e-01 6.6342680256207898e-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 2 0 0 -179 0 +P 317 22 1.4409213370305821e-01 -5.7604870198693786e-02 3.7612512111205554e-01 4.0687955318161023e-01 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 1 0 0 0 0 +P 319 22 9.3084625249818934e-02 7.1564722039120275e-03 7.2125724752282516e-02 1.1797492412943782e-01 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 0 0 0 0 +P 321 111 5.8064185894314453e-02 9.8787864581293211e-02 3.1042140903798182e-01 3.5736751875517092e-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 0 0 0 0 +P 323 211 6.6821925997163825e-04 -1.0568054772206613e-03 2.1333331792164230e+02 2.1333336358105069e+02 1 0 0 0 0 +P 324 111 3.1232342162247389e-02 7.4080388596620431e-02 7.1134026050131084e+01 7.1134199546099481e+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 0 0 0 0 +P 326 -211 2.7182151527050440e-02 2.1590966128895990e-03 4.4588081331807786e+01 4.4588308110623188e+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 0 0 0 0 +P 328 -211 -1.3786723222707301e-01 5.9274844571574309e-02 1.1735950011477758e+01 1.1737739277123415e+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 1 0 0 0 0 +P 330 211 -8.2279004458571267e-02 7.3018712211581877e-02 5.1415548559796406e+01 5.1415855677568857e+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 2 0 0 -182 0 +P 332 211 5.2951984991579670e-01 -6.4554600935646037e-02 4.9941304935652070e+01 4.9944348799725510e+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 0 0 0 0 +P 334 111 -1.8723935235103165e-01 6.7174295629019873e-02 2.0892529195013871e+01 2.0893912192932397e+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 1 0 0 0 0 +P 336 211 -5.5352999453907193e-03 -1.0816988709474940e-01 3.6815646393669343e-01 4.0835074489701390e-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 1 0 0 0 0 +P 338 22 1.3168775031267746e-01 1.5037716076096133e-01 -1.3292620991243345e-01 2.4005068494513118e-01 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 1 0 0 0 0 +P 340 -211 -2.6075250516129161e-01 9.9943367152509469e-02 1.1394118409731577e+00 1.1814058040468192e+00 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 0 0 0 0 +P 342 -211 -2.3240549013258138e-01 -1.2739824390148866e-01 -1.7172491484146121e-02 3.0002883820846565e-01 1 0 0 0 0 +P 343 111 5.3155140450545445e-02 -3.2198458976233074e-01 8.1469103673461631e-04 3.5315691855352199e-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 1 0 0 0 0 +P 345 22 -6.5257195441118784e-02 -2.3379870579969641e-03 -6.6691702615093121e-02 9.3336760914571146e-02 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 0 0 0 0 +P 347 -211 3.2808169398020481e-01 1.6708294975973997e-01 1.4593698511490616e-01 4.1991868087733947e-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 0 0 0 0 +P 349 111 -2.8173495143786537e-01 -2.3294554347192373e-01 -8.3799170321694616e-01 9.2416876388761626e-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 0 0 0 0 +P 351 -211 3.4464639850554046e-01 -3.9448924009807262e-01 -2.4618660005043602e+00 2.5208464629753493e+00 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 1 0 0 0 0 +P 353 22 1.0434568190199986e-01 -2.7883825262630772e-02 -4.8973860227147370e-01 5.0150715607820417e-01 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 1 0 0 0 0 +P 355 22 6.4511010772874300e-02 2.7782206584984766e-02 -5.1236759212390626e-02 8.6940939770953726e-02 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 1 0 0 0 0 +P 357 22 -4.0221420025721384e-02 -1.5335598110120413e-02 -1.7319040659961942e+00 1.7324389273542784e+00 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 0 0 0 0 +P 359 111 1.6319333803292452e-01 9.1595544301201692e-01 -1.4636028000277902e+01 1.4666190427799593e+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 0 0 0 0 +P 361 -211 -3.9918742821603924e-02 2.3757962531374108e-01 -4.9884072044398658e-01 5.7127877053654863e-01 1 0 0 0 0 +P 362 111 1.4605102514493379e-01 -7.1654523819423611e-04 -1.0841280953562038e+00 1.1022181013409436e+00 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 1 0 0 0 0 +P 364 111 -7.3879643598863620e-02 2.1911131985195054e-01 -5.3599032767510568e+00 5.3665865043575209e+00 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 2 0 0 -189 0 +P 365 2212 -9.2672351349186208e-02 3.2713801118000992e-02 -5.0230624849063501e+00 5.1108869756297421e+00 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 0 0 0 0 +P 368 111 -4.4699794465351418e-02 -2.0886308426759173e-01 1.1405705795541135e-02 2.5292597755017221e-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 0 0 0 0 +P 370 211 1.1822125040940321e-01 -3.6410489305205150e-02 -7.4902779595835356e-02 2.0097810594935350e-01 1 0 0 0 0 +P 371 111 -1.6232482169526979e-02 -5.4435203098128715e-02 7.9250327722834704e-02 1.6651396235119514e-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 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 1 0 0 0 0 +P 374 310 -1.0058249844852461e-01 -3.3078112442504448e-01 -8.2668057706903650e-02 6.1159008161927886e-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 1 0 0 0 0 +P 376 321 -1.6771205287668237e-01 1.4016513775476167e-01 -5.5593832946803383e+00 5.5855310558345961e+00 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 0 0 0 0 +P 378 -211 -2.6784944598235311e-01 8.4540277169185385e-02 -1.4243508730173986e+01 1.4246961469577274e+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 0 0 0 0 +P 380 111 -3.7138811372573445e-02 -2.6763057762592657e-01 1.8964640672464467e-01 3.5663816028872181e-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 0 0 0 0 +P 382 111 -5.5029184311155943e-02 -3.1797439570535158e-02 2.5538799358925224e-01 2.9577341996659695e-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 0 0 0 0 +P 384 -211 -5.3662832160087004e-01 7.6596039196045107e-01 2.0066624387491827e+00 2.2182964647637142e+00 1 0 0 0 0 +P 385 111 -5.4333294606349714e-01 8.9116704629103738e-01 3.0590759352765375e+00 3.2350509382173804e+00 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 1 0 0 0 0 +P 387 -211 2.0173096820492542e-01 3.0084177275992156e-02 1.9384965688599484e-01 3.1409857629427085e-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 1 0 0 0 0 +P 389 22 -3.9737322549938564e-01 -6.7635414352139833e-01 7.0137957301546427e-02 7.8757840299032089e-01 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 1 0 0 0 0 +P 391 211 5.8301081246194575e-01 -7.0551758694164624e-01 -7.9066317918965748e-02 9.2918670914986956e-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 1 0 0 0 0 +P 393 -211 5.2572010790258272e-01 -3.8798397863996692e-01 -2.3747258980458383e-01 7.0907419593643206e-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 2 0 0 -196 0 +P 395 111 1.0969872995552975e-01 -2.7592125031730930e-01 1.9284939585462296e-01 3.7891534359539542e-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 0 0 0 0 +P 397 111 7.4745645835255581e-01 -1.8452765224834686e-01 -3.5285787768360583e-01 8.5759541382904525e-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 0 0 0 0 +P 399 211 1.3030258692077507e-01 1.1737552180221024e-01 1.4023573824788065e-02 2.2457119761760758e-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 0 0 0 0 +P 401 211 7.2245244435792022e-01 -5.5562326516907601e-01 -3.3678421544139758e+00 3.4917753806772347e+00 1 0 0 0 0 +P 402 221 1.6929001772174577e+00 -6.2763907466060598e-01 -6.2654951393025753e+00 6.5433915258975537e+00 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 0 0 0 0 +P 404 111 -5.8526099968283993e-02 -2.8429634583446145e-01 -3.7477092780150040e-01 4.9287175345877016e-01 2 0 0 -200 0 +V -127 0 0 0 0 0 0 3 0 +P 407 111 2.2104562458507233e-02 -3.0138619608482096e-02 6.8918524799908965e-01 7.0327295876704488e-01 2 0 0 -201 0 +P 405 211 -1.7994431618017598e-01 -1.4981023610554228e-01 1.8335551296569244e-01 3.2851498109288968e-01 1 0 0 0 0 +P 406 -211 -3.4015018251631030e-01 1.0007639479731749e-01 5.8171857101285707e-01 6.9540902512316316e-01 1 0 0 0 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 1 0 0 0 0 +P 409 22 7.3136079243070681e-03 1.7887105092202264e-04 6.5286998810985524e-03 9.8053443519745542e-03 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 0 0 0 0 +P 411 111 -5.9981210232161325e-02 1.0568271312618416e+00 8.3436496620987999e+00 8.4116104650175920e+00 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 0 0 0 0 +P 413 211 -4.2564457750844004e-01 -3.6237405135327300e-01 1.1465562013267260e+01 1.1480029630816887e+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 2 0 0 -203 0 +P 415 211 -1.0295964159075386e+00 3.1096384658587001e-01 6.4911205497073698e+00 6.5811012049098920e+00 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 2 0 0 -204 0 +P 417 111 1.1338504577602361e-01 8.4838802122491092e-02 4.4320364364653537e+00 4.4363521462467022e+00 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 1 0 0 0 0 +P 419 211 -5.3458486904178924e-03 1.0072609051156285e-01 4.7245178192138493e-01 5.0285663418976212e-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 1 0 0 0 0 +P 421 211 1.6711326947641161e-01 -1.9094728388891710e-01 -1.2625904583366416e+00 1.2953772270818957e+00 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 0 0 0 0 +P 423 111 7.0217973892037344e-01 -2.8698062984842038e-01 -7.3498259370883083e+00 7.3900998080915326e+00 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 0 0 0 0 +P 425 -211 -9.8483352004072017e-02 -2.1413651713213966e-01 -2.3969506914096916e+00 2.4125517239099432e+00 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 2 0 0 -207 0 +P 427 111 -5.9749928543227060e-01 4.0523346497645923e-01 -1.0521574728239369e+00 1.2831502270771551e+00 2 0 0 -208 0 +P 428 111 -3.7075092612150112e-01 1.6389697387756819e-01 -7.6281205611413760e-01 8.7431132934398903e-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 0 0 0 0 +P 430 111 -3.2472936796134794e-01 4.1437910527456240e-02 -1.2473036619170828e+00 1.2965925683410431e+00 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 1 0 0 0 0 +P 432 111 -5.5302161674478068e-01 2.7557884791839724e-02 -1.6155048992407390e+00 1.7130872790001219e+00 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 1 0 0 0 0 +P 434 22 9.7839239745626749e-02 -8.7531718590624669e-02 6.6506319147565862e-01 6.7789628059845486e-01 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 1 0 0 0 0 +P 436 22 4.4054345042207586e-02 -7.7627615962248125e-02 7.5395896312458921e-01 7.5922391305397241e-01 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 1 0 0 0 0 +P 438 -211 -2.1550620238062704e-01 4.0104914462364860e-01 -5.9206301760771352e-02 4.7986301246925406e-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 1 0 0 0 0 +P 440 211 -1.3656134001203910e-01 8.4180305408821043e-02 7.6571336719638172e-01 7.9468992003663097e-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 0 0 0 0 +P 442 111 -6.1402112512214591e-01 1.1088767981697505e-01 9.1946862391992579e-01 1.1193570343749397e+00 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 0 0 0 0 +P 444 111 1.3390057130873545e-01 -4.0022089132772154e-01 8.8662696215810521e-01 9.9117763053736829e-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 1 0 0 0 0 +P 446 22 -1.2530381878315813e-01 -6.1237208583624381e-01 7.7611359023390527e+00 7.7862655434482386e+00 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 1 0 0 0 0 +P 448 22 2.4777890833036781e-01 4.7433913116153387e-02 1.1288556037138038e+01 1.1291374662419651e+01 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 1 0 0 0 0 +P 450 22 2.1389614826006173e-01 -8.5684375324878909e-02 2.7826281846175691e+00 2.7921520353024070e+00 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 1 0 0 0 0 +P 452 22 -7.0619670035219672e-03 2.8828873325877486e-02 2.1532441192296625e-01 2.1736047866429073e-01 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 1 0 0 0 0 +P 454 22 4.6521748008517740e-03 -5.3335256863215397e-01 -2.2905947866752722e+01 2.2912156910242874e+01 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 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 1 0 0 0 0 +P 457 22 -2.9100960940826009e-01 9.5126997185016959e-01 2.9396772505842296e+01 2.9413599489221941e+01 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 1 0 0 0 0 +P 459 22 -1.5354506319408460e-02 5.2254180686976508e-02 4.5892932496961736e+00 4.5896164101121171e+00 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 1 0 0 0 0 +P 461 22 -1.2923082607457784e-01 2.8072928560789373e-01 1.3016518255258111e+01 1.3020186520464037e+01 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 1 0 0 0 0 +P 463 22 7.9910814805674857e-02 3.3420179014562956e-01 2.6486554060175386e+01 2.6488782957271795e+01 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 1 0 0 0 0 +P 465 22 1.7235440236200694e-01 -6.0021433533256625e-02 1.5217956773985872e+00 1.5327004587478847e+00 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 1 0 0 0 0 +P 467 22 4.5893050301397365e-01 -9.5017947224512112e-01 1.3741002689570054e+01 1.3781459035633496e+01 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 1 0 0 0 0 +P 469 22 -1.6198332741124952e-01 -1.5422356089156571e-02 3.1055237191692759e+00 3.1097835966107890e+00 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 1 0 0 0 0 +P 471 22 -3.1902888396194151e-01 5.7381192287508798e-01 1.8818432921245529e+00 1.9930814654072178e+00 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 1 0 0 0 0 +P 473 22 -1.7879141260115867e+00 2.3465591294882859e+00 1.8067359255970079e+01 1.8306623040704810e+01 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 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 1 0 0 0 0 +P 476 22 -1.0157807603458334e-01 -1.8740788115304952e-01 6.8186928478867403e-03 2.1327520723543308e-01 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 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 1 0 0 0 0 +P 479 22 2.4737772584635406e-01 3.9643239817152115e-01 -1.5628282636309663e+01 1.5635266948342874e+01 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 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 1 0 0 0 0 +P 482 22 3.2985457263139006e-02 -5.7681815569483774e-01 -2.7308933268050717e-01 6.3905008313428557e-01 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 1 0 0 0 0 +P 484 22 -4.7654369480567102e-02 -3.8742572097895756e-01 -6.7818522609498041e-02 3.9619310975279542e-01 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 1 0 0 0 0 +P 486 22 -5.7282665603845380e-02 2.9700501285987765e-02 -1.5759441819103331e-01 1.7029217304471525e-01 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 1 0 0 0 0 +P 488 22 4.8867158637845319e-02 9.2115856024567719e-02 -3.5325296707559606e-01 3.6832185500209919e-01 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 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 1 0 0 0 0 +P 491 22 -1.5474800128245778e-01 5.7213576285513090e-01 -5.1589794557811262e+00 5.1929139507804729e+00 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 1 0 0 0 0 +P 493 22 -4.9683819629574119e-02 7.1398417580221585e-02 1.5437415960085871e-02 8.8343249756098599e-02 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 1 0 0 0 0 +P 495 22 7.1660498494050137e-02 -5.6128878595896443e-02 -7.9560338291332564e-02 1.2089468758336715e-01 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 1 0 0 0 0 +P 497 22 3.0750215958027394e-01 1.4437409126494161e-01 1.5750231618747674e+00 1.6112415761818897e+00 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 1 0 0 0 0 +P 499 22 1.4321552040215901e-01 -5.3001598407664563e-01 7.0922510505452010e+00 7.1134697997967420e+00 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 1 0 0 0 0 +P 501 22 8.9503713642537751e-03 4.6483512089294167e-02 1.0188440558207200e-01 1.1234437299894350e-01 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 1 0 0 0 0 +P 503 22 -7.2745052887069936e-02 -9.5452461341506492e-02 1.2347314951840711e+00 1.2405502328786151e+00 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 1 0 0 0 0 +P 505 22 -8.9511477232786629e-02 4.1278342536144701e-02 3.9210415654668013e-01 4.0430418709198446e-01 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 1 0 0 0 0 +P 507 22 -2.0488139654333862e-01 2.4854871656929914e-01 5.7081408313582516e-01 6.5542472387299155e-01 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 1 0 0 0 0 +P 509 22 9.5720803038463378e-02 8.4602554698270271e-02 2.7707064192895242e-01 3.0510359718417601e-01 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 1 0 0 0 0 +P 511 22 7.1426379875077009e-02 2.6570375761728566e-02 5.5104241235417319e+01 5.5104293932902152e+01 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 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 1 0 0 0 0 +P 514 22 -1.6079201520980721e-01 1.0648402032122213e-01 1.7070295252939683e+01 1.7071384622849845e+01 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 1 0 0 0 0 +P 516 22 -1.8658185022900918e-02 -9.6440795705683577e-02 -5.1254393546604243e-02 1.1079696657636637e-01 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 1 0 0 0 0 +P 518 22 -8.4630153565993557e-02 -1.2123114591746497e-04 -1.8410075719873392e-01 2.0262123874545424e-01 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 1 0 0 0 0 +P 520 22 1.6227427277457440e-01 9.1743438683356748e-01 -1.4376785736923154e+01 1.4406942316784155e+01 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 1 0 0 0 0 +P 522 22 6.0103580822178510e-02 6.6002762741430479e-02 -4.3983483125659523e-01 4.4880227707049974e-01 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 1 0 0 0 0 +P 524 22 -4.2167611336134614e-02 2.2119967837399371e-01 -5.0591000356033122e+00 5.0641090603777545e+00 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 1 0 0 0 0 +P 526 22 5.3730450744935102e-03 3.3115812041689355e-02 -5.9176009596032075e-01 5.9271033211132973e-01 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 1 0 0 0 0 +P 528 22 -7.1181574739910172e-02 -2.1214716485238358e-01 2.0564214843628897e-02 2.2471342431971594e-01 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 1 0 0 0 0 +P 530 22 -6.0239884439087552e-02 -7.3485626307050064e-02 3.4996208595725116e-02 1.0126063187166835e-01 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 0 0 0 0 +P 532 211 -1.7292216029916171e-01 -5.5668170439967064e-03 -1.1251381807496415e-01 2.4914294517873958e-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 533 22 -4.1799321747595368e-02 -2.2002625342251989e-01 2.0776320166063492e-01 3.0549023463604780e-01 1 0 0 0 0 +P 534 22 4.6605103750219246e-03 -4.7604324203406684e-02 -1.8116794935990260e-02 5.1147925652673905e-02 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 1 0 0 0 0 +P 536 22 -5.6116641951763281e-02 -1.3098107147460443e-02 2.2073098540934744e-02 6.1707856825420224e-02 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 1 0 0 0 0 +P 538 22 -3.2584382015507379e-01 4.8800065774682477e-01 1.5232221985470455e+00 1.6323371904239272e+00 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 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 1 0 0 0 0 +P 541 22 4.2850452954082546e-02 -2.1496304034714489e-01 1.8723159014023277e-01 2.8827233370564426e-01 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 1 0 0 0 0 +P 543 22 5.1382275035746849e-01 -1.7895462591953512e-01 -2.0715568038038368e-01 5.8219588871510730e-01 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 0 0 0 0 +P 545 -211 2.0811046164856656e-01 -9.7076490529901388e-02 -9.3664893491201751e-01 9.7443564253007409e-01 1 0 0 0 0 +P 546 111 7.6439448341283889e-01 -1.6319820437628141e-01 -2.4284510447741372e+00 2.5547067654523916e+00 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 1 0 0 0 0 +P 548 22 -7.9439325183585624e-02 -2.8797215164941031e-01 -3.5346441087396047e-01 4.6279115837026358e-01 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 1 0 0 0 0 +P 550 22 7.8822474490421540e-02 -1.2392968377188934e-02 4.3241421457486973e-01 4.3971424938975157e-01 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 1 0 0 0 0 +P 552 22 1.0198438854068275e-02 7.1738839806950361e-01 5.3210085651958536e+00 5.3691602949369495e+00 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 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 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 1 0 0 0 0 +P 556 22 3.3520899152715923e-02 -3.6724958742843213e-02 1.2670753477375407e+00 1.2680505944633595e+00 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 1 0 0 0 0 +P 558 22 2.1773520565967508e-01 -1.1635860158145582e-01 -2.9754965831844515e+00 2.9857206601569413e+00 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 1 0 0 0 0 +P 560 22 -1.3581064020573216e-01 1.7184310656263610e-01 -6.2394029876529555e-01 6.6126853825772958e-01 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 1 0 0 0 0 +P 562 22 -2.2530657193845258e-01 9.1815962874002371e-02 -4.2049020891801436e-01 4.8580370335460860e-01 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 1 0 0 0 0 +P 564 22 -7.9559396942135666e-02 4.7349669899603999e-02 -7.7891837640231998e-02 1.2099102137088527e-01 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 1 0 0 0 0 +P 566 22 -1.1651249793019035e-01 4.4992959343746600e-02 -2.7201300190967870e-01 2.9931689189278221e-01 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 1 0 0 0 0 +P 568 22 -3.1705682481445735e-01 -5.1135467688872380e-02 -9.0197030996840699e-01 9.5743945306305900e-01 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 1 0 0 0 0 +P 570 22 -3.5963372460583565e-01 6.5867476299182534e-02 4.1859802343527158e-01 5.5578705052547384e-01 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 1 0 0 0 0 +P 572 22 1.0453326376355529e-01 -2.0969741933778815e-01 3.5195232928334702e-01 4.2281278717413778e-01 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 0 0 0 0 +P 574 -211 1.5459267829018677e-01 -5.0714137832912419e-02 -4.4241473770426190e+00 4.4293374920692319e+00 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 0 0 0 0 +P 576 -211 -1.0949136603911050e-01 2.9294698802222685e-02 -1.4927954083399445e-01 2.3368933400271319e-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 0 0 0 0 +P 578 -211 1.4932450380815165e-01 -2.1983707797596455e-01 -4.3945446938190864e-02 3.0337622764013394e-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 1 0 0 0 0 +P 580 22 2.1746013190544179e-02 -1.6682119000114660e-02 -3.5282650085253067e-02 4.4677148309350663e-02 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 0 0 0 0 +P 582 -211 -3.1225368074799753e-01 -3.0867352142145359e-02 3.1198502882648715e+00 3.1386941170899947e+00 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 2 5.1553292069003653e-01 3.8485835711180655e-01 1.7290951843317296e+03 1.7290953040157517e+03 3 0 0 -3 0 +P 34 2101 -5.1553292069003653e-01 -3.8485835711180655e-01 4.2219673894488587e+03 4.2219674782123802e+03 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 3 0 0 -2 0 +P 4 21 -4.9797130516589477e-01 1.0933883123411841e+00 -1.3097958796984543e+02 1.3098509815308313e+02 3 0 0 -4 0 +P 19 2103 2.9142878896144259e-01 -6.5062234924971918e-01 -6.7718730985476304e+03 6.7718731800014712e+03 2 0 0 -9 0 +P 47 2 2.0654251620445219e-01 -4.4276596309146488e-01 -5.7621689243983575e+01 5.7624705403492385e+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 3 0 0 -5 0 +P 36 21 3.9295485495835827e+00 2.0268615205012281e+00 5.6968906941557279e+01 5.7140229939532411e+01 2 0 0 -13 0 +P 37 21 7.2056915500682295e-01 2.7350626169661183e+00 3.1393811690569535e+01 3.1520964450486176e+01 2 0 0 -13 0 +P 35 21 -5.5465777356364798e-01 9.8068482118457034e-01 7.0650666253777854e+02 7.0650756089247534e+02 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 3 0 0 -5 0 +P 11 1 1.0452289512758353e+00 1.6158783855979435e+00 -6.1449917248529795e+00 6.4477430017130333e+00 2 0 0 -9 0 +P 12 21 2.0507170473914881e-02 -8.9170706750033535e-01 6.3770653890766849e-01 1.0964632543028934e+00 2 0 0 -9 0 +P 13 21 2.4396972905842967e-01 -1.4625120878663037e-01 1.0957508431732279e+00 1.1320691476598213e+00 2 0 0 -9 0 +P 14 21 2.2404339997558728e-01 3.9772174914434660e-02 2.5679435268111024e+00 2.5780052808055083e+00 2 0 0 -9 0 +P 15 21 2.2907916028215539e-01 5.6145433093357851e-02 2.9566325145909338e+00 2.9660251849350718e+00 2 0 0 -9 0 +P 16 21 -6.4153613197677273e-01 -7.0041909254235180e-01 1.0594798881277963e+00 1.4229030701972845e+00 2 0 0 -9 0 +P 17 21 -6.0129688723679253e-01 1.0936253434099126e+00 -4.3678739538393438e+00 4.5426751166000470e+00 2 0 0 -9 0 +P 18 21 -3.0305601865621408e+00 -1.6350966724517046e+00 -5.7074862415394945e+00 6.6658259330709209e+00 2 0 0 -9 0 +P 42 21 -6.7308225475211777e-03 8.7119620191138739e-02 7.4004359099556938e-02 1.1450666950073547e-01 2 0 0 -13 0 +P 43 21 -5.4922530444249185e-01 -5.7443001559112279e+00 6.3312048654001273e+01 6.3574477091698256e+01 2 0 0 -13 0 +P 44 21 4.9246236874230154e-01 -5.4861752836502131e-01 4.3982393709953467e+00 4.4595975089272537e+00 2 0 0 -13 0 +P 45 21 4.3766303360700642e-01 2.8042708174598313e-01 -4.3159676870355774e+00 4.3471560076327940e+00 2 0 0 -13 0 +P 46 21 -1.4413565938367516e+00 2.1405263273210222e+00 -1.0566874068613508e+02 1.0570024654645897e+02 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 3 0 0 -6 0 +P 8 24 -1.3862798589011460e+01 5.3190305179177280e+00 5.2899710750727365e+02 5.3519431562641421e+02 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 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 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 2 0 0 -11 0 +P 21 21 8.7653865698945155e-01 1.9452440200741499e+00 3.7291978086873669e+00 4.2964183468500563e+00 2 0 0 -11 0 +P 22 21 -2.0857452765265194e-01 -7.8097599171663326e-02 5.4489705676514189e-01 5.8865556232250016e-01 2 0 0 -11 0 +P 23 21 4.3330618320281716e-01 -2.4374988476555451e-01 8.2552704145238334e+00 8.2702271958899356e+00 2 0 0 -11 0 +P 24 21 2.6578215572600017e-01 -6.1069772931963884e-01 4.5356490599717514e+00 4.5842888506420660e+00 2 0 0 -11 0 +P 25 21 1.6304916049466662e+00 -3.6620941265445184e-01 9.3379838052457362e+00 9.4863351066020183e+00 2 0 0 -11 0 +P 26 21 2.6494131576136009e+00 -1.8737085154722346e+00 9.4375769353402248e+00 9.9798813665872306e+00 2 0 0 -11 0 +P 27 21 4.8537372653729438e-01 -5.1150354578642432e-01 3.0414025015288576e+01 3.0422198164537093e+01 2 0 0 -11 0 +P 28 21 -5.8689790026581257e-01 -6.6235167154779151e-01 4.0123127325052408e+01 4.0132885583078945e+01 2 0 0 -11 0 +P 29 21 4.1758121948632577e-02 4.2034989308576348e-01 1.8538918442599272e+01 1.8543730336550770e+01 2 0 0 -11 0 +P 33 4 -1.6288441893558204e+01 -1.0335743124208518e+01 2.4206509617684176e+02 2.4283719178155783e+02 2 0 0 -11 0 +P 30 21 -2.5101750377319743e+00 -1.9382973720472618e+00 6.5945986831567893e+01 6.6022201982453325e+01 2 0 0 -11 0 +P 31 21 8.7123477679498865e-02 -8.9409756075726099e-01 2.1265649086936058e+01 2.1284614913998784e+01 2 0 0 -11 0 +P 32 21 -1.4970574855498966e+00 -4.0178069904057806e-01 2.0564942822669387e+01 2.0623275252607758e+01 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 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 2 0 0 -19 0 +P 56 2214 9.3832780090047519e-03 9.1663704029871862e-01 -1.5328564926592643e+00 2.1740194902635626e+00 2 0 0 -20 0 +P 57 -2214 1.8785147040946842e-01 2.0187292697287215e-01 -1.2056659478163527e+00 1.7030569421445392e+00 2 0 0 -21 0 +P 74 -323 4.7081490132332504e-01 -1.5865648494546025e-02 -3.2261583443112883e+01 3.2277241798891765e+01 2 0 0 -33 0 +P 75 211 -9.1757958893698033e-02 3.2181918311161262e-01 -1.6614336925585420e+01 1.6618292883789543e+01 1 0 0 0 0 +P 76 -211 -5.6452720769387055e-01 -4.8762420703273973e-01 -5.1472406189058162e+01 5.1478000612026534e+01 1 0 0 0 0 +P 77 2212 4.1629393788876684e-01 4.8136660226161482e-01 -2.2629571529474541e+02 2.2629855528880839e+02 1 0 0 0 0 +P 78 -2212 1.6931670804072943e-01 -2.7905712401517913e-01 -3.0378841559864082e+02 3.0379003990182349e+02 1 0 0 0 0 +P 79 113 -3.4822564064186329e-01 -1.3279027021738696e-01 -5.8612314068012904e+02 5.8612361777362742e+02 2 0 0 -34 0 +P 80 223 3.1115346594947385e-01 9.5015147249963641e-02 -1.6070126147938757e+02 1.6070340807922597e+02 2 0 0 -35 0 +P 81 111 -3.0700454395497856e-01 -2.6156960683994035e-01 -8.8893536417835003e+02 8.8893546592367738e+02 2 0 0 -36 0 +P 82 2214 4.7537093601289926e-01 -3.4129421297560109e-01 -4.4813354731965437e+03 4.4813356767779196e+03 2 0 0 -37 0 +P 65 -311 -5.9377456944595330e-01 4.5203893895285015e-02 -9.6189558945220821e-01 1.2359329210161991e+00 2 0 0 -28 0 +P 66 -211 -1.4391794255819610e-02 -7.1461790982322015e-01 -2.6658286748581150e-01 7.7552052901194535e-01 1 0 0 0 0 +P 67 211 -1.3248904077166496e-01 -4.3317492476548036e-01 -1.1482597221245971e+00 1.2422455617645944e+00 1 0 0 0 0 +P 68 -213 -5.2211437200382105e-01 7.9286955835134260e-02 -8.5790184370084488e-01 1.2011011581202928e+00 2 0 0 -29 0 +P 69 223 -9.5592288677932846e-01 -1.7918868574715585e-01 -3.0639090063121457e+00 3.3077794403724048e+00 2 0 0 -30 0 +P 70 211 7.0967562238259174e-02 3.8996758193883674e-01 -2.7910900605680138e+00 2.8225475409556564e+00 1 0 0 0 0 +P 71 221 -7.9420492103182139e-01 -1.1446092486693100e+00 -5.8237902163823607e+00 6.0130795584011185e+00 2 0 0 -31 0 +P 72 -211 -2.2868738909695571e-01 5.3871835020221159e-01 -8.0709761702752125e+00 8.0933708372239366e+00 1 0 0 0 0 +P 73 323 -3.7655233898013341e-01 -5.2497601208213923e-02 -9.3341650875051556e+00 9.3805406988977769e+00 2 0 0 -32 0 +P 58 -211 4.3147175131205556e-02 -2.3557373365294690e-02 2.1335388761743965e-01 2.5964648047518357e-01 1 0 0 0 0 +P 59 213 5.4943604442193794e-01 -4.4949867669686494e-01 1.8435024615148028e+00 2.2056789519361231e+00 2 0 0 -22 0 +P 60 313 -7.8106864351388319e-02 -2.9683058321885142e-01 1.5358913398195986e+00 1.7943222638789789e+00 2 0 0 -23 0 +P 61 -313 -2.8127679350961809e-01 -4.0985048763141485e-01 1.3613208314607497e+00 1.6998147557129637e+00 2 0 0 -24 0 +P 62 111 5.2287976246185208e-01 3.1551855841571058e-01 1.6575473956800690e+00 1.7716202121286238e+00 2 0 0 -25 0 +P 63 223 4.2062353527572627e-01 -5.3534021227090882e-02 -5.1902760003831150e-01 1.0278601073623364e+00 2 0 0 -26 0 +P 64 313 -1.0164883296342317e+00 3.0317113360459302e-01 -4.7102726088297031e-01 1.4817262414936587e+00 2 0 0 -27 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 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 2 0 0 -38 0 +P 85 -2214 5.9843068834265156e-01 7.0360055489560640e+00 1.7358883624012101e+01 1.8783497498949131e+01 2 0 0 -39 0 +P 86 2212 3.4886119643935054e-01 4.9862993156252911e+00 1.2320349332712045e+01 1.3328775010192965e+01 1 0 0 0 0 +P 87 213 -1.7633909923617705e-01 5.5008275946494822e-01 3.1366704522030666e+00 3.2788845202711485e+00 2 0 0 -40 0 +P 88 -213 9.3596281426276295e-01 3.1300597444033751e+00 1.2279947128812188e+01 1.2716588374863234e+01 2 0 0 -41 0 +P 89 223 2.1870910397305326e-01 -5.2382770779191845e-01 2.3985226478001938e+00 2.5828193483021984e+00 2 0 0 -42 0 +P 90 213 6.1204214328732109e-01 -1.6796573188674388e-01 4.5599062798313206e+00 4.6552912175547361e+00 2 0 0 -43 0 +P 91 221 5.4269273511143312e-01 7.7987872353382517e-02 1.0780774373457542e+00 1.3276106267994858e+00 2 0 0 -44 0 +P 92 -211 8.0098137319982554e-01 -5.7398530539559300e-01 6.2237539585614439e+00 6.3028266208608654e+00 1 0 0 0 0 +P 93 213 5.5057551623275680e-01 -1.0534036535349371e+00 9.4814928549044328e+00 9.5835615561107037e+00 2 0 0 -45 0 +P 94 -321 1.5575020040762801e+00 -8.3099763629883872e-01 8.8844400576506484e+00 9.0715646755244688e+00 1 0 0 0 0 +P 95 313 3.3279971362282484e-01 -1.8260757454558951e-01 7.4157827342161626e+00 7.4614577188472992e+00 2 0 0 -46 0 +P 96 -1114 -5.0615240179884302e-01 -3.3322629949875109e-02 2.3237572673526984e+01 2.3276087644739984e+01 2 0 0 -47 0 +P 97 -211 1.7928451814409808e-02 -8.9954836115038374e-03 3.5726096339188897e+00 3.5753911295660967e+00 1 0 0 0 0 +P 98 3122 -6.5369447377612477e-01 -1.0702310712709195e+00 2.9383501117182917e+01 2.9431404838655745e+01 2 0 0 -48 0 +P 99 321 -2.4057580701681808e-01 -2.6944576020956384e-01 4.7340903611494610e+01 4.7344854772714633e+01 1 0 0 0 0 +P 100 -211 5.7342976079554991e-02 -6.8530273376454165e-01 2.0599804297672083e+01 2.0611752592661787e+01 1 0 0 0 0 +P 101 223 -2.3410430059255853e+00 -1.1503275478832635e+00 4.4285266064355085e+01 4.4369010681721200e+01 2 0 0 -49 0 +P 102 223 -3.1953002833548410e+00 -2.9014902189151588e+00 5.7122129530076670e+01 5.7290619886004976e+01 2 0 0 -50 0 +P 103 111 -9.4229307627474845e-01 -2.6009023256420677e-01 1.3944330755467364e+01 1.3979203946897107e+01 2 0 0 -51 0 +P 104 411 -1.2640115643219200e+01 -7.6436973349308683e+00 1.8593454150456017e+02 1.8652974733115090e+02 2 0 0 -52 0 +V -13 0 0 0 0 0 4 1 0 +P 40 21 3.6780928056629758e+00 -1.8218289456156361e-01 5.0306149033881333e+01 5.0440759192474694e+01 2 0 0 -13 0 +P 41 21 -3.1335321392207005e-01 3.6624933692512527e+00 2.9580619506280872e+01 2.9808138121859425e+01 2 0 0 -13 0 +P 38 21 -3.6780928056629758e+00 1.8218289456156361e-01 2.3176136987604477e+02 2.3179062561742003e+02 2 0 0 -13 0 +P 39 21 1.9326626594872165e+00 3.0361539888006712e+00 4.1524606600260074e+02 4.1526166298688753e+02 2 0 0 -13 0 +P 105 92 4.3385916536288640e+00 7.8287873414824647e+00 5.6439088698045143e+03 5.9802581086412247e+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 1 0 0 0 0 +P 107 223 -2.5910643630590879e-01 2.6822308539292211e-01 3.3980500829705886e+02 3.3980610932012291e+02 2 0 0 -53 0 +P 108 -213 -8.4375493495365134e-02 9.5940084333554179e-02 4.2717554323319206e+02 4.2717675743312810e+02 2 0 0 -54 0 +P 109 113 -3.4570270925533353e-01 3.3786281887310854e-01 1.4073143387350351e+02 1.4073480152132342e+02 2 0 0 -55 0 +P 110 213 2.4695902556986107e-01 1.2962129105176443e-01 1.2135495094371257e+02 1.2135708944265656e+02 2 0 0 -56 0 +P 111 -213 7.1828294249699365e-01 2.4088172256065112e-02 1.8213566215684704e+01 1.8242281874573358e+01 2 0 0 -57 0 +P 112 211 3.2873577492781386e-01 9.7272501560572222e-01 3.9426955314388032e+01 3.9440569802087708e+01 1 0 0 0 0 +P 113 111 3.6542984071301632e-02 -1.2598519400611854e-01 1.0816686858157469e+00 1.0979227682619390e+00 2 0 0 -58 0 +P 114 -323 8.6173923366826966e-01 1.1984057445008052e+00 3.0606103245405613e+01 3.0655843761329539e+01 2 0 0 -59 0 +P 115 321 9.6888861415451444e-03 7.5096383158525493e-01 1.2274824797803829e+01 1.2307680745276246e+01 1 0 0 0 0 +P 116 113 1.7372162770218658e+00 5.9807209762691627e-01 1.9986477309083451e+01 2.0086000654430649e+01 2 0 0 -60 0 +P 117 111 3.0531402020407761e-01 1.8264305008182584e+00 4.1855045772255252e+01 4.1896206764135989e+01 2 0 0 -61 0 +P 118 -211 -3.5077119331308954e-01 -4.5694813801297091e-01 4.3816705499162680e+01 4.3820714309743344e+01 1 0 0 0 0 +P 119 211 -3.7029195227841366e-01 2.5395295815850005e-01 1.0279729792404048e+01 1.0290477764643340e+01 1 0 0 0 0 +P 120 -323 -7.3509947734007886e-01 2.6814421430056673e-01 6.0116876101422612e+01 6.0128892408855542e+01 2 0 0 -62 0 +P 121 311 -6.9510494917716592e-01 3.2581753110533535e-01 7.2855221980526849e+01 7.2860966046400250e+01 2 0 0 -63 0 +P 122 113 -5.2905073522641244e-01 3.1400871973230815e-01 7.3063252128309969e+01 7.3071887443745908e+01 2 0 0 -64 0 +P 123 211 6.6028226411728730e-01 4.7432898901159826e-01 8.6408369660818963e+01 8.6412306923746485e+01 1 0 0 0 0 +P 124 -323 3.0867648137115933e-01 4.2956262666170625e-01 1.9432116829669465e+02 1.9432395791775645e+02 2 0 0 -65 0 +P 125 323 6.2311833999943100e-01 6.5723937948714817e-01 2.0539373968623146e+01 2.0576811112060657e+01 2 0 0 -66 0 +P 126 -213 8.2345550936719503e-01 5.3491978714712018e-01 3.7603445724436263e+01 3.7621593707277178e+01 2 0 0 -67 0 +P 127 213 9.8022239868273831e-01 8.7532758950826225e-02 3.4555170316705698e+01 3.4579992236556180e+01 2 0 0 -68 0 +P 128 -211 -5.4933402605629666e-01 6.9404217019334813e-01 8.2074041622333471e+00 8.2561749783622673e+00 1 0 0 0 0 +P 129 113 -1.8452176626646558e-01 6.0381110882112632e-01 1.3101634256941848e+01 1.3132355266544623e+01 2 0 0 -69 0 +P 130 -3112 1.4055290907999738e+00 4.7729917439304131e-01 2.0435320259645351e+01 2.0524120034603992e+01 2 0 0 -70 0 +P 131 3122 5.3829758889303592e-01 4.0787393536340916e-01 1.1614299998698201e+01 1.1687293603033934e+01 2 0 0 -71 0 +P 132 113 3.0711687734085993e-03 -8.8265073989745946e-01 1.3713684841961960e+01 1.3753831262363400e+01 2 0 0 -72 0 +P 133 221 -7.5480206365605290e-02 1.8124278719185263e-01 5.6912987989439365e+00 5.7209378366508021e+00 2 0 0 -73 0 +P 134 -323 3.4119607349226949e-02 2.9236525030979216e-01 9.4123046873792351e+00 9.4590213924699373e+00 2 0 0 -74 0 +P 135 311 3.1370849344690394e-01 -1.6502140696154801e+00 1.7013060483686480e+01 1.7103026689591879e+01 2 0 0 -75 0 +P 136 111 -4.0944263992706453e-01 4.8640258974619648e-02 1.8573871902464190e+00 1.9073845771304352e+00 2 0 0 -76 0 +P 137 211 4.2521983009641312e-01 1.0095857429967137e-01 1.7231640563937192e+00 1.7831933960676001e+00 1 0 0 0 0 +P 138 331 -6.4813629763747049e-01 -1.8623822616724834e+00 1.5746494503179859e+01 1.5898343095215896e+01 2 0 0 -77 0 +P 139 223 2.6048232688869083e-01 -7.5634998087022398e-01 9.4625709838721264e+00 9.5283224643966609e+00 2 0 0 -78 0 +P 140 -213 1.8439421727607613e-01 -1.4205338969033782e-02 4.9823217426385797e+00 5.0459413515342293e+00 2 0 0 -79 0 +P 141 223 2.2982888723697886e-02 -2.4721922626951739e-01 7.1905766008958572e-01 1.0910344129213754e+00 2 0 0 -80 0 +P 142 211 -2.5858770326589875e-01 3.7058982588567041e-01 -1.3267284914603703e+00 1.4085072574477475e+00 1 0 0 0 0 +P 143 113 3.8294560107957676e-01 -4.0649528732935525e-01 -2.2779494568707106e+00 2.5112020323957029e+00 2 0 0 -81 0 +P 144 -213 -1.7928345872764893e-02 -4.4205911706645860e-02 -7.7159032233104536e+00 7.7555350485384382e+00 2 0 0 -82 0 +P 145 -2112 1.2412666094555554e-01 6.0949944184229277e-01 -5.5543953322427688e+00 5.6675388211554232e+00 1 0 0 0 0 +P 146 2212 -6.3965319906624407e-01 -1.8727663295352737e-02 -7.6895933419740139e+00 7.7730112117685382e+00 1 0 0 0 0 +P 147 223 -1.7596507607359885e-02 5.0768816135776895e-01 -3.0916304915378632e+01 3.0930486957261824e+01 2 0 0 -83 0 +P 148 -213 -6.6424238417843881e-02 1.1248577022620441e+00 -6.6508630910885344e+01 6.6523631467643838e+01 2 0 0 -84 0 +P 149 213 -4.1830686176762299e-01 -2.4546245054114987e-01 -4.5077618999398048e+01 4.5083098707959479e+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 2 0 0 -15 0 +P 49 21 3.1335321392207005e-01 -3.6624933692512527e+00 -1.5996227394120206e+01 1.6413145303715751e+01 2 0 0 -15 0 +P 50 21 -1.5946597234291504e+00 9.2504118596319991e+00 3.4553214778277602e-01 9.3932130643086573e+00 2 0 0 -15 0 +P 51 21 -1.9326626594872165e+00 -3.0361539888006712e+00 -2.2403930493388815e+00 4.2394312135724528e+00 2 0 0 -15 0 +P 150 92 -1.6193094455651464e+00 -6.6986473580519243e+00 -3.1231955917792302e+01 4.6358110327498416e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 16 0 +P 151 -213 -9.1575437638018786e-01 1.9786173531659450e+00 1.0038490462694034e-01 2.3689498194545235e+00 2 0 0 -86 0 +P 152 221 -1.1496652822320098e-01 -7.9300120639953120e-01 -1.4401545991065330e+00 1.7366102003012958e+00 2 0 0 -87 0 +P 153 213 -7.2057087624760130e-01 -1.4035436254698561e+00 -1.4434746483930367e+00 2.3576881056684051e+00 2 0 0 -88 0 +P 154 311 -4.2407341657881786e-01 -1.1323088737363824e+00 -4.2536503779649254e-01 1.3749809062203735e+00 2 0 0 -89 0 +P 155 -323 6.8739672657553341e-01 -3.4637271310558235e+00 -5.6861873569991586e+00 6.7553227489313796e+00 2 0 0 -90 0 +P 156 211 3.2027042541495282e-01 -2.3824354336932485e+00 -4.9432086795529084e+00 5.4984873897845601e+00 1 0 0 0 0 +P 157 -211 3.7929530102443287e-01 -1.7398661940045272e+00 -1.6262506930350391e+00 2.4156097366743579e+00 1 0 0 0 0 +P 158 211 3.5929042858649445e-02 -2.5352917615846560e-01 -5.9214749380134923e-01 6.6006543508924009e-01 1 0 0 0 0 +P 159 113 -1.8124205568734308e-01 -3.1612383038769862e+00 -1.1255356346808174e+01 1.1743159345237892e+01 2 0 0 -91 0 +P 160 -211 2.8532095261363383e-01 1.0522733295491603e-02 -1.4240332868527008e+00 1.4590645499363166e+00 1 0 0 0 0 +P 161 111 8.0154759639689030e-02 -3.4769109444583562e-01 -8.8595154092897399e-01 9.6459505281971181e-01 2 0 0 -92 0 +P 162 211 3.8450845074859470e-02 2.0662978645006660e-01 -7.8432525673484271e-02 2.6420783886723115e-01 1 0 0 0 0 +P 163 2112 -6.2517197323617857e-01 3.1384370147711613e+00 1.1380234215497604e-02 3.3351983728762726e+00 1 0 0 0 0 +P 164 -2212 4.7227611869119018e-01 9.0023711940114270e-01 -1.4423015082082278e+00 1.9985134067384713e+00 1 0 0 0 0 +P 165 213 -8.8060853310417464e-01 -2.2704271380420674e-01 -3.0207510516881181e-01 1.2785039593373555e+00 2 0 0 -93 0 +P 166 113 -5.6015858000582994e-02 1.9712923875091308e+00 2.0121776569014715e-01 2.1471534595610358e+00 2 0 0 -94 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 2 0 0 -17 0 +P 53 21 3.0362721334232550e+00 -7.6960555799361619e-01 4.2639680730324301e+00 5.2908094759627442e+00 2 0 0 -17 0 +P 167 92 0 0 3.1375449003662573e+02 3.1479718166639202e+02 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 2 0 0 -95 0 +P 169 311 -3.9549707014260671e-01 -2.8851686492632728e-01 8.4163752596000130e+00 8.4452772514077648e+00 2 0 0 -96 0 +P 170 -323 5.2128742450140031e-01 9.7134097701761499e-02 8.3960820516559060e+00 8.4589041202825257e+00 2 0 0 -97 0 +P 171 113 3.8591072460653691e-01 -2.7644757220945215e-01 4.7314982713787517e+00 4.8147268927460747e+00 2 0 0 -98 0 +P 172 213 6.0325469359176376e-01 -3.0740340709509106e-01 1.4598324375000185e+00 1.7877548921809201e+00 2 0 0 -99 0 +P 173 1114 3.6710399464270077e-01 1.2951245679680667e-01 3.1121459445196282e+00 3.3467359928685627e+00 2 0 0 -100 0 +P 174 -1114 9.7380249513257433e-01 -6.3457340363777717e-02 1.2276570613075052e+01 1.2375786282599574e+01 2 0 0 -101 0 +P 175 2112 -3.2151359419442543e-01 -3.9573049090654866e-01 1.2203622044795935e+01 1.2250353317754321e+01 1 0 0 0 0 +P 176 211 -2.6031509045536677e-01 -2.5957138973744100e-02 2.1813184663724797e+01 2.1815199808345582e+01 1 0 0 0 0 +P 177 -3222 -1.3419797779501037e+00 1.0195367754860356e+00 7.0658805821816856e+01 7.0688908649965128e+01 2 0 0 -102 0 +P 178 -323 6.5303950764476326e-01 4.5843110713109797e-01 4.3702629036619392e+01 4.3720185385460475e+01 2 0 0 -103 0 +P 179 113 -1.2053222613750429e+00 -6.5261496518697781e-01 8.2787798768823720e+01 8.2800346532049119e+01 2 0 0 -104 0 +P 180 213 2.0228441721426238e-01 1.5934395893829920e-01 2.2925780883396051e+01 2.2952070100818403e+01 2 0 0 -105 0 +P 181 -211 -5.1204870311642947e-01 -4.2325221952605135e-01 9.6591851821438173e+00 9.6830095777884910e+00 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 1 0 0 0 0 +P 183 111 2.5327040357331115e-01 5.8815220376537669e-01 -1.6074980532960521e+00 1.7356089720529952e+00 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 1 0 0 0 0 +P 185 111 1.9093758885898043e-01 3.4307324296551578e-01 -5.4152418423568671e-01 6.8236680413856798e-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 1 0 0 0 0 +P 187 111 -1.2735758821479068e-01 -8.9349224266055422e-03 -1.3398243917761030e-01 2.2906479983323427e-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 0 0 0 0 +P 189 111 -2.4862271094782207e-01 -1.2852231239011683e-01 2.9308707044207477e-01 4.2714267925538041e-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 1 0 0 0 0 +P 191 -211 7.2622240627725473e-02 1.3135692979402222e-01 1.4767520864444364e-01 2.5261905111626654e-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 1 0 0 0 0 +P 193 211 -2.0819494951518142e-01 -3.7697843105844819e-01 3.5213703177172428e-01 5.7353129690708116e-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 1 0 0 0 0 +P 195 22 2.5082939369000368e-01 1.0548989384833672e-01 8.8928486895552616e-01 9.2998445180351008e-01 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 0 0 0 0 +P 197 -211 3.7753509906070848e-01 -2.8072898252255268e-02 -4.9028060511515958e-01 6.3496117620776427e-01 1 0 0 0 0 +P 198 111 -5.0087081665597831e-03 8.2679167170274983e-03 1.1982873351947212e-01 1.8075389727808949e-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 2 0 0 -111 0 +P 200 111 -1.7089083775893985e-01 2.9320013029682768e-01 5.3461345449179000e-02 3.6911747546447249e-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 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 0 0 0 0 +P 203 111 -5.7967958732875779e-01 1.9060824615963567e-01 -5.1323302876053767e-01 8.0869504121170799e-01 2 0 0 -114 0 +V -30 0 0 0 0 0 0 3 0 +P 204 211 -2.9500658243202599e-01 -2.2831491421237085e-01 -7.6054280475650438e-01 8.5852299124538090e-01 1 0 0 0 0 +P 205 -211 -3.1517645369553471e-01 -1.6670151526215007e-01 -1.3583103023518337e+00 1.4112449307366599e+00 1 0 0 0 0 +P 206 111 -3.4573985065176793e-01 2.1582774372736507e-01 -9.4505589920380773e-01 1.0380115183903642e+00 2 0 0 -115 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 1 0 0 0 0 +P 208 22 -5.2123567655416625e-01 -1.0273993326069992e+00 -5.1403413175097858e+00 5.2678596108526312e+00 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 2 0 0 -116 0 +P 210 211 -2.0554842986190747e-01 2.1336500028280095e-01 -4.1667454612314101e+00 4.1795959498445461e+00 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 1 0 0 0 0 +P 212 111 -3.1214615232548548e-02 9.2315020056256067e-02 -1.5055624232852555e+01 1.5056544658599103e+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 0 0 0 0 +P 214 -211 -4.3948488936305879e-01 -8.5865907398658278e-02 -2.5473884247645952e+02 2.5473927429030923e+02 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 0 0 0 0 +P 216 211 7.5480641148820526e-02 -1.0982597901254602e-01 -1.5712350184328226e+01 1.5713535158350382e+01 1 0 0 0 0 +P 217 111 2.4767673741972890e-01 5.0668514556659799e-02 -1.0757404831534404e+02 1.0757443005480903e+02 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 1 0 0 0 0 +P 219 22 -1.0394410803041193e-01 -1.5801888561298336e-01 -3.1804802338288772e+02 3.1804807962336088e+02 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 1 0 0 0 0 +P 221 111 2.7792522862110680e-01 -4.6183830318953831e-02 -1.5611958512606125e+03 1.5611958825170939e+03 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 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 1 0 0 0 0 +P 224 111 -4.2370572833966343e-02 3.7630958362777911e-01 7.0705246002361244e-01 8.1335536501447692e-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 0 0 0 0 +P 226 111 -2.4791741699645198e-01 5.9538292801339954e-01 1.5554365516311630e+00 1.6892443112736077e+00 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 0 0 0 0 +P 228 111 1.0381122433908205e-01 6.6594352716038974e-01 2.1528987967838971e+00 2.2599668982662449e+00 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 0 0 0 0 +P 230 -211 2.2523982939715814e-01 -2.3702484908296056e-02 5.6148232442395496e-01 6.2131873791011349e-01 1 0 0 0 0 +P 231 111 -2.1496075116390248e-02 -2.6359322531633833e-01 3.9880052266159505e-01 4.9719707053968126e-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 0 0 0 0 +P 233 111 3.7290789623554016e-01 -5.1190371861218900e-02 9.2180964685596467e-01 1.0048051446339359e+00 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 2 0 0 -125 0 +P 235 111 1.6865575199696520e-01 1.3369711769649753e-01 2.2670061612841966e-01 3.4048854858132604e-01 2 0 0 -126 0 +P 236 111 1.1737773793019404e-01 1.8028103922700229e-02 4.6420344251526557e-01 4.9780215179896570e-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 0 0 0 0 +P 238 111 1.4412581789419426e-01 5.3202859311188878e-02 1.1740086701081160e+00 1.1916873556061522e+00 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 2 0 0 -129 0 +P 240 111 8.1017910362551057e-02 -1.5036507976175487e-01 3.4051200055065252e+00 3.4120720114487666e+00 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 1 0 0 0 0 +P 242 211 -2.4056819339966279e-01 8.0717251922855018e-03 9.3665887871712474e+00 9.3707205433352510e+00 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 1 0 0 0 0 +P 244 -211 -1.0461544316330479e-02 -1.0680244434445450e-01 2.1851814227995972e+00 2.1922622656689379e+00 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 0 0 0 0 +P 246 -211 -4.9088454070215592e-01 -3.0027745336315973e-02 7.2664188190925962e+00 7.2843799693009830e+00 1 0 0 0 0 +P 247 111 -7.8433224325262052e-01 -2.9777701257474420e-01 1.5463318749655521e+01 1.5486648913527794e+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 0 0 0 0 +P 249 211 -1.0146380362055605e+00 -1.1421994186045756e+00 1.6785995231936074e+01 1.6855955195949480e+01 1 0 0 0 0 +P 250 111 -9.6179822519988656e-01 -8.2506899661188349e-01 1.9413229757131628e+01 1.9455012307339945e+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 1 0 0 0 0 +P 252 22 -4.0117919049830292e-01 -8.2636215895192267e-02 4.9896361441928754e+00 5.0064201120663352e+00 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 0 0 0 0 +P 254 14 -1.7622608552463395e+00 -6.1124567981443900e-01 2.3767021479078203e+01 2.3840102654770387e+01 1 0 0 0 0 +P 255 -323 -7.3856701894561985e+00 -4.9147012895514184e+00 1.1208276364753114e+02 1.1243641907035618e+02 2 0 0 -133 0 +P 256 211 -8.3032704528557788e-01 -5.0102375923189180e-01 1.3941317982788394e+01 1.3975703727954690e+01 1 0 0 0 0 +V -53 0 0 0 0 0 0 3 0 +P 259 111 -2.1788911425523635e-01 -3.3819150870949083e-02 1.5879812474349990e+02 1.5879833519610222e+02 2 0 0 -134 0 +P 257 -211 1.3857831485530528e-01 2.6488289772950824e-01 1.2033220667879797e+02 1.2033265895372175e+02 1 0 0 0 0 +P 258 211 -1.7979563690597777e-01 3.7159338534362971e-02 6.0674676874761047e+01 6.0675115170299051e+01 1 0 0 0 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 0 0 0 0 +P 261 111 2.3397054695967343e-01 -2.0782937300071624e-01 6.3017049896018172e+01 6.3017971503871578e+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 0 0 0 0 +P 263 -211 -1.7657170564239925e-02 5.4286517071622287e-01 7.7233692867527111e+01 7.7235728831348879e+01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 264 211 2.3313981532533326e-01 2.5928411580336491e-01 1.0957397434947973e+02 1.0957461803242364e+02 1 0 0 0 0 +P 265 111 1.3819210244527837e-02 -1.2966282475160049e-01 1.1780976594232847e+01 1.1782471410232937e+01 2 0 0 -136 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 0 0 0 0 +P 267 111 2.6278645540909368e-01 -2.0399835461058230e-01 1.2281845329601460e+01 1.2287091452027347e+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 1 0 0 0 0 +P 269 22 8.3218703776255343e-02 -1.0804888052179129e-01 8.5457841226349773e-01 8.6539249820356823e-01 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 2 0 0 -138 0 +P 271 -211 1.1684349484407686e-01 3.3304617277479132e-01 1.3094954766581912e+01 1.3100453895923364e+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 0 0 0 0 +P 273 211 2.5378665607382822e-01 5.1504212546178629e-03 1.3539237060033491e+00 1.3845661342883115e+00 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 1 0 0 0 0 +P 275 22 1.4120857610435908e-01 6.4894838398572974e-01 1.6291014133057946e+01 1.6304545849257401e+01 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 2 0 0 -139 0 +P 277 -211 -2.5911615941498739e-01 3.5248729860197742e-01 3.2768538452078332e+01 3.2771755835627452e+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 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 0 0 0 0 +P 280 211 -1.7020988803033060e-01 4.8234612082944878e-01 2.0173812743598088e+01 2.0180778716018942e+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 1 0 0 0 0 +P 282 111 -3.2573253343187690e-02 3.1947085801068070e-01 3.7927127562285655e+01 3.7928727204748640e+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 1 0 0 0 0 +P 284 111 1.2384987075047131e-01 1.5431966147040221e-01 1.6072972622645629e+00 1.6250469033490718e+00 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 0 0 0 0 +P 286 111 6.4486344276971752e-01 4.1954089445604403e-01 3.4093148585283814e+01 3.4102094708105270e+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 0 0 0 0 +P 288 111 8.2817694285958010e-01 3.5851535166798970e-01 2.9026079952350351e+01 2.9040419199913433e+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 0 0 0 0 +P 290 211 -2.0671728245952670e-01 5.6845359322346689e-03 5.6135734926813177e+00 5.6191148316661534e+00 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 1 0 0 0 0 +P 292 211 5.3478597298736574e-01 1.8426256885623099e-01 5.3298961272609038e+00 5.3616435207384239e+00 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 1 0 0 0 0 +P 294 -211 1.1536274026245073e-01 1.0969302893092955e-01 2.8246189572817935e+00 2.8325418198453116e+00 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 0 0 0 0 +P 296 -211 -1.8119511039128258e-01 -1.3216308974087224e-01 3.6693369790839530e+00 3.6788330216649565e+00 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 0 0 0 0 +P 298 211 9.0350579840365638e-02 1.9611894399870142e-01 2.5597390976925207e+00 2.5726192684943445e+00 1 0 0 0 0 +P 299 111 -7.3500095204024493e-02 -2.8029675650135422e-02 1.4396825602645615e+00 1.4481344555813784e+00 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 1 0 0 0 0 +P 301 111 2.0114716920673079e-01 1.5846874708903921e-01 5.7634264972716922e+00 5.7706912165993858e+00 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 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 1 0 0 0 0 +P 304 22 -2.3150197645234680e-01 6.1989629781244990e-02 1.3070978228067121e+00 1.3288869770179124e+00 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 1 0 0 0 0 +P 306 113 -1.6665913895179937e-01 -8.1594819202784230e-01 7.9877425118423817e+00 8.0545508376702948e+00 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 0 0 0 0 +P 308 -211 3.5179468682444448e-01 -2.3385890449493285e-01 3.1756943767047940e+00 3.2067061056517057e+00 1 0 0 0 0 +P 309 111 9.0534432904070691e-02 -2.3749201050634819e-01 3.2731976007131105e+00 3.2858242607159731e+00 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 0 0 0 0 +P 311 111 -9.4170629718448959e-02 -2.9997688368599973e-01 1.5278571859945593e+00 1.5657015741969307e+00 2 0 0 -150 0 +V -80 0 0 0 0 0 0 3 0 +P 312 211 -2.4615362835751831e-01 -1.3753471735515529e-01 4.7223885765926288e-01 5.6744755776623024e-01 1 0 0 0 0 +P 313 -211 7.9426483332274311e-02 -1.5467016237984951e-01 9.7427050026002354e-02 2.4331716002351791e-01 1 0 0 0 0 +P 314 111 1.8971003374894185e-01 4.4985653465487427e-02 1.4939175240432037e-01 2.8026969513162736e-01 2 0 0 -151 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 0 0 0 0 +P 316 -211 -1.9425629667973457e-01 -1.1419431352636915e-02 -1.1646984667205262e+00 1.1890619056606293e+00 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 0 0 0 0 +P 318 111 2.7228862930317249e-01 -1.6409330052984511e-01 -5.7080765886119700e+00 5.7185160357199880e+00 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 0 0 0 0 +P 320 -211 -2.6126819940006357e-01 2.3461403354789964e-01 -1.1509852823941991e+01 1.1516053865385521e+01 1 0 0 0 0 +P 321 111 -1.7919897259041917e-02 1.5330504745657006e-01 -4.6525951151258740e+00 4.6571111717444085e+00 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 0 0 0 0 +P 323 111 -1.7831872374999885e-01 1.0951995265665338e-02 -2.0281315249784544e+01 2.0282551254094816e+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 0 0 0 0 +P 325 111 -2.2960427640955786e-01 -3.4454698564168434e-01 -3.2341356799315314e+01 3.2344288676211129e+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 0 0 0 0 +P 327 111 1.0395726111678255e-01 4.3839738579715976e-01 2.0604050465128451e-01 5.1348969801705135e-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 1 0 0 0 0 +P 329 -211 -1.2443340358908676e-01 -5.8991175846200250e-01 -1.2399150957152332e+00 1.3857664969911101e+00 1 0 0 0 0 +P 330 211 2.9365126251793771e-03 -7.2719994381920436e-02 -1.0380865883666240e-01 1.8855461606328006e-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 0 0 0 0 +P 332 111 -4.8875895366781463e-01 -1.0438837818201401e+00 -1.5081607656981406e+00 1.9029837519875930e+00 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 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 2 0 0 -158 0 +P 335 -211 1.4206249538727772e-01 -1.2704767907742456e+00 -1.5334522019844594e+00 2.0013116871598671e+00 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 0 0 0 0 +P 337 -211 -5.8985066728510137e-02 -1.1565457627145266e-02 -1.0576927309564947e+00 1.0685535531386812e+00 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 1 0 0 0 0 +P 339 22 6.5158901574831854e-02 -1.4829414915611150e-01 -5.5279133443610673e-01 5.7603393698290495e-01 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 0 0 0 0 +P 341 111 -9.6650164117480342e-01 -6.5388813680532676e-02 -3.5814431438071642e-01 1.0415796031371627e+00 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 0 0 0 0 +P 343 -211 2.8288613453084904e-01 1.1469241558673431e+00 3.3338963934249888e-01 1.2353493517797889e+00 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 0 0 0 0 +P 345 111 2.2635792709284186e-01 7.3162424785401936e-01 7.5368670247839322e+00 7.5768790475288128e+00 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 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 2 0 0 -161 0 +P 348 -211 2.0356629405886905e-02 2.6450194609587585e-01 2.1461021282513455e+00 2.1669355785611693e+00 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 0 0 0 0 +P 350 211 1.9833343048630526e-02 1.5399358150276715e-01 4.7818642606202344e-01 5.2177526542612684e-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 0 0 0 0 +P 352 111 4.4384650908363849e-01 -1.1612861185648843e-01 2.4019833176905525e-01 5.3516391610616321e-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 1 0 0 0 0 +P 354 -211 1.2249192763084313e-01 1.6638271141054020e-01 8.2289236642324926e-01 8.5983667670593000e-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 1 0 0 0 0 +P 356 211 -5.6839362417106777e-02 6.3129684964331675e-02 1.2267245939576892e+00 1.2375577095894705e+00 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 1 0 0 0 0 +P 358 -211 -2.0412167434448733e-01 4.0920312535230922e-02 1.4585951983370913e+01 1.4588105263399255e+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 2 0 0 -163 0 +P 360 -211 1.7967918223592744e-01 2.5885318350017517e-01 5.4584200602766515e+00 5.4692887031558053e+00 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 0 0 0 0 +P 362 211 -8.8439883740469394e-01 -2.9929391419485957e-01 5.4686939688980750e+01 5.4695087443771357e+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 0 0 0 0 +P 364 111 1.0891567153138218e-01 5.3615728162335041e-01 7.6529234059726923e+00 7.6736421282352971e+00 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 1 0 0 0 0 +P 366 22 4.1026448030886967e-02 1.0734013789231003e-01 -1.7137726053839816e-01 2.0633768456202375e-01 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 1 0 0 0 0 +P 368 22 1.3030486076758502e-01 3.1311964620364563e-01 -4.9591895367456895e-01 6.0079853377986470e-01 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 1 0 0 0 0 +P 370 22 -1.5504829056605138e-01 -1.9221804201258064e-02 -1.1386631619291016e-01 1.9332611858605653e-01 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 1 0 0 0 0 +P 372 22 -6.7287207673414770e-02 -1.0743813451843676e-01 1.4027076936302429e-01 1.8906720975087596e-01 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 1 0 0 0 0 +P 374 22 -6.3455584296092616e-03 -6.2926021078025848e-02 6.6649886259870242e-02 9.1881214505193501e-02 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 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 1 0 0 0 0 +P 377 22 -1.0138909794407150e-01 2.3445286016514555e-01 -1.4024037988002492e-02 2.5582135654205801e-01 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 0 0 0 0 +P 379 211 -1.2733627113911816e-01 1.6113936305111573e-01 -1.7659441751103602e-01 3.0470607717634451e-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 1 0 0 0 0 +P 381 22 -4.6791164082034109e-01 1.7113690629232955e-01 -4.7660078537344397e-01 6.8947621636215795e-01 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 1 0 0 0 0 +P 383 22 -3.3008524394544181e-01 1.5663386576763144e-01 -7.6368839195815341e-01 8.4658750060904175e-01 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 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 1 0 0 0 0 +P 386 22 1.5719078175245767e-02 6.3860166588475972e-02 -1.3060589964743238e+01 1.3060755546194381e+01 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 1 0 0 0 0 +P 388 22 1.0260154843681210e-02 -2.2971575277084405e-02 -2.3710361774420765e+01 2.3710375122253165e+01 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 1 0 0 0 0 +P 390 22 2.3552360385043181e-01 7.1908758031656028e-03 -1.0339574842891241e+03 1.0339575111389108e+03 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 1 0 0 0 0 +P 392 22 4.2736363582437008e-02 1.0174128803230018e-01 1.4668580658605107e-01 1.8356037785023779e-01 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 1 0 0 0 0 +P 394 22 -2.6235155521216191e-02 6.0881532406653491e-02 2.9457331756189681e-01 3.0194086141631588e-01 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 1 0 0 0 0 +P 396 22 1.0782252001879759e-01 5.1112676566625326e-01 1.4802027003965594e+00 1.5696739472466619e+00 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 1 0 0 0 0 +P 398 22 1.2707702234842765e-02 -1.8627834838151267e-01 1.6714412980962137e-01 2.5059582778180722e-01 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 1 0 0 0 0 +P 400 22 9.2426469250633983e-02 -4.9499445074743652e-02 3.8643277767653045e-01 4.0040371994231605e-01 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 1 0 0 0 0 +P 402 22 2.4098140449885502e-01 -7.3933929715660526e-02 2.6347993526548569e-01 3.6463672273229075e-01 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 1 0 0 0 0 +P 404 22 1.7349290496990249e-01 6.5493135264584043e-02 1.5914491837677636e-01 2.4436907309811426e-01 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 1 0 0 0 0 +P 406 22 4.2183059397594619e-02 1.5839315147350983e-03 1.9522297629404592e-02 4.6508487869585918e-02 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 1 0 0 0 0 +P 408 22 7.3374743433465395e-02 -5.4860080114057562e-03 8.9298349100003183e-01 8.9600974573741798e-01 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 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 1 0 0 0 0 +P 411 22 5.8407246803437063e-02 -1.6620906127341661e-01 3.2288752809096777e+00 3.2336778500954755e+00 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 1 0 0 0 0 +P 413 22 -1.4353546444437934e-01 -1.8343298954584674e-03 2.7875972997355194e+00 2.7912908303887272e+00 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 1 0 0 0 0 +P 415 22 -7.7204765374333273e-01 -5.8882294422292536e-01 1.4997827233334203e+01 1.5029224589453543e+01 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 2 0 0 -165 0 +P 417 -211 -1.6323447011722816e+00 -8.8456314377591827e-01 2.1686911267723048e+01 2.1766685583656617e+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 1 0 0 0 0 +P 419 22 -1.4527780310138280e-01 -7.1017137651406562e-02 7.7019024855621765e+01 7.7019194612673004e+01 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 1 0 0 0 0 +P 421 22 1.5872388908114299e-01 -6.2326529194992208e-02 2.6001459406053321e+01 2.6002018558447446e+01 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 1 0 0 0 0 +P 423 22 -3.9175857367738848e-02 -2.5778290654386461e-02 1.2992834958659103e+00 1.3001295591975057e+00 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 1 0 0 0 0 +P 425 22 1.1707757909111839e-01 -7.7828899667208698e-02 7.5703948639384269e+00 7.5717001322750876e+00 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 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 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 0 0 0 0 +P 429 211 -2.0594778188345286e-01 -2.7975227103050119e-02 3.2761197474600237e+01 3.2762154032615854e+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 1 0 0 0 0 +P 431 22 -8.5701044998682224e-02 1.9572668409402283e-01 2.3390663781688637e+01 2.3391639655055833e+01 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 1 0 0 0 0 +P 433 22 1.2915793110420093e-01 9.2048864231064606e-02 8.1502456738822093e-01 8.3031307951862532e-01 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 1 0 0 0 0 +P 435 22 1.7119797565636166e-01 1.5360451337469549e-01 8.0697161914225859e+00 8.0729934041534896e+00 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 1 0 0 0 0 +P 437 22 7.1395691893479074e-01 3.5202350085120604e-01 2.4681962924026539e+01 2.4694795986407076e+01 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 1 0 0 0 0 +P 439 22 3.3797644432614085e-02 2.2387159118688409e-03 6.1743533525827154e-01 6.1836371646759947e-01 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 1 0 0 0 0 +P 441 22 1.8302887004733309e-01 1.2889321762858399e-01 3.5816146721340854e+00 3.5886037240781548e+00 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 0 0 0 0 +P 443 211 1.4202736966257906e-01 -1.0267272091220803e+00 1.2193506724211735e+01 1.2238277107255811e+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 0 0 0 0 +P 445 -211 2.1778470945671029e-02 -2.4462331826562256e-01 9.8717902473717956e-01 1.0267994358281778e+00 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 1 0 0 0 0 +P 447 22 4.8588031729018710e-02 -2.9686399776247515e-03 4.6635888441359208e-01 4.6889254496324323e-01 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 1 0 0 0 0 +P 449 22 -9.1354270497869719e-02 -8.4166128558272837e-02 4.7690219716075166e-01 4.9281360126465479e-01 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 1 0 0 0 0 +P 451 22 -1.9531428350450693e-02 1.7786760017401684e-03 2.9058724355280816e-02 3.5057807160233830e-02 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 1 0 0 0 0 +P 453 22 7.6955925907224484e-02 -5.9373409033625792e-02 -8.7929594389071397e-01 8.8465178074493211e-01 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 1 0 0 0 0 +P 455 22 5.3670388799414187e-02 1.0116877789444984e-01 -2.9364681511251565e+00 2.9387005350710602e+00 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 1 0 0 0 0 +P 457 22 -1.1367821570845126e-01 4.3241950459031744e-02 -1.7024964794881363e+01 1.7025399227916957e+01 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 1 0 0 0 0 +P 459 22 -5.5639920627447256e-02 -1.7037205726974725e-01 -1.7162333386727944e+01 1.7163269202452724e+01 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 1 0 0 0 0 +P 461 22 4.9996200145225052e-02 3.5923933344749981e-01 2.0713822197716783e-01 4.1768260884148362e-01 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 1 0 0 0 0 +P 463 22 -1.7159394224262578e-01 -4.6238326591962625e-01 -7.3145491151569741e-01 8.8219558670246279e-01 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 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 1 0 0 0 0 +P 466 22 -1.3303388673837305e-01 -1.6754162505457412e-02 -2.5178224124823680e-03 1.3410837562090722e-01 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 1 0 0 0 0 +P 468 22 1.3186361989659259e-01 6.0223555965823572e-01 5.8276278810181124e+00 5.8601469608866257e+00 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 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 1 0 0 0 0 +P 471 22 1.8665769195734039e-01 -9.9018351789270556e-02 1.6058137083810370e-01 2.6539047574875341e-01 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 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 1 0 0 0 0 +P 474 22 5.2001694195469371e-02 4.5689027713045866e-01 6.6906422812036404e+00 6.7064258019130722e+00 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 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 0 0 0 0 +P 477 211 -9.1786539306086476e-02 -1.8807822687740958e-01 1.3620887632698674e+01 1.3623210263213544e+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 0 0 0 0 +P 479 -211 1.0609611203995273e-01 -2.7402782356586536e-01 -7.9707759184005411e-01 8.6090656019789924e-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 0 0 0 0 +P 481 -211 4.9014070372956692e-01 1.8660786125943651e-01 3.4021716724520246e+01 3.4026045157669103e+01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 2 9.5585977786327769e-02 7.9414932775068517e-02 2.4315489624226007e+02 2.4315492799858069e+02 3 0 0 -3 0 +P 24 2101 -9.5585977786327769e-02 -7.9414932775068517e-02 6.5004858943937879e+03 6.5004859213968966e+03 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 3 0 0 -2 0 +P 4 21 -3.1839018050093307e-03 5.0554804870918790e-01 -2.5725369994220681e+01 2.5730337158815754e+01 3 0 0 -4 0 +P 12 2101 3.8701429021918715e-01 -2.0438006852161128e-01 -5.1057965796384815e+03 5.1057966312635817e+03 2 0 0 -9 0 +P 33 2 -3.8383038841417783e-01 -3.0116798018757662e-01 -1.4059242432952470e+02 1.4059365813141250e+02 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 3 0 0 -5 0 +P 25 21 -3.6511185605667584e-03 -1.4425395575640334e+00 8.1652186717378754e+00 8.2916662778419035e+00 2 0 0 -17 0 +P 26 21 2.9593935486652639e-01 6.8709099958216890e-01 4.0361549279216140e+00 4.1049020384963599e+00 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 3 0 0 -5 0 +P 11 3 -2.8557959363283214e-01 -1.4780078065351945e+00 -1.0810465318999622e+01 1.0926217240828231e+01 2 0 0 -9 0 +P 31 21 1.2172273336784700e+00 -4.7627796523471329e-02 -9.7231787370062306e-01 1.5586253033918638e+00 2 0 0 -17 0 +P 32 21 1.0642173874125529e+00 1.1887517313130824e+00 -1.4482536478625649e+00 2.1547918588388710e+00 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 3 0 0 -6 0 +P 8 24 -3.5958396201755241e+00 1.7596743824934931e+00 1.3507743361623650e+02 1.5845551205159941e+02 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 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 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 2 0 0 -11 0 +P 14 21 -6.6611694690988275e+00 2.4614122585280231e+00 7.0400917686742488e+01 7.0758172249839646e+01 2 0 0 -11 0 +P 15 21 -1.1364538745352168e+00 -8.4363652633784314e-01 1.5206113213728849e+00 2.0773802704860946e+00 2 0 0 -11 0 +P 16 21 -7.0207935266386619e+00 -9.6120038752047388e-01 5.9385495803026025e+00 9.2456378388066369e+00 2 0 0 -11 0 +P 17 21 1.9233062830932506e+00 -9.9992930184166651e-01 2.0384347101481007e-01 2.1772730255856527e+00 2 0 0 -11 0 +P 18 21 6.5191036641582967e+00 1.4569596471037023e+00 -1.4166998204938244e+00 6.8285051349997472e+00 2 0 0 -11 0 +P 19 -3 7.7159427700610506e+00 -7.8868310021418342e-01 -8.9189618218918798e-01 7.8232520516230650e+00 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 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 2 0 0 -23 0 +P 40 113 -2.6276647691303950e-01 -5.6521457952856013e-01 -1.1962401435561386e+01 1.1993068060118460e+01 2 0 0 -24 0 +P 41 -211 2.1202252232348538e-02 1.2037186058540997e-01 -3.8928936098051310e+01 3.8929378166513047e+01 1 0 0 0 0 +P 42 2114 -3.0865407405585576e-01 -4.5752156743261424e-01 -6.0439787274539817e+01 6.0455579370402425e+01 2 0 0 -25 0 +P 43 223 7.5934744704867152e-01 -4.5802192101885630e-02 -7.5778630043207073e+01 7.5786642607491785e+01 2 0 0 -26 0 +P 44 -3114 -4.7130125309522669e-01 -3.6998042550758815e-02 -1.6236037253483892e+02 1.6236696425649211e+02 2 0 0 -27 0 +P 45 -311 3.9338164815186982e-01 1.5120222274855744e-01 -1.5841292434872400e+02 1.5841426667878346e+02 2 0 0 -28 0 +P 46 2112 1.8062528917922832e-01 -2.6417322619040490e-01 -4.5968511499413735e+03 4.5968512571022029e+03 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 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 2 0 0 -29 0 +P 49 111 6.6697298340082936e-02 -2.7309372095162640e-02 1.5613189066221931e+00 1.5687991139677566e+00 2 0 0 -30 0 +P 50 -213 -1.2537860530518419e+00 6.3570399222428886e-01 2.3101138766532216e+01 2.3148198586365478e+01 2 0 0 -31 0 +P 51 223 -4.9718024532112670e+00 1.2416775214387061e+00 4.4371163546531150e+01 4.4672913013609495e+01 2 0 0 -32 0 +P 52 211 2.0193990881854440e-01 1.9756624416254592e-01 8.6476093093118023e-01 9.2038220331072151e-01 1 0 0 0 0 +P 53 3112 -7.0584972907924126e-01 -6.5661601113311763e-02 9.0004313706404595e+00 9.1073685934583164e+00 2 0 0 -33 0 +P 54 -3212 -1.3667402501295773e+00 -6.0384937118763382e-01 5.0703170378781293e+00 5.4187547777607730e+00 2 0 0 -34 0 +P 55 211 -2.6364081709202364e-01 7.3413299932848253e-01 2.6874106938374962e+00 2.8018054470987304e+00 1 0 0 0 0 +P 56 -213 -3.4695940866764934e+00 -5.0692299600103696e-01 3.4058985381402325e+00 4.9419726631930434e+00 2 0 0 -35 0 +P 57 111 -2.2664032636498591e-01 -6.4174781661402613e-01 5.5446080822234844e-01 8.8817368004139652e-01 2 0 0 -36 0 +P 58 113 -5.0290045956692175e-01 -2.2402253400552827e-02 4.2604824703776056e-01 1.0487762353368946e+00 2 0 0 -37 0 +P 59 213 -1.2005200767227959e+00 6.2152297680195367e-02 1.6050487128422106e+00 2.2598983813267526e+00 2 0 0 -38 0 +P 60 -213 -2.9276047393825264e-02 -5.2442944213790954e-01 9.3491138108836302e-02 9.6897732639620227e-01 2 0 0 -39 0 +P 61 213 4.8741035118588283e-01 -5.4382265811505015e-01 -2.1420018845659008e-01 9.8970129623833414e-01 2 0 0 -40 0 +P 62 -211 1.8697788601233423e-01 4.2760734454290197e-02 -2.6920172278503485e-01 3.5880156454388884e-01 1 0 0 0 0 +P 63 211 1.2983839367590966e-01 -2.1540737154801419e-02 3.5452183158205530e-01 4.0309741477440403e-01 1 0 0 0 0 +P 64 311 4.6391648249289439e+00 8.7190463208380886e-01 -2.7041866263032449e-01 4.7542475369195865e+00 2 0 0 -41 0 +P 65 -323 2.2512956578581989e+00 -8.1702811801166697e-01 -6.8930905945599441e-01 2.6161470913906841e+00 2 0 0 -42 0 +P 66 323 7.0336564886840316e+00 2.6471663135766954e-01 -7.6549975370238721e-01 7.1298753405532898e+00 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 2 0 0 -13 0 +P 21 -3 -2.9480913835759774e+00 4.2454566557718891e+00 -1.4413638757204703e+02 1.4422903094502612e+02 2 0 0 -13 0 +P 67 92 0 0 -1.8601200773994825e+02 1.8642242745998198e+02 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 2 0 0 -44 0 +P 69 111 1.8807531206737291e+00 -2.0970278275644705e+00 -2.6588570500903835e+01 2.6737708557249952e+01 2 0 0 -45 0 +P 70 113 -1.1068971892740748e-01 -5.1341043207208503e-01 -9.0115038018838742e+00 9.0608170742198180e+00 2 0 0 -46 0 +P 71 223 -2.0672406052829917e-01 1.7379335103852600e-01 -1.3130580146872006e+01 1.3156750961396625e+01 2 0 0 -47 0 +P 72 113 -4.4140526611159947e-01 5.7742869906215955e-01 -2.4813075874939347e+01 2.4836133069027387e+01 2 0 0 -48 0 +P 73 -211 7.7896309901419436e-02 -3.6602920137854170e-02 -1.3397448490641568e+00 1.3497420695647062e+00 1 0 0 0 0 +P 74 323 -1.8710737454221880e+00 2.8975759827919654e+00 -9.9077077929701588e+01 9.9140660670090867e+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 2 0 0 -15 0 +P 23 -3 2.3797373606868244e+00 2.4917871101526390e+00 -9.6661085500222009e+02 9.6661699610602295e+02 2 0 0 -15 0 +P 75 92 0 0 -9.7093893119688357e+02 9.7214912015153971e+02 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 2 0 0 -50 0 +P 77 111 -6.7528675734192661e-02 -1.2563759364867366e-01 -1.7655103539140375e+00 1.7763984173495295e+00 2 0 0 -51 0 +P 78 113 1.5354061763556762e-01 6.2318321309839064e-01 -1.0151106705392891e+01 1.0185911304933418e+01 2 0 0 -52 0 +P 79 111 -1.6671670434852973e-01 -5.1368748512571094e-01 -7.9559061682556891e+00 7.9753577882357432e+00 2 0 0 -53 0 +P 80 211 -9.6736485997603927e-02 5.1279243800840213e-01 -4.1217511496160233e+00 4.1569972764560212e+00 1 0 0 0 0 +P 81 111 4.4784540883304857e-02 -6.3293049003740509e-01 -2.8876930883969312e+01 2.8884216512452983e+01 2 0 0 -54 0 +P 82 -211 -1.1552696499474494e-01 2.9652397766424610e-01 -1.5381300035866197e+01 1.5385224844870098e+01 1 0 0 0 0 +P 83 213 1.3734383108429742e+00 1.9976391213286977e+00 -5.6939502407682789e+02 5.6940054246694490e+02 2 0 0 -55 0 +P 84 313 1.1145814743658564e+00 2.7626103241949523e-01 -3.2842812827294995e+02 3.2843139117752128e+02 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 2 0 0 -17 0 +P 28 21 3.2798144322212153e+00 -8.7986496652623636e-01 5.5985508273586087e+00 6.5479093179154937e+00 2 0 0 -17 0 +P 29 21 -3.7733390949497778e+00 9.0629369874865717e-01 -3.3241294584168473e+00 5.1097253204240456e+00 2 0 0 -17 0 +P 30 21 3.7733390949497778e+00 -9.0629369874865717e-01 -1.2185775397046967e+01 1.2788767658423664e+01 2 0 0 -17 0 +P 85 92 2.0943165911964767e+00 5.0924638451013138e-03 6.6074307187661043e+03 6.9293270467247485e+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 2 0 0 -57 0 +P 87 2112 -1.1641820817776909e-01 7.5916177472945279e-01 1.5838148551780225e+03 1.5838153200907500e+03 1 0 0 0 0 +P 88 113 2.7160958203151061e-02 -4.0515716778460686e-01 1.6165720701806258e+03 1.6165722765277476e+03 2 0 0 -58 0 +P 89 111 -1.4385672069497962e-01 9.5872413866507322e-01 7.8787988037092839e+02 7.8788048837348356e+02 2 0 0 -59 0 +P 90 -2214 -3.6919767591725938e-01 -8.0507840752899340e-01 8.0872498075085002e+02 8.0872637466061587e+02 2 0 0 -60 0 +P 91 211 3.5761092944521689e-01 -5.0085597321715558e-01 3.0003167406315214e+01 3.0009803006335137e+01 1 0 0 0 0 +P 92 2114 -9.8516795397972409e-02 -1.4151599991198704e-01 6.0200362965077282e+01 6.0212675769296112e+01 2 0 0 -61 0 +P 93 223 -6.6801252072040476e-02 3.4914305837557824e-01 1.7318687060519537e+01 1.7340112417543374e+01 2 0 0 -62 0 +P 94 223 1.0880283197397357e-01 -1.1874086178082427e-01 5.9048803867980695e+00 5.9574951798301630e+00 2 0 0 -63 0 +P 95 223 -1.1326999883260454e-01 -3.7014701840945025e-01 2.2018767133093363e+01 2.2035600678331608e+01 2 0 0 -64 0 +P 96 211 1.7074748485127106e-02 3.1351296613888224e-01 1.0137555013396343e+01 1.0143376329482720e+01 1 0 0 0 0 +P 97 221 -2.4049267933068028e-01 -5.2371012095719160e-01 1.4536298958950805e+01 1.4558014904034785e+01 2 0 0 -65 0 +P 98 -211 -2.7609773133260801e-01 -5.7044915366057758e-01 6.8816596070175269e+00 6.9121893004977597e+00 1 0 0 0 0 +P 99 211 -3.2003753499352694e-01 5.9754365375792062e-01 1.9274593244220643e+01 1.9287013946098735e+01 1 0 0 0 0 +P 100 223 -3.4604842053761919e-01 3.1486430485676520e-01 6.2632131591575501e+01 6.2638853372545277e+01 2 0 0 -66 0 +P 101 111 2.2948981413776891e-02 5.5605194404662266e-02 1.1648969035652028e+00 1.1742329367414746e+00 2 0 0 -67 0 +P 102 111 -2.9172378240014335e-01 3.0693544637119191e-01 5.3046712918767929e+00 5.3232573908011185e+00 2 0 0 -68 0 +P 103 -213 3.2106496746452690e-01 2.1715005346640492e-01 1.8335690284947212e+01 1.8357740097185115e+01 2 0 0 -69 0 +P 104 211 -4.1566685736877346e-01 -2.4857973476376449e-01 7.6291201423937034e+00 7.6457520724142878e+00 1 0 0 0 0 +P 105 221 -2.5513573334891759e-01 3.0928061930424477e-01 4.8173473574429913e+01 4.8178252422360707e+01 2 0 0 -70 0 +P 106 223 -7.4215211736769937e-01 -2.4846169610654173e-01 2.0946282884976224e+01 2.0974976715559247e+01 2 0 0 -71 0 +P 107 113 2.4449291316315186e-01 -4.2766229921875031e-02 1.6107139368476123e+01 1.6128248722013453e+01 2 0 0 -72 0 +P 108 223 4.7207387017201917e-02 -3.2716583505686320e-01 2.1203916701555983e+00 2.2765517765484846e+00 2 0 0 -73 0 +P 109 -2212 9.4887946882507612e-01 4.1648238312682367e-01 3.2378432709009703e+00 3.5267278689504029e+00 1 0 0 0 0 +P 110 223 1.6600334088172941e-01 -4.1616381624079307e-01 2.6794215643440502e+00 2.8255103226053060e+00 2 0 0 -74 0 +P 111 2212 1.5707280006131925e+00 1.9053939806349487e-01 4.0977610121829917e+00 4.4917132165791367e+00 1 0 0 0 0 +P 112 221 -1.1579086126404439e+00 9.9177839411389315e-02 -7.1473619559073187e-01 1.4700809266311647e+00 2 0 0 -75 0 +P 113 -213 -1.0802536131659559e+00 -4.3742284486781746e-02 -8.7239930641296504e-01 1.8065991907361469e+00 2 0 0 -76 0 +P 114 -311 -1.2221059279354842e+00 7.8797526225771200e-02 -6.0729148702831515e-01 1.4547268913275133e+00 2 0 0 -77 0 +P 115 323 1.7061356136889678e+00 -2.9014219266128297e-02 -5.6916355500633795e+00 6.0003241000917313e+00 2 0 0 -78 0 +P 116 -213 5.0727937246066324e-01 -4.7763269349581511e-01 -1.4192395564892897e+00 1.7279116972796664e+00 2 0 0 -79 0 +P 117 113 1.8377335751287966e+00 3.7435212119187783e-01 -6.4021253801990987e+00 6.7571572558931825e+00 2 0 0 -80 0 +P 118 113 1.1595987846627662e+00 3.3781193392132147e-01 -1.7297809040002605e+00 2.3075689039392140e+00 2 0 0 -81 0 +P 119 211 2.7239080429789903e-01 -2.2711690982550835e-02 -1.2958981254113522e-01 3.3314542708521427e-01 1 0 0 0 0 +P 120 113 2.1267666995458101e-01 1.7395120076323969e-01 -1.6083970877226670e+00 1.8184518290999967e+00 2 0 0 -82 0 +P 121 221 -4.7135039096220882e-01 -1.2291206979554646e-01 -1.3887351759484287e+02 1.3887545092360841e+02 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 2 0 0 -19 0 +P 35 21 1.7804898284392838e+00 2.5209727458596531e+00 -3.9047632682122253e+00 4.9772104431420550e+00 2 0 0 -19 0 +P 122 92 0 0 -1.6417647660027328e+02 1.6527863757967410e+02 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 0 0 0 0 +P 124 -313 -5.5418962740188848e-01 5.6022873335349721e-01 -2.6963373036122778e+01 2.6989313170610149e+01 2 0 0 -84 0 +P 125 -3122 7.8192980547996760e-01 -1.0098791190461021e+00 -2.5752937819053422e+01 2.5808715935323384e+01 2 0 0 -85 0 +P 126 2112 -5.2911926360048755e-01 -7.0628422357488740e-01 -3.1365989018949879e+01 3.1392465075577743e+01 1 0 0 0 0 +P 127 -313 -6.6375047799976095e-01 -5.2431994602761678e-01 -3.0745812034728321e+01 3.0766432948134987e+01 2 0 0 -86 0 +P 128 323 -1.0010822452572499e-01 2.3468051859673056e-01 -2.0435238020895113e+01 2.0455561586261695e+01 2 0 0 -87 0 +P 129 -2212 7.6440809257191722e-01 -3.6826018672418046e-03 -3.6284282265723400e+00 3.8249412128597280e+00 1 0 0 0 0 +P 130 331 -2.1598897730547920e-01 3.8740437897781693e-01 -2.8085273570100782e+00 3.0002184788953326e+00 2 0 0 -88 0 +P 131 2114 3.7114271301432933e-01 1.6103528252915164e-01 -3.1873923166002567e+00 3.4301830299056255e+00 2 0 0 -89 0 +P 132 213 1.4340847993733810e-01 8.3134947437200180e-01 -7.5071475809012984e+00 7.6369252082162546e+00 2 0 0 -90 0 +P 133 111 2.5133273495763248e-01 1.9971281449766987e-01 -1.8807651137350476e+00 1.9127337413708869e+00 2 0 0 -91 0 +P 134 223 3.5163629723965795e-01 -4.4343363850532036e-01 -7.5286241082333785e+00 7.5901269538058527e+00 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 2 0 0 -21 0 +P 37 21 7.9835767352754738e-01 -2.8310917836013409e+00 -3.3864087660105230e+02 3.3865365162772304e+02 2 0 0 -21 0 +P 135 92 0 0 -3.8815266563796246e+02 3.8825274143083885e+02 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 2 0 0 -93 0 +P 137 -211 2.9811563003694558e-01 5.4783511804293061e-01 -4.4437689646128113e+01 4.4442285462337956e+01 1 0 0 0 0 +P 138 -3112 2.3307186571895475e-01 1.4326900914430873e-01 -2.7582276932951583e+01 2.7609612671372336e+01 2 0 0 -94 0 +P 139 -323 -2.7304396428318978e-01 8.3408142249412254e-01 -4.6194743956008772e+01 4.6211892601868342e+01 2 0 0 -95 0 +P 140 113 -1.2438472963311790e-01 -5.3617617384831562e-01 -3.5265788970736466e+01 3.5278430062698547e+01 2 0 0 -96 0 +P 141 321 1.7857873999080959e-01 3.3202431338286048e-01 -2.0117667576333965e+01 2.0127253170339291e+01 1 0 0 0 0 +P 142 -321 -8.8311177964749923e-02 -9.5005248461867819e-01 -1.2922147930037769e+02 1.2922594457819073e+02 1 0 0 0 0 +P 143 111 -1.3174275413026160e-01 -1.9950654911601931e-01 -4.1534180411145236e+00 4.1624824373277072e+00 2 0 0 -97 0 +P 144 211 5.7322046445197547e-02 2.0835777786463264e-01 -2.1095375841649318e+01 2.1096944339547068e+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 1 0 0 0 0 +P 146 211 -2.1513185186894951e-01 5.5253778360839806e-02 -1.6231025987568579e+00 1.6441643849393461e+00 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 0 0 0 0 +P 148 211 -2.2213787884234046e-01 -1.9035086479588445e-01 -8.6925041161229846e+00 8.6985450670017315e+00 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 1 0 0 0 0 +P 150 111 1.9439971445648394e-01 -1.0750830516930852e-01 -1.1517209099759532e+01 1.1520142114255574e+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 0 0 0 0 +P 152 -211 3.2763508143091863e-01 2.6975363668793567e-01 -2.7798223999518537e+01 2.7801813773266648e+01 1 0 0 0 0 +P 153 111 3.7624470113100927e-01 -2.2697476149644069e-01 -3.9173658724607755e+01 3.9176355561612958e+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 2 0 0 -100 0 +P 155 211 -1.2658824667944718e-01 5.6045897494217310e-02 -9.1400235910024410e+00 9.1421374281840926e+00 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 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 0 0 0 0 +P 158 111 -4.8159128705046694e-01 1.3448094949075709e-01 5.8718796761526999e+00 5.8946760576942649e+00 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 1 0 0 0 0 +P 160 22 -2.5631944427193760e-02 -4.6174321832131868e-02 3.6873305970836540e-01 3.7249581728345482e-01 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 0 0 0 0 +P 162 111 -1.1968527011163542e-01 3.3035230632374672e-02 2.8142194490767198e+00 2.8201891068342042e+00 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 1 0 0 0 0 +P 164 111 -1.5341100192305239e+00 6.7694638573483645e-01 1.2781020070891630e+01 1.2891254539927354e+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 1 0 0 0 0 +P 166 -211 -1.8675959006408943e-01 -3.1443655385611960e-02 3.1794570083460498e+00 3.1881490712897551e+00 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 2 0 0 -105 0 +P 168 22 -8.9088999710365789e-03 -4.2747657113092849e-02 3.1710490820171716e-01 3.2009725630341157e-01 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 0 0 0 0 +P 170 111 -1.1249397207202128e+00 1.4237079142511824e-01 1.1663329747194109e+00 1.6322717377394349e+00 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 1 0 0 0 0 +P 172 22 -1.4766384618138196e-02 -4.5393292462897188e-02 1.4969497191911496e-03 4.7758119453917933e-02 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 0 0 0 0 +P 174 211 -4.6264467692447137e-01 2.5591075993571022e-01 3.5889789046657225e-02 5.4799477734302793e-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 0 0 0 0 +P 176 111 -1.2785553127783380e+00 1.1884783629086837e-01 1.0045692970771025e+00 1.6359118463580851e+00 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 0 0 0 0 +P 178 111 -1.5555177445162185e-01 8.8890488378568028e-02 -1.6380203759515596e-01 2.7775633454442306e-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 0 0 0 0 +P 180 111 1.3101330793119204e-01 9.0416991608367872e-02 2.7437988898070045e-02 2.1050454356462622e-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 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 1 0 0 0 0 +P 183 111 2.9874439049285023e-01 -2.8475562149392120e-01 -1.9024244903122581e-01 4.7407358567708918e-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 1 0 0 0 0 +P 185 111 2.8873808576949571e+00 -5.7210969847366372e-02 -1.3031788905640951e-01 2.8940358783301670e+00 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 1 0 0 0 0 +P 187 211 -7.5085744445380881e-02 -9.4925952617013309e-02 -1.1136929490878451e+00 1.1289112344410193e+00 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 1 0 0 0 0 +P 189 22 2.5002754365000407e-01 -3.5028539841192269e-01 -3.9778855607587129e+00 4.0010982451593105e+00 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 0 0 0 0 +P 191 211 2.3702088705655167e-01 -4.9089442089346247e-01 -4.8952940415866841e+00 4.9275287692574148e+00 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 0 0 0 0 +P 193 -211 1.2388078103698906e-02 -1.3418403734202855e-01 -2.2669176314964452e+00 2.2752042003402604e+00 1 0 0 0 0 +P 194 111 -2.9481615955898893e-01 1.1357919037439569e-01 -7.8235932090650602e+00 7.8311331939734075e+00 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 0 0 0 0 +P 196 211 -1.8300377467698797e-01 8.5819329580133663e-02 -1.7124223317576995e+01 1.7125984916320089e+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 1 0 0 0 0 +P 198 111 -8.6514329764970965e-01 1.2820801404340156e+00 -5.0363263569510103e+01 5.0387188246461093e+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 2 0 0 -115 0 +P 200 -211 -7.8919655988042958e-02 -3.2709922664563601e-02 -2.0207531257067607e-01 2.6002397580325015e-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 1 0 0 0 0 +P 202 22 -6.5865805639046926e-02 -1.5310413880685866e-01 -1.5946516929484500e+00 1.6033381438410388e+00 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 0 0 0 0 +P 204 211 -5.2333999937162846e-02 4.5462768293088435e-01 -7.9512134694810550e+00 7.9655948051475409e+00 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 1 0 0 0 0 +P 206 22 -1.4734769876723883e-01 -2.4375103224998654e-01 -4.3429556459108172e+00 4.3522855665045208e+00 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 1 0 0 0 0 +P 208 22 4.4457545443559635e-02 -4.6761148186613616e-01 -2.3675294738488155e+01 2.3679953925749196e+01 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 0 0 0 0 +P 210 111 5.4263936381458211e-01 4.6734157035509338e-01 -2.1145862994016593e+02 2.1145988570269063e+02 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 1 0 0 0 0 +P 212 -211 1.6804735433903449e-02 -4.2423390924212670e-02 -8.0724325227349169e+01 8.0724458780093229e+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 0 0 0 0 +P 214 -211 2.4482588483854287e-01 7.7909997263942679e-04 1.0140498242515802e+03 1.0140498634114431e+03 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 0 0 0 0 +P 216 211 -1.9928619525354679e-01 -2.2203313483144810e-01 1.2997895205791938e+03 1.2997895623142140e+03 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 1 0 0 0 0 +P 218 22 -4.5575709842319061e-02 7.0729404434862853e-01 5.7534913658297194e+02 5.7534957313687289e+02 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 1 0 0 0 0 +P 220 111 -3.4003331637259090e-02 -4.0291788547051194e-01 2.4175947776846803e+02 2.4175985359346117e+02 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 1 0 0 0 0 +P 222 111 6.0767090723995811e-02 1.5192470187574267e-01 8.1321949629446006e+00 8.1349608646936105e+00 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 0 0 0 0 +P 224 211 1.8322216671360106e-01 8.4641186236416213e-02 3.0390432107555543e+00 3.0489338980243836e+00 1 0 0 0 0 +P 225 111 -4.1465490166762591e-02 -3.5765910717375442e-02 1.9984446344580136e+00 2.0037462775107624e+00 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 0 0 0 0 +P 227 -211 -4.0632702319755090e-02 -1.2069487246477217e-01 6.9918612236714750e-01 7.2426465283617236e-01 1 0 0 0 0 +P 228 111 -1.0286168933441908e-01 -7.6499887889112148e-02 3.1988902541620599e+00 3.2043019861668447e+00 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 0 0 0 0 +P 230 211 9.8968590493889952e-02 -2.6775289950262515e-01 5.1595877232286771e+00 5.1693627901017445e+00 1 0 0 0 0 +P 231 111 -4.4664340621416956e-02 1.0405778336843771e-01 8.0887900876842203e+00 8.0907087210343445e+00 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 1 0 0 0 0 +P 233 211 -1.0483563972662920e-01 -3.3980469291825055e-01 5.8420066258245038e+00 5.8544836614140072e+00 1 0 0 0 0 +P 234 -211 -1.7885887895793467e-01 -2.0510136573886101e-01 8.3797429311231948e+00 8.3853222028386707e+00 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 0 0 0 0 +P 236 -211 -6.9803021048007466e-02 1.9955448295151124e-01 3.0748651976026064e+01 3.0749695487615565e+01 1 0 0 0 0 +P 237 111 -2.1379581197174061e-01 2.7391517770198009e-01 1.7311417557900477e+01 1.7315430564620016e+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 1 0 0 0 0 +P 239 22 -4.9277372803545674e-02 2.7427407669828176e-02 2.6132684023139513e-01 2.6734292507420448e-01 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 1 0 0 0 0 +P 241 22 -2.9527711295698492e-02 1.0649081569596784e-01 1.6596144706705973e+00 1.6632896232530285e+00 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 0 0 0 0 +P 243 111 4.7885545567532817e-01 -2.7126526635969879e-02 7.1201563610581680e+00 7.1375685357266061e+00 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 0 0 0 0 +P 245 211 -2.2533489453973266e-01 6.7750325072043191e-02 1.3920844135234320e+01 1.3923532136050548e+01 1 0 0 0 0 +P 246 111 -4.4248312943774556e-02 1.3821775128610481e-01 2.1230751378670416e+01 2.1231676470860343e+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 0 0 0 0 +P 248 211 -3.0260312919721499e-01 -2.2696578300232692e-01 6.5963063148826535e+00 6.6086170190982152e+00 1 0 0 0 0 +P 249 111 -4.8351748599884498e-01 6.8085391814766527e-02 1.1578342287069946e+01 1.1589419937891513e+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 0 0 0 0 +P 251 -211 -3.4690021616336185e-02 7.3188080772198266e-02 7.3508544257158037e-01 7.5258905489484496e-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 0 0 0 0 +P 253 -211 -1.7967466933591134e-01 -5.9481031195502451e-02 9.5730795988163619e-01 9.8576837787879446e-01 1 0 0 0 0 +P 254 111 1.5727707714584355e-01 -3.3174440295699437e-01 8.1664405133604978e-01 9.0549297891888092e-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 0 0 0 0 +P 256 211 5.8658587383824110e-02 4.7066254481115677e-02 1.1853313384479452e-01 1.9795441622710730e-01 1 0 0 0 0 +P 257 111 1.3411328140931753e-01 -1.4694297772286691e-01 1.1236134462109026e+00 1.1490454246279296e+00 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 2 0 0 -128 0 +P 259 111 -2.9461008023809460e-01 7.9261822040132043e-03 -1.9522454331244052e-01 3.7840473894202054e-01 2 0 0 -129 0 +P 260 111 -5.6947447824850161e-01 -6.7738430395329619e-02 -2.4221023236473779e-01 6.3700476716505527e-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 0 0 0 0 +P 262 111 1.1957147566873839e-01 -2.6522135805362312e-01 -3.4214359030111036e-01 4.6895793344983716e-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 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 2 0 0 -133 0 +P 265 211 1.0915840528824405e+00 -1.2515087994438999e-02 -3.5835761605516261e+00 3.7487611627454607e+00 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 0 0 0 0 +P 267 111 3.3145760189254819e-01 -3.6043831788505409e-01 -1.3814531933934078e+00 1.4718737883354707e+00 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 0 0 0 0 +P 269 211 4.2350384391560253e-01 3.4379285852778824e-01 -3.2627959808932827e+00 3.3110219620563313e+00 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 0 0 0 0 +P 271 -211 9.3697441288108851e-01 1.1617066478887220e-01 -6.0163047616962251e-01 1.1282090624115000e+00 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 0 0 0 0 +P 273 211 -1.8596767408214455e-02 -2.3324161234313170e-01 -2.3184009526130650e-01 3.5773887705591995e-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 2 0 0 -135 0 +P 275 111 -2.6461917860165884e-01 -1.6666569637677223e-01 -6.3921636890275806e+01 6.3922544404120060e+01 2 0 0 -136 0 +P 276 111 -6.3263579171512346e-02 3.2972257103575209e-02 -1.6871339394895315e+01 1.6872030169138945e+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 1 0 0 0 0 +P 278 211 -3.6177450768530445e-01 4.9189474727843974e-01 -1.1900910688400808e+01 1.1917382104934106e+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 1 0 0 0 0 +P 280 211 7.3612976178848225e-02 -9.6472091324671175e-02 -4.4368453769818323e+00 4.4406984156562039e+00 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 1 0 0 0 0 +P 282 211 -2.2251296710200200e-01 -9.6639171739989163e-02 -1.3148198706335124e+01 1.3151177139564950e+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 2 0 0 -138 0 +P 284 211 -2.1064306399016169e-01 -5.2260446477074120e-03 -1.1383456938792117e+01 1.1386262313603362e+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 1 0 0 0 0 +P 286 113 -1.8011439266886359e-01 2.8077452479029485e-01 -2.5609809355757700e+00 2.7283064666710946e+00 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 1 0 0 0 0 +P 288 -211 4.8767346650093954e-02 1.4882602618582788e-01 -2.3244126658180475e-01 3.1310727790919962e-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 0 0 0 0 +P 290 111 4.4253202957958163e-02 7.6399174961335814e-01 -2.3232855375278914e+00 2.4497993854059930e+00 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 1 0 0 0 0 +P 292 22 2.6360212558589025e-01 1.9997238663270561e-01 -1.7222704560088657e+00 1.7537646819542143e+00 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 0 0 0 0 +P 294 -211 1.6587673815884174e-01 -1.3851309640486942e-01 -4.3161880209091308e+00 4.3238477987641240e+00 1 0 0 0 0 +P 295 111 -6.0279320681069205e-02 -9.2315970712068443e-02 -4.7308201386323090e-01 5.0416468260993141e-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 1 0 0 0 0 +P 297 111 -2.2377722266168973e-01 7.9799221498159933e-03 -1.1264902435367182e+01 1.1267936208697719e+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 1 0 0 0 0 +P 299 211 -8.7336220343602930e-02 -7.3013290121362429e-02 -2.3510529596090493e+00 2.3579415513758439e+00 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 2 0 0 -143 0 +P 301 -211 1.5737610531318013e-02 3.7670828302362941e-01 -2.7139552080295822e+01 2.7142529795633884e+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 0 0 0 0 +P 303 211 -3.3050248543040528e-01 -9.0924683313200385e-03 -1.2204737552097738e+01 1.2210012820072743e+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 1 0 0 0 0 +P 305 22 6.0810257120624319e-03 -2.5958144784292918e-02 -1.1760447735839455e-01 1.2058862819144350e-01 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 1 0 0 0 0 +P 307 22 1.9356459172481594e-01 -9.9707485553815978e-02 -8.1053994378958087e+00 8.1083234322322628e+00 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 1 0 0 0 0 +P 309 22 3.3690374561586876e-02 -1.9613343538932699e-02 -8.4176032808599981e+00 8.4176935509988660e+00 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 1 0 0 0 0 +P 311 211 -5.4498994801466791e-02 8.6292130705541509e-02 -2.3497713675750649e+01 2.3498349819608933e+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 0 0 0 0 +P 313 211 4.2383582982990159e-01 1.6064602755654347e-01 -1.3924639783538171e+02 1.3924720547957548e+02 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 1 0 0 0 0 +P 315 22 -4.1706123551801033e-01 9.3333285929744852e-02 5.3717810433809960e+00 5.3887552138190218e+00 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 1 0 0 0 0 +P 317 22 2.5240978913187006e-02 4.6550563290277975e-03 1.7852116177452235e-01 1.8035681791173727e-01 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 1 0 0 0 0 +P 319 22 -9.9347804282512375e-01 4.6072215222226937e-01 8.8000271104699053e+00 8.8679050890347977e+00 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 1 0 0 0 0 +P 321 211 -1.1064351208874038e-01 2.0387854652763094e-02 4.6671800491127502e-01 4.9996313103371370e-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 1 0 0 0 0 +P 323 22 -4.5792166884553959e-01 1.2498167845266275e-01 4.8664723914508007e-01 6.7980748018439574e-01 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 1 0 0 0 0 +P 325 22 -6.9129603308469112e-01 7.6339252843770522e-02 6.2741953896410996e-01 9.3668199766906590e-01 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 1 0 0 0 0 +P 327 22 -1.6493420608249607e-01 5.8221046989452609e-02 -8.8745584212347600e-02 1.9613454913860082e-01 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 1 0 0 0 0 +P 329 22 1.8719174672564270e-02 -2.6704167802973904e-02 -2.3774098692370686e-02 4.0357500506175224e-02 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 0 0 0 0 +P 331 211 1.2535932196400428e+00 1.1672562602205658e-01 5.1489773792014568e-02 1.2677743544506974e+00 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 1 0 0 0 0 +P 333 22 2.8440430632540273e-02 5.2681886990469471e-03 9.1000640864471617e-03 3.0321989926628289e-02 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 1 0 0 0 0 +P 335 22 1.0246907154836133e+00 -8.4899091998007395e-02 -4.8200779350839988e-02 1.0293309639520400e+00 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 1 0 0 0 0 +P 337 22 -1.8538134664903849e-01 1.3570574223792362e-01 -5.6606275362368574e+00 5.6652878476000419e+00 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 1 0 0 0 0 +P 339 22 -2.2060320357166030e-01 2.6255908732698097e-01 -9.8168503025321545e+00 9.8228383326862136e+00 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 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 1 0 0 0 0 +P 342 22 3.6515589074457233e-02 3.3473123180800382e-02 -7.3387457182011460e+00 7.3389129000579238e+00 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 1 0 0 0 0 +P 344 22 3.0942924365591040e-02 -3.0871019736151784e-01 1.8550345407790874e+02 1.8550371353233157e+02 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 1 0 0 0 0 +P 346 22 1.1223862360092251e-02 7.4486156690947375e-03 6.8093200372141963e-02 6.9412829495597211e-02 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 1 0 0 0 0 +P 348 22 -2.1816430663347673e-02 6.2291465370471460e-03 1.7926444798778951e+00 1.7927880494219495e+00 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 1 0 0 0 0 +P 350 22 -8.3219283532173879e-02 1.6359286886682384e-02 1.0989481787777651e+00 1.1022160292147887e+00 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 1 0 0 0 0 +P 352 22 -5.9951059525466630e-02 2.8420682734860746e-03 4.6723495593551112e+00 4.6727350247682775e+00 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 1 0 0 0 0 +P 354 22 -1.9701672792787284e-01 2.1247646906597906e-01 1.1445655045598098e+01 1.1449322305875373e+01 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 1 0 0 0 0 +P 356 22 4.8477764023430803e-01 -1.7763098576969477e-02 7.0331113651009813e+00 7.0498213000085883e+00 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 1 0 0 0 0 +P 358 22 1.6572976597038779e-02 2.0914445617698917e-02 7.1233755145640765e-01 7.1283719375723653e-01 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 1 0 0 0 0 +P 360 22 -8.3282326790722602e-02 -1.8195796101566498e-02 1.2113351506416694e+00 1.2143310422333451e+00 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 1 0 0 0 0 +P 362 22 8.2854054207988859e-02 -5.0438373195187056e-02 2.5751681862275960e-01 2.7517946083031813e-01 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 1 0 0 0 0 +P 364 22 8.8898795765316174e-02 -1.1244861370181165e-01 1.0268536256674834e+00 1.0368105203741129e+00 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 1 0 0 0 0 +P 366 22 -2.2791738499094746e-01 1.7053419924879248e-01 -2.6008790670221665e-01 3.8558263278742178e-01 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 1 0 0 0 0 +P 368 22 -2.8760418411723598e-01 3.1572933608220874e-02 -1.4767526381608859e-01 3.2483996121401310e-01 1 0 0 0 0 +V -130 0 -6.6891221062580290e-05 -7.9566451089120833e-06 -2.8450332395157243e-05 7.4823417599693525e-05 0 2 0 +P 370 22 -4.0216266385833066e-01 -8.2083877934753996e-02 -2.2531815989549669e-01 4.6823161405134645e-01 1 0 0 0 0 +P 369 22 -1.6731181439017095e-01 1.4345447539424376e-02 -1.6892072469241130e-02 1.6877315311370919e-01 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 1 0 0 0 0 +P 372 22 1.4735894064874117e-01 -2.2568443790815346e-01 -3.1063108310384269e-01 4.1126608502684042e-01 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 0 0 0 0 +P 374 211 -5.2094392724806982e-01 -1.5128160125026907e-01 -3.5171956602845583e-01 6.6140391308241664e-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 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 1 0 0 0 0 +P 377 22 1.5852178443479484e-01 -2.0054185081282136e-01 -9.0460415924719695e-01 9.4002918837403693e-01 1 0 0 0 0 +V -135 0 -3.0421302276829038e-05 2.2861135473366665e-06 -1.2315570169442151e-02 1.2315641212460739e-02 0 2 0 +P 378 22 -6.3213644028068727e-02 -5.2095115397050848e-02 -1.5820369430860998e+01 1.5820581493572236e+01 1 0 0 0 0 +P 379 22 -8.0253989160968833e-02 6.2876484874701419e-02 -4.2260171878810738e+01 4.2260294856777207e+01 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 1 0 0 0 0 +P 381 22 -1.9238729045382397e-01 -1.7573663989709587e-01 -5.4676952041087944e+01 5.4677572922904659e+01 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 1 0 0 0 0 +P 383 22 -5.5924405626760355e-02 -2.4912024241247683e-02 -3.3154674699699282e+00 3.3160326736214896e+00 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 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 0 0 0 0 +P 386 211 -3.8005634452398301e-01 -1.4412602541072891e-01 -9.1373216249149591e-01 1.0097531311588057e+00 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 1 0 0 0 0 +P 388 22 6.3118015182099169e-02 4.4880327170562045e-01 -1.5387434537915861e+00 1.6041008936848880e+00 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 1 0 0 0 0 +P 390 22 -8.5152879382827049e-02 -8.7018304052106268e-02 -4.5945451991180614e-01 4.7531216476614546e-01 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 1 0 0 0 0 +P 392 22 -6.7341384605742141e-02 -4.4398695132734589e-02 -5.7532558890580363e+00 5.7538212894728558e+00 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 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 0 0 0 0 +P 395 211 -9.9178311542215425e-01 -1.0828339203847432e+00 -2.4794674438069451e+00 2.8850306128307914e+00 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 0 0 0 0 +P 397 211 3.9331485195342403e-01 1.7125072443330774e-01 -9.8750894864100902e-01 1.0856689605640144e+00 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 0 0 0 0 +P 399 -211 -1.5795426962103520e-01 1.2261947461726234e-01 -1.2786528843793228e+01 1.2788853926169581e+01 1 0 0 0 0 +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 3 0 0 -1 0 +P 41 2203 -3.5096158275163236e-01 -6.5324073291532936e-01 6.4120718804435573e+03 6.4120719697163750e+03 2 0 0 -13 0 +P 3 1 3.5096158275163236e-01 6.5324073291532936e-01 4.1594615987003954e+02 4.1594682088954704e+02 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 3 0 0 -2 0 +P 4 2 2.7501906829241841e-02 -1.2146878480571459e-01 -2.4425191616079805e+03 2.4425191647831903e+03 3 0 0 -4 0 +P 25 2103 -2.7501906829241841e-02 1.2146878480571459e-01 -4.3752498996173417e+03 4.3752499693803265e+03 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 3 0 0 -5 0 +P 39 21 5.6879342880917538e-01 7.5338012753840347e-02 1.3882129535590456e+01 1.3893981510846166e+01 2 0 0 -13 0 +P 40 21 4.0353127377792430e-01 -1.0794042666778709e+00 2.4382432099069892e+01 2.4409648627655276e+01 2 0 0 -13 0 +V -4 0 0 0 0 0 0 27 0 +P 12 21 3.6714966898125962e+00 -2.8959215128987843e+00 -1.0957485461237511e+00 4.8028027471995083e+00 2 0 0 -9 0 +P 13 21 9.0366392277633989e-02 -5.2691266877741805e-01 1.9123724213929416e-01 5.6778052815543023e-01 2 0 0 -9 0 +P 14 21 -5.4742252565373975e-02 9.9812434983835754e-02 5.6673941239040604e-01 5.7805951073393502e-01 2 0 0 -9 0 +P 15 21 -4.2785424343628164e-01 -3.2385695231399270e-01 -3.5095687498530953e-02 5.3774927844631759e-01 2 0 0 -9 0 +P 16 -4 2.9718367737999309e+00 -5.2406590168947231e-01 -2.3934560712361521e+00 4.1334115261319404e+00 2 0 0 -9 0 +P 11 2 1.6176455215218464e+00 -3.5208120614031763e-01 -8.1690576640657608e-01 1.8753594962580435e+00 2 0 0 -9 0 +P 6 -2 -2.5309383529199383e+01 2.5605502229007829e+01 3.5459450278646557e+01 5.0532952150964263e+01 3 0 0 -5 0 +P 17 4 3.7194740649112351e-02 1.2081735484703142e+00 -1.0381037228237732e+01 1.0558266936671616e+01 2 0 0 -11 0 +P 18 21 -3.8063394485410336e+00 5.6572199649196686e-01 -5.4033256081716328e+00 6.6335653311592448e+00 2 0 0 -11 0 +P 19 21 1.4421971897575430e+00 -1.4182830615990176e+00 5.7062472324337099e-01 2.1016831711130513e+00 2 0 0 -11 0 +P 20 21 2.7303036205130007e+00 -7.3316197951629114e-01 9.1820481918052266e-01 2.9724038148207561e+00 2 0 0 -11 0 +P 21 21 -2.0182388692079840e+00 1.5399105798395493e-01 -1.0724900871680109e+01 1.0914233829567960e+01 2 0 0 -11 0 +P 22 21 1.2491774325410158e-01 -5.4800394801420538e-01 -7.6805684279456621e+00 7.7011066831965493e+00 2 0 0 -11 0 +P 30 21 1.5370980407646048e-01 8.1756875564613984e-01 -1.5100758824998671e+01 1.5123655724223996e+01 2 0 0 -13 0 +P 31 21 3.5609178221999949e-01 -1.2821539734905008e+00 -1.5993658274378207e+01 1.6048919750771034e+01 2 0 0 -13 0 +P 32 21 -5.7321384139990961e-01 1.8778171682794662e-01 1.6282864814338351e+00 1.7364195768210722e+00 2 0 0 -13 0 +P 33 21 3.1657101493395272e+00 -1.6119295557286719e+00 4.4063722475163161e+00 5.6600489420096816e+00 2 0 0 -13 0 +P 34 21 2.6326825731670658e+00 -1.7437994078856278e+00 2.2174731113567527e+00 3.8586319992440359e+00 2 0 0 -13 0 +P 35 21 6.8425955467206965e+00 -4.4447064866609622e+00 1.5000198384257514e+01 1.7075786398747489e+01 2 0 0 -13 0 +P 36 21 4.0164782232489156e+00 -5.4148487689946281e+00 1.3344639617162901e+01 1.4950989633494801e+01 2 0 0 -13 0 +P 37 21 3.9627824931833042e+00 -7.3524675138650126e+00 1.5839388268499249e+01 1.7906664802553045e+01 2 0 0 -13 0 +P 23 21 6.3545309142797402e-01 5.0932772066100540e-01 -1.0519858948403776e+01 1.0551333927648679e+01 2 0 0 -11 0 +P 24 21 -1.3293995544884336e+00 5.4471300945374300e-02 -2.4605532627938929e+00 2.7972473357117349e+00 2 0 0 -11 0 +P 26 2 -9.0376759228672943e-01 8.5542850621349587e-01 -2.0776141357023594e+03 2.0776145345862528e+03 2 0 0 -13 0 +P 27 21 4.5222474530545992e-01 3.0982198771832353e-01 -1.3647713867247677e+02 1.3647823957360674e+02 2 0 0 -13 0 +P 28 21 -9.6670908210745185e-02 -1.0947679481510482e+00 -1.0578578360202395e+02 1.0579149244820697e+02 2 0 0 -13 0 +P 29 21 -4.8393908701574007e-01 2.0274532889938918e-01 -2.1573305980675745e+01 2.1579685670653127e+01 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 8 22 -5.8563239941287950e+00 -1.9298209509462974e-01 8.3500314047580435e+00 1.0200823362537069e+01 3 0 0 -7 0 +P 7 -24 -1.9947058501930567e+01 2.7030936827831496e+01 2.9618547273355034e+02 3.0941145860556639e+02 3 0 0 -6 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 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 1 0 0 0 0 +V -8 0 0 0 0 0 0 10 0 +P 46 21 -3.7285968742864894e+00 2.8910858542250293e+00 1.1679555837123013e+01 1.2596540660828801e+01 2 0 0 -17 0 +P 47 21 -1.8023297258181672e+00 2.5930887493787522e+00 1.4214934742857999e+01 1.4561485894181056e+01 2 0 0 -17 0 +P 48 21 4.5585582966435784e-01 6.8325648113844262e-01 4.4766795478450598e+00 4.5514067858796050e+00 2 0 0 -17 0 +P 49 21 1.8795211728249670e+00 2.1980346924035365e+00 1.6255259634668267e+01 1.6510524587019709e+01 2 0 0 -17 0 +P 50 21 1.0534179425365028e+01 3.0060939727642277e+00 5.9681656292270027e+01 6.0678708250320625e+01 2 0 0 -17 0 +P 51 1 1.4568595374906375e+01 4.2271332429249249e+00 9.1375908388900839e+01 9.2627091936149995e+01 2 0 0 -17 0 +P 42 -2 -3.0517819564912308e+01 1.0428844168876985e+01 7.4912511307218153e+01 8.1560354045635137e+01 2 0 0 -15 0 +P 43 21 -5.7206370395985298e+00 5.4834348217882312e-01 1.3778163054100464e+01 1.4928635096975666e+01 2 0 0 -15 0 +P 44 2 -2.2525958537263930e+00 1.3998775512003811e-01 5.1363462708508241e+00 5.6200300413691791e+00 2 0 0 -15 0 +P 45 -2 -3.3632312463497884e+00 3.1506842882115055e-01 4.6744576577204295e+00 5.7766813072113079e+00 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 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 1 0 0 0 0 +P 65 -311 7.0071389671228546e-01 -5.7580058229065734e-01 -6.8836441564177575e-01 1.2426050350911262e+00 2 0 0 -23 0 +P 66 -211 1.0077824213790697e-01 -4.4819776346861628e-01 6.6159383291203300e-01 8.1744949318836269e-01 1 0 0 0 0 +P 67 213 2.9009203059815278e+00 -1.7893295104458362e+00 -1.1484922938389688e+00 3.6608745191428511e+00 2 0 0 -24 0 +P 68 2112 5.5409088873312584e-01 1.6103136011254437e-01 -4.0047552306756740e-01 1.1730815152379661e+00 1 0 0 0 0 +P 69 -4122 1.8989528992549274e+00 -7.6588145825984388e-01 -1.6149441071155617e+00 3.4671903612005783e+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 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 0 0 -26 0 +P 72 -311 1.5493234368667361e-01 -5.2903668164922500e-02 -2.2756098012880561e+00 2.3351398728649673e+00 2 0 0 -27 0 +P 73 311 -1.0479399410759047e+00 3.5508361290150353e-01 -1.2285977863989042e+00 1.7266703338789495e+00 2 0 0 -28 0 +P 74 -321 7.1709044630839699e-02 -8.0540288172282606e-02 -1.1040623347056104e+00 1.2141760679639282e+00 1 0 0 0 0 +P 75 323 -9.5436433963787692e-01 -2.9602351803484112e-01 -1.0976303074658433e+00 1.7459894215858962e+00 2 0 0 -29 0 +P 76 -313 4.5229065483994757e-01 8.1631980606907503e-02 -5.8961679501597064e-01 1.1604642453115961e+00 2 0 0 -30 0 +P 77 113 -2.4190544648866458e-01 -1.5219642166406071e-02 2.7578108978004551e-01 9.1680871617924098e-01 2 0 0 -31 0 +P 78 -211 9.1225699860842469e-01 -2.2413756750953776e-01 -9.7235135008989171e-02 9.5466482969645439e-01 1 0 0 0 0 +P 79 211 -1.6019746019187674e-02 -1.0962764287148888e-01 -3.9451013408667096e-01 4.3288899632718902e-01 1 0 0 0 0 +P 80 -211 2.2284319500814491e-02 -1.1912520537149757e-01 8.0408625454810090e-02 2.0157563691564462e-01 1 0 0 0 0 +P 81 111 2.6147842628995627e-01 -5.3714869055077885e-01 3.2448827889606002e-01 6.9311754177514195e-01 2 0 0 -32 0 +P 82 223 8.0109014259129629e-01 -6.0688849198709971e-01 -2.0305333370163012e-01 1.2882559187308529e+00 2 0 0 -33 0 +P 83 211 1.0621591005162476e+00 -2.6715583755681332e-01 -2.2047937637000264e-01 1.1258974805259456e+00 1 0 0 0 0 +P 84 -213 -3.9080845150093041e-01 2.6753344288388836e-01 -1.4175065470742074e+00 1.6446536225973012e+00 2 0 0 -34 0 +P 85 213 -7.0973282225719359e-01 3.4100256795269435e-01 -4.5663121010528904e+00 4.6984477584393929e+00 2 0 0 -35 0 +P 86 113 -2.3157800835597475e-01 -5.5195889026928313e-01 -5.6838651946392025e+00 5.7714335617292285e+00 2 0 0 -36 0 +P 87 111 -4.6066273585814793e-01 3.9227103753437581e-01 -4.7966952888036269e+00 4.8365888823764545e+00 2 0 0 -37 0 +P 88 311 2.7517509894565889e-01 -1.1487381757051843e-01 -2.1239959178119161e+00 2.2018063985792806e+00 2 0 0 -38 0 +P 89 -323 -7.0371163798211422e-01 -2.0006265444806237e-01 -4.1983731881486621e+00 4.3521687974762546e+00 2 0 0 -39 0 +P 90 211 -1.0761954765935261e-01 -1.6382379153854643e-01 -2.3860134843071883e+00 2.3981159967583294e+00 1 0 0 0 0 +P 91 111 -1.7970542608682286e-01 6.5692258472370091e-01 -2.4966648992850491e+00 2.5914082160491692e+00 2 0 0 -40 0 +P 92 -213 -3.7677031801546979e-01 -2.2171436967981403e-01 -7.8528785468690341e+00 7.8980386958816329e+00 2 0 0 -41 0 +P 93 111 6.5806093929116216e-01 1.7165685794549929e-01 -8.5486801528223268e+01 8.5489613201855903e+01 2 0 0 -42 0 +P 94 323 -4.8433024369999383e-01 -1.4687330505886736e-01 -8.3957716820012237e+01 8.3964255353447285e+01 2 0 0 -43 0 +P 95 331 3.5807589393682532e-01 -1.5224080954598848e-01 -4.3981009527858146e+02 4.3981131055034541e+02 2 0 0 -44 0 +P 96 -313 -4.8374978977586536e-01 -3.5240006944584942e-02 -6.3924051825900631e+02 6.3924131911008010e+02 2 0 0 -45 0 +P 97 2114 2.5503907680222165e-01 4.3505021898565793e-01 -1.9084717226924338e+03 1.9084721994174818e+03 2 0 0 -46 0 +P 98 223 -8.2278535331352418e-02 -1.5371015913753452e-01 -1.2132425478781010e+03 1.2132428143693633e+03 2 0 0 -47 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 2 0 0 -13 0 +P 99 92 2.1325344736888994e+01 -1.9078086942355402e+01 4.2593028050939884e+03 9.0133192852153970e+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 0 0 0 0 +P 101 -213 2.5952690952053969e-01 1.7113996608260679e-01 -5.5927702746122156e+02 5.5927759069273088e+02 2 0 0 -48 0 +P 102 211 4.2014540449212504e-02 -3.5537589858044005e-01 -7.2949847678164119e+01 7.2950858893526046e+01 1 0 0 0 0 +P 103 223 -6.3998361774731272e-01 2.5907507037149113e-02 -1.3487047205365673e+02 1.3487424091129336e+02 2 0 0 -49 0 +P 104 -213 -1.2839848855141253e-01 -2.0565346315218563e-01 -7.5718320753566431e+01 7.5722517718575858e+01 2 0 0 -50 0 +P 105 323 -1.9872082796055467e-02 2.6794098698287805e-01 -6.8108399991638535e+01 6.8114172641420211e+01 2 0 0 -51 0 +P 106 -321 2.7142152013196741e-01 5.2993467515270787e-01 -2.6160140573056200e+01 2.6171570380158332e+01 1 0 0 0 0 +P 107 211 2.9437631694032651e-01 -4.6347150711519880e-01 -6.0143844523795785e+01 6.0146512593344127e+01 1 0 0 0 0 +P 108 -213 2.4619007605199436e-01 -6.0434473709003467e-01 -5.8018576150880186e+01 5.8030267612341916e+01 2 0 0 -52 0 +P 109 323 -9.9384342697108385e-02 -5.3376492002751497e-01 -2.0781667217870002e+01 2.0807229643207261e+01 2 0 0 -53 0 +P 110 -323 -2.7981634786068688e-01 3.1851689070453132e-01 -2.3479670779247950e+01 2.3502171437618404e+01 2 0 0 -54 0 +P 111 213 6.3127980478257359e-04 8.7114195588813836e-01 -3.8001408612870264e+00 3.9658129295852458e+00 2 0 0 -55 0 +P 112 223 1.1771085064566952e-01 -1.8207163509755123e-01 -9.8029417254923035e-01 1.2741930596758400e+00 2 0 0 -56 0 +P 113 2112 1.9209205934717882e-01 -5.3351059012014823e-01 -4.1646177314502335e+00 4.3067813437698792e+00 1 0 0 0 0 +P 114 113 -2.7598565373989276e-01 3.7960657283068916e-01 -4.9916024639480350e-01 1.0051155152174889e+00 2 0 0 -57 0 +P 115 -2112 -9.9845269053552094e-02 -3.5876231396345826e-01 -1.8622805531032363e+00 2.1188582111692340e+00 1 0 0 0 0 +P 116 -213 3.7849030650847143e-01 3.7784357170711968e-03 -9.0606253780559282e-02 1.0192850428959987e+00 2 0 0 -58 0 +P 117 321 5.8085707824128519e-01 -9.7162071509718617e-01 3.6764844693599641e-01 1.2885061505027517e+00 1 0 0 0 0 +P 118 333 4.7060519423644726e-01 1.3602005935586783e-01 1.1809574745448215e+00 1.6340056336417663e+00 2 0 0 -59 0 +P 119 -323 1.4599984686426251e+00 -7.3997071978743245e-01 2.5814573561830843e+00 3.1906207354049889e+00 2 0 0 -60 0 +P 120 213 1.6442662451119143e+00 -1.1808050207330052e+00 3.0613568265944324e+00 3.7231193798014286e+00 2 0 0 -61 0 +P 121 -211 2.3285071815343761e+00 -1.4930049131139151e+00 3.7980187414499524e+00 4.7005782102146254e+00 1 0 0 0 0 +P 122 113 2.0705991745434469e+00 -2.1281647954902798e+00 5.8472746169042855e+00 6.6028251690195514e+00 2 0 0 -62 0 +P 123 213 1.6982439540579044e+00 -2.0586767864933027e+00 5.4934725034644734e+00 6.1605691667856659e+00 2 0 0 -63 0 +P 124 113 2.9418564684892945e+00 -3.1012166205676479e+00 5.9093890342429791e+00 7.3452154730835240e+00 2 0 0 -64 0 +P 125 2112 2.3972505494101850e+00 -3.1969828230803983e+00 9.5256435215448363e+00 1.0372472494645029e+01 1 0 0 0 0 +P 126 -2112 3.4184366439918845e+00 -3.6749985902842326e+00 9.6543481666732056e+00 1.0921563717518836e+01 1 0 0 0 0 +P 127 313 7.2107705342681427e-01 -1.9937173017311436e+00 4.6809918289416128e+00 5.2178012042881861e+00 2 0 0 -65 0 +P 128 -313 2.7935483674053357e-01 -8.1871255653283084e-02 1.1718388726820061e+01 1.1756180517434442e+01 2 0 0 -66 0 +P 129 113 -8.2708674444163105e-02 3.4522701208939077e-01 6.1206736781408893e+00 6.1737560715212680e+00 2 0 0 -67 0 +P 130 311 2.4695926864221421e-01 4.1868501205522318e-01 1.8281949053007391e+01 1.8295180311364682e+01 2 0 0 -68 0 +P 131 -311 2.9376002073213692e-01 5.4077841199444876e-01 2.3165952234661379e+01 2.3179468384934378e+01 2 0 0 -69 0 +P 132 -211 8.2622565565000405e-01 2.0025688618269719e-01 1.2637005194543391e+01 1.2666338528806758e+01 1 0 0 0 0 +P 133 221 -1.9997941753530871e-01 6.5041493910278059e-01 4.3772957762713439e+01 4.3781669271045850e+01 2 0 0 -70 0 +P 134 2224 1.1786850791080654e+00 3.2621875180768561e-01 6.7450236130820841e+01 6.7471056333264244e+01 2 0 0 -71 0 +P 135 -213 -6.0071912138819927e-01 -1.7948907599716118e-01 5.4158753007648563e+01 5.4167324041288985e+01 2 0 0 -72 0 +P 136 -2214 4.8755136324043447e-01 -5.7626612657803589e-01 1.5857152644493947e+03 1.5857159489133173e+03 2 0 0 -73 0 +P 137 113 -4.1376307441085342e-01 -8.6244447369672600e-02 1.4358186673828980e+03 1.4358189407957868e+03 2 0 0 -74 0 +P 138 2224 -3.9430912224019385e-02 -3.0577286480143262e-01 3.3195578920930161e+03 3.3195581504912811e+03 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 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 0 0 0 0 +P 141 211 -3.8214210133710984e+00 4.1209563848882319e-01 8.8452891185503653e+00 9.6452942283966223e+00 1 0 0 0 0 +P 142 -211 -1.9337263835215596e-01 3.8299880626085796e-02 7.4065220340539428e-01 7.7904128865453037e-01 1 0 0 0 0 +P 143 -313 -8.2556654128106732e+00 2.7128082773100708e+00 2.0430817739322297e+01 2.2220577016158007e+01 2 0 0 -76 0 +P 144 323 -7.0541203470947975e+00 1.7671260695652278e+00 1.7253849810841484e+01 1.8737883624206951e+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 2 0 0 -18 0 +V -18 0 0 0 0 0 0 14 0 +P 146 -2112 -2.6743483898333138e+00 8.2173272799491937e-01 3.9048032086408360e+00 4.8946566651373811e+00 1 0 0 0 0 +P 147 -211 -3.4761870385601772e+00 1.5018145990736227e+00 1.0041938198918368e+01 1.0733094893498349e+01 1 0 0 0 0 +P 148 2212 -1.5117020725326820e+00 1.9137806911799142e+00 8.1880940760776273e+00 8.5949424012979971e+00 1 0 0 0 0 +P 149 113 -1.2447883978844071e-01 2.5267362074443822e-01 1.5280844145927219e+00 1.6030732744200233e+00 2 0 0 -78 0 +P 150 -2212 1.3647329543852704e-01 5.2795247924943911e-01 4.2715630293953559e+00 4.4072621986569747e+00 1 0 0 0 0 +P 151 2212 5.8338973945168648e-01 1.6779417880182423e+00 1.4261748231538144e+01 1.4402556906492567e+01 1 0 0 0 0 +P 152 111 1.4165244960744796e+00 4.6731499980347514e-02 6.0300599428003485e+00 6.1958508693507808e+00 2 0 0 -79 0 +P 153 -211 -8.8908673032611560e-03 7.5389806891575817e-01 4.3882568137415596e+00 4.4547411814925377e+00 1 0 0 0 0 +P 154 113 1.8185267740322264e+00 1.0824417118785685e+00 1.1430218213996847e+01 1.1643291552010357e+01 2 0 0 -80 0 +P 155 213 1.5036150668328048e+00 3.5431629391135439e-01 8.4987502245096724e+00 8.6550697519553221e+00 2 0 0 -81 0 +P 156 223 4.6405083798304085e+00 1.6629892500258932e+00 3.0667601777968951e+01 3.1071117824765778e+01 2 0 0 -82 0 +P 157 -213 3.9970063450751039e+00 1.4686799434037365e+00 2.8332911049604355e+01 2.8661754230859430e+01 2 0 0 -83 0 +P 158 113 9.3580203216703879e+00 3.1521852498297869e+00 5.4878039383787858e+01 5.5765298071186237e+01 2 0 0 -84 0 +P 159 221 2.8855367459185346e+00 6.9662349745004337e-01 1.5936383535813000e+01 1.6219729600467367e+01 2 0 0 -85 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 2 0 0 -19 0 +P 53 21 -1.1792977287052229e+00 -3.1505474039551125e+00 3.5604699631516148e+00 4.8983301681289770e+00 2 0 0 -19 0 +P 54 21 5.4393098289857278e+00 1.2064682052724261e-01 -6.0927087448274282e+00 8.1683380757838790e+00 2 0 0 -19 0 +P 55 21 4.3229282211027176e+00 8.4560344871155246e-01 -3.2960883103994504e+01 3.3253910575937830e+01 2 0 0 -19 0 +P 56 21 2.9321949272632235e+00 6.6737924249356242e+00 -6.4867381486965698e+01 6.5275680413138062e+01 2 0 0 -19 0 +P 57 21 -4.3229282211027176e+00 -8.4560344871155246e-01 -3.3185882553128543e+01 3.3476940637210568e+01 2 0 0 -19 0 +P 58 21 -2.9321949272632235e+00 -6.6737924249356242e+00 -1.3725188086854727e+01 1.5540851342257129e+01 2 0 0 -19 0 +P 59 21 -5.4393098289857278e+00 -1.2064682052724261e-01 -6.8094310938794118e+00 8.7160196703137292e+00 2 0 0 -19 0 +P 60 -3 -1.0101998152855945e+01 -6.4603650197245228e+00 -1.0742083072280693e+01 1.6099038219724946e+01 2 0 0 -19 0 +P 160 92 -1.1792977287052206e+00 -3.1505474039551116e+00 -1.3837876686758571e+02 2.1446510077624441e+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 2 0 0 -86 0 +P 162 3214 1.1200777844798961e+00 4.1111180711726349e-02 3.7259896703360691e+00 4.1247208876059354e+00 2 0 0 -87 0 +P 163 -3122 5.4889822392614185e-01 6.7168289205653042e-02 1.2394553573684344e+00 1.7569269434479631e+00 2 0 0 -88 0 +P 164 -211 -1.8246867227292973e-01 -7.4395915930269774e-01 9.3316746363469338e-01 1.2153400129831278e+00 1 0 0 0 0 +P 165 213 -2.4505059959837305e-01 -1.9411646561574297e-01 4.9179202248504200e-01 1.1013212363778255e+00 2 0 0 -89 0 +P 166 111 1.0831519365169956e-01 -8.5977649139333909e-02 -1.2164921808366023e-01 2.2834725745604548e-01 2 0 0 -90 0 +P 167 2112 2.1446758121909784e-01 -3.2834007745682020e-01 2.5652908362645738e-01 1.0499535730233749e+00 1 0 0 0 0 +P 168 -3122 -1.6966076865868715e-01 -3.3109432038849090e-01 -2.5618579747388798e-01 1.2036532933709381e+00 2 0 0 -91 0 +P 169 -323 1.8511690574403743e+00 7.7549450304113823e-02 -1.7771148289683374e+00 2.7167454062741467e+00 2 0 0 -92 0 +P 170 221 1.1371300019760869e-01 -4.0058843868012450e-01 -1.2195001765893660e+00 1.4001013987635382e+00 2 0 0 -93 0 +P 171 2212 1.2523629043783191e-01 1.5016324154887450e-01 -1.0511017569858179e+00 1.4224621696177961e+00 1 0 0 0 0 +P 172 -211 5.5214282633985745e-01 1.1107501711974165e-01 -2.9656055335364906e+00 3.0218364160802897e+00 1 0 0 0 0 +P 173 -3114 2.4243956428752380e+00 1.3862290434432972e-01 -3.4795719084528560e+00 4.4684697068205574e+00 2 0 0 -94 0 +P 174 -321 9.7258158118116156e-01 -3.2442714147895962e-01 -5.7679095353058232e+00 5.8790806483371956e+00 1 0 0 0 0 +P 175 321 1.1597250287476084e+00 4.0770177789498285e-01 -8.7674225604355964e+00 8.8669342049683344e+00 1 0 0 0 0 +P 176 -321 1.2473896171875081e+00 5.8064712076131186e-01 -7.6950130852787115e+00 7.8326240353106558e+00 1 0 0 0 0 +P 177 211 4.6411646485160624e-01 -3.1056116558930160e-03 -6.8807161452354304e+00 6.8977639995852016e+00 1 0 0 0 0 +P 178 113 1.1429721118154468e+00 2.0039644079081445e+00 -1.8192672029751531e+01 1.8365275501470027e+01 2 0 0 -95 0 +P 179 113 -3.7950464568590037e-01 6.9483727246069926e-01 -1.1395936644018100e+01 1.1448140272842123e+01 2 0 0 -96 0 +P 180 -211 1.1066748123962553e+00 1.5207401839636081e+00 -2.0061478070674706e+01 2.0149932059750874e+01 1 0 0 0 0 +P 181 211 2.4841143236311466e-02 2.3230814679517509e-01 -4.8359467720177013e-01 5.5491238423969202e-01 1 0 0 0 0 +P 182 221 -4.2542141885817947e-01 5.9981854143176938e-01 -9.4453389518417676e+00 9.4897257644226993e+00 2 0 0 -97 0 +P 183 111 -3.2417120919680359e-01 -3.9808752168111899e-01 -7.9310594479818883e+00 7.9488039487468249e+00 2 0 0 -98 0 +P 184 111 -5.0210374058263441e-01 1.5238011936667630e+00 -8.2367846286676585e+00 8.3926705442060054e+00 2 0 0 -99 0 +P 185 -211 2.4005831721027357e-01 -3.1272585897954058e-01 -3.1418638717544294e+00 3.1695762858893386e+00 1 0 0 0 0 +P 186 111 -7.1801802285008720e-01 -1.5663690926018516e+00 -4.6475347856871210e+00 4.9585140112706885e+00 2 0 0 -100 0 +P 187 213 -8.7754060313250792e-01 1.0687002965254111e-01 -7.7721991707009082e+00 7.8598301364746987e+00 2 0 0 -101 0 +P 188 -213 -1.7607285674592426e+00 -2.1828765548774491e+00 -9.9325807070362337e+00 1.0374911328171784e+01 2 0 0 -102 0 +P 189 111 6.0732737211851184e-02 -1.4876097180116929e-01 -8.8365199189003499e-02 2.2769782811477235e-01 2 0 0 -103 0 +P 190 3322 -8.9819328650589736e-01 -1.4101551478664545e+00 -4.9514548113054522e+00 5.3889846427113186e+00 2 0 0 -104 0 +P 191 311 -9.8211331445284256e-01 -7.9298343389061809e-01 -1.4504485608208735e+00 1.9861635746679696e+00 2 0 0 -105 0 +P 192 -3212 -1.7421317431910346e+00 -8.2221491446806805e-01 -3.7329995940397152e+00 4.3667518646939678e+00 2 0 0 -106 0 +P 193 211 -1.4263310139354122e+00 -6.0848557736261411e-01 -2.6734691732657865e+00 3.0937989696285668e+00 1 0 0 0 0 +P 194 -211 -2.5524022272364206e+00 -5.2387494780839883e-01 -2.0619036105597894e+00 3.3256771302521524e+00 1 0 0 0 0 +P 195 211 -2.0644196153139507e-01 1.6631552161324753e-02 -9.1057393117718233e-01 9.4420313547863910e-01 1 0 0 0 0 +P 196 311 -9.4646039874614889e+00 -5.6457554838761190e+00 -1.0111196049899565e+01 1.4964532889856393e+01 2 0 0 -107 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 2 0 0 -21 0 +P 62 -1 -2.6048674114218304e+00 -1.3071749066125802e+00 3.9636024064472406e+00 4.9197748428113490e+00 2 0 0 -21 0 +P 197 92 0 0 -9.4512391699145715e-01 1.0628508028552741e+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 1 0 0 0 0 +P 199 111 1.2648914843620779e-01 -7.9047867519565176e-02 -4.6372272917197632e-01 5.0547644849410533e-01 2 0 0 -108 0 +P 200 -2112 7.9792227079239864e-01 4.2225813261826067e-01 -1.8859938515610912e+00 2.2923233789792832e+00 1 0 0 0 0 +P 201 313 -3.4282732844273572e-01 -3.3700984327477074e-01 4.3482101578220667e-01 1.2094706287093313e+00 2 0 0 -109 0 +P 202 -321 3.5673637654704443e-01 4.8759571964329723e-01 3.3223694327211195e-01 8.4795800287583600e-01 1 0 0 0 0 +P 203 321 -1.2446271985425277e+00 -6.2023897699434571e-01 1.2956105175346537e+00 1.9636804284509302e+00 1 0 0 0 0 +P 204 -313 -5.7809698523889164e-01 -5.9865262101058792e-01 1.0244967728543724e+00 1.5686672710805456e+00 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 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 0 0 0 0 +P 207 111 2.6649022515117178e+00 -1.5231421757903791e+00 -8.8732310945740023e-01 3.1980037521492721e+00 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 2 0 0 -114 0 +P 208 311 9.8128386922335242e-01 -7.1757193254617169e-01 -6.8412429949797804e-01 1.4810567161454691e+00 2 0 0 -112 0 +P 209 111 1.5789089989780553e-01 5.4611185360415225e-02 1.0867920409584220e-01 2.4071287385579151e-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 2 0 0 -115 0 +P 212 22 -1.2934347935662455e-01 1.8056299939314888e-01 -1.1528577356542393e+00 1.1740586403837536e+00 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 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 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 2 0 0 -117 0 +P 216 211 -3.2133320191013570e-01 -8.8845493592173877e-02 -7.7314963448494112e-01 8.5345690610929803e-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 2 0 0 -118 0 +P 218 111 1.6018610539930081e-01 2.4271751083915055e-01 -4.3737795180144273e-01 5.4230107094949964e-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 0 0 0 0 +P 220 211 -2.6130105545298021e-01 -1.3189239271634661e-02 -2.4039842802187339e-01 3.8173732684765543e-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 1 0 0 0 0 +P 222 22 2.0679224809817040e-01 -4.7905401060734981e-01 3.2231230740117400e-01 6.1330335271768321e-01 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 0 0 0 0 +P 224 211 3.2705663503245730e-01 -4.8246898921629483e-01 -1.9339384413010952e-01 6.2978038388121327e-01 1 0 0 0 0 +P 225 111 4.6015692466867701e-02 -2.0383276089091178e-02 1.0990311970840183e-01 1.8119386860202738e-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 0 0 0 0 +P 227 111 -1.7214071331345446e-01 -4.8264226777565866e-02 -6.7228410955527756e-02 2.3388270651355680e-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 0 0 0 0 +P 229 111 -3.1703515942667282e-01 4.6263260948433826e-01 -3.4987204494063704e+00 3.5459560921090518e+00 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 0 0 0 0 +P 231 211 2.5100062397212689e-02 -4.5049125374518711e-01 -4.9833364175074433e+00 5.0056661912066387e+00 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 1 0 0 0 0 +P 233 22 -2.3047286774980685e-01 1.2163186034124118e-01 -1.7622407592754459e+00 1.7814052166395471e+00 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 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 1 0 0 0 0 +P 236 111 -4.1140648547337716e-01 -2.6823730180912397e-01 -2.6724082079295770e+00 2.7205131458202456e+00 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 1 0 0 0 0 +P 238 22 -1.5625329294792351e-01 5.0377676570762064e-01 -2.1083686814135736e+00 2.1733441094289487e+00 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 0 0 0 0 +P 240 111 -2.1813350257864123e-01 -2.5306866209122109e-01 -7.2407392074981836e+00 7.2496999830393873e+00 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 1 0 0 0 0 +P 242 22 3.1283714292142595e-01 1.6177329345823128e-02 -3.5951437496245113e+01 3.5952802211098856e+01 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 2 0 0 -126 0 +P 244 211 -8.8322010909638760e-02 -2.3230389018430980e-01 -4.7761957316121880e+01 4.7762807835458695e+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 2 0 0 -127 0 +P 246 111 -5.2246677240471596e-03 -1.4230926848259157e-01 -7.6470870445203118e+01 7.6471122166949328e+01 2 0 0 -128 0 +P 247 221 3.1118378890592058e-01 -1.3630984864950577e-01 -2.8432103404018636e+02 2.8432176405422894e+02 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 2 0 0 -130 0 +P 249 111 7.1429956195406319e-02 1.1262397425854469e-01 -2.4149855125190902e+02 2.4149862579892570e+02 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 1 0 0 0 0 +P 251 111 3.3522844139410250e-02 2.0556422059052964e-01 -7.8301754502786298e+02 7.8301758436288753e+02 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 0 0 0 0 +P 253 211 -1.0931233412869321e-01 5.8050394161407254e-02 -2.2407062653002762e+02 2.2407070418146742e+02 1 0 0 0 0 +P 254 111 8.5648550805267079e-02 -1.7810518048657847e-01 -1.6434057182756410e+02 1.6434074608976536e+02 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 0 0 0 0 +P 256 111 4.5496572858580364e-01 1.4838294526426893e-01 -2.6649909534793096e+02 2.6649955919696873e+02 2 0 0 -134 0 +V -49 0 0 0 0 0 0 2 0 +P 257 22 -1.4711751798151942e-01 -5.6259697251430631e-02 -9.8098834067931008e+01 9.8098960515415683e+01 1 0 0 0 0 +P 258 111 -4.9286609976579326e-01 8.2167204288579737e-02 -3.6771637985725704e+01 3.6775280395877665e+01 2 0 0 -135 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 0 0 0 0 +P 260 111 1.0357375259596519e-01 -4.1258376884160269e-01 -3.6822266804582732e+01 3.6824971216781876e+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 2 0 0 -137 0 +P 262 211 1.4456308089166173e-01 -1.1923682482498356e-01 -1.9767890695868459e+01 1.9769271566080882e+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 0 0 0 0 +P 264 111 5.9359015453132734e-02 -3.5269859385229346e-01 -5.2306540289773871e+01 5.2307937222537824e+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 1 0 0 0 0 +P 266 111 1.7121583094049395e-01 -3.2406303517067925e-01 -1.1157425407826961e+01 1.1164259628078851e+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 1 0 0 0 0 +P 268 111 1.2461278822945901e-01 3.3466457865971788e-01 -1.0255848812896222e+01 1.0262951973023387e+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 0 0 0 0 +P 270 111 -1.4346561340253111e-01 3.0620444051767443e-01 -5.4173952238189038e-01 6.5272111359466933e-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 0 0 0 0 +P 272 211 5.9785090683486621e-02 -1.8030085794299547e-01 -1.0356062916028855e-01 2.5746309493806629e-01 1 0 0 0 0 +P 273 111 6.9407967703243298e-02 1.8135039476984641e-01 -2.2897781125613634e-01 3.2917452834556382e-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 0 0 0 0 +P 275 211 1.6238597675872291e-01 3.5045427364307591e-01 -2.1453629200455779e-01 4.6334976945029910e-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 0 0 0 0 +P 277 111 1.7384618945869995e-01 -2.2906445694892602e-01 3.4351937443349062e-01 4.6788693510055751e-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 2 0 0 -144 0 +P 279 -211 3.0681245317011434e-02 -9.2785550344249429e-02 1.4467368603156844e-01 2.2351903162113226e-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 2 0 0 -145 0 +P 281 -211 5.6647411898707156e-01 -4.8869691139755277e-02 1.2180527593897912e+00 1.3514486611600747e+00 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 0 0 0 0 +P 283 111 1.3052456300222421e+00 -7.8115318420007707e-01 1.8715126470489638e+00 2.4155011157816300e+00 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 0 0 0 0 +P 285 -211 1.9298980497479277e+00 -2.1173709670199026e+00 5.4886366910921414e+00 6.1929297433527006e+00 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 0 0 0 0 +P 287 111 1.0786305410186852e+00 -1.7407558071848346e+00 4.4223555485988415e+00 4.8753587378662653e+00 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 0 0 0 0 +P 289 -211 1.8996147715411444e+00 -1.8005444514622688e+00 4.2213455750106634e+00 4.9688766185638968e+00 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 1 0 0 0 0 +P 291 -211 3.1541098797646633e-01 -1.2938587588144628e+00 3.0596643542673432e+00 3.3398473505193902e+00 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 2 0 0 -148 0 +P 293 111 2.7600478909195956e-02 -2.9500235341042041e-01 5.3366817197150453e+00 5.3466044881676478e+00 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 0 0 0 0 +P 295 211 -3.5836080004238641e-01 2.1559117239341402e-01 2.5939841337981151e+00 2.6311851869295220e+00 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 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 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 2 0 0 -152 0 +P 299 111 -6.8709360746503190e-02 2.8337710712952435e-01 1.3589332359602992e+01 1.3593130512919101e+01 2 0 0 -153 0 +P 300 111 -5.8255209471673002e-02 3.6797523313229671e-04 7.8563483379036310e+00 7.8577237551162042e+00 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 1 0 0 0 0 +P 302 211 1.4692461191261935e-01 1.1989080247045376e-01 1.5123711862160690e+01 1.5125544648727947e+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 0 0 0 0 +P 304 111 -2.7873164949551793e-01 -8.2638242188484548e-02 7.1702453720709034e+00 7.1774061267011149e+00 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 1 0 0 0 0 +P 306 111 2.3416759166387574e-01 2.9532218771703617e-02 1.6610797461973073e+02 1.6610819714415794e+02 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 0 0 0 0 +P 308 211 -4.7179331260214574e-01 -3.3273969337000420e-01 1.0192483723750648e+03 1.0192485454361155e+03 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 1 0 0 0 0 +P 310 211 2.2815662682757848e-01 -2.6928563661664261e-02 1.0051037300159285e+03 1.0051037659626548e+03 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 1 0 0 0 0 +P 312 211 -3.7209029891736556e+00 1.5220631875289932e+00 9.4377232787534950e+00 1.0259234663116835e+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 2 0 0 -157 0 +P 314 211 -3.4944866593546617e+00 8.7788614127547804e-01 8.4904996449162073e+00 9.2244341341175780e+00 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 0 0 0 0 +P 316 211 -7.6805537606505728e-02 9.1776230273459644e-02 2.7290467811597724e-01 3.2905731307451080e-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 1 0 0 0 0 +P 318 22 1.1640677187514868e-01 -2.9856806517261601e-02 5.8322414217913543e-01 5.9547658682301741e-01 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 0 0 0 0 +P 320 211 5.3693988632829892e-01 4.9357797188294417e-01 2.7670560188673816e+00 2.8649611606980869e+00 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 0 0 0 0 +P 322 111 1.3774964266230527e+00 2.3042017249713853e-01 6.9719171579236301e+00 7.1117113494996964e+00 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 1 0 0 0 0 +P 324 111 7.6480365263055428e-01 5.6549345963268216e-01 5.5303297068260200e+00 5.6131518549355803e+00 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 0 0 0 0 +P 326 111 1.3814159463609341e-01 1.5224944402949425e-01 1.3575896401481926e+00 1.3796855528755789e+00 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 0 0 0 0 +P 328 -211 4.9177559628960754e+00 1.9209371235558570e+00 3.0908055846156746e+01 3.1356047568488268e+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 1 0 0 0 0 +P 330 22 5.8319108406716824e-01 2.5998213749120752e-01 2.4833213834801269e+00 2.5640958730124712e+00 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 1 0 0 0 0 +P 332 211 4.3871570358615983e+00 3.0086902262651471e+00 1.2397932613841485e+01 1.3491759581951781e+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 2 0 0 -161 0 +P 334 111 -4.0838506149200336e-02 5.5177303624111697e-02 2.2512846801554973e-01 2.7132037507484408e-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 1 0 0 0 0 +P 336 211 1.1291406118563700e-01 1.0198900028598853e-02 6.6200807966546288e-02 1.9161402519296616e-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 0 0 0 0 +P 338 111 -2.6692130361395883e-01 2.8247638498948274e-01 1.3711111945500606e-02 4.1163999488689595e-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 1 0 0 0 0 +P 340 22 8.9379809260152335e-02 -7.4950989278527919e-02 -1.5157148880174542e-01 1.9125981625733321e-01 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 1 0 0 0 0 +P 342 211 -9.5710096102158526e-02 -6.7488139943758838e-02 3.1274848257071206e-02 1.8485933182410788e-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 2 0 0 -164 0 +P 344 -211 7.3708063476785890e-01 -8.6107444359986976e-02 -3.5085329035071899e-01 8.3263447584995176e-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 1 0 0 0 0 +P 346 22 1.7083633293661915e-01 -6.5795912271685339e-02 -9.4736965871340673e-01 9.6489555132856297e-01 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 2 0 0 -165 0 +P 348 211 4.2728076719684455e-01 5.6535142741856115e-02 -7.9829192528761195e-01 9.1788608185360798e-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 0 0 0 0 +P 350 -211 5.2672204566684544e-01 1.6666969663619966e+00 -1.4316452561049747e+01 1.4423439555416719e+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 0 0 0 0 +P 352 -211 -1.0983855673091272e-01 7.6080732621216451e-01 -8.1057023413813170e+00 8.1432660848174052e+00 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 0 0 0 0 +P 354 211 -1.0201638753756302e-01 7.8384892820417440e-02 -1.4266697985266141e+00 1.4392421733942666e+00 1 0 0 0 0 +P 355 111 -2.2760644876592431e-01 4.5203798359883485e-01 -5.3624791339187565e+00 5.3880001017306958e+00 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 1 0 0 0 0 +P 357 22 -3.0932795275517122e-01 -2.9990935440231759e-01 -6.2811245020150359e+00 6.2958839262670150e+00 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 1 0 0 0 0 +P 359 22 -9.0848161860804577e-02 1.5244269026970386e-01 -1.0001543769902554e+00 1.0157760285333168e+00 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 1 0 0 0 0 +P 361 22 -4.1156227503042225e-01 -7.5046998327434278e-01 -2.3830743804433507e+00 2.5321201007751331e+00 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 0 0 0 0 +P 363 111 -5.2369471399431522e-01 3.5402828098625916e-01 -3.1635543138635680e+00 3.2289143182141680e+00 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 0 0 0 0 +P 365 111 -1.7623650520795352e-02 -4.0860185430857604e-01 -2.4765470325309402e+00 2.5137165459016839e+00 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 1 0 0 0 0 +P 367 22 6.9736646900344174e-02 -1.2760031062704383e-01 -1.2003718089938287e-01 1.8855758799712244e-01 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 2 0 0 -169 0 +P 369 111 -3.3051734332077809e-02 -1.4370417322118634e-02 -2.7128761233052251e-01 3.0514831646326673e-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 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 2 0 0 -171 0 +P 372 22 -6.0636364410652108e-02 -4.9613725855513595e-02 -3.9809263716227318e-02 8.7880987476447889e-02 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 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 1 0 0 0 0 +P 375 22 1.1669422088618255e-01 3.1168904522249487e-03 -3.0286833064202273e-01 3.2458663234983964e-01 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 1 0 0 0 0 +P 377 -211 -3.1119569790222151e-01 -9.0643724178569043e-02 -1.6873807237875477e-01 3.9116667687305512e-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 1 0 0 0 0 +P 379 211 -7.8076367030763885e-02 7.0110717268449307e-02 2.5930781099697733e-02 1.7653221256490112e-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 1 0 0 0 0 +P 381 22 8.6717598533476581e-01 -5.4343012835935178e-01 -2.4567080071055178e-01 1.0524564771389584e+00 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 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 1 0 0 0 0 +P 384 22 5.0614414143909950e-02 1.0209838651658623e-02 1.1330832045279429e-01 1.2451841312937319e-01 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 1 0 0 0 0 +P 386 111 -1.9254000030087138e-02 2.8169300845293684e-02 -2.5015083906664392e-03 1.3924828175420992e-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 1 0 0 0 0 +P 388 12 2.1061848626626939e-01 -1.0932717228124468e-01 -5.7973006096139035e-01 6.2641800815302651e-01 1 0 0 0 0 +P 389 333 -8.2733678267311739e-01 7.8189051332515147e-01 -6.1775965545865690e+00 6.3632738927342753e+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 2 0 0 -174 0 +P 391 111 -4.9730802910561589e-01 3.5328622614581767e-01 -4.8136339144703161e-01 7.8870574260788417e-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 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 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 1 0 0 0 0 +P 395 22 -1.3087207843465083e-02 -8.3584398965809228e-03 -1.9916672401752208e-02 2.5254947360894051e-02 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 1 0 0 0 0 +P 397 22 8.3029492775547220e-02 -4.0808975961671698e-02 4.2924127396728746e-02 1.0198896951325444e-01 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 1 0 0 0 0 +P 399 22 -1.7830128657396835e-01 -6.8516278907592251e-02 -8.2206441930538970e-02 2.0795126439662356e-01 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 1 0 0 0 0 +P 401 22 -2.0731679393122815e-01 2.4976577479240111e-01 -2.3687989918503392e+00 2.3909353523453438e+00 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 0 0 0 0 +P 403 211 2.6199693228118459e-01 -2.2459694595086344e-01 -1.7279186944177274e+00 1.7675601772141933e+00 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 1 0 0 0 0 +P 405 22 -2.8659220894343101e-01 -2.2783917032142667e-01 -1.6772483158185125e+00 1.7167433397790914e+00 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 1 0 0 0 0 +P 407 22 -2.7824715291029679e-02 -1.1261703875241377e-01 -1.7282577645224619e+00 1.7321465621680421e+00 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 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 1 0 0 0 0 +P 410 22 2.1260360401738412e-02 1.2040059846141607e-01 -7.5341361049769660e+01 7.5341460253560143e+01 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 1 0 0 0 0 +P 412 22 -4.3843673255012677e-02 -1.4791465150096908e-01 -5.5050001270001772e+01 5.5050217445883071e+01 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 1 0 0 0 0 +P 414 22 -1.3003727210228663e-01 7.9025968672578689e-02 -7.4810369626294275e+01 7.4810524382727280e+01 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 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 1 0 0 0 0 +P 417 22 8.1837259871931953e-02 8.1188153434088417e-02 -9.3801495122328660e+01 9.3801565957278186e+01 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 1 0 0 0 0 +P 419 22 -3.2552372563759389e-02 1.3649394946647336e-01 -5.7824396454182443e+02 5.7824398156773043e+02 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 1 0 0 0 0 +P 421 22 3.9629365422943770e-02 -1.8792706158184605e-01 -1.3464955211032841e+02 1.3464968908459880e+02 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 1 0 0 0 0 +P 423 22 4.1588831353803374e-01 9.9632495738959437e-02 -2.1450209612089199e+02 2.1450252243267425e+02 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 1 0 0 0 0 +P 425 22 -1.3839157224524873e-01 7.2327228775374577e-02 -8.6819129374255386e+00 8.6833170913152617e+00 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 1 0 0 0 0 +P 427 22 4.3748804964200425e-04 -2.7007640811787147e-02 -6.7720101606043936e+00 6.7720640294807559e+00 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 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 1 0 0 0 0 +P 430 22 5.0570583812301105e-03 -1.1570539817897650e-01 -2.6457944783177410e+01 2.6458198265616499e+01 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 1 0 0 0 0 +P 432 22 1.9178902818280380e-01 -2.5946581598005236e-01 -9.1085691476294492e+00 9.1142820593912131e+00 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 1 0 0 0 0 +P 434 22 1.1608995226234577e-01 1.2096495451637290e-01 -4.6889176423048236e+00 4.6919141140428886e+00 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 1 0 0 0 0 +P 436 22 -1.2242449936314574e-01 1.2531852860900106e-01 -3.2856409062700143e-01 3.7235312984664198e-01 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 1 0 0 0 0 +P 438 22 -3.2461054705402004e-02 5.9524468091877421e-03 -2.4019657273122230e-02 4.0817834718681036e-02 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 1 0 0 0 0 +P 440 22 1.9612868801801220e-01 -2.1142122433834418e-01 3.0204130924743805e-01 4.1760549428413618e-01 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 0 0 0 0 +P 442 111 2.6635305935910647e-01 4.0889525284211697e-01 1.0011697241444379e+00 1.1219178655187840e+00 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 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 1 0 0 0 0 +P 445 22 1.0356516178300175e+00 -6.0049722614494039e-01 1.3849834207209339e+00 1.8306693496624562e+00 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 1 0 0 0 0 +P 447 22 1.7343572995639095e-01 -2.0058424793239438e-01 5.3163279403360253e-01 5.9409378101111721e-01 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 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 1 0 0 0 0 +P 450 22 2.0323798811088076e-02 -2.9774572188157267e-01 4.4993895698041380e+00 4.5092762249122815e+00 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 2 0 0 -179 0 +P 452 111 1.7675263292019575e-01 3.5322205481198321e-01 7.2615539871198669e+00 7.2735406248611998e+00 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 0 0 0 0 +P 454 -211 3.4636119397885656e-01 2.1037906261040085e-01 1.2892185623906263e+01 1.2899308329241325e+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 1 0 0 0 0 +P 456 22 -9.9098119570552284e-02 2.0714520593309504e-01 1.4981227068259312e+01 1.4982986819869694e+01 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 1 0 0 0 0 +P 458 22 -3.6569994921477583e-02 2.6983933006361521e-01 1.0251379936951878e+01 1.0254995916153122e+01 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 1 0 0 0 0 +P 460 22 -2.5679357125610595e-02 -6.3223944824902775e-02 2.6222854744377790e+00 2.6231732321806303e+00 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 1 0 0 0 0 +P 462 22 -3.7168364320045832e-02 3.1873735678067699e-02 7.4926851253561166e-01 7.5086665008484121e-01 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 1 0 0 0 0 +P 464 22 2.4984841316886486e-01 3.4946261031404309e-02 1.4809004018287865e+02 1.4809025507047161e+02 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 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 1 0 0 0 0 +P 467 22 2.6686104938252070e-01 8.6051621728536865e-02 1.5831961221517605e+00 1.6078338416876363e+00 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 1 0 0 0 0 +P 469 22 4.4148515143451034e-01 3.9804770404431883e-01 3.2443680482544379e+00 3.2983746218655052e+00 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 1 0 0 0 0 +P 471 22 1.6244293470231447e-01 1.0834216026005766e-01 1.1135702572616186e+00 1.1305593520829520e+00 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 1 0 0 0 0 +P 473 -211 6.0322890773452480e-02 4.7682886849288987e-02 4.2625801427967658e-01 4.5506943260034610e-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 1 0 0 0 0 +P 475 22 -4.1278238818121267e-02 -1.1879042022493941e-03 2.0850251996335911e-01 2.1255259336783106e-01 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 1 0 0 0 0 +P 477 22 -2.6910859266995735e-01 2.9287804807327755e-01 4.7986823712958485e-03 3.9776879345232552e-01 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 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 2 0 0 -181 0 +P 480 22 -1.6076131313801340e-02 1.4322867873945886e-02 -9.7430843067236299e-03 2.3632905745189673e-02 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 1 0 0 0 0 +P 482 22 -1.0811595167675146e-01 3.1684618315194474e-01 -2.9942984095479352e+00 3.0129559452813477e+00 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 1 0 0 0 0 +P 484 22 -4.7410925234586326e-01 2.6337114730522432e-01 -2.5997490496274094e+00 2.6557181826073788e+00 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 1 0 0 0 0 +P 486 22 3.3722397264361485e-02 -2.4447934454129777e-01 -1.7366403164793534e+00 1.7540886348204032e+00 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 1 0 0 0 0 +P 488 111 -1.2441886187471768e-02 -1.4748650932380047e-01 -5.9280379660612814e-01 6.2573397912776096e-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 1 0 0 0 0 +P 490 22 -8.7575975301444949e-03 -4.8910075968903524e-02 -2.5514816277699598e-01 2.5994129339960659e-01 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 1 0 0 0 0 +P 492 111 -1.1562836020309447e-01 -5.4397271860069998e-03 -3.6143853957406552e-01 4.0281127914266263e-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 1 0 0 0 0 +P 494 22 -2.7604472616102490e-02 3.4337928036938747e-02 -6.3547114597041404e-02 7.7326166230407709e-02 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 1 0 0 0 0 +P 496 310 -4.4352446428434805e-01 2.8594973325957562e-01 -2.9436292264552462e+00 3.0316842929486327e+00 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 1 0 0 0 0 +P 498 22 -5.4512945059224993e-02 4.1471367457650572e-02 -7.5483015880856680e-02 1.0192752907976933e-01 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 1 0 0 0 0 +P 500 22 -1.4336849767438012e-01 1.7655084486868911e-01 -2.0435345439003930e-01 3.0575326861768554e-01 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 0 0 0 0 +P 502 -211 2.4512620249294581e-01 9.9917069010506745e-02 -8.3903576116670597e-02 3.1078910986942410e-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 1 0 0 0 0 +P 504 22 2.3022644940023498e-01 2.6831909245892044e-01 7.9190608955485142e-01 8.6724541397200472e-01 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 2 0 0 -185 0 +P 506 111 2.3080376582982970e-01 -1.5048700915484961e-01 1.3240547924864057e-01 3.3416691874071680e-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 1 0 0 0 0 +P 508 22 4.1285086439393701e-02 7.9835975721270214e-03 9.2188183229143235e+00 9.2189142238711259e+00 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 1 0 0 0 0 +P 510 22 1.3673235942334631e-02 2.7402835750636373e-02 1.5902008574409892e+00 1.5904957214008373e+00 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 1 0 0 0 0 +P 512 211 2.3613467877146080e-01 1.0195151092157670e-01 -3.5505108550341169e-01 4.6010298337963895e-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 1 0 0 0 0 +P 514 22 -5.2639003451683840e-02 -1.7081695812703201e-02 -2.6399737984578697e-01 2.6973554749358647e-01 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 1 0 0 0 0 +P 516 22 -1.0291803033443389e-01 1.0248107272182054e-02 -3.6746302574828849e-01 3.8174103782887814e-01 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 0 0 0 0 +P 518 -211 -3.2435942883237623e-01 1.6288129826094347e-01 -9.5976189211099172e-01 1.0355491445818044e+00 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 1 0 0 0 0 +P 520 22 2.2128911821098113e-01 -1.1097224518372439e-01 4.0374926180791465e-01 4.7360023168295245e-01 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 1 0 0 0 0 +P 522 22 1.8144699326808689e-01 -4.5356327895343163e-02 5.6329464841998966e-02 1.9532848347223983e-01 1 0 0 0 0 +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 3 0 0 -1 0 +P 3 -2 -1.3063956680622808e+00 1.2879304852865372e+00 5.1893828474231309e+00 5.5041010995066388e+00 3 0 0 -3 0 +P 14 2224 6.2629672068355446e-01 -5.5829354058455705e-01 1.9862339814540292e+03 1.9862345051592931e+03 2 0 0 -9 0 +P 20 1 6.8009894737872634e-01 -7.2963694470198015e-01 2.2511960482291925e+03 2.2511962933887798e+03 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 3 0 0 -2 0 +P 4 1 7.0565678882479643e-01 -1.5984513018320162e-01 -1.0981823600478867e+03 1.0981825983971498e+03 3 0 0 -4 0 +P 28 2203 -7.0565678882479643e-01 1.5984513018320162e-01 -4.3114475678564886e+03 4.3114476975637281e+03 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 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 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 3 0 0 -6 0 +P 8 -24 2.3715758047052646e+00 -1.8198815967210915e+00 -1.0956387055972511e+03 1.0987344230020528e+03 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 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 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 1 0 0 0 0 +P 12 11 7.7686205977028244e+00 -2.9576059382324004e+01 -9.4035688046136852e+02 9.4085395114538073e+02 1 0 0 0 0 +P 13 22 1.6417212790378732e-02 -6.2331934778808794e-02 -1.9810795368566805e+00 1.9821278783976966e+00 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 1 0 0 0 0 +P 32 211 2.2784005542354996e-01 -1.3829166838531035e-01 2.6539700828516311e+02 2.6539717881352135e+02 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 2 0 0 -10 0 +P 16 -2 5.8774466266559076e+00 9.3245626556735572e-01 -2.6116865900135838e+02 2.6123644902291909e+02 2 0 0 -10 0 +P 33 92 0 0 -4.3055478521843401e+02 4.3072707887708964e+02 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 0 0 0 0 +P 35 313 -1.4318407714997392e+00 1.0448174597780837e+00 -7.2468641710313307e+01 7.2496138880553076e+01 2 0 0 -18 0 +P 36 -313 1.0440864295074967e+00 -4.5871170804924338e-01 -4.5617120785926659e+01 4.5640092033581006e+01 2 0 0 -19 0 +P 37 -213 3.2409711340366965e-01 2.3335471252859891e-01 -4.0111237075385660e+01 4.0121708510378014e+01 2 0 0 -20 0 +P 38 111 1.2936126903917291e+00 4.7104501694792161e-01 -5.4152907899216984e+01 5.4170572922410656e+01 2 0 0 -21 0 +P 39 213 1.2548924127288779e+00 -4.7071757914042800e-01 -7.1343007544735329e+01 7.1361058743643341e+01 2 0 0 -22 0 +P 40 -211 9.3746176774424972e-01 3.5580634848562342e-01 -4.4737236216968142e+01 4.4748689554458579e+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 2 0 0 -12 0 +P 18 21 1.4025793372001376e+00 -2.7884933102773206e+00 9.4380500095915245e+00 9.9408104157635311e+00 2 0 0 -12 0 +P 19 -2 1.2925484085993182e+00 2.9944775922487810e+00 6.0026559409271556e+02 6.0027445475292370e+02 2 0 0 -12 0 +P 41 92 1.4025793372001376e+00 -2.7884933102773206e+00 -5.0964693032025559e+02 1.7295705912548949e+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 1 0 0 0 0 +P 43 -2212 -4.9702749607820934e-01 -1.9489755847429249e+00 -5.5795580111420406e+02 5.5796021532878854e+02 1 0 0 0 0 +P 44 113 1.6533916537684344e-02 -2.9412170960257544e-01 -7.6806020852310596e+01 7.6812204400634272e+01 2 0 0 -23 0 +P 45 221 -1.4972892483807126e-01 4.5696574621284011e-03 -1.0055577843303921e+02 1.0055738022348076e+02 2 0 0 -24 0 +P 46 221 3.0200268424734572e-01 2.8534525335404792e-01 -2.8870835357085056e+01 2.8879014236177056e+01 2 0 0 -25 0 +P 47 211 -6.4308952739707492e-01 -7.2529706032234698e-01 -5.7806554947847131e+00 5.8630263260746780e+00 1 0 0 0 0 +P 48 -213 3.3534244198776286e-01 1.3819689112114653e-01 -4.9513827912839794e+00 4.9961422616793758e+00 2 0 0 -26 0 +P 49 213 3.8463247216398370e-02 -2.6825695664888762e-02 -6.2305386932288869e+00 6.2750941019503417e+00 2 0 0 -27 0 +P 50 -211 -3.0493494659552672e-01 4.0145043880181042e-01 -5.0694511698343381e-01 7.2843730890360803e-01 1 0 0 0 0 +P 51 213 4.5194685326190176e-01 -3.3844629401524673e-01 -1.5162335922911572e+00 1.8063449324268250e+00 2 0 0 -28 0 +P 52 113 2.7127567356955044e-02 -3.5096115077676360e-01 -2.0560156402869595e-01 8.5167643807785465e-01 2 0 0 -29 0 +P 53 313 1.5417297555815859e-01 -2.8232887295282283e-01 9.8735536340780428e-01 1.3695271653989567e+00 2 0 0 -30 0 +P 54 -321 1.6551837760939633e-01 -1.1656322834342046e+00 1.9035451055119379e+00 2.2919903756841866e+00 1 0 0 0 0 +P 55 223 2.7048492858539253e-01 6.4531024760498323e-01 4.8493013060375016e+00 4.9634403118180437e+00 2 0 0 -31 0 +P 56 211 3.8312833002830518e-02 -6.7146029886687178e-02 -3.8093840362958112e-02 1.6403471606902364e-01 1 0 0 0 0 +P 57 113 -1.9506129454061361e-01 -4.4996827569324266e-01 9.0912943373856825e-01 1.1300284456403529e+00 2 0 0 -32 0 +P 58 311 2.5486600266519988e-01 -5.5963768406031345e-01 7.0488897796228791e+00 7.0931427146862651e+00 2 0 0 -33 0 +P 59 -323 5.8984323195972610e-01 5.0704121519152545e-01 1.2620140238622938e+01 1.2677108878334321e+01 2 0 0 -34 0 +P 60 113 4.7159765669982140e-01 -9.8137013413514440e-01 2.4370406619890971e+01 2.4406162239602889e+01 2 0 0 -35 0 +P 61 113 -3.7486729996664692e-01 7.1444064961249365e-01 3.2438220987768268e+01 3.2455915309327651e+01 2 0 0 -36 0 +P 62 223 1.4179614786791939e-01 3.7607095473386615e-01 9.2454157450938268e+01 9.2458324597560690e+01 2 0 0 -37 0 +P 63 223 -2.5333004221869093e-01 -1.7482317991745372e-01 4.1049255544223520e+01 4.1057845264441667e+01 2 0 0 -38 0 +P 64 321 8.9930855079187644e-01 4.6279031139923948e-01 1.3433665469657635e+02 1.3434136878403856e+02 1 0 0 0 0 +P 65 -321 3.1245794752940531e-01 1.4688432657087267e+00 2.5561448142535130e+02 2.5561936915229936e+02 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 2 0 0 -14 0 +P 22 21 2.3306161753086991e+00 2.5263018388499852e+00 1.6213072005400015e+01 1.6573402685926418e+01 2 0 0 -14 0 +P 23 21 -2.3306161753086991e+00 -2.5263018388499852e+00 1.7097855225215859e+01 1.7439914737177720e+01 2 0 0 -14 0 +P 24 21 -4.5189465118581147e+00 -3.0246444971641862e-01 -3.2145610931228710e+00 5.5538964107909132e+00 2 0 0 -14 0 +P 25 21 3.3444552178150491e+00 -3.3682323125838081e+00 -1.2861369300978330e+01 1.3709310336835030e+01 2 0 0 -14 0 +P 26 21 -1.4025793372001376e+00 2.7884933102773206e+00 -5.6917899608951075e+00 6.4914864782689392e+00 2 0 0 -14 0 +P 27 21 -3.3444552178150491e+00 3.3682323125838081e+00 -1.4040682664225221e+01 1.4821306936062644e+01 2 0 0 -14 0 +P 66 92 -1.4281371786462076e+00 2.2187014957585420e+00 -1.9871596487759671e+03 6.7129582165122420e+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 2 0 0 -39 0 +P 68 211 1.0135732704315257e-02 5.3514575211682114e-01 2.3409980209226654e+02 2.3410045558078767e+02 1 0 0 0 0 +P 69 1114 8.9641438172015775e-01 -3.6392129443568710e-01 4.4812864618973961e+01 4.4840773987411758e+01 2 0 0 -40 0 +P 70 211 3.8473184386194154e-01 1.7416136993019182e-01 7.6482609489049134e+00 7.6611830745584788e+00 1 0 0 0 0 +P 71 -2212 1.3570820383715327e+00 -3.4833837508799126e-01 5.9400969475256197e+01 5.9424898287465744e+01 1 0 0 0 0 +P 72 223 5.3513808491869197e-01 5.6258841694084194e-01 1.3497984646533387e+01 1.3542742700934161e+01 2 0 0 -41 0 +P 73 111 1.4249126471823113e+00 -8.7326689179198683e-02 2.6487334767795783e+01 2.6526121554128995e+01 2 0 0 -42 0 +P 74 113 1.0243223484583437e+00 8.9460184235475726e-01 7.8398598406213731e+00 8.0044033243370425e+00 2 0 0 -43 0 +P 75 213 7.8146511190515611e-01 8.1085897447583399e-01 9.7004079181519618e+00 9.7985969509811213e+00 2 0 0 -44 0 +P 76 223 -6.0070864720254791e-01 -7.5020685309669766e-01 4.3286489963019363e+00 4.5018892429835349e+00 2 0 0 -45 0 +P 77 -213 2.0007537718930121e-01 -8.0481277249238786e-02 2.7952951677960907e+00 2.9524405521698647e+00 2 0 0 -46 0 +P 78 113 -4.2184079371557825e-01 6.6478556099176161e-02 2.1918020937664431e+00 2.2875634621838854e+00 2 0 0 -47 0 +P 79 213 -6.8390630107822026e-01 -1.2031666983062672e+00 6.5479758970760322e+00 6.7835848615007661e+00 2 0 0 -48 0 +P 80 111 -5.9823858771689586e-01 -1.2013185150743945e-01 9.0499212497479931e-01 1.0997960793922275e+00 2 0 0 -49 0 +P 81 -211 -1.8659891773971918e-01 3.9874400471142490e-01 -3.5494610553090200e-01 5.8247957914977033e-01 1 0 0 0 0 +P 82 113 -9.1461437410828916e-01 -4.4389801834541065e-01 -7.0381543247325407e-01 1.5379185055407165e+00 2 0 0 -50 0 +P 83 213 -1.2615073893577071e+00 1.7769459083209821e-01 -8.9289455873395662e-01 1.7351143047719249e+00 2 0 0 -51 0 +P 84 -211 -8.7219080940381755e-01 -1.8926094685784717e-01 -5.3480327737921796e-01 1.0497765688037612e+00 1 0 0 0 0 +P 85 113 6.2141214984468351e-01 -8.6421893286914353e-02 -2.4332734261172653e+00 2.6283177307616250e+00 2 0 0 -52 0 +P 86 211 -3.5446434481312317e-01 -1.2268348898738159e+00 -1.2253959392308320e+00 1.7753432939966589e+00 1 0 0 0 0 +P 87 2112 9.1472463744437760e-01 -1.2569570091894453e-01 -3.6476223116165620e+00 3.8782033062592536e+00 1 0 0 0 0 +P 88 -2212 8.6361312614816066e-01 -9.1836205712359598e-01 -4.8715921735632639e+00 5.1187867115208592e+00 1 0 0 0 0 +P 89 113 2.0594892520170244e-02 2.0438980965336340e-01 -5.7002702256806792e-01 9.3915477322444918e-01 2 0 0 -53 0 +P 90 213 -6.4584413784606176e-01 7.8022036598574573e-01 -3.1474571005361729e+00 3.4019473481372686e+00 2 0 0 -54 0 +P 91 113 -1.0973380029073554e+00 7.4299977704846509e-01 -5.3024187721700224e+00 5.5125660457410666e+00 2 0 0 -55 0 +P 92 313 -5.3612158238681562e-01 9.9278532523932750e-01 -3.4650732050135691e+00 3.7239560285499427e+00 2 0 0 -56 0 +P 93 -321 -1.2221331636647612e+00 1.5690691103915120e+00 -4.6853289562246045e+00 5.1138572262970730e+00 1 0 0 0 0 +P 94 221 -6.2878961836263358e-01 3.9774130133513302e-01 -4.6596960331790589e+00 4.7503729486297237e+00 2 0 0 -57 0 +P 95 213 -1.5227279129650367e-01 7.2806206429657749e-01 -2.1391236973384483e+01 2.1421593665725354e+01 2 0 0 -58 0 +P 96 113 3.0209002088422593e-01 -3.9448441998462064e-01 -1.0899232925753084e+01 1.0936206424161766e+01 2 0 0 -59 0 +P 97 111 -8.0811401894910795e-01 4.0766228483193984e-01 -2.8448690697297046e+01 2.8463405607849737e+01 2 0 0 -60 0 +P 98 -213 1.2089810072332315e-01 -5.2079050430329710e-01 -1.1939975039352846e+02 1.1940300095633448e+02 2 0 0 -61 0 +P 99 223 5.4114373167817453e-01 2.7085749567615108e-01 -4.2861438876063943e+02 4.2861551326973716e+02 2 0 0 -62 0 +P 100 2212 -8.2348818137401925e-01 8.9103884396884103e-02 -1.7961757953324147e+03 1.7961762313762292e+03 1 0 0 0 0 +P 101 213 -1.6088234688084649e-01 6.2448336922287219e-02 -1.9053309529925027e+03 1.9053311124555951e+03 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 2 0 0 -16 0 +P 30 21 -1.7182462671114402e+00 -2.3426872894360549e+00 2.0339078055224470e+03 2.0339098804812140e+03 2 0 0 -16 0 +P 102 92 0 0 2.0341203600610895e+03 2.0368229086998253e+03 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 0 0 0 0 +P 104 111 3.0137821631491024e-01 6.9978369862249840e-02 2.1411449928155655e+00 2.1675902016241224e+00 2 0 0 -64 0 +P 105 211 -7.4504913328202721e-02 1.3535438527297250e-01 7.5149850953364265e+01 7.5150139387026329e+01 1 0 0 0 0 +P 106 311 -3.0824762001330436e-01 -1.4402182869475991e-01 3.9741975944594941e+02 3.9742021668806382e+02 2 0 0 -65 0 +P 107 333 -9.1866028181973891e-01 -2.0597240947952193e+00 9.9285414260558821e+02 9.9285721752589359e+02 2 0 0 -66 0 +P 108 -323 -2.3490715754350402e-01 8.3095883242977953e-02 4.9572324857581219e+02 4.9572416549705343e+02 2 0 0 -67 0 +P 109 111 4.1806436528339791e-01 -2.2899116272598369e-01 6.4652151043041934e+00 6.4841684672322852e+00 2 0 0 -68 0 +P 110 3222 -5.6454807151714115e-01 3.0038362700044496e-01 1.5559636563150063e+01 1.5618125233927406e+01 2 0 0 -69 0 +P 111 -3212 -1.2459659851310380e-01 1.4248779043166906e-01 1.5027023583236335e+01 1.5075458213813077e+01 2 0 0 -70 0 +P 112 -213 3.7655640018993020e-01 -3.8287574679571718e-01 1.8935226661500398e+01 1.8955778084047072e+01 2 0 0 -71 0 +P 113 211 -1.4243498041231339e-01 3.1036147917840962e-01 3.6873645553705686e-01 5.2159211070040012e-01 1 0 0 0 0 +P 114 113 3.8953818738287976e-01 3.5983308392962821e-03 2.9199479223354214e+00 3.0414263991854740e+00 2 0 0 -72 0 +P 115 111 -9.0634448722506072e-03 6.1399994260374857e-01 8.6138652128429471e-01 1.0664353777893050e+00 2 0 0 -73 0 +P 116 -213 2.1126425569031212e-01 7.2662728626688444e-01 1.7631477856117816e-01 1.0907967455146763e+00 2 0 0 -74 0 +P 117 211 1.8890292053918842e-01 -3.9217829654797970e-01 4.2376063239215755e-01 6.2333056088797001e-01 1 0 0 0 0 +P 118 -211 -5.8451538057038684e-02 1.9531982712468343e-01 3.1711758377891242e-01 4.0200716910401635e-01 1 0 0 0 0 +P 119 221 9.1656294346312978e-02 -7.2250132436744510e-02 4.2083038462435490e-01 7.0030041628825801e-01 2 0 0 -75 0 +P 120 323 3.2393892176032707e-01 5.9901412523414366e-01 3.2048749331960464e+00 3.3826342799303069e+00 2 0 0 -76 0 +P 121 -323 8.3047607121168998e-01 3.6045783335863357e-01 4.3175731064757974e+00 4.4982902518816132e+00 2 0 0 -77 0 +P 122 211 -6.3597693739585281e-01 -2.3904422135293027e-01 1.1612828223115010e+00 1.3526516118193193e+00 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 2 0 0 -78 0 +P 124 111 -5.4348142711345571e-01 3.6407659910904144e-01 -1.5577875128577560e+01 1.5592188331135288e+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 1 0 0 0 0 +P 126 211 -3.3282478902592651e-02 5.7785678436559643e-02 -5.2385564741797834e+00 5.2408396871212544e+00 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 0 0 0 0 +P 128 111 8.7458662032133927e-02 -1.2806458468340143e-01 -2.7357839164058722e+00 2.7434982764856324e+00 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 1 0 0 0 0 +P 130 22 1.1787030455063505e+00 3.8583131502431123e-01 -4.8591266614428093e+01 4.8607092053192950e+01 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 0 0 0 0 +P 132 111 3.2916938375814553e-01 -4.5042884129510524e-01 -3.9848056808092458e+01 3.9852190524557592e+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 0 0 0 0 +P 134 -211 -3.9094998744296061e-02 -1.2171649033446306e-01 -7.2403963168064124e+01 7.2404210551253385e+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 1 0 0 0 0 +P 136 22 -1.3428452078583464e-01 1.2760657021293417e-01 -9.5147757177670613e+01 9.5147937506339346e+01 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 2 0 0 -82 0 +P 138 111 1.5389951085199688e-01 1.3360790730478667e-01 -6.2955950525981503e+00 6.3003391019081789e+00 2 0 0 -83 0 +P 139 111 5.5791692764156894e-02 -2.8364874272475478e-02 -7.5531394189043217e+00 7.5546046859435538e+00 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 0 0 0 0 +P 141 111 -1.2616270239931780e-02 9.0612641154672498e-03 -3.1783389119279665e-01 3.4565772025645797e-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 0 0 0 0 +P 143 111 3.0353451369983231e-01 -1.9294045346846636e-01 -2.5685127621855748e+00 2.5970823301354509e+00 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 0 0 0 0 +P 145 111 2.6262134649075942e-02 1.9741185741202916e-01 -6.5317860563600838e-01 6.9607688686221558e-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 0 0 0 0 +P 147 -211 -2.4778790206768489e-01 -3.6597390883771697e-01 -2.6994157072330072e-01 5.3636180220595964e-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 1 0 0 0 0 +P 149 -211 1.8867321425149802e-01 -1.7634955497925797e-01 4.1041335305949819e-02 2.9641343326689734e-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 0 0 0 0 +P 151 211 2.2174429060384263e-02 -7.0700764257547011e-02 9.6535187332727646e-01 9.7819953363679191e-01 1 0 0 0 0 +P 152 111 7.4582340824285623e-02 3.1784453981659611e-01 2.5732918564902025e+00 2.5974291628710198e+00 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 0 0 0 0 +P 154 211 -2.2902340300623730e-01 -4.3783153607398917e-01 6.0529885371887526e-01 7.9373462839846587e-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 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 2 0 0 -89 0 +P 157 -211 -4.6447952583897813e-02 2.4637794452732709e-01 5.3302393166445974e+00 5.3379575177639449e+00 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 0 0 0 0 +P 159 211 6.1003735004736936e-01 -8.6563061780384321e-01 2.1592828499359829e+01 2.1619231816200092e+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 0 0 0 0 +P 161 211 -3.2130385226474850e-01 5.3315941558826262e-02 1.5660217768454098e+01 1.5664226093088988e+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 0 0 0 0 +P 163 -211 1.5997741131462320e-01 -8.4859508363502090e-02 1.5752145709471709e+01 1.5753804878365688e+01 1 0 0 0 0 +P 164 111 4.8726667593223340e-02 3.3917289858335631e-01 6.3187581408216893e+01 6.3188654649103782e+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 0 0 0 0 +P 166 211 -8.8088472241610968e-02 1.2956137830090980e-01 4.4468232102231378e+00 4.4517706789061249e+00 1 0 0 0 0 +P 167 111 6.2569003693889999e-02 -1.2362432616788839e-01 1.4397808672856140e+01 1.4399108029138999e+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 0 0 0 0 +P 169 111 4.2640598588065382e-01 -1.9192933429383069e-01 1.2101213867318643e+03 1.2101214846057335e+03 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 1 0 0 0 0 +P 171 -211 3.1910484454034588e-01 1.2875420380123584e-01 1.1686515518017115e+01 1.1692413364423977e+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 0 0 0 0 +P 173 211 2.1429886442208966e-02 1.3131790882612157e-01 1.6489652622608375e+00 1.6602017510695333e+00 1 0 0 0 0 +P 174 111 4.1822099132220031e-01 4.9413362255140486e-01 1.0594169568099732e+01 1.0614788046521172e+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 1 0 0 0 0 +P 176 22 7.4871976079584612e-01 4.5693614737851275e-03 1.4684152569220737e+01 1.4703228857479658e+01 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 0 0 0 0 +P 178 211 8.4177140583491938e-01 4.0178917000174957e-01 3.3009840535326229e+00 3.4330728427152049e+00 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 0 0 0 0 +P 180 111 1.3668399679800877e-01 9.7557048732413817e-02 4.6808974642280660e-01 5.1529360935705770e-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 0 0 0 0 +P 182 211 -1.2829685354263031e-02 -1.2856125071302602e-01 5.3883610377089486e-01 5.7141642226854616e-01 1 0 0 0 0 +P 183 111 -2.4802802579383956e-01 -5.8780591108267710e-01 2.7773615772969507e+00 2.8528916246728215e+00 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 0 0 0 0 +P 185 111 6.6485477591014169e-02 -4.6693675376272548e-01 1.1277783095652469e+00 1.2298592466907843e+00 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 0 0 0 0 +P 187 -211 -3.2788728789114446e-01 2.2564476766690900e-01 1.3381366775043535e+00 1.4030378424399157e+00 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 0 0 0 0 +P 189 111 -3.7093332348151864e-01 6.6909331741895992e-02 9.1008015579875357e-01 9.9425041087337529e-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 1 0 0 0 0 +P 191 22 -5.6748497803831199e-01 -7.9179990550143464e-02 8.4453887023221308e-01 1.0205658109773066e+00 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 0 0 0 0 +P 193 -211 -5.4065628168678093e-01 1.0314863476464556e-01 -9.3061363835372987e-03 5.6790425676831746e-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 0 0 0 0 +P 195 111 -2.5782032116764880e-01 1.1678624653832320e-01 8.5693793346426558e-02 3.2507440995193648e-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 0 0 0 0 +P 197 211 6.6270285177700960e-01 1.2024071808597084e-01 -1.3402529085075296e+00 1.5064496485784395e+00 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 0 0 0 0 +P 199 211 3.3718414212105013e-01 5.3270697108805012e-02 -2.7744532318724890e-01 4.6150471842316365e-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 0 0 0 0 +P 201 111 -7.2444747882162719e-01 7.5539425128146231e-01 -3.0092677963981189e+00 3.1889429118877124e+00 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 0 0 0 0 +P 203 -211 -3.8396987451115550e-01 6.2143699058585955e-01 -3.1808611328278378e+00 3.2666456999551263e+00 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 1 0 0 0 0 +P 205 -211 -3.5718484953977997e-01 3.8710008422418218e-01 -1.7049727542491055e+00 1.7899271967258628e+00 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 2 0 0 -100 0 +P 207 111 -8.3861532678087297e-02 5.2894938783996322e-02 -8.9880718379003643e-01 9.1427817716746196e-01 2 0 0 -101 0 +P 208 111 -5.1537379352633073e-01 2.7614663553016722e-01 -3.0842146687927694e+00 3.1420481910634095e+00 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 0 0 0 0 +P 210 111 -1.2348533400834598e-01 4.7926836171116444e-01 -4.7033438020998224e+00 4.7312376088506980e+00 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 0 0 0 0 +P 212 211 -7.0472479986327845e-03 -1.4536363234069261e-01 -8.3527033319280903e+00 8.3551369220027905e+00 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 1 0 0 0 0 +P 214 22 -5.0594597322126056e-01 2.1881684789260519e-01 -1.5444831448137609e+01 1.5454665334523453e+01 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 0 0 0 0 +P 216 111 3.4510819533982345e-01 -4.5554062643907289e-01 -6.8210690910088516e+01 6.8213218594058873e+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 0 0 0 0 +P 218 -211 2.0155403003524568e-02 1.0084712989668214e-01 -1.6553192481345258e+02 1.6553201560005030e+02 1 0 0 0 0 +P 219 111 2.0102218594058774e-01 -5.6970762719395704e-02 -4.9236656213007620e+01 4.9237284553733737e+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 0 0 0 0 +P 221 111 -1.4891641871379296e-01 2.3853893762025774e-01 -3.3949548407814893e+02 3.3949562737387589e+02 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 1 0 0 0 0 +P 223 22 2.6716427064635639e-01 9.2138136881784183e-03 1.7441199336875117e+00 1.7644874567303706e+00 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 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 1 0 0 0 0 +P 226 310 -3.5147060289058818e-01 -9.1662062570886449e-01 4.3080173018224508e+02 4.3080313616360888e+02 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 2 0 0 -108 0 +P 228 -211 1.0559389890479413e-02 3.1455748153945978e-01 2.1230192600598207e+02 2.1230220517824185e+02 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 1 0 0 0 0 +P 230 22 1.5121375552434085e-01 -8.8871558871697537e-02 1.5898616601878772e+00 1.5995073780296898e+00 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 1 0 0 0 0 +P 232 211 -8.3921271769354780e-02 -6.5345167289508649e-02 9.6605538183553463e-01 9.8186330841766378e-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 2 0 0 -109 0 +P 234 22 -6.0263618086868719e-02 -2.1865550854848093e-02 4.2463179579810417e-01 4.2944378908284236e-01 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 0 0 0 0 +P 236 111 2.5490886059890411e-01 7.2339769121301689e-02 1.1751666788979339e+01 1.1755428681635065e+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 0 0 0 0 +P 238 211 2.7023525158656675e-01 -1.9690143473533661e-01 5.6736419410684646e-01 6.7318584347518806e-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 1 0 0 0 0 +P 240 22 2.5776988954046759e-02 3.7564349841102102e-01 4.2362052734556249e-01 5.6676877317521679e-01 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 0 0 0 0 +P 242 111 2.5989684114912343e-01 1.5049630889423141e-01 3.4060456346050649e-01 4.7373682153723579e-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 1 0 0 0 0 +P 244 22 1.7368549233198097e-01 1.0668255504719676e-01 -3.2194728432922044e-02 2.0635968195573082e-01 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 1 0 0 0 0 +P 246 111 1.1971265141411374e-02 7.1476378845153385e-02 1.0826442031294552e-01 1.8759789185276041e-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 1 0 0 0 0 +P 248 111 4.5901243856616902e-01 3.3522470827209677e-01 2.7867613575488490e+00 2.8473367359906829e+00 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 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 1 0 0 0 0 +P 251 22 -1.0682997537163530e-01 1.4785343756005780e-02 -2.2312143912955911e+00 2.2338193548164194e+00 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 1 0 0 0 0 +P 253 22 6.6419842695921730e-02 -9.7178601158091210e-02 -2.6000708777066524e+00 2.6027339174654478e+00 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 1 0 0 0 0 +P 255 22 1.9756790216339634e-01 -2.7435110628171355e-01 -2.8496537235756634e+01 2.8498542700186409e+01 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 1 0 0 0 0 +P 257 22 1.8140566479408472e-02 6.0789768965475235e-02 -1.6319031665550834e+00 1.6331357632406374e+00 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 1 0 0 0 0 +P 259 22 9.6099152341945396e-02 2.7503238293923368e-02 -1.5578167178456963e+00 1.5610203078746385e+00 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 1 0 0 0 0 +P 261 22 8.7451068289363970e-02 -5.7504309359996640e-02 -5.7455202499548106e+00 5.7464734731468763e+00 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 1 0 0 0 0 +P 263 22 -2.1187813471082882e-04 -4.0107887412976712e-03 1.3371891962832829e-02 1.3962049037908679e-02 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 1 0 0 0 0 +P 265 22 2.4055413927146813e-01 -8.3259803324823314e-02 -1.8648425442445429e+00 1.8821360746754701e+00 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 1 0 0 0 0 +P 267 22 5.3352751664943285e-02 5.4970537672586084e-02 -1.1115741347810988e-01 1.3499720994664230e-01 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 1 0 0 0 0 +P 269 22 1.0251930686823132e-01 3.0265419391104781e-01 2.2501274191538188e+00 2.2727039340399169e+00 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 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 1 0 0 0 0 +P 272 22 -2.9808474054989965e-02 2.3961204189102020e-01 4.1710356478041902e+01 4.1711055369063452e+01 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 1 0 0 0 0 +P 274 22 -5.8713569331480097e-03 -4.7758662190614712e-02 9.9876875379365302e+00 9.9878034481110625e+00 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 1 0 0 0 0 +P 276 22 4.0969453328655292e-01 -2.0879998791888793e-01 1.1741018337664309e+03 1.1741019238127251e+03 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 1 0 0 0 0 +P 278 22 4.0520254140559964e-01 4.6012244020071186e-01 1.0322018464498882e+01 1.0340211165203236e+01 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 1 0 0 0 0 +P 280 22 5.6620908615590333e-02 6.6318274786224957e-02 3.8847625782063722e-01 3.9814299410312703e-01 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 1 0 0 0 0 +P 282 22 -8.8983864789347528e-02 -8.1716658249179147e-02 4.6205314557993754e-01 4.7758648407233734e-01 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 1 0 0 0 0 +P 284 22 -2.5486999986110755e-02 -2.1012184866980223e-02 5.0855773592181873e-02 6.0641642365914170e-02 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 1 0 0 0 0 +P 286 22 -1.8722012261886847e-01 -8.0752428112496038e-03 3.1025464783563805e-01 3.6245624613668997e-01 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 1 0 0 0 0 +P 288 22 -2.1217902662870536e-01 3.6377118875589240e-02 8.8048427878029925e-02 2.3258495172858076e-01 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 1 0 0 0 0 +P 290 22 -5.2601345084628082e-01 4.7080724876546715e-01 -2.1169302521603504e+00 2.2315338465891585e+00 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 1 0 0 0 0 +P 292 22 1.8534885426808229e-02 -3.4926143952101800e-02 -2.0035006467754016e-01 2.0421441164972265e-01 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 1 0 0 0 0 +P 294 22 -1.1952793505927364e-01 2.9821350131781360e-02 -6.0489333323150396e-01 6.1731044440470606e-01 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 1 0 0 0 0 +P 296 22 -3.0064913576336771e-01 2.3402868461541579e-01 -2.0030701687861194e+00 2.0389824494435782e+00 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 1 0 0 0 0 +P 298 22 -6.9171629961732761e-02 7.9094368332956660e-02 -7.5090556894472305e-01 7.5822147619659941e-01 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 1 0 0 0 0 +P 300 22 3.4014693925553080e-01 -4.1417459316756067e-01 -6.5661566925582846e+01 6.5663754169684097e+01 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 1 0 0 0 0 +P 302 22 2.0211965316448932e-01 -1.1737316740827236e-02 -3.8369531602823471e+01 3.8370065748430363e+01 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 1 0 0 0 0 +P 304 22 -5.4882756440301453e-02 1.9822100618454153e-01 -2.5064170351061375e+02 2.5064178790135270e+02 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 0 0 0 0 +P 306 -211 -1.1373747167277996e-01 -4.4974691440525599e-02 6.6540356779718223e+01 6.6540615559915182e+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 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 1 0 0 0 0 +P 309 211 -1.0525237235338031e-01 4.7100855272609099e-02 2.0377528622594481e+00 2.0457793294976856e+00 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 1 0 0 0 0 +P 311 22 2.6128546929969942e-01 4.1550866511718992e-02 1.0810037554410400e+01 1.0813274642712919e+01 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 1 0 0 0 0 +P 313 22 7.4962660998596956e-02 8.1342874367822907e-02 2.0896117223847074e-01 2.3643357472593826e-01 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 1 0 0 0 0 +P 315 22 5.9766717578129680e-03 -2.4345786178581225e-03 -3.0009324360881350e-02 3.0695395859049578e-02 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 1 0 0 0 0 +P 317 22 -1.9780965771179549e-03 6.5258330808300215e-03 4.7809670707489029e-03 8.3280855902691311e-03 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 0 0 0 0 +P 319 211 3.7850436990390546e-01 -6.7049613305079067e-02 3.4392471257592194e+00 3.4634753912253751e+00 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 0 0 0 0 +P 321 -211 -3.6766616789029316e-02 -3.0639477087794825e-01 1.6578670678848133e+02 1.6578705274265090e+02 1 0 0 0 0 +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 3 0 0 -1 0 +P 16 2103 -4.3597932309017928e-02 -1.9178552605452839e-01 5.7710271643278456e+03 5.7710272192255625e+03 2 0 0 -9 0 +P 28 2 6.9871172008364035e-01 1.9445633487239519e-01 5.4217114364762290e+02 5.4217172917398170e+02 2 0 0 -13 0 +P 3 21 -6.5511378777462237e-01 -2.6708088178667958e-03 1.3902379475140679e+01 1.3917806446382523e+01 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 3 0 0 -2 0 +P 4 2 1.5554951969939107e-01 -1.1414155502218004e+00 -2.5318090541773952e+02 2.5318352610953531e+02 3 0 0 -4 0 +P 31 2103 -1.5554951969939107e-01 1.1414155502218004e+00 -3.0079396582618142e+03 3.0079399777454469e+03 2 0 0 -13 0 +V -3 0 0 0 0 0 0 6 0 +P 12 21 -9.6370912240519885e-02 2.1371062251800688e-01 2.0354592242001850e+00 2.0489152828471759e+00 2 0 0 -9 0 +P 13 21 9.5280060735029493e-01 -3.6665346932772618e-02 2.4849955628758677e-02 9.5382957876527541e-01 2 0 0 -9 0 +P 14 21 1.8560548483485220e-02 -1.7257190047342610e-01 -1.8018846212308559e-01 2.5018680355946143e-01 2 0 0 -9 0 +P 15 21 7.9695242284356750e-05 -2.5824124117734876e-01 -4.6415843771256871e-01 5.3116061628844602e-01 2 0 0 -9 0 +P 11 1 1.1257705880566493e+00 -9.6356028506991842e-01 3.2813867683361453e+00 3.6155507136961815e+00 2 0 0 -9 0 +P 5 -1 -2.6336683162149233e+00 1.2040498771434778e+00 7.5527386554890201e+00 8.0888692723150033e+00 3 0 0 -5 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 3 0 0 -5 0 +P 30 21 -1.1480277436005311e+00 -4.8222213924733737e-01 -9.6575619960129195e+00 9.7375053067246053e+00 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 8 22 1.3514360574585182e+00 -3.7655964528149486e+00 -4.3922038667661063e+01 4.4103872582647035e+01 3 0 0 -7 0 +P 7 24 -2.7038131088254236e+00 4.3210603841580824e+00 -1.9039627432725470e+02 2.0586031167139001e+02 3 0 0 -6 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 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 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 2 0 0 -11 0 +P 18 21 8.4413619755245706e-01 -5.9573077753593484e-01 -9.7003942899011300e+00 9.7552606556087653e+00 2 0 0 -11 0 +P 19 21 1.3955327171164982e+00 -1.7699729137026712e+00 -8.4370450330890154e+00 8.7329287510064866e+00 2 0 0 -11 0 +P 20 21 1.7406612186275408e+00 -4.8453470359648625e+00 -2.0800170594403422e+01 2.1427888046498008e+01 2 0 0 -11 0 +P 21 21 4.3275523129907159e+00 -8.8306149160675105e+00 -5.6722222314980336e+01 5.7568376502795338e+01 2 0 0 -11 0 +P 22 21 5.0727116372506353e-01 5.3006276683040177e-01 -4.1876929772878206e+00 4.2514777480721468e+00 2 0 0 -11 0 +P 23 21 -1.4242475998353649e-02 2.6112816047433607e-01 -9.0335618313322297e-01 9.4044838131622055e-01 2 0 0 -11 0 +P 24 21 -2.1919670271754521e+00 3.5035232013803053e+00 -4.8234484426313431e+00 6.3517752754294783e+00 2 0 0 -11 0 +P 25 21 -1.7594584975864209e+00 2.2946842674852479e+00 -5.0312742416153835e+00 5.8030156458961768e+00 2 0 0 -11 0 +P 26 21 -1.6358735708068866e+00 1.9697163809587677e+00 -2.8994328596137606e+00 3.8681488943020028e+00 2 0 0 -11 0 +P 27 -3 -1.8445152698695317e+01 1.3832811111161117e+01 -2.6290961648407542e+01 3.4971917100915213e+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 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 0 0 0 0 +P 41 223 2.8112506374623569e-01 5.4000903387299448e-01 5.8416822415061209e-01 1.1500024027454310e+00 2 0 0 -19 0 +P 42 2214 4.4881519761355032e-01 -1.3187483483780489e+00 2.3761689627847922e+00 3.0194592377826033e+00 2 0 0 -20 0 +P 43 223 4.4098049591794489e-02 3.6975571581476430e-01 1.2240256589844973e+00 1.5000787933206947e+00 2 0 0 -21 0 +P 44 -3122 5.1854209512044214e-01 2.8340706828298096e-01 1.4726857248798244e+00 1.9397810643032543e+00 2 0 0 -22 0 +P 45 -313 2.7417269706128827e-01 4.4906334318631121e-02 2.5317079951813390e+00 2.6984767938152476e+00 2 0 0 -23 0 +P 46 -213 -4.0680312455968282e-01 -2.5441007810341781e-01 1.5500120461449101e+00 1.7845955709874386e+00 2 0 0 -24 0 +P 47 111 1.0967169427730127e-01 -4.8556656735419729e-01 1.5733209930176220e+00 1.6557056862038457e+00 2 0 0 -25 0 +P 48 211 -2.0496925059681456e-01 3.5773003283645954e-01 8.1445332873483611e+00 8.1561562898039721e+00 1 0 0 0 0 +P 49 -211 2.9397211730379580e-01 -2.7463569397919968e-01 7.6207890473349726e+00 7.6326764544974779e+00 1 0 0 0 0 +P 50 223 -2.5509337878352928e-01 2.6149346255806938e-01 1.3907466962922905e+02 1.3907740332277268e+02 2 0 0 -26 0 +P 51 213 -3.6699974497245429e-02 -1.8001381623673610e-01 1.8723285347838268e+02 1.8723606959241326e+02 2 0 0 -27 0 +P 52 311 -2.0826395264017022e-01 -3.8873428077532614e-02 7.7769704741499027e+02 7.7769723550906360e+02 2 0 0 -28 0 +P 53 -321 2.9365263740186642e-01 -1.5350918725169876e-01 9.7138769739024906e+02 9.7138787931445381e+02 1 0 0 0 0 +P 54 2212 7.1090572027448316e-03 3.1651971253956951e-01 1.4534367235662871e+03 1.4534370608997706e+03 1 0 0 0 0 +P 55 113 4.7933697015449042e-02 -2.3601649041716902e-01 2.2178322239381737e+03 2.2178323944788513e+03 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 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 0 0 -30 0 +P 58 213 3.1593705763741533e+00 -9.7376654979652177e-01 -1.3392766193005166e+01 1.3814953051794681e+01 2 0 0 -31 0 +P 59 113 9.3523891341231291e-01 -2.2812398079724634e+00 -1.3732909593833934e+01 1.3984515733375392e+01 2 0 0 -32 0 +P 60 -213 1.0751687044528315e+00 -1.8471396089324810e+00 -1.0247617174688440e+01 1.0494828426213823e+01 2 0 0 -33 0 +P 61 211 1.0910074909423624e+00 -1.6408161014628322e+00 -1.4658262289795276e+01 1.4790764279287474e+01 1 0 0 0 0 +P 62 2112 1.8670048695663655e+00 -2.5858616180543601e+00 -1.5263383116042007e+01 1.5621332959215980e+01 1 0 0 0 0 +P 63 111 3.8895094638623819e-02 -6.8899625648955701e-02 -4.4678720222461937e-01 4.7339031599011050e-01 2 0 0 -34 0 +P 64 -2214 1.1524734474439160e+00 -3.9869224263739502e+00 -2.0153218017127685e+01 2.0618217127901126e+01 2 0 0 -35 0 +P 65 221 8.6263433165107117e-01 -6.4053962327754621e-01 -6.5229053808755504e+00 6.6334323776976012e+00 2 0 0 -36 0 +P 66 211 2.7687726878260471e-01 -4.4854367382269267e-01 -5.0833022953049456e+00 5.1124646169579897e+00 1 0 0 0 0 +P 67 -211 3.6317039313948940e-01 -6.1629174309821100e-01 -4.9883909457620250e+00 5.0413522253185885e+00 1 0 0 0 0 +P 68 111 -3.8693244171548362e-03 -6.3946170356676169e-01 -1.8470751031459909e+00 1.9592938215238989e+00 2 0 0 -37 0 +P 69 321 3.3833666963563275e-01 5.4299664689447102e-01 -3.1762619017227935e+00 3.2774376712447890e+00 1 0 0 0 0 +P 70 -323 -1.3745959258300033e+00 1.5798806728773855e+00 -2.7160124589975716e+00 3.5482417244696087e+00 2 0 0 -38 0 +P 71 211 -1.0294428816501737e+00 9.5496503398017951e-01 -2.7208975408319782e+00 3.0650406319183578e+00 1 0 0 0 0 +P 72 -211 -3.6822566989713057e-01 1.1035290774262612e+00 -1.2321916930023735e+00 1.7003360614597640e+00 1 0 0 0 0 +P 73 213 -1.6161918040002012e+00 1.2552448784983889e+00 -1.7897181449593560e+00 2.7573168640824823e+00 2 0 0 -39 0 +P 74 2112 -3.2740868421481886e+00 2.8787612972034244e+00 -6.5131664185879137e+00 7.8937342137498883e+00 1 0 0 0 0 +P 75 -2112 -2.6281380275611408e+00 3.1441450497976531e+00 -4.6117236755707163e+00 6.2404763144169966e+00 1 0 0 0 0 +P 76 313 -1.3494277917651111e+01 1.0422303713166622e+01 -2.0123003719808548e+01 2.6390257574927315e+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 2 0 0 -13 0 +P 77 92 9.7760773719237326e-01 4.2292788741631151e+00 -6.2083226682664099e+03 7.2927476655854471e+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 0 0 0 0 +P 79 -213 8.1415453961843220e-01 -1.3658531520860595e-01 1.8147547255500226e+02 1.8147807889488487e+02 2 0 0 -41 0 +P 80 213 -3.1343969057550247e-01 -6.8751614116676532e-02 2.3490909782090895e+02 2.3491051292454674e+02 2 0 0 -42 0 +P 81 -211 2.4510416203644247e-01 1.9103572210561356e-01 4.9160055436805315e+01 4.9161235755746112e+01 1 0 0 0 0 +P 82 2212 5.9834549250678958e-02 2.2658407019457144e-01 9.6037237171125334e+00 9.6522940455458546e+00 1 0 0 0 0 +P 83 331 -4.4228289654992226e-01 -2.6644076626223800e-01 1.5250029814397761e+01 1.5288792292206974e+01 2 0 0 -43 0 +P 84 -2212 4.0600120601960499e-01 1.1341309506958630e-01 5.8544874327854846e+00 5.9441629522554207e+00 1 0 0 0 0 +P 85 211 3.1262473932432039e-01 6.7353189834058402e-01 1.8631926232668552e+00 2.0105586243668481e+00 1 0 0 0 0 +P 86 -213 -4.0230691978361560e-01 -7.2916784443047689e-01 1.2727585532551626e+00 1.6552834098551243e+00 2 0 0 -44 0 +P 87 111 -1.0918019607099445e-01 9.2778953753129487e-02 8.7863240603013404e-01 9.0041254700272333e-01 2 0 0 -45 0 +P 88 211 -1.3970682706965667e-01 -6.9289838877254262e-02 1.0396580156519743e-01 2.3368301627760824e-01 1 0 0 0 0 +P 89 311 3.4248690127551151e-01 -3.5064896127775863e-01 6.5641413010847338e-01 9.5854416210028415e-01 2 0 0 -46 0 +P 90 -311 3.4345529704259643e-02 4.2425337653113343e-01 -1.1177846011983017e+00 1.2954877021742741e+00 2 0 0 -47 0 +P 91 221 -2.2059027947856552e-02 6.8777216446446396e-02 -2.5995327345599137e+00 2.6575343547665886e+00 2 0 0 -48 0 +P 92 -211 7.8520032410541465e-02 8.6029665973671565e-02 -1.7637091485257692e-01 2.5328439237984829e-01 1 0 0 0 0 +P 93 211 9.1990315018622704e-02 -2.4519229699912645e-01 -1.7635783993765985e+00 1.7883707770517441e+00 1 0 0 0 0 +P 94 113 2.3916994123891654e-02 3.2774863600096921e-01 -2.1964548095601693e+00 2.3336785531389950e+00 2 0 0 -49 0 +P 95 -211 -2.2116319795837658e-01 -7.0985668931981008e-02 -1.4721936080260471e+02 1.4721961019863397e+02 1 0 0 0 0 +P 96 213 5.5418235924584147e-01 1.7536325683372644e+00 -1.7140605218064102e+03 1.7140616606041549e+03 2 0 0 -50 0 +P 97 113 -6.1783849261428873e-02 1.4046889857876368e-01 -1.0047869804122965e+02 1.0048130714945734e+02 2 0 0 -51 0 +P 98 221 5.3919364001689940e-01 -4.4261608605164110e-01 -1.6979921711826634e+02 1.6980153260279991e+02 2 0 0 -52 0 +P 99 1114 -2.0186593100368855e-01 5.2273469161686792e-01 -6.6287974334912337e+02 6.6288096452226989e+02 2 0 0 -53 0 +P 100 223 5.4569932897003848e-01 4.9089417068522490e-01 -5.5137637879476370e+02 5.5137741731893857e+02 2 0 0 -54 0 +P 101 -2114 -3.7116038230162590e-01 4.2691750743684054e-01 -3.0183378648302647e+02 3.0183654713177589e+02 2 0 0 -55 0 +P 102 213 1.2718626065914557e-01 -4.3273443653089196e-02 -2.0958549985729146e+01 2.0973175423021143e+01 2 0 0 -56 0 +P 103 111 -4.7798486804409918e-01 9.0585383083558874e-02 -8.5228987495888582e+00 8.5378391845859252e+00 2 0 0 -57 0 +P 104 113 1.5181900039448251e-01 4.9030903333713738e-02 -9.3885028370079510e+01 9.3887609752929094e+01 2 0 0 -58 0 +P 105 -211 -2.9881524415693622e-01 -4.2409333153494246e-02 -1.6592385765903004e+00 1.6922297540891829e+00 1 0 0 0 0 +P 106 2224 -3.7739651006785435e-01 -2.1399552580528344e-01 -1.0092898709838120e+02 1.0093591655187358e+02 2 0 0 -59 0 +P 107 -213 5.1568029838271176e-02 1.0489281204351286e+00 -2.8682166939055642e+03 2.8682169478887886e+03 2 0 0 -60 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 2 0 0 -15 0 +P 33 21 -1.9264630307413937e+00 4.3605697082707904e+00 1.0934871286863569e+01 1.1928840599562703e+01 2 0 0 -15 0 +P 108 92 0 0 7.0645245230670666e+00 1.8069313876235451e+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 2 0 0 -61 0 +P 110 211 -3.8949504695687842e-01 6.3318573167586201e-01 2.8287487702745040e-01 8.0754476244672213e-01 1 0 0 0 0 +P 111 -3214 1.3070293253442316e-02 6.8191945199945314e-01 3.6368408201980333e+00 3.9512642278438408e+00 2 0 0 -62 0 +P 112 111 -5.1252162865341999e-01 2.2292822157692199e-01 -3.3826285438294201e-01 6.6709577338512560e-01 2 0 0 -63 0 +P 113 3312 -2.8307230829558164e-02 7.4361433324065440e-01 2.8196795987175673e+00 3.2015918392796796e+00 2 0 0 -64 0 +P 114 321 1.7310712184575286e-01 2.5372564212865023e-01 -3.7818935156200967e-02 5.8259248962174692e-01 1 0 0 0 0 +P 115 -211 -1.7176330612558119e-01 2.3528839325019374e-01 6.2378220828836273e-01 7.0245803405367480e-01 1 0 0 0 0 +P 116 -2114 -2.3785732100599724e-01 -4.3066782908091966e-01 9.2976032860807897e-02 1.3554702372103349e+00 2 0 0 -65 0 +P 117 2214 6.0515337633293520e-01 -9.5121595517125890e-01 -9.1396794922064373e-01 1.8612896641441454e+00 2 0 0 -66 0 +P 118 221 1.5610406892865505e-01 -4.1180279740384002e-01 2.4550193443675206e-01 7.4425985152895202e-01 2 0 0 -67 0 +P 119 223 -1.6654532327853938e-01 2.6409934496084531e-01 9.2003618590961966e-01 1.2501855628480039e+00 2 0 0 -68 0 +P 120 -213 8.3236400701983415e-01 -1.4204480697325057e+00 -9.2271825719703426e-01 2.0310196515416505e+00 2 0 0 -69 0 +V -17 0 0 0 0 0 5 1 0 +P 37 21 -2.4549304752250420e+00 1.9106102320850373e+00 1.4255136986869084e+02 1.4258530838251687e+02 2 0 0 -17 0 +P 38 21 2.4549304752250420e+00 -1.9106102320850373e+00 3.9326543344547179e+02 3.9327773679443379e+02 2 0 0 -17 0 +P 34 21 -1.2874686984272923e+00 -4.5354152466705555e+00 2.9174823306294378e+01 2.9553305772157866e+01 2 0 0 -17 0 +P 35 21 -1.5824732804086550e+00 -3.3756291283162567e+00 1.8613755585412271e+01 1.8983439906629435e+01 2 0 0 -17 0 +P 36 21 1.2874686984272923e+00 4.5354152466705555e+00 7.6246561156214881e+01 7.6392183207822896e+01 2 0 0 -17 0 +P 121 92 -1.5824732804086552e+00 -3.3756291283162563e+00 6.5985194336208417e+02 6.6079197406356082e+02 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 2 0 0 -70 0 +P 123 211 1.4542095804863758e-01 8.3928851259360959e-01 1.4793046030567339e+01 1.4818206474124844e+01 1 0 0 0 0 +P 124 -211 1.6346163015651471e-01 6.7768762034861363e-01 3.6385442177273340e+01 3.6392387424238997e+01 1 0 0 0 0 +P 125 111 -3.2068447332136946e-01 3.8594024532024324e-01 2.9733721957725852e+00 3.0184350613158366e+00 2 0 0 -71 0 +P 126 321 3.3497849686451375e-01 1.2223626454055394e+00 2.9996662117980971e+01 3.0027483414541404e+01 1 0 0 0 0 +P 127 221 -5.8214749389140619e-01 5.7231243477632643e-01 4.5061968638670571e+01 4.5072687476149831e+01 2 0 0 -72 0 +P 128 -313 -9.2056140784737284e-02 1.1853320044069728e+00 4.0445501109361459e+01 4.0472952620159873e+01 2 0 0 -73 0 +P 129 -211 -6.8690343434950507e-02 -2.4724652780047213e-01 1.0978301805670297e+01 1.0982187374565884e+01 1 0 0 0 0 +P 130 3222 -5.6571475378204539e-01 -1.8495675331422309e-02 7.6655798754955228e+01 7.6667114586566711e+01 2 0 0 -74 0 +P 131 -3222 8.9269875728812620e-01 -2.0156941201723866e-01 1.7491908481387679e+02 1.7492552236429151e+02 2 0 0 -75 0 +P 132 111 5.4105896816734045e-01 -3.9755607846732188e-01 3.4247692832522112e+01 3.4254539547244640e+01 2 0 0 -76 0 +P 133 221 4.7159087264181826e-01 1.2020772703630062e-01 4.8034580061584379e+01 4.8040164769118533e+01 2 0 0 -77 0 +P 134 223 -3.9429121872598855e-01 -3.4625309703953722e-01 2.6395512218946230e+01 2.6411912261172318e+01 2 0 0 -78 0 +P 135 213 3.9795313085803385e-01 -6.1677401758222283e-01 3.1845668885775709e+01 3.1863855985015093e+01 2 0 0 -79 0 +P 136 313 1.0265114771882194e-01 -2.2622249924026197e-01 2.3452325229467018e+01 2.3473299881761864e+01 2 0 0 -80 0 +P 137 -313 -5.5700154512051092e-01 -1.6396713032419616e+00 1.3646660379336359e+01 1.3785980020161174e+01 2 0 0 -81 0 +P 138 111 -5.4077088808668135e-02 -2.3831882224430384e-01 3.8434254226100957e+00 3.8535514492654079e+00 2 0 0 -82 0 +P 139 -213 -5.8266223094836611e-01 -1.4614386039001783e+00 9.6551877108618420e+00 9.8199075697669720e+00 2 0 0 -83 0 +P 140 111 -7.2162541386152523e-01 -9.6677069323893028e-01 7.6826305172722131e+00 7.7779444634529762e+00 2 0 0 -84 0 +P 141 323 -9.0562613680950854e-01 -1.6754637359482516e+00 1.0954221378986349e+01 1.1149779322154751e+01 2 0 0 -85 0 +P 142 -313 -3.2412782438111951e-02 -4.3364122365194685e-01 6.9269303072013768e+00 6.9998631630231944e+00 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 0 0 0 0 +P 144 -211 1.8531506706893134e-02 1.1294735671448289e-01 -1.0826952941544615e-01 2.1048182351323930e-01 1 0 0 0 0 +P 145 111 1.7687031218441127e-01 3.6700809031877518e-01 3.4467520160307075e-01 5.5045312306477356e-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 1 0 0 0 0 +P 147 211 1.9947470488272068e-01 -3.1529697057596912e-01 2.3407955759243465e-01 4.6203394001426124e-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 0 0 0 0 +P 149 -211 -6.6861426897547510e-02 -6.1023832547298297e-02 2.4621632999211213e-01 2.9714747954563148e-01 1 0 0 0 0 +P 150 111 -1.3106070854233884e-01 2.8593337821219544e-01 2.9804398527314574e-01 4.5385528933456026e-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 1 0 0 0 0 +P 152 211 1.8747123682644409e-01 2.8786942277955141e-02 2.7481107891332301e-01 3.6190477570274704e-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 1 0 0 0 0 +P 154 211 1.5980586075320719e-01 -1.3134046715429157e-01 1.6320686282669057e+00 1.6510348341923013e+00 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 155 -211 -3.7892725164608876e-01 -2.1323299448707161e-01 3.4834728880062177e-01 5.7435162617748858e-01 1 0 0 0 0 +P 156 111 -2.7875872913594103e-02 -4.1177083616346186e-02 1.2016647573442882e+00 1.2102439448099500e+00 2 0 0 -89 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 1 0 0 0 0 +P 158 22 4.5982890070555262e-02 -3.4094506991459012e-01 1.2397092182027323e+00 1.2865601084190099e+00 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 0 0 0 0 +P 160 211 -1.1685871788492098e-01 3.0883905152444485e-01 5.6084708578525380e+01 5.6085854309644873e+01 1 0 0 0 0 +P 161 111 -4.1631047557651339e-02 -1.2874234277955540e-01 6.9624511421666696e+01 6.9624773737809306e+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 0 0 0 0 +P 163 111 -5.3285294633266200e-01 -4.9076400014206613e-04 9.9538598315359692e+01 9.9540116067293155e+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 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 0 0 0 0 +P 166 -211 4.3023698600706616e-02 -4.3317947286873226e-01 6.8997695486606995e+02 6.8997710630247286e+02 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 2 0 0 -92 0 +P 168 22 1.1674953354169699e+00 -2.7288291403232995e-01 -4.4930199129953658e+00 4.6502406799609899e+00 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 0 0 0 0 +P 170 111 2.7306121861372836e+00 -7.6705071398434499e-01 -1.0368784994499388e+01 1.0750559593410056e+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 0 0 0 0 +P 172 211 2.6610359075821943e-01 -1.1315064916010875e+00 -4.2716621511963080e+00 4.4291867628733934e+00 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 0 0 0 0 +P 174 111 9.4437749042226293e-02 -8.2149919135419225e-01 -3.9179502857745612e+00 4.0065363410358232e+00 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 1 0 0 0 0 +P 176 22 7.0215709396855189e-02 -1.3441967011516463e-03 -3.0782979379073439e-01 3.1573918771055498e-01 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 1 0 0 0 0 +P 178 -211 1.3661267712066744e-01 -1.4613037293932616e+00 -6.8481648843881722e+00 7.0050634316725500e+00 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 2 0 0 -95 0 +P 180 111 4.1762967717743038e-01 -1.7457001757955024e-01 -2.2827569132806103e+00 2.3311130311135639e+00 2 0 0 -96 0 +P 181 111 2.3922967851484872e-01 -3.7578479703185902e-01 -2.8286977598559608e+00 2.8667395538794112e+00 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 1 0 0 0 0 +P 183 22 4.8894777854157266e-02 -3.6661152493506532e-01 -1.1812608522813814e+00 1.2378093191801220e+00 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 2 0 0 -98 0 +P 185 -211 -9.1358751268296934e-01 6.5680151488065541e-01 -1.2472094022546043e+00 1.6855389201237880e+00 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 0 0 0 0 +P 187 111 -1.3188671348400147e+00 8.7462138905242814e-01 -1.2634973141822292e+00 2.0295364389177188e+00 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 1 0 0 0 0 +P 189 -211 -3.3171297377828615e+00 2.5345084667162929e+00 -4.5201053575106149e+00 6.1545036431085274e+00 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 0 0 0 0 +P 191 111 1.5680949446327844e-01 -5.1801813994789669e-02 1.9047927380199486e+01 1.9049121494894198e+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 0 0 0 0 +P 193 111 -2.6281976757985070e-01 2.0439037285097228e-01 5.6390753552022026e+01 5.6391897959015616e+01 2 0 0 -101 0 +V -43 0 0 0 0 0 0 3 0 +P 194 211 -7.4549090353008274e-03 -4.7591526351828985e-02 3.6465918317571173e+00 3.6495797431193293e+00 1 0 0 0 0 +P 195 -211 4.1840956779000425e-02 1.1065370009422846e-02 2.3223399295776672e+00 2.3269326680177986e+00 1 0 0 0 0 +P 196 221 -4.7666894429362194e-01 -2.2991460991983190e-01 9.2810980530629781e+00 9.3122798810698342e+00 2 0 0 -102 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 0 0 0 0 +P 198 111 -4.3446677963083974e-01 -7.8069277641445167e-01 1.0468480002047293e+00 1.3828784941856385e+00 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 1 0 0 0 0 +P 200 22 -1.2005583534141563e-01 1.1792995056802119e-01 7.1789015938312140e-01 7.3735144794027918e-01 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 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 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 0 0 0 0 +P 204 211 -9.9161576416783720e-02 -1.0551044999043914e-01 -9.9295638064943059e-01 1.0131177779839140e+00 1 0 0 0 0 +P 205 111 7.3326975328856361e-02 7.3893963973200610e-02 -6.2198799242777869e-01 6.4492311661692658e-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 0 0 0 0 +P 207 211 1.6448440148163432e-01 -1.0315875828041352e-01 -1.2761807265788860e+00 1.2983889554105663e+00 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 0 0 0 0 +P 209 111 6.9716897678052181e-01 1.3778964005077581e+00 -1.3537396883659865e+03 1.3537405758563607e+03 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 0 0 0 0 +P 211 -211 2.2899627357348501e-01 2.5707148863093887e-01 -6.0357280793668032e+01 6.0358424015494023e+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 0 0 0 0 +P 213 211 -1.1274188888036062e-02 -1.4725853542175005e-01 -4.0564276257440682e+01 4.0564785223866963e+01 1 0 0 0 0 +P 214 111 2.8295515860935339e-01 -1.6630421945240220e-01 -6.5321241841682792e+01 6.5322205841927925e+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 1 0 0 0 0 +P 216 -211 1.6585355152244120e-02 7.4750230739152670e-02 -1.6951937808817900e+02 1.6951945283612403e+02 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 0 0 0 0 +P 218 211 3.7148306018183180e-01 3.1989607288807170e-01 -3.3769988231507233e+02 3.3770026699509737e+02 1 0 0 0 0 +P 219 111 -2.4335846251811649e-02 -9.4387977975935594e-02 -7.7609371571857679e+01 7.7609550164286290e+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 1 0 0 0 0 +P 221 111 5.8313103641705534e-02 -1.8636801168062198e-03 -5.9184340215263624e+01 5.9184522894147172e+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 0 0 0 0 +P 223 111 -8.9638781795857811e-02 2.6362743774593289e-01 -4.9839795421006370e+00 4.9935764952198349e+00 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 1 0 0 0 0 +P 225 22 -1.0144310122609973e-01 -1.3397792516092778e-02 -1.1285875580297213e+00 1.1332166958574881e+00 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 0 0 0 0 +P 227 -211 -1.9314214957996700e-01 -1.3047251766359474e-01 -4.5836001434910052e+01 4.5836806545545755e+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 1 0 0 0 0 +P 229 211 -4.5724156530593883e-02 -8.5894814744234493e-02 -1.9645435027066917e+01 1.9646171784989004e+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 0 0 0 0 +P 231 111 1.4339741172950205e-03 6.4265897102186520e-01 -2.2818245590395259e+03 2.2818246535323738e+03 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 1 0 0 0 0 +P 233 211 3.2072488781638424e-02 7.4310750623015523e-02 1.9183184940054263e-01 2.5065908229951850e-01 1 0 0 0 0 +P 234 -211 3.6277635485791552e-03 7.2109035769672120e-02 1.0378590046087431e-01 1.8831933448924135e-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 2 0 0 -111 0 +P 236 -211 -7.0161828819345753e-02 1.5410727715577854e-01 3.5732234516368805e-01 4.1932180762383553e-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 1 0 0 0 0 +P 238 22 -5.0646985754231766e-01 2.2227734416277739e-01 -3.0170677841869392e-01 6.3003643900236450e-01 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 2 0 0 -112 0 +P 240 -211 -8.0238418068374492e-02 2.4430819712669047e-01 5.1410251659835626e-01 5.9152842821809692e-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 1 0 0 0 0 +P 242 111 -2.6825282256905353e-01 -1.8661431245093574e-01 1.4664249568572760e-01 3.8276376574688753e-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 1 0 0 0 0 +P 244 211 9.9423550289329768e-02 -3.6368958364413451e-01 -2.5949939376894660e-01 4.7851319299453970e-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 2 0 0 -114 0 +P 246 111 1.4009134464458384e-01 -4.0884284586234554e-02 6.9315279214559475e-02 2.1052628791447428e-01 2 0 0 -115 0 +P 247 111 7.8135734516086748e-03 -1.4352575440229270e-01 1.8309356614861544e-01 2.6907907475656356e-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 0 0 0 0 +P 249 -211 9.8183549295323566e-02 -9.0366883444205459e-02 2.8497224847354313e-01 3.4423124535072736e-01 1 0 0 0 0 +P 250 111 -8.9081241279593756e-02 -3.5896718271989543e-02 6.1330119536645196e-02 1.7664944351169345e-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 0 0 0 0 +P 252 111 5.1011684333153062e-01 -6.1963457427255142e-01 -8.1190431695912335e-01 1.1495975033816452e+00 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 0 0 0 0 +P 254 111 2.5831045357956911e-01 -2.5003056765727244e-01 6.3219226034303873e+00 6.3335743920282130e+00 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 1 0 0 0 0 +P 256 22 -2.8721994320842464e-01 2.5531471698636882e-01 2.2569730841935161e+00 2.2894559186104617e+00 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 0 0 0 0 +P 258 211 -1.2411261561070656e-01 1.6023975462299647e-01 1.1180974600038915e+01 1.1183682466519279e+01 1 0 0 0 0 +P 259 111 -2.0433372632142410e-01 1.6817746660681263e-01 2.1939337867558944e+01 2.1941349128968632e+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 2 0 0 -121 0 +P 261 111 1.2976008347469933e-01 3.6468272062361839e-01 6.3463218449327279e+00 6.3595480755990161e+00 2 0 0 -122 0 +V -74 0 -1.0001014862923057e+01 -3.2697666563000749e-01 1.3551631410569682e+03 1.3553631885179477e+03 0 2 0 +P 262 2112 -2.6701945902112212e-01 3.2379757227036086e-02 5.3708962497965480e+01 5.3717853570604774e+01 1 0 0 0 0 +P 263 211 -2.9869529476092338e-01 -5.0875432558458403e-02 2.2946836256989762e+01 2.2949261015961937e+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 1 0 0 0 0 +P 265 111 3.3211251027235189e-01 -1.9314217307222326e-01 4.9488125953721443e+01 4.9489801299159566e+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 1 0 0 0 0 +P 267 22 3.2610470661881691e-01 -1.8506440846382186e-01 1.6385595973758694e+01 1.6389885555738825e+01 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 2 0 0 -124 0 +P 269 111 2.1168570079863799e-01 1.5888476958365427e-02 1.4419743327632153e+01 1.4421937474376135e+01 2 0 0 -125 0 +P 270 111 4.2338651776527382e-02 5.9397905537924622e-02 5.3617926069090789e+00 5.3639873445526884e+00 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 0 0 0 0 +P 272 -211 6.1921227808798385e-02 6.5909961337744488e-02 6.8540815103096717e+00 6.8560988540368788e+00 1 0 0 0 0 +P 273 111 -2.9104043237975502e-01 -1.7136327052337760e-01 1.4152408887417174e+01 1.4157081861061936e+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 0 0 0 0 +P 275 111 4.5010499856196384e-01 -1.5099879120799736e-01 2.2489630496284530e+01 2.2495046001386349e+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 1 0 0 0 0 +P 277 -211 3.0617347118293892e-01 9.2311657222136315e-02 1.0906099986540170e+01 1.0911679996124647e+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 1 0 0 0 0 +P 279 211 1.4520040899471007e-01 -3.8694870159807759e-01 3.1236150576917168e+00 3.1539282284127990e+00 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 1 0 0 0 0 +P 281 22 -6.6582630892394315e-02 -6.0171731654043326e-02 8.2969235123366514e-01 8.3453177394419598e-01 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 0 0 0 0 +P 283 111 -6.3457866147058040e-01 -5.6503110734722573e-01 5.4665917789662455e+00 5.5338770774318045e+00 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 1 0 0 0 0 +P 285 22 -1.9494804319896730e-01 -3.0662827210148269e-01 1.9697558616883879e+00 2.0029887147597236e+00 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 2 0 0 -130 0 +P 287 211 -1.9216241447018820e-02 -3.0070888016722131e-02 8.4870724776096818e-01 8.6084685022567276e-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 1 0 0 0 0 +P 289 211 2.6855393914793912e-01 -1.0507833884512403e-01 1.6147842692616270e+00 1.6462596079237115e+00 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 1 0 0 0 0 +P 291 22 1.8558634600392554e-01 2.6293302518989264e-01 2.3144817197854431e-01 3.9641433358395012e-01 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 1 0 0 0 0 +P 293 22 3.5575337961664942e-03 8.2885029894210052e-02 1.4226668800229234e-01 1.6468878147104177e-01 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 1 0 0 0 0 +P 295 22 -4.6569336840087371e-02 -9.8341969562946805e-03 1.3844765075107546e-01 1.4640070546958606e-01 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 1 0 0 0 0 +P 297 22 4.2184079505536640e-02 -6.1793889286651952e-03 1.5759481117893948e+01 1.5759538787244599e+01 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 1 0 0 0 0 +P 299 22 -3.6407780625288773e-02 3.6660625408091146e-02 1.0135847529573983e+01 1.0135979216174251e+01 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 2 0 0 -131 0 +P 301 211 8.8637402086832295e-01 -3.1039363085465904e-01 -3.8525417889436788e+00 3.9678156624776282e+00 1 0 0 0 0 +P 302 -211 1.5690167489104487e+00 -1.3700604791982612e-01 -6.5896015529868883e+00 6.7766446437418670e+00 1 0 0 0 0 +P 303 111 3.6836236547444208e+00 -1.1723870494551110e+00 -1.6622326812590639e+01 1.7066444939954319e+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 1 0 0 0 0 +P 305 22 1.9131827501388010e+00 -6.0120664425247261e-01 -7.3123993668507001e+00 7.5824074122168170e+00 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 1 0 0 0 0 +P 307 22 3.7793281528448693e-02 -4.2957481970880629e-01 -1.7226094181319094e+00 1.7757663318391017e+00 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 1 0 0 0 0 +P 309 22 1.1951445344448942e-01 -1.1271539078465091e-01 -1.0766703872758272e+00 1.0891315745760710e+00 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 1 0 0 0 0 +P 311 22 3.1920037468237635e-03 -2.4896877670223756e-02 -5.8950439232089813e-02 6.4071816669282453e-02 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 1 0 0 0 0 +P 313 22 1.4586170170862600e-01 -1.4517528675274019e-01 -1.5935857777240650e+00 1.6068189477578019e+00 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 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 1 0 0 0 0 +P 316 22 -7.3379340537514304e-01 5.5669727479453446e-01 -7.7410338128069411e-01 1.2031627747091891e+00 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 1 0 0 0 0 +P 318 22 -1.2379688754138632e-03 -1.2520220168175604e-02 1.6061130963062439e-01 1.6110332479890169e-01 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 1 0 0 0 0 +P 320 22 -5.3403805297841091e-02 6.5329308994338591e-03 1.7259420536092140e+01 1.7259504392863857e+01 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 0 0 0 0 +P 322 211 -1.8066085545057711e-01 -1.2250346517093816e-01 3.1803689410937466e+00 3.1909045473101791e+00 1 0 0 0 0 +P 323 111 -2.3585617180557428e-01 -1.8672286710230040e-01 3.8096424514449647e+00 3.8238839902812538e+00 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 1 0 0 0 0 +P 325 22 -1.2939964609640288e-02 -2.9314140567959529e-02 7.5559281487998032e-03 3.2921931467134069e-02 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 1 0 0 0 0 +P 327 22 3.8108464736028018e-02 -3.4021362056526450e-02 -1.2301819660984770e-01 1.3320354671651011e-01 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 1 0 0 0 0 +P 329 22 2.4537375012384985e-01 3.5996480717567148e-01 -4.0033810407170330e+02 4.0033834109995706e+02 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 1 0 0 0 0 +P 331 22 6.1281753021005136e-02 -6.9147018899507251e-02 -9.7734815197710532e+00 9.7739182409503673e+00 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 1 0 0 0 0 +P 333 22 -6.3511087209696176e-03 -7.3161221563865633e-02 -7.4895266735079133e+01 7.4895302738019382e+01 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 1 0 0 0 0 +P 335 22 -1.1335839468064239e-02 -3.1698743443086888e-02 -4.2224888317224256e+01 4.2224901737169894e+01 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 1 0 0 0 0 +P 337 22 -2.7790706220732229e-02 6.9132579659654650e-02 -2.5391801684161410e+00 2.5402731279530690e+00 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 1 0 0 0 0 +P 339 22 -4.9776175188644113e-02 1.0585874910747640e-01 -4.4078164060048624e+02 4.4078165612261887e+02 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 1 0 0 0 0 +P 341 211 -1.6636767295654004e-01 1.1297760048730578e-01 4.6493117045607391e-01 5.2543593232524399e-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 1 0 0 0 0 +P 343 -211 -6.7996745488604390e-02 5.5989719598877254e-02 1.9771880117508914e-01 2.5754788940295620e-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 1 0 0 0 0 +P 345 22 -2.6060566020735898e-01 -1.3928870578333724e-01 1.5565617169762194e-01 3.3398427729231522e-01 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 1 0 0 0 0 +P 347 22 5.4701295373774099e-02 -2.0276896501862660e-01 -1.8308024747732833e-02 2.1081429899429852e-01 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 1 0 0 0 0 +P 349 22 1.5554508615043744e-01 -3.9851490465752641e-02 2.3644315392168085e-02 1.6230055073305602e-01 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 1 0 0 0 0 +P 351 22 -4.2957833154388850e-02 -1.3948045792591390e-01 1.2906121320666405e-01 1.9482548685148704e-01 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 1 0 0 0 0 +P 353 22 1.3626247902199785e-02 3.7184217333022761e-02 1.4089970909410013e-02 4.2034128167355814e-02 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 1 0 0 0 0 +P 355 22 4.9004630498621926e-01 -5.8336201340606209e-01 -8.0353626423030966e-01 1.1073062573872792e+00 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 1 0 0 0 0 +P 357 22 2.7157220269959242e-01 -2.5180080050229070e-01 6.0526227086513051e+00 6.0639423445225926e+00 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 1 0 0 0 0 +P 359 22 -7.6911270929779313e-02 3.6347974549852820e-03 9.0894091818038234e+00 9.0897353003048575e+00 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 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 1 0 0 0 0 +P 362 22 1.1330261036987670e-01 2.4110641392544135e-01 3.3249131073885452e+00 3.3355684607030280e+00 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 1 0 0 0 0 +P 364 22 4.3636955441329298e-02 -8.7163582461208516e-03 1.2809612421069319e+01 1.2809689712744593e+01 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 1 0 0 0 0 +P 366 22 1.8472596630477001e-01 1.1434021428166474e-02 1.5428621653813121e+01 1.5429731707193888e+01 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 1 0 0 0 0 +P 368 22 5.7849775424257200e-03 -5.1827386375097220e-04 2.3318613186452682e-02 2.4031069345820253e-02 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 1 0 0 0 0 +P 370 22 4.6990507384627421e-02 -2.9539925853952553e-02 3.0051429349701460e+00 3.0056554650532892e+00 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 1 0 0 0 0 +P 372 22 -1.8993147600415941e-01 -1.1806799940949568e-01 1.1549236995418905e+01 1.1551402044531839e+01 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 1 0 0 0 0 +P 374 22 4.4907023564857852e-02 1.0003370978663674e-02 4.0502831854952213e+00 4.0505444807953541e+00 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 1 0 0 0 0 +P 376 22 -3.5818511152162880e-01 -2.9636370047210259e-01 2.5643110819839920e+00 2.6061119205166898e+00 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 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 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 1 0 0 0 0 +P 380 22 7.9146423222132656e-01 -2.5688044426217738e-01 -3.8276810970475545e+00 3.9170838354859354e+00 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 1 0 0 0 0 +P 382 22 -1.2096730624219609e-01 -5.0536457444721711e-02 9.9375836751438251e-01 1.0023685528364348e+00 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 2 0 0 -135 0 +P 384 111 -6.1583799664525751e-01 -1.3314618568279268e+00 8.4240635221834612e+00 8.5519069768374898e+00 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 1 0 0 0 0 +P 386 22 -1.6927373800586196e-01 -1.0875575392471017e-01 6.4664044363374906e-01 6.7721877981422007e-01 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 1 0 0 0 0 +P 388 22 -3.1472533914843293e-01 -6.1571004774675597e-01 4.3276873468824339e+00 4.3825824207155222e+00 1 0 0 0 0 +HepMC::IO_Ascii-END_EVENT_LISTING diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/GNUmakefile new file mode 100644 index 0000000000..6b8f84d80a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/GNUmakefile @@ -0,0 +1,13 @@ +include $(G4INSTALL)/config/sys/$(G4SYSTEM).gmk + +%.o: %.f + @echo "Compiling $< with $(FC) ..." + $(FC) -c $(FCFLAGS) -o $@ $< + +initpydata.o : initpydata.f + +.PHONY: clean + +clean: + @rm initpydata.o + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f new file mode 100644 index 0000000000..01dc39c5e9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f @@ -0,0 +1,11 @@ +c +c Matt.Dobbs@Cern.CH, December 1999 +c EXTERNAL statement links PYDATA on most machines. +c (Often necessary for the initialization of Pythia) +c + subroutine initpydata + EXTERNAL PYDATA + return + end + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc new file mode 100644 index 0000000000..524f92d0c0 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc @@ -0,0 +1,102 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: hepmcEx02.cc,v 1.2 2002/05/28 14:19:07 murakami Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - example of HepMC-interface +// +// -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.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) +{ + G4RunManager* runManager= new G4RunManager; + + runManager-> SetUserInitialization(new H02DetectorConstruction); + runManager-> SetUserInitialization(new H02PhysicsList); + + runManager-> Initialize(); + + runManager-> SetUserAction(new H02PrimaryGeneratorAction); + runManager-> SetUserAction(new H02EventAction); + runManager-> SetUserAction(new H02SteppingAction); + +#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 { + G4UImanager* UImanager= G4UImanager::GetUIpointer(); + G4String command= "/control/execute "; + G4String fileName= argv[1]; + UImanager-> ApplyCommand(command+fileName); + } + +#ifdef G4VIS_USE + delete visManager; +#endif + + delete runManager; + + return 0; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.in b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.in new file mode 100644 index 0000000000..e9614c8430 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out new file mode 100644 index 0000000000..1cd5b2ab93 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out @@ -0,0 +1,2108 @@ +********************************************** + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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. + +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. + +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 +IO_Ascii: unformated ascii file IO for machine reading. + File openmode: 1 file state: 0 bad:0 eof:0 fail:0 good:0 +________________________________________________________________________________ +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 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=2) +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) + +________________________________________________________________________________ +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 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 + 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 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 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 + 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 + 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 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 + 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 + 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 + 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 + 53 -423 +1.80e+00,-7.41e-01,-9.90e+00,+1.03e+01 2 -21 + 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 + 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 +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 + 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 + 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 + 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 + 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 + 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 + 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) + 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 + 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 + 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) + 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 + 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 + 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 + 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 + 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 + 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 + 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 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 387 22 -3.78e-03,+6.83e-02,+3.46e-01,+3.53e-01 1 (nil) + 388 113 +8.30e-02,-2.83e-01,+1.61e+01,+1.61e+01 2 -191 +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) + 396 -14 -1.31e+00,+1.05e+00,-1.23e+01,+1.24e+01 1 (nil) + 397 323 -2.16e+01,+1.35e+01,-2.09e+02,+2.11e+02 2 -192 + 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 423 22 -3.68e-01,+1.74e-01,+3.63e+00,+3.66e+00 1 (nil) + 424 211 -2.05e-01,+1.05e-01,+1.26e+00,+1.28e+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 548 22 -7.69e-03,-3.50e-03,-3.43e+00,+3.43e+00 1 (nil) + 549 11 +3.80e-02,-5.45e-02,-1.98e+00,+1.99e+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=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) +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) + +________________________________________________________________________________ +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 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 + 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 + 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 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 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 + 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 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) +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 + 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+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 + 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 + 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 + 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 + 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 + 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) + 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 + 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 + 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) +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 + 32 21 +3.00e+00,-2.35e+00,+2.97e+01,+3.00e+01 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 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) + 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) + 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 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 + 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 +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 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 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 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 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 159 211 +1.18e-04,-3.58e-01,-6.34e+00,+6.36e+00 1 (nil) + 160 111 +4.80e-01,+2.17e-01,-7.34e+00,+7.36e+00 2 -80 +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 + 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) +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 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 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 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 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 257 22 +3.37e-01,+1.15e-01,-8.96e-01,+9.65e-01 1 (nil) + 256 22 +1.21e-01,-3.91e-02,-3.40e-01,+3.63e-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 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 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=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 : 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.in b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.in new file mode 100644 index 0000000000..73f5852bb4 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out new file mode 100644 index 0000000000..070a6d888e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out @@ -0,0 +1,421 @@ +********************************************** + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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. + +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. + +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=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) +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) + + 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) + + 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) + + 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) +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) + + 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) + + 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) + + 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) + + 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) + + 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) + +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/include/H02DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02DetectorConstruction.hh new file mode 100644 index 0000000000..f8d5b4f5b2 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:10:50 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/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh new file mode 100644 index 0000000000..dfbaff3911 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: H02EMPhysics.hh,v 1.1 2002/05/28 14:10:50 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 +// ------------------------------------------------------------ +#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/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.hh new file mode 100644 index 0000000000..5320f12e00 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02EventAction.hh +// $Id: H02EventAction.hh,v 1.1 2002/05/28 14:10:51 murakami Exp $ +// +// ==================================================================== +#ifndef H02_EVENT_ACTION_H +#define H02_EVENT_ACTION_H + +#include "G4UserEventAction.hh" + +class H02EventAction : public G4UserEventAction { +public: + H02EventAction(); + ~H02EventAction(); + + virtual void BeginOfEventAction(const G4Event* anEvent); + virtual void EndOfEventAction(const G4Event* anEvent); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.hh new file mode 100644 index 0000000000..4dcf49fd3e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02Field.hh +// $Id: H02Field.hh,v 1.1 2002/05/28 14:10:51 murakami Exp $ +// +// ==================================================================== +#ifndef H02_FIELD_H +#define H02_FIELD_H + +#include "globals.hh" +#include "G4MagneticField.hh" + +class H02Field : public G4MagneticField { +public: + H02Field() { } + ~H02Field() { } + + void GetFieldValue(const G4double Point[3], G4double* Bfield ) const; + +}; + +#endif + diff --git a/source/track/include/G4VEvtBiasMechanism.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh similarity index 53% rename from source/track/include/G4VEvtBiasMechanism.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh index 1c71a97cb4..52e867ec18 100644 --- a/source/track/include/G4VEvtBiasMechanism.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh @@ -21,72 +21,57 @@ // ******************************************************************** // // -// $Id: G4VEvtBiasMechanism.hh,v 1.4 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: H02GeneralPhysics.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 // -// -// ------------------------------------------------------- -// Class Description -// This class is a base class for all "event biasing mechanism". -// -// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige // ------------------------------------------------------------ -// Implemented for the new scheme 17 Nov. 1998 H.Kurahige -// - -#ifndef G4VEvtBiasMechanism_h -#define G4VEvtBiasMechanism_h 1 +#ifndef H02GeneralPhysics_h +#define H02GeneralPhysics_h 1 #include "globals.hh" #include "G4ios.hh" -class G4Step; -class G4VParticleChange; -class G4ParticleDefinition; +#include "G4VPhysicsConstructor.hh" -class G4VEvtBiasMechanism + +#include "G4Decay.hh" + +class H02GeneralPhysics : public G4VPhysicsConstructor { -public: // with description + public: + H02GeneralPhysics(const G4String& name = "general"); + virtual ~H02GeneralPhysics(); - // constructors - G4VEvtBiasMechanism(const G4String& name = ""); - G4VEvtBiasMechanism(const G4VEvtBiasMechanism& right); + 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(); -public: - //destructors - virtual ~G4VEvtBiasMechanism(); - - -public: // with description - // pure virtual functions - - // ApplyMath method will be invoked in G4VParticleChange::UpdateStepInfo() - // if G4VParticleChange::fUseEB is set - virtual G4VParticleChange* ApplyMath( G4VParticleChange*, const G4Step& ) =0; - - // IsApplicable method returns 'true' if this Event Bias Mechanism is - // valid for the particle type - virtual G4bool IsApplicable(G4ParticleDefinition*) const = 0; - - - // name of the biasing mechanism - const G4String& GetName(){ return theEBName;} - - // Set/Get Verbose level - G4int GetVerboseLevel() const { return verboseLevel; } - void SetVerboseLevel(G4int value) { verboseLevel = value; } - - private: - G4String theEBName; - - private: - G4int verboseLevel; - + protected: + G4Decay fDecayProcess; }; + #endif + + + + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh new file mode 100644 index 0000000000..bbdf382b2b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh @@ -0,0 +1,331 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * 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 +// ------------------------------------------------------------ +#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 + +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; + G4HEPionPlusInelastic* theHEPionPlusModel; + G4MultipleScattering thePionPlusMult; + G4hIonisation thePionPlusIonisation; + + // Pi - + G4PionMinusInelasticProcess thePionMinusInelastic; + G4LEPionMinusInelastic* theLEPionMinusModel; + G4HEPionMinusInelastic* theHEPionMinusModel; + G4MultipleScattering thePionMinusMult; + G4hIonisation thePionMinusIonisation; +#ifdef TRIUMF_STOP_PIMINUS + G4PionMinusAbsorptionAtRest thePionMinusAbsorption; +#else + G4PiMinusAbsorptionAtRest thePionMinusAbsorption; +#endif + + // 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/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh new file mode 100644 index 0000000000..9822e9abe6 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/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 +// ------------------------------------------------------------ +#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/include/H02MuonHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonHit.hh new file mode 100644 index 0000000000..6b35201279 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:10:52 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/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh new file mode 100644 index 0000000000..26845eb912 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:10:52 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 +// ------------------------------------------------------------ +#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/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.hh new file mode 100644 index 0000000000..fd84f76115 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02MuonSD.hh +// $Id: H02MuonSD.hh,v 1.1 2002/05/28 14:10:52 murakami Exp $ +// +// ==================================================================== +#ifndef H02_MUON_SD_H +#define H02_MUON_SD_H + +#include "G4VSensitiveDetector.hh" +#include "H02MuonHit.hh" + +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class H02MuonSD : public G4VSensitiveDetector { +private: + 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(); + +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PhysicsList.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PhysicsList.hh new file mode 100644 index 0000000000..3155c8b6e9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PhysicsList.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 H02PhysicsList_h +#define H02PhysicsList_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" + +class H02PhysicsList: public G4VModularPhysicsList +{ +public: + H02PhysicsList(); + virtual ~H02PhysicsList(); + +public: + // SetCuts() + virtual void SetCuts(); + + +}; + + +#endif + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..d9f9adb5a1 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:10:53 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/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..642c68d0be --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02PrimaryGeneratorMessenger.hh +// $Id: H02PrimaryGeneratorMessenger.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// ==================================================================== +#ifndef H02_PRIMARY_GENERATOR_MESSENGER_H +#define H02_PRIMARY_GENERATOR_MESSENGER_H + +#include "globals.hh" +#include "G4UImessenger.hh" + +class H02PrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithoutParameter; +class G4UIcmdWithABool; +class G4UIcmdWithAnInteger; +class G4UIcmdWithAString; + +class H02PrimaryGeneratorMessenger : public G4UImessenger { +private: + H02PrimaryGeneratorAction* primaryAction; + + G4UIdirectory* dir; + G4UIcmdWithAString* select; + +public: + H02PrimaryGeneratorMessenger(H02PrimaryGeneratorAction* genaction); + ~H02PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.hh new file mode 100644 index 0000000000..a7287d2b2a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02SteppingAction.hh +// $Id: H02SteppingAction.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// ==================================================================== +#ifndef H02_STEPPING_ACTION_H +#define H02_STEPPING_ACTION_H + +#include "G4UserSteppingAction.hh" + +class H02SteppingAction : public G4UserSteppingAction { +public: + H02SteppingAction(); + virtual ~H02SteppingAction(); + + virtual void UserSteppingAction(const G4Step* astep); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh new file mode 100644 index 0000000000..9a3a69c774 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02VisManager.hh +// $Id: H02VisManager.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// ==================================================================== +#ifndef H02_VIS_MANAGER_H +#define H02_VIS_MANAGER_H + +#include "G4VisManager.hh" + +class H02VisManager : public G4VisManager { +public: + H02VisManager(); + ~H02VisManager(); + +private: + virtual void RegisterGraphicsSystems(); + +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh new file mode 100644 index 0000000000..dd270474f6 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReader.hh +// $Id: HepMCG4AsciiReader.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// ==================================================================== +#ifndef HEPMC_G4_ASCII_READER_H +#define HEPMC_G4_ASCII_READER_H + +#include "HepMCG4Interface.hh" +#include "HepMC/IO_Ascii.h" + +class HepMCG4AsciiReaderMessenger; + +class HepMCG4AsciiReader : public HepMCG4Interface { +protected: + G4String filename; + HepMC::IO_Ascii* asciiInput; + + G4int verbose; + HepMCG4AsciiReaderMessenger* messenger; + + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + HepMCG4AsciiReader(); + ~HepMCG4AsciiReader(); + + // set/get methods + void SetFileName(G4String name); + G4String GetFileName() const; + + void SetVerboseLevel(G4int i); + G4int GetVerboseLevel() const; + + // methods... + void Initialize(); +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void HepMCG4AsciiReader::SetFileName(G4String name) +{ + filename= name; +} + +inline G4String HepMCG4AsciiReader::GetFileName() const +{ + return filename; +} + +inline void HepMCG4AsciiReader::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int HepMCG4AsciiReader::GetVerboseLevel() const +{ + return verbose; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh new file mode 100644 index 0000000000..4603fad0f5 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReaderMessenger.hh +// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// ==================================================================== +#ifndef HEPMC_G4_ASCII_READER_MESSENGER_H +#define HEPMC_G4_ASCII_READER_MESSENGER_H + +#include "G4UImessenger.hh" + +class HepMCG4AsciiReader; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class HepMCG4AsciiReaderMessenger : public G4UImessenger { +private: + HepMCG4AsciiReader* gen; + + G4UIdirectory* dir; + G4UIcmdWithAnInteger* verbose; + G4UIcmdWithAString* open; + +public: + HepMCG4AsciiReaderMessenger(HepMCG4AsciiReader* agen); + ~HepMCG4AsciiReaderMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh new file mode 100644 index 0000000000..44d40b3605 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4Interface.hh +// $Id: HepMCG4Interface.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// A base class for primary generation via HepMC object. +// This class is derived from G4VPrimaryGenerator. +// +// ==================================================================== +#ifndef HEPMC_G4_INTERFACE_H +#define HEPMC_G4_INTERFACE_H + +#include "G4VPrimaryGenerator.hh" +#include "HepMC/GenEvent.h" + +class HepMCG4Interface : 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: + HepMCG4Interface(); + virtual ~HepMCG4Interface(); + + // 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* HepMCG4Interface::GetHepMCGenEvent() const +{ + return hepmcEvent; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh new file mode 100644 index 0000000000..bf3356faa4 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4PythiaInterface.hh +// $Id: HepMCG4PythiaInterface.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// A generic interface class with Pythia event generator via HepMC. +// +// ==================================================================== +#ifndef HEPMC_G4_PYTHIA_INTERFACE_H +#define HEPMC_G4_PYTHIA_INTERFACE_H + +#include "HepMCG4Interface.hh" +#include "HepMC/IO_HEPEVT.h" + +class HepMCG4PythiaMessenger; + +class HepMCG4PythiaInterface : public HepMCG4Interface { +protected: + G4int verbose; + G4int mpylist; + HepMC::IO_HEPEVT hepevtio; + + HepMCG4PythiaMessenger* messenger; + + // In default, this is automatic conversion, Pythia->HEPEVT->HepMC, + // by HepMC utilities. + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + HepMCG4PythiaInterface(); + ~HepMCG4PythiaInterface(); + + // 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); + + // random numbers operations + void SetRandomSeed(G4int iseed); + void CallPygive(G4String par); + void CallPyrget(G4int lun, G4int move); + void CallPyrset(G4int lun, G4int move); + void PrintRandomStatus(G4std::ostream& ostr=G4std::cout) 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 HepMCG4PythiaInterface::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int HepMCG4PythiaInterface::GetVerboseLevel() const +{ + return verbose; +} + +inline void HepMCG4PythiaInterface::SetPylist(G4int i) +{ + mpylist= i; +} + +inline G4int HepMCG4PythiaInterface::GetPylist() const +{ + return mpylist; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh new file mode 100644 index 0000000000..911aff5bac --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.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: HepMCG4PythiaMessenger.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// +// ==================================================================== +#ifndef HEPMC_G4_PYTHIA_MESSENGER_H +#define HEPMC_G4_PYTHIA_MESSENGER_H + +#include "G4UImessenger.hh" + +class HepMCG4PythiaInterface; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class HepMCG4PythiaMessenger : public G4UImessenger { +private: + HepMCG4PythiaInterface* 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: + HepMCG4PythiaMessenger(HepMCG4PythiaInterface* agen); + ~HepMCG4PythiaMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/pyh4mu.mac b/examples/extended/eventgenerator/HepMC/HepMCEx02/pyh4mu.mac new file mode 100644 index 0000000000..d4b3e63e60 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/pyset.mac b/examples/extended/eventgenerator/HepMC/HepMCEx02/pyset.mac new file mode 100644 index 0000000000..c4177f91fa --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/src/H02DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02DetectorConstruction.cc new file mode 100644 index 0000000000..9003972b0e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:46 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/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc new file mode 100644 index 0000000000..75874c674e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:46 murakami Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/src/H02EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EventAction.cc new file mode 100644 index 0000000000..ee2b8c2050 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:46 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/src/H02Field.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02Field.cc new file mode 100644 index 0000000000..aa78b10ffe --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:46 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/src/H02HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc new file mode 100644 index 0000000000..a2668e63b3 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc @@ -0,0 +1,428 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * 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" +#include "G4ios.hh" +#include "g4std/iomanip" + + +H02HadronPhysics::H02HadronPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +H02HadronPhysics::~H02HadronPhysics() +{ +} + +#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); + + // PionPlus + pManager = G4PionPlus::PionPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEPionPlusModel = new G4LEPionPlusInelastic(); + theHEPionPlusModel = new G4HEPionPlusInelastic(); + thePionPlusInelastic.RegisterMe(theLEPionPlusModel); + thePionPlusInelastic.RegisterMe(theHEPionPlusModel); + 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(); + theHEPionMinusModel = new G4HEPionMinusInelastic(); + thePionMinusInelastic.RegisterMe(theLEPionMinusModel); + thePionMinusInelastic.RegisterMe(theHEPionMinusModel); + 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(theHEKaonPlusModel); + 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(theHEProtonModel); + 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(theHENeutronModel); + 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/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc new file mode 100644 index 0000000000..87a2be9ccb --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:47 murakami Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/src/H02MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonHit.cc new file mode 100644 index 0000000000..3f09acfb28 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:47 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/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc new file mode 100644 index 0000000000..9ce54d6ba1 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:47 murakami Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/src/H02MuonSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonSD.cc new file mode 100644 index 0000000000..1b72bf351b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:47 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/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc new file mode 100644 index 0000000000..cbef74d57f --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:48 murakami Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/src/H02PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..08ab842b8e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:48 murakami Exp $ +// +// ==================================================================== +#include "H02PrimaryGeneratorAction.hh" +#include "H02PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "HepMCG4AsciiReader.hh" +#include "HepMCG4PythiaInterface.hh" + +//////////////////////////////////////////////////// +H02PrimaryGeneratorAction::H02PrimaryGeneratorAction() +//////////////////////////////////////////////////// +{ + // default generator is particle gun. + currentGenerator= particleGun= new G4ParticleGun(); + currentGeneratorName= "particleGun"; + hepmcAscii= new HepMCG4AsciiReader(); + pythiaGen= new HepMCG4PythiaInterface(); + + 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/src/H02PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..254b7b7605 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:48 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/src/H02SteppingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02SteppingAction.cc new file mode 100644 index 0000000000..33e4dc75db --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:48 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/src/H02VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc new file mode 100644 index 0000000000..d00652e291 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/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/05/28 14:15:48 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/src/HEPEvtcom.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.cc new file mode 100644 index 0000000000..0c11f3ef35 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.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: HEPEvtcom.cc,v 1.1 2002/05/28 14:15:48 murakami Exp $ +// ====================================================================== +// PARAMETER (NMXHEP=4000) +// COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), +// & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) +// ====================================================================== +///**********************************************************/ +///* D E S C R I P T I O N : */ +///*--------------------------------------------------------*/ +///* NEVHEP - event number (or some special meaning*/ +///* (see documentation for details) */ +///* NHEP - actual number of entries in current */ +///* event. */ +///* ISTHEP[IHEP] - status code for IHEP'th entry - see */ +///* documentation for details */ +///* IDHEP [IHEP] - IHEP'th particle identifier according*/ +///* to PDG. */ +///* JMOHEP[IHEP][0] - pointer to position of 1st mother */ +///* JMOHEP[IHEP][1] - pointer to position of 2nd mother */ +///* JDAHEP[IHEP][0] - pointer to position of 1st daughter */ +///* JDAHEP[IHEP][1] - pointer to position of 2nd daughter */ +///* PHEP [IHEP][0] - X momentum [Gev/c] */ +///* PHEP [IHEP][1] - Y momentum [Gev/c] */ +///* PHEP [IHEP][2] - Z momentum [Gev/c] */ +///* PHEP [IHEP][3] - Energy [Gev] */ +///* PHEP [IHEP][4] - Mass[Gev/c^2] */ +///* VHEP [IHEP][0] - X vertex [mm] */ +///* VHEP [IHEP][1] - Y vertex [mm] */ +///* VHEP [IHEP][2] - Z vertex [mm] */ +///* VHEP [IHEP][3] - production time [mm/c] */ +///*========================================================*/ +// +// This interface to HEPEVT common block treats the block as +// an array of bytes --- the precision and number of entries +// is determined "on the fly" by the wrapper and used to decode +// each entry. +// +// HEPEVT_EntriesAllocation is the maximum size of the HEPEVT common block +// that can be interfaced. It is NOT the actual size of the HEPEVT common +// used in each individual application. The actual size can be changed on +// the fly using HepMC::HEPEVT_Wrapper::set_max_number_entries(). +// Thus HEPEVT_EntriesAllocation should typically be set +// to the maximum possible number of entries --- 10000 is a good choice +// (and is the number used by ATLAS versions of Pythia). + +#include + +enum {HEPEVT_EntriesAllocation=4000}; + +const unsigned int hepevt_bytes_allocation = +sizeof(long int) * ( 2 + 4 * HEPEVT_EntriesAllocation ) + + sizeof(double) * ( 9 * HEPEVT_EntriesAllocation ); + +extern "C" struct hepevt{ + char data[hepevt_bytes_allocation]; +}; + +hepevt hepevt_; + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc new file mode 100644 index 0000000000..e424b78b8c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReader.cc +// $Id: HepMCG4AsciiReader.cc,v 1.1 2002/05/28 14:15:49 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4AsciiReader.hh" +#include "HepMCG4AsciiReaderMessenger.hh" + +#include "g4std/iostream" +#include "g4std/fstream" + +//////////////////////////////////////// +HepMCG4AsciiReader::HepMCG4AsciiReader() + : filename("xxx.dat"), verbose(0) +//////////////////////////////////////// +{ + asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + + messenger= new HepMCG4AsciiReaderMessenger(this); +} + +///////////////////////////////////////// +HepMCG4AsciiReader::~HepMCG4AsciiReader() +///////////////////////////////////////// +{ + delete asciiInput; + delete messenger; +} + +///////////////////////////////////// +void HepMCG4AsciiReader::Initialize() +///////////////////////////////////// +{ + delete asciiInput; + + asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + asciiInput-> print(); +} + +///////////////////////////////////////////////////////// +HepMC::GenEvent* HepMCG4AsciiReader::GenerateHepMCEvent() +///////////////////////////////////////////////////////// +{ + HepMC::GenEvent* evt= asciiInput-> read_next_event(); + if(!evt) return 0; // no more event + + if(verbose>0) evt-> print(); + + return evt; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc new file mode 100644 index 0000000000..4903a71dd1 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4AsciiReaderMessenger.cc +// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.1 2002/05/28 14:15:49 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4AsciiReaderMessenger.hh" +#include "HepMCG4AsciiReader.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////// +HepMCG4AsciiReaderMessenger::HepMCG4AsciiReaderMessenger + (HepMCG4AsciiReader* 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); +} + +/////////////////////////////////////////////////////////// +HepMCG4AsciiReaderMessenger::~HepMCG4AsciiReaderMessenger() +/////////////////////////////////////////////////////////// +{ + delete verbose; + delete open; + + delete dir; +} + +/////////////////////////////////////////////////////////////////// +void HepMCG4AsciiReaderMessenger::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 HepMCG4AsciiReaderMessenger::GetCurrentValue(G4UIcommand* command) +/////////////////////////////////////////////////////////////////////////// +{ + G4String cv; + + if (command == verbose) { + cv= verbose-> ConvertToString(gen-> GetVerboseLevel()); + } else if (command == open) { + cv= gen-> GetFileName(); + } + return cv; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc new file mode 100644 index 0000000000..65b44451ae --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4Interface.cc +// $Id: HepMCG4Interface.cc,v 1.1 2002/05/28 14:15:50 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4Interface.hh" + +#include "G4RunManager.hh" +#include "G4LorentzVector.hh" +#include "G4Event.hh" +#include "G4PrimaryParticle.hh" +#include "G4PrimaryVertex.hh" +#include "G4TransportationManager.hh" + +//////////////////////////////////// +HepMCG4Interface::HepMCG4Interface() + : hepmcEvent(0) +//////////////////////////////////// +{ +} + +///////////////////////////////////// +HepMCG4Interface::~HepMCG4Interface() +///////////////////////////////////// +{ + delete hepmcEvent; +} + +///////////////////////////////////////////////////////// +G4bool HepMCG4Interface::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 HepMCG4Interface::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* HepMCG4Interface::GenerateHepMCEvent() +/////////////////////////////////////////////////////// +{ + HepMC::GenEvent* aevent= new HepMC::GenEvent(); + return aevent; +} + +////////////////////////////////////////////////////////////// +void HepMCG4Interface::GeneratePrimaryVertex(G4Event* anEvent) +////////////////////////////////////////////////////////////// +{ + // delete previous event object + delete hepmcEvent; + + // generate next event + hepmcEvent= GenerateHepMCEvent(); + if(! hepmcEvent) { + G4cout << "HepMCInterface: no generated particles. run terminated..." + << G4endl; + G4RunManager::GetRunManager()-> AbortRun(); + return; + } + HepMC2G4(hepmcEvent, anEvent); +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc new file mode 100644 index 0000000000..de76746e57 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc @@ -0,0 +1,161 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4PythiaInterface.cc +// $Id: HepMCG4PythiaInterface.cc,v 1.1 2002/05/28 14:15:50 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4PythiaInterface.hh" +#include "HepMCG4PythiaMessenger.hh" + +#include "HepMC/GenEvent.h" +#include "HepMC/PythiaWrapper6_152.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); } + +//////////////////////////////////////////////// +HepMCG4PythiaInterface::HepMCG4PythiaInterface() + : verbose(0), mpylist(0) +//////////////////////////////////////////////// +{ +#ifdef NEED_INITPYDATA + initpydata(); + // Some platforms may require the initialization of pythia PYDATA block + // data as external - if you get pythia initialization errors try + // commenting in/out the below call to initpydata(). +#endif + + messenger= new HepMCG4PythiaMessenger(this); +} + +///////////////////////////////////////////////// +HepMCG4PythiaInterface::~HepMCG4PythiaInterface() +///////////////////////////////////////////////// +{ + delete messenger; +} + +///////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPygive(G4String par) +///////////////////////////////////////////////////// +{ + call_pygive(par); +} + +////////////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPyinit(G4String frame, G4String beam, + G4String target, G4double win) +////////////////////////////////////////////////////////////////////// +{ + call_pyinit(frame.c_str(), beam.c_str(), target.c_str(), win); +} + +//////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPystat(G4int istat) +//////////////////////////////////////////////////// +{ + call_pystat(istat); +} + +/////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::SetRandomSeed(G4int iseed) +/////////////////////////////////////////////////////// +{ + pydatr.mrpy[1-1]= iseed; +} + +////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPyrget(G4int lun, G4int move) +////////////////////////////////////////////////////////////// +{ + call_pyrget(lun, move); +} + +////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::CallPyrset(G4int lun, G4int move) +////////////////////////////////////////////////////////////// +{ + call_pyrset(lun, move); +} + +////////////////////////////////////////////////////////////////////////// +void HepMCG4PythiaInterface::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 HepMCG4PythiaInterface::SetUserParameters() +//////////////////////////////////////////////// +{ + G4cout << "set user parameters of PYTHIA common." << G4endl + << "nothing to be done in default." + << G4endl; +} + +///////////////////////////////////////////////////////////// +HepMC::GenEvent* HepMCG4PythiaInterface::GenerateHepMCEvent() +///////////////////////////////////////////////////////////// +{ + static G4int nevent= 0; // event counter + + call_pyevnt(); // generate one event with Pythia + if(mpylist >=1 && mpylist<= 3) call_pylist(mpylist); + + call_pyhepc(1); + + HepMC::GenEvent* evt= hepevtio.read_next_event(); + evt-> set_event_number(nevent++); + if(verbose>0) evt-> print(); + + return evt; +} + +////////////////////////////////////////// +void HepMCG4PythiaInterface::Print() const +////////////////////////////////////////// +{ + G4cout << "PythiaInterface::Print()..." << G4endl; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc new file mode 100644 index 0000000000..205b9854dc --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4PythiaMessenger.cc +// $Id: HepMCG4PythiaMessenger.cc,v 1.1 2002/05/28 14:15:50 murakami Exp $ +// +// ==================================================================== +#include "HepMCG4PythiaMessenger.hh" +#include "HepMCG4PythiaInterface.hh" + +#include "g4std/fstream" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////////////////////////// +HepMCG4PythiaMessenger::HepMCG4PythiaMessenger(HepMCG4PythiaInterface* 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("std::cout"); +} + +///////////////////////////////////////////////// +HepMCG4PythiaMessenger::~HepMCG4PythiaMessenger() +///////////////////////////////////////////////// +{ + 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 HepMCG4PythiaMessenger::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 == "std::cout") { + 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 HepMCG4PythiaMessenger::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/History b/examples/extended/eventgenerator/HepMC/History new file mode 100644 index 0000000000..3cdf75c91f --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/History @@ -0,0 +1,23 @@ +$Id: History,v 1.3 2002/05/28 14:42:10 murakami Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + example/extended/eventgenerator/HepMC 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 * + ---------------------------------------------------------- + +May 28, 2002 K.Murakami (exHepMC-V04-00-01) +- Clean up and add README. + +May 16, 2002 M.Asai (exHepMC-V04-00-00) +- Created. + diff --git a/examples/extended/eventgenerator/HepMC/README b/examples/extended/eventgenerator/HepMC/README new file mode 100644 index 0000000000..f15ec2a5da --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/README @@ -0,0 +1,86 @@ + Examples for HepMC-Geant4 interface + ----------------------------------- + + 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. + +Requirements for external software packages +------------------------------------------- +HepMC + tested version : 1.21 (latest at 28/May/02) + URL: http://mdobbs.home.cern.ch/mdobbs/HepMC/ + +PYTHIA + tested version 6.205 + URL: http://www.thep.lu.se/~torbjorn/Pythia.html + +What is provided +---------------- +class HepMCG4Interface + This class is derived from G4VPrimaryGenerator, and is a base class + for primary generation via HepMC object. + + protected members + + virtual HepMC::GenEvent* GenerateHepMCEvent() + Implement this method in his/her own concrete class. + An empty event will be created in default. + + + void HepMC2G4(const HepMC::GenEvent* hepmcevt, G4Event* g4event) + service method for conversion from HepMC::GenEvent to G4Event + + + virtual G4bool CheckVertexInsideWorld(const G4ThreeVector& pos) const + We have to take care for the position of primaries because + primary vertices outside the world volume give rise to G4Exception. + If the default implementation is not adequate, an alternative + can be implemented in your own class. + + public members + + virtual void GeneratePrimaryVertex(G4Event* anEvent) + The default behavior is that a single HepMC event generated by + GenerateHepMCEvent() will be converted to G4Event through HepMC2G4(). + +class HepMCG4AsciiReader / HepMCG4AsciiReaderMessenger + (derived from HepMCG4Interface) + This derived class is for reading primary information from + an Ascii file generated by HepMC. + +class HepMCG4PythiaInterface / HepMCG4AsciiReaderMessenger + (derived from HepMCG4Interface) + This derived class is for directly calling PYTHIA functions. + Users can set parameters, initialize, generate, and terminate + by command line operation. + +Examples +-------- +HepMCEx01 + This example is based on ExampleN04. Only part of the primary generator + action is replaced with new one. + +HepMCEx02 + This is another example having the same generator action as HepMCEx01, + but much simpler user control. + +Macros in examples +----------------- +hepmc_pygen.in + process PYTHIA events(H->4mu) generated at every event. + +hepmc_ascii.in + read pregenerated events from HepMC Ascii file (data/example_MyPhyia.dat). + +How to compile +-------------- +To build these examples, directory names including HepMC and PYTHIA +library have to be given in GNUmakefile. Please modify the next two lines +in GNUmakefile; + + HEPMC_DIR := xxxxx # HepMC installed directory + 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". + diff --git a/examples/extended/field/field01/field01.cc b/examples/extended/field/field01/field01.cc index bd35b26ca3..67b5280d85 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out index 0b0144d9a4..a953fc7cd7 100644 --- a/examples/extended/field/field01/field01.out +++ b/examples/extended/field/field01/field01.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** G4ClassicalRK4 (default) is called @@ -11,8 +11,13 @@ 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) ***** Table : Nb of materials = 11 ***** @@ -65,15 +70,13 @@ Current available graphics systems are: The ABSORBER is made of 1mm of Air, the transverse size (R) is 20000 mm. Z position of the (middle of the) absorber 21990 mm. -F01PhysicsList::SetCuts:CutLength : 1 mm -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. +F01PhysicsList::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 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 @@ -117,7 +120,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)=18.34 s +total time(SetCuts)=15.84 s G4ClassicalRK4 (default) is called The minimal step is equal to 1 mm ============= The cut Energy ============================== @@ -1154,7 +1157,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Run terminated. Run Summary Number of events processed : 100 - User=0.3s Real=0.46s Sys=0.16s + User=0.36s Real=0.52s Sys=0.16s 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 d8a015d758..82103ac9c0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01CalorimeterSD.hh b/examples/extended/field/field01/include/F01CalorimeterSD.hh index 06ee1cee52..09c30d331e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorConstruction.hh b/examples/extended/field/field01/include/F01DetectorConstruction.hh index 470a8ce7b1..8cd5a7d4e2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorMessenger.hh b/examples/extended/field/field01/include/F01DetectorMessenger.hh index bf705af352..712f28da7b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01ElectroMagneticField.hh b/examples/extended/field/field01/include/F01ElectroMagneticField.hh index 6a1ef67e5e..7c98eddab2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 e0bc195ed0..6dd62a69b0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01EventActionMessenger.hh b/examples/extended/field/field01/include/F01EventActionMessenger.hh index 269374a0d6..eb607324c0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01FieldMessenger.hh b/examples/extended/field/field01/include/F01FieldMessenger.hh index 5bc8126267..c7e293f2b2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01PhysicsList.hh b/examples/extended/field/field01/include/F01PhysicsList.hh index 1582e23b0c..2480662a27 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef F01PhysicsList_h diff --git a/examples/extended/field/field01/include/F01PhysicsListMessenger.hh b/examples/extended/field/field01/include/F01PhysicsListMessenger.hh index 0e09c3b7be..fca3161d8f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh index ad61f73fe1..dc2536e028 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh index bbe6cec841..3ad5509df4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01RunAction.hh b/examples/extended/field/field01/include/F01RunAction.hh index 54874a5b52..77e3cc2284 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01RunMessenger.hh b/examples/extended/field/field01/include/F01RunMessenger.hh index 8270fa741a..4d140cb9e4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01StepCut.hh b/examples/extended/field/field01/include/F01StepCut.hh index 21774ee0c2..033ad9afd2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingAction.hh b/examples/extended/field/field01/include/F01SteppingAction.hh index 9b27d9c3c0..955766c8da 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingMessenger.hh b/examples/extended/field/field01/include/F01SteppingMessenger.hh index 8d44ffd9cc..41a4190cd1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/include/F01SteppingVerbose.hh b/examples/extended/field/field01/include/F01SteppingVerbose.hh index 44dea049e9..f6234ffc43 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field01/include/F01VisManager.hh b/examples/extended/field/field01/include/F01VisManager.hh index 6d09f43b9c..561f6e66fa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01CalorHit.cc b/examples/extended/field/field01/src/F01CalorHit.cc index 8951e61ffb..af59c9c114 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01CalorimeterSD.cc b/examples/extended/field/field01/src/F01CalorimeterSD.cc index d9891d8c48..6161ae8475 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorConstruction.cc b/examples/extended/field/field01/src/F01DetectorConstruction.cc index cd209adaae..3928cd63a5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorMessenger.cc b/examples/extended/field/field01/src/F01DetectorMessenger.cc index f7b69159b7..389d89239c 100644 --- a/examples/extended/field/field01/src/F01DetectorMessenger.cc +++ b/examples/extended/field/field01/src/F01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01DetectorMessenger.cc,v 1.3 2001/10/25 08:10:20 grichine Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01ElectroMagneticField.cc b/examples/extended/field/field01/src/F01ElectroMagneticField.cc index 745550187b..345c01ec8d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // User Field class implementation. diff --git a/examples/extended/field/field01/src/F01EventAction.cc b/examples/extended/field/field01/src/F01EventAction.cc index 3befc191c4..3eff112d19 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01EventActionMessenger.cc b/examples/extended/field/field01/src/F01EventActionMessenger.cc index 786bc5a868..b12d81bc3d 100644 --- a/examples/extended/field/field01/src/F01EventActionMessenger.cc +++ b/examples/extended/field/field01/src/F01EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01EventActionMessenger.cc,v 1.2 2001/07/11 09:58:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01FieldMessenger.cc b/examples/extended/field/field01/src/F01FieldMessenger.cc index baa85c9c56..5a6ec88cb8 100644 --- a/examples/extended/field/field01/src/F01FieldMessenger.cc +++ b/examples/extended/field/field01/src/F01FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01FieldMessenger.cc,v 1.5 2001/10/15 17:20:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01PhysicsList.cc b/examples/extended/field/field01/src/F01PhysicsList.cc index 047c58cce0..d2235adb22 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc index e98b866cb0..11b6b1b8f4 100644 --- a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc +++ b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsListMessenger.cc,v 1.3 2001/10/15 17:20:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc index 017330ce1e..c6037fe5ee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc index 4f385bcc56..e5e6ceb66f 100644 --- a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorMessenger.cc,v 1.3 2001/10/15 17:20:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01RunAction.cc b/examples/extended/field/field01/src/F01RunAction.cc index b67e5e4254..117f5e9c12 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01RunMessenger.cc b/examples/extended/field/field01/src/F01RunMessenger.cc index 3513931f53..9695e6c78f 100644 --- a/examples/extended/field/field01/src/F01RunMessenger.cc +++ b/examples/extended/field/field01/src/F01RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01RunMessenger.cc,v 1.3 2001/10/15 17:20:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01StepCut.cc b/examples/extended/field/field01/src/F01StepCut.cc index f51ed506e8..9eccf2843f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "F01StepCut.hh" diff --git a/examples/extended/field/field01/src/F01SteppingAction.cc b/examples/extended/field/field01/src/F01SteppingAction.cc index d5a09a3228..cae455d41a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field01/src/F01SteppingMessenger.cc b/examples/extended/field/field01/src/F01SteppingMessenger.cc index 4426c813de..33524d6068 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/src/F01SteppingVerbose.cc b/examples/extended/field/field01/src/F01SteppingVerbose.cc index 4e19fb40a3..5465595ee7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/field/field01/src/F01VisManager.cc b/examples/extended/field/field01/src/F01VisManager.cc index 7319e68406..b1501dcf86 100644 --- a/examples/extended/field/field01/src/F01VisManager.cc +++ b/examples/extended/field/field01/src/F01VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: F01VisManager.cc,v 1.3 2001/12/12 15:22:30 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/field/field02/README b/examples/extended/field/field02/README index 44940420fb..a08b955393 100644 --- a/examples/extended/field/field02/README +++ b/examples/extended/field/field02/README @@ -1,4 +1,4 @@ -$Id: README,v 1.3 2001/10/25 09:30:12 grichine Exp $ +$Id: README,v 1.4 2002/02/01 10:30:25 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -69,10 +69,10 @@ $Id: README,v 1.3 2001/10/25 09:30:12 grichine Exp $ % cd $G4INSTALL/example/extended/field/field02 % gmake - - execute field01 in 'batch' mode from macro file e.g. + - execute field02 in 'batch' mode from macro file e.g. % $(G4INSTALL)/bin/$(G4SYSTEM)/field02 field02.in - - execute field01 in 'interactive' mode with visualization e.g. + - execute field02 in 'interactive' mode with visualization e.g. % $(G4INSTALL)/bin/$(G4SYSTEM)/field02 .... Idle> type your commands diff --git a/examples/extended/field/field02/field02.cc b/examples/extended/field/field02/field02.cc index 69b852fbed..664181c906 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out index 8b99e9a45f..5fa0411878 100644 --- a/examples/extended/field/field02/field02.out +++ b/examples/extended/field/field02/field02.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** G4ClassicalRK4 (default) is called @@ -11,8 +11,13 @@ 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) ***** Table : Nb of materials = 11 ***** @@ -65,15 +70,13 @@ Current available graphics systems are: The ABSORBER is made of 40mm of Kr20CO2, the transverse size (R) is 100 mm. Z position of the (middle of the) absorber 360 mm. -F02PhysicsList::SetCuts:CutLength : 1 mm -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. +F02PhysicsList::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 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 @@ -117,7 +120,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)=18.52 s +total time(SetCuts)=15.86 s G4ClassicalRK4 (default) is called The minimal step is equal to 10 mm ============= The cut Energy ============================== @@ -158,26 +161,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 -14.8 cm 2.07 cm 1.53 GeV 75.6 keV 18.6 cm 18.6 cm World eIoni - 2 -899 nm -17.9 cm 2.17 cm 1.84 GeV 14.4 keV 3.05 cm 21.7 cm World eIoni - 3 -1.23 mum -20 cm 2.22 cm 2.05 GeV 10.4 keV 2.13 cm 23.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -899 nm -17.9 cm 2.17 cm 1.02 keV 0 eV 0 fm 0 fm World initStep - 1 -899 nm -17.9 cm 2.17 cm 0 eV 2.04 keV 59.9 mum 59.9 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.8 cm 2.07 cm 3.32 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.8 cm 2.07 cm 0 eV 5.12 keV 300 mum 300 mum World eIoni - 2 0 fm -14.8 cm 2.07 cm 0 eV 0 eV 0 fm 300 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -185,16 +178,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 -18.2 cm 2.18 cm 1.87 GeV 91.8 keV 22.2 cm 22.2 cm World eIoni - 2 -378 nm -20 cm 2.22 cm 2.05 GeV 5.14 keV 1.77 cm 24 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.2 cm 2.18 cm 1.81 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -18.2 cm 2.18 cm 0 eV 3.63 keV 135 mum 135 mum World eIoni + 1 0 fm -20 cm 2.22 cm 2.05 GeV 79.1 keV 20.5 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -202,502 +186,44 @@ 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.16 cm 1.47 cm 466 MeV 30.2 keV 7.32 cm 7.32 cm World eIoni - 2 4.55 mum -20 cm 2.22 cm 2.05 GeV 60.2 keV 15.9 cm 23.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.16 cm 1.47 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.16 cm 1.47 cm 0 eV 2.05 keV 60.4 mum 60.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.76 cm 1.82 cm 926 MeV 41.4 keV 11.4 cm 11.4 cm World eIoni - 2 1.11 mum -12.6 cm 1.99 cm 1.31 GeV 17.8 keV 3.82 cm 15.3 cm World eIoni - 3 51 nm -20 cm 2.22 cm 2.05 GeV 29.4 keV 7.42 cm 22.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.11 mum -12.6 cm 1.99 cm 4.9 keV 0 eV 0 fm 0 fm World initStep - 1 1.11 mum -12.6 cm 1.99 cm 835 eV 4.06 keV 412 mum 412 mum World eIoni - 2 1.11 mum -12.6 cm 1.99 cm 0 eV 1.67 keV 46.6 mum 459 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.76 cm 1.82 cm 12.3 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.76 cm 1.82 cm 8.74 keV 3.55 keV 1.04 mm 1.04 mm World eIoni - 2 0 fm -8.76 cm 1.82 cm 5.68 keV 3.06 keV 695 mum 1.73 mm World eIoni - 3 0 fm -8.76 cm 1.82 cm 3.6 keV 1.09 keV 146 mum 1.88 mm World eIoni - 4 0 fm -8.76 cm 1.82 cm 0 eV 4.26 keV 323 mum 2.2 mm World eIoni - 5 0 fm -8.76 cm 1.82 cm 0 eV 0 eV 0 fm 2.2 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.76 cm 1.82 cm 992 eV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.76 cm 1.82 cm 0 eV 1.98 keV 57.8 mum 57.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.8 mm 8.41 mm 138 MeV 5.96 keV 1.29 cm 1.29 cm World eIoni - 2 7.03 mum -18.2 cm 2.17 cm 1.87 GeV 70.1 keV 17.4 cm 18.7 cm World eIoni - 3 7.12 mum -20 cm 2.22 cm 2.05 GeV 7.42 keV 1.82 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7.03 mum -18.2 cm 2.17 cm 2.2 keV 0 eV 0 fm 0 fm World initStep - 1 7.03 mum -18.2 cm 2.17 cm 0 eV 4.41 keV 182 mum 182 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.8 mm 8.41 mm 1.78 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.8 mm 8.41 mm 0 eV 3.55 keV 131 mum 131 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.01 cm 1.83 cm 951 MeV 47.9 keV 13.4 cm 13.4 cm World eIoni - 2 2.16 mum -20 cm 2.22 cm 2.05 GeV 50.9 keV 11 cm 24.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.01 cm 1.83 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.01 cm 1.83 cm 0 eV 2.13 keV 63.4 mum 63.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 -20 cm 2.22 cm 2.05 GeV 99.2 keV 24.5 cm 24.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.6 cm 1.26 cm 310 MeV 14.4 keV 4.66 cm 4.66 cm World eIoni - 2 -3.14 mum -20 cm 2.22 cm 2.05 GeV 73.4 keV 17.4 cm 22.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.6 cm 1.26 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.6 cm 1.26 cm 0 eV 3.12 keV 108 mum 108 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.6 cm 1.26 cm 310 MeV 21.9 keV 4.66 cm 4.66 cm World eIoni - 2 632 nm -20 cm 2.22 cm 2.05 GeV 67.9 keV 17.4 cm 22.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.6 cm 1.26 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.6 cm 1.26 cm 0 eV 2.96 keV 99.8 mum 99.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 91.2 keV 24.5 cm 24.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 -490 mum 2.21 mm 54.9 MeV 885 eV 2.28 mm 2.28 mm World eIoni - 2 -8.97 mum -3.6 cm 1.41 cm 410 MeV 13.7 keV 3.85 cm 4.08 cm World eIoni - 3 -20.5 mum -15 cm 2.08 cm 1.55 GeV 45.9 keV 11.4 cm 15.5 cm World eIoni - 4 -22.1 mum -16.9 cm 2.14 cm 1.74 GeV 7.85 keV 1.91 cm 17.4 cm World eIoni - 5 -24.1 mum -20 cm 2.22 cm 2.05 GeV 14.5 keV 3.11 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 -22.1 mum -16.9 cm 2.14 cm 2.83 keV 0 eV 0 fm 0 fm World initStep - 1 -22.1 mum -16.9 cm 2.14 cm 0 eV 3 keV 141 mum 141 mum World eIoni - 2 -22.1 mum -16.9 cm 2.14 cm 0 eV 0 eV 0 fm 141 mum World eIoni + 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 -20.5 mum -15 cm 2.08 cm 3.42 keV 0 eV 0 fm 0 fm World initStep - 1 -20.5 mum -15 cm 2.08 cm 0 eV 5.03 keV 309 mum 309 mum World eIoni - 2 -20.5 mum -15 cm 2.08 cm 0 eV 0 eV 0 fm 309 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.97 mum -3.6 cm 1.41 cm 2.51 keV 0 eV 0 fm 0 fm World initStep - 1 -8.97 mum -3.6 cm 1.41 cm 0 eV 4.22 keV 222 mum 222 mum World eIoni - 2 -8.97 mum -3.6 cm 1.41 cm 0 eV 0 eV 0 fm 222 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -490 mum 2.21 mm 3.04 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -490 mum 2.21 mm 0 eV 4.57 keV 277 mum 277 mum World eIoni - 2 0 fm -490 mum 2.21 mm 0 eV 0 eV 0 fm 277 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.1 mum 377 mum 50.1 MeV 56.4 eV 378 mum 378 mum World eIoni - 2 995 nm -9.27 mm 8.6 mm 143 MeV 6.35 keV 1.3 cm 1.34 cm World eIoni - 3 2.96 mum -2.4 cm 1.23 cm 289 MeV 6.97 keV 1.52 cm 2.86 cm World eIoni - 4 -1.8 mum -20 cm 2.22 cm 2.05 GeV 81.2 keV 17.6 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.96 mum -2.4 cm 1.23 cm 5.26 keV 0 eV 0 fm 0 fm World initStep - 1 2.96 mum -2.4 cm 1.23 cm 817 eV 4.45 keV 438 mum 438 mum World eIoni - 2 2.96 mum -2.4 cm 1.23 cm 0 eV 1.63 keV 45.3 mum 483 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 995 nm -9.27 mm 8.6 mm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 995 nm -9.27 mm 8.6 mm 0 eV 2.23 keV 67.1 mum 67.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 -14.1 mum 377 mum 3.23 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.1 mum 377 mum 0 eV 5.62 keV 293 mum 293 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.04 mm 7.67 mm 120 MeV 10.2 keV 2.05 cm 2.05 cm World eIoni - 2 1.34 mum -4.46 cm 1.5 cm 496 MeV 13.3 keV 3.84 cm 5.89 cm World eIoni - 3 686 nm -6.22 cm 1.66 cm 672 MeV 7.44 keV 1.76 cm 7.65 cm World eIoni - 4 -1.14 mum -20 cm 2.21 cm 2.05 GeV 66 keV 13.8 cm 21.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 686 nm -6.22 cm 1.66 cm 1.85 keV 0 eV 0 fm 0 fm World initStep - 1 686 nm -6.22 cm 1.66 cm 0 eV 3.71 keV 139 mum 139 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.34 mum -4.46 cm 1.5 cm 1.6 keV 0 eV 0 fm 0 fm World initStep - 1 1.34 mum -4.46 cm 1.5 cm 0 eV 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 -7.04 mm 7.67 mm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.04 mm 7.67 mm 0 eV 2.18 keV 65.1 mum 65.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 -11.6 cm 1.95 cm 1.21 GeV 57.8 keV 15.7 cm 15.7 cm World eIoni - 2 -2.85 mum -19 cm 2.19 cm 1.95 GeV 31.8 keV 7.42 cm 23.1 cm World eIoni - 3 -3 mum -20 cm 2.22 cm 2.05 GeV 3.72 keV 1.03 cm 24.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.85 mum -19 cm 2.19 cm 2.28 keV 0 eV 0 fm 0 fm World initStep - 1 -2.85 mum -19 cm 2.19 cm 0 eV 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 -11.6 cm 1.95 cm 4.32 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -11.6 cm 1.95 cm 0 eV 4.92 keV 375 mum 375 mum World eIoni - 2 0 fm -11.6 cm 1.95 cm 0 eV 0 eV 0 fm 375 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.75 cm 1.43 cm 425 MeV 26.2 keV 6.75 cm 6.75 cm World eIoni - 2 -1.99 mum -9 cm 1.83 cm 950 MeV 22.6 keV 5.27 cm 12 cm World eIoni - 3 -1.87 mum -9.84 cm 1.87 cm 1.03 GeV 4.82 keV 8.38 mm 12.9 cm World eIoni - 4 -1.83 mum -10 cm 1.88 cm 1.05 GeV 1.08 keV 1.6 mm 13 cm World eIoni - 5 704 nm -16.4 cm 2.12 cm 1.69 GeV 29.8 keV 6.44 cm 19.5 cm World eIoni - 6 -411 nm -20 cm 2.22 cm 2.05 GeV 16.9 keV 3.57 cm 23 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 704 nm -16.4 cm 2.12 cm 12.2 keV 0 eV 0 fm 0 fm World initStep - 1 704 nm -16.4 cm 2.12 cm 7.74 keV 4.45 keV 1.03 mm 1.03 mm World eIoni - 2 704 nm -16.4 cm 2.12 cm 4.04 keV 2.46 keV 404 mum 1.43 mm World eIoni - 3 704 nm -16.4 cm 2.12 cm 0 eV 4.45 keV 355 mum 1.78 mm World eIoni - 4 704 nm -16.4 cm 2.12 cm 0 eV 0 eV 0 fm 1.78 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 704 nm -16.4 cm 2.12 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 704 nm -16.4 cm 2.12 cm 0 eV 2.48 keV 77.8 mum 77.8 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.83 mum -10 cm 1.88 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 -1.83 mum -10 cm 1.88 cm 0 eV 2.41 keV 75 mum 75 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.87 mum -9.84 cm 1.87 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 -1.87 mum -9.84 cm 1.87 cm 0 eV 2.52 keV 79.4 mum 79.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.99 mum -9 cm 1.83 cm 4.43 keV 0 eV 0 fm 0 fm World initStep - 1 -1.99 mum -9 cm 1.83 cm 760 eV 3.67 keV 382 mum 382 mum World eIoni - 2 -1.99 mum -9 cm 1.83 cm 0 eV 1.52 keV 41.5 mum 424 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.23 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.75 cm 1.43 cm 0 eV 2.47 keV 77.4 mum 77.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 -6.57 mm 7.45 mm 116 MeV 13.6 keV 2.48 cm 2.48 cm World eIoni - 2 19 mum -20 cm 2.22 cm 2.05 GeV 81.2 keV 20.4 cm 22.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.57 mm 7.45 mm 6.17 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.57 mm 7.45 mm 3.2 keV 2.97 keV 499 mum 499 mum World eIoni - 2 0 fm -6.57 mm 7.45 mm 0 eV 5.73 keV 290 mum 789 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 59.6 keV 17.5 cm 17.5 cm World eIoni - 2 -1.53 mum -20 cm 2.21 cm 2.05 GeV 26 keV 6.23 cm 23.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13.8 cm 2.04 cm 2.1 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -13.8 cm 2.04 cm 0 eV 4.2 keV 169 mum 169 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.32 mm 8.22 mm 133 MeV 5.83 keV 1.77 cm 1.77 cm World eIoni - 2 5.93 mum -3.54 cm 1.4 cm 404 MeV 13.6 keV 2.78 cm 4.55 cm World eIoni - 3 17.6 mum -20 cm 2.22 cm 2.05 GeV 70.6 keV 16.5 cm 21 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.93 mum -3.54 cm 1.4 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 5.93 mum -3.54 cm 1.4 cm 0 eV 2.68 keV 86.7 mum 86.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 -8.32 mm 8.22 mm 3.95 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.32 mm 8.22 mm 1.61 keV 1.11 keV 142 mum 142 mum World eIoni - 2 0 fm -8.32 mm 8.22 mm 0 eV 3.23 keV 113 mum 256 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.32 mm 8.22 mm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.32 mm 8.22 mm 0 eV 2.44 keV 76.1 mum 76.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 -8.34 mm 8.23 mm 133 MeV 6.32 keV 1.66 cm 1.66 cm World eIoni - 2 10.9 mum -20.1 cm 2.22 cm 2.06 GeV 79.1 keV 19.4 cm 21.1 cm World eIoni - 3 10.9 mum -20.1 cm 2.22 cm 2.06 GeV 0 eV 0 fm 21.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 10.9 mum -20.1 cm 2.22 cm 1.59 keV 0 eV 0 fm 0 fm World initStep - 1 10.9 mum -20.1 cm 2.22 cm 0 eV 1.98 keV 55.2 mum 55.2 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.34 mm 8.23 mm 52.6 keV 0 eV 0 fm 0 fm World initStep - 1 -4.53 mum -8.38 mm 8.25 mm 401 keV 13 keV 1.01 cm 1.01 cm World eIoni - 2 -53.1 mum -6.63 cm 8.39 mm 580 MeV 35.7 keV 10.5 cm 11.5 cm World eIoni - 3 -53.6 mum -7.68 cm 8.4 mm 685 MeV 6.3 keV 1.05 cm 12.5 cm World eIoni - 4 -53.6 mum -9.27 cm 8.4 mm 843 MeV 5.07 keV 1.58 cm 14.1 cm World eIoni - 5 -54.2 mum -11 cm 8.41 mm 1.02 GeV 7.16 keV 1.76 cm 15.9 cm World eIoni - 6 -55.7 mum -20 cm 8.42 mm 1.92 GeV 32.8 keV 8.98 cm 24.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -54.2 mum -11 cm 8.41 mm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -54.2 mum -11 cm 8.41 mm 0 eV 2.03 keV 59.4 mum 59.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -53.6 mum -9.27 cm 8.4 mm 1.14 keV 0 eV 0 fm 0 fm World initStep - 1 -53.6 mum -9.27 cm 8.4 mm 0 eV 2.28 keV 69.5 mum 69.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 -53.6 mum -7.68 cm 8.4 mm 5.53 keV 0 eV 0 fm 0 fm World initStep - 1 -53.6 mum -7.68 cm 8.4 mm 3.58 keV 1.95 keV 455 mum 455 mum World eIoni - 2 -53.6 mum -7.68 cm 8.4 mm 0 eV 4.25 keV 322 mum 776 mum World eIoni - 3 -53.6 mum -7.68 cm 8.4 mm 0 eV 0 eV 0 fm 776 mum World eIoni + 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 -53.1 mum -6.63 cm 8.39 mm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 -53.1 mum -6.63 cm 8.39 mm 0 eV 2.49 keV 78.2 mum 78.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.53 mum -8.38 mm 8.25 mm 1.62 keV 0 eV 0 fm 0 fm World initStep - 1 -4.53 mum -8.38 mm 8.25 mm 0 eV 3.24 keV 114 mum 114 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -705,29 +231,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 -3.18 mm 5.4 mm 81.8 MeV 2.09 keV 6.5 mm 6.5 mm World eIoni - 2 -11.2 mum -2.19 cm 1.19 cm 269 MeV 6.73 keV 2 cm 2.65 cm World eIoni - 3 -19.8 mum -20 cm 2.22 cm 2.05 GeV 71.3 keV 18.4 cm 21.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.2 mum -2.19 cm 1.19 cm 1.91 keV 0 eV 0 fm 0 fm World initStep - 1 -11.2 mum -2.19 cm 1.19 cm 0 eV 3.83 keV 146 mum 146 mum World eIoni + 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 -3.18 mm 5.4 mm 16.7 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.18 mm 5.4 mm 10.9 keV 5.81 keV 1.58 mm 1.58 mm World eIoni - 2 0 fm -3.18 mm 5.4 mm 6.3 keV 4.56 keV 891 mum 2.48 mm World eIoni - 3 0 fm -3.18 mm 5.4 mm 2.99 keV 3.31 keV 508 mum 2.98 mm World eIoni - 4 0 fm -3.18 mm 5.4 mm 0 eV 3.04 keV 273 mum 3.26 mm World eIoni - 5 0 fm -3.18 mm 5.4 mm 0 eV 0 eV 0 fm 3.26 mm World eIoni + 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 @@ -735,16 +248,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 -1.65 cm 1.08 cm 215 MeV 7.52 keV 2.11 cm 2.11 cm World eIoni - 2 2.62 mum -20 cm 2.22 cm 2.05 GeV 73.6 keV 18.4 cm 20.5 cm OutOfWorldTransportation + 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 -1.65 cm 1.08 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.65 cm 1.08 cm 0 eV 2.24 keV 67.9 mum 67.9 mum World eIoni + 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 @@ -752,118 +265,660 @@ 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 105 keV 25.2 cm 25.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.66 cm 1.27 cm 316 MeV 16.6 keV 4.75 cm 4.75 cm World eIoni - 2 -698 nm -14.1 cm 2.05 cm 1.46 GeV 48.2 keV 11.5 cm 16.2 cm World eIoni - 3 -273 nm -20 cm 2.22 cm 2.05 GeV 27.3 keV 5.92 cm 22.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -698 nm -14.1 cm 2.05 cm 1.59 keV 0 eV 0 fm 0 fm World initStep - 1 -698 nm -14.1 cm 2.05 cm 0 eV 3.19 keV 111 mum 111 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.66 cm 1.27 cm 1.46 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.66 cm 1.27 cm 0 eV 2.92 keV 98.1 mum 98.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 -8.92 cm 1.83 cm 942 MeV 41 keV 11.6 cm 11.6 cm World eIoni - 2 -2.83 mum -11.6 cm 1.95 cm 1.21 GeV 9.78 keV 2.65 cm 14.3 cm World eIoni - 3 -3.38 mum -12.3 cm 1.98 cm 1.28 GeV 4.22 keV 7.78 mm 15.1 cm World eIoni - 4 -5.6 mum -14.7 cm 2.07 cm 1.52 GeV 10.7 keV 2.32 cm 17.4 cm World eIoni - 5 -7.08 mum -17.4 cm 2.15 cm 1.79 GeV 10.8 keV 2.76 cm 20.1 cm World eIoni - 6 -7.41 mum -20 cm 2.22 cm 2.05 GeV 9.83 keV 2.57 cm 22.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.08 mum -17.4 cm 2.15 cm 6.32 keV 0 eV 0 fm 0 fm World initStep - 1 -7.08 mum -17.4 cm 2.15 cm 4.61 keV 174 eV 59.8 mum 59.8 mum World eIoni - 2 -7.08 mum -17.4 cm 2.15 cm 0 eV 5.19 keV 394 mum 454 mum World eIoni - 3 -7.08 mum -17.4 cm 2.15 cm 0 eV 0 eV 0 fm 454 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.08 mum -17.4 cm 2.15 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 -7.08 mum -17.4 cm 2.15 cm 0 eV 3.07 keV 105 mum 105 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.6 mum -14.7 cm 2.07 cm 2.12 keV 0 eV 0 fm 0 fm World initStep - 1 -5.6 mum -14.7 cm 2.07 cm 0 eV 4.24 keV 171 mum 171 mum World eIoni + 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 -3.38 mum -12.3 cm 1.98 cm 11.1 keV 0 eV 0 fm 0 fm World initStep - 1 -3.38 mum -12.3 cm 1.98 cm 3.98 keV 3.61 keV 881 mum 881 mum World eIoni - 2 -3.38 mum -12.3 cm 1.98 cm 0 eV 5.64 keV 350 mum 1.23 mm World eIoni - 3 -3.38 mum -12.3 cm 1.98 cm 0 eV 0 eV 0 fm 1.23 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.38 mum -12.3 cm 1.98 cm 3.51 keV 0 eV 0 fm 0 fm World initStep - 1 -3.38 mum -12.3 cm 1.98 cm 0 eV 4.24 keV 316 mum 316 mum World eIoni - 2 -3.38 mum -12.3 cm 1.98 cm 0 eV 0 eV 0 fm 316 mum World eIoni + 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 -2.83 mum -11.6 cm 1.95 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 -2.83 mum -11.6 cm 1.95 cm 0 eV 2.3 keV 70.2 mum 70.2 mum World eIoni + 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 -8.92 cm 1.83 cm 12.7 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.92 cm 1.83 cm 10.3 keV 2.48 keV 1.09 mm 1.09 mm World eIoni - 2 0 fm -8.92 cm 1.83 cm 3.82 keV 6.44 keV 830 mum 1.92 mm World eIoni - 3 0 fm -8.92 cm 1.83 cm 2.22 keV 273 eV 48.5 mum 1.97 mm World eIoni - 4 0 fm -8.92 cm 1.83 cm 0 eV 4.45 keV 184 mum 2.15 mm World eIoni + 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 0 fm -8.92 cm 1.83 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.92 cm 1.83 cm 0 eV 2.64 keV 84.8 mum 84.8 mum World eIoni + 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 @@ -871,47 +926,76 @@ 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 -6.77 mm 7.54 mm 118 MeV 8.97 keV 2.28 cm 2.28 cm World eIoni - 2 -7.73 mum -13.5 cm 2.03 cm 1.4 GeV 55.1 keV 13.3 cm 15.5 cm World eIoni - 3 -7.61 mum -14 cm 2.05 cm 1.45 GeV 1.41 keV 5.01 mm 16.1 cm World eIoni - 4 -6.16 mum -17.5 cm 2.16 cm 1.8 GeV 15.9 keV 3.53 cm 19.6 cm World eIoni - 5 -6.31 mum -20 cm 2.22 cm 2.05 GeV 10.1 keV 2.49 cm 22.1 cm OutOfWorldTransportation + 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 = 5, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.16 mum -17.5 cm 2.16 cm 6.08 keV 0 eV 0 fm 0 fm World initStep - 1 -6.16 mum -17.5 cm 2.16 cm 1.54 keV 4.54 keV 492 mum 492 mum World eIoni - 2 -6.16 mum -17.5 cm 2.16 cm 0 eV 3.07 keV 106 mum 598 mum World eIoni + 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 -7.61 mum -14 cm 2.05 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 -7.61 mum -14 cm 2.05 cm 0 eV 2.77 keV 91 mum 91 mum World eIoni + 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 -7.73 mum -13.5 cm 2.03 cm 12.2 keV 0 eV 0 fm 0 fm World initStep - 1 -7.73 mum -13.5 cm 2.03 cm 7.39 keV 4.78 keV 1.02 mm 1.02 mm World eIoni - 2 -7.73 mum -13.5 cm 2.03 cm 4.29 keV 3.1 keV 587 mum 1.61 mm World eIoni - 3 -7.73 mum -13.5 cm 2.03 cm 0 eV 4.71 keV 373 mum 1.98 mm World eIoni - 4 -7.73 mum -13.5 cm 2.03 cm 0 eV 0 eV 0 fm 1.98 mm World eIoni + 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 -6.77 mm 7.54 mm 1.33 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.77 mm 7.54 mm 0 eV 2.66 keV 85.7 mum 85.7 mum World eIoni + 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 @@ -919,26 +1003,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 -8.66 cm 1.81 cm 916 MeV 40.4 keV 11.1 cm 11.1 cm World eIoni - 2 -100 nm -9.32 cm 1.85 cm 982 MeV 2.39 keV 6.65 mm 11.7 cm World eIoni - 3 -644 nm -20 cm 2.22 cm 2.05 GeV 40.6 keV 10.7 cm 22.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -100 nm -9.32 cm 1.85 cm 5.38 keV 0 eV 0 fm 0 fm World initStep - 1 -100 nm -9.32 cm 1.85 cm 824 eV 4.56 keV 445 mum 445 mum World eIoni - 2 -100 nm -9.32 cm 1.85 cm 0 eV 1.65 keV 45.8 mum 491 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.66 cm 1.81 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.66 cm 1.81 cm 0 eV 2.33 keV 71.7 mum 71.7 mum World eIoni + 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 @@ -946,50 +1011,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 -3.59 cm 1.41 cm 409 MeV 28.8 keV 6.49 cm 6.49 cm World eIoni - 2 -5.28 mum -5.87 cm 1.63 cm 637 MeV 8.84 keV 2.29 cm 8.78 cm World eIoni - 3 -17.6 mum -18.6 cm 2.18 cm 1.91 GeV 49.5 keV 12.7 cm 21.5 cm World eIoni - 4 -18.2 mum -20 cm 2.22 cm 2.05 GeV 4.83 keV 1.4 cm 22.9 cm OutOfWorldTransportation + 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 -17.6 mum -18.6 cm 2.18 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -17.6 mum -18.6 cm 2.18 cm 0 eV 2.06 keV 60.7 mum 60.7 mum World eIoni + 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 -5.28 mum -5.87 cm 1.63 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -5.28 mum -5.87 cm 1.63 cm 0 eV 2.09 keV 61.8 mum 61.8 mum World eIoni + 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 -3.59 cm 1.41 cm 46 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.59 cm 1.41 cm 33.9 keV 10.5 keV 6.93 mm 6.93 mm World eIoni - 2 0 fm -3.59 cm 1.41 cm 27.1 keV 6.74 keV 4.98 mm 1.19 cm World eIoni - 3 0 fm -3.59 cm 1.41 cm 20.5 keV 6.6 keV 3.42 mm 1.53 cm World eIoni - 4 0 fm -3.59 cm 1.41 cm 15.9 keV 4.65 keV 2.17 mm 1.75 cm World eIoni - 5 0 fm -3.59 cm 1.41 cm 11.7 keV 4.17 keV 1.48 mm 1.9 cm World eIoni - 6 0 fm -3.59 cm 1.41 cm 7.87 keV 3.83 keV 973 mum 2 cm World eIoni - 7 0 fm -3.59 cm 1.41 cm 5.03 keV 2.84 keV 624 mum 2.06 cm World eIoni - 8 0 fm -3.59 cm 1.41 cm 2.52 keV 2.51 keV 422 mum 2.1 cm World eIoni - 9 0 fm -3.59 cm 1.41 cm 0 eV 5.03 keV 223 mum 2.12 cm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.59 cm 1.41 cm 1.66 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.59 cm 1.41 cm 0 eV 3.31 keV 118 mum 118 mum World eIoni + 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 @@ -997,349 +1046,53 @@ 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 -18.7 cm 2.19 cm 1.92 GeV 86.4 keV 22.7 cm 22.7 cm World eIoni - 2 164 nm -20 cm 2.22 cm 2.05 GeV 3.96 keV 1.31 cm 24 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.7 cm 2.19 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -18.7 cm 2.19 cm 0 eV 2.22 keV 66.7 mum 66.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 -580 mum 2.4 mm 55.8 MeV 2.23 keV 2.49 mm 2.49 mm World eIoni - 2 18.7 mum -19.9 cm 2.22 cm 2.04 GeV 79.1 keV 21.2 cm 21.4 cm World eIoni - 3 24.2 mum -59 cm 2.76 cm 5.95 GeV 171 keV 39.1 cm 60.5 cm OutOfWorldTransportation + 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 18.7 mum -19.9 cm 2.22 cm 1.76 keV 0 eV 0 fm 0 fm World initStep - 1 18.7 mum -19.9 cm 2.22 cm 0 eV 3.52 keV 129 mum 129 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 -580 mum 2.4 mm 2.26 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -580 mum 2.4 mm 0 eV 4.52 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 -7.28 mm 7.78 mm 123 MeV 4.03 keV 1.12 cm 1.12 cm World eIoni - 2 -978 nm -2.13 cm 1.18 cm 263 MeV 7.38 keV 1.47 cm 2.59 cm World eIoni - 3 688 nm -20 cm 2.22 cm 2.05 GeV 76.9 keV 17.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 -978 nm -2.13 cm 1.18 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 -978 nm -2.13 cm 1.18 cm 0 eV 2.61 keV 83.5 mum 83.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.28 mm 7.78 mm 2.21 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.28 mm 7.78 mm 0 eV 4.42 keV 183 mum 183 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 102 keV 24.1 cm 24.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.96 cm 1.15 cm 246 MeV 15.8 keV 4.07 cm 4.07 cm World eIoni - 2 -18.7 mum -14.9 cm 2.08 cm 1.54 GeV 52.8 keV 12.9 cm 17 cm World eIoni - 3 -20.5 mum -16.6 cm 2.13 cm 1.71 GeV 8.03 keV 1.73 cm 18.7 cm World eIoni - 4 -24.2 mum -20 cm 2.22 cm 2.05 GeV 12.9 keV 3.41 cm 22.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -20.5 mum -16.6 cm 2.13 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 -20.5 mum -16.6 cm 2.13 cm 0 eV 3.09 keV 106 mum 106 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -18.7 mum -14.9 cm 2.08 cm 18.4 keV 0 eV 0 fm 0 fm World initStep - 1 -18.7 mum -14.9 cm 2.08 cm 12.9 keV 5.41 keV 1.83 mm 1.83 mm World eIoni - 2 -18.7 mum -14.9 cm 2.08 cm 9.62 keV 3.32 keV 1.11 mm 2.94 mm World eIoni - 3 -18.7 mum -14.9 cm 2.08 cm 7.29 keV 2.33 keV 771 mum 3.72 mm World eIoni - 4 -18.7 mum -14.9 cm 2.08 cm 3.91 keV 3.38 keV 579 mum 4.29 mm World eIoni - 5 -18.7 mum -14.9 cm 2.08 cm 1.07 keV 1.85 keV 150 mum 4.44 mm World eIoni - 6 -18.7 mum -14.9 cm 2.08 cm 0 eV 2.14 keV 63.8 mum 4.51 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -18.7 mum -14.9 cm 2.08 cm 992 eV 0 eV 0 fm 0 fm World initStep - 1 -18.7 mum -14.9 cm 2.08 cm 0 eV 1.98 keV 57.9 mum 57.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.96 cm 1.15 cm 12.1 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.96 cm 1.15 cm 8.72 keV 3.36 keV 1.01 mm 1.01 mm World eIoni - 2 0 fm -1.96 cm 1.15 cm 7.24 keV 168 eV 77.2 mum 1.09 mm World eIoni - 3 0 fm -1.96 cm 1.15 cm 495 eV 6.74 keV 575 mum 1.67 mm World eIoni - 4 0 fm -1.96 cm 1.15 cm 0 eV 991 eV 26.2 mum 1.69 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.96 cm 1.15 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.96 cm 1.15 cm 0 eV 2.63 keV 84.3 mum 84.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 -8.62 mm 8.35 mm 136 MeV 10.8 keV 2.77 cm 2.77 cm World eIoni - 2 -5.59 mum -3.39 cm 1.38 cm 389 MeV 9.47 keV 2.59 cm 5.36 cm World eIoni - 3 -8.91 mum -20 cm 2.22 cm 2.05 GeV 70.4 keV 16.6 cm 22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.59 mum -3.39 cm 1.38 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 -5.59 mum -3.39 cm 1.38 cm 0 eV 2.13 keV 63.3 mum 63.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 -8.62 mm 8.35 mm 2.85 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.62 mm 8.35 mm 0 eV 4.64 keV 258 mum 258 mum World eIoni - 2 0 fm -8.62 mm 8.35 mm 0 eV 0 eV 0 fm 258 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 22.3 keV 5.59 cm 5.59 cm World eIoni - 2 -1.77 mum -4.25 cm 1.48 cm 475 MeV 7.21 keV 1.35 cm 6.94 cm World eIoni - 3 -11.1 mum -15.2 cm 2.09 cm 1.57 GeV 47.2 keV 11 cm 18 cm World eIoni - 4 -13.7 mum -20 cm 2.21 cm 2.05 GeV 22.9 keV 4.75 cm 22.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.1 mum -15.2 cm 2.09 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -11.1 mum -15.2 cm 2.09 cm 0 eV 2.35 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.77 mum -4.25 cm 1.48 cm 4.1 keV 0 eV 0 fm 0 fm World initStep - 1 -1.77 mum -4.25 cm 1.48 cm 986 eV 3.11 keV 359 mum 359 mum World eIoni - 2 -1.77 mum -4.25 cm 1.48 cm 0 eV 1.97 keV 57.4 mum 416 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 3.34 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.91 cm 1.31 cm 244 eV 3.1 keV 302 mum 302 mum World eIoni - 2 0 fm -2.91 cm 1.31 cm 0 eV 488 eV 15.1 mum 318 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.13 mm 7.71 mm 121 MeV 7.75 keV 1.98 cm 1.98 cm World eIoni - 2 18.1 mum -3.31 cm 1.37 cm 381 MeV 12.9 keV 2.67 cm 4.65 cm World eIoni - 3 21.3 mum -10.2 cm 1.89 cm 1.06 GeV 26.4 keV 6.87 cm 11.5 cm World eIoni - 4 22.9 mum -17.2 cm 2.15 cm 1.77 GeV 30.5 keV 7.1 cm 18.6 cm World eIoni - 5 22.9 mum -19.4 cm 2.2 cm 1.99 GeV 9.13 keV 2.17 cm 20.8 cm World eIoni - 6 20.9 mum -30.6 cm 2.43 cm 3.11 GeV 42.4 keV 11.2 cm 32 cm World eIoni - 7 20.9 mum -30.6 cm 2.43 cm 3.11 GeV 0 eV 0 fm 32 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 20.9 mum -30.6 cm 2.43 cm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 20.9 mum -30.6 cm 2.43 cm 0 eV 1.54 keV 49.3 mum 49.3 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 22.9 mum -19.4 cm 2.2 cm 1.96 keV 0 eV 0 fm 0 fm World initStep - 1 22.9 mum -19.4 cm 2.2 cm 0 eV 3.93 keV 152 mum 152 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 22.9 mum -17.2 cm 2.15 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 22.9 mum -17.2 cm 2.15 cm 0 eV 2.24 keV 67.8 mum 67.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 21.3 mum -10.2 cm 1.89 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 21.3 mum -10.2 cm 1.89 cm 0 eV 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 18.1 mum -3.31 cm 1.37 cm 25.1 keV 0 eV 0 fm 0 fm World initStep - 1 18.1 mum -3.31 cm 1.37 cm 19.4 keV 5.64 keV 2.99 mm 2.99 mm World eIoni - 2 18.1 mum -3.31 cm 1.37 cm 13.6 keV 5.82 keV 2 mm 4.99 mm World eIoni - 3 18.1 mum -3.31 cm 1.37 cm 9.42 keV 4.19 keV 1.19 mm 6.18 mm World eIoni - 4 18.1 mum -3.31 cm 1.37 cm 5.32 keV 4.1 keV 754 mum 6.93 mm World eIoni - 5 18.1 mum -3.31 cm 1.37 cm 665 eV 4.65 keV 441 mum 7.37 mm World eIoni - 6 18.1 mum -3.31 cm 1.37 cm 0 eV 1.33 keV 35.7 mum 7.41 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 -7.13 mm 7.71 mm 47 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.13 mm 7.71 mm 38.8 keV 7 keV 6.77 mm 6.77 mm World eIoni - 2 0 fm -7.13 mm 7.71 mm 31.1 keV 7.67 keV 6.3 mm 1.31 cm World eIoni - 3 0 fm -7.13 mm 7.71 mm 23.2 keV 7.92 keV 4.31 mm 1.74 cm World eIoni - 4 0 fm -7.13 mm 7.71 mm 18.6 keV 4.62 keV 2.66 mm 2 cm World eIoni - 5 0 fm -7.13 mm 7.71 mm 14.2 keV 4.38 keV 1.87 mm 2.19 cm World eIoni - 6 0 fm -7.13 mm 7.71 mm 11.5 keV 590 eV 179 mum 2.21 cm World eIoni - 7 0 fm -7.13 mm 7.71 mm 8.44 keV 3.1 keV 958 mum 2.3 cm World eIoni - 8 0 fm -7.13 mm 7.71 mm 4.9 keV 3.55 keV 669 mum 2.37 cm World eIoni - 9 0 fm -7.13 mm 7.71 mm 753 eV 4.14 keV 410 mum 2.41 cm World eIoni - 10 0 fm -7.13 mm 7.71 mm 0 eV 1.51 keV 41.1 mum 2.42 cm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.13 mm 7.71 mm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.13 mm 7.71 mm 0 eV 4.18 keV 168 mum 168 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.13 mm 7.71 mm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.13 mm 7.71 mm 0 eV 2.34 keV 71.9 mum 71.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 -3.98 cm 1.45 cm 448 MeV 30.7 keV 7.11 cm 7.11 cm World eIoni - 2 -1.87 mum -6.05 cm 1.64 cm 655 MeV 10.1 keV 2.08 cm 9.19 cm World eIoni - 3 2.25 mum -8.93 cm 1.83 cm 943 MeV 12.7 keV 2.88 cm 12.1 cm World eIoni - 4 13.3 mum -20 cm 2.22 cm 2.05 GeV 48.7 keV 11.1 cm 23.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.25 mum -8.93 cm 1.83 cm 2.43 keV 0 eV 0 fm 0 fm World initStep - 1 2.25 mum -8.93 cm 1.83 cm 0 eV 4.86 keV 212 mum 212 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.87 mum -6.05 cm 1.64 cm 28 keV 0 eV 0 fm 0 fm World initStep - 1 -1.87 mum -6.05 cm 1.64 cm 20.7 keV 7.32 keV 3.62 mm 3.62 mm World eIoni - 2 -1.87 mum -6.05 cm 1.64 cm 15 keV 5.75 keV 2.2 mm 5.82 mm World eIoni - 3 -1.87 mum -6.05 cm 1.64 cm 11.1 keV 764 eV 385 mum 6.2 mm World eIoni - 4 -1.87 mum -6.05 cm 1.64 cm 8.06 keV 1.77 keV 614 mum 6.82 mm World eIoni - 5 -1.87 mum -6.05 cm 1.64 cm 5.25 keV 2.81 keV 639 mum 7.46 mm World eIoni - 6 -1.87 mum -6.05 cm 1.64 cm 1.3 keV 3.95 keV 436 mum 7.89 mm World eIoni - 7 -1.87 mum -6.05 cm 1.64 cm 0 eV 2.6 keV 83.1 mum 7.98 mm World eIoni + 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 -1.87 mum -6.05 cm 1.64 cm 1.3 keV 0 eV 0 fm 0 fm World initStep - 1 -1.87 mum -6.05 cm 1.64 cm 0 eV 2.59 keV 82.6 mum 82.6 mum World eIoni + 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 -1.87 mum -6.05 cm 1.64 cm 3.07 keV 0 eV 0 fm 0 fm World initStep - 1 -1.87 mum -6.05 cm 1.64 cm 0 eV 6.15 keV 280 mum 280 mum World eIoni + 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 -3.98 cm 1.45 cm 5.67 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.98 cm 1.45 cm 594 eV 5.08 keV 464 mum 464 mum World eIoni - 2 0 fm -3.98 cm 1.45 cm 0 eV 1.19 keV 31.6 mum 496 mum World eIoni + 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 @@ -1347,33 +1100,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 -20 cm 2.22 cm 2.05 GeV 92.9 keV 24.1 cm 24.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.3 mm 8.6 mm 143 MeV 5.09 keV 1.52 cm 1.52 cm World eIoni - 2 -4.09 mum -8.53 cm 1.81 cm 902 MeV 29.3 keV 7.67 cm 9.2 cm World eIoni - 3 -5.61 mum -20 cm 2.22 cm 2.05 GeV 47.9 keV 11.5 cm 20.7 cm OutOfWorldTransportation + 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 -4.09 mum -8.53 cm 1.81 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 -4.09 mum -8.53 cm 1.81 cm 0 eV 2.47 keV 77.5 mum 77.5 mum World eIoni + 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 -9.3 mm 8.6 mm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.3 mm 8.6 mm 0 eV 2.29 keV 69.9 mum 69.9 mum World eIoni + 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 @@ -1381,25 +1126,42 @@ 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.68 cm 1.61 cm 618 MeV 32.1 keV 8.83 cm 8.83 cm World eIoni - 2 2.23 mum -12.3 cm 1.98 cm 1.28 GeV 29.3 keV 6.61 cm 15.4 cm World eIoni - 3 1.73 mum -20 cm 2.22 cm 2.05 GeV 32.5 keV 7.72 cm 23.2 cm OutOfWorldTransportation + 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 2.23 mum -12.3 cm 1.98 cm 2.24 keV 0 eV 0 fm 0 fm World initStep - 1 2.23 mum -12.3 cm 1.98 cm 0 eV 4.47 keV 186 mum 186 mum World eIoni + 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 -5.68 cm 1.61 cm 1.02 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.68 cm 1.61 cm 0 eV 2.03 keV 59.7 mum 59.7 mum World eIoni + 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 @@ -1407,43 +1169,106 @@ 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.43 cm 1.02 cm 193 MeV 13.9 keV 3.47 cm 3.47 cm World eIoni - 2 2.09 mum -5.67 cm 1.61 cm 617 MeV 19.4 keV 4.28 cm 7.75 cm World eIoni - 3 3.69 mum -8.76 cm 1.82 cm 926 MeV 15.8 keV 3.1 cm 10.9 cm World eIoni - 4 3.64 mum -15.6 cm 2.1 cm 1.61 GeV 31.5 keV 6.8 cm 17.7 cm World eIoni - 5 3.9 mum -20 cm 2.22 cm 2.05 GeV 15.6 keV 4.45 cm 22.1 cm OutOfWorldTransportation + 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.64 mum -15.6 cm 2.1 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 3.64 mum -15.6 cm 2.1 cm 0 eV 2.15 keV 64.3 mum 64.3 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.69 mum -8.76 cm 1.82 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 3.69 mum -8.76 cm 1.82 cm 0 eV 4.18 keV 167 mum 167 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.09 mum -5.67 cm 1.61 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 2.09 mum -5.67 cm 1.61 cm 0 eV 2.08 keV 61.4 mum 61.4 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.43 cm 1.02 cm 997 eV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.43 cm 1.02 cm 0 eV 1.99 keV 58.2 mum 58.2 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1451,17 +1276,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 -5.62 cm 1.61 cm 612 MeV 31 keV 8.76 cm 8.76 cm World eIoni - 2 -1.84 mum -20 cm 2.22 cm 2.05 GeV 55.7 keV 14.4 cm 23.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.62 cm 1.61 cm 5.79 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.62 cm 1.61 cm 1.67 keV 4.13 keV 472 mum 472 mum World eIoni - 2 0 fm -5.62 cm 1.61 cm 0 eV 3.34 keV 119 mum 591 mum World eIoni + 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 @@ -1469,48 +1284,395 @@ 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.09 cm 1.78 cm 859 MeV 38.3 keV 10.4 cm 10.4 cm World eIoni - 2 -2.57 mum -9.74 cm 1.87 cm 1.02 GeV 4.99 keV 1.66 cm 12 cm World eIoni - 3 -3.82 mum -10.6 cm 1.91 cm 1.11 GeV 3.88 keV 9.07 mm 13 cm World eIoni - 4 -12.6 mum -20 cm 2.22 cm 2.05 GeV 40.3 keV 9.36 cm 22.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.82 mum -10.6 cm 1.91 cm 2.45 keV 0 eV 0 fm 0 fm World initStep - 1 -3.82 mum -10.6 cm 1.91 cm 0 eV 4.9 keV 215 mum 215 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.57 mum -9.74 cm 1.87 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 -2.57 mum -9.74 cm 1.87 cm 0 eV 3.15 keV 109 mum 109 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.09 cm 1.78 cm 38.8 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.09 cm 1.78 cm 28.8 keV 9.97 keV 6.29 mm 6.29 mm World eIoni - 2 0 fm -8.09 cm 1.78 cm 22.8 keV 5.99 keV 3.78 mm 1.01 cm World eIoni - 3 0 fm -8.09 cm 1.78 cm 13.9 keV 7.17 keV 2.52 mm 1.26 cm World eIoni - 4 0 fm -8.09 cm 1.78 cm 10.3 keV 3.59 keV 1.22 mm 1.38 cm World eIoni - 5 0 fm -8.09 cm 1.78 cm 5.11 keV 5.16 keV 832 mum 1.46 cm World eIoni - 6 0 fm -8.09 cm 1.78 cm 1.12 keV 3.99 keV 428 mum 1.51 cm World eIoni - 7 0 fm -8.09 cm 1.78 cm 0 eV 2.25 keV 68 mum 1.51 cm World eIoni + 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.09 cm 1.78 cm 1.78 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.09 cm 1.78 cm 0 eV 3.57 keV 132 mum 132 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1518,251 +1680,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 -20 cm 2.22 cm 2.05 GeV 95.2 keV 24.2 cm 24.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.15 cm 1.84 cm 965 MeV 46.9 keV 11.9 cm 11.9 cm World eIoni - 2 -979 nm -18.9 cm 2.19 cm 1.94 GeV 40 keV 9.71 cm 21.6 cm World eIoni - 3 -796 nm -20 cm 2.22 cm 2.05 GeV 4.22 keV 1.15 cm 22.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -979 nm -18.9 cm 2.19 cm 2.48 keV 0 eV 0 fm 0 fm World initStep - 1 -979 nm -18.9 cm 2.19 cm 0 eV 4.65 keV 218 mum 218 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.15 cm 1.84 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.15 cm 1.84 cm 0 eV 2.61 keV 83.5 mum 83.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 -5.89 cm 1.63 cm 639 MeV 30 keV 8.28 cm 8.28 cm World eIoni - 2 -1.43 mum -8.49 cm 1.8 cm 899 MeV 8.58 keV 2.61 cm 10.9 cm World eIoni - 3 -3.93 mum -18 cm 2.17 cm 1.85 GeV 38.6 keV 9.52 cm 20.4 cm World eIoni - 4 -4.24 mum -20 cm 2.22 cm 2.05 GeV 7.33 keV 1.99 cm 22.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.93 mum -18 cm 2.17 cm 1.37 keV 0 eV 0 fm 0 fm World initStep - 1 -3.93 mum -18 cm 2.17 cm 0 eV 2.73 keV 89.1 mum 89.1 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.43 mum -8.49 cm 1.8 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -1.43 mum -8.49 cm 1.8 cm 0 eV 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 -5.89 cm 1.63 cm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.89 cm 1.63 cm 0 eV 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 -11.4 cm 1.95 cm 1.19 GeV 64.9 keV 15.5 cm 15.5 cm World eIoni - 2 -66.3 nm -16.6 cm 2.13 cm 1.71 GeV 20.5 keV 5.23 cm 20.8 cm World eIoni - 3 663 nm -20 cm 2.21 cm 2.05 GeV 13.1 keV 3.37 cm 24.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -66.3 nm -16.6 cm 2.13 cm 2.23 keV 0 eV 0 fm 0 fm World initStep - 1 -66.3 nm -16.6 cm 2.13 cm 0 eV 4.46 keV 185 mum 185 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.4 cm 1.95 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -11.4 cm 1.95 cm 0 eV 3.12 keV 108 mum 108 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.55 mm 7.44 mm 115 MeV 11.2 keV 2.5 cm 2.5 cm World eIoni - 2 -6.89 mum -4.4 cm 1.5 cm 490 MeV 16.1 keV 3.83 cm 6.33 cm World eIoni - 3 -9.72 mum -9.78 cm 1.87 cm 1.03 GeV 22.9 keV 5.4 cm 11.7 cm World eIoni - 4 -7.74 mum -20 cm 2.21 cm 2.05 GeV 37.8 keV 10.2 cm 22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.72 mum -9.78 cm 1.87 cm 4.56 keV 0 eV 0 fm 0 fm World initStep - 1 -9.72 mum -9.78 cm 1.87 cm 1.32 keV 3.25 keV 390 mum 390 mum World eIoni - 2 -9.72 mum -9.78 cm 1.87 cm 0 eV 2.63 keV 84.3 mum 475 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.89 mum -4.4 cm 1.5 cm 3.47 keV 0 eV 0 fm 0 fm World initStep - 1 -6.89 mum -4.4 cm 1.5 cm 0 eV 4.4 keV 313 mum 313 mum World eIoni - 2 -6.89 mum -4.4 cm 1.5 cm 0 eV 0 eV 0 fm 313 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.55 mm 7.44 mm 3.18 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.55 mm 7.44 mm 0 eV 5.32 keV 289 mum 289 mum World eIoni - 2 0 fm -6.55 mm 7.44 mm 0 eV 0 eV 0 fm 289 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 cm 1.12 cm 234 MeV 16 keV 3.88 cm 3.88 cm World eIoni - 2 557 nm -2.36 cm 1.22 cm 286 MeV 1.65 keV 5.26 mm 4.4 cm World eIoni - 3 8.98 mum -18.3 cm 2.18 cm 1.88 GeV 68.4 keV 16 cm 20.4 cm World eIoni - 4 9.37 mum -20 cm 2.22 cm 2.05 GeV 9.45 keV 1.72 cm 22.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.98 mum -18.3 cm 2.18 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 8.98 mum -18.3 cm 2.18 cm 0 eV 2.53 keV 79.9 mum 79.9 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 557 nm -2.36 cm 1.22 cm 1.71 keV 0 eV 0 fm 0 fm World initStep - 1 557 nm -2.36 cm 1.22 cm 0 eV 3.42 keV 124 mum 124 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 cm 1.12 cm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.84 cm 1.12 cm 0 eV 2.37 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 -7.14 mm 7.71 mm 121 MeV 6.11 keV 1.11 cm 1.11 cm World eIoni - 2 3.59 mum -4.01 cm 1.45 cm 451 MeV 13.6 keV 3.38 cm 4.48 cm World eIoni - 3 1.92 mum -7.35 cm 1.73 cm 785 MeV 12.5 keV 3.35 cm 7.83 cm World eIoni - 4 1.54 mum -18.5 cm 2.18 cm 1.9 GeV 44.5 keV 11.2 cm 19 cm World eIoni - 5 1.49 mum -20 cm 2.22 cm 2.05 GeV 7.47 keV 1.49 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.54 mum -18.5 cm 2.18 cm 2.14 keV 0 eV 0 fm 0 fm World initStep - 1 1.54 mum -18.5 cm 2.18 cm 0 eV 4.28 keV 173 mum 173 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.92 mum -7.35 cm 1.73 cm 1.94 keV 0 eV 0 fm 0 fm World initStep - 1 1.92 mum -7.35 cm 1.73 cm 0 eV 3.88 keV 149 mum 149 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.59 mum -4.01 cm 1.45 cm 3.85 keV 0 eV 0 fm 0 fm World initStep - 1 3.59 mum -4.01 cm 1.45 cm 0 eV 5.95 keV 341 mum 341 mum World eIoni - 2 3.59 mum -4.01 cm 1.45 cm 0 eV 0 eV 0 fm 341 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.14 mm 7.71 mm 2.97 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.14 mm 7.71 mm 0 eV 5.94 keV 270 mum 270 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.71 mm 4.05 mm 67.1 MeV 1.32 keV 4.49 mm 4.49 mm World eIoni - 2 2.39 mum -2.36 cm 1.22 cm 286 MeV 10.4 keV 2.37 cm 2.82 cm World eIoni - 3 10.3 mum -8.01 cm 1.78 cm 851 MeV 24.2 keV 5.68 cm 8.5 cm World eIoni - 4 18.9 mum -20 cm 2.22 cm 2.05 GeV 52.6 keV 12 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.3 mum -8.01 cm 1.78 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 10.3 mum -8.01 cm 1.78 cm 0 eV 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.39 mum -2.36 cm 1.22 cm 6.44 keV 0 eV 0 fm 0 fm World initStep - 1 2.39 mum -2.36 cm 1.22 cm 2.67 keV 3.77 keV 518 mum 518 mum World eIoni - 2 2.39 mum -2.36 cm 1.22 cm 0 eV 4.51 keV 239 mum 757 mum World eIoni - 3 2.39 mum -2.36 cm 1.22 cm 0 eV 0 eV 0 fm 757 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.71 mm 4.05 mm 7.17 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.71 mm 4.05 mm 4.69 keV 2.48 keV 570 mum 570 mum World eIoni - 2 0 fm -1.71 mm 4.05 mm 815 eV 3.88 keV 399 mum 969 mum World eIoni - 3 0 fm -1.71 mm 4.05 mm 0 eV 1.63 keV 45.2 mum 1.01 mm World eIoni + 1 0 fm -20 cm 2.22 cm 2.05 GeV 72.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation ---> Begin of Event: 50 @@ -1772,1472 +1690,53 @@ 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.24 cm 1.73 cm 774 MeV 38.1 keV 9.48 cm 9.48 cm World eIoni - 2 4.8 mum -14.3 cm 2.05 cm 1.48 GeV 27.3 keV 7.02 cm 16.5 cm World eIoni - 3 4.97 mum -14.9 cm 2.08 cm 1.54 GeV 2.03 keV 6.59 mm 17.2 cm World eIoni - 4 6.98 mum -20 cm 2.22 cm 2.05 GeV 25.4 keV 5.08 cm 22.2 cm OutOfWorldTransportation + 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 4.97 mum -14.9 cm 2.08 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 4.97 mum -14.9 cm 2.08 cm 0 eV 2.23 keV 67.3 mum 67.3 mum World eIoni + 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 4.8 mum -14.3 cm 2.05 cm 8.16 keV 0 eV 0 fm 0 fm World initStep - 1 4.8 mum -14.3 cm 2.05 cm 3.36 keV 4.8 keV 646 mum 646 mum World eIoni - 2 4.8 mum -14.3 cm 2.05 cm 0 eV 5.83 keV 303 mum 949 mum World eIoni - 3 4.8 mum -14.3 cm 2.05 cm 0 eV 0 eV 0 fm 949 mum World eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.24 cm 1.73 cm 7.34 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.24 cm 1.73 cm 2.77 keV 4.57 keV 583 mum 583 mum World eIoni - 2 0 fm -7.24 cm 1.73 cm 0 eV 4.31 keV 250 mum 834 mum World eIoni - 3 0 fm -7.24 cm 1.73 cm 0 eV 0 eV 0 fm 834 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.99 cm 1.71 cm 749 MeV 34.7 keV 9.21 cm 9.21 cm World eIoni - 2 -485 nm -7.99 cm 1.78 cm 849 MeV 2.22 keV 1.01 cm 10.2 cm World eIoni - 3 -5.26 mum -20 cm 2.22 cm 2.05 GeV 47.7 keV 12 cm 22.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -485 nm -7.99 cm 1.78 cm 4.12 keV 0 eV 0 fm 0 fm World initStep - 1 -485 nm -7.99 cm 1.78 cm 0 eV 4.48 keV 361 mum 361 mum World eIoni - 2 -485 nm -7.99 cm 1.78 cm 0 eV 0 eV 0 fm 361 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.99 cm 1.71 cm 1.54 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.99 cm 1.71 cm 0 eV 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 -20 cm 2.22 cm 2.05 GeV 93 keV 25.1 cm 25.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 -7.62 cm 1.75 cm 812 MeV 35.5 keV 9.89 cm 9.89 cm World eIoni - 2 2.34 mum -17.9 cm 2.17 cm 1.84 GeV 47.5 keV 10.3 cm 20.2 cm World eIoni - 3 2.32 mum -19.4 cm 2.21 cm 1.99 GeV 6.08 keV 1.54 cm 21.7 cm World eIoni - 4 -145 nm -39.8 cm 2.56 cm 4.03 GeV 95.6 keV 20.3 cm 42 cm World eIoni - 5 -145 nm -39.8 cm 2.56 cm 4.03 GeV 0 eV 0 fm 42 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -145 nm -39.8 cm 2.56 cm 2.87 keV 0 eV 0 fm 0 fm World initStep - 1 -145 nm -39.8 cm 2.56 cm 1.88 keV 990 eV 130 mum 130 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.32 mum -19.4 cm 2.21 cm 2.05 keV 0 eV 0 fm 0 fm World initStep - 1 2.32 mum -19.4 cm 2.21 cm 0 eV 4.09 keV 162 mum 162 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.34 mum -17.9 cm 2.17 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 2.34 mum -17.9 cm 2.17 cm 0 eV 2.03 keV 59.6 mum 59.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 -7.62 cm 1.75 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.62 cm 1.75 cm 0 eV 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 -3.67 cm 1.41 cm 417 MeV 26.1 keV 6.61 cm 6.61 cm World eIoni - 2 -3.74 mum -10.2 cm 1.89 cm 1.07 GeV 24.5 keV 6.51 cm 13.1 cm World eIoni - 3 -3.48 mum -20 cm 2.22 cm 2.05 GeV 38.9 keV 9.8 cm 22.9 cm World eIoni - 4 -3.9 mum -31.3 cm 2.44 cm 3.18 GeV 49 keV 11.3 cm 34.2 cm World eIoni - 5 -3.9 mum -31.3 cm 2.44 cm 3.18 GeV 0 eV 0 fm 34.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.9 mum -31.3 cm 2.44 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 -3.9 mum -31.3 cm 2.44 cm 440 eV 1.04 keV 50 mum 50 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.48 mum -20 cm 2.22 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 -3.48 mum -20 cm 2.22 cm 0 eV 3.06 keV 105 mum 105 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.74 mum -10.2 cm 1.89 cm 1.87 keV 0 eV 0 fm 0 fm World initStep - 1 -3.74 mum -10.2 cm 1.89 cm 0 eV 3.73 keV 140 mum 140 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.67 cm 1.41 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.67 cm 1.41 cm 0 eV 3.16 keV 109 mum 109 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.6 cm 2 cm 1.31 GeV 64.1 keV 17.4 cm 17.4 cm World eIoni - 2 -55.8 nm -14.2 cm 2.05 cm 1.47 GeV 6.23 keV 1.6 cm 19 cm World eIoni - 3 882 nm -20 cm 2.22 cm 2.05 GeV 20.6 keV 5.77 cm 24.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -55.8 nm -14.2 cm 2.05 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 -55.8 nm -14.2 cm 2.05 cm 0 eV 2.25 keV 68.1 mum 68.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 -12.6 cm 2 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.6 cm 2 cm 0 eV 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 -2.8 mm 5.1 mm 78 MeV 3.3 keV 6.01 mm 6.01 mm World eIoni - 2 7.34 mum -3.82 cm 1.43 cm 432 MeV 15 keV 3.7 cm 4.3 cm World eIoni - 3 11.2 mum -20 cm 2.22 cm 2.05 GeV 62.2 keV 16.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 7.34 mum -3.82 cm 1.43 cm 2.46 keV 0 eV 0 fm 0 fm World initStep - 1 7.34 mum -3.82 cm 1.43 cm 0 eV 3.78 keV 216 mum 216 mum World eIoni - 2 7.34 mum -3.82 cm 1.43 cm 0 eV 0 eV 0 fm 216 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.8 mm 5.1 mm 2.22 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.8 mm 5.1 mm 0 eV 4.44 keV 184 mum 184 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.3 cm 2.15 cm 1.78 GeV 77.9 keV 21.3 cm 21.3 cm World eIoni - 2 -162 nm -20 cm 2.22 cm 2.05 GeV 9.55 keV 2.7 cm 24 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.3 cm 2.15 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -17.3 cm 2.15 cm 0 eV 2.02 keV 59.2 mum 59.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 -2.58 cm 1.26 cm 308 MeV 19.1 keV 5.05 cm 5.05 cm World eIoni - 2 2.33 mum -5.73 cm 1.62 cm 623 MeV 13.3 keV 3.18 cm 8.23 cm World eIoni - 3 -4.81 mum -17.4 cm 2.15 cm 1.79 GeV 48.2 keV 11.6 cm 19.9 cm World eIoni - 4 -6.02 mum -20 cm 2.22 cm 2.05 GeV 7.42 keV 2.64 cm 22.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.81 mum -17.4 cm 2.15 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 -4.81 mum -17.4 cm 2.15 cm 0 eV 3.07 keV 105 mum 105 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.33 mum -5.73 cm 1.62 cm 10.5 keV 0 eV 0 fm 0 fm World initStep - 1 2.33 mum -5.73 cm 1.62 cm 5.99 keV 4.53 keV 856 mum 856 mum World eIoni - 2 2.33 mum -5.73 cm 1.62 cm 2.98 keV 3.01 keV 486 mum 1.34 mm World eIoni - 3 2.33 mum -5.73 cm 1.62 cm 0 eV 4.74 keV 272 mum 1.61 mm World eIoni - 4 2.33 mum -5.73 cm 1.62 cm 0 eV 0 eV 0 fm 1.61 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 -2.58 cm 1.26 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.58 cm 1.26 cm 0 eV 2.19 keV 65.5 mum 65.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 -8.29 mm 8.21 mm 133 MeV 8.19 keV 1.91 cm 1.91 cm World eIoni - 2 -12.4 mum -20 cm 2.22 cm 2.05 GeV 77.1 keV 19.6 cm 21.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 mm 8.21 mm 2.02 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.29 mm 8.21 mm 0 eV 4.04 keV 159 mum 159 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 94.3 keV 24.1 cm 24.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.89 cm 1.31 cm 339 MeV 28.7 keV 5.56 cm 5.56 cm World eIoni - 2 -3.36 mum -8.62 cm 1.81 cm 912 MeV 23.6 keV 5.76 cm 11.3 cm World eIoni - 3 -2.27 mum -11.2 cm 1.94 cm 1.17 GeV 13.1 keV 2.58 cm 13.9 cm World eIoni - 4 -2.09 mum -11.5 cm 1.95 cm 1.2 GeV 539 eV 2.55 mm 14.1 cm World eIoni - 5 -2.05 mum -11.5 cm 1.95 cm 1.2 GeV 96.1 eV 688 mum 14.2 cm World eIoni - 6 4.81 mum -20 cm 2.22 cm 2.05 GeV 30.2 keV 8.48 cm 22.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.05 mum -11.5 cm 1.95 cm 4.29 keV 0 eV 0 fm 0 fm World initStep - 1 -2.05 mum -11.5 cm 1.95 cm 540 eV 3.75 keV 372 mum 372 mum World eIoni - 2 -2.05 mum -11.5 cm 1.95 cm 0 eV 1.08 keV 28.6 mum 401 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.09 mum -11.5 cm 1.95 cm 1.02 keV 0 eV 0 fm 0 fm World initStep - 1 -2.09 mum -11.5 cm 1.95 cm 0 eV 2.03 keV 59.7 mum 59.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 -2.27 mum -11.2 cm 1.94 cm 1.78 keV 0 eV 0 fm 0 fm World initStep - 1 -2.27 mum -11.2 cm 1.94 cm 0 eV 3.55 keV 131 mum 131 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.36 mum -8.62 cm 1.81 cm 5.91 keV 0 eV 0 fm 0 fm World initStep - 1 -3.36 mum -8.62 cm 1.81 cm 2.52 keV 1.6 keV 286 mum 286 mum World eIoni - 2 -3.36 mum -8.62 cm 1.81 cm 0 eV 4.81 keV 223 mum 508 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.36 mum -8.62 cm 1.81 cm 1.79 keV 0 eV 0 fm 0 fm World initStep - 1 -3.36 mum -8.62 cm 1.81 cm 0 eV 3.58 keV 132 mum 132 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.89 cm 1.31 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.89 cm 1.31 cm 0 eV 3.06 keV 105 mum 105 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.67 cm 1.61 cm 617 MeV 35.7 keV 8.82 cm 8.82 cm World eIoni - 2 -10.4 mum -13.7 cm 2.04 cm 1.42 GeV 35.1 keV 8.08 cm 16.9 cm World eIoni - 3 -19.4 mum -20 cm 2.22 cm 2.05 GeV 25.1 keV 6.26 cm 23.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.4 mum -13.7 cm 2.04 cm 14.9 keV 0 eV 0 fm 0 fm World initStep - 1 -10.4 mum -13.7 cm 2.04 cm 8.37 keV 6.5 keV 1.34 mm 1.34 mm World eIoni - 2 -10.4 mum -13.7 cm 2.04 cm 1.79 keV 6.58 keV 662 mum 2 mm World eIoni - 3 -10.4 mum -13.7 cm 2.04 cm 0 eV 3.58 keV 132 mum 2.14 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.67 cm 1.61 cm 26.2 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.67 cm 1.61 cm 18.9 keV 7.4 keV 3.24 mm 3.24 mm World eIoni - 2 0 fm -5.67 cm 1.61 cm 12.9 keV 5.98 keV 1.91 mm 5.15 mm World eIoni - 3 0 fm -5.67 cm 1.61 cm 10.7 keV 2.16 keV 1.1 mm 6.25 mm World eIoni - 4 0 fm -5.67 cm 1.61 cm 6.67 keV 4.04 keV 875 mum 7.13 mm World eIoni - 5 0 fm -5.67 cm 1.61 cm 5.21 keV 410 eV 45.5 mum 7.17 mm World eIoni - 6 0 fm -5.67 cm 1.61 cm 0 eV 5.94 keV 434 mum 7.61 mm World eIoni - 7 0 fm -5.67 cm 1.61 cm 0 eV 0 eV 0 fm 7.61 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.67 cm 1.61 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.67 cm 1.61 cm 0 eV 2.11 keV 62.6 mum 62.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 -15.1 cm 2.08 cm 1.56 GeV 81.2 keV 18.9 cm 18.9 cm World eIoni - 2 149 nm -17.2 cm 2.15 cm 1.77 GeV 8.13 keV 2.05 cm 21 cm World eIoni - 3 1.51 mum -20 cm 2.22 cm 2.05 GeV 9.33 keV 2.85 cm 23.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 149 nm -17.2 cm 2.15 cm 6.8 keV 0 eV 0 fm 0 fm World initStep - 1 149 nm -17.2 cm 2.15 cm 2.1 keV 4.7 keV 543 mum 543 mum World eIoni - 2 149 nm -17.2 cm 2.15 cm 0 eV 4.2 keV 169 mum 712 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 -15.1 cm 2.08 cm 3.73 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -15.1 cm 2.08 cm 509 eV 3.22 keV 333 mum 333 mum World eIoni - 2 0 fm -15.1 cm 2.08 cm 0 eV 1.02 keV 26.9 mum 360 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 -15.4 cm 2.09 cm 1.59 GeV 77.6 keV 19.3 cm 19.3 cm World eIoni - 2 -797 nm -19.1 cm 2.2 cm 1.96 GeV 18 keV 3.71 cm 23 cm World eIoni - 3 -1.36 mum -57.7 cm 2.75 cm 5.82 GeV 170 keV 38.6 cm 61.6 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 -19.1 cm 2.2 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 -797 nm -19.1 cm 2.2 cm 0 eV 2.41 keV 74.9 mum 74.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 -15.4 cm 2.09 cm 2.44 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -15.4 cm 2.09 cm 0 eV 4.88 keV 213 mum 213 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 -237 mum 1.54 mm 52.4 MeV 282 eV 1.57 mm 1.57 mm World eIoni - 2 4.64 mum -4.94 cm 1.55 cm 544 MeV 22.3 keV 5.45 cm 5.61 cm World eIoni - 3 1.06 mum -18.9 cm 2.19 cm 1.94 GeV 55.1 keV 13.9 cm 19.6 cm World eIoni - 4 1.1 mum -20 cm 2.22 cm 2.05 GeV 4.92 keV 1.14 cm 20.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.06 mum -18.9 cm 2.19 cm 2.47 keV 0 eV 0 fm 0 fm World initStep - 1 1.06 mum -18.9 cm 2.19 cm 0 eV 4.61 keV 218 mum 218 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.64 mum -4.94 cm 1.55 cm 1.99 keV 0 eV 0 fm 0 fm World initStep - 1 4.64 mum -4.94 cm 1.55 cm 0 eV 3.98 keV 155 mum 155 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 -237 mum 1.54 mm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -237 mum 1.54 mm 0 eV 2.16 keV 64.4 mum 64.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 -770 mum 2.75 mm 57.7 MeV 865 eV 2.89 mm 2.89 mm World eIoni - 2 37.7 mum -20 cm 2.21 cm 2.05 GeV 82.8 keV 21.4 cm 21.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -770 mum 2.75 mm 18.6 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -770 mum 2.75 mm 14 keV 4.55 keV 1.87 mm 1.87 mm World eIoni - 2 0 fm -770 mum 2.75 mm 10.2 keV 3.85 keV 1.24 mm 3.11 mm World eIoni - 3 0 fm -770 mum 2.75 mm 7.23 keV 2.95 keV 823 mum 3.93 mm World eIoni - 4 0 fm -770 mum 2.75 mm 5.56 keV 665 eV 104 mum 4.04 mm World eIoni - 5 0 fm -770 mum 2.75 mm 2.22 keV 3.34 keV 457 mum 4.49 mm World eIoni - 6 0 fm -770 mum 2.75 mm 0 eV 4.45 keV 184 mum 4.68 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -770 mum 2.75 mm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -770 mum 2.75 mm 0 eV 2.02 keV 59 mum 59 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.51 mm 7.42 mm 115 MeV 8.91 keV 2.54 cm 2.54 cm World eIoni - 2 -3.85 mum -13.8 cm 2.04 cm 1.43 GeV 55.3 keV 13.9 cm 16.5 cm World eIoni - 3 -5.64 mum -20 cm 2.22 cm 2.05 GeV 25 keV 6.24 cm 22.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.85 mum -13.8 cm 2.04 cm 1.63 keV 0 eV 0 fm 0 fm World initStep - 1 -3.85 mum -13.8 cm 2.04 cm 0 eV 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 -6.51 mm 7.42 mm 2.26 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.51 mm 7.42 mm 0 eV 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 -5.41 cm 1.59 cm 591 MeV 30.8 keV 8.48 cm 8.48 cm World eIoni - 2 4.12 mum -14.7 cm 2.07 cm 1.52 GeV 38.6 keV 9.35 cm 17.8 cm World eIoni - 3 7.27 mum -17.2 cm 2.15 cm 1.77 GeV 13.2 keV 2.48 cm 20.3 cm World eIoni - 4 8.59 mum -18.3 cm 2.18 cm 1.88 GeV 3.31 keV 1.1 cm 21.4 cm World eIoni - 5 10.3 mum -20 cm 2.21 cm 2.05 GeV 8.99 keV 1.67 cm 23.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.59 mum -18.3 cm 2.18 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 8.59 mum -18.3 cm 2.18 cm 0 eV 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.27 mum -17.2 cm 2.15 cm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 7.27 mum -17.2 cm 2.15 cm 0 eV 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 4.12 mum -14.7 cm 2.07 cm 45.4 keV 0 eV 0 fm 0 fm World initStep - 1 4.12 mum -14.7 cm 2.07 cm 33.8 keV 11.6 keV 8.26 mm 8.26 mm World eIoni - 2 4.12 mum -14.7 cm 2.07 cm 25.4 keV 8.42 keV 4.96 mm 1.32 cm World eIoni - 3 4.12 mum -14.7 cm 2.07 cm 15.7 keV 6.33 keV 2.57 mm 1.58 cm World eIoni - 4 4.12 mum -14.7 cm 2.07 cm 11.4 keV 4.28 keV 1.45 mm 1.72 cm World eIoni - 5 4.12 mum -14.7 cm 2.07 cm 7.25 keV 4.14 keV 943 mum 1.82 cm World eIoni - 6 4.12 mum -14.7 cm 2.07 cm 5.02 keV 928 eV 330 mum 1.85 cm World eIoni - 7 4.12 mum -14.7 cm 2.07 cm 1.15 keV 3.87 keV 421 mum 1.89 cm World eIoni - 8 4.12 mum -14.7 cm 2.07 cm 0 eV 2.3 keV 70.1 mum 1.9 cm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.12 mum -14.7 cm 2.07 cm 1.3 keV 0 eV 0 fm 0 fm World initStep - 1 4.12 mum -14.7 cm 2.07 cm 0 eV 2.6 keV 83.1 mum 83.1 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.12 mum -14.7 cm 2.07 cm 3.38 keV 0 eV 0 fm 0 fm World initStep - 1 4.12 mum -14.7 cm 2.07 cm 190 eV 3.19 keV 306 mum 306 mum World eIoni - 2 4.12 mum -14.7 cm 2.07 cm 0 eV 380 eV 13.2 mum 319 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.41 cm 1.59 cm 1.98 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.41 cm 1.59 cm 0 eV 3.96 keV 154 mum 154 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.01 cm 1.83 cm 951 MeV 48.6 keV 13.4 cm 13.4 cm World eIoni - 2 534 nm -12.9 cm 2.01 cm 1.34 GeV 18.1 keV 3.88 cm 17.2 cm World eIoni - 3 2.16 mum -20 cm 2.22 cm 2.05 GeV 30.4 keV 7.12 cm 24.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 534 nm -12.9 cm 2.01 cm 1.43 keV 0 eV 0 fm 0 fm World initStep - 1 534 nm -12.9 cm 2.01 cm 0 eV 2.85 keV 95 mum 95 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.01 cm 1.83 cm 2.45 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.01 cm 1.83 cm 0 eV 4.89 keV 214 mum 214 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.09 cm 9.19 mm 159 MeV 7.88 keV 2.96 cm 2.96 cm World eIoni - 2 1.82 mum -11.6 cm 1.96 cm 1.21 GeV 41.4 keV 10.6 cm 13.6 cm World eIoni - 3 3.94 mum -19.2 cm 2.2 cm 1.97 GeV 29 keV 7.6 cm 21.2 cm World eIoni - 4 4.25 mum -24.6 cm 2.32 cm 2.51 GeV 26.4 keV 5.39 cm 26.6 cm World eIoni - 5 4.25 mum -24.6 cm 2.32 cm 2.51 GeV 0 eV 0 fm 26.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.25 mum -24.6 cm 2.32 cm 2.23 keV 0 eV 0 fm 0 fm World initStep - 1 4.25 mum -24.6 cm 2.32 cm 1 keV 1.23 keV 92.2 mum 92.2 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.94 mum -19.2 cm 2.2 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 3.94 mum -19.2 cm 2.2 cm 0 eV 2.11 keV 62.6 mum 62.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.82 mum -11.6 cm 1.96 cm 1.28 keV 0 eV 0 fm 0 fm World initStep - 1 1.82 mum -11.6 cm 1.96 cm 0 eV 2.56 keV 81.4 mum 81.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.09 cm 9.19 mm 3.4 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.09 cm 9.19 mm 0 eV 3.58 keV 307 mum 307 mum World eIoni - 2 0 fm -1.09 cm 9.19 mm 0 eV 0 eV 0 fm 307 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.8 cm 1.11 cm 230 MeV 15.1 keV 3.79 cm 3.79 cm World eIoni - 2 5.21 mum -12.2 cm 1.98 cm 1.27 GeV 39.4 keV 10.4 cm 14.2 cm WorldTransportation - 3 5.21 mum -12.2 cm 1.98 cm 1.27 GeV 0 eV 0 fm 14.2 cm World eIoni - 4 8.3 mum -20 cm 2.22 cm 2.05 GeV 30.3 keV 7.83 cm 22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.21 mum -12.2 cm 1.98 cm 1.71 keV 0 eV 0 fm 0 fm World initStep - 1 5.21 mum -12.2 cm 1.98 cm 0 eV 3.43 keV 124 mum 124 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.8 cm 1.11 cm 6.5 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.8 cm 1.11 cm 2.86 keV 3.64 keV 522 mum 522 mum World eIoni - 2 0 fm -1.8 cm 1.11 cm 0 eV 3.33 keV 260 mum 782 mum World eIoni - 3 0 fm -1.8 cm 1.11 cm 0 eV 0 eV 0 fm 782 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.38 cm 1.01 cm 188 MeV 13 keV 3.38 cm 3.38 cm World eIoni - 2 -3.8 mum -5.03 cm 1.56 cm 553 MeV 14.3 keV 3.69 cm 7.07 cm World eIoni - 3 -4.26 mum -5.71 cm 1.62 cm 621 MeV 5.47 keV 6.89 mm 7.76 cm World eIoni - 4 -4.71 mum -6.23 cm 1.66 cm 673 MeV 2.28 keV 5.18 mm 8.28 cm World eIoni - 5 -4.65 mum -10.4 cm 1.9 cm 1.09 GeV 17.5 keV 4.14 cm 12.4 cm World eIoni - 6 -4.63 mum -10.6 cm 1.91 cm 1.11 GeV 1.14 keV 2.77 mm 12.7 cm World eIoni - 7 -7.52 mum -17 cm 2.14 cm 1.75 GeV 27.7 keV 6.37 cm 19.1 cm World eIoni - 8 -7.99 mum -20 cm 2.22 cm 2.05 GeV 15.3 keV 3 cm 22.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.52 mum -17 cm 2.14 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 -7.52 mum -17 cm 2.14 cm 0 eV 2.65 keV 85.1 mum 85.1 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.63 mum -10.6 cm 1.91 cm 5.86 keV 0 eV 0 fm 0 fm World initStep - 1 -4.63 mum -10.6 cm 1.91 cm 2.21 keV 3.65 keV 477 mum 477 mum World eIoni - 2 -4.63 mum -10.6 cm 1.91 cm 0 eV 4.43 keV 183 mum 660 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.65 mum -10.4 cm 1.9 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 -4.65 mum -10.4 cm 1.9 cm 0 eV 2.2 keV 66.1 mum 66.1 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.71 mum -6.23 cm 1.66 cm 3.49 keV 0 eV 0 fm 0 fm World initStep - 1 -4.71 mum -6.23 cm 1.66 cm 0 eV 4.27 keV 315 mum 315 mum World eIoni - 2 -4.71 mum -6.23 cm 1.66 cm 0 eV 0 eV 0 fm 315 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.26 mum -5.71 cm 1.62 cm 6.37 keV 0 eV 0 fm 0 fm World initStep - 1 -4.26 mum -5.71 cm 1.62 cm 2 keV 4.37 keV 513 mum 513 mum World eIoni - 2 -4.26 mum -5.71 cm 1.62 cm 0 eV 3.99 keV 156 mum 669 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.8 mum -5.03 cm 1.56 cm 1.61 keV 0 eV 0 fm 0 fm World initStep - 1 -3.8 mum -5.03 cm 1.56 cm 0 eV 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 -1.38 cm 1.01 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.38 cm 1.01 cm 0 eV 2.65 keV 85.2 mum 85.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 -91.3 mum 959 mum 50.9 MeV 116 eV 965 mum 965 mum World eIoni - 2 -10.3 mum -16.7 cm 2.13 cm 1.72 GeV 70.8 keV 18.3 cm 18.4 cm World eIoni - 3 -10.2 mum -20 cm 2.22 cm 2.05 GeV 15.5 keV 3.3 cm 21.7 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 -16.7 cm 2.13 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 -10.3 mum -16.7 cm 2.13 cm 0 eV 2.25 keV 68.2 mum 68.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 -91.3 mum 959 mum 1.02 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -91.3 mum 959 mum 0 eV 2.04 keV 60 mum 60 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 85.3 keV 24.1 cm 24.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 -5.76 cm 1.62 cm 626 MeV 33.1 keV 8.13 cm 8.13 cm World eIoni - 2 -7.25 mum -16.7 cm 2.13 cm 1.72 GeV 43.5 keV 10.9 cm 19.1 cm World eIoni - 3 -8.93 mum -20 cm 2.22 cm 2.05 GeV 11.8 keV 3.31 cm 22.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.25 mum -16.7 cm 2.13 cm 2.02 keV 0 eV 0 fm 0 fm World initStep - 1 -7.25 mum -16.7 cm 2.13 cm 0 eV 4.05 keV 159 mum 159 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.76 cm 1.62 cm 6.68 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.76 cm 1.62 cm 3.96 keV 523 eV 67.5 mum 67.5 mum World eIoni - 2 0 fm -5.76 cm 1.62 cm 0 eV 5.48 keV 348 mum 416 mum World eIoni - 3 0 fm -5.76 cm 1.62 cm 0 eV 0 eV 0 fm 416 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.76 cm 1.62 cm 2.2 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.76 cm 1.62 cm 0 eV 4.4 keV 181 mum 181 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.67 cm 1.28 cm 317 MeV 19.8 keV 4.76 cm 4.76 cm World eIoni - 2 6.44 mum -8.18 cm 1.79 cm 868 MeV 24.2 keV 5.54 cm 10.3 cm World eIoni - 3 8.16 mum -9.17 cm 1.84 cm 967 MeV 4.3 keV 9.89 mm 11.3 cm World eIoni - 4 22 mum -20 cm 2.22 cm 2.05 GeV 49.3 keV 10.8 cm 22.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.16 mum -9.17 cm 1.84 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 8.16 mum -9.17 cm 1.84 cm 0 eV 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 6.44 mum -8.18 cm 1.79 cm 15.3 keV 0 eV 0 fm 0 fm World initStep - 1 6.44 mum -8.18 cm 1.79 cm 11.2 keV 4.11 keV 1.4 mm 1.4 mm World eIoni - 2 6.44 mum -8.18 cm 1.79 cm 6.86 keV 4.32 keV 923 mum 2.32 mm World eIoni - 3 6.44 mum -8.18 cm 1.79 cm 3.22 keV 3.64 keV 547 mum 2.87 mm World eIoni - 4 6.44 mum -8.18 cm 1.79 cm 0 eV 4.8 keV 293 mum 3.16 mm World eIoni - 5 6.44 mum -8.18 cm 1.79 cm 0 eV 0 eV 0 fm 3.16 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 -2.67 cm 1.28 cm 4.18 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.67 cm 1.28 cm 0 eV 6.18 keV 365 mum 365 mum World eIoni - 2 0 fm -2.67 cm 1.28 cm 0 eV 0 eV 0 fm 365 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 -85 mum 925 mum 50.8 MeV 119 eV 931 mum 931 mum World eIoni - 2 -10.2 mum -5.7 cm 1.62 cm 620 MeV 20.8 keV 6.36 cm 6.45 cm World eIoni - 3 -19.2 mum -12 cm 1.97 cm 1.25 GeV 25.3 keV 6.36 cm 12.8 cm World eIoni - 4 -19.9 mum -12.5 cm 1.99 cm 1.3 GeV 3 keV 4.59 mm 13.3 cm World eIoni - 5 -26.6 mum -20 cm 2.22 cm 2.05 GeV 32.8 keV 7.5 cm 20.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -19.9 mum -12.5 cm 1.99 cm 3.37 keV 0 eV 0 fm 0 fm World initStep - 1 -19.9 mum -12.5 cm 1.99 cm 0 eV 4.64 keV 305 mum 305 mum World eIoni - 2 -19.9 mum -12.5 cm 1.99 cm 0 eV 0 eV 0 fm 305 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -19.2 mum -12 cm 1.97 cm 6.97 keV 0 eV 0 fm 0 fm World initStep - 1 -19.2 mum -12 cm 1.97 cm 3.49 keV 3.48 keV 554 mum 554 mum World eIoni - 2 -19.2 mum -12 cm 1.97 cm 0 eV 4.35 keV 315 mum 869 mum World eIoni - 3 -19.2 mum -12 cm 1.97 cm 0 eV 0 eV 0 fm 869 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.2 mum -5.7 cm 1.62 cm 11.3 keV 0 eV 0 fm 0 fm World initStep - 1 -10.2 mum -5.7 cm 1.62 cm 7.77 keV 3.51 keV 932 mum 932 mum World eIoni - 2 -10.2 mum -5.7 cm 1.62 cm 4.04 keV 3.73 keV 616 mum 1.55 mm World eIoni - 3 -10.2 mum -5.7 cm 1.62 cm 0 eV 4.33 keV 354 mum 1.9 mm World eIoni - 4 -10.2 mum -5.7 cm 1.62 cm 0 eV 0 eV 0 fm 1.9 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 -85 mum 925 mum 1.41 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -85 mum 925 mum 0 eV 2.83 keV 93.8 mum 93.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 -11.5 cm 1.95 cm 1.2 GeV 59.7 keV 15.6 cm 15.6 cm World eIoni - 2 -894 nm -16 cm 2.11 cm 1.65 GeV 24 keV 4.53 cm 20.2 cm World eIoni - 3 -979 nm -16.3 cm 2.12 cm 1.67 GeV 2.21 keV 2.47 mm 20.4 cm World eBrem - 4 -2.03 mum -20 cm 2.21 cm 2.05 GeV 17 keV 3.74 cm 24.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -979 nm -16.3 cm 2.12 cm 1.14 MeV 0 eV 0 fm 0 fm World initStep - 1 -19.1 mum -20 cm 2.23 cm 1.14 MeV 0 eV 3.74 cm 3.74 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -894 nm -16 cm 2.11 cm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 -894 nm -16 cm 2.11 cm 0 eV 2.35 keV 72.5 mum 72.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 -11.5 cm 1.95 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -11.5 cm 1.95 cm 0 eV 2.49 keV 78.3 mum 78.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 -8.6 mm 8.34 mm 136 MeV 9.61 keV 2.59 cm 2.59 cm World eIoni - 2 6.56 mum -6.65 cm 1.69 cm 715 MeV 21.6 keV 5.87 cm 8.46 cm World eIoni - 3 13 mum -20 cm 2.22 cm 2.05 GeV 58.2 keV 13.4 cm 21.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.56 mum -6.65 cm 1.69 cm 2.19 keV 0 eV 0 fm 0 fm World initStep - 1 6.56 mum -6.65 cm 1.69 cm 0 eV 4.38 keV 180 mum 180 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.6 mm 8.34 mm 6.56 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.6 mm 8.34 mm 2.36 keV 4.2 keV 526 mum 526 mum World eIoni - 2 0 fm -8.6 mm 8.34 mm 0 eV 4.72 keV 202 mum 728 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 -913 mum 2.99 mm 59.1 MeV 1.43 keV 3.17 mm 3.17 mm World eIoni - 2 22.7 mum -11.5 cm 1.95 cm 1.2 GeV 46.2 keV 11.9 cm 12.2 cm World eIoni - 3 24.8 mum -14.2 cm 2.05 cm 1.47 GeV 11.3 keV 2.72 cm 15 cm World eIoni - 4 28.4 mum -19.7 cm 2.21 cm 2.02 GeV 23 keV 5.53 cm 20.5 cm World eIoni - 5 32.5 mum -27.3 cm 2.38 cm 2.78 GeV 35.5 keV 7.64 cm 28.1 cm World eIoni - 6 32.5 mum -27.3 cm 2.38 cm 2.78 GeV 0 eV 0 fm 28.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 32.5 mum -27.3 cm 2.38 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 32.5 mum -27.3 cm 2.38 cm 473 eV 778 eV 39.4 mum 39.4 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 28.4 mum -19.7 cm 2.21 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 28.4 mum -19.7 cm 2.21 cm 0 eV 2.25 keV 68.2 mum 68.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 24.8 mum -14.2 cm 2.05 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 24.8 mum -14.2 cm 2.05 cm 0 eV 2.15 keV 64.3 mum 64.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 22.7 mum -11.5 cm 1.95 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 22.7 mum -11.5 cm 1.95 cm 0 eV 2.27 keV 68.9 mum 68.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 -913 mum 2.99 mm 5.22 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -913 mum 2.99 mm 825 eV 4.4 keV 435 mum 435 mum World eIoni - 2 0 fm -913 mum 2.99 mm 0 eV 1.65 keV 45.9 mum 481 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.97 cm 1.15 cm 247 MeV 19.5 keV 4.09 cm 4.09 cm World eIoni - 2 2.45 mum -4.04 cm 1.46 cm 454 MeV 9.36 keV 2.09 cm 6.17 cm World eIoni - 3 13.1 mum -13.2 cm 2.02 cm 1.37 GeV 35.7 keV 9.13 cm 15.3 cm World eIoni - 4 15.6 mum -20 cm 2.22 cm 2.05 GeV 30.5 keV 6.85 cm 22.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 13.1 mum -13.2 cm 2.02 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 13.1 mum -13.2 cm 2.02 cm 0 eV 2.47 keV 77.4 mum 77.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.45 mum -4.04 cm 1.46 cm 3.1 keV 0 eV 0 fm 0 fm World initStep - 1 2.45 mum -4.04 cm 1.46 cm 0 eV 4.07 keV 283 mum 283 mum World eIoni - 2 2.45 mum -4.04 cm 1.46 cm 0 eV 0 eV 0 fm 283 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.97 cm 1.15 cm 1.91 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.97 cm 1.15 cm 0 eV 3.83 keV 146 mum 146 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.41 cm 1.85 cm 991 MeV 55.9 keV 13.9 cm 13.9 cm World eIoni - 2 422 nm -18.5 cm 2.18 cm 1.9 GeV 36.4 keV 9.07 cm 23 cm World eIoni - 3 257 nm -20 cm 2.22 cm 2.05 GeV 7.56 keV 1.52 cm 24.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 422 nm -18.5 cm 2.18 cm 3.81 keV 0 eV 0 fm 0 fm World initStep - 1 422 nm -18.5 cm 2.18 cm 0 eV 4.26 keV 338 mum 338 mum World eIoni - 2 422 nm -18.5 cm 2.18 cm 0 eV 0 eV 0 fm 338 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.41 cm 1.85 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.41 cm 1.85 cm 0 eV 3.1 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 -1.58 mm 3.89 mm 65.7 MeV 1.26 keV 4.29 mm 4.29 mm World eIoni - 2 -6.13 mum -5.18 cm 1.57 cm 568 MeV 21.9 keV 5.23 cm 5.66 cm World eIoni - 3 -19.4 mum -20 cm 2.22 cm 2.05 GeV 68.3 keV 14.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 -6.13 mum -5.18 cm 1.57 cm 5.98 keV 0 eV 0 fm 0 fm World initStep - 1 -6.13 mum -5.18 cm 1.57 cm 3.73 keV 731 eV 126 mum 126 mum World eIoni - 2 -6.13 mum -5.18 cm 1.57 cm 565 eV 3.17 keV 333 mum 460 mum World eIoni - 3 -6.13 mum -5.18 cm 1.57 cm 0 eV 1.13 keV 29.9 mum 490 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.13 mum -5.18 cm 1.57 cm 1.52 keV 0 eV 0 fm 0 fm World initStep - 1 -6.13 mum -5.18 cm 1.57 cm 0 eV 3.03 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 -1.58 mm 3.89 mm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.58 mm 3.89 mm 0 eV 2.98 keV 101 mum 101 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.33 cm 1.49 cm 483 MeV 27.8 keV 7.55 cm 7.55 cm World eIoni - 2 -132 nm -10.7 cm 1.92 cm 1.12 GeV 27 keV 6.38 cm 13.9 cm World eIoni - 3 -2.09 mum -20 cm 2.22 cm 2.05 GeV 44.1 keV 9.31 cm 23.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -132 nm -10.7 cm 1.92 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -132 nm -10.7 cm 1.92 cm 0 eV 2.08 keV 61.5 mum 61.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 -4.33 cm 1.49 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.33 cm 1.49 cm 0 eV 2.7 keV 87.4 mum 87.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 -20 cm 2.22 cm 2.05 GeV 89.5 keV 24.2 cm 24.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -16.1 cm 2.11 cm 1.66 GeV 75.8 keV 20 cm 20 cm World eIoni - 2 -847 nm -20 cm 2.22 cm 2.05 GeV 16.6 keV 3.95 cm 23.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -16.1 cm 2.11 cm 2.32 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -16.1 cm 2.11 cm 0 eV 4.64 keV 197 mum 197 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 cm 1.97 cm 1.25 GeV 62.4 keV 16.3 cm 16.3 cm World eIoni - 2 963 nm -20 cm 2.21 cm 2.05 GeV 31.2 keV 7.99 cm 24.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12 cm 1.97 cm 1.69 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12 cm 1.97 cm 0 eV 3.38 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 -20 cm 2.22 cm 2.05 GeV 95.1 keV 25.3 cm 25.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 -6.69 mm 7.51 mm 117 MeV 10.8 keV 2.36 cm 2.36 cm World eIoni - 2 -1.64 mum -1.67 cm 1.08 cm 217 MeV 3.31 keV 1.06 cm 3.42 cm World eIoni - 3 -5.82 mum -14.2 cm 2.05 cm 1.47 GeV 56.4 keV 12.6 cm 16 cm World eIoni - 4 -6.72 mum -20 cm 2.22 cm 2.05 GeV 22.6 keV 5.81 cm 21.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.82 mum -14.2 cm 2.05 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 -5.82 mum -14.2 cm 2.05 cm 0 eV 2.95 keV 99.7 mum 99.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.64 mum -1.67 cm 1.08 cm 1.5 keV 0 eV 0 fm 0 fm World initStep - 1 -1.64 mum -1.67 cm 1.08 cm 0 eV 3.01 keV 102 mum 102 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.69 mm 7.51 mm 4.45 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.69 mm 7.51 mm 614 eV 3.83 keV 383 mum 383 mum World eIoni - 2 0 fm -6.69 mm 7.51 mm 0 eV 1.23 keV 32.6 mum 416 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 80.1 keV 19.9 cm 19.9 cm World eIoni - 2 681 nm -20 cm 2.22 cm 2.05 GeV 16.5 keV 3.97 cm 23.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -16 cm 2.11 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -16 cm 2.11 cm 0 eV 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 -11.9 cm 1.97 cm 1.24 GeV 60.7 keV 16.1 cm 16.1 cm World eIoni - 2 1.86 mum -20 cm 2.22 cm 2.05 GeV 35.2 keV 8.13 cm 24.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -11.9 cm 1.97 cm 2.58 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -11.9 cm 1.97 cm 0 eV 5.16 keV 230 mum 230 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.43 cm 1.59 cm 593 MeV 34.1 keV 8.51 cm 8.51 cm World eIoni - 2 5.17 mum -20 cm 2.21 cm 2.05 GeV 66.9 keV 14.6 cm 23.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.43 cm 1.59 cm 1.73 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.43 cm 1.59 cm 0 eV 3.47 keV 126 mum 126 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 41.2 keV 10.6 cm 10.6 cm World eIoni - 2 -619 nm -20 cm 2.22 cm 2.05 GeV 53.4 keV 11.8 cm 22.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.25 cm 1.79 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.25 cm 1.79 cm 0 eV 2.25 keV 68 mum 68 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.03 mm 6.02 mm 90.3 MeV 2.39 keV 7.55 mm 7.55 mm World eIoni - 2 2.06 mum -3.73 cm 1.42 cm 423 MeV 14.3 keV 3.45 cm 4.21 cm World eIoni - 3 3.1 mum -4.67 cm 1.53 cm 517 MeV 4.73 keV 9.44 mm 5.15 cm World eIoni - 4 3.16 mum -4.72 cm 1.53 cm 522 MeV 94.8 eV 443 mum 5.2 cm World eIoni - 5 3.3 mum -4.8 cm 1.54 cm 530 MeV 368 eV 832 mum 5.28 cm World eIoni - 6 12.2 mum -10.3 cm 1.9 cm 1.08 GeV 24.9 keV 5.48 cm 10.8 cm World eIoni - 7 22.9 mum -20 cm 2.22 cm 2.05 GeV 40.6 keV 9.74 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 12.2 mum -10.3 cm 1.9 cm 2.28 keV 0 eV 0 fm 0 fm World initStep - 1 12.2 mum -10.3 cm 1.9 cm 0 eV 4.55 keV 191 mum 191 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.3 mum -4.8 cm 1.54 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 3.3 mum -4.8 cm 1.54 cm 0 eV 2.7 keV 87.4 mum 87.4 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.16 mum -4.72 cm 1.53 cm 1.69 keV 0 eV 0 fm 0 fm World initStep - 1 3.16 mum -4.72 cm 1.53 cm 0 eV 3.38 keV 121 mum 121 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.1 mum -4.67 cm 1.53 cm 3.38 keV 0 eV 0 fm 0 fm World initStep - 1 3.1 mum -4.67 cm 1.53 cm 0 eV 4.61 keV 306 mum 306 mum World eIoni - 2 3.1 mum -4.67 cm 1.53 cm 0 eV 0 eV 0 fm 306 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 -3.73 cm 1.42 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 2.06 mum -3.73 cm 1.42 cm 0 eV 3.05 keV 104 mum 104 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 mm 6.02 mm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.03 mm 6.02 mm 0 eV 2.41 keV 74.8 mum 74.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 -12.4 cm 1.99 cm 1.29 GeV 67 keV 17 cm 17 cm World eIoni - 2 -8.46 mum -19.9 cm 2.22 cm 2.04 GeV 31.4 keV 7.52 cm 24.6 cm World eIoni - 3 -17.7 mum -32.9 cm 2.47 cm 3.34 GeV 53.9 keV 13 cm 37.6 cm World eIoni - 4 -17.7 mum -32.9 cm 2.47 cm 3.34 GeV 0 eV 0 fm 37.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -17.7 mum -32.9 cm 2.47 cm 1.61 keV 0 eV 0 fm 0 fm World initStep - 1 -17.7 mum -32.9 cm 2.47 cm 81.2 eV 1.53 keV 56.4 mum 56.4 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.46 mum -19.9 cm 2.22 cm 3.24 keV 0 eV 0 fm 0 fm World initStep - 1 -8.46 mum -19.9 cm 2.22 cm 0 eV 6.16 keV 294 mum 294 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.4 cm 1.99 cm 36.6 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.4 cm 1.99 cm 32.4 keV 3.16 keV 1.22 mm 1.22 mm World eIoni - 2 0 fm -12.4 cm 1.99 cm 23.3 keV 9.02 keV 4.61 mm 5.82 mm World eIoni - 3 0 fm -12.4 cm 1.99 cm 19.4 keV 3.9 keV 2.67 mm 8.5 mm World eIoni - 4 0 fm -12.4 cm 1.99 cm 16.6 keV 2.81 keV 2 mm 1.05 cm World eIoni - 5 0 fm -12.4 cm 1.99 cm 12.6 keV 3.99 keV 1.58 mm 1.21 cm World eIoni - 6 0 fm -12.4 cm 1.99 cm 7.65 keV 1.63 keV 501 mum 1.26 cm World eIoni - 7 0 fm -12.4 cm 1.99 cm 5.3 keV 452 eV 199 mum 1.28 cm World eIoni - 8 0 fm -12.4 cm 1.99 cm 1.8 keV 3.5 keV 440 mum 1.32 cm World eIoni - 9 0 fm -12.4 cm 1.99 cm 0 eV 3.61 keV 134 mum 1.33 cm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.4 cm 1.99 cm 1.9 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.4 cm 1.99 cm 0 eV 3.79 keV 144 mum 144 mum World eIoni + 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 0 fm -12.4 cm 1.99 cm 3.36 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.4 cm 1.99 cm 0 eV 4.05 keV 303 mum 303 mum World eIoni - 2 0 fm -12.4 cm 1.99 cm 0 eV 0 eV 0 fm 303 mum World eIoni + 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 0 fm -12.4 cm 1.99 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.4 cm 1.99 cm 0 eV 2.09 keV 61.9 mum 61.9 mum World eIoni + 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 @@ -3245,108 +1744,1727 @@ 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.28 cm 1.37 cm 378 MeV 22.7 keV 5.67 cm 5.67 cm World eIoni - 2 6.56 mum -20 cm 2.22 cm 2.05 GeV 71.1 keV 17.6 cm 23.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.28 cm 1.37 cm 3.73 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.28 cm 1.37 cm 0 eV 4.64 keV 333 mum 333 mum World eIoni - 2 0 fm -3.28 cm 1.37 cm 0 eV 0 eV 0 fm 333 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.08 cm 9.15 mm 158 MeV 12.2 keV 2.84 cm 2.84 cm World eIoni - 2 -8.55 mum -20 cm 2.22 cm 2.05 GeV 76.8 keV 19.5 cm 22.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.08 cm 9.15 mm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.08 cm 9.15 mm 0 eV 2.14 keV 63.7 mum 63.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 -130 mum 1.14 mm 51.3 MeV 313 eV 1.15 mm 1.15 mm World eIoni - 2 -7.9 mum -5.77 cm 1.62 cm 627 MeV 27.2 keV 6.39 cm 6.5 cm World eIoni - 3 -6.7 mum -20 cm 2.22 cm 2.05 GeV 68.1 keV 14.2 cm 20.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.9 mum -5.77 cm 1.62 cm 1.95 keV 0 eV 0 fm 0 fm World initStep - 1 -7.9 mum -5.77 cm 1.62 cm 0 eV 3.91 keV 151 mum 151 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 -130 mum 1.14 mm 995 eV 0 eV 0 fm 0 fm World initStep - 1 0 fm -130 mum 1.14 mm 0 eV 1.99 keV 58.1 mum 58.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 -17.5 cm 2.16 cm 1.8 GeV 86.2 keV 21.5 cm 21.5 cm World eIoni - 2 -506 nm -19.4 cm 2.21 cm 1.99 GeV 12.1 keV 1.88 cm 23.4 cm World eIoni - 3 -579 nm -19.7 cm 2.21 cm 2.02 GeV 1.97 keV 2.97 mm 23.7 cm World eIoni - 4 -1.11 mum -23 cm 2.29 cm 2.35 GeV 12.1 keV 3.32 cm 27 cm World eIoni - 5 -1.11 mum -23 cm 2.29 cm 2.35 GeV 0 eV 0 fm 27 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.11 mum -23 cm 2.29 cm 2.76 keV 0 eV 0 fm 0 fm World initStep - 1 -1.11 mum -23 cm 2.29 cm 568 eV 2.19 keV 124 mum 124 mumOutOfWorldTransportation + 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 -579 nm -19.7 cm 2.21 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -579 nm -19.7 cm 2.21 cm 0 eV 2.34 keV 72.2 mum 72.2 mum World eIoni + 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 -506 nm -19.4 cm 2.21 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 -506 nm -19.4 cm 2.21 cm 0 eV 2.41 keV 75 mum 75 mum World eIoni + 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 -17.5 cm 2.16 cm 2.59 keV 0 eV 0 fm 0 fm World initStep - 1 0 fm -17.5 cm 2.16 cm 0 eV 4.25 keV 231 mum 231 mum World eIoni + 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep 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 + +********************************************************************************************************* +* 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 Run terminated. Run Summary Number of events processed : 100 - User=0.62s Real=1.29s Sys=0.67s + User=0.63s Real=0.97s Sys=0.33s 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 2bb735cca6..b25b078dc6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02CalorimeterSD.hh b/examples/extended/field/field02/include/F02CalorimeterSD.hh index 9de138482c..8a877906d5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorConstruction.hh b/examples/extended/field/field02/include/F02DetectorConstruction.hh index 926d862d7c..b2fe7a6853 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorMessenger.hh b/examples/extended/field/field02/include/F02DetectorMessenger.hh index a728f01ebb..9aac1275ac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02ElectroMagneticField.hh b/examples/extended/field/field02/include/F02ElectroMagneticField.hh index ad00ee3fd9..13132b7c9f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 7c5cab61d7..efc9497bdb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02EventActionMessenger.hh b/examples/extended/field/field02/include/F02EventActionMessenger.hh index 433dac48a2..2ee206dc51 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02FieldMessenger.hh b/examples/extended/field/field02/include/F02FieldMessenger.hh index e208669394..f9baee22ce 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02PhysicsList.hh b/examples/extended/field/field02/include/F02PhysicsList.hh index a835050c22..59ba19cdf9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef F02PhysicsList_h diff --git a/examples/extended/field/field02/include/F02PhysicsListMessenger.hh b/examples/extended/field/field02/include/F02PhysicsListMessenger.hh index 6029177798..04e98bee75 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh index c62e1806ae..92c07d871e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh index 02a0056e14..71c536aff8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02RunAction.hh b/examples/extended/field/field02/include/F02RunAction.hh index 7299af4301..53f403252a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02RunMessenger.hh b/examples/extended/field/field02/include/F02RunMessenger.hh index 1587359b3f..0eb334b433 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02StepCut.hh b/examples/extended/field/field02/include/F02StepCut.hh index fb6167e1be..d26920d894 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingAction.hh b/examples/extended/field/field02/include/F02SteppingAction.hh index cdfc42edf6..2e7e91e1c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingMessenger.hh b/examples/extended/field/field02/include/F02SteppingMessenger.hh index feaa5261c5..86553a6b4a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/include/F02SteppingVerbose.hh b/examples/extended/field/field02/include/F02SteppingVerbose.hh index 1f3d7a68a2..f3a0971c7a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/include/F02VisManager.hh b/examples/extended/field/field02/include/F02VisManager.hh index dbd43c8dd3..b078057cae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02CalorHit.cc b/examples/extended/field/field02/src/F02CalorHit.cc index c93b7b0791..3c20e8144f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02CalorimeterSD.cc b/examples/extended/field/field02/src/F02CalorimeterSD.cc index 93814e0b8f..f79eeac33c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorConstruction.cc b/examples/extended/field/field02/src/F02DetectorConstruction.cc index e1d0ff9292..55d23c448f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorMessenger.cc b/examples/extended/field/field02/src/F02DetectorMessenger.cc index 119c53989e..ab1cd978ba 100644 --- a/examples/extended/field/field02/src/F02DetectorMessenger.cc +++ b/examples/extended/field/field02/src/F02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02DetectorMessenger.cc,v 1.3 2001/10/25 09:30:39 grichine Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02ElectroMagneticField.cc b/examples/extended/field/field02/src/F02ElectroMagneticField.cc index e9c834bb87..5ba46508e2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // User Field class implementation. diff --git a/examples/extended/field/field02/src/F02EventAction.cc b/examples/extended/field/field02/src/F02EventAction.cc index 542d27fb74..f6f2a244e2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02EventActionMessenger.cc b/examples/extended/field/field02/src/F02EventActionMessenger.cc index 942c9a3c30..eb19b09250 100644 --- a/examples/extended/field/field02/src/F02EventActionMessenger.cc +++ b/examples/extended/field/field02/src/F02EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02EventActionMessenger.cc,v 1.3 2001/10/15 17:20:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02FieldMessenger.cc b/examples/extended/field/field02/src/F02FieldMessenger.cc index 8a2c764252..b4db4e7822 100644 --- a/examples/extended/field/field02/src/F02FieldMessenger.cc +++ b/examples/extended/field/field02/src/F02FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02FieldMessenger.cc,v 1.3 2001/10/15 17:20:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02PhysicsList.cc b/examples/extended/field/field02/src/F02PhysicsList.cc index 429ee80750..1bd5db1cc3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc index 458be5a10e..12cd8afcaa 100644 --- a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc +++ b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsListMessenger.cc,v 1.3 2001/10/15 17:20:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc index 99b5b7a4ca..e2f8db3fb0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc index 43c42727de..ba5fc138d8 100644 --- a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorMessenger.cc,v 1.3 2001/10/15 17:20:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02RunAction.cc b/examples/extended/field/field02/src/F02RunAction.cc index 91e2445f13..32aad5d1be 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02RunMessenger.cc b/examples/extended/field/field02/src/F02RunMessenger.cc index 6f7fd45770..faf9ee9fbb 100644 --- a/examples/extended/field/field02/src/F02RunMessenger.cc +++ b/examples/extended/field/field02/src/F02RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02RunMessenger.cc,v 1.3 2001/10/15 17:20:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02StepCut.cc b/examples/extended/field/field02/src/F02StepCut.cc index 5d45a40c27..44174b84f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "F02StepCut.hh" diff --git a/examples/extended/field/field02/src/F02SteppingAction.cc b/examples/extended/field/field02/src/F02SteppingAction.cc index c5649746ed..a5e0675888 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field02/src/F02SteppingMessenger.cc b/examples/extended/field/field02/src/F02SteppingMessenger.cc index 7061fc55c3..d9900f6645 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/src/F02SteppingVerbose.cc b/examples/extended/field/field02/src/F02SteppingVerbose.cc index e7de23330c..3f5ab0be30 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/src/F02VisManager.cc b/examples/extended/field/field02/src/F02VisManager.cc index eba147c4bf..953e3e0fd3 100644 --- a/examples/extended/field/field02/src/F02VisManager.cc +++ b/examples/extended/field/field02/src/F02VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: F02VisManager.cc,v 1.3 2001/12/12 15:22:31 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/field/field03/field03.cc b/examples/extended/field/field03/field03.cc index b7defa7e78..aa39201e8f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out index 84892667fa..912e93bae5 100644 --- a/examples/extended/field/field03/field03.out +++ b/examples/extended/field/field03/field03.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** G4ClassicalRK4 (default) is called @@ -13,8 +13,13 @@ 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) ***** Table : Nb of materials = 11 ***** @@ -74,15 +79,13 @@ fRadiatorMat = Air WorldMaterial = Air zModule = 21790 mm 21790 mm -F03PhysicsList::SetCuts:CutLength : 1 mm -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. +F03PhysicsList::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 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 @@ -126,7 +129,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)=18.39 s +total time(SetCuts)=15.84 s G4ClassicalRK4 (default) is called The minimal step is equal to 10 mm ============= The cut Energy ============================== @@ -167,10 +170,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -178,10 +186,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -189,10 +202,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -200,10 +218,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -211,10 +234,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -222,10 +250,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -233,10 +266,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -244,10 +282,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -255,10 +298,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -266,10 +314,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -277,10 +330,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -288,10 +346,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -299,10 +362,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -310,10 +378,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -321,10 +394,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -332,10 +410,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -343,10 +426,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -354,10 +442,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -365,10 +458,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -376,10 +474,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -387,10 +490,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -398,10 +506,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -409,10 +522,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -420,10 +538,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -431,10 +554,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -442,10 +570,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -453,10 +586,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -464,10 +602,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -475,10 +618,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -486,10 +634,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -497,10 +650,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -508,10 +666,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -519,10 +682,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -530,10 +698,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -541,10 +714,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -552,10 +730,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -563,10 +746,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -574,10 +762,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -585,10 +778,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -596,10 +794,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -607,10 +810,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -618,10 +826,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -629,10 +842,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -640,10 +858,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -651,10 +874,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -662,10 +890,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -673,10 +906,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -684,10 +922,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -695,10 +938,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -706,10 +954,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ---> Begin of Event: 50 @@ -719,10 +972,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -730,10 +988,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -741,10 +1004,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -752,10 +1020,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -763,10 +1036,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -774,10 +1052,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -785,10 +1068,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -796,10 +1084,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -807,10 +1100,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -818,10 +1116,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -829,10 +1132,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -840,10 +1148,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -851,10 +1164,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -862,10 +1180,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -873,10 +1196,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -884,10 +1212,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -895,10 +1228,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -906,10 +1244,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -917,10 +1260,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -928,10 +1276,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -939,10 +1292,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -950,10 +1308,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -961,10 +1324,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -972,10 +1340,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -983,10 +1356,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -994,10 +1372,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1005,10 +1388,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1016,10 +1404,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1027,10 +1420,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1038,10 +1436,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1049,10 +1452,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1060,10 +1468,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1071,10 +1484,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1082,10 +1500,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1093,10 +1516,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1104,10 +1532,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1115,10 +1548,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1126,10 +1564,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1137,10 +1580,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1148,10 +1596,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1159,10 +1612,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1170,10 +1628,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1181,10 +1644,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1192,10 +1660,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1203,10 +1676,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1214,10 +1692,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1225,10 +1708,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1236,10 +1724,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1247,10 +1740,15 @@ 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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1258,14 +1756,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.0143847 cm 21.79201 m 500 MeV0.0010174972 eV 20.879462 cm 20.879462 cm World Transportation 0 fm 390.36418 mum -920.66053 mum - 2 0 fm 8.9373503 cm 21.702379 m 500 MeV0.00053671556 eV 11.013502 cm 31.892965 cm RadSlice Transportation 0 fm 567.53011 mum -823.35264 mum - 3 0 fm 23.618228 cm 21.561492 m 500 MeV0.0010733174 eV 22.027004 cm 53.919969 cm Radiator Transportation 0 fm 846.0089 mum -533.16878 mum - 4 0 fm 1.0095995 m 22.037036 m 500 MeV0.0059035301 eV 1.2114852 m 1.7506849 m OutOfWorld Transportation 0 fm -93.957262 mum 995.57623 mum + 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 + 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.64s Real=0.79s Sys=0.15s + User=0.68s Real=0.93s Sys=0.25s 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 fa13ac464e..5853c748e8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03CalorimeterSD.hh b/examples/extended/field/field03/include/F03CalorimeterSD.hh index 68cc391699..bcf658b87d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorConstruction.hh b/examples/extended/field/field03/include/F03DetectorConstruction.hh index f7cfefc8ff..7358afcb25 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorMessenger.hh b/examples/extended/field/field03/include/F03DetectorMessenger.hh index fd6641b9d2..9925c4f222 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03ElectroMagneticField.hh b/examples/extended/field/field03/include/F03ElectroMagneticField.hh index e85ddd7bf4..c00f0f8f8c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 1e6b86ad32..c360685012 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03EventActionMessenger.hh b/examples/extended/field/field03/include/F03EventActionMessenger.hh index b5fe58890d..8951a8823b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03FieldMessenger.hh b/examples/extended/field/field03/include/F03FieldMessenger.hh index 0c2b72b950..8d412864a7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03PhysicsList.hh b/examples/extended/field/field03/include/F03PhysicsList.hh index d04ef73b4b..cb2783eed0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef F03PhysicsList_h diff --git a/examples/extended/field/field03/include/F03PhysicsListMessenger.hh b/examples/extended/field/field03/include/F03PhysicsListMessenger.hh index b9c9ac7d0c..2785e700a8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh index dcc32c623e..1737091ff8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh index 0f246600eb..09bf2773a6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03RunAction.hh b/examples/extended/field/field03/include/F03RunAction.hh index 10dbbe88a8..fff088f62d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03RunMessenger.hh b/examples/extended/field/field03/include/F03RunMessenger.hh index 18d35cfbe3..c38f31c945 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03StepCut.hh b/examples/extended/field/field03/include/F03StepCut.hh index b674b06522..9af39b54f4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingAction.hh b/examples/extended/field/field03/include/F03SteppingAction.hh index 9463b02ae7..299a4eb644 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingMessenger.hh b/examples/extended/field/field03/include/F03SteppingMessenger.hh index 1bba5ebc3b..ec6e165a21 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/include/F03SteppingVerbose.hh b/examples/extended/field/field03/include/F03SteppingVerbose.hh index d64e706129..340e7c3785 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field03/include/F03VisManager.hh b/examples/extended/field/field03/include/F03VisManager.hh index 7f76291061..0de212a516 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03CalorHit.cc b/examples/extended/field/field03/src/F03CalorHit.cc index b585a4c6a1..5ada1132b7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03CalorimeterSD.cc b/examples/extended/field/field03/src/F03CalorimeterSD.cc index ce66cd244e..245163a223 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorConstruction.cc b/examples/extended/field/field03/src/F03DetectorConstruction.cc index 6d1ea594e1..d33ef340a6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorMessenger.cc b/examples/extended/field/field03/src/F03DetectorMessenger.cc index a515bf50f5..99951ba95a 100644 --- a/examples/extended/field/field03/src/F03DetectorMessenger.cc +++ b/examples/extended/field/field03/src/F03DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03DetectorMessenger.cc,v 1.3 2001/10/25 10:03:54 grichine Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03ElectroMagneticField.cc b/examples/extended/field/field03/src/F03ElectroMagneticField.cc index 454f78486f..6b8ba818a6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // User Field class implementation. diff --git a/examples/extended/field/field03/src/F03EventAction.cc b/examples/extended/field/field03/src/F03EventAction.cc index 3e7d0cb276..f33eded72c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03EventActionMessenger.cc b/examples/extended/field/field03/src/F03EventActionMessenger.cc index 16baa25068..48fd73f93f 100644 --- a/examples/extended/field/field03/src/F03EventActionMessenger.cc +++ b/examples/extended/field/field03/src/F03EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03EventActionMessenger.cc,v 1.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03FieldMessenger.cc b/examples/extended/field/field03/src/F03FieldMessenger.cc index 447a2564b6..11c9edbaa2 100644 --- a/examples/extended/field/field03/src/F03FieldMessenger.cc +++ b/examples/extended/field/field03/src/F03FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03FieldMessenger.cc,v 1.3 2001/10/15 17:20:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03PhysicsList.cc b/examples/extended/field/field03/src/F03PhysicsList.cc index f9c36cd223..f79cab435f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc index c54da1ec0d..13be484fa7 100644 --- a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc +++ b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsListMessenger.cc,v 1.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc index 0fc5d60710..a8ae78fd54 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc index 9478b45bb2..e93b53bbcf 100644 --- a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorMessenger.cc,v 1.3 2001/10/15 17:20:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03RunAction.cc b/examples/extended/field/field03/src/F03RunAction.cc index b7a9c03b66..374678605d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "F03RunAction.hh" diff --git a/examples/extended/field/field03/src/F03RunMessenger.cc b/examples/extended/field/field03/src/F03RunMessenger.cc index 00cea99aee..7b7d5f099f 100644 --- a/examples/extended/field/field03/src/F03RunMessenger.cc +++ b/examples/extended/field/field03/src/F03RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03RunMessenger.cc,v 1.3 2001/10/15 17:20:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03StepCut.cc b/examples/extended/field/field03/src/F03StepCut.cc index ce92b5bd4c..f3caf54199 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "F03StepCut.hh" diff --git a/examples/extended/field/field03/src/F03SteppingAction.cc b/examples/extended/field/field03/src/F03SteppingAction.cc index e2bef5d20b..ecbc4b5c02 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/field/field03/src/F03SteppingMessenger.cc b/examples/extended/field/field03/src/F03SteppingMessenger.cc index 5137ae739d..a71e23bec5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/src/F03SteppingVerbose.cc b/examples/extended/field/field03/src/F03SteppingVerbose.cc index 4b60a46482..e44128a0f0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/field/field03/src/F03VisManager.cc b/examples/extended/field/field03/src/F03VisManager.cc index e0a53e2663..4f0f69c79f 100644 --- a/examples/extended/field/field03/src/F03VisManager.cc +++ b/examples/extended/field/field03/src/F03VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: F03VisManager.cc,v 1.3 2001/12/12 15:22:31 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.cc b/examples/extended/g3tog4/clGeometry/clGeometry.cc index c78a7ccc9b..82091304bd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out index 072708a5f9..a551c13242 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.out +++ b/examples/extended/g3tog4/clGeometry/clGeometry.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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" @@ -65,16 +65,14 @@ Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visib G4VUserPhysicsList::Construct() Construct particles Construct processes + +phot: Total cross sections from Sandia parametrisation. G3toG4PhysicsList::SetCuts:CutLength : 2 mm G4VUserPhysicsList::SetCutValue :Set cuts for gamma -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. - 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 @@ -291,7 +289,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=0.01s Sys=0.01s + User=0s Real=0s Sys=0s /gun/particle mu+ /run/beamOn 1 ### Run 5 start. diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh index 9dc5424c29..f059ab7c9f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G3toG4DetectorConstruction_h #define G3toG4DetectorConstruction_h 1 diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh index 872f7c35ef..5b3159441d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh index f6ee4fb410..88d171b926 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh index 35a9f5c3f2..a5ecaeeac3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh index 923bc9949b..b94c2071f0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh index aa024f2b08..5e88f97015 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh index 142c6f4cca..65cd600909 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc index 40f5af993d..21ed19aa68 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc index a451be0181..2060eb5bd9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc index 75f313dec4..553c3b7c7f 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.cc,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc index ec7536cee1..4c0d402bf1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc index 6c285fcfbd..5a9d345ef8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc index 43c435c9e5..dcfefe70bf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc index c163973ffe..92082aeea1 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4VisManager.cc,v 1.4 2001/11/15 13:09:39 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/g3tog4/cltog4/cltog4.cc b/examples/extended/g3tog4/cltog4/cltog4.cc index 8f7331e035..9fd5e06f0e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/cltog4/cltog4.out b/examples/extended/g3tog4/cltog4/cltog4.out index 172a8663cf..8df74c2462 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.out +++ b/examples/extended/g3tog4/cltog4/cltog4.out @@ -1,15 +1,15 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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" /run/verbose 1 /tracking/verbose 1 /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 @@ -48,15 +48,13 @@ Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visib Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1) linestyle: solid, line width: 1 drawing style unforced -G3toG4PhysicsList::SetCuts:CutLength : 2 mm -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. +G3toG4PhysicsList::SetCuts:CutLength : 2 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 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 @@ -145,7 +143,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/test602/test602.in +/control/execute /afs/cern.ch/sw/geant4/stt/dev2/src/geant4/tests/test602/test602.in /control/verbose 1 /tracking/verbose 1 /run/initialize @@ -249,5 +247,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=0.01s Real=0.02s Sys=0.01s + User=0s Real=0.03s Sys=0.03s 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 5181fd7c2c..568214bdbc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G3toG4DetectorConstruction_h #define G3toG4DetectorConstruction_h 1 diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh index e4f3a5deb7..bfa16ae13d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh index 66caf9b0db..14b925762e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh index 21dea7ecdb..f9a07cde35 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh index da18c7afb0..48314c65b2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh index 3e1263a827..04be0d74bf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh b/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh index e4aa2cf0da..55d008bc0e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc index 3b5b096463..a823638f79 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc index c2b53b6be6..6b972a04e4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc index 250516e87c..2a8b59ae53 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.cc,v 1.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc index 355a0fb52b..c53bd3e292 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc index 95d57d5a79..5af18001b6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc index 81ff55d10a..628916fef2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc b/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc index afb91a1a8a..562a5f1a03 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4VisManager.cc,v 1.4 2001/11/15 13:09:41 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/extended/gdml/GNUmakefile b/examples/extended/gdml/GNUmakefile new file mode 100644 index 0000000000..fdb3de6bcf --- /dev/null +++ b/examples/extended/gdml/GNUmakefile @@ -0,0 +1,16 @@ +# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# -------------------------------------------------------------- +# Makes libraries and applications: +# libgdml sample N03gdml +# GNUmakefile for gdml libraries and examples. Radovan Chytracek 30/05/2002. + +SUBDIRS = libgdml sample N03gdml + +all: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE)); done + +clean: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) clean); done + +clean_libs: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) clean_libs); done diff --git a/examples/extended/gdml/History b/examples/extended/gdml/History new file mode 100644 index 0000000000..fedf2ff761 --- /dev/null +++ b/examples/extended/gdml/History @@ -0,0 +1,24 @@ +$Id: History,v 1.1 2002/06/03 10:32:56 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +June 3rd, 2002 R.Chytracek - exgdml-V04-00-00 +- First implementation of GDML example for detector description persistency. + +June 3rd, 2002 G.Cosmo +- Created. diff --git a/examples/extended/gdml/INSTALL b/examples/extended/gdml/INSTALL new file mode 100644 index 0000000000..832f7a22bf --- /dev/null +++ b/examples/extended/gdml/INSTALL @@ -0,0 +1,41 @@ +# $Id: INSTALL,v 1.3 2002/06/10 11:57:38 radoone Exp $ +GDML Processor for Geant4 setup and build instructions +====================================================== + +Xerces-C XML Parser +------------------- + +Set the environment variable XERCESCROOT: + +For example AFS users can do: + +export XERCESCROOT=/afs/cern.ch/sw/geant4/dev/XercesC/$G4SYSTEM + +Build GDML Processor +-------------------- + +cd $G4INSTALL/examples/extended/gdml +gmake + +Run sample applications +----------------------- + +Set LD_LIBRARY_PATH to the location of the G4 shared libraries + Xerces-C libraries: + +export LD_LIBRARY_PATH=\ +$G4WORKDIR/lib/$G4SYSTEM:\ +$G4WORKDIR/tmp/$G4SYSTEM:\ +/afs/cern.ch/sw/geant4/dev/Mesa/$G4SYSTEM/lib:\ +$XERCESCROOT/lib:. + +1. sample + +cd $G4INSTALL/examples/extended/gdml/sample +$G4WORKDIR/bin/$G4SYSTEM/gogdml + +2. N03gdml + +cd $G4INSTALL/examples/extended/gdml/N03gdml +$G4WORKDIR/bin/$G4SYSTEM/N03gdml + + diff --git a/examples/extended/gdml/N03gdml/GNUmakefile b/examples/extended/gdml/N03gdml/GNUmakefile new file mode 100644 index 0000000000..7da14d3fb4 --- /dev/null +++ b/examples/extended/gdml/N03gdml/GNUmakefile @@ -0,0 +1,56 @@ +# $Id: GNUmakefile,v 1.3 2002/06/11 15:48:31 radoone Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := NO3gogdml +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +GDMLINSTALL := $(G4INSTALL)/examples/extended/gdml +GDMLLIBROOT := $(GDMLINSTALL)/libgdml + +CPPFLAGS += \ + -I$(GDMLINSTALL)/libgdml/saxana/include \ + -I$(GDMLINSTALL)/libgdml/schema/include \ + -I$(GDMLINSTALL)/libgdml/management/include \ + -I$(GDMLINSTALL)/libgdml/processes/include \ + -I$(GDMLINSTALL)/libgdml/subscribers/include \ + -I$(XERCESCROOT)/include + +EXTRALIBS += \ + -lGDMLsaxana \ + -lGDMLmanagement \ + -lGDMLschema \ + -lGDMLprocesses \ + -lGDMLsubscribers \ + -L $(XERCESCROOT)/lib -lxerces-c + +EXTRALIBSSOURCEDIRS += \ + $(GDMLLIBROOT)/saxana \ + $(GDMLLIBROOT)/schema \ + $(GDMLLIBROOT)/processes \ + $(GDMLLIBROOT)/management \ + $(GDMLLIBROOT)/subscribers + +# EXTRA_LINK_DEPENDENCIES := \ +# $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name)/libNO3gogdml.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 +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* diff --git a/examples/extended/gdml/N03gdml/NO3.gdml b/examples/extended/gdml/N03gdml/NO3.gdml new file mode 100644 index 0000000000..e6c7e31b50 --- /dev/null +++ b/examples/extended/gdml/N03gdml/NO3.gdml @@ -0,0 +1,132 @@ + + + + + + + + AbsorberThickness+GapThickness + NbOfLayers*LayerThickness + 1.2*CalorThickness + 1.2*CalorSizeYZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + +

+ + + + +

+ + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/extended/gdml/N03gdml/NO3gogdml.cc b/examples/extended/gdml/N03gdml/NO3gogdml.cc new file mode 100644 index 0000000000..d2839dd7b5 --- /dev/null +++ b/examples/extended/gdml/N03gdml/NO3gogdml.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: NO3gogdml.cc,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// 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 "ExN03VisManager.hh" +#endif + +#include "ExN03DetectorConstruction.hh" +#include "ExN03PhysicsList.hh" +#include "ExN03PrimaryGeneratorAction.hh" +#include "ExN03RunAction.hh" +#include "ExN03EventAction.hh" +#include "ExN03SteppingAction.hh" +#include "ExN03SteppingVerbose.hh" + +int main(int argc,char** argv) { + + // choose the Random engine + HepRandom::setTheEngine(new RanecuEngine); + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new ExN03SteppingVerbose); + + // Construct the default run manager + G4RunManager * runManager = new G4RunManager; + + // set mandatory initialization classes + ExN03DetectorConstruction* detector = new ExN03DetectorConstruction; + runManager->SetUserInitialization(detector); + runManager->SetUserInitialization(new ExN03PhysicsList); + + 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 ExN03VisManager; + visManager->Initialize(); +#endif + + // set user action classes + runManager->SetUserAction(new ExN03PrimaryGeneratorAction(detector)); + runManager->SetUserAction(new ExN03RunAction); + runManager->SetUserAction(new ExN03EventAction); + runManager->SetUserAction(new ExN03SteppingAction); + + //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/gdml/N03gdml/README b/examples/extended/gdml/N03gdml/README new file mode 100644 index 0000000000..4c8e0da08b --- /dev/null +++ b/examples/extended/gdml/N03gdml/README @@ -0,0 +1,150 @@ +$Id: README,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + ExampleN03 + ---------- + + This example simulates a simple Sampling Calorimeter setup. + + 1- GEOMETRY DEFINITION + + The calorimeter is a box made of a given number of layers. A layer + consists of an absorber plate and of a detection gap. The layer is + replicated. + + Six parameters define the calorimeter : + - the material of the absorber, + - the thickness of an absorber plate, + - the material of the detection gap, + - the thickness of a gap, + - the number of layers, + - the transverse size of the calorimeter (the input face is a square). + + In addition a transverse uniform magnetic field can be applied. + + The default geometry is constructed in DetectorConstruction class, + but all of the above parameters can be modified interactively via + the commands defined in the DetectorMessenger class. + + NB. The thickness of the absorber or of the gap can be set to zero + (but not together), and the number of layers to 1. In this case we + have a unique homogeneous block of matter, which looks like + a bubble chamber rather than a calorimeter ... + (see the macro of commands: newgeom.mac) + + 2- AN EVENT : THE PRIMARY GENERATOR + + The primary kinematic consists of a single particle which hits the + calorimeter perpendicular to the input face. The type of the particle + and its energy are set in the PrimaryGeneratorAction class, and can + be changed via the G4 build-in commands of ParticleGun class (see + the macros provided with this example). + + In addition one can choose randomly the impact point of the incident + particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. + + A RUN is a set of events. + + 3- DETECTOR RESPONSE + + A HIT is a record, event per event and volume per volume, of all the + informations needed to simulate and analyse the detector response. + + In this example a CalorHit is defined as a set of 4 informations per + layer : + - the total energy deposit in the absorber plate, + - the total tracklength of all charged particles in the absorber plate, + - the total energy deposit in the detection gap, + - the total tracklength of all charged particles in the detection gap. + + Therefore both the absorber and the detection gap are declared + 'sensitive detector' (SD), which means they can contribute to the hit. + + At the end of a run, from the CalorHitsCollection, one can study the + calorimeter performances such as : + - shower profile, + - calorimeter resolution, + - pi/e ratio ... + + 4- VISUALIZATION + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via a set of /vis/ commands + in the macro vis.mac. This macro is automatically read from + the main in case of interactive running mode. + + The detector has a default view which is a longitudinal view of the + calorimeter. + + The tracks are drawn at the end of event, and erased at the end of run. + Optionaly one can choose to draw all particles, only the charged, + or neutral or none. This command is build in EventActionMessenger class. + + NB 1: the visualization (with OpenGL driver) assumes two things: + 1- the visualisation & interfaces categories have been compiled + with the environment variable G4VIS_BUILD_OPENGLX_DRIVER. + 2- exampleN03.cc has been compiled with G4VIS_USE_OPENGLX. + + NB 2: the visualization (with DAWNFILE driver) assumes two things: + 1- the visualisation & interfaces categories have been compiled + with the environment variable G4VIS_BUILD_DAWNFILE_DRIVER. + 2- exampleN03.cc has been compiled with G4VIS_USE_DAWNFILE. + + NN 3: The macros "visTutor/exN03VisX.mac" are tutorial macros for + visualization. They can be tried as: + % $G4BINDIR/exampleN03 + idle > /control/execute visTutor/exN03VisX.mac + For details, see comment lines described in the macro files. + These macros are designed to help your understanding the + User's Guide. + + 5- PHYSICS DEMO + + The particle's type and the physic processes which will be available + in this example are set in PhysicsList class. + + In addition the build-in interactive command: + /process/(in)activate processName + allows to activate/inactivate the processes one by one. + Then one can well visualize the processes one by one, especially + in the bubble chamber setup with a transverse magnetic field. + + As a homework try to visualize a gamma conversion alone, + or the effect of the multiple scattering. + + 6- USER INTERFACES + + The default command interface, called G4UIterminal, is done via + standart cin/G4cout. + On Linux and Sun-cc on can use a smarter command interface G4UItcsh. + It is enough to set the environment variable G4UI_USE_TCSH + + On can use a Motif driven command interface (called G4UIXm) if: + 1- interfaces category has been compiled with G4UI_BUILD_XM_SESSION + 2- exampleN03.cc has been compiled with G4UI_USE_XM. + + + 7- HOW TO START ? + + - compile and link to generate an executable + % cd N03 + % gmake + + - execute N03 in 'batch' mode from macro files + % exampleN03 run1.mac + + - execute N03 in 'interactive mode' with visualization + % exampleN03 + .... + Idle> type your commands. For instance: + Idle> /control/execute newgeom.mac + .... + Idle> exit + + + diff --git a/examples/extended/gdml/N03gdml/exampleN03.err b/examples/extended/gdml/N03gdml/exampleN03.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/extended/gdml/N03gdml/exampleN03.in b/examples/extended/gdml/N03gdml/exampleN03.in new file mode 100644 index 0000000000..c661f44b10 --- /dev/null +++ b/examples/extended/gdml/N03gdml/exampleN03.in @@ -0,0 +1,28 @@ + +# e+ 300MeV +/gun/particle e+ +/gun/energy 300 MeV +/run/beamOn 1 +# +# list the existing physics processes +/process/list +# +# switch off MultipleScattering +/process/inactivate msc +/run/beamOn 1 +# +# switch on MultipleScattering +/process/activate msc +# +# change detector parameter +/calor/setAbsMat Aluminium +/calor/setGapMat Aerogel +/calor/setAbsThick 2. cm +/calor/setGapThick 5. cm +/calor/setNbOfLayers 30 +/calor/setSizeYZ 1.5 m +/calor/update +/gun/particle gamma +/gun/energy 500 MeV +/run/beamOn 1 +exit diff --git a/examples/extended/gdml/N03gdml/exampleN03.large_N.in b/examples/extended/gdml/N03gdml/exampleN03.large_N.in new file mode 100644 index 0000000000..b0f759b2fb --- /dev/null +++ b/examples/extended/gdml/N03gdml/exampleN03.large_N.in @@ -0,0 +1,30 @@ + +# e+ 300MeV +/gun/particle e+ +/gun/energy 300 MeV +/run/beamOn 1 +# +# list the existing physics processes +/process/list +# +# switch off MultipleScattering +/process/inactivate msc +/run/beamOn 1 +# +# switch on MultipleScattering +/process/activate msc +# +# change detector parameter +/calor/setAbsMat Aluminium +/calor/setGapMat Aerogel +/calor/setAbsThick 2. cm +/calor/setGapThick 5. cm +/calor/setNbOfLayers 30 +/calor/setSizeYZ 1.5 m +/calor/update +# +/gun/particle gamma +/gun/energy 500 MeV +/event/printModulo 500 +/run/beamOn 5000 +exit diff --git a/examples/extended/gdml/N03gdml/exampleN03.out b/examples/extended/gdml/N03gdml/exampleN03.out new file mode 100644 index 0000000000..7da3de035d --- /dev/null +++ b/examples/extended/gdml/N03gdml/exampleN03.out @@ -0,0 +1,218 @@ +********************************************** + Geant4 version $Name: geant4-04-01 $ + (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) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +***** Table : Nb of materials = 12 ***** + + Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm + ---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm + ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm + ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + + Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % + + Material: quartz density: 2.200 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 12.295 cm + ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 46.75 % Abundance 33.33 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 53.25 % Abundance 66.67 % + + Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m + ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + + Material: Aerogel density: 200.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.493 m + ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 29.22 % Abundance 11.12 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 66.49 % Abundance 44.42 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.19 % Abundance 44.37 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.10 % Abundance 0.09 % + + Material: CarbonicGas density: 27.000 mg/cm3 temperature: 325.00 K pressure: 50.00 atm RadLength: 13.406 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % + + Material: WaterSteam density: 0.300 mg/cm3 temperature: 500.00 K pressure: 2.00 atm RadLength: 1.203 km + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + + 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.786 km + ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + + + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of Lead + 5mm of liquidArgon ] +------------------------------------------------------------ +ExN03PhysicsList::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. + +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. + +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. + +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 + Aluminium 1 mm 1 mm + liquidArgon 1 mm 1 mm + Lead 1 mm 1 mm + Water 1 mm 1 mm + Scintillator 1 mm 1 mm + quartz 1 mm 1 mm + Air 1 mm 1 mm + Aerogel 1 mm 1 mm + CarbonicGas 1 mm 1 mm + WaterSteam 1 mm 1 mm + Galactic 1 mm 1 mm + Beam 1 mm 1 mm +Cut in energy + Aluminium 6.89 keV 597 keV + liquidArgon 6.18 keV 343 keV + Lead 101 keV 1.38 MeV + Water 2.9 keV 347 keV + Scintillator 2.37 keV 356 keV + quartz 5.52 keV 534 keV + Air 990 eV 990 eV + Aerogel 1.71 keV 119 keV + CarbonicGas 990 eV 36.5 keV + WaterSteam 990 eV 990 eV + Galactic 990 eV 990 eV + Beam 990 eV 990 eV +=================================================== +### Run 0 start. + +---> Begin of event: 0 + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 9876, 54321 +---------------------------------------- +---> End of event: 0 + Absorber: total energy: 283.131 MeV total track length: 19.9534 cm + Gap: total energy: 12.4027 MeV total track length: 6.03802 cm + + 10 hits are stored in ExN03CalorHitsCollection. + Transportation, hIoni, msc, eIoni + eBrem, annihil, conv, compt + phot, MuIoni, MuBrems, MuPairProd + Decay +### Run 1 start. + +---> Begin of event: 0 + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 1291960900, 759167195 +---------------------------------------- +---> End of event: 0 + Absorber: total energy: 281.881 MeV total track length: 19.6742 cm + Gap: total energy: 15.4463 MeV total track length: 8.07961 cm + + 10 hits are stored in ExN03CalorHitsCollection. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of Aluminium + 5mm of liquidArgon ] +------------------------------------------------------------ + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of Aluminium + 5mm of Aerogel ] +------------------------------------------------------------ + +------------------------------------------------------------ +---> The calorimeter is 30 layers of: [ 20mm of Aluminium + 50mm of Aerogel ] +------------------------------------------------------------ +### Run 2 start. + +---> Begin of event: 0 + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 796806890, 2027378855 +---------------------------------------- +---> End of event: 0 + Absorber: total energy: 374.373 MeV total track length: 90.1156 cm + Gap: total energy: 92.9847 MeV total track length: 2.59813 m + + 18 hits are stored in ExN03CalorHitsCollection. +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/gdml/N03gdml/exampleN03gdml.in b/examples/extended/gdml/N03gdml/exampleN03gdml.in new file mode 100644 index 0000000000..2b00056764 --- /dev/null +++ b/examples/extended/gdml/N03gdml/exampleN03gdml.in @@ -0,0 +1,27 @@ +# e+ 300MeV +/gun/particle e+ +/gun/energy 300 MeV +/run/beamOn 1 +# +# list the existing physics processes +/process/list +# +# switch off MultipleScattering +/process/inactivate msc +/run/beamOn 1 +# +# switch on MultipleScattering +/process/activate msc +# +# change detector parameter +# /calor/setAbsMat Aluminium +# /calor/setGapMat Aerogel +# /calor/setAbsThick 2. cm +# /calor/setGapThick 5. cm +# /calor/setNbOfLayers 30 +# /calor/setSizeYZ 1.5 m +# /calor/update +/gun/particle gamma +/gun/energy 500 MeV +/run/beamOn 1 +#exit diff --git a/examples/extended/gdml/N03gdml/exampleN03gdml.large_N.in b/examples/extended/gdml/N03gdml/exampleN03gdml.large_N.in new file mode 100644 index 0000000000..613b86ae6e --- /dev/null +++ b/examples/extended/gdml/N03gdml/exampleN03gdml.large_N.in @@ -0,0 +1,30 @@ + +# e+ 300MeV +/gun/particle e+ +/gun/energy 300 MeV +/run/beamOn 1 +# +# list the existing physics processes +/process/list +# +# switch off MultipleScattering +/process/inactivate msc +/run/beamOn 1 +# +# switch on MultipleScattering +/process/activate msc +# +# change detector parameter +# /calor/setAbsMat Aluminium +# /calor/setGapMat Aerogel +# /calor/setAbsThick 2. cm +# /calor/setGapThick 5. cm +# /calor/setNbOfLayers 30 +# /calor/setSizeYZ 1.5 m +# /calor/update +# +/gun/particle gamma +/gun/energy 500 MeV +/event/printModulo 500 +/run/beamOn 5000 +#exit diff --git a/examples/extended/gdml/N03gdml/exo1.mac b/examples/extended/gdml/N03gdml/exo1.mac new file mode 100644 index 0000000000..ef15c30018 --- /dev/null +++ b/examples/extended/gdml/N03gdml/exo1.mac @@ -0,0 +1,35 @@ +# $Id: exo1.mac,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# +# Macro file for "exampleN03.cc" +# +# this macro can be executed +# during an interactive session: +# +# Idle> /control/execute exo1.mac +# +# +/calor/setNbOfLayers 1 +# +/calor/setAbsMat Aluminium +/calor/setAbsThick 10 cm +# +/calor/setGapMat Air +/calor/setGapThick 0 cm +# +/calor/setSizeYZ 10 cm +# +/calor/update +# +/vis/viewer/zoom 1.3 +# +/process/list +/process/inactivate msc +/process/inactivate eBrem +/process/inactivate compt +/process/inactivate conv +# +/run/particle/setCut 10 cm +/run/initialize +# +/gun/particle e+ +/gun/energy 30 MeV diff --git a/examples/extended/gdml/N03gdml/exo2.mac b/examples/extended/gdml/N03gdml/exo2.mac new file mode 100644 index 0000000000..c9f175932b --- /dev/null +++ b/examples/extended/gdml/N03gdml/exo2.mac @@ -0,0 +1,35 @@ +# $Id: exo2.mac,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# +# Macro file for "exampleN03.cc" +# +# this macro can be executed +# during an interactive session: +# +# Idle> /control/execute exo2.mac +# +# +/calor/setNbOfLayers 1 +# +/calor/setAbsMat Aluminium +/calor/setAbsThick 10 cm +# +/calor/setGapMat Air +/calor/setGapThick 0 cm +# +/calor/setSizeYZ 10 cm +# +/calor/update +# +/vis/viewer/zoom 1.3 +# +/process/list +/process/inactivate msc +/process/inactivate eBrem +/process/inactivate phot +/process/inactivate conv +# +/run/particle/setCut 10 cm +/run/initialize +# +/gun/particle gamma +/gun/energy 10 MeV diff --git a/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh b/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh new file mode 100644 index 0000000000..b5b16ca630 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03CalorHit.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: ExN03CalorHit.hh,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03CalorHit_h +#define ExN03CalorHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03CalorHit : public G4VHit +{ + public: + + ExN03CalorHit(); + ~ExN03CalorHit(); + ExN03CalorHit(const ExN03CalorHit&); + const ExN03CalorHit& operator=(const ExN03CalorHit&); + int operator==(const ExN03CalorHit&) 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 ExN03CalorHitsCollection; + +extern G4Allocator ExN03CalorHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void* ExN03CalorHit::operator new(size_t) +{ + void* aHit; + aHit = (void*) ExN03CalorHitAllocator.MallocSingle(); + return aHit; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void ExN03CalorHit::operator delete(void* aHit) +{ + ExN03CalorHitAllocator.FreeSingle((ExN03CalorHit*) aHit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh b/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh new file mode 100644 index 0000000000..9d7f2277fa --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.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: ExN03CalorimeterSD.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef ExN03CalorimeterSD_h +#define ExN03CalorimeterSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "globals.hh" + +class ExN03DetectorConstruction; +class G4HCofThisEvent; +class G4Step; +#include "ExN03CalorHit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class ExN03CalorimeterSD : public G4VSensitiveDetector +{ + public: + + ExN03CalorimeterSD(G4String, ExN03DetectorConstruction* ); + ~ExN03CalorimeterSD(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*,G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + + ExN03CalorHitsCollection* CalCollection; + ExN03DetectorConstruction* Detector; + G4int* HitID; +}; + +#endif + diff --git a/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh b/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh new file mode 100644 index 0000000000..ef50ee396c --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.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: ExN03DetectorConstruction.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- + +#ifndef ExN03DetectorConstruction_H +#define ExN03DetectorConstruction_H 1 + +#include "G4String.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4VPhysicalVolume.hh" + +#include "SAXProcessor.hh" +#include "ProcessingConfigurator.hh" + +class ExN03CalorimeterSD; +class ExN03DetectorMessenger; + +class ExN03DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + ExN03DetectorConstruction(); + ~ExN03DetectorConstruction(); + + public: + G4VPhysicalVolume* Construct(); + + G4LogicalVolume* FindLogicalVolume( const G4String& ); + G4double GetWorldSizeX(); + G4double GetWorldSizeYZ(); + G4double GetCalorThickness(); + G4double GetCalorSizeYZ(); + G4int GetNbOfLayers(); + const G4VPhysicalVolume* GetphysiWorld(); + const G4VPhysicalVolume* GetAbsorber(); + const G4VPhysicalVolume* GetGap(); + + + private: + SAXProcessor sxp; + ProcessingConfigurator config; + G4VPhysicalVolume* fWorld; + ExN03CalorimeterSD* calorimeterSD; //pointer to the sensitive detector + ExN03DetectorMessenger* detectorMessenger; +}; + +#endif + diff --git a/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh new file mode 100644 index 0000000000..e2209d9a70 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN03DetectorMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03DetectorMessenger_h +#define ExN03DetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class ExN03DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03DetectorMessenger: public G4UImessenger +{ + public: + ExN03DetectorMessenger(ExN03DetectorConstruction* ); + ~ExN03DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + ExN03DetectorConstruction* ExN03Detector; + + G4UIdirectory* ExN03detDir; + G4UIcmdWithAString* AbsMaterCmd; + G4UIcmdWithAString* GapMaterCmd; + G4UIdirectory* GDMLDir; + G4UIcmdWithAString* GDMLFile; + G4UIcmdWithAString* GDMLSetup; + G4UIcmdWithAString* GDMLVersion; + G4UIcmdWithADoubleAndUnit* AbsThickCmd; + G4UIcmdWithADoubleAndUnit* GapThickCmd; + G4UIcmdWithADoubleAndUnit* SizeYZCmd; + G4UIcmdWithAnInteger* NbLayersCmd; + G4UIcmdWithADoubleAndUnit* MagFieldCmd; + G4UIcmdWithoutParameter* UpdateCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh b/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh new file mode 100644 index 0000000000..c3d4db1d88 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03EventAction.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: ExN03EventAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03EventAction_h +#define ExN03EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class ExN03EventActionMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03EventAction : public G4UserEventAction +{ + public: + ExN03EventAction(); + virtual ~ExN03EventAction(); + + 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; + ExN03EventActionMessenger* eventMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh new file mode 100644 index 0000000000..0b9c013df9 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.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: ExN03EventActionMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03EventActionMessenger_h +#define ExN03EventActionMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class ExN03EventAction; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03EventActionMessenger: public G4UImessenger +{ + public: + ExN03EventActionMessenger(ExN03EventAction*); + ~ExN03EventActionMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + ExN03EventAction* eventAction; + G4UIcmdWithAString* DrawCmd; + G4UIcmdWithAnInteger* PrintCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh b/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh new file mode 100644 index 0000000000..f1b56e17c9 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.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: ExN03PhysicsList.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03PhysicsList_h +#define ExN03PhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03PhysicsList: public G4VUserPhysicsList +{ + public: + ExN03PhysicsList(); + ~ExN03PhysicsList(); + + protected: + // Construct particle and physics + void ConstructParticle(); + void ConstructProcess(); + + void SetCuts(); + + + 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(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + diff --git a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..3d8a13a1fc --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.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: ExN03PrimaryGeneratorAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03PrimaryGeneratorAction_h +#define ExN03PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4ParticleGun; +class G4Event; +class ExN03DetectorConstruction; +class ExN03PrimaryGeneratorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + ExN03PrimaryGeneratorAction(ExN03DetectorConstruction*); + ~ExN03PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event*); + void SetRndmFlag(G4String val) { rndmFlag = val;} + + private: + G4ParticleGun* particleGun; //pointer a to G4 class + ExN03DetectorConstruction* ExN03Detector; //pointer to the geometry + + ExN03PrimaryGeneratorMessenger* gunMessenger; //messenger of this class + G4String rndmFlag; //flag for a rndm impact point +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..c71cd3b974 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.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: ExN03PrimaryGeneratorMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03PrimaryGeneratorMessenger_h +#define ExN03PrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class ExN03PrimaryGeneratorAction; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + ExN03PrimaryGeneratorMessenger(ExN03PrimaryGeneratorAction*); + ~ExN03PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + ExN03PrimaryGeneratorAction* ExN03Action; + G4UIcmdWithAString* RndmCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh b/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh new file mode 100644 index 0000000000..cbed578242 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03RunAction.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: ExN03RunAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03RunAction_h +#define ExN03RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +class ExN03RunAction : public G4UserRunAction +{ + public: + ExN03RunAction(); + ~ExN03RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh b/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh new file mode 100644 index 0000000000..c8a94432ee --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.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: ExN03SteppingAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03SteppingAction_h +#define ExN03SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03SteppingAction : public G4UserSteppingAction +{ + public: + ExN03SteppingAction(); + ~ExN03SteppingAction(); + + void UserSteppingAction(const G4Step*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh b/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh new file mode 100644 index 0000000000..e9d2e1974d --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.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: ExN03SteppingVerbose.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03SteppingVerbose; + +#ifndef ExN03SteppingVerbose_h +#define ExN03SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03SteppingVerbose : public G4SteppingVerbose +{ + public: + + ExN03SteppingVerbose(); + ~ExN03SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh b/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh new file mode 100644 index 0000000000..323f0d0cc8 --- /dev/null +++ b/examples/extended/gdml/N03gdml/include/ExN03VisManager.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: ExN03VisManager.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Example Visualization Manager implementing virtual function +// RegisterGraphicsSystems. Exploits C-pre-processor variables +// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if +// environment variables of the same name are set. + +// So all you have to do is set environment variables and compile and +// instantiate this in your main(). + +// Alternatively, you can implement an empty function here and just +// register the systems you want in your main(), e.g.: +// G4VisManager* myVisManager = new MyVisManager; +// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN03VisManager_h +#define ExN03VisManager_h 1 + +#ifdef G4VIS_USE + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN03VisManager: public G4VisManager { + +public: + + ExN03VisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + +#endif diff --git a/examples/extended/gdml/N03gdml/newgeom.mac b/examples/extended/gdml/N03gdml/newgeom.mac new file mode 100644 index 0000000000..5964c6fb23 --- /dev/null +++ b/examples/extended/gdml/N03gdml/newgeom.mac @@ -0,0 +1,24 @@ +# Example of interactive redefinition +# of the geometry +# +# this macro can be executed at any time +# during an interactive session: +# +# Idle> /control/execute newgeom.mac +# +# +/calor/setNbOfLayers 1 +# +/calor/setAbsMat Water +/calor/setAbsThick 40 cm +# +/calor/setGapMat Air +/calor/setGapThick 0 cm +# +/calor/setSizeYZ 40 cm +# +/calor/update +# +/calor/setField 3 tesla +# +/vis/viewer/zoom 1.3 diff --git a/examples/extended/gdml/N03gdml/run1.mac b/examples/extended/gdml/N03gdml/run1.mac new file mode 100644 index 0000000000..92ec10a7f6 --- /dev/null +++ b/examples/extended/gdml/N03gdml/run1.mac @@ -0,0 +1,20 @@ +# $Id: run1.mac,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# +# Macro file for "exampleN03.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run1.mac +# +/control/verbose 2 +/control/saveHistory +# +/run/verbose 2 +/event/verbose 0 +/tracking/verbose 1 +# +# muon 300 MeV to the direction (1.,0.,0.) +# 3 events +# +/gun/particle mu+ +/gun/energy 300 MeV +/run/beamOn 3 diff --git a/examples/extended/gdml/N03gdml/run2.mac b/examples/extended/gdml/N03gdml/run2.mac new file mode 100644 index 0000000000..93ab004160 --- /dev/null +++ b/examples/extended/gdml/N03gdml/run2.mac @@ -0,0 +1,28 @@ +# $Id: run2.mac,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# +# Macro file of "exampleN03.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run2.mac +# +/control/verbose 2 +# +# electron 30 MeV to the direction (1.,0.,0.) +# 1 event +# +/run/beamOn 1 +# +# shoot randomly 20 events +# +/event/printModulo 5 +/gun/random on +/run/beamOn 20 +# +# activate/inactivate physic processes +# +/process/list +/process/inactivate eBrem +# +/run/beamOn 20 +# + diff --git a/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc b/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc new file mode 100644 index 0000000000..290e884def --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03CalorHit.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: ExN03CalorHit.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03CalorHit.hh" + +G4Allocator ExN03CalorHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03CalorHit::ExN03CalorHit() +{ + EdepAbs = 0.; TrackLengthAbs = 0.; + EdepGap = 0.; TrackLengthGap = 0.; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03CalorHit::~ExN03CalorHit() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03CalorHit::ExN03CalorHit(const ExN03CalorHit& right) +{ + EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; + EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +const ExN03CalorHit& ExN03CalorHit::operator=(const ExN03CalorHit& right) +{ + EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; + EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; + return *this; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int ExN03CalorHit::operator==(const ExN03CalorHit& right) const +{ + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03CalorHit::Draw() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03CalorHit::Print() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc b/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc new file mode 100644 index 0000000000..e3f99c0137 --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.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: ExN03CalorimeterSD.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03CalorimeterSD.hh" + +#include "ExN03CalorHit.hh" +#include "ExN03DetectorConstruction.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" + +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03CalorimeterSD::ExN03CalorimeterSD(G4String name, + ExN03DetectorConstruction* det) +:G4VSensitiveDetector(name),Detector(det) +{ + collectionName.insert("CalCollection"); + HitID = new G4int[500]; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03CalorimeterSD::~ExN03CalorimeterSD() +{ + delete [] HitID; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +{ + CalCollection = new ExN03CalorHitsCollection + (SensitiveDetectorName,collectionName[0]); + for (G4int j=0;jGetNbOfLayers();j++) {HitID[j] = -1;}; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool ExN03CalorimeterSD::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) + { + ExN03CalorHit* calHit = new ExN03CalorHit(); + 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 ExN03CalorimeterSD::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 ExN03CalorimeterSD::clear() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03CalorimeterSD::DrawAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03CalorimeterSD::PrintAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc b/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc new file mode 100644 index 0000000000..6e7d0e0dd4 --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: ExN03DetectorConstruction.cc,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// + +#include "ExN03DetectorConstruction.hh" +#include "ExN03DetectorMessenger.hh" +#include "ExN03CalorimeterSD.hh" + +//#include "G4UniformMagField.hh" +//#include "G4FieldManager.hh" +//#include "G4TransportationManager.hh" +#include "G4SDManager.hh" +//#include "G4RunManager.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +// Added here just to help resolve properly dependencies +#include "G4BooleanSolid.hh" + +ExN03DetectorConstruction::ExN03DetectorConstruction() +: calorimeterSD( 0 ) { + // create commands for interactive definition of the calorimeter + detectorMessenger = new ExN03DetectorMessenger(this); + + sxp.Initialize(); + config.SetURI( "NO3.gdml" ); + config.SetSetupName( "N03" ); + sxp.Configure( &config ); +} + +ExN03DetectorConstruction::~ExN03DetectorConstruction() { + sxp.Finalize(); +} + +G4VPhysicalVolume* ExN03DetectorConstruction::Construct() { + sxp.Run(); + + fWorld = (G4VPhysicalVolume *)GDMLProcessor::GetInstance()->GetWorldVolume(); + + if( fWorld == 0 ) { + G4Exception( + "World volume not set properly check your setup selection criteria or GDML input!" + ); + } + + // + // Sensitive Detectors: Absorber and Gap + // + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + if(!calorimeterSD) + { + calorimeterSD = new ExN03CalorimeterSD("CalorSD",this); + SDman->AddNewDetector( calorimeterSD ); + } + G4LogicalVolume* lv = 0; + lv = FindLogicalVolume( "Absorber" ); + if ( lv ) + lv->SetSensitiveDetector(calorimeterSD); + lv = FindLogicalVolume( "Gap" ); + if ( lv ) + lv->SetSensitiveDetector(calorimeterSD); + + // + // Visualization attributes + // + lv = FindLogicalVolume( "World" ); + lv->SetVisAttributes (G4VisAttributes::Invisible); + lv = FindLogicalVolume( "Calorimeter" ); + lv->SetVisAttributes (G4VisAttributes::Invisible); + + G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + simpleBoxVisAtt->SetVisibility(true); + lv = FindLogicalVolume( "Layer" ); + lv->SetVisAttributes(simpleBoxVisAtt); + + return fWorld; +} + +G4LogicalVolume* ExN03DetectorConstruction::FindLogicalVolume( const G4String& vn ) { + return const_cast( GDMLProcessor::GetInstance()->GetLogicalVolume( vn ) ); +} + +const G4VPhysicalVolume* ExN03DetectorConstruction::GetAbsorber() { + return GDMLProcessor::GetInstance()->GetPhysicalVolume( "pv_Absorber_0" ); +} + +const G4VPhysicalVolume* ExN03DetectorConstruction::GetGap() { + return GDMLProcessor::GetInstance()->GetPhysicalVolume( "pv_Gap_0" ); +} + +G4double ExN03DetectorConstruction::GetWorldSizeX() { + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + return( calc->Eval( "WorldSizeX" ) ); +} + +G4double ExN03DetectorConstruction::GetWorldSizeYZ() { + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + return( calc->Eval( "WorldSizeYZ" ) ); +} + +G4double ExN03DetectorConstruction::GetCalorThickness() { + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + return( calc->Eval( "CalorThickness" ) ); +} + +G4double ExN03DetectorConstruction::GetCalorSizeYZ() { + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + return( calc->Eval( "CalorSizeYZ" ) ); +} + +G4int ExN03DetectorConstruction::GetNbOfLayers() { + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + return( (G4int)calc->Eval( "NbOfLayers" ) ); +} + diff --git a/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc new file mode 100644 index 0000000000..b2859d6167 --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.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. * +// ******************************************************************** +// +// +// $Id: ExN03DetectorMessenger.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03DetectorMessenger.hh" + +#include "ExN03DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03DetectorMessenger::ExN03DetectorMessenger( + ExN03DetectorConstruction* ExN03Det) +:ExN03Detector(ExN03Det) +{ + GDMLDir = new G4UIdirectory("/gdml/"); + GDMLDir->SetGuidance("GDML control."); + + GDMLFile = new G4UIcmdWithAString("/gdml/input",this); + GDMLFile->SetGuidance("Select GDML input"); + GDMLFile->SetParameterName("file",false); + GDMLFile->AvailableForStates(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); + + 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); + + ExN03detDir = new G4UIdirectory("/calor/"); + ExN03detDir->SetGuidance("ExN03 detector control."); + + AbsMaterCmd = new G4UIcmdWithAString("/calor/setAbsMat",this); + AbsMaterCmd->SetGuidance("Select Material of the Absorber."); + AbsMaterCmd->SetParameterName("choice",false); + AbsMaterCmd->AvailableForStates(Idle); + + GapMaterCmd = new G4UIcmdWithAString("/calor/setGapMat",this); + GapMaterCmd->SetGuidance("Select Material of the Gap."); + GapMaterCmd->SetParameterName("choice",false); + GapMaterCmd->AvailableForStates(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); + + 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); + + 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); + + 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); + + 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); + + 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); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03DetectorMessenger::~ExN03DetectorMessenger() +{ + delete NbLayersCmd; + delete AbsMaterCmd; delete GapMaterCmd; + delete AbsThickCmd; delete GapThickCmd; + delete SizeYZCmd; delete UpdateCmd; + delete MagFieldCmd; + delete ExN03detDir; + delete GDMLFile; + delete GDMLSetup; + delete GDMLVersion; + delete GDMLDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + /* + if( command == AbsMaterCmd ) + { ExN03Detector->SetAbsorberMaterial(newValue);} + + if( command == GapMaterCmd ) + { ExN03Detector->SetGapMaterial(newValue);} + + if( command == AbsThickCmd ) + { ExN03Detector->SetAbsorberThickness(AbsThickCmd + ->GetNewDoubleValue(newValue));} + + if( command == GapThickCmd ) + { ExN03Detector->SetGapThickness(GapThickCmd->GetNewDoubleValue(newValue));} + + if( command == SizeYZCmd ) + { ExN03Detector->SetCalorSizeYZ(SizeYZCmd->GetNewDoubleValue(newValue));} + + if( command == NbLayersCmd ) + { ExN03Detector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));} + + if( command == UpdateCmd ) + { ExN03Detector->UpdateGeometry(); } + + if( command == MagFieldCmd ) + { ExN03Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + */ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc b/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc new file mode 100644 index 0000000000..d1d21f77c2 --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03EventAction.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: ExN03EventAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03EventAction.hh" + +#include "ExN03CalorHit.hh" +#include "ExN03EventActionMessenger.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...... + +ExN03EventAction::ExN03EventAction() +:calorimeterCollID(-1),drawFlag("all"),printModulo(1), + eventMessenger(0) +{ + eventMessenger = new ExN03EventActionMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03EventAction::~ExN03EventAction() +{ + delete eventMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03EventAction::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 ExN03EventAction::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(); + ExN03CalorHitsCollection* CHC = 0; + G4int n_hit = 0; + G4double totEAbs=0, totLAbs=0, totEGap=0, totLGap=0; + + if (HCE) CHC = (ExN03CalorHitsCollection*)(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 ExN03CalorHitsCollection." << 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/gdml/N03gdml/src/ExN03EventActionMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc new file mode 100644 index 0000000000..1af36bcfbd --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.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: ExN03EventActionMessenger.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03EventActionMessenger.hh" + +#include "ExN03EventAction.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* 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(Idle); + + PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); + PrintCmd->SetGuidance("Print events modulo n"); + PrintCmd->SetParameterName("EventNb",false); + PrintCmd->SetRange("EventNb>0"); + PrintCmd->AvailableForStates(Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03EventActionMessenger::~ExN03EventActionMessenger() +{ + delete DrawCmd; + delete PrintCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03EventActionMessenger::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/gdml/N03gdml/src/ExN03PhysicsList.cc b/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc new file mode 100644 index 0000000000..a673375013 --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.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: ExN03PhysicsList.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03PhysicsList.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...... + +ExN03PhysicsList::ExN03PhysicsList(): G4VUserPhysicsList() +{ + defaultCutValue = 1.0*mm; + SetVerboseLevel(1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03PhysicsList::~ExN03PhysicsList() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03PhysicsList::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 ExN03PhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); + + // optical photon + G4OpticalPhoton::OpticalPhotonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03PhysicsList::ConstructLeptons() +{ + // leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03PhysicsList::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 ExN03PhysicsList::ConstructBaryons() +{ +// barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03PhysicsList::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 ExN03PhysicsList::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 ExN03PhysicsList::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 ExN03PhysicsList::SetCuts() +{ + if (verboseLevel >0){ + G4cout << "ExN03PhysicsList::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/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..131079001a --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.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: ExN03PrimaryGeneratorAction.cc,v 1.2 2002/06/03 09:59:37 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03PrimaryGeneratorAction.hh" + +#include "ExN03DetectorConstruction.hh" +#include "ExN03PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03PrimaryGeneratorAction::ExN03PrimaryGeneratorAction( + ExN03DetectorConstruction* ExN03DC) +:ExN03Detector(ExN03DC),rndmFlag("off") +{ + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + + //create a messenger for this class + gunMessenger = new ExN03PrimaryGeneratorMessenger(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); + // We can't call it here as the WorldSizeX is not yet read from GDML input + //G4double position = -0.5*(ExN03Detector->GetWorldSizeX()); + //particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03PrimaryGeneratorAction::~ExN03PrimaryGeneratorAction() +{ + delete particleGun; + delete gunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //this function is called at the begining of event + // + G4double x0 = -0.5*(ExN03Detector->GetWorldSizeX()); + G4double y0 = 0.*cm, z0 = 0.*cm; + if (rndmFlag == "on") + {y0 = (ExN03Detector->GetCalorSizeYZ())*(G4UniformRand()-0.5); + z0 = (ExN03Detector->GetCalorSizeYZ())*(G4UniformRand()-0.5); + } + particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + + particleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..1df2804242 --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.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: ExN03PrimaryGeneratorMessenger.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03PrimaryGeneratorMessenger.hh" + +#include "ExN03PrimaryGeneratorAction.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03PrimaryGeneratorMessenger::ExN03PrimaryGeneratorMessenger( + ExN03PrimaryGeneratorAction* ExN03Gun) +:ExN03Action(ExN03Gun) +{ + 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(PreInit,Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03PrimaryGeneratorMessenger::~ExN03PrimaryGeneratorMessenger() +{ + delete RndmCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03PrimaryGeneratorMessenger::SetNewValue( + G4UIcommand* command, G4String newValue) +{ + if( command == RndmCmd ) + { ExN03Action->SetRndmFlag(newValue);} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc b/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc new file mode 100644 index 0000000000..5deff1373f --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03RunAction.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: ExN03RunAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03RunAction.hh" + +#include "G4Run.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03RunAction::ExN03RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03RunAction::~ExN03RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03RunAction::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 ExN03RunAction::EndOfRunAction(const G4Run* ) +{ + if (G4VVisManager::GetConcreteInstance()) { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc b/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc new file mode 100644 index 0000000000..58e498774d --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.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: ExN03SteppingAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03SteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03SteppingAction::ExN03SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03SteppingAction::~ExN03SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03SteppingAction::UserSteppingAction(const G4Step*) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + + diff --git a/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc b/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc new file mode 100644 index 0000000000..b9d5c0eaed --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.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: ExN03SteppingVerbose.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN03SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03SteppingVerbose::ExN03SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN03SteppingVerbose::~ExN03SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03SteppingVerbose::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 ExN03SteppingVerbose::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/gdml/N03gdml/src/ExN03VisManager.cc b/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc new file mode 100644 index 0000000000..7ca393b49c --- /dev/null +++ b/examples/extended/gdml/N03gdml/src/ExN03VisManager.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: ExN03VisManager.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// John Allison 24th January 1998. + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4VIS_USE + +#include "ExN03VisManager.hh" + +// Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "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...... + +ExN03VisManager::ExN03VisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03VisManager::RegisterGraphicsSystems () { + + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new 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/gdml/N03gdml/vis.mac b/examples/extended/gdml/N03gdml/vis.mac new file mode 100644 index 0000000000..405a89019f --- /dev/null +++ b/examples/extended/gdml/N03gdml/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/gdml/N03gdml/visTutor/History b/examples/extended/gdml/N03gdml/visTutor/History new file mode 100644 index 0000000000..53261f0b00 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/History @@ -0,0 +1,22 @@ +==================================== +examples/novice/N03/visTutor/History +==================================== + +14-11-01 Satoshi Tanaka (exN03VisTutor-V03-02-02) +- exN03Vis8.mac : Batch visualization with the DAWNFILE driver +- exN03Vis9.mac : Multi-page PostScript file generation (old exN03Vis8.mac) + +08-11-01 Satoshi Tanaka (exN03VisTutor-V03-02-01a) +- /vis/viewer/viewpointThetaPhi ==> /vis/viewer/set/viewpointThetaPhi + +07-11-01 Satoshi Tanaka (exN03VisTutor-V03-02-01) +- Macros are rewritten with /vis/viewer/flush +- Comments are updated. + +18-09-01 Satoshi Tanaka (exN03VisTutor-V03-02-00) +- Updation for automatic visualization at Hebden Bridge mini-workshop. +- /vis/viewer/flush and /vis/flushAll are not included yet. + (To be included in the next tag.) +- /vis/drawTree may still require /vis/scene/notifyHandlers. + (John Allison will revise the /vis/drawTree command soon.) + diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Tree0.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Tree0.mac new file mode 100644 index 0000000000..865388118e --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Tree0.mac @@ -0,0 +1,59 @@ +####################################################################### +# MACRO FILE NAME: exN03Tree0.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# # +# CONTENTS: A macro to demonstrate ASCII DTREE # +# # +# USAGE: # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Tree0.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix / Windows # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# # +# * Unnecessary # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# * Unnecessary # +# # +# VERBOSE LEVEL: # +# # +# < 10: - does not print daughters of repeated logical volumes. # +# - does not repeat replicas. # +# >= 10: prints all physical volumes. # +# For level of detail add: # +# >= 0: prints physical volume name. # +# >= 1: prints logical volume name. # +# >= 2: prints solid name and type. # +# # +# ADDITIONAL NOTES: # +# * The geometry tree is displayed in the stdout. # +# * The compound command to visualize geometry tree: # +# /vis/drawTree [] [] # +####################################################################### + +# Draw the whole geometry tree +/vis/drawTree + +# Draw a part of tree +/vis/drawTree Gap + +# Change the level to display details +/vis/ASCIITree/verbose 1 +/vis/drawTree + +# Change the level to display details +/vis/ASCIITree/verbose 2 +/vis/drawTree + +# Change the level to display details +/vis/ASCIITree/verbose 10 +/vis/drawTree diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Tree1.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Tree1.mac new file mode 100644 index 0000000000..8fc517321d --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Tree1.mac @@ -0,0 +1,63 @@ +####################################################################### +# MACRO FILE NAME: exN03Tree0.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# # +# CONTENTS: A macro to demonstrate GAG DTREE # +# # +# USAGE: # +# * Edit exampleN03.cc to use the GAG interface # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Tree1.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix/Windows, GAG (Java version) # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# # +# * Unnecessary # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# * Unnecessary # +# # +# VERBOSE LEVEL: # +# # +# < 10: - does not print daughters of repeated logical volumes. # +# - does not repeat replicas. # +# >= 10: prints all physical volumes. # +# For level of detail add: # +# >= 0: prints physical volume name. # +# >= 1: prints logical volume name. # +# >= 2: prints solid name and type. # +# # +# ADDITIONAL NOTES: # +# * The geometry tree is displayed in GAG windows stdout. # +# (If you are using the G4 character terminals, the tree is # +# displayed in stdout.) # +# * The compound command to visualize geometry tree: # +# /vis/drawTree [] [] # +####################################################################### + +# Draw the whole geometry tree +# Note: "!" means the default argument, i.e., "world" +/vis/drawTree ! GAGTree + +# Draw a part of tree +/vis/drawTree Gap GAGTree + +# Change the level to display details +/vis/GAGTree/verbose 1 +/vis/drawTree ! GAGTree + +# Change the level to display details +/vis/GAGTree/verbose 2 +/vis/drawTree ! GAGTree + +# Change the level to display details +/vis/GAGTree/verbose 10 +/vis/drawTree ! GAGTree diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis0.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis0.mac new file mode 100644 index 0000000000..fb505e3757 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis0.mac @@ -0,0 +1,108 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis0.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # +# June 06, 2000 # +# May 20, 2000 # +# November 10, 1999 # +# # +# CONTENTS: A simplest macro to demonstrate visualization of # +# detector geometry and events # +# # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis0.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, OpenGL, # +# DAWN (version 3.85 or after) # +# gv (Ghostview), Tcl/Tk # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv OGLHOME ... (e.g. /usr/X11R6) # +# % setenv G4VIS_BUILD_OPENGLX_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OPENGLX 1 # +# # +# ADDITIONAL NOTES: # +# The compound command "/vis/open " # +# is equivalent to the following set of commands: # +# # +# /vis/sceneHandler/create $1 # +# /vis/viewer/create # +# # +# The compound command "/vis/drawVolume " # +# is equivalent to the following set of commands: # +# # +# /vis/scene/create # +# /vis/scene/add/volume $1 # +# /vis/sceneHandler/attach # +# # +####################################################################### + +############################################## +# Visualization of detector geometry +# with the OGLIX (OpenGL Immediate X) driver +############################################## + +# Invoke the OGLIX driver +/vis/open OGLIX +#/vis/open DAWNFILE + +# Set camera +/vis/viewer/reset +/vis/viewer/set/viewpointThetaPhi 70 20 + +# Create an empty scene and add the detector geometry to it +/vis/drawVolume + +# The following command "flush" +# the action of the current viewer. +# They are required for the post-processing drivers +# such as DAWNFILE, VRMLFILE, HepRep drivers, etc. +# For OpenGL drivers, these commands are not required +# but harmless even if they are described. +/vis/viewer/flush + +######################################################### +# Visualization of events with the DAWNFILE driver +# +# * Each visualized view is saved to a file "g4_XX.eps" +# with the "vectorized" PostScript format. +# +# * Set an environmental variable if you wish to +# skip DAWN GUI: +# % setenv G4DAWNFILE_VIEWER "dawn -d" +########################################################## + +# Invoke the DAWNFILE driver +/vis/open DAWNFILE + +# Add the world volume to the current scene +/vis/drawVolume + +# Add trajectories to the current scene +# Note: This command is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +#/vis/scene/add/trajectories + +# Set camera +/vis/viewer/reset +/vis/viewer/zoom 1.5 +/vis/viewer/set/viewpointThetaPhi 70 20 + +# Visualize events added to the current scene +/tracking/storeTrajectory 1 +/run/beamOn 3 diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis1.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis1.mac new file mode 100644 index 0000000000..5ee98b8319 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis1.mac @@ -0,0 +1,164 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis1.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # +# June 06, 2000 # +# May 20, 2000 # +# November 10, 1999 # +# # +# CONTENTS: A basic macro for visualization of detector geometry # +# # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis1.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, OpenGL, # +# DAWN (version 3.85 or after) # +# gv (Ghostview), Tcl/Tk # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv OGLHOME ... (e.g. /usr/X11R6) # +# % setenv G4VIS_BUILD_OPENGLX_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OPENGLX 1 # +# # +# ADDITIONAL NOTES: # +# The compound command "/vis/open " # +# is equivalent to the following set of commands: # +# # +# /vis/sceneHandler/create $1 # +# /vis/viewer/create # +# # +# The compound command "/vis/drawVolume " # +# is equivalent to the following set of commands: # +# # +# /vis/scene/create # +# /vis/scene/add/volume $1 # +# /vis/sceneHandler/attach # +# # +####################################################################### + +########################################### +# Visualization of detector geometry +# with the OGLSX (OpenGL Stored X) driver +########################################### + +# Invoke the OGLSX driver +/vis/open OGLSX + +# Bird's-eye view of the detector geometry +# +# viewpoint : (theta,phi) = (20*deg, 70*deg), +# zoom factor: 0.8 of the full screen size +# +/vis/viewer/reset +/vis/viewer/set/viewpointThetaPhi 20 70 +/vis/viewer/zoom 0.8 +/vis/drawVolume + +# The following two commands "flush" +# the action of the current viewer. +# They are required for the post-processing drivers +# such as DAWNFILE, VRMLFILE, HepRep drivers, etc. +# For OpenGL drivers, these commands are not required +# but harmless even if they are described. +/vis/viewer/flush + +########################################################## +# Visualization with the DAWNFILE driver +# +# * Each visualized view is saved to a file "g4_XX.eps" +# with the "vectorized" PostScript format. +# +# * Set an environmental variable if you wish to +# skip DAWN GUI: +# % setenv G4DAWNFILE_VIEWER "dawn -d" +########################################################## + +# Invoke the DAWNFILE driver +/vis/open DAWNFILE + +# Bird's-eye view of a detector component (Absorber) +# viewpoint : (theta,phi) = (35*deg, 35*deg), +# zoom factor: 1.1 of the full screen size +# coordinate axes: +# x-axis:red, y-axis:green, z-axis:blue +# origin: (0,0,0), length: 500 +# Scale: length = 10 cm, Orientation = z, color = red, +# placing_algorithm = manual, +# center = (-2.5 cm , -5 cm, 0 cm) +# +/vis/viewer/reset +/vis/viewer/zoom 1.1 +/vis/viewer/set/viewpointThetaPhi 35 35 +/vis/drawVolume Absorber +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 40 -100 -140 Absorber +/vis/scene/add/scale 10 cm z 1 0 0 manual -2.5 -5 0 cm + +# "Flush the action of all the existing viewers. +# Note: You should execute these commands, e.g., +# when the current scene is modified. +/vis/scene/notifyHandlers +/vis/viewer/update + +# FOR FUTURE UPDATION +#/vis/viewer/flushAll + +# Bird's-eye view of a detector component (Gap) +/vis/viewer/reset +/vis/viewer/zoom 1.1 +/vis/viewer/set/viewpointThetaPhi 35 35 +/vis/drawVolume Gap +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 50 -100 -140 Gap +/vis/scene/add/scale 10 cm z 1 0 0 manual -2.5 -5 0 cm + +# "Flush the action of all the existing viewers. +/vis/scene/notifyHandlers +/vis/viewer/update + +# FOR FUTURE UPDATION +#/vis/viewer/flushAll + + +# Bird's-eye view of the whole detector components (world) +# * The argument "world" of the command +# "/vis/scene/add/volume" is omittable. +# * "/vis/viewer/set/culling false" makes the invisible +# world volume visible. +# (The invisibility of the world volume is set +# in ExN03DetectorConstruction.cc.) +/vis/viewer/reset +/vis/viewer/zoom 1.1 +/vis/viewer/set/viewpointThetaPhi 35 35 +/vis/viewer/set/culling global false +/vis/drawVolume +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 50 -100 -240 World +/vis/scene/add/scale 10 cm x 1 0 0 + +# "Flush the action of all the existing viewers. +/vis/scene/notifyHandlers +/vis/viewer/update + +# FOR FUTURE UPDATION +#/vis/viewer/flushAll + + +# Make the culling on for next visualization +# Note: You may also use "/vis/viewer/reset" +# for this initialization. +/vis/viewer/set/culling global true diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis2.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis2.mac new file mode 100644 index 0000000000..b1fec56f33 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis2.mac @@ -0,0 +1,127 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis2.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # +# June 06, 2000 # +# May 20, 2000 # +# November 10, 1999 # +# # +# CONTENTS: A basic macro for visualization of events # +# # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis2.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, OpenGL, # +# DAWN (version 3.85 or after) # +# gv (Ghostview), Tcl/Tk # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv OGLHOME ... (e.g. /usr/X11R6) # +# % setenv G4VIS_BUILD_OPENGLX_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OPENGLX 1 # +# # +# ADDITIONAL NOTES: # +# The compound command "/vis/open " # +# is equivalent to the following set of commands: # +# # +# /vis/sceneHandler/create $1 # +# /vis/viewer/create # +# # +####################################################################### + +################################################# +# Store particle trajactories for visualization +################################################# +/tracking/storeTrajectory 1 + +####################################################### +# Visualization with the OGLSX (OpenGL Stored X) driver +####################################################### + +# Invoke the OGLSX driver +/vis/open OGLSX + +# Create an empty scene and add the detector geometry to it +/vis/drawVolume + +# Add trajectories to the current scene +# Note: This command is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +#/vis/scene/add/trajectories + +# Set viewing parameters +# viewpoint : (theta,phi) = (10*deg, 10*deg). +# drawing style: surface +/vis/viewer/reset +/vis/viewer/set/style surface +/vis/viewer/set/viewpointThetaPhi 10 10 + +# Generate one event and visualize it. +/run/beamOn 1 + + +########################################################## +# Visualization with the DAWNFILE driver +# +# * Each visualized view is saved to a file "g4_XX.eps" +# with the "vectorized" PostScript format. +# +# * Set an environmental variable if you wish to +# skip DAWN GUI: +# % setenv G4DAWNFILE_VIEWER "dawn -d" +########################################################## + +# Invoke the DAWNFILE driver +/vis/open DAWNFILE + +# Create an empty scene and add the detector geometry to it +/vis/drawVolume + +# Add trajectories to the current scene +# Note: This command is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +#/vis/scene/add/trajectories + +# Set the trajectory-accumulation mode to "accumulate". +# Trajectories of each event are accumulated +# and visualized at the end of one run. +/vis/scene/endOfEventAction accumulate + +# Visualize many events (bird's eye view) +# viewpoint : (theta,phi) = (45*deg, 45*deg) +# zoom factor: 1.5 x (full screen size) +# drawing style: wireframe +/vis/viewer/reset +/vis/viewer/set/style wireframe +/vis/viewer/set/viewpointThetaPhi 45 45 +/vis/viewer/zoom 1.5 +/run/beamOn 50 + +# Visualize many events (zoomed-up view) +# viewpoint : (theta,phi) = (90*deg, 0) +# zoom factor: 5 x (full screen size) +/vis/viewer/reset +/vis/viewer/set/style wireframe +/vis/viewer/set/viewpointThetaPhi 90 0 +/vis/viewer/zoom 5 +/run/beamOn 50 + +# Reset trajectory-accumulation mode to "refresh" (default) +# Trajectories are visualized at the end of each event. +/vis/scene/endOfEventAction refresh diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis3.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis3.mac new file mode 100644 index 0000000000..06f7b73f81 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis3.mac @@ -0,0 +1,136 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis3.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # +# June 06, 2000 # +# May 20, 2000 # +# November 10, 1999 # +# # +# CONTENTS: A basic macro for demonstrating various drawing styles # +# # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis3.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, OpenGL, # +# DAWN (version 3.85 or after) # +# gv (Ghostview), Tcl/Tk # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv OGLHOME ... (e.g. /usr/local) # +# % setenv G4VIS_BUILD_OPENGLX_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OPENGLX 1 # +# # +# ADDITIONAL NOTES: # +# The compound command "/vis/open " # +# is equivalent to the following set of commands: # +# # +# /vis/sceneHandler/create $1 # +# /vis/viewer/create # +# # +####################################################################### + +############################################## +# Store particle trajactories for visualization +############################################## +/tracking/storeTrajectory 1 + +########################################################### +# Visualization with the OGLIX (OpenGL Immediate X) driver +########################################################### + +# Invoke the OGLSX driver +/vis/open OGLSX + +# Create an empty scene and add the detector geometry to it +/vis/drawVolume + +# Add trajectories to the current scene +# Note: This command is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +#/vis/scene/add/trajectories + +# Bird-eye view of events with +# the hidden-surface drawing style +/vis/viewer/reset +/vis/viewer/set/viewpointThetaPhi 45 45 +/vis/viewer/set/style surface +/run/beamOn 10 + +########################################################## +# Visualization with the DAWNFILE driver +# +# * Each visualized view is saved to a file "g4_XX.eps" +# with the "vectorized" PostScript format. +# +# * Set an environmental variable if you wish to +# skip DAWN GUI: +# % setenv G4DAWNFILE_VIEWER "dawn -d" +# +########################################################## + +# Invoke the DAWNFILE driver +/vis/open DAWNFILE + +# Create an empty scene and add the detector geometry to it +/vis/drawVolume + +# Add trajectories to the current scene +# Note: This command is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +#/vis/scene/add/trajectories + +# Bird-eye view of events with the +# wireframe drawing style +/vis/viewer/reset +/vis/viewer/zoom 1.5 +/vis/viewer/set/viewpointThetaPhi 45 45 +/vis/viewer/set/style wireframe +/run/beamOn 3 + +# Set the trajectory-accumulation mode to "accumulate". +# Trajectories of each event are accumulated +# and visualized at the end of one run. +/vis/scene/endOfEventAction accumulate + +# Bird-eye view of events with the +# hidden-surface drawing style +/vis/viewer/set/style surface +/run/beamOn 50 + +# Cull detector geometry and show only trajectories. +/vis/viewer/reset +/vis/viewer/set/culling global true +/vis/viewer/set/culling density true 999 +/vis/viewer/set/style wireframe +/run/beamOn 10 + +# Reset the culling policy for next visualization +# The default culling policy is: +# global : on +# invisible : on +# low density : off +# covered daughter: off +# +# Note: You may also use "/vis/viewer/reset" +# for this initialization. +/vis/viewer/set/culling density false + +# Reset trajectory-accumulation mode to "refresh" (default) +# Trajectories are visualized at the end of each event. +/vis/scene/endOfEventAction refresh diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis4.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis4.mac new file mode 100644 index 0000000000..aa65650ce9 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis4.mac @@ -0,0 +1,105 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis4.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # +# June 06, 2000 # +# # +# CONTENTS: An example for the compound command, # +# "/vis/specify " # +# # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis4.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # +# DAWN (version 3.85 or after) # +# gv (Ghostview), Tcl/Tk # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv OGLHOME ... (e.g. /usr/X11R6) # +# % setenv G4VIS_BUILD_OPENGLX_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OPENGLX 1 # +# # +# ADDITIONAL NOTES: # +# The compound command "/vis/open " # +# is equivalent to the following set of commands: # +# # +# /vis/sceneHandler/create $1 # +# /vis/viewer/create # +# # +# The compound command "/vis/specify " # +# is equivalent to the following set of commands: # +# # +# /vis/scene/create # +# /vis/scene/add/logicalVolume $1 # +# /vis/sceneHandler/attach # +# # +####################################################################### + +########################################################## +# Visualization with the OGLIX driver +########################################################## + +# Invoke the OGLIX driver +/vis/open OGLIX + +# Set camera +/vis/viewer/reset +/vis/viewer/zoom 0.9 +/vis/viewer/set/viewpointThetaPhi 35 35 + +# Visualize a selected logical volume +/vis/specify Absorber +/vis/viewer/flush + +########################################################## +# Visualization with the DAWNFILE driver +# +# * Each visualized view is saved to a file "g4_XX.eps" +# with the "vectorized" PostScript format. +# +# * Set an environmental variable if you wish to +# skip DAWN GUI: +# % setenv G4DAWNFILE_VIEWER "dawn -d" +########################################################## +# Invoke the DAWNFILE driver +/vis/open DAWNFILE + +# Set camera +/vis/viewer/reset +/vis/viewer/zoom 0.9 +/vis/viewer/set/viewpointThetaPhi 35 35 + +# Visualize a selected logical volume (1) +/vis/specify Absorber +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 40 -100 -200 LogVol:Absorber +/vis/scene/notifyHandlers +/vis/viewer/update + +# FOR FUTURE UPDATION +#/vis/viewer/flushAll + +# Visualize a selected logical volume (2) +/vis/specify Gap +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 40 -100 -200 LogVol:Gap +/vis/scene/notifyHandlers +/vis/viewer/update + +# FOR FUTURE UPDATION +#/vis/viewer/flushAll + diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis5.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis5.mac new file mode 100644 index 0000000000..4600302e1a --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis5.mac @@ -0,0 +1,69 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis5.mac # +# # +# AUTHOR(S): Guy Barrand # +# # +# DATE: June 09, 2000 # +# # +# CONTENTS: A basic macro for demonstrating OPACS/Xo driver # +# # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 visTutor/exN03Vis5.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, Motif, X-window, OpenGL, # +# OPACS (version 3.0) # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_BUILD_OPACS_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OPACS 1 # +# # +# ADDITIONAL NOTES: # +# Controls on a Xo window are : # +# - Ctrl + left-button1 + move pointer : # +# move things (default is scale). # +# - right-button : popup menu to change, for example, the # +# upper behaviour. # +# - left-button : pick an object. After your can center on it # +# through the popup-menu. # +# - left-button + move pointer : collect objects. # +# - Ctrl + Shift + left-button + move pointer : # +# rubber band zoom. # +# # +####################################################################### + +# Create "scene-0" +/vis/scene/create + +# Invoke the Xo driver +/vis/sceneHandler/create Xo +/vis/viewer/create + +# Add the world volume to the current scene +/vis/scene/add/volume +/tracking/storeTrajectory 1 +#/vis/scene/add/trajectories + +# Bird-eye view of events +/vis/viewer/reset +/vis/viewer/set/viewpointThetaPhi 45 45 + +/run/beamOn 1 + +####################################################################### +# Controls on a Xo window are : # +# - Ctrl + left-button1 + move pointer : # +# move things (default is scale). # +# - right-button : popup menu to change, for example, the # +# upper behaviour. # +# - left-button : pick an object. After your can center on it # +# through the popup-menu. # +# - left-button + move pointer : collect objects. # +# - Ctrl + Shift + left-button + move pointer : # +# rubber band zoom. # +####################################################################### diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis6.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis6.mac new file mode 100644 index 0000000000..a6b0b8c5ff --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis6.mac @@ -0,0 +1,65 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis6.mac # +# # +# AUTHOR(S): Guy Barrand # +# # +# DATE: June 09, 2000 # +# # +# CONTENTS: A basic macro for demonstrating Inventor driver # +# # +# USAGE: % $G4BINDIR/exampleN03 visTutor/exN03Vis6.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, Motif, X-window, OpenGL, # +# HEPVis # +# Inventor (TGS or SoFree) # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_BUILD_OIX_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OIX 1 # +# # +# ADDITIONAL NOTES: # +# # +####################################################################### + +# Create "scene-0" +/vis/scene/create + +# Invoke the Xo driver +/vis/sceneHandler/create OIX +/vis/viewer/create + +# Add the world volume to the current scene +/vis/scene/add/volume +#/vis/scene/add/trajectories +/tracking/storeTrajectory 1 + +# Bird-eye view of events +/vis/viewer/reset +/vis/viewer/set/viewpointThetaPhi 45 45 + +# Attach the just created Go scene graph to the viewer. +/vis/viewer/update +# Attach the just created Go scene graph to the viewer. +/vis/viewer/update +/vis/scene/notifyHandlers + +/run/beamOn 1 + +####################################################################### +# Controls on an Inventor examiner viewer are : # +# - in picking mode (cursor is the upper left arrow) # +# Ctrl + pick an volume : see daughters. # +# Shift + pick an volume : see mother. # +# - in viewing mode (cursor is the hand) # +# Left-button + pointer move : rotate. # +# Ctrl+Left-button + pointer move : pane. # +# Ctrl+Shift+Left-button + pointer move : scale. # +# Middle-button + pointer move : pane. # +# # +####################################################################### diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis7.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis7.mac new file mode 100644 index 0000000000..a6e855fd0d --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis7.mac @@ -0,0 +1,68 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis7.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # +# # +# CONTENTS: A macro to demonstrate the VRMLFILE driver # +# # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis7.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # +# VRML viewer (e.g. VRMLview) # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# * Unnecessary # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# * Unnecessary # +# # +# RECOMMENDED ENVIRONMENTAL VARIABLES FOR VISUALIZATION: # +# # +# % setenv G4VRMLFILE_VIEWER vrmlview # +# ( The default value is "NONE".) # +# # +# ADDITIONAL NOTES: # +# The VRML-file viewer "vrmlview" is obtainable from the following # +# Web site: # +# http://www.sim.no/downloads.html # +# # +####################################################################### + +################################################### +# Visualization of detector geometry and events +# with the VRML2FILE driver. +################################################### + +# Store particle trajactories for visualization +/tracking/storeTrajectory 1 + +# Invoke the VRML2FILE driver +# Note: The VRML1FILE driver generates VRML 1.0 format files. +# The VRML2FILE driver generates VRML 2.0 format files. +/vis/open VRML2FILE + +# Create an empty scene and add the detector geometry to it +/vis/drawVolume + +# Visualize 3 events in the wireframe mode +# Note: The command /vis/scene/add/trajectories +# is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +# Note: "/vis/viewer/set/style wireframe" means +# "half-transparent" in the VRML2FILE driver. +# It is a convention only for this driver. +#/vis/scene/add/trajectories +/vis/viewer/set/style wireframe +/run/beamOn 3 diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis8.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis8.mac new file mode 100644 index 0000000000..10370d856a --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis8.mac @@ -0,0 +1,61 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis8.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 14, 2001 # +# # +# CONTENTS: A macro to demonstrate batch visualization to generate # +# PostScript file with the DAWNFILE driver # +# # +# % setenv DAWN_BATCH 1 # +# % make visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis8.mac # +# Idle> exit # +# % gv g4_00.eps & # +# % gv g4_01.eps & # +# % gv g4_02.eps & # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # +# DAWN (version 3.85 or after) # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# * Unnecessary # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# * Unnecessary # +# # +# ADDITIONAL NOTES: # +# # +####################################################################### + +#################################################################### +# Creation of a multi-page PostScript file with the DAWNFILE driver +#################################################################### + +# Invoke the DAWNFILE driver +/vis/open DAWNFILE + +# Add the world volume to the current scene +/vis/drawVolume + +# Add trajectories to the current scene +# Note: This command is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +#/vis/scene/add/trajectories + +# Set camera +/vis/viewer/reset +/vis/viewer/zoom 1.5 +/vis/viewer/set/viewpointThetaPhi 70 20 + +# Visualize events added to the current scene +/tracking/storeTrajectory 1 +/run/beamOn 3 diff --git a/examples/extended/gdml/N03gdml/visTutor/exN03Vis9.mac b/examples/extended/gdml/N03gdml/visTutor/exN03Vis9.mac new file mode 100644 index 0000000000..92735677d3 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/exN03Vis9.mac @@ -0,0 +1,87 @@ +####################################################################### +# MACRO FILE NAME: exN03Vis9.mac # +# # +# AUTHOR(S): Satoshi Tanaka # +# # +# DATE: # +# Nov 14, 2001 (renamed from exN03Vis8.mac) # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # +# # +# CONTENTS: A macro to demonstrate creation of a "multi-page" # +# PostScript file # +# # +# USAGE: % setenv G4DAWNFILE_MAX_FILE_NUM 1 # +# % setenv DAWN_BATCH a # +# % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis9.mac # +# Idle> exit # +# % gv g4_00.eps # +# # +# Then click, "<<", ">>" etc to traverse pages # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # +# DAWN (version 3.85 or after) # +# gv (Ghostview), Tcl/Tk # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # +# (See geant4/source/visualization/README for details.) # +# # +# * Unnecessary # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# * Unnecessary # +# # +# ADDITIONAL NOTES: # +# * If you execute this macro plural times, all the views are # +# sequentially appended to the file "g4_00.eps". # +# For example if you execute it two times, a 6-page (3+3 page) # +# PostScript file is made. # +# Unset environmental variables to initialize your environment: # +# # +# % unsetenv G4DAWNFILE_MAX_FILE_NUM # +# % unsetenv DAWN_BATCH # +# # +####################################################################### + +#################################################################### +# Creation of a multi-page PostScript file with the DAWNFILE driver +#################################################################### + +# Invoke the DAWNFILE driver +/vis/open DAWNFILE + +# Set viewing parameters +/vis/viewer/reset +/vis/viewer/zoom 0.9 +/vis/viewer/set/viewpointThetaPhi 35 35 + +# Generate page 1: Absorber +/vis/drawVolume Absorber +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 30 -150 -200 Page1/3:Absorber +/vis/viewer/flush + +# Generate page 2: Gap +/vis/drawVolume Gap +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 30 -100 -200 Page2/3:Gap +/vis/viewer/flush + +# Generate page 3: World +/vis/viewer/set/culling global false +/vis/drawVolume +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 50 -100 -200 Page3/3:world +/vis/viewer/flush + +# Make the culling on for next visualization +# Note: You may also use "/vis/viewer/reset" +# for this initialization. +/vis/viewer/set/culling global true diff --git a/examples/extended/gdml/N03gdml/visTutor/g4Xt.xrm b/examples/extended/gdml/N03gdml/visTutor/g4Xt.xrm new file mode 100644 index 0000000000..be0d65964c --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/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/extended/gdml/N03gdml/visTutor/gui.mac b/examples/extended/gdml/N03gdml/visTutor/gui.mac new file mode 100644 index 0000000000..1d8cc47647 --- /dev/null +++ b/examples/extended/gdml/N03gdml/visTutor/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/extended/gdml/README b/examples/extended/gdml/README new file mode 100644 index 0000000000..1566f93d68 --- /dev/null +++ b/examples/extended/gdml/README @@ -0,0 +1,20 @@ +# $Id: README,v 1.3 2002/06/03 17:34:45 gcosmo Exp $ +-------------------------------------------------------------------------- + +GDML Processor for Geant4 +------------------------- + +This release is packaged as a G4 extended example including +the latest stable version of Xerces-C 1.7.0 XML parser for Linux, see [1]. +The functionality is as described at the CHEP'01 conference, see [2]. + +For more technical details see Release.notes. + +Radovan Chytracek (Radovan.Chytracek@cern.ch) + +References: +----------- + +1. http://xml.apache.org +2. http://cern.ch/gdml/chep01 + diff --git a/examples/extended/gdml/Release.notes b/examples/extended/gdml/Release.notes new file mode 100644 index 0000000000..37982ee7fe --- /dev/null +++ b/examples/extended/gdml/Release.notes @@ -0,0 +1,69 @@ +# $Id: Release.notes,v 1.2 2002/05/31 17:44:42 radoone Exp $ +GDML Processor for Geant4 RC 1.0 RELEASE NOTES +---------------------------------------------- + +Platforms +--------- + +Supported platforms(not final): +CERN Linux RH 6.1.1 and RH 7.2.1, compiler GCC 2.95.2, G4SYSTEM: Linux-g++ +CERN Linux RH 6.1.1, compiler EGCS 1.1.2 (2.91.66), G4SYSTEM: Linux-egcs +CERN SUN Solaris, compiler SUN WS 6.1 CC 5.2, G4SYSTEM: SUN-CC + +Additional Requirements +----------------------- + +Apache Xerces-C 1.6.0 or better (built with version 1.7.0.) + +Supported GDML Features +----------------------- + +GDML Schema 1.0 compatible features include: + +a) Expressions support + - constants,physics constants, translations and rotations, numerical expressions + - including CLHEP units + +b) Full materials support + - isotopes, elements, compounds anf mixtures + +c) CSG solids + - standard CSG solids + - boolean solids, e.g. union, subtraction, intersection + +d) geometrical structure + - volume, assembly, placements (single, so far) + +e) geometry setups + - more then one setup is possible + - selection based on name-version pair + +Known issues and problems +------------------------- + +1. +> Current implementation works only when build with shared libraries enabled. +> It's understood issue of bootstraping of the components in statically linked +> executables. It's being worked on it. +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> THIS HAS BEEN SOLVED! + +2. +> Only GDML DTD is here due to lack of time, GDML Schema is work in progress, +> hopefully released soon. +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> THIS HAS BEEN SOLVED! + +3. +> The Saxana components' interfaces are a bit messy, this issue is being addressed already in the new +> development tree together with support for XML Schema. +Still an issue. The Saxana engine will be rewritten with generative version of XML Engine. +Work on it is in progress. + +4. When linking for Linux-g++ G4SYSTEM on RH 7.2.1 against Xerces-C libraries build on RH 6.1.1 with + compiler GCC 2.95.2 the linker warning can be so far ignored as the resulting binary can run. + We will look at this issue. Looks like G4SYSTEM needs to be again extended for Linux systems. + + +Any feedback is welcome + +mailto:Radovan.Chytracek@cern.ch + diff --git a/examples/extended/gdml/libgdml/GNUmakefile b/examples/extended/gdml/libgdml/GNUmakefile new file mode 100644 index 0000000000..577b410885 --- /dev/null +++ b/examples/extended/gdml/libgdml/GNUmakefile @@ -0,0 +1,16 @@ +# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# -------------------------------------------------------------- +# Makes libraries for each GDML subdomain: +# saxana schema management processes subscribers. +# GNUmakefile for GDML libraries. Radovan Chytracek, 30/05/2002. + +SUBDIRS = saxana schema management processes subscribers + +all: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE)); done + +clean: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) clean); done + +clean_libs: + @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) clean_libs); done diff --git a/examples/extended/gdml/libgdml/libgdml.gmk b/examples/extended/gdml/libgdml/libgdml.gmk new file mode 100644 index 0000000000..7cf9747db3 --- /dev/null +++ b/examples/extended/gdml/libgdml/libgdml.gmk @@ -0,0 +1,37 @@ +# $Id: libgdml.gmk,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# ---------------------------------------------------------------- +# GNUmakefile settings for GDML libraries. Radovan Chytracek, 30/05/2002. +# ---------------------------------------------------------------- + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +GDMLINSTALL := $(G4INSTALL)/examples/extended/gdml +GDMLLIBROOT := $(GDMLINSTALL)/libgdml + +CPPFLAGS += \ + -I$(GDMLINSTALL)/libgdml/saxana/include \ + -I$(GDMLINSTALL)/libgdml/schema/include \ + -I$(GDMLINSTALL)/libgdml/management/include \ + -I$(GDMLINSTALL)/libgdml/processes/include \ + -I$(GDMLINSTALL)/libgdml/subscribers/include \ + -I$(XERCESCROOT)/include + +EXTRALIBS += \ + -lGDMLsaxana \ + -lGDMLmanagement \ + -lGDMLschema \ + -lGDMLprocesses \ + -lGDMLsubscribers \ + -L $(XERCESCROOT)/lib -lxerces-c + +EXTRALIBSSOURCEDIRS += \ + $(GDMLLIBROOT)/saxana \ + $(GDMLLIBROOT)/schema \ + $(GDMLLIBROOT)/processes \ + $(GDMLLIBROOT)/management \ + $(GDMLLIBROOT)/subscribers + +include $(G4INSTALL)/config/architecture.gmk +include $(G4INSTALL)/config/common.gmk diff --git a/examples/extended/gdml/libgdml/management/GNUmakefile b/examples/extended/gdml/libgdml/management/GNUmakefile new file mode 100644 index 0000000000..78758911cf --- /dev/null +++ b/examples/extended/gdml/libgdml/management/GNUmakefile @@ -0,0 +1,15 @@ +# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for GDML management library. Radovan Chytracek, 30/05/2002. +# ---------------------------------------------------------------- + +name := GDMLmanagement + +CPPFLAGS += \ + -I$(G4INSTALL)/source/global/management/include \ + -I$(G4INSTALL)/source/global/HEPGeometry/include \ + -I$(G4INSTALL)/source/geometry/management/include \ + -I$(G4INSTALL)/source/geometry/solids/CSG/include \ + -I$(G4INSTALL)/source/geometry/solids/Boolean/include + +include ../libgdml.gmk diff --git a/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh b/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh new file mode 100644 index 0000000000..abbd2df412 --- /dev/null +++ b/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.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: GDMLDefineTable.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef GDML_DEFINE_TABLE +#define GDML_DEFINE_TABLE 1 + +// #include "GDMLConstant.hh" +// #include "GDMLPhysicalConstant.hh" +// #include "GDMLExpression.hh" +// #include "GDMLCartesianVectorType.hh" + +#include "define.hh" + +#include + +// typedef std::map< std::string, GDMLConstant > ConstantsTable; +// typedef std::map< std::string, GDMLPhysicalConstant > PhysicalConstantsTable; +// typedef std::map< std::string, GDMLExpression > ExpressionsTable; +// typedef std::map< std::string, GDMLPosition > PositionsTable; +// typedef std::map< std::string, GDMLRotation > RotationsTable; +typedef std::map< std::string, define::constant > ConstantsTable; +typedef std::map< std::string, define::quantity > PhysicalConstantsTable; +typedef std::map< std::string, define::expression > ExpressionsTable; +typedef std::map< std::string, define::position > PositionsTable; +typedef std::map< std::string, define::rotation > RotationsTable; + +#endif // GDML_DEFINE_TABLE + + diff --git a/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh b/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh new file mode 100644 index 0000000000..418640d2ec --- /dev/null +++ b/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.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: GDMLExpressionEvaluator.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef GDML_EXPRESSION_EVALUATOR_H +#define GDML_EXPRESSION_EVALUATOR_H 1 + +#include "CLHEP/Evaluator/Evaluator.h" + +#include "StatusCode.hh" +#include "GDMLDefineTable.hh" + +#include "string" + +class GDMLExpressionEvaluator +{ +public: + GDMLExpressionEvaluator(); + ~GDMLExpressionEvaluator(); + +// StatusCode RegisterConstant( const GDMLConstant* const c ); +// StatusCode RegisterPhysConstant( const GDMLPhysicalConstant* const physc ); +// StatusCode RegisterExpression( const GDMLExpression* e ); + StatusCode RegisterConstant( const define::constant* const c ); + StatusCode RegisterPhysConstant( const define::quantity* const physc ); + StatusCode RegisterExpression( const define::expression* e ); + double Eval( const std::string& expr ); + double Eval( const char* expr ); + +private: + HepTool::Evaluator fCalc; + ConstantsTable fCTable; + PhysicalConstantsTable fPCTable; +}; + +#endif // GDML_EXPRESSION_EVALUATOR_H + diff --git a/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh b/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh new file mode 100644 index 0000000000..f1edf5c05b --- /dev/null +++ b/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: GDMLLinkResolver.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef GDML_LINK_RESOLVER_H +#define GDML_LINK_RESOLVER_H 1 + +#include "SAXEventGun.hh" + +class GDMLLinkResolver : virtual public SAXEventGun +{ +public: + StatusCode Run(); + +public: + virtual void characters( const XMLCh* const chars, const unsigned int length ); + // Receive notification of the #PCDATA characters in element content. + + virtual void endDocument(); + // Receive notification of the end of the document. + + virtual void endElement(const XMLCh* const name); + // Receive notification of the end of an element. + + virtual void ignorableWhitespace( const XMLCh* const chars, const unsigned int length ); + // Receive notification of ignorable whitespace in element content. + + virtual void startDocument(); + // Receive notification of the beginning of the document. + + virtual void startElement( const XMLCh* const name, AttributeList& attributes ); + // Receive notification of the start of an element. + + GDMLLinkResolver( SAXProcessor* target ); + ~GDMLLinkResolver(); + + bool Done() + { + return fIsDone; + } + +private: + bool fFound; + bool fIsDone; +}; + +#endif // GDML_LINK_RESOLVER_H + diff --git a/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh b/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh new file mode 100644 index 0000000000..1624dcbec2 --- /dev/null +++ b/examples/extended/gdml/libgdml/management/include/GDMLProcessor.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: GDMLProcessor.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef GDML_PROCESSOR_H +#define GDML_PROCESSOR_H 1 + +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" + +#include "GDMLExpressionEvaluator.hh" + +#include "G4VSolid.hh" +#include "G4AssemblyVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" + +#include +#include + +// Added here in order to resolve properly link dependecies if G4 build system +#include "G4BooleanSolid.hh" +#include "G4CSGSolid.hh" + +class GDMLProcessor +{ +public: + typedef std::map Positions; + typedef std::map Rotations; + typedef std::map Solids; + typedef std::map LogicalVolumes; + typedef std::map AssemblyVolumes; + typedef std::map PhysicalVolumes; + + static GDMLProcessor* GetInstance(); + + GDMLExpressionEvaluator* GetEvaluator(); + + ~GDMLProcessor(); + + void AddPosition( const std::string& name, G4ThreeVector* p ); + void AddPosition( const char* name, G4ThreeVector* p ); + + void AddRotation( const std::string& name, G4RotationMatrix* p ); + void AddRotation( const char* name, G4RotationMatrix* p ); + + void AddSolid( const std::string& name, G4VSolid* p ); + void AddSolid( const char* name, G4VSolid* p ); + + void AddLogicalVolume( const std::string& name, G4LogicalVolume* p ); + void AddLogicalVolume( const char* name, G4LogicalVolume* p ); + + void AddAssemblyVolume( const std::string& name, G4AssemblyVolume* p ); + void AddAssemblyVolume( const char* name, G4AssemblyVolume* p ); + + void AddPhysicalVolume( const std::string& name, G4VPhysicalVolume* p ); + void AddPhysicalVolume( const char* name, G4VPhysicalVolume* p ); + + const G4ThreeVector* GetPosition( const std::string& name ); + const G4ThreeVector* GetPosition( const char* name ); + + const G4RotationMatrix* GetRotation( const std::string& name ); + const G4RotationMatrix* GetRotation( const char* name ); + + const G4VSolid* GetSolid( const std::string& name ); + const G4VSolid* GetSolid( const char* name ); + + const G4LogicalVolume* GetLogicalVolume( const std::string& name ); + const G4LogicalVolume* GetLogicalVolume( const char* name ); + + const G4AssemblyVolume* GetAssemblyVolume( const std::string& name ); + const G4AssemblyVolume* GetAssemblyVolume( const char* name ); + + const G4VPhysicalVolume* GetPhysicalVolume( const std::string& name ); + const G4VPhysicalVolume* GetPhysicalVolume( const char* name ); + + const G4VPhysicalVolume* GetWorldVolume() + { + return fWorldVolume; + } + + void SetWorldVolume( G4VPhysicalVolume* newWorldVolume ) + { + fWorldVolume = newWorldVolume; + } + +protected: + GDMLProcessor(); + +private: + GDMLExpressionEvaluator* fCalc; + GDMLProcessor::Positions fPTable; + GDMLProcessor::Rotations fRTable; + GDMLProcessor::Solids fSolids; + GDMLProcessor::LogicalVolumes fLVolumes; + GDMLProcessor::AssemblyVolumes fAVolumes; + GDMLProcessor::PhysicalVolumes fPVolumes; + G4VPhysicalVolume* fWorldVolume; +}; + +#endif // GDML_PROCESSOR_H + diff --git a/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc b/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc new file mode 100644 index 0000000000..5880414796 --- /dev/null +++ b/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.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. * +// ******************************************************************** +// +// +// $Id: GDMLExpressionEvaluator.cc,v 1.3 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +#include "GDMLExpressionEvaluator.hh" +#include "CLHEP/Units/PhysicalConstants.h" + +GDMLExpressionEvaluator::GDMLExpressionEvaluator() +{ + fCalc.clear(); + fCalc.setStdMath(); // set standard constants and functions + //fCalc.setSystemOfUnits(); // set SI units + // Set Geant4 system of units + fCalc.setSystemOfUnits(1.e+3, 1./1.60217733e-25, 1.e+9, 1./1.60217733e-10,1.0, 1.0, 1.0); +} + +GDMLExpressionEvaluator::~GDMLExpressionEvaluator() +{ + fCTable.clear(); + fPCTable.clear(); + fCalc.clear(); +} + +//StatusCode GDMLExpressionEvaluator::RegisterConstant( const GDMLConstant* const c ) +StatusCode GDMLExpressionEvaluator::RegisterConstant( const define::constant* const c ) +{ + double value = fCalc.evaluate( c->get_value().c_str() ); + + if( fCalc.status() != HepTool::Evaluator::OK ) + { + std::cerr << "Expression evaluator:: Error registering constant " << c->get_name() << std::endl; + fCalc.print_error(); + std::cout << std::endl; + return StatusCode::eError; + } + + std::cout << "Expression evaluator:: Registering constant " + << c->get_name() << ": " << value << std::endl; + + //fCalc.setVariable( c->get_name().c_str(), c->get_value().c_str() ); + fCalc.setVariable( c->get_name().c_str(), value ); + return StatusCode::eOk; +} + +//StatusCode GDMLExpressionEvaluator::RegisterPhysConstant( const GDMLPhysicalConstant* const physc ) +StatusCode GDMLExpressionEvaluator::RegisterPhysConstant( const define::quantity* const physc ) +{ + std::string expr = physc->get_value(); + expr += "*("; + expr += physc->get_unit(); + expr += ")"; + + //std::cout << "Expression evaluator:: evaluating string: " << expr << std::endl; + + double value = fCalc.evaluate( expr.c_str() ); + double unit_value = fCalc.evaluate( physc->get_unit().c_str() ); + + if( fCalc.status() != HepTool::Evaluator::OK ) + { + std::cerr << "Expression evaluator:: Error registering quantity " + << physc->get_name() << std::endl; + fCalc.print_error(); + std::cout << std::endl; + return StatusCode::eError; + } + + std::cout << "Expression evaluator:: Registering quantity " + << physc->get_name() << ": " << (value/unit_value) << physc->get_unit() << std::endl; + + //fCalc.setVariable( physc->get_name().c_str(), expr.c_str() ); + fCalc.setVariable( physc->get_name().c_str(), value ); + return StatusCode::eOk; +} + +//StatusCode GDMLExpressionEvaluator::RegisterExpression( const GDMLExpression* e ) +StatusCode GDMLExpressionEvaluator::RegisterExpression( const define::expression* e ) +{ + std::string expr = "("; + expr += e->get_text(); + expr += ")"; + double value = fCalc.evaluate( expr.c_str() ); + + if( fCalc.status() != HepTool::Evaluator::OK ) + { + std::cerr << "Expression evaluator:: Error registering expression " << e->get_name() << std::endl; + fCalc.print_error(); + std::cout << std::endl; + return StatusCode::eError; + } + + std::cout << "Expression evaluator:: Registering expression " + << e->get_name() << ": " << value << std::endl; + + //fCalc.setVariable( e->get_name().c_str(), e->get_text().c_str() ); + fCalc.setVariable( e->get_name().c_str(), value ); + return StatusCode::eOk; +} + +double GDMLExpressionEvaluator::Eval( const std::string& expr ) +{ + return Eval( expr.c_str() ); +} + +double GDMLExpressionEvaluator::Eval( const char* expr ) +{ + double result = fCalc.evaluate( expr ); + if( fCalc.status() != HepTool::Evaluator::OK ) + { + std::cerr << expr << std::endl; + //std::cerr << "------"; + for (int i=0; i +#include +#include + +#include +#include +#include + +#include "GDMLLinkResolver.hh" + +#include "SAXProcessor.hh" +#include "SAXEvents.hh" +#include "ASCIIAttributeList.hh" +#include "ProcessingConfigurator.hh" + + +//#include + +StatusCode GDMLLinkResolver::Run() +{ + StatusCode sc; + + fParser = new SAXParser(); + + fParser->setDocumentHandler( this ); + fParser->setErrorHandler( this ); + fParser->setValidationScheme( SAXParser::Val_Auto ); + + const std::string& uri = fConfig->URI(); + const char* xmlfile = uri.c_str(); + + try + { + // Create a progressive scan token + XMLPScanToken token; + + if (!fParser->parseFirst(xmlfile, token)) + { + std::cerr << "scanFirst() failed\n" << std::endl; + sc = StatusCode::eError; + } + else + { + // + // We started ok, so lets call scanNext() until we find what we want + // or hit the end. + // + bool gotMore = true; + while (gotMore && !Done()) + gotMore = fParser->parseNext(token); + + // + // Reset the parser. In this simple progrma, since we just exit + // now, its not technically required. But, in programs which + // would remain open, you should reset after a progressive parse + // in case you broke out before the end of the file. This insures + // that all opened files, sockets, etc... are closed. + // + fParser->parseReset(token); + } + } + catch (const XMLException& toCatch) + { + const char* msg = XMLString::transcode( toCatch.getMessage() ); + std::cerr << "\nAn error occured: '" << xmlfile << "'\n" + << "Exception message is: \n" + << msg + << "\n" << endl; + if( msg != 0 ) + { + delete [] msg; + } + sc = StatusCode::eError; + } + + return sc; +} + +void GDMLLinkResolver::characters( const XMLCh* const chars + , const unsigned int length ) +// Receive notification of #PCDATA characters in element content. +{ + if( fFound ) + { + SAXEventGun::characters( chars, length ); + } +} + +void GDMLLinkResolver::endDocument() +// Receive notification of the end of the document. +{ + if( !fFound && !fIsDone ) + { + std::cerr << "Invalid GDML link!" << std::endl; + std::cerr << "Link was: " << fConfig->URI() << " " << fConfig->Type() << " " << fConfig->SetupName() << std::endl; + } +} + +void GDMLLinkResolver::endElement( const XMLCh* const name ) +// Receive notification of the end of an element. +{ + const char* aName = XMLString::transcode( name ); + + if( fFound && fConfig->SetupName() == aName ) + { + SAXEventGun::endElement( name ); + fIsDone = true; + } +} + +void GDMLLinkResolver::ignorableWhitespace( const XMLCh* const chars + , const unsigned int length ) +// Receive notification of ignorable whitespace in element content. +{ + if( fFound ) + { + SAXEventGun::ignorableWhitespace( chars, length ); + } +} + +void GDMLLinkResolver::startDocument() +// Receive notification of the beginning of the document. +{ + fFound = false; + fIsDone = false; +} + +void GDMLLinkResolver::startElement( const XMLCh* const name + , AttributeList& attributes ) +// Receive notification of the start of an element. +{ + const char* cType = XMLString::transcode( name ); + + if( fConfig->Type() == cType ) + { + XMLCh* xName = XMLString::transcode( fConfig->SetupName().c_str() ); + const XMLCh* xValue = attributes.getValue( xName ); + const char* aName = XMLString::transcode( xValue ); + + if( fConfig->SetupName() == aName ) + { + fFound = true; + SAXEventGun::startElement( name, attributes ); + } + + if( xName != 0 ) + { + delete [] xName; + } + + if( aName != 0 ) + { + delete [] aName; + } + } + + if( cType != 0 ) + { + delete [] cType; + } +} + +GDMLLinkResolver::GDMLLinkResolver( SAXProcessor* target ) +: SAXEventGun( target ), fFound( false ), fIsDone( false ) +{ +} + +GDMLLinkResolver::~GDMLLinkResolver() +{ +} + + + diff --git a/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc b/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc new file mode 100644 index 0000000000..028874506c --- /dev/null +++ b/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc @@ -0,0 +1,260 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: GDMLProcessor.cc,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "GDMLProcessor.hh" + +// Declare the external component system initialization routines +extern "C" void GDMLProcessLibLoad(); +extern "C" void GDMLSubscriberLibLoad(); + + +static GDMLProcessor* sProcessor = 0; + +GDMLProcessor* GDMLProcessor::GetInstance() +{ + if( sProcessor == 0 ) + { + sProcessor = new GDMLProcessor(); + } + + return sProcessor; +} + +GDMLExpressionEvaluator* GDMLProcessor::GetEvaluator() +{ + return fCalc; +} + +GDMLProcessor::~GDMLProcessor() +{ + if( fCalc != 0 ) + { + delete fCalc; + fCalc = 0; + } + + GDMLProcessor::Positions::iterator pit; + GDMLProcessor::Rotations::iterator rit; + GDMLProcessor::Solids::iterator sit; + GDMLProcessor::LogicalVolumes::iterator lvit; + GDMLProcessor::AssemblyVolumes::iterator avit; + GDMLProcessor::PhysicalVolumes::iterator pvit; + + for( pit = fPTable.begin(); pit != fPTable.end(); pit++ ) + { + G4ThreeVector* victim = (*pit).second; + if( victim != 0 ) + { + delete victim; + } + } + for( rit = fRTable.begin(); rit != fRTable.end(); rit++ ) + { + G4RotationMatrix* victim = (*rit).second; + if( victim != 0 ) + { + delete victim; + } + } + for( sit = fSolids.begin(); sit != fSolids.end(); sit++ ) + { + G4VSolid* victim = (*sit).second; + if( victim != 0 ) + { + delete victim; + } + } + for( lvit = fLVolumes.begin(); lvit != fLVolumes.end(); lvit++ ) + { + G4LogicalVolume* victim = (*lvit).second; + if( victim != 0 ) + { + delete victim; + } + } + for( avit = fAVolumes.begin(); avit != fAVolumes.end(); avit++ ) + { + G4AssemblyVolume* victim = (*avit).second; + if( victim != 0 ) + { + delete victim; + } + } + for( pvit = fPVolumes.begin(); pvit != fPVolumes.end(); pvit++ ) + { + G4VPhysicalVolume* victim = (*pvit).second; + if( victim != 0 ) + { + delete victim; + } + } +} + +void GDMLProcessor::AddPosition( const std::string& name, G4ThreeVector* p ) +{ + fPTable[name] = p; +} + +void GDMLProcessor::AddPosition( const char* name, G4ThreeVector* p ) +{ + std::string key = name; + AddPosition( key, p ); +} + +void GDMLProcessor::AddRotation( const std::string& name, G4RotationMatrix* p ) +{ + fRTable[name] = p; +} + +void GDMLProcessor::AddRotation( const char* name, G4RotationMatrix* p ) +{ + std::string key = name; + AddRotation( key, p ); +} + +void GDMLProcessor::AddSolid( const std::string& name, G4VSolid* p ) +{ + fSolids[name] = p; +} +void GDMLProcessor::AddSolid( const char* name, G4VSolid* p ) +{ + std::string key = name; + AddSolid( key, p ); +} + +void GDMLProcessor::AddLogicalVolume( const std::string& name, G4LogicalVolume* p ) +{ + fLVolumes[name] = p; +} +void GDMLProcessor::AddLogicalVolume( const char* name, G4LogicalVolume* p ) +{ + std::string key = name; + AddLogicalVolume( key, p ); +} + +void GDMLProcessor::AddAssemblyVolume( const std::string& name, G4AssemblyVolume* p ) +{ + fAVolumes[name] = p; +} +void GDMLProcessor::AddAssemblyVolume( const char* name, G4AssemblyVolume* p ) +{ + std::string key = name; + AddAssemblyVolume( key, p ); +} + +void GDMLProcessor::AddPhysicalVolume( const std::string& name, G4VPhysicalVolume* p ) +{ + fPVolumes[name] = p; +} +void GDMLProcessor::AddPhysicalVolume( const char* name, G4VPhysicalVolume* p ) +{ + std::string key = name; + AddPhysicalVolume( key, p ); +} + +const G4ThreeVector* GDMLProcessor::GetPosition( const std::string& name ) +{ + return fPTable[name]; +} + +const G4ThreeVector* GDMLProcessor::GetPosition( const char* name ) +{ + std::string key = name; + return GetPosition( key ); +} + +const G4RotationMatrix* GDMLProcessor::GetRotation( const std::string& name ) +{ + return fRTable[name]; +} + +const G4RotationMatrix* GDMLProcessor::GetRotation( const char* name ) +{ + std::string key = name; + return GetRotation( key ); +} + +const G4VSolid* GDMLProcessor::GetSolid( const std::string& name ) +{ + return fSolids[name]; +} + +const G4VSolid* GDMLProcessor::GetSolid( const char* name ) +{ + std::string key = name; + return GetSolid( key ); +} + +const G4LogicalVolume* GDMLProcessor::GetLogicalVolume( const std::string& name ) +{ + return fLVolumes[name]; +} + +const G4LogicalVolume* GDMLProcessor::GetLogicalVolume( const char* name ) +{ + std::string key = name; + return GetLogicalVolume( key ); +} + +const G4AssemblyVolume* GDMLProcessor::GetAssemblyVolume( const std::string& name ) +{ + return fAVolumes[name]; +} + +const G4AssemblyVolume* GDMLProcessor::GetAssemblyVolume( const char* name ) +{ + std::string key = name; + return GetAssemblyVolume( key ); +} + +const G4VPhysicalVolume* GDMLProcessor::GetPhysicalVolume( const std::string& name ) +{ + return fPVolumes[name]; +} + +const G4VPhysicalVolume* GDMLProcessor::GetPhysicalVolume( const char* name ) +{ + std::string key = name; + return GetPhysicalVolume( key ); +} + +GDMLProcessor::GDMLProcessor() +: fCalc( 0 ), fWorldVolume( 0 ) +{ + fCalc = new GDMLExpressionEvaluator(); + + // We need to initialize our component system + GDMLProcessLibLoad(); + GDMLSubscriberLibLoad(); +} + + diff --git a/examples/extended/gdml/libgdml/processes/GNUmakefile b/examples/extended/gdml/libgdml/processes/GNUmakefile new file mode 100644 index 0000000000..f4be244d56 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/GNUmakefile @@ -0,0 +1,13 @@ +# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for GDML processes library. Radovan Chytracek, 30/05/2002. +# ---------------------------------------------------------------- + +name := GDMLprocesses + +CPPFLAGS += \ + -I$(G4INSTALL)/source/global/management/include \ + -I$(G4INSTALL)/source/global/HEPGeometry/include \ + -I$(G4INSTALL)/source/geometry/management/include + +include ../libgdml.gmk diff --git a/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh new file mode 100644 index 0000000000..250acacfc5 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.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: BooleanSolidTypeProcess.hh,v 1.3 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef BOOLEANSOLIDTYPEPROCESS_H +#define BOOLEANSOLIDTYPEPROCESS_H 1 + +#include "BooleanSolidType.hh" + +#include "SolidTypeProcess.hh" + +class BooleanSolidTypeProcess : public SolidTypeProcess +{ +public: + BooleanSolidTypeProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~BooleanSolidTypeProcess() { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + + SAXObject** so = Context()->GetTopObject(); + BooleanSolidType* bsobj = dynamic_cast( m_obj ); + + if( name == "first" || name == "second" ) { + // Add the first and second elements into content model + bsobj->add_content( name, *so ); + } else { + // Add either choice of position or rotation elements and their references + ContentChoice* choice = new ContentChoice; + ContentGroup::ContentItem ci = { name, *so }; + choice->set_content( ci ); + //std::cout << "BOOLEAN SOLID PROCESS adding choice " << name << std::endl; + bsobj->add_content( "choice", choice ); + } + + SolidTypeProcess::StackPopNotify( name ); + } +}; + +#endif // BOOLEANSOLIDTYPEPROCESS_H diff --git a/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh new file mode 100644 index 0000000000..56e257f3bf --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.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. * +// ******************************************************************** +// +// +// $Id: MaterialTypeProcess.hh,v 1.3 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef MATERIALTYPEPROCESS_H +#define MATERIALTYPEPROCESS_H 1 + + +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "MaterialType.hh" + +#include +#include + +class MaterialTypeProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + MaterialTypeProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ), m_obj( 0 ) + { + // This is not a real process, it's a base class for a real process instead + // The final inheriting class should set it to a correct value + //m_tag = ""; + } + + virtual ~MaterialTypeProcess() + { + } + + virtual const SAXComponentObject* Build() const + { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + MaterialType* mt_obj = dynamic_cast(m_obj); + + if( mt_obj == 0 ) { + // Whoops, fatal problem! + std::cerr << "MaterialType PROCESS:: bad_cast trouble at: " + << __FILE__ << ":" << __LINE__ << "\a" << std::endl; + // Some exception would fit here... + return; + } + + //std::cout << "MaterialType PROCESS:: : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + if( name == "RL" || name == "RLref" ) { + mt_obj->set_RLorRLref( name, *obj ); + } else if( name == "AL" || name == "ALref" ) { + mt_obj->set_ALorALref( name, *obj ); + } else if( name == "T" || name == "Tref" ) { + mt_obj->set_TorTref( name, *obj ); + } else if( name == "P" || name == "Pref" ) { + mt_obj->set_PorPref( name, *obj ); + } else { + // Invalid input + std::cerr << "MaterialType PROCESS:: invalid tag " + << name << " on input at: " + << __FILE__ << ":" << __LINE__ << "\a" << std::endl; + } + } + + // The name of the state this object will process +// virtual const std::string& State() const +// { +// return m_tag; +// } + +protected: + // Resulting object, one of isotope, element or material + SAXObject* m_obj; +}; + +// This is going to be a base class, so no factory is needed +//DECLARE_PROCESS_FACTORY(MaterialTypeProcess) + +#endif // MATERIALTYPEPROCESS_H diff --git a/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh new file mode 100644 index 0000000000..89a21f1580 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.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. * +// ******************************************************************** +// +// +// $Id: QuantityTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef QUANTITYTYPEPROCESS_H +#define QUANTITYTYPEPROCESS_H 1 + +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "QuantityType.hh" + +#include +#include + +class QuantityTypeProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + QuantityTypeProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~QuantityTypeProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + QuantityType* qobj = dynamic_cast( m_obj ); + + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string qunit = attrs.getValue( "unit" ); + std::string qtype = attrs.getValue( "type" ); + std::string qvalue = attrs.getValue( "value" ); + + qobj->set_unit( qunit ); + qobj->set_type( qtype ); + qobj->set_value( qvalue ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try { + QuantityType* saxobj = dynamic_cast( m_obj ); + + if( saxobj != 0 ) + { + // std::cout << "PROCESS END OF TAG:: " << name + // << saxobj->get_type() << ": " + // << saxobj->get_value() << "[" + // << saxobj->get_unit() << "]" + // << " looks OK" << std::endl; + } + else + { + std::cerr << "PROCESS END OF TAG:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + +protected: + SAXObject* m_obj; +}; + +#endif // QUANTITYTYPEPROCESS_H diff --git a/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh new file mode 100644 index 0000000000..7996e53d12 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh @@ -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. * +// ******************************************************************** +// +// +// $Id: ReferenceTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef REFERENCETYPEPROCESS_H +#define REFERENCETYPEPROCESS_H 1 + +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "ReferenceType.hh" + +#include +#include + +class ReferenceTypeProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + ReferenceTypeProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ), m_obj( 0 ) { + } + + virtual ~ReferenceTypeProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "ReferenceTypeProcess PROCESS::START OF TAG : " << name << std::endl; + + std::string ref = attrs.getValue( "ref" ); + ReferenceType* refobj = dynamic_cast(m_obj); + refobj->set_ref( ref ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + //std::cout << "ReferenceTypeProcess PROCESS::END OF TAG : " << name << std::endl; + try { + ReferenceType* saxobj = dynamic_cast( m_obj ); + + if( saxobj != 0 ) { + //std::cout << "PROCESS END OF TAG:: " + // << name << " ref: " << saxobj->get_ref() + // << " looks OK" << std::endl; + } else { + std::cerr << "PROCESS END OF TAG:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + +protected: + SAXObject* m_obj; +}; + +#endif // REFERENCETYPEPROCESS_H diff --git a/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh new file mode 100644 index 0000000000..52920bca7d --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh @@ -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: SinglePlacementTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SINGLEPLACEMENTTYPEPROCESS_H +#define SINGLEPLACEMENTTYPEPROCESS_H 1 + +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXComponentFactory.hh" + +#include "SinglePlacementType.hh" + +class SinglePlacementTypeProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + SinglePlacementTypeProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~SinglePlacementTypeProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + SAXObject** so = Context()->GetTopObject(); + SinglePlacementType* sptobj = dynamic_cast( m_obj ); + sptobj->add_content( name, *so ); + } + +protected: + SAXObject* m_obj; +}; + +#endif // SINGLEPLACEMENTTYPEPROCESS_H diff --git a/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh new file mode 100644 index 0000000000..ea02d0c04f --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.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. * +// ******************************************************************** +// +// +// $Id: SolidTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SOLIDTYPEPROCESS_H +#define SOLIDTYPEPROCESS_H 1 + +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "SolidType.hh" + +#include +#include + +class SolidTypeProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + SolidTypeProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ), m_obj( 0 ) { + } + + virtual ~SolidTypeProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + std::string lunit = attrs.getValue( "lunit" ); + std::string aunit = attrs.getValue( "aunit" ); + std::string sname = attrs.getValue( "name" ); + + SolidType* sobj = dynamic_cast( m_obj ); + + sobj->set_lunit( lunit ); + sobj->set_aunit( aunit ); + sobj->set_name( sname ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + +protected: + SAXObject* m_obj; +}; + +#endif // SOLIDTYPEPROCESS_H diff --git a/examples/extended/gdml/libgdml/processes/src/DProcess.cc b/examples/extended/gdml/libgdml/processes/src/DProcess.cc new file mode 100644 index 0000000000..38043be521 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/DProcess.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: DProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "QuantityTypeProcess.hh" + +#include "DorDref.hh" + +class DProcess : public QuantityTypeProcess +{ +public: + DProcess( const ProcessingContext* context = 0 ) + : QuantityTypeProcess( context ) { + } + + virtual ~DProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + + SAXObject** obj = Context()->GetTopObject(); + *obj = new D; + m_obj = *obj; + + QuantityTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + QuantityTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string m_tag = "D"; + return m_tag; + } +}; + +DECLARE_PROCESS_FACTORY(DProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc new file mode 100644 index 0000000000..6efd890f2b --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/DrefProcess.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. * +// ******************************************************************** +// +// +// $Id: DrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "DorDref.hh" + +#include +#include + +class DrefProcess : public ReferenceTypeProcess +{ +public: + DrefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~DrefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + *obj = new Dref; + m_obj = *obj; + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "Dref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(DrefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc b/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc new file mode 100644 index 0000000000..8d4e469dd5 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: LibLoadProcesses.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXComponentFactory.hh" + +extern "C" { + + void GDMLProcessLibLoad() { + LOAD_COMPONENT(defineProcess) + LOAD_COMPONENT(constantProcess) + LOAD_COMPONENT(quantityProcess) + LOAD_COMPONENT(expressionProcess) + LOAD_COMPONENT(positionProcess) + LOAD_COMPONENT(rotationProcess) + LOAD_COMPONENT(atomProcess) + LOAD_COMPONENT(DProcess) + LOAD_COMPONENT(DrefProcess) + LOAD_COMPONENT(TProcess) + LOAD_COMPONENT(TrefProcess) + LOAD_COMPONENT(PProcess) + LOAD_COMPONENT(PrefProcess) + LOAD_COMPONENT(isotopeProcess) + LOAD_COMPONENT(elementProcess) + LOAD_COMPONENT(materialProcess) + LOAD_COMPONENT(fractionProcess) + LOAD_COMPONENT(compositeProcess) + LOAD_COMPONENT(firstProcess) + LOAD_COMPONENT(secondProcess) + LOAD_COMPONENT(positionrefProcess) + LOAD_COMPONENT(rotationrefProcess) + LOAD_COMPONENT(unionProcess) + LOAD_COMPONENT(subtractionProcess) + LOAD_COMPONENT(intersectionProcess) + LOAD_COMPONENT(boxProcess) + LOAD_COMPONENT(sphereProcess) + LOAD_COMPONENT(tubeProcess) + LOAD_COMPONENT(coneProcess) + LOAD_COMPONENT(paraProcess) + LOAD_COMPONENT(trdProcess) + LOAD_COMPONENT(trapProcess) + LOAD_COMPONENT(volumeProcess) + LOAD_COMPONENT(assemblyProcess) + LOAD_COMPONENT(childProcess) + LOAD_COMPONENT(materialrefProcess) + LOAD_COMPONENT(solidrefProcess) + LOAD_COMPONENT(volumerefProcess) + LOAD_COMPONENT(worldProcess) + LOAD_COMPONENT(setupProcess) + } + +}; diff --git a/examples/extended/gdml/libgdml/processes/src/PProcess.cc b/examples/extended/gdml/libgdml/processes/src/PProcess.cc new file mode 100644 index 0000000000..a2082ba991 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/PProcess.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: PProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "QuantityTypeProcess.hh" + +#include "PorPref.hh" + +class PProcess : public QuantityTypeProcess +{ +public: + PProcess( const ProcessingContext* context = 0 ) + : QuantityTypeProcess( context ) { + } + + virtual ~PProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + + SAXObject** obj = Context()->GetTopObject(); + *obj = new P; + m_obj = *obj; + + QuantityTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + QuantityTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string m_tag = "P"; + return m_tag; + } +}; + +DECLARE_PROCESS_FACTORY(PProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc new file mode 100644 index 0000000000..6c88f7f024 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/PrefProcess.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. * +// ******************************************************************** +// +// +// $Id: PrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "PorPref.hh" + +class PrefProcess : public ReferenceTypeProcess +{ +public: + PrefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~PrefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + *obj = new Pref; + m_obj = *obj; + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "Pref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(PrefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/TProcess.cc b/examples/extended/gdml/libgdml/processes/src/TProcess.cc new file mode 100644 index 0000000000..b1bf60fc9e --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/TProcess.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: TProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "QuantityTypeProcess.hh" + +#include "TorTref.hh" + +class TProcess : public QuantityTypeProcess +{ +public: + TProcess( const ProcessingContext* context = 0 ) + : QuantityTypeProcess( context ) { + } + + virtual ~TProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + + SAXObject** obj = Context()->GetTopObject(); + *obj = new T; + m_obj = *obj; + + QuantityTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + QuantityTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string m_tag = "T"; + return m_tag; + } +}; + +DECLARE_PROCESS_FACTORY(TProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc new file mode 100644 index 0000000000..2bdc196096 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/TrefProcess.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. * +// ******************************************************************** +// +// +// $Id: TrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "TorTref.hh" + +class TrefProcess : public ReferenceTypeProcess +{ +public: + TrefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~TrefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + *obj = new Tref; + m_obj = *obj; + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "Tref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(TrefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc b/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc new file mode 100644 index 0000000000..7be8443422 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/assemblyProcess.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: assemblyProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXComponentFactory.hh" + +#include "assembly.hh" + +class assemblyProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + assemblyProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ), m_obj( 0 ) { + } + + virtual ~assemblyProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + SAXObject** obj = Context()->GetTopObject(); + + assembly* ao = new assembly; + + ao->set_name( attrs.getValue( "name" ) ); + + m_obj = ao; + *obj = ao; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << " " << std::endl; + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::assembly NOTIFIED AFTER THE TAG: " << name << std::endl; + SAXObject** so = Context()->GetTopObject(); + assembly* aobj = dynamic_cast( m_obj ); + aobj->add_content( name, *so ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "assembly"; + return tag; + } + +private: + SAXObject* m_obj; +}; + +DECLARE_PROCESS_FACTORY(assemblyProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/atomProcess.cc b/examples/extended/gdml/libgdml/processes/src/atomProcess.cc new file mode 100644 index 0000000000..e43bfe9021 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/atomProcess.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. * +// ******************************************************************** +// +// +// $Id: atomProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "atom.hh" + +#include +#include + +class atomProcess : virtual public SAXStateProcess, virtual public SAXComponentObject +{ +public: + atomProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~atomProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string aunit = attrs.getValue( "unit" ); + std::string atype = attrs.getValue( "type" ); + std::string avalue = attrs.getValue( "value" ); + + SAXObject** obj = Context()->GetTopObject(); + *obj = new atom; + atom* atom_element = dynamic_cast(*obj); + atom_element->set_unit( aunit ); + atom_element->set_type( atype ); + atom_element->set_value( avalue ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + atom* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) + { +// std::cout << "PROCESS END OF TAG:: atom " +// << saxobj->get_type() << ": " +// << saxobj->get_value() << "[" +// << saxobj->get_unit() << "]" +// << " looks OK" << std::endl; + } + else + { + std::cerr << "PROCESS END OF TAG:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "atom"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(atomProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/boxProces.cc b/examples/extended/gdml/libgdml/processes/src/boxProces.cc new file mode 100644 index 0000000000..572b46ea74 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/boxProces.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: boxProces.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SolidTypeProcess.hh" + +#include "box.hh" + +class boxProcess : public SolidTypeProcess +{ +public: + boxProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~boxProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + box* box_element = new box; + + box_element->set_x( attrs.getValue( "x" ) ); + box_element->set_y( attrs.getValue( "y" ) ); + box_element->set_z( attrs.getValue( "z" ) ); + + m_obj = box_element; + *obj = box_element; + + SolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + SolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::" << name << " NOTIFIED AFTER THE TAG: " << name << std::endl; + SolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "box"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(boxProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/childProcess.cc b/examples/extended/gdml/libgdml/processes/src/childProcess.cc new file mode 100644 index 0000000000..22a312ce8f --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/childProcess.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: childProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SinglePlacementTypeProcess.hh" + +#include "child.hh" + +class childProcess : public SinglePlacementTypeProcess +{ +public: + childProcess( const ProcessingContext* context = 0 ) + : SinglePlacementTypeProcess( context ) { + } + + virtual ~childProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + child* child_lement = new child; + + m_obj = child_lement; + *obj = child_lement; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::child NOTIFIED AFTER THE TAG: " << name << std::endl; + SinglePlacementTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "child"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(childProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc b/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc new file mode 100644 index 0000000000..b7c6032207 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: compositeProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "composite.hh" + +#include +#include + +class compositeProcess : public ReferenceTypeProcess +{ +public: + compositeProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~compositeProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + composite* co = new composite; + + std::string cn = attrs.getValue( "n" ); + co->set_n( cn ); + + *obj = co; + m_obj = co; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "composite"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(compositeProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/coneProcess.cc b/examples/extended/gdml/libgdml/processes/src/coneProcess.cc new file mode 100644 index 0000000000..1c4afe3e80 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/coneProcess.cc @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: coneProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SolidTypeProcess.hh" + +#include "cone.hh" + +class coneProcess : public SolidTypeProcess +{ +public: + coneProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~coneProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + cone* cone_element = new cone; + + cone_element->set_rmin1( attrs.getValue( "rmin1" ) ); + cone_element->set_rmax1( attrs.getValue( "rmax1" ) ); + cone_element->set_rmin2( attrs.getValue( "rmin2" ) ); + cone_element->set_rmax2( attrs.getValue( "rmax2" ) ); + cone_element->set_z( attrs.getValue( "z" ) ); + cone_element->set_startphi( attrs.getValue( "startphi" ) ); + cone_element->set_deltaphi( attrs.getValue( "deltaphi" ) ); + + m_obj = cone_element; + *obj = cone_element; + + SolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + SolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::" << name << " NOTIFIED AFTER THE TAG: " << name << std::endl; + SolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "cone"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(coneProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/constantProcess.cc b/examples/extended/gdml/libgdml/processes/src/constantProcess.cc new file mode 100644 index 0000000000..f5156f959c --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/constantProcess.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: constantProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "define.hh" + +#include +#include + +class constantProcess : virtual public SAXStateProcess, virtual public SAXComponentObject +{ +public: + constantProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~constantProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string cname = attrs.getValue( "name" ); + std::string cvalue = attrs.getValue( "value" ); + + SAXObject** obj = Context()->GetTopObject(); + *obj = new define::constant; + define::constant* constant_element = dynamic_cast(*obj); + constant_element->set_name( cname ); + constant_element->set_value( cvalue ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + define::constant* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) + { + //std::cout << "PROCESS END OF TAG:: Constant " << saxobj->get_name() << " looks OK" << std::endl; + ; + } + else + { + std::cerr << "PROCESS END OF TAG:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "constant"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(constantProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/defineProcess.cc b/examples/extended/gdml/libgdml/processes/src/defineProcess.cc new file mode 100644 index 0000000000..6b9a695077 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/defineProcess.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: defineProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXComponentFactory.hh" + +#include "define.hh" + +#include +#include + +class defineProcess : virtual public SAXStateProcess, virtual public SAXComponentObject +{ +public: + defineProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~defineProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + m_define = new define; + *obj = m_define; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + defineType* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) + { + //std::cout << "PROCESS END OF TAG:: define" << std::endl; + ; + } + else + { + std::cerr << "PROCESS END OF TAG:: define:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG:: define:: BAD CAST exception caught...\a" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + // Irrelevant in this process + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + // Get the defineType interface + defineType* define_element = dynamic_cast( m_define ); + + // We can expect the 5 inner elements: constant, quantity, expression, position, rotation + // Whenever one of these appears we have to add it as a choice content group into define element + SAXObject** so = Context()->GetTopObject(); + if( name == "constant" || name == "quantity" || name == "expression" || name == "position" || name == "rotation" ) { + // Add the element into choice content group of define element + define_element->add_to_content( name, *so ); + } else { + // This should not happen, as it's not fatal problem just warn about it + std::cerr << "Got unexpected element \"" << name << "\"\a" << std::endl; + } + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string m_tag = "define"; + return m_tag; + } + +private: + define* m_define; +}; + +DECLARE_PROCESS_FACTORY(defineProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/elementProcess.cc b/examples/extended/gdml/libgdml/processes/src/elementProcess.cc new file mode 100644 index 0000000000..84f6f00eb3 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/elementProcess.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. * +// ******************************************************************** +// +// +// $Id: elementProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "MaterialTypeProcess.hh" + +#include "element.hh" + +#include +#include + +class elementProcess : public MaterialTypeProcess +{ +public: + elementProcess( const ProcessingContext* context = 0 ) + : MaterialTypeProcess( context ) { + } + + virtual ~elementProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string ename = attrs.getValue( "name" ); + std::string ef = attrs.getValue( "formula" ); + std::string en = attrs.getValue( "N" ); + std::string ez = attrs.getValue( "Z" ); + + SAXObject** obj = Context()->GetTopObject(); + + element* el = new element; + + el->set_name( ename ); + el->set_formula( ef ); + + if( !en.empty() ) + el->set_N( en ); + if( !ez.empty() ) + el->set_Z( ez ); + + m_obj = el; + *obj = el; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + element* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) { + //std::cout << "PROCESS END OF TAG:: element " << saxobj->get_name() + // << " looks OK" << std::endl; + } else { + std::cerr << "PROCESS END OF TAG::element GOT ZERO DATA POINTER! " << std::endl; + } + } + catch( ... ) + { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + //std::cout << "PROCESS::element NOTIFIED AFTER THE TAG: " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + if( name == "atom" || name == "fraction" ) { + element* el = dynamic_cast( m_obj ); + el->set_AtomOrFraction( name, *obj ); + } else if( name == "D" || name == "Dref" ) { + element* saxobj = dynamic_cast( m_obj ); + saxobj->set_DorDref( name, *obj ); + } else { + MaterialTypeProcess::StackPopNotify( name ); + } + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "element"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(elementProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc b/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc new file mode 100644 index 0000000000..3e5c6a52be --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/expressionProcess.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. * +// ******************************************************************** +// +// +// $Id: expressionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "define.hh" + +#include +#include + +class expressionProcess : virtual public SAXStateProcess, virtual public SAXComponentObject +{ +public: + expressionProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~expressionProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + m_expression_value = "("; + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string ename = attrs.getValue( "name" ); + + SAXObject** obj = Context()->GetTopObject(); + *obj = new define::expression; + define::expression* expression_element = dynamic_cast(*obj); + expression_element->set_name( ename ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + m_expression_value += ")"; + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + define::expression* saxobj = dynamic_cast( *obj ); + saxobj->set_text( m_expression_value ); + + if( saxobj != 0 ) + { + //std::cout << "PROCESS END OF TAG:: expression " << saxobj->get_name() + // << " has value:: " << saxobj->get_text() << std::endl; + } + else + { + std::cerr << "PROCESS END OF TAG:: expression:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& text ) + { + m_expression_value += text; + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string m_tag = "expression"; + return m_tag; + } + +private: + std::string m_expression_value; +}; + +DECLARE_PROCESS_FACTORY(expressionProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/firstProcess.cc b/examples/extended/gdml/libgdml/processes/src/firstProcess.cc new file mode 100644 index 0000000000..0af517857c --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/firstProcess.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: firstProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "BooleanSolidType.hh" + +#include +#include + +class firstProcess : public ReferenceTypeProcess +{ +public: + firstProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~firstProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + BooleanSolidType::first* co = new BooleanSolidType::first; + + *obj = co; + m_obj = co; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "first"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(firstProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc b/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc new file mode 100644 index 0000000000..27e3b12eef --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc @@ -0,0 +1,87 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: fractionProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "fraction.hh" + +#include +#include + +class fractionProcess : public ReferenceTypeProcess +{ +public: + fractionProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~fractionProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + fraction* fr = new fraction; + + std::string fn = attrs.getValue( "n" ); + fr->set_n( fn ); + + *obj = fr; + m_obj = fr; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "fraction"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(fractionProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc b/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc new file mode 100644 index 0000000000..d8a9147019 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: intersectionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "BooleanSolidTypeProcess.hh" + +#include "boolean_intersection.hh" + +class intersectionProcess : public BooleanSolidTypeProcess +{ +public: + intersectionProcess( const ProcessingContext* context = 0 ) + : BooleanSolidTypeProcess( context ) { + } + + virtual ~intersectionProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + boolean_intersection* intersection_lement = new boolean_intersection; + + m_obj = intersection_lement; + *obj = intersection_lement; + + BooleanSolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + BooleanSolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::intersection NOTIFIED AFTER THE TAG: " << name << std::endl; + BooleanSolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "intersection"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(intersectionProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc b/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc new file mode 100644 index 0000000000..98dc658e4e --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/isotopeProcess.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: isotopeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +// #include "ProcessingConfigurator.hh" +// #include "ProcessingContext.hh" +// #include "SAXProcessor.hh" +// #include "StateStack.hh" +// #include "SAXProcessingState.hh" +// #include "SAXStateProcess.hh" +// #include "SAXComponentFactory.hh" +// #include "SAXObjectHandle.hh" + +#include "isotope.hh" +#include "MaterialTypeProcess.hh" + +#include +#include + +class isotopeProcess : public MaterialTypeProcess +{ +public: + isotopeProcess( const ProcessingContext* context = 0 ) + : MaterialTypeProcess( context ) { + } + + virtual ~isotopeProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string iname = attrs.getValue( "name" ); + std::string ifo = attrs.getValue( "formula" ); + std::string in = attrs.getValue( "N" ); + std::string iz = attrs.getValue( "Z" ); + + SAXObject** obj = Context()->GetTopObject(); + + isotope* isotope_element = new isotope; + + isotope_element->set_name( iname ); + isotope_element->set_formula( ifo ); + isotope_element->set_N( in ); + isotope_element->set_Z( iz ); + + m_obj = isotope_element; + *obj = isotope_element; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + isotope* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) { + //std::cout << "PROCESS END OF TAG:: isotope " << saxobj->get_name() + // << " looks OK" << std::endl; + ; + } else { + std::cerr << "PROCESS END OF TAG:: GOT ZERO DATA POINTER! " << std::endl; + } + } + catch( ... ) + { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + //std::cout << "PROCESS::isotope NOTIFIED AFTER THE TAG: " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + if( name == "atom" ) { + atom* saxobj = dynamic_cast( *obj ); + isotope* isotope_element = dynamic_cast( m_obj ); + isotope_element->set_atom( *saxobj ); + } else if( name == "D" || name == "Dref" ) { + isotope* saxobj = dynamic_cast( m_obj ); + saxobj->set_DorDref( name, *obj ); + } else { + MaterialTypeProcess::StackPopNotify( name ); + } + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "isotope"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(isotopeProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/materialProcess.cc b/examples/extended/gdml/libgdml/processes/src/materialProcess.cc new file mode 100644 index 0000000000..b6028f246e --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/materialProcess.cc @@ -0,0 +1,169 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: materialProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "MaterialTypeProcess.hh" + +#include "material.hh" + +#include +#include + + + +class materialProcess : public MaterialTypeProcess +{ +public: + materialProcess( const ProcessingContext* context = 0 ) + : MaterialTypeProcess( context ), m_sequence( 0 ) { + } + + virtual ~materialProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + // Reset the sequence storage + m_sequence = 0; + + std::string mname = attrs.getValue( "name" ); + std::string mf = attrs.getValue( "formula" ); + std::string mz = attrs.getValue( "Z" ); + std::string ms = attrs.getValue( "state" ); + + SAXObject** obj = Context()->GetTopObject(); + + material* mat = new material; + + mat->set_name( mname ); + mat->set_formula( mf ); + mat->set_state( ms ); + + if( !mz.empty() ) + mat->set_Z( mz ); + + m_obj = mat; + *obj = mat; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + //std::cout << "PROCESS::END OF TAG : " << name << " "; + try + { + SAXObject** obj = Context()->GetTopObject(); + material* saxobj = dynamic_cast( *obj ); + + std::cout << saxobj->get_name() << std::endl; + + if( saxobj != 0 ) { + std::string tag; + size_t count = 0; + + ContentChoice* cc = saxobj->get_choice(); + if( cc->content().object->type() == SAXObject::element ) { + // Must be an atom + tag = cc->content().tag; + //std::cout << "Simple definition by atom" << std::endl; + } else { + // Must be a sequence of composites or fractions + //std::cout << "Complex definition by "; + const ContentSequence* cseq = dynamic_cast( cc->content().object ); + count = cseq->size(); + std::string tag = cseq->content( 0 ).tag; + if( tag == "composite" ) { + // Composition by atoms of elements + //std::cout << count << " composites" << std::endl; + } else { + // Composition by fraction of mass + //std::cout << count << " fractions" << std::endl; + } + } + + //std::cout << " looks OK" << std::endl; + } else { + std::cerr << "PROCESS END OF TAG:: material GOT ZERO DATA POINTER! " << std::endl; + } + } + catch( ... ) + { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + //std::cout << "PROCESS::material NOTIFIED AFTER THE TAG: " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + material* mat = dynamic_cast( m_obj ); + + if( name == "atom" ) { + mat->set_choice( name, *obj ); + } else if( name == "fraction" || name == "composite" ) { + if( m_sequence == 0 ) { + m_sequence = new ContentSequence; + mat->set_choice( "sequence", m_sequence ); + } + ContentGroup::ContentItem ci = { name, *obj }; + m_sequence->add_content( ci ); + } else if( name == "D" || name == "Dref" ) { + mat->set_DorDref( name, *obj ); + } else { + MaterialTypeProcess::StackPopNotify( name ); + } + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "material"; + return tag; + } + +private: + // Sequence of either composites or fractions + ContentSequence* m_sequence; +}; + +DECLARE_PROCESS_FACTORY(materialProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc new file mode 100644 index 0000000000..6c54336235 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/materialrefProcess.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: materialrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "VolumeType.hh" + +#include +#include + +class materialrefProcess : public ReferenceTypeProcess +{ +public: + materialrefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~materialrefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + VolumeType::materialref* mo = new VolumeType::materialref; + + *obj = mo; + m_obj = mo; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "materialref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(materialrefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/paraProcess.cc b/examples/extended/gdml/libgdml/processes/src/paraProcess.cc new file mode 100644 index 0000000000..30ddadd0f0 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/paraProcess.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. * +// ******************************************************************** +// +// +// $Id: paraProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SolidTypeProcess.hh" + +#include "para.hh" + +class paraProcess : public SolidTypeProcess +{ +public: + paraProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~paraProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + para* para_element = new para; + + para_element->set_x( attrs.getValue( "x" ) ); + para_element->set_y( attrs.getValue( "y" ) ); + para_element->set_z( attrs.getValue( "z" ) ); + para_element->set_alpha( attrs.getValue( "alpha" ) ); + para_element->set_theta( attrs.getValue( "theta" ) ); + para_element->set_phi( attrs.getValue( "phi" ) ); + + m_obj = para_element; + *obj = para_element; + + SolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + SolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::" << name << " NOTIFIED AFTER THE TAG: " << name << std::endl; + SolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "para"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(paraProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/positionProcess.cc b/examples/extended/gdml/libgdml/processes/src/positionProcess.cc new file mode 100644 index 0000000000..907e3dd2c4 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/positionProcess.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: positionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "define.hh" + +#include +#include + +class positionProcess : virtual public SAXStateProcess, virtual public SAXComponentObject +{ +public: + positionProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~positionProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string pname = attrs.getValue( "name" ); + std::string ptype = attrs.getValue( "type" ); + std::string px = attrs.getValue( "x" ); + std::string py = attrs.getValue( "y" ); + std::string pz = attrs.getValue( "z" ); + std::string punit = attrs.getValue( "unit" ); + + SAXObject** obj = Context()->GetTopObject(); + *obj = new define::position; + define::position* position_element = dynamic_cast(*obj); + position_element->set_name( pname ); + position_element->set_type( ptype ); + position_element->set_unit( punit ); + position_element->set_x( px ); + position_element->set_y( py ); + position_element->set_z( pz ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + define::position* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) + { + //std::cout << "PROCESS END OF TAG:: position " << saxobj->get_name() << " looks OK" << std::endl; + ; + } + else + { + std::cerr << "PROCESS END OF TAG:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string m_tag = "position"; + return m_tag; + } +}; + +DECLARE_PROCESS_FACTORY(positionProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc new file mode 100644 index 0000000000..2edf39305a --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/positionrefProcess.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: positionrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "BooleanSolidType.hh" + +#include +#include + +class positionrefProcess : public ReferenceTypeProcess +{ +public: + positionrefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~positionrefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + BooleanSolidType::positionref* co = new BooleanSolidType::positionref; + + *obj = co; + m_obj = co; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "positionref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(positionrefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc b/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc new file mode 100644 index 0000000000..db54ab513c --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/quantityProcess.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. * +// ******************************************************************** +// +// +// $Id: quantityProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "define.hh" + +#include +#include + +class quantityProcess : virtual public SAXStateProcess, virtual public SAXComponentObject +{ +public: + quantityProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~quantityProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string qname = attrs.getValue( "name" ); + std::string qvalue = attrs.getValue( "value" ); + std::string qunit = attrs.getValue( "unit" ); + std::string qtype = attrs.getValue( "type" ); + + SAXObject** obj = Context()->GetTopObject(); + *obj = new define::quantity; + define::quantity* quantity_element = dynamic_cast(*obj); + quantity_element->set_name( qname ); + quantity_element->set_value( qvalue ); + quantity_element->set_unit( qunit ); + quantity_element->set_type( qtype ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) + { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + define::quantity* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) + { + //std::cout << "PROCESS END OF TAG:: quantity " << saxobj->get_name() << " looks OK" << std::endl; + } + else + { + std::cerr << "PROCESS END OF TAG:: quantity:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR::" + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "quantity"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(quantityProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc b/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc new file mode 100644 index 0000000000..7cb73e3238 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/rotationProcess.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: rotationProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXObjectHandle.hh" +#include "SAXComponentFactory.hh" + +#include "define.hh" + +#include +#include + +class rotationProcess : virtual public SAXStateProcess, virtual public SAXComponentObject +{ +public: + rotationProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ) { + } + + virtual ~rotationProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + std::string rname = attrs.getValue( "name" ); + std::string rtype = attrs.getValue( "type" ); + std::string runit = attrs.getValue( "unit" ); + std::string rx = attrs.getValue( "x" ); + std::string ry = attrs.getValue( "y" ); + std::string rz = attrs.getValue( "z" ); + + SAXObject** obj = Context()->GetTopObject(); + *obj = new define::rotation; + define::rotation* rotation_element = dynamic_cast(*obj); + rotation_element->set_name( rname ); + rotation_element->set_type( rtype ); + rotation_element->set_unit( runit ); + rotation_element->set_x( rx ); + rotation_element->set_y( ry ); + rotation_element->set_z( rz ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try + { + SAXObject** obj = Context()->GetTopObject(); + define::rotation* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) + { + //std::cout << "PROCESS END OF TAG:: rotation " << saxobj->get_name() << " looks OK" << std::endl; + ; + } + else + { + std::cerr << "PROCESS END OF TAG:: GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG " << name << " ERROR: " + << " Cannot cast properly the data object!" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) + { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) + { + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string m_tag = "rotation"; + return m_tag; + } +}; + +DECLARE_PROCESS_FACTORY(rotationProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc new file mode 100644 index 0000000000..4c9702231f --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.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: rotationrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "BooleanSolidType.hh" + +#include +#include + +class rotationrefProcess : public ReferenceTypeProcess +{ +public: + rotationrefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~rotationrefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + BooleanSolidType::rotationref* co = new BooleanSolidType::rotationref; + + *obj = co; + m_obj = co; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "rotationref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(rotationrefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/secondProcess.cc b/examples/extended/gdml/libgdml/processes/src/secondProcess.cc new file mode 100644 index 0000000000..6333caad08 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/secondProcess.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: secondProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "BooleanSolidType.hh" + +#include +#include + +class secondProcess : public ReferenceTypeProcess +{ +public: + secondProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~secondProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + BooleanSolidType::second* co = new BooleanSolidType::second; + + *obj = co; + m_obj = co; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "second"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(secondProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/setupProcess.cc b/examples/extended/gdml/libgdml/processes/src/setupProcess.cc new file mode 100644 index 0000000000..099f4e9fbf --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/setupProcess.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: setupProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXComponentFactory.hh" + +#include "setup.hh" + +#include +#include + +class setupProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + setupProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ), m_ignoreTheRest( false ) { + } + + virtual ~setupProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + m_setup = new setup; + m_setup->set_name( attrs.getValue( "name" ) ); + m_setup->set_version( attrs.getValue( "version" ) ); + + if( Context()->GetConfig()->SetupName().empty() ) { + std::cerr << "PROCESS:: " << name + << " WARNING:: No setup name given, taking the first found..." << std::endl; + m_setup->set_match( true ); + } else { + if( m_setup->get_name() == Context()->GetConfig()->SetupName() ) { + if( Context()->GetConfig()->SetupVersion().empty() ) { + std::cerr << "PROCESS:: " << name + << " WARNING:: No setup version given, taking the first found..." << std::endl; + m_setup->set_match( true ); + } else { + if( m_setup->get_version() == Context()->GetConfig()->SetupVersion() ) { + m_setup->set_match( true ); + } + } + } + } + + *obj = m_setup; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + try { + SAXObject** obj = Context()->GetTopObject(); + setup* saxobj = dynamic_cast( *obj ); + + if( saxobj != 0 ) { +// std::cout << "PROCESS END OF TAG:: " << name; +// std::cout << " name: " << m_setup->get_name() +// << " version: " << m_setup->get_version() +// << " found: " << (int)m_setup->get_match() << std::endl; + } else { + std::cerr << "PROCESS END OF TAG:: " << name << " GOT ZERO DATA POINTER! " << std::endl; + } + } catch( ... ) { + std::cerr << "PROCESS END OF TAG:: " << name << " BAD CAST exception caught...\a" << std::endl; + } + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + // Irrelevant in this process + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + // Get the defineType interface + + // We can expect the 5 inner elements: constant, quantity, expression, position, rotation + // Whenever one of these appears we have to add it as a choice content group into define element + SAXObject** so = Context()->GetTopObject(); + if( !m_ignoreTheRest ) { + setup::world* world_element = dynamic_cast( *so ); + if( world_element != 0 ) { + if( m_setup->get_match() ) { + m_setup->set_world( *world_element ); + m_ignoreTheRest = true; + } + } else { + std::cerr << "NOTIFY AFTER TAG:: " << name << " ERROR:: BAD OBJECT TYPE...\a" << std::endl; + } + } else { + std::cout << "NOTIFY AFTER TAG:: " << name << " Ignoring world volume..." << std::endl; + } + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string m_tag = "setup"; + return m_tag; + } + +private: + bool m_ignoreTheRest; + setup* m_setup; +}; + +DECLARE_PROCESS_FACTORY(setupProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc new file mode 100644 index 0000000000..39a18c32d2 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/solidrefProcess.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: solidrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "VolumeType.hh" + +#include +#include + +class solidrefProcess : public ReferenceTypeProcess +{ +public: + solidrefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~solidrefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + VolumeType::solidref* so = new VolumeType::solidref; + + *obj = so; + m_obj = so; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "solidref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(solidrefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc b/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc new file mode 100644 index 0000000000..756e473ffe --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/sphereProcess.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. * +// ******************************************************************** +// +// +// $Id: sphereProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SolidTypeProcess.hh" + +#include "sphere.hh" + +class sphereProcess : public SolidTypeProcess +{ +public: + sphereProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~sphereProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + sphere* sphere_element = new sphere; + + sphere_element->set_rmin( attrs.getValue( "rmin" ) ); + sphere_element->set_rmax( attrs.getValue( "rmax" ) ); + sphere_element->set_startphi( attrs.getValue( "startphi" ) ); + sphere_element->set_deltaphi( attrs.getValue( "deltaphi" ) ); + sphere_element->set_starttheta( attrs.getValue( "starttheta" ) ); + sphere_element->set_deltatheta( attrs.getValue( "deltatheta" ) ); + + m_obj = sphere_element; + *obj = sphere_element; + + SolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + SolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::" << name << " NOTIFIED AFTER THE TAG: " << name << std::endl; + SolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "sphere"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(sphereProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc b/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc new file mode 100644 index 0000000000..fd59e8e22b --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: subtractionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "BooleanSolidTypeProcess.hh" + +#include "boolean_subtraction.hh" + +class subtractionProcess : public BooleanSolidTypeProcess +{ +public: + subtractionProcess( const ProcessingContext* context = 0 ) + : BooleanSolidTypeProcess( context ) { + } + + virtual ~subtractionProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + boolean_subtraction* subtraction_lement = new boolean_subtraction; + + m_obj = subtraction_lement; + *obj = subtraction_lement; + + BooleanSolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + BooleanSolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::subtraction NOTIFIED AFTER THE TAG: " << name << std::endl; + BooleanSolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "subtraction"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(subtractionProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/trapProcess.cc b/examples/extended/gdml/libgdml/processes/src/trapProcess.cc new file mode 100644 index 0000000000..928c33c91b --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/trapProcess.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: trapProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SolidTypeProcess.hh" + +#include "trap.hh" + +class trapProcess : public SolidTypeProcess +{ +public: + trapProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~trapProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + trap* trap_element = new trap; + + trap_element->set_x1( attrs.getValue( "x1" ) ); + trap_element->set_x2( attrs.getValue( "x2" ) ); + trap_element->set_x3( attrs.getValue( "x3" ) ); + trap_element->set_x4( attrs.getValue( "x4" ) ); + trap_element->set_y1( attrs.getValue( "y1" ) ); + trap_element->set_y2( attrs.getValue( "y2" ) ); + trap_element->set_z( attrs.getValue( "z" ) ); + trap_element->set_theta( attrs.getValue( "theta" ) ); + trap_element->set_phi( attrs.getValue( "phi" ) ); + trap_element->set_alpha1( attrs.getValue( "alpha1" ) ); + trap_element->set_alpha2( attrs.getValue( "alpha2" ) ); + + m_obj = trap_element; + *obj = trap_element; + + SolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + SolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::" << name << " NOTIFIED AFTER THE TAG: " << name << std::endl; + SolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "trap"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(trapProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/trdProcess.cc b/examples/extended/gdml/libgdml/processes/src/trdProcess.cc new file mode 100644 index 0000000000..fba700f522 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/trdProcess.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: trdProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SolidTypeProcess.hh" + +#include "trd.hh" + +class trdProcess : public SolidTypeProcess +{ +public: + trdProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~trdProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + trd* trd_element = new trd; + + trd_element->set_x1( attrs.getValue( "x1" ) ); + trd_element->set_y1( attrs.getValue( "y1" ) ); + trd_element->set_x2( attrs.getValue( "x2" ) ); + trd_element->set_y2( attrs.getValue( "y2" ) ); + trd_element->set_z( attrs.getValue( "z" ) ); + + m_obj = trd_element; + *obj = trd_element; + + SolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + SolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::" << name << " NOTIFIED AFTER THE TAG: " << name << std::endl; + SolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "trd"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(trdProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc b/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc new file mode 100644 index 0000000000..f1cd9b8388 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: tubeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SolidTypeProcess.hh" + +#include "tube.hh" + +class tubeProcess : public SolidTypeProcess +{ +public: + tubeProcess( const ProcessingContext* context = 0 ) + : SolidTypeProcess( context ) { + } + + virtual ~tubeProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + tube* tube_element = new tube; + + tube_element->set_rmin( attrs.getValue( "rmin" ) ); + tube_element->set_rmax( attrs.getValue( "rmax" ) ); + tube_element->set_z( attrs.getValue( "z" ) ); + tube_element->set_startphi( attrs.getValue( "startphi" ) ); + tube_element->set_deltaphi( attrs.getValue( "deltaphi" ) ); + + m_obj = tube_element; + *obj = tube_element; + + SolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + SolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::" << name << " NOTIFIED AFTER THE TAG: " << name << std::endl; + SolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "tube"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(tubeProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/unionProcess.cc b/examples/extended/gdml/libgdml/processes/src/unionProcess.cc new file mode 100644 index 0000000000..7189aa7803 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/unionProcess.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: unionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "BooleanSolidTypeProcess.hh" + +#include "boolean_union.hh" + +class unionProcess : public BooleanSolidTypeProcess +{ +public: + unionProcess( const ProcessingContext* context = 0 ) + : BooleanSolidTypeProcess( context ) { + } + + virtual ~unionProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + + SAXObject** obj = Context()->GetTopObject(); + + boolean_union* union_lement = new boolean_union; + + m_obj = union_lement; + *obj = union_lement; + + BooleanSolidTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << std::endl; + BooleanSolidTypeProcess::EndElement( name ); + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::union NOTIFIED AFTER THE TAG: " << name << std::endl; + BooleanSolidTypeProcess::StackPopNotify( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "union"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(unionProcess) diff --git a/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc b/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc new file mode 100644 index 0000000000..e7202647f8 --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/volumeProcess.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. * +// ******************************************************************** +// +// +// $Id: volumeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SINGLEPLACEMENTTYPEPROCESS_H +#define SINGLEPLACEMENTTYPEPROCESS_H 1 + +#include "ProcessingConfigurator.hh" +#include "ProcessingContext.hh" +#include "SAXProcessor.hh" +#include "StateStack.hh" +#include "SAXProcessingState.hh" +#include "SAXStateProcess.hh" +#include "SAXComponentFactory.hh" + +#include "volume.hh" + +class volumeProcess : public SAXStateProcess, virtual public SAXComponentObject +{ +public: + volumeProcess( const ProcessingContext* context = 0 ) + : SAXStateProcess( context ), m_obj( 0 ) { + } + + virtual ~volumeProcess() { + } + + virtual const SAXComponentObject* Build() const { + return this; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + //std::cout << "PROCESS::START OF TAG : " << name << std::endl; + SAXObject** obj = Context()->GetTopObject(); + + volume* vo = new volume; + + vo->set_name( attrs.getValue( "name" ) ); + + m_obj = vo; + *obj = vo; + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + //std::cout << "PROCESS::END OF TAG : " << name << " " << std::endl; + } + + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) { + } + + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) { + //std::cout << "PROCESS::volume NOTIFIED AFTER THE TAG: " << name << std::endl; + SAXObject** so = Context()->GetTopObject(); + volume* vobj = dynamic_cast( m_obj ); + vobj->add_content( name, *so ); + } + + // The name of the state this object will process + virtual const std::string& State() const + { + static std::string tag = "volume"; + return tag; + } + +private: + SAXObject* m_obj; +}; + +DECLARE_PROCESS_FACTORY(volumeProcess) + +#endif // SINGLEPLACEMENTTYPEPROCESS_H diff --git a/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc b/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc new file mode 100644 index 0000000000..bb3ef7972a --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/volumerefProcess.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: volumerefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "SinglePlacementType.hh" + +#include +#include + +class volumerefProcess : public ReferenceTypeProcess +{ +public: + volumerefProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~volumerefProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + SinglePlacementType::volumeref* vo = new SinglePlacementType::volumeref; + + *obj = vo; + m_obj = vo; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "volumeref"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(volumerefProcess) + diff --git a/examples/extended/gdml/libgdml/processes/src/worldProcess.cc b/examples/extended/gdml/libgdml/processes/src/worldProcess.cc new file mode 100644 index 0000000000..d9e9d3d56c --- /dev/null +++ b/examples/extended/gdml/libgdml/processes/src/worldProcess.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: worldProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "ReferenceTypeProcess.hh" + +#include "setup.hh" + +#include +#include + +class worldProcess : public ReferenceTypeProcess +{ +public: + worldProcess( const ProcessingContext* context = 0 ) + : ReferenceTypeProcess( context ) { + } + + virtual ~worldProcess() { + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + SAXObject** obj = Context()->GetTopObject(); + + setup::world* wo = new setup::world; + + *obj = wo; + m_obj = wo; + + ReferenceTypeProcess::StartElement( name, attrs ); + } + + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) { + ReferenceTypeProcess::EndElement( name ); + } + + // The name of the state this object will process + virtual const std::string& State() const { + static std::string tag = "world"; + return tag; + } +}; + +DECLARE_PROCESS_FACTORY(worldProcess) + diff --git a/examples/extended/gdml/libgdml/saxana/GNUmakefile b/examples/extended/gdml/libgdml/saxana/GNUmakefile new file mode 100644 index 0000000000..a4683b514d --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/GNUmakefile @@ -0,0 +1,8 @@ +# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for Saxana XML engine library. Radovan Chytracek, 30/05/2002. +# ---------------------------------------------------------------- + +name := GDMLsaxana + +include ../libgdml.gmk diff --git a/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh b/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh new file mode 100644 index 0000000000..fd4b1fe9b6 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh @@ -0,0 +1,182 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ASCIIAttributeList.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ASCIIATTRIBUTE_LIST_H +#define ASCIIATTRIBUTE_LIST_H 1 + +/// Include files +#include +#include + +/// Class simulating behavior of real SAX XML attribute list, +/// but using 8 bit ASCII encoding +class ASCIIAttributeList +{ +public: + + std::string sEmpty; + + /// XML ASCII attribute + struct _attrItem + { + std::string fName; + std::string fValue; + std::string fType; + }; + + /// Constructor + ASCIIAttributeList() + { + sEmpty = ""; + } + + /// Desctructor + ~ASCIIAttributeList() + { + } + + /// Add a whole attribute item into the list + void add( const ASCIIAttributeList::_attrItem& item ) + { + fList.push_back( item ); + } + + /// Add an attribute item into the list specified by its constituting parts + void add( const char* const name, const char* const value, const char* const type ) + { + struct _attrItem att; + att.fName = name; + att.fValue = value; + att.fType = type; + fList.push_back( att ); + } + + /// Get attribute parameters by the given index in the list + const std::string& getName( unsigned int index ) + { + return fList[index].fName; + } + + /// Get attribute parameters by the given index in the list + const std::string& getValue( unsigned int index ) + { + return fList[index].fValue; + } + + /// Get attribute parameters by the given index in the list + const std::string& getType( unsigned int index ) + { + return fList[index].fType; + } + + /// Get attribute parameters by the attribute's name + const std::string& getValue( const std::string& name ) const + { + std::vector::const_iterator aiter; + bool success = false; + + for( aiter = fList.begin(); aiter != fList.end(); aiter++ ) + { + if( (*aiter).fName == name) + { + success = true; + break; + } + } + return( success ? (*aiter).fValue : sEmpty ); + } + + /// Get attribute parameters by the attribute's name + const std::string& getValue( const char* name ) const + { + std::vector::const_iterator aiter; + bool success = false; + + for( aiter = fList.begin(); aiter != fList.end(); aiter++ ) + { + if( (*aiter).fName == name) + { + success = true; + break; + } + } + return( success ? (*aiter).fValue : sEmpty ); + } + + /// Get attribute parameters by the attribute's name + const std::string& getType( const std::string& name ) + { + std::vector::iterator aiter; + bool success = false; + + for( aiter = fList.begin(); aiter != fList.end(); aiter++ ) + { + if( (*aiter).fName == name) + { + success = true; + break; + } + } + return( success ? (*aiter).fType : sEmpty ); + } + + /// Get attribute parameters by the attribute's name + const std::string& getType( const char* name ) + { + std::vector::iterator aiter; + bool success = false; + + for( aiter = fList.begin(); aiter != fList.end(); aiter++ ) + { + if( (*aiter).fName == name) + { + success = true; + break; + } + } + return( success ? (*aiter).fType : sEmpty ); + } + + /// Get the number of attributes in the list + unsigned int getLength() + { + return fList.size(); + } + +private: + + /// Attribute List Container + std::vector fList; +}; + +#endif // ASCIIATTRIBUTE_LIST_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/Action.hh b/examples/extended/gdml/libgdml/saxana/include/Action.hh new file mode 100644 index 0000000000..88d7068179 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/Action.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: Action.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ACTION_H +#define ACTION_H 1 + +#include "StatusCode.hh" +#include "SXComponentObject.hh" + +class ProcessingContext; + +class Action : virtual public SAXComponentObject +{ +public: + virtual const SAXComponentObject* Build() const + { + return 0; + } + virtual const SAXComponentObject::EType Type() const + { + return SAXComponentObject::eAction; + } + +public: + virtual StatusCode Run( const ProcessingContext* const context ) = 0; +}; + +#endif // ACTION_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh new file mode 100644 index 0000000000..0980d7caf0 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.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: ActionProcessingState.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ACTION_PROCESING_STATE_H +#define ACTION_PROCESING_STATE_H 1 + +#include "ProcessingState.hh" +#include "SAXEventGun.hh" + +class ActionProcessingState : virtual public ProcessingState +{ +public: + //typedef RCObjectHandle EventGun; + typedef SAXEventGun* EventGun; + + ActionProcessingState(); + ~ActionProcessingState(); + + virtual ProcessingState::EType Type() const + { + return ProcessingState::eAction; + } + +private: + EventGun fPrevious; +}; + +#endif // ACTION_PROCESING_STATE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh new file mode 100644 index 0000000000..80410cc787 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh @@ -0,0 +1,121 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ProcessingConfigurator.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef PROCESSING_CONFIGURATOR_H +#define PROCESSING_CONFIGURATOR_H 1 + +#include + +class ProcessingConfigurator +{ +public: + typedef enum { eBatch, eProgressive, eSearch } SAXMode; + +public: + ProcessingConfigurator() + : fMode( eBatch ), fDataFileURI( " " ), fSetupName( "" ), fType( " " ), fVersion( "" ) + { + } + + ProcessingConfigurator( const ProcessingConfigurator& right ) + { + fMode = right.Mode(); + fDataFileURI = right.URI(); + fSetupName = right.SetupName(); + fType = right.Type(); + fVersion = right.SetupVersion(); + } + + ~ProcessingConfigurator() + { + } + + SAXMode Mode() const + { + return fMode; + } + + const std::string& URI() const + { + return fDataFileURI; + } + + const std::string& SetupName() const + { + return fSetupName; + } + + const std::string& Type() const + { + return fType; + } + + const std::string& SetupVersion() const + { + return fVersion; + } + + void SetMode( SAXMode mode ) + { + fMode = mode; + } + + void SetURI( const std::string& uri ) + { + fDataFileURI = uri; + } + + void SetSetupName( const std::string& name ) + { + fSetupName = name; + } + + void SetType( const std::string& type ) + { + fType = type; + } + + void SetSetupVersion( const std::string& version ) + { + fVersion = version; + } + +private: + SAXMode fMode; + std::string fDataFileURI; + std::string fSetupName; + std::string fType; + std::string fVersion; +}; + +#endif // PROCESSING_CONFIGURATOR_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh new file mode 100644 index 0000000000..7ab9304970 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.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: ProcessingContext.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef PROCESSING_CONTEXT_H +#define PROCESSING_CONTEXT_H 1 + +class StateStack; +class SAXEvent; +class SAXEventGun; +class ProcessingConfigurator; +class SAXObject; + +class ProcessingContext +{ +public: + virtual const StateStack* GetStack() const = 0; + virtual const SAXEvent* GetLastEvent() const = 0; + virtual const SAXEventGun* GetSAXEventGun() const = 0; + virtual void SetSAXEventGun( const SAXEventGun* gun ) = 0; + virtual const ProcessingConfigurator* GetConfig() const = 0; + virtual SAXObject** GetTopObject() const = 0; +}; + +#endif // PROCESSING_CONTEXT_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh new file mode 100644 index 0000000000..fbf0aad606 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingState.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: ProcessingState.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef PROCESSING_STATE_H +#define PROCESSING_STATE_H 1 + +class ProcessingState +{ +public: + typedef enum + { + eState, + eAction + } EType; + + virtual EType Type() const = 0; +}; + +#endif // PROCESSING_STATE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh b/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh new file mode 100644 index 0000000000..3a2184a303 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh @@ -0,0 +1,232 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RCObjectHandle.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +// Class RCObjectHandle +// Class description: +// A class to provide reference counting mechanism for a class which +// is designed without this support. It is a templated class, a smart pointer, +// wrapping the class to be counted and performs the reference counting +// during the life-time of the counted object. When its count goes to zero +// the counted object is destroyed by explicit call to its destructor. +// This class provides overloaded operators *() and ->() to make the +// maniplutation syntax the same as for the normal "dumb" pointers. +// The basic rule for the use of this class is that it is passed always by +// reference and is not constructed by calling new. +// Before the use of this smart pointer object one can test its validity +// using the operator !() or operator bool(). +// if( !smartPtrObj ) { ... } // Problem! We must initialize it first! +// else { ... } // OK! +// The code which tries to delete this object won't compile, because it is +// not a pointer it is an object. +// Author: Radovan Chytracek +// Version: 1.0 +// Date: June 2001 +// ---------------------------------------------------------------------- +#ifndef RC_OBJECT_HANDLE_H +#define RC_OBJECT_HANDLE_H 1 + +template +class RCObjectHandle +{ +public: + typedef RCObjectHandle RCH; + +private: // with description + + class CountedObject { + public: + inline CountedObject( X* pObj = 0 ) + : fCount(1), fRep( pObj ) { + } // Constructor + + inline ~CountedObject() { + delete fRep; + fRep = 0; + } // Destructor + + inline X* GetObject() const { + return fRep; + } + + inline void SetObject( const X* object ) { + fRep = object; + } + + inline unsigned int AddRef() { + return( ++fCount ); + } // Forward to Counter class + + inline unsigned int Release() { + return( ( fCount > 0 ) ? --fCount : 0 ); + } // Forward to Counter class + + inline unsigned int Count() const { + return( fCount ); + } // Forward to Counter class + + private: + unsigned int fCount; + // Reference counter + X* fRep; + // The counted object + }; + +public: // with description + RCObjectHandle( X* rep = 0 ) + : fObj( 0 ) { + if( rep != 0 ) { + fObj = new RCH::CountedObject( rep ); + } + } // Constructor + + ~RCObjectHandle() { + if( 0 == Release() ) { + if( fObj != 0 ) { + delete fObj; + fObj = 0; + } + } + } // Destructor + + RCObjectHandle( const RCObjectHandle& right ) + : fObj( 0 ) { + fObj = right.GetCountedObject(); + AddRef(); + } // Copy constructor + + template + RCObjectHandle( const RCObjectHandle& right ) + : fObj( 0 ) { + fObj = right.GetCountedObject(); + AddRef(); + } // Copy constructor + + RCObjectHandle& operator =( const RCObjectHandle& right ) { + if( this->fObj != right.GetCountedObject() ) { + if( 0 == this->Release() ) { + if( this->fObj != 0 ) { + delete this->fObj; + } + } + this->fObj = right.GetCountedObject(); + this->AddRef(); + } + return *this; + } // Assignment operator by reference + + template + RCObjectHandle& operator=( const RCObjectHandle& right ) { + if( this->fObj != right.GetCountedObject() ) { + if( 0 == this->Release() ) { + if( this->fObj != 0 ) { + delete this->fObj; + } + } + this->fObj = right.GetCountedObject(); + this->AddRef(); + } + return *this; + } // Assignment operator by reference + + RCObjectHandle& operator =( const RCObjectHandle* right ) { + if( this->fObj != right->GetCountedObject() ) { + if( 0 == this->Release() ) { + if( this->fObj != 0 ) { + delete this->fObj; + } + } + this->fObj = right->GetCountedObject(); + this->AddRef(); + } + return *this; + } // Assignment operator by pointer, should not be ever called + + RCObjectHandle& operator =( X* pRefObj ) { + if( this->fObj == 0 || pRefObj != this->fObj->GetObject() ) { + if( 0 == Release() ) { + if( fObj != 0 ) { + delete fObj; + } + } + fObj = new RCH::CountedObject( pRefObj ); + } + return *this; + } // Assignment operator by pointer to the counted class object + + RCH::CountedObject* GetCountedObject() const { + return fObj; + } + + inline unsigned int AddRef() { + return( ( fObj != 0 ) ? fObj->AddRef() : 0 ); + } // Forward to Counter class + + inline unsigned int Release() { + return( (fObj != 0 ) ? fObj->Release() : 0 ); + } // Forward to Counter class + + inline unsigned int Count() const { + return( ( fObj != 0 ) ? fObj->Count() : 0 ); + } // Forward to Counter class + + X* operator ->() const { + return( ( fObj != 0 ) ? fObj->GetObject() : 0 ); + } // Operator -> allowing the access to counted object + // The check for 0-ness is left out for performance reasons, see operator () bellow + // May be called on initialized smart-pointer only! + + bool operator !() const { + return( ( fObj == 0 || fObj->GetObject() == 0 ) ? true : false ); + } // Validity test operator + + operator bool() const { + return( ( fObj != 0 && fObj->GetObject() != 0 ) ? true : false ); + } + + X& operator *() const { + return( ( fObj != 0 ) ? *(fObj->GetObject()) : 0 ); + } // Dereference operator to make the feeling of dereferencing a pointer to + // the counted object + // May be called on initialized smart-pointer only! + + X* operator ()() const { + return( ( fObj != 0 ) ? fObj->GetObject() : 0 ); + } // Functor operator (for covinience) + + +private: + RCH::CountedObject* fObj; + // Object being the subject to reference counting +}; + +#endif // RC_OBJECT_HANDLE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh new file mode 100644 index 0000000000..aabe099aa0 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.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: SAXComponentFactory.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_COMPONENT_FACTORY_H +#define SAX_COMPONENT_FACTORY_H 1 + +#include "SAXComponentFactoryBase.hh" +#include "SAXComponentFactoryTable.hh" + +template +class SAXComponentFactory : virtual public SAXComponentFactoryBase +{ +public: + SAXComponentFactory( SAXComponentObject::EType type ) + : SAXComponentFactoryBase(), fType( type ) + { + SAXComponentFactoryTable::GetInstance()->Register( this ); + } + + ~SAXComponentFactory() + { + } + virtual SAXComponentObject* Build() const; + virtual SAXComponentObject::EType Type() const; + +private: + SAXComponentObject::EType fType; +}; + +template +SAXComponentObject* SAXComponentFactory::Build() const +{ + SAXComponentObject* obj = new TYPE(); + return obj; +} + +template +SAXComponentObject::EType SAXComponentFactory::Type() const +{ + return fType; +} + +#define DECLARE_PROCESS_FACTORY(x) \ +static const SAXComponentFactory s_##x##Factory( SAXComponentObject::eProcess ); \ +const SAXComponentFactoryBase& x##FactoryRef = s_##x##Factory; + +#define DECLARE_SUBSCRIBER_FACTORY(x) \ +static const SAXComponentFactory s_##x##Factory( SAXComponentObject::eSubscriber ); \ +const SAXComponentFactoryBase& x##FactoryRef = s_##x##Factory; + +#define LOAD_COMPONENT(x) extern const SAXComponentFactoryBase& x##FactoryRef; x##FactoryRef.Load(); + +#endif // SAX_COMPONENT_FACTORY_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh new file mode 100644 index 0000000000..b5c45b2cbe --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.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. * +// ******************************************************************** +// +// +// $Id: SAXComponentFactoryBase.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_COMPONENT_FACTORY_BASE_H +#define SAX_COMPONENT_FACTORY_BASE_H 1 + +#include "SAXComponentObject.hh" + +class SAXComponentFactoryBase +{ +public: + virtual void Load() const {} + virtual SAXComponentObject* Build() const = 0; + virtual SAXComponentObject::EType Type() const = 0; +}; + +#endif // SAX_COMPONENT_FACTORY_BASE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh new file mode 100644 index 0000000000..2d30e58988 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.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: SAXComponentFactoryTable.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_COMPONENT_FACTORY_TABLE_H +#define SAX_COMPONENT_FACTORY_TABLE_H 1 + +#include "SAXComponentObject.hh" + +#include + +class SAXComponentFactoryBase; + +class SAXComponentFactoryTable { +public: + typedef std::vector Components; + + const SAXComponentFactoryTable::Components* GetComponents( SAXComponentObject::EType type ); + + void Register( SAXComponentFactoryBase* c ); + + static SAXComponentFactoryTable* GetInstance(); + + ~SAXComponentFactoryTable(); + +protected: + SAXComponentFactoryTable(); + SAXComponentFactoryTable( const SAXComponentFactoryTable& ); + +private: + SAXComponentFactoryTable::Components* fProcesses; + SAXComponentFactoryTable::Components* fActions; + SAXComponentFactoryTable::Components* fSubscribers; +}; + +#endif // SAX_COMPONENT_FACTORY_TABLE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh new file mode 100644 index 0000000000..4761d23276 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.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: SAXComponentObject.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_COMPONENT_OBJECT_H +#define SAX_COMPONENT_OBJECT_H 1 + +class SAXComponentObject +{ +public: + typedef enum + { + eProcess, + eAction, + eSubscriber + } EType; + + SAXComponentObject() {} + virtual ~SAXComponentObject() {} + + virtual const SAXComponentObject* Build() const = 0; + virtual EType Type() const = 0; +}; + +#endif // SAX_COMPONENT_OBJECT_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh new file mode 100644 index 0000000000..0abea30fdf --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.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: SAXDocumentEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_DOCUMENT_EVENTS_H +#define SAX_DOCUMENT_EVENTS_H 1 + +#include "SAXEvent.hh" + +class SAXEventStartDocument : virtual public SAXEvent +{ +public: + SAXEventStartDocument() {} + ~SAXEventStartDocument() {} + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eStartDocument; + } +}; + +class SAXEventEndDocument : virtual public SAXEvent +{ +public: + SAXEventEndDocument() {} + ~SAXEventEndDocument() {} + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eEndDocument; + } +}; + +#endif // SAX_DOCUMENT_EVENTS_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh new file mode 100644 index 0000000000..c83ab74105 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh @@ -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. * +// ******************************************************************** +// +// +// $Id: SAXElementEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_ELEMENT_EVENTS_H +#define SAX_ELEMENT_EVENTS_H 1 + +#include + +#include "SAXEvent.hh" +#include "ASCIIAttributeList.hh" + +class SAXEventStartElement : virtual public SAXEvent +{ +public: + SAXEventStartElement( const std::string& name, const ASCIIAttributeList& attrs ) + { + fName = name; + fAttributes = attrs; + } + SAXEventStartElement( const char* name, const ASCIIAttributeList& attrs ) + : fName( name ), fAttributes( attrs ) + { + } + ~SAXEventStartElement() + { + } + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eStartElement; + } + + const std::string& Name() const + { + return fName; + } + + const ASCIIAttributeList& Attributes() const + { + return fAttributes; + } + +private: + std::string fName; + ASCIIAttributeList fAttributes; +}; + +class SAXEventEndElement : virtual public SAXEvent +{ +public: + SAXEventEndElement( const std::string& name ) + { + fName = name; + } + SAXEventEndElement( const char* name ) + : fName( name ) + { + } + ~SAXEventEndElement() + { + } + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eEndElement; + } + + const std::string& Name() const + { + return fName; + } + +private: + std::string fName; +}; + +class SAXEventCharacters : virtual public SAXEvent +{ +public: + SAXEventCharacters( const std::string& data ) + { + fData = data; + } + SAXEventCharacters( const char* data ) + : fData( data ) + { + } + ~SAXEventCharacters() + { + } + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eCharacters; + } + + const std::string& Data() const + { + return fData; + } + +private: + std::string fData; +}; + +class SAXEventPI : virtual public SAXEvent +{ +public: + SAXEventPI( const std::string& target, const std::string& data ) + { + fTarget = target; fData = data; + } + SAXEventPI( const char* target, const char* data ) + : fTarget( target), fData( data ) + { + } + ~SAXEventPI() + { + } + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::ePI; + } + + const std::string& Target() const + { + return fTarget; + } + const std::string& Data() const + { + return fData; + } + +private: + std::string fTarget; + std::string fData; +}; + +#endif // SAX_ELEMENT_EVENTS_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh new file mode 100644 index 0000000000..2a3e4baebe --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh @@ -0,0 +1,121 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: SAXErrorEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_ERROR_EVENTS_H +#define SAX_ERROR_EVENTS_H 1 + +#include + +#include "SAXEvent.hh" + +class SAXErrorEventBase +{ +public: + SAXErrorEventBase( const std::string& msg ) + { + fMessage = msg; + } + SAXErrorEventBase( const char* msg ) : fMessage( msg ) + { + } + ~SAXErrorEventBase() + { + } + + const std::string& Message() const + { + return fMessage; + } + +private: + std::string fMessage; +}; + +class SAXEventWarning : virtual public SAXEvent, public SAXErrorEventBase +{ +public: + SAXEventWarning( const std::string& msg ) : SAXErrorEventBase( msg ) + { + } + SAXEventWarning( const char* msg ) : SAXErrorEventBase( msg ) + { + } + ~SAXEventWarning() + { + } + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eWarning; + } +}; + +class SAXEventError : virtual public SAXEvent, public SAXErrorEventBase +{ +public: + SAXEventError( const std::string& msg ) : SAXErrorEventBase( msg ) + { + } + SAXEventError( const char* msg ) : SAXErrorEventBase( msg ) + { + } + ~SAXEventError() + { + } + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eError; + } +}; + +class SAXEventFatalError : virtual public SAXEvent, public SAXErrorEventBase +{ +public: + SAXEventFatalError( const std::string& msg ) : SAXErrorEventBase( msg ) + { + } + SAXEventFatalError( const char* msg ) : SAXErrorEventBase( msg ) + { + } + ~SAXEventFatalError() + { + } + + virtual const SAXEvent::EventType Type() const + { + return SAXEvent::eFatalError; + } +}; + +#endif // SAX_ERROR_EVENTS_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh new file mode 100644 index 0000000000..688a02ce53 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEvent.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: SAXEvent.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_EVENT_H +#define SAX_EVENT_H 1 + +class SAXEvent +{ +public: + typedef enum + { + eStartDocument, + eEndDocument, + eStartElement, + eEndElement, + eCharacters, + ePI, + eComment, + eWarning, + eError, + eFatalError + } EventType; +public: + SAXEvent() {} + virtual ~SAXEvent() {} + + virtual const SAXEvent::EventType Type() const = 0; +}; + +#endif // SAX_EVENT_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh new file mode 100644 index 0000000000..e144ea434f --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh @@ -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. * +// ******************************************************************** +// +// +// $Id: SAXEventGun.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_EVENT_GUN_H +#define SAX_EVENT_GUN_H 1 + +#include + +#include "StatusCode.hh" + +class SAXParser; + +class SAXProcessor; +class ProcessingConfigurator; + +class SAXEventGun : virtual public HandlerBase +{ +public: + StatusCode Run(); + +public: + virtual void characters( const XMLCh* const chars, const unsigned int length ); + // Receive notification of the #PCDATA characters in element content. + + virtual void endDocument(); + // Receive notification of the end of the document. + + virtual void endElement(const XMLCh* const name); + // Receive notification of the end of an element. + + virtual void ignorableWhitespace( const XMLCh* const chars, const unsigned int length ); + // Receive notification of ignorable whitespace in element content. + + virtual void processingInstruction( const XMLCh* const target, const XMLCh* const data ); + // Receive notification of a processing instruction. + + virtual void resetDocument(); + // Reset the Docuemnt object on its reuse + + virtual void setDocumentLocator( const Locator* const locator ); + // Receive a Locator object for document events. + + virtual void startDocument(); + // Receive notification of the beginning of the document. + + virtual void startElement( const XMLCh* const name, AttributeList& attributes ); + // Receive notification of the start of an element. + + virtual InputSource* resolveEntity( const XMLCh* const publicId, const XMLCh* const systemId ); + // Resolve an external entity. + + virtual void error(const SAXParseException& exception); + // Receive notification of a recoverable parser error. + + virtual void fatalError(const SAXParseException& exception); + // Report a fatal XML parsing error. + + virtual void warning(const SAXParseException& exception); + // Receive notification of a parser warning. + + virtual void resetErrors(); + // Reset the Error handler object on its reuse + + virtual void notationDecl( const XMLCh* const name + , const XMLCh* const publicId + , const XMLCh* const systemId ); + // Receive notification of a notation declaration. + + virtual void resetDocType(); + // Reset the DTD object on its reuse + + virtual void unparsedEntityDecl( const XMLCh* const name + , const XMLCh* const publicId + , const XMLCh* const systemId + , const XMLCh* const notationName ); + // Receive notification of an unparsed entity declaration. + + SAXEventGun( SAXProcessor* target ); + ~SAXEventGun(); + + const SAXProcessor* Target() const; + void SetTarget( SAXProcessor* target ); + + void Configure( ProcessingConfigurator* config ); + +private: + SAXProcessor* fTarget; + +protected: + SAXParser* fParser; + ProcessingConfigurator* fConfig; +}; + +#endif // SAX_EVENT_GUN_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh new file mode 100644 index 0000000000..8ceda01f8a --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEvents.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. * +// ******************************************************************** +// +// +// $Id: SAXEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXDocumentEvents.hh" +#include "SAXElementEvents.hh" +#include "SAXErrorEvents.hh" + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh new file mode 100644 index 0000000000..943ff09754 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObject.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: SAXObject.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_OBJECT_H +#define SAX_OBJECT_H 1 + +#include "SAXObjectBase.hh" + +#include + +class SAXObject : virtual public SAXObjectBase +{ +public: + typedef enum { + element, // element + contentGroup, // choice, sequence, all + attributeGroup, // reusable group of attributes + elementGroup // reusable group of elements + } Type; + +public: + virtual ~SAXObject() { + } + + virtual bool IsCacheable() const + { + return false; + } + + virtual Type type() = 0; +}; + +#endif // SAX_OBJECT_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh new file mode 100644 index 0000000000..25ce2ca337 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.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. * +// ******************************************************************** +// +// +// $Id: SAXObjectBase.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_OBJECT_BASE_H +#define SAX_OBJECT_BASE_H 1 + +class SAXObjectBase +{ +public: + virtual bool IsCacheable() const = 0; +}; + +#endif // SAX_OBJECT_BASE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh new file mode 100644 index 0000000000..3077170ae8 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.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. * +// ******************************************************************** +// +// +// $Id: SAXObjectHandle.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_OBJECT_HANDLE_H +#define SAX_OBJECT_HANDLE_H 1 + +#include "SAXObject.hh" +#include "RCObjectHandle.hh" + +typedef RCObjectHandle SAXObjectHandle; + +#endif // SAX_OBJECT_HANDLE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh new file mode 100644 index 0000000000..7f0cc7975b --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.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. * +// ******************************************************************** +// +// +// $Id: SAXProcessingState.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_PROCESING_STATE_H +#define SAX_PROCESING_STATE_H 1 + +#include "ProcessingState.hh" +#include "SAXObject.hh" + +class SAXStateProcess; + +class SAXProcessingState : virtual public ProcessingState +{ +public: + //typedef RCObjectHandle Process; + + //SAXProcessingState( const SAXObjectHandle& obj, const SAXProcessingState::Process& process ) + SAXProcessingState( SAXObject** obj, SAXStateProcess* process ) + : fObject( obj ), fProcess( process ) + { + } + + ~SAXProcessingState() + { + } + + virtual ProcessingState::EType Type() const + { + return ProcessingState::eState; + } + + //const SAXObjectHandle& GetObject() const + SAXObject** GetObjectRef() const + { + return fObject; + } + + //const SAXObjectHandle& GetObject() const + //void SetObject( const SAXObject::Ref objPtrRef ) + //{ + // fObject = objPtrRef; + //} + + //const SAXProcessingState::Process& GetProcess() const + SAXStateProcess* GetProcess() const + { + return fProcess; + } + +private: + //SAXObjectHandle fObject; + //SAXProcessingState::Process fProcess; + SAXObject** fObject; + SAXStateProcess* fProcess; +}; + +#endif // SAX_PROCESING_STATE_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh b/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh new file mode 100644 index 0000000000..77d849a6ad --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.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. * +// ******************************************************************** +// +// +// $Id: SAXProcessor.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_PROCESSOR_H +#define SAX_PROCESSOR_H 1 + +#include "ProcessingContext.hh" +#include "StatusCode.hh" + +class SAXEvent; +class SAXEventGun; +class StateStack; +class StateProcessMap; +class SAXSubscriberPool; +class ProcessingConfigurator; +class SAXObject; + +class SAXProcessor : virtual public ProcessingContext +{ +public: + SAXProcessor(); + ~SAXProcessor(); + + // Mandatory interface from ProcessingContext + virtual const StateStack* GetStack() const; + virtual const SAXEvent* GetLastEvent() const; + virtual const SAXEventGun* GetSAXEventGun() const; + virtual void SetSAXEventGun( const SAXEventGun* gun ); + virtual const ProcessingConfigurator* GetConfig() const; + virtual SAXObject** GetTopObject() const; + + StatusCode Initialize(); + StatusCode Configure( ProcessingConfigurator* config ); + StatusCode Run(); + StatusCode Finalize(); + + void ProcessEvent( const SAXEvent* const event ); + +private: + StateProcessMap* fMap; + SAXSubscriberPool* fPool; + StateStack* fStack; + StateStack* fNotifyStack; + ProcessingConfigurator* fConfig; + const SAXEvent* fCurrentEvent; + const SAXEventGun* fCurrentGun; + bool fIgnoring; +}; + +#endif // SAX_PROCESSOR_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh b/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh new file mode 100644 index 0000000000..76c6fc9d0a --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.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: SAXStateProcess.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_STATE_PROCESS_H +#define SAX_STATE_PROCESS_H 1 + +#include + +#include "ASCIIAttributeList.hh" +#include "SAXComponentObject.hh" + +class ProcessingContext; + +class SAXStateProcess : virtual public SAXComponentObject +{ +public: + virtual const SAXComponentObject* Build() const + { + return 0; + } + virtual SAXComponentObject::EType Type() const + { + return SAXComponentObject::eProcess; + } + +public: + SAXStateProcess( const ProcessingContext* context ) + : fContext( context ) + { + } + + virtual ~SAXStateProcess() + { + fContext = 0; + } + + const ProcessingContext* Context() const + { + return fContext; + } + + void SetContext( const ProcessingContext* context ) + { + fContext = context; + } + + // Analogical to SAX startElement callback + virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) = 0; + // Analogical to SAX endElement callback + virtual void EndElement( const std::string& name ) = 0; + // Analogical to SAX characters callback, it's called for ignorableWhitespace too! + virtual void Characters( const std::string& name ) = 0; + // Invoked whenever one of the daughter state processes has been popped-out of the state stack + // The name passed-in as the argument is the name of the XML element for which that's been done + virtual void StackPopNotify( const std::string& name ) = 0; + // The name of the state this object will process + virtual const std::string& State() const = 0; + +private: + const ProcessingContext* fContext; +}; + +#endif // SAX_STATE_PROCESS_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh new file mode 100644 index 0000000000..f460ac5b6a --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.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. * +// ******************************************************************** +// +// +// $Id: SAXSubscriber.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_SUBSCRIBER_H +#define SAX_SUBSCRIBER_H 1 + +#include "SAXComponentObject.hh" +#include "SAXObject.hh" + +#include +#include + +class SAXSubscriber : virtual public SAXComponentObject +{ +public: + typedef std::string Subscription; + typedef std::vector SubscriptionSet; + +public: + virtual const SAXComponentObject* Build() const + { + return 0; + } + virtual SAXComponentObject::EType Type() const + { + return SAXComponentObject::eSubscriber; + } + +public: + SAXSubscriber() + : fObject( 0 ), fSet( 0 ) + { + fSet = new SubscriptionSet(); + } + + virtual ~SAXSubscriber() + { + if( fSet != 0 ) + { + delete fSet; + fSet = 0; + } + } + + SAXObject* GetObject() + { + return fObject; + } + + SAXObject* GetObject() const + { + return fObject; + } + + void SetObject( SAXObject* object ) + { + fObject = object; + } + + void Subscribe( const Subscription s ) + { + fSet->push_back( s ); + } + void Subscribe( const char* s ) + { + Subscription ss = s; + Subscribe( ss ); + } + + const SubscriptionSet* GetSubscriptions() const + { + return fSet; + } + + bool IsSubscribedTo( const Subscription& s ) const + { + size_t howmany = fSet->size(); + if( howmany > 1 ) { + for( size_t idx = 0; idx < howmany; idx++ ) { + if( (*fSet)[idx] == s ) { + return true; + } + } + } else if( howmany == 1 ) { + return( (*fSet)[0] == s ); + } else { + return false; + } + return false; + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) = 0; + +protected: + SAXObject* fObject; + +private: + SubscriptionSet* fSet; +}; + +#endif // SAX_SUBSCRIBER_H + + diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh new file mode 100644 index 0000000000..199c65846b --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.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: SAXSubscriberPool.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SAX_BUSCRIBER_POOL_H +#define SAX_BUSCRIBER_POOL_H 1 + +#include "RCObjectHandle.hh" +#include "SAXSubscriber.hh" + +#include +#include + +class SAXSubscriberPool +{ +public: + typedef RCObjectHandle Subscriber; + typedef std::vector Subscribers; + typedef std::map Pool; + + SAXSubscriberPool(); + ~SAXSubscriberPool(); + + void AddSubscriber( const SAXSubscriber::Subscription& type, Subscriber client ); + void RemoveSubscriber( const SAXSubscriber::Subscription& type, Subscriber client ); + const Subscribers* GetSubscribers( const SAXSubscriber::Subscription& subscription ); + void Initialize(); + void Reset(); + +private: + SAXSubscriberPool::Pool fPool; +}; + +#endif // SAX_BUSCRIBER_POOL_H + + diff --git a/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh b/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh new file mode 100644 index 0000000000..e9d1e1d9ca --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.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: StateProcessMap.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef STATE_PROCESS_MAP_H +#define STATE_PROCESS_MAP_H 1 + +#include +#include + +#include "RCObjectHandle.hh" +#include "SAXStateProcess.hh" + +class StateProcessMap +{ +public: + typedef RCObjectHandle Process; + typedef std::map ProcessMap; + +public: + StateProcessMap(); + ~StateProcessMap(); + + void Initialize(); + void Reset(); + + void AddProcess( const std::string& tag, Process process ); + void AddProcess( char* tag, Process process ); + bool Check( const std::string& tag ); + bool Check( char* tag ); + Process GetProcess( const std::string& tag ); + Process GetProcess( char* tag ); + +private: + ProcessMap fMap; +}; + +#endif // STATE_PROCESS_MAP_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/StateStack.hh b/examples/extended/gdml/libgdml/saxana/include/StateStack.hh new file mode 100644 index 0000000000..0f93fa2c38 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/StateStack.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: StateStack.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef STATE_STACK_H +#define STATE_STACK_H 1 + +//#include "RCObjectHandle.hh" +#include "ProcessingState.hh" + +#include + +class StateStack +{ +public: + //typedef RCObjectHandle State; + //typedef std::stack Stack; + typedef ProcessingState* State; + typedef std::stack Stack; + +public: + bool Empty() const; + unsigned int Size() const; + StateStack::State& Top(); + const StateStack::State& Top() const; + void Push( const StateStack::State& s ); + //void Push( ProcessingState* s ); + void Pop(); + +private: + Stack fStack; +}; + +inline bool StateStack::Empty() const { return fStack.empty(); } +inline unsigned int StateStack::Size() const { return fStack.size(); } +inline StateStack::State& StateStack::Top() { return fStack.top(); } +inline const StateStack::State& StateStack::Top() const { return fStack.top(); } +inline void StateStack::Push( const StateStack::State& s ) { fStack.push( s ); } +//inline void StateStack::Push( ProcessingState* s ) +//{ +// State st = s; +// fStack.push( st ); +//} +inline void StateStack::Pop() { fStack.pop(); } + + +#endif // STATE_STACK_H + diff --git a/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh b/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh new file mode 100644 index 0000000000..ede93b16fa --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/include/StatusCode.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: StatusCode.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef STATUS_CODE_H +#define STATUS_CODE_H 1 + +class StatusCode{ +public: + typedef enum + { + eError = 0, + eOk = 1, + eWarning, + eParserInitFailure + } EInfo; + +public: + StatusCode( EInfo info = StatusCode::eOk ) + : fInfo( info ) + { + } + ~StatusCode() + { + } + + bool IsOk() + { + return( (fInfo == eOk) ? true : false ); + } + bool IsFailure() + { + return( (fInfo != eOk) ? true : false ); + } + StatusCode::EInfo Info() + { + return fInfo; + } + +private: + EInfo fInfo; +}; + +#endif // STATUS_CODE_H + diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc new file mode 100644 index 0000000000..058ff2f7fe --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.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. * +// ******************************************************************** +// +// +// $Id: SAXComponentFactory.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXComponentFactory.hh" + + diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc new file mode 100644 index 0000000000..4a07b39766 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.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: SAXComponentFactoryTable.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXComponentFactoryBase.hh" +#include "SAXComponentFactoryTable.hh" + +static SAXComponentFactoryTable* sComponentsFactoryTable = 0; + +// Returns a vector of components according to the given component type +const SAXComponentFactoryTable::Components* +SAXComponentFactoryTable::GetComponents( SAXComponentObject::EType type ) +{ + SAXComponentFactoryTable::Components* ret = 0; + + switch( type ) + { + case SAXComponentObject::eProcess : ret = fProcesses; break; + case SAXComponentObject::eAction : ret = fActions; break; + case SAXComponentObject::eSubscriber: ret = fSubscribers; break; + }; + + return ret; +} + +void SAXComponentFactoryTable::Register( SAXComponentFactoryBase* c ) +{ + SAXComponentObject::EType type = c->Type(); + + switch( type ) + { + case SAXComponentObject::eProcess : fProcesses->push_back( c ); break; + case SAXComponentObject::eAction : fActions->push_back( c ); break; + case SAXComponentObject::eSubscriber: fSubscribers->push_back( c ); break; + }; +} + +SAXComponentFactoryTable* SAXComponentFactoryTable::GetInstance() +{ + if( 0 == sComponentsFactoryTable ) + { + sComponentsFactoryTable = new SAXComponentFactoryTable(); + } + + return sComponentsFactoryTable; +} + +SAXComponentFactoryTable::~SAXComponentFactoryTable() +{ + if( fProcesses != 0 ) + { + fProcesses->clear(); + delete fProcesses; + fProcesses = 0; + } + if( fActions != 0 ) + { + fActions->clear(); + delete fActions; + fActions = 0; + } + if( fSubscribers != 0 ) + { + fSubscribers->clear(); + delete fSubscribers; + fSubscribers = 0; + } +} + +#include + +SAXComponentFactoryTable::SAXComponentFactoryTable() +: fProcesses( 0 ), fActions( 0 ), fSubscribers( 0 ) +{ + fProcesses = new SAXComponentFactoryTable::Components(); + fActions = new SAXComponentFactoryTable::Components(); + fSubscribers = new SAXComponentFactoryTable::Components(); + std::cout << "Component Factory Table created" << std::endl; +} + + diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc b/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc new file mode 100644 index 0000000000..d097858a44 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc @@ -0,0 +1,428 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: SAXEventGun.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include +#include +#include + +#include +#include +#include + + +#include "SAXProcessor.hh" +#include "SAXEvents.hh" +#include "ASCIIAttributeList.hh" +#include "ProcessingConfigurator.hh" + +#include "SAXEventGun.hh" + +#include + +StatusCode SAXEventGun::Run() +{ + StatusCode sc; + + fParser = new SAXParser(); + + fParser->setDocumentHandler( this ); + fParser->setErrorHandler( this ); + fParser->setValidationScheme( SAXParser::Val_Auto ); + fParser->setDoNamespaces(true); + fParser->setDoSchema(true); + fParser->setValidationSchemaFullChecking(true); + + const std::string& uri = fConfig->URI(); + const char* xmlfile = uri.c_str(); + + try + { + fParser->parse( xmlfile ); + } + catch (const XMLException& e) + { + const char* msg = XMLString::transcode( e.getMessage() ); + + std::cerr << "\nError during parsing: '" << xmlfile << "'\n" + << "Exception message is: \n" + << msg << "\n" << std::endl; + //XMLPlatformUtils::Terminate(); + if( msg != 0 ) + { + delete [] msg; + } + sc = StatusCode::eError; + } + catch (...) + { + std::cerr << "\nUnexpected exception during parsing: '" << xmlfile << "'\n"; + //XMLPlatformUtils::Terminate(); + sc = StatusCode::eError; + } + + /* + try + { + // Create a progressive scan token + XMLPScanToken token; + + if (!fParser.parseFirst(xmlFile, token)) + { + std::cerr << "scanFirst() failed\n" << std::endl; + sc = StatusCode::eError; + } + else + { + // + // We started ok, so lets call scanNext() until we find what we want + // or hit the end. + // + bool gotMore = true; + while (gotMore && !handler.getDone()) + gotMore = parser.parseNext(token); + + // + // Reset the parser. In this simple progrma, since we just exit + // now, its not technically required. But, in programs which + // would remain open, you should reset after a progressive parse + // in case you broke out before the end of the file. This insures + // that all opened files, sockets, etc... are closed. + // + parser.parseReset(token); + } + } + + catch (const XMLException& toCatch) + { + cerr << "\nAn error occured: '" << xmlFile << "'\n" + << "Exception message is: \n" + << StrX(toCatch.getMessage()) + << "\n" << endl; + return -1; + } + */ + + return sc; +} + +void SAXEventGun::characters( const XMLCh* const chars + , const unsigned int length ) +// Receive notification of #PCDATA characters in element content. +{ + char* ascii = 0; + + if( length > 0 ) { + ascii = XMLString::transcode( chars ); + SAXEventCharacters event( ascii ); + + fTarget->ProcessEvent( &event ); + + if( ascii != 0 ) + { + delete [] ascii; + } + } +} + +void SAXEventGun::endDocument() +// Receive notification of the end of the document. +{ + SAXEventEndDocument event; + fTarget->ProcessEvent( &event ); +} + +void SAXEventGun::endElement( const XMLCh* const name ) +// Receive notification of the end of an element. +{ + const char* ascii = 0; + + ascii = XMLString::transcode( name ); + SAXEventEndElement event( ascii ); + fTarget->ProcessEvent( &event ); + + if( ascii != 0 ) + { + delete [] ascii; + } +} + +void SAXEventGun::ignorableWhitespace( const XMLCh* const chars + , const unsigned int length ) +// Receive notification of ignorable whitespace in element content. +{ + char* ascii = 0; + + if( length > 0 ) { + ascii = XMLString::transcode( chars ); + SAXEventCharacters event( ascii ); + fTarget->ProcessEvent( &event ); + + if( ascii != 0 ) + { + delete [] ascii; + } + } +} + +void SAXEventGun::processingInstruction( const XMLCh* const target + , const XMLCh* const data ) +// Receive notification of a processing instruction. +{ + char* ascii_target = 0; + char* ascii_data = 0; + + ascii_target = XMLString::transcode( target ); + ascii_data = XMLString::transcode( data ); + SAXEventPI event( ascii_target, ascii_data ); + fTarget->ProcessEvent( &event ); + + if( ascii_target != 0 ) + { + delete [] ascii_target; + } + if( ascii_data != 0 ) + { + delete [] ascii_data; + } +} + +void SAXEventGun::resetDocument() +// Reset the Docuemnt object on its reuse +{ +} + +void SAXEventGun::setDocumentLocator(const Locator* const locator) +// Receive a Locator object for document events. +{ +} + + +void SAXEventGun::startDocument() +// Receive notification of the beginning of the document. +{ + SAXEventStartDocument event; + fTarget->ProcessEvent( &event ); +} + +void SAXEventGun::startElement( const XMLCh* const name + , AttributeList& attributes ) +// Receive notification of the start of an element. +{ + char* ascii = 0; + ASCIIAttributeList attrs; + + ascii = XMLString::transcode( name ); + + for( unsigned int i = 0; i < attributes.getLength(); i++ ) { + // Let's transcode the attribute list + char* name = XMLString::transcode( attributes.getName(i) ); + char* value = XMLString::transcode( attributes.getValue(i) ); + char* type = XMLString::transcode( attributes.getType(i) ); + + attrs.add( name, value, type ); + + delete [] name; + delete [] value; + delete [] type; + } + + SAXEventStartElement event( ascii, attrs ); + fTarget->ProcessEvent( &event ); + + if( ascii != 0 ) + { + delete [] ascii; + } +} + +//static XMLCh sEmpty[] = { chLatin_e, chLatin_m, chLatin_p, chLatin_t, chLatin_y, chNull }; +InputSource* SAXEventGun::resolveEntity( const XMLCh* const publicId + , const XMLCh* const systemId ) +// Resolve an external entity. +{ + return 0; +} + + +void SAXEventGun::error( const SAXParseException& exception ) +// Receive notification of a recoverable parser error. +{ + char* publicId = XMLString::transcode( exception.getPublicId() ); + char* systemId = XMLString::transcode( exception.getSystemId() ); + char* msg = XMLString::transcode( exception.getMessage() ); + + std::strstream msgstr; + + msgstr << "error: " + << "publicId: " << publicId + << " systemId: " << systemId + << " line: " << exception.getLineNumber() + << " column: " << exception.getColumnNumber() + << "\n" + << msg + << std::ends; + + SAXEventError event( msgstr.str() ); + fTarget->ProcessEvent( &event ); + + if( publicId != 0 ) + { + delete [] publicId; + } + if( systemId != 0 ) + { + delete [] systemId; + } + if( msg != 0 ) + { + delete [] msg; + } +} + +void SAXEventGun::fatalError( const SAXParseException& exception ) +// Report a fatal XML parsing error. +{ + char* publicId = XMLString::transcode( exception.getPublicId() ); + char* systemId = XMLString::transcode( exception.getSystemId() ); + char* msg = XMLString::transcode( exception.getMessage() ); + + std::strstream msgstr; + msgstr << "fatal error: " + << "publicId: " << publicId + << " systemId: " << systemId + << " line: " << exception.getLineNumber() + << " column: " << exception.getColumnNumber() + << "\n" + << msg + << std::ends; + + SAXEventFatalError event( msgstr.str() ); + fTarget->ProcessEvent( &event ); + + if( publicId != 0 ) + { + delete [] publicId; + } + if( systemId != 0 ) + { + delete [] systemId; + } + if( msg != 0 ) + { + delete [] msg; + } +} + +void SAXEventGun::warning( const SAXParseException& exception ) +// Receive notification of a parser warning. +{ + char* publicId = XMLString::transcode( exception.getPublicId() ); + char* systemId = XMLString::transcode( exception.getSystemId() ); + char* msg = XMLString::transcode( exception.getMessage() ); + + std::strstream msgstr; + msgstr << "warning: " + << "publicId: " << publicId + << " systemId: " << systemId + << " line: " << exception.getLineNumber() + << " column: " << exception.getColumnNumber() + << "\n" + << msg + << std::endl; + + SAXEventWarning event( msgstr.str() ); + fTarget->ProcessEvent( &event ); + + if( publicId != 0 ) + { + delete [] publicId; + } + if( systemId != 0 ) + { + delete [] systemId; + } + if( msg != 0 ) + { + delete [] msg; + } +} + +void SAXEventGun::resetErrors() +// Reset the Error handler object on its reuse +{ +} + +void SAXEventGun::notationDecl( const XMLCh* const name + , const XMLCh* const publicId + , const XMLCh* const systemId ) +// Receive notification of a notation declaration. +{ +} + +void SAXEventGun::resetDocType() +// Reset the DTD object on its reuse +{ +} + +void SAXEventGun::unparsedEntityDecl( const XMLCh* const name + , const XMLCh* const publicId + , const XMLCh* const systemId + , const XMLCh* const notationName ) +// Receive notification of an unparsed entity declaration. +{ +} + +SAXEventGun::SAXEventGun( SAXProcessor* target ) +: fTarget( target ), fParser( 0 ), fConfig( 0 ) +{ +} + +SAXEventGun::~SAXEventGun() +{ +} + +const SAXProcessor* SAXEventGun::Target() const +{ + return fTarget; +} + +void SAXEventGun::SetTarget( SAXProcessor* target ) +{ + fTarget = target; +} + +void SAXEventGun::Configure( ProcessingConfigurator* config ) +{ + fConfig = config; +} + + diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc b/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc new file mode 100644 index 0000000000..2a03b53e1c --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc @@ -0,0 +1,335 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: SAXProcessor.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include +#include + +#include "ProcessingConfigurator.hh" +#include "SAXEvents.hh" +#include "StateStack.hh" +#include "SAXEventGun.hh" +#include "StateProcessMap.hh" +#include "SAXStateProcess.hh" +#include "SAXSubscriber.hh" +#include "SAXSubscriberPool.hh" +#include "SAXObjectHandle.hh" +#include "SAXProcessingState.hh" +#include "ActionProcessingState.hh" + +#include "SAXProcessor.hh" + +#include + +SAXProcessor::SAXProcessor() +: fMap( 0 ), fPool( 0 ), fStack( 0 ), fNotifyStack( 0 ), + fConfig( 0 ), fCurrentEvent( 0 ), fIgnoring( false ) +{ + fMap = new StateProcessMap(); + fPool = new SAXSubscriberPool(); + fStack = new StateStack(); + fNotifyStack = new StateStack(); +} + +SAXProcessor::~SAXProcessor() +{ + if( fMap != 0 ) + { + delete fMap; + fMap = 0; + } + if( fPool != 0 ) + { + delete fPool; + fPool = 0; + } + if( fStack != 0 ) + { + delete fStack; + fStack = 0; + } + if( fNotifyStack != 0 ) + { + delete fNotifyStack; + fStack = 0; + } +} + +// Mandatory interface from ProcessingContext +const StateStack* SAXProcessor::GetStack() const +{ + return fStack; +} + +const SAXEvent* SAXProcessor::GetLastEvent() const +{ + return fCurrentEvent; +} + +const SAXEventGun* SAXProcessor::GetSAXEventGun() const +{ + return fCurrentGun; +} + +void SAXProcessor::SetSAXEventGun( const SAXEventGun* gun ) +{ + fCurrentGun = gun; +} + +const ProcessingConfigurator* SAXProcessor::GetConfig() const +{ + return fConfig; +} + +SAXObject** SAXProcessor::GetTopObject() const +{ + SAXProcessingState* state = dynamic_cast( fStack->Top() ); + SAXObject** obj = state->GetObjectRef(); + return obj; +} + + +StatusCode SAXProcessor::Initialize() +{ + StatusCode sc; + + fMap->Initialize(); + fPool->Initialize(); + + // Initialize the Xerces-C system + try + { + XMLPlatformUtils::Initialize(); + } + catch( const XMLException& toCatch ) + { + char* msg = XMLString::transcode( toCatch.getMessage() ); + std::cerr << "Error during initialization! :\n" << msg << std::endl; + sc = StatusCode::eError; + if( msg != 0 ) + { + delete [] msg; + } + } + + return sc; +} + +StatusCode SAXProcessor::Configure( ProcessingConfigurator* config ) +{ + fConfig = config; + return StatusCode::eOk; +} + +StatusCode SAXProcessor::Run() +{ + StatusCode sc; + SAXEventGun saxgun( this ); + + saxgun.Configure( fConfig ); + sc = saxgun.Run(); + + return sc; +} + +StatusCode SAXProcessor::Finalize() +{ + StatusCode sc; + + // And call the termination method + XMLPlatformUtils::Terminate(); + + return sc; +} + +void SAXProcessor::ProcessEvent( const SAXEvent* const event ) +{ + fCurrentEvent = event; + SAXProcessingState* top = 0; + SAXProcessingState* notifytop = 0; + SAXObject** objectRef = 0; + + if( !fStack->Empty() ) + { + //top = dynamic_cast( (fStack->Top())() ); + top = dynamic_cast( fStack->Top() ); + } + + if( !fNotifyStack->Empty() ) + { + //top = dynamic_cast( (fStack->Top())() ); + notifytop = dynamic_cast( fNotifyStack->Top() ); + } + + if( SAXEvent::eStartElement == event->Type() ) + { + const SAXEventStartElement* ev = dynamic_cast(event); + + std::string tagname = ev->Name(); + //std::cout << "SXP::PE:: Got start element event for tag: " << tagname << std::endl; + + if( fMap->Check( ev->Name() ) ) + { + fIgnoring = false; + + // We've got the state process in place, let's activate it + objectRef = new SAXObject*; + StateProcessMap::Process process = fMap->GetProcess( tagname ); + process->SetContext( this ); + const StateStack::State state = new SAXProcessingState( objectRef, process() ); + + // Setup properly the stacks + if( fStack->Empty() && fNotifyStack->Empty() ) + { + fStack->Push( state ); + } + else + { + StateStack::State notifystate = top; + fNotifyStack->Push( notifystate ); + fStack->Push( state ); + } + + process->StartElement( tagname, ev->Attributes() ); + } + else + { + fIgnoring = true; + } + } + else if( SAXEvent::eEndElement == event->Type() ) + { + const SAXEventEndElement* ev = dynamic_cast(event); + + std::string name = ev->Name(); + //std::cout << "SXP::PE:: Got end element event for tag: " << name << std::endl; + + if( !fStack->Empty() ) { + if( ev->Name() == top->GetProcess()->State() ) { + // Activate state process + SAXStateProcess* process = top->GetProcess(); + process->EndElement( ev->Name() ); + + // Grab a new object from the stack and play with it a bit + objectRef = top->GetObjectRef(); + + // Locate the subcriber(s) and send them the created object + const SAXSubscriberPool::Subscribers* actors = fPool->GetSubscribers( ev->Name() ); + + if( actors != 0 ) { + // There are some guys waiting out there for a gift + SAXSubscriberPool::Subscribers::const_iterator subscriberRef; + + for( subscriberRef = actors->begin(); subscriberRef != actors->end(); subscriberRef++ ) { + // Now we call only subscribers processing only this single element + if( (*subscriberRef)->GetSubscriptions()->size() == 1 ) { + //std::cout << "SXP::PE:: Executing subscriber(s) for element: " << ev->Name() << std::endl; + (*subscriberRef)->Activate( *objectRef ); + } + } + + delete actors; + } + + if( !fNotifyStack->Empty() ) { + // Let the parent process know about its child element + notifytop->GetProcess()->StackPopNotify( ev->Name() ); + + // Now we call only the subscribers who need to know about their children elements + // This workaround is here due to the single-type tree grammar. This type of tree grammar + // forbids conflicting non-terminal symbols in its productions and this is here to remove + // the ambiguity caused by the conflicting non-terminals + // In other words it means whenever we have to process two XML elements which have the same + // child element in their content models we notify only the one whose child is now created + SAXSubscriber::Subscription ParentTag = notifytop->GetProcess()->State(); + const SAXSubscriberPool::Subscribers* actors = fPool->GetSubscribers( ParentTag ); + if( actors != 0 ) { + SAXSubscriberPool::Subscribers::const_iterator subscriberRef; + + for( subscriberRef = actors->begin(); subscriberRef != actors->end(); subscriberRef++ ) { + if( (*subscriberRef)->IsSubscribedTo( ev->Name() ) ) { + //std::cout << "SXP::PE:: Executing PARENT subscriber(s) for: " + // << ParentTag << " for element: " << ev->Name() << std::endl; + (*subscriberRef)->Activate( *objectRef ); + } + } + + delete actors; + } + + // Pop this guy from notify stack + fNotifyStack->Pop(); + } + + if( objectRef != 0 ) { + delete objectRef; + } + + fStack->Pop(); + //std::cout << "--------------------------------------------------------------" << std::endl; + } + } + } + else + { + switch( event->Type() ) + { + case SAXEvent::eCharacters : + { + if( !fIgnoring ) { + const SAXEventCharacters* ev = dynamic_cast(event); + //std::cout << "SXP::PE:: Got characters event >>" << ev->Data() << "<<" << std::endl; + if( !fStack->Empty() ) { + top->GetProcess()->Characters( ev->Data() ); + } + } + } + break; + case SAXEvent::ePI : + { + } + break; + case SAXEvent::eWarning : + case SAXEvent::eError : + case SAXEvent::eFatalError : + { + const SAXErrorEventBase* ev = dynamic_cast(event); + std::cerr << ev->Message() << std::endl; + } + break; + default : + break; + }; + } +} + + + diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc b/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc new file mode 100644 index 0000000000..a5a5765048 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.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. * +// ******************************************************************** +// +// +// $Id: SAXSubscriberPool.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriberPool.hh" +#include "SAXComponentFactoryTable.hh" +#include "SAXComponentFactory.hh" + +#include + +SAXSubscriberPool::SAXSubscriberPool() +{ + std::cout << "Subcriber pool created" << std::endl; +} + +SAXSubscriberPool::~SAXSubscriberPool() +{ +} + +void SAXSubscriberPool::AddSubscriber( const SAXSubscriber::Subscription& type + , SAXSubscriberPool::Subscriber client ) +{ + SAXSubscriberPool::Pool::iterator it = fPool.find( type ); + if( it == fPool.end() ) { + // No subscribers for this have been found, let's create a new pool entry + SAXSubscriberPool::Subscribers pool; + fPool[type] = pool; + } + fPool[type].push_back( client ); +} + +void SAXSubscriberPool::RemoveSubscriber( const SAXSubscriber::Subscription& type + , SAXSubscriberPool::Subscriber client ) +{ + SAXSubscriberPool::Pool::iterator it = fPool.find( type ); + if( it != fPool.end() ) { + // There is still a subscriber for this type + SAXSubscriberPool::Subscribers::iterator sit; + for( sit = fPool[type].begin(); sit != fPool[type].end(); ++sit ) { + if( (*sit) == client ) { + fPool[type].erase(sit); + } + } + + if( fPool[type].empty() ) { + // There is no other subscriber for this type, let's free the map slot + fPool.erase( type ); + } + } +} + +const SAXSubscriberPool::Subscribers* +SAXSubscriberPool::GetSubscribers( const SAXSubscriber::Subscription& subscription ) +{ + SAXSubscriberPool::Subscribers* returnset = new SAXSubscriberPool::Subscribers(); + + SAXSubscriberPool::Pool::iterator it = fPool.find( subscription ); + if( it != fPool.end() ) + { + // There is a subscriber for this type + SAXSubscriberPool::Subscribers::iterator sit; + for( sit = fPool[subscription].begin(); sit != fPool[subscription].end(); ++sit ) + { + returnset->push_back( *sit ); + } + } + + return returnset; +} + + +void SAXSubscriberPool::Initialize() +{ + const SAXComponentFactoryTable::Components* + factories = SAXComponentFactoryTable::GetInstance()-> + GetComponents( SAXComponentObject::eSubscriber ); + + SAXComponentFactoryTable::Components::const_iterator pit; + SAXSubscriberPool::Subscriber subscriber; + + for( pit = factories->begin(); pit != factories->end(); pit++ ) + { + subscriber = dynamic_cast( (*pit)->Build() ); + const SAXSubscriber::SubscriptionSet* subs = subscriber->GetSubscriptions(); + + SAXSubscriber::SubscriptionSet::const_iterator sit; + for( sit = subs->begin(); sit != subs->end(); sit++ ) + { + std::cout << "Adding subscriber for tag: " << (*sit) << std::endl; + AddSubscriber( *sit, subscriber ); + } + } + std::cout << "========================================================" << std::endl; +} + +void SAXSubscriberPool::Reset() { + // Global pool reset, removing all subscribers for all types + for( SAXSubscriberPool::Pool::iterator it = fPool.begin(); it != fPool.end(); ++it ) { + it->second.clear(); + } + fPool.clear(); +} + diff --git a/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc b/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc new file mode 100644 index 0000000000..d3fe3a8b25 --- /dev/null +++ b/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.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. * +// ******************************************************************** +// +// +// $Id: StateProcessMap.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "StateProcessMap.hh" +#include "SAXComponentFactoryTable.hh" +#include "SAXComponentFactory.hh" + +#include + +StateProcessMap::StateProcessMap() +{ + std::cout << "State process map created" << std::endl; +} + +StateProcessMap::~StateProcessMap() +{ + Reset(); +} + +void StateProcessMap::Initialize() +{ + SAXComponentFactoryTable* FTable = SAXComponentFactoryTable::GetInstance(); + const SAXComponentFactoryTable::Components* factories; + + factories = FTable->GetComponents( SAXComponentObject::eProcess ); + + SAXComponentFactoryTable::Components::const_iterator pit; + + StateProcessMap::Process process; + for( pit = factories->begin(); pit != factories->end(); pit++ ) + { + process = dynamic_cast( (*pit)->Build() ); + + std::cout << "Adding state process for tag: " << process->State() << std::endl; + + AddProcess( process->State(), process ); + } + std::cout << "========================================================" << std::endl; +} + +void StateProcessMap::Reset() +{ + fMap.clear(); +} + +void StateProcessMap::AddProcess( const std::string& tag, StateProcessMap::Process process ) +{ + fMap[tag] = process; +} + +void StateProcessMap::AddProcess( char* tag, StateProcessMap::Process process ) +{ + std::string key = tag; + AddProcess( key, process ); +} + +bool StateProcessMap::Check( const std::string& tag ) +{ + return( ( fMap.find( tag ) != fMap.end() ) ? true : false ); +} + +bool StateProcessMap::Check( char* tag ) +{ + std::string key = tag; + return( Check( key ) ); +} + +StateProcessMap::Process StateProcessMap::GetProcess( const std::string& tag ) +{ + return( fMap[tag] ); +} + +StateProcessMap::Process StateProcessMap::GetProcess( char* tag ) +{ + std::string key = tag; + return( GetProcess( key ) ); +} + + diff --git a/examples/extended/gdml/libgdml/schema/GNUmakefile b/examples/extended/gdml/libgdml/schema/GNUmakefile new file mode 100644 index 0000000000..dd584e8965 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/GNUmakefile @@ -0,0 +1,8 @@ +# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for GDML schema library. Radovan Chytracek, 30/05/2002. +# ---------------------------------------------------------------- + +name := GDMLschema + +include ../libgdml.gmk diff --git a/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh b/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh new file mode 100644 index 0000000000..ce661137c5 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.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: AssemblyVolumeType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ASSEMBLYVOLUMETYPE_H +#define ASSEMBLYVOLUMETYPE_H 1 + +#include "IdentifiableVolumeType.hh" +#include "SinglePlacementType.hh" +#include "ContentGroup.hh" + +class AssemblyVolumeType : public IdentifiableVolumeType { +public: + AssemblyVolumeType() { + } + ~AssemblyVolumeType() { + } + + const ContentSequence* get_content() const { + return &m_sequence; + } + + void add_content( const std::string& tag, SAXObject* so ) { + ContentGroup::ContentItem ci = { tag, so }; + m_sequence.add_content( ci ); + } +private: + ContentSequence m_sequence; +}; + +#endif // ASSEMBLYVOLUMETYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/AtomType.hh b/examples/extended/gdml/libgdml/schema/include/AtomType.hh new file mode 100644 index 0000000000..b9a654932b --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/AtomType.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: AtomType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ATOMTYPE_H +#define ATOMTYPE_H 1 + + +#include "QuantityType.hh" + + +class AtomType : public QuantityType { +public: + AtomType() { + set_unit("g/mole"); + set_type("A"); + } + ~AtomType() { + } +}; + + + +#endif // ATOMTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh b/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh new file mode 100644 index 0000000000..fc750bdccb --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh @@ -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: BooleanSolidType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef BOOLEANSOLIDTYPE_H +#define BOOLEANSOLIDTYPE_H 1 + +#include "SAXObject.hh" + +#include "SolidType.hh" +#include "ContentGroup.hh" +#include "ReferenceType.hh" +#include "positionType.hh" +#include "rotationType.hh" + +class BooleanSolidType : public SolidType { +public: + class first : public SAXObject, public ReferenceType { + public: + first() { + } + virtual ~first() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + + class second : public SAXObject, public ReferenceType { + public: + second() { + } + virtual ~second() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + + class position : public SAXObject, public positionType { + public: + position() { + } + virtual ~position() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + + class positionref : public SAXObject, public ReferenceType { + public: + positionref() { + } + virtual ~positionref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + + class rotation : public SAXObject, public rotationType { + public: + rotation() { + } + virtual ~rotation() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + + class rotationref : public SAXObject, public ReferenceType { + public: + rotationref() { + } + virtual ~rotationref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + +public: + BooleanSolidType() { + } + + ~BooleanSolidType() { + } + + const ContentSequence* get_content() const { + return &m_sequence; + } + + void add_content( const std::string& tag, SAXObject* so ) { + ContentGroup::ContentItem ci = { tag, so }; + m_sequence.add_content( ci ); + } + +private: + ContentSequence m_sequence; +}; + +#endif // BOOLEANSOLIDTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/ConstantType.hh b/examples/extended/gdml/libgdml/schema/include/ConstantType.hh new file mode 100644 index 0000000000..0d18be9c69 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/ConstantType.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. * +// ******************************************************************** +// +// +// $Id: ConstantType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef CONSTANTTYPE_H +#define CONSTANTTYPE_H 1 + +#include + +class ConstantType { + // An anonymous, local scope, value + public: + ConstantType() { + } + ConstantType( std::string& s ) : m_value( s ) { + } + ConstantType( char* s ) { + m_value = s; + } + ~ConstantType() { + } + void set_value( std::string& s ) { + m_value = s; + } + std::string get_value() const { + return m_value; + } + private: + // double + std::string m_value; +}; + +#endif // CONSTANTTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh b/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh new file mode 100644 index 0000000000..a9ec7d5005 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh @@ -0,0 +1,179 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ContentGroup.hh,v 1.3 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef CONTENTGROUP_H +#define CONTENTGROUP_H 1 + +#include "SAXObject.hh" + +#include + +#include + +class ContentGroup : virtual public SAXObject { +public: + typedef enum { + sequence, + choice, + all + } ContentType; + struct ContentItem { + std::string tag; + SAXObject* object; + }; +public: + ContentGroup() { + } + virtual ~ContentGroup() { + } + virtual SAXObject::Type type() { + return SAXObject::contentGroup; + } + virtual ContentGroup::ContentType content_type() const = 0; + virtual bool empty() = 0; +}; + +class ContentChoice : virtual public ContentGroup { +public: + ContentChoice() { + m_choice.tag = ""; + m_choice.object = 0; + } + virtual ~ContentChoice() { + if( m_choice.object != 0 ) { + //std::cout << "ContentChoice destructor deleting " << m_choice.tag << std::endl; + delete m_choice.object; + } + } + virtual ContentGroup::ContentType content_type() const { + return ContentGroup::choice; + } + virtual bool empty() { + return( m_choice.object == 0 ); + } + void set_content( ContentItem& ci ) { + m_choice = ci; + } + ContentItem& content() { + return m_choice; + } + const ContentItem& content() const { + return m_choice; + } + +private: + ContentItem m_choice; +}; + +class ContentSequence : virtual public ContentGroup { +public: + ContentSequence() { + } + virtual ~ContentSequence() { + for( unsigned int idx= 0; idx < m_sequence.size(); idx++ ) { + if( m_sequence[idx].object != 0 ) { + //std::cout << "ContentSequence destructor deleting " << m_sequence[idx].tag << std::endl; + delete m_sequence[idx].object; + } + } + } + virtual ContentGroup::ContentType content_type() const { + return ContentGroup::sequence; + } + virtual bool empty() { + return( m_sequence.size() == 0 ); + } + size_t size() const { + return( m_sequence.size() ); + } + void add_content( ContentItem& ci ) { + m_sequence.push_back( ci ); + } + ContentItem content( unsigned int idx ) const { + return m_sequence[idx]; + } + void clear() { + for( unsigned int idx= 0; idx < m_sequence.size(); idx++ ) { + if( m_sequence[idx].object != 0 ) { + //std::cout << "ContentSequence destructor clearing " << m_sequence[idx].tag << std::endl; + delete m_sequence[idx].object; + } + } + m_sequence.clear(); + } + +private: + std::vector m_sequence; +}; + +class ContentAll : virtual public ContentGroup { +public: + ContentAll() : m_all( 0 ) { + } + virtual ~ContentAll() { + for( unsigned int idx= 0; idx < m_all.size(); idx++ ) { + if( m_all[idx].object != 0 ) { + //std::cout << "ContentAll destructor deleting " << m_all[idx].tag << std::endl; + delete m_all[idx].object; + } + } + } + virtual ContentGroup::ContentType content_type() const { + return ContentGroup::all; + } + virtual bool empty() { + return( m_all.size() == 0 ); + } + size_t size() const { + return( m_all.size() ); + } + void add_content( ContentItem& ci ) { + m_all.push_back( ci ); + } + ContentItem content( unsigned int idx ) const { + return m_all[idx]; + } + void clear() { + for( unsigned int idx= 0; idx < m_all.size(); idx++ ) { + if( m_all[idx].object != 0 ) { + //std::cout << "ContentAll clearing " << m_all[idx].tag << std::endl; + delete m_all[idx].object; + } + } + m_all.clear(); + } + +private: + std::vector m_all; +}; + +#endif // CONTENTGROUP_H diff --git a/examples/extended/gdml/libgdml/schema/include/DorDref.hh b/examples/extended/gdml/libgdml/schema/include/DorDref.hh new file mode 100644 index 0000000000..a86689f04f --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/DorDref.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. * +// ******************************************************************** +// +// +// $Id: DorDref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef DORDREF_H +#define DORDREF_H 1 + +#include "QuantityType.hh" +#include "ReferenceType.hh" +#include "TagorTagref.hh" + +class D : public SAXObject, public QuantityType +{ +public: + D() { + set_type( "Density" ); + set_unit( "g/mole" ); + } + virtual ~D() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +class Dref : public SAXObject, public ReferenceType +{ +public: + Dref() { + } + virtual ~Dref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +typedef TagorTagref DorDref; + +#endif // DORDREF_H diff --git a/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh b/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh new file mode 100644 index 0000000000..b1df615cff --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/ExpressionType.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: ExpressionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef EXPRESSIONTYPE_H +#define EXPRESSIONTYPE_H 1 + + +class ExpressionType { +public: + ExpressionType() { + } + ~ExpressionType() { + } + void set_text( std::string& s ) { + m_text = s; + } + void set_text( char* s ) { + m_text = s; + } + std::string get_text() const { + return m_text; + } +private: + // mixed + std::string m_text; +}; + + +#endif // EXPRESSIONTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh new file mode 100644 index 0000000000..d6fa32d08c --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.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: IdentifiableConstantType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef IDENTIFIABLECONSTANTTYPE_H +#define IDENTIFIABLECONSTANTTYPE_H 1 + +#include "ConstantType.hh" + +class IdentifiableConstantType : public ConstantType +{ +public: + IdentifiableConstantType() { + } + IdentifiableConstantType( std::string& s ) : m_name( s ) { + } + IdentifiableConstantType( char* s ) { + m_name = s; + } + ~IdentifiableConstantType() { + } + void set_name( std::string& s ) { + m_name = s; + } + void set_name( char* s ) { + m_name = s; + } + std::string get_name() const { + return m_name; + } +private: + // ID required + std::string m_name; +}; + +#endif // IDENTIFIABLECONSTANTTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh new file mode 100644 index 0000000000..a1c6c7f9f8 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.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. * +// ******************************************************************** +// +// +// $Id: IdentifiableExpressionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef IDENTIFIABLEEXPRESSIONTYPE_H +#define IDENTIFIABLEEXPRESSIONTYPE_H 1 + + +#include "ExpressionType.hh" + + +class IdentifiableExpressionType : public ExpressionType { +public: + IdentifiableExpressionType() { + } + ~IdentifiableExpressionType() { + } + void set_name( std::string& s ) { + m_name = s; + } + void set_name( char* s ) { + m_name = s; + } + std::string get_name() const { + return m_name; + } +private: + // ID required + std::string m_name; +}; + + +#endif // IDENTIFIABLEEXPRESSIONTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh new file mode 100644 index 0000000000..09407c6b74 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.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. * +// ******************************************************************** +// +// +// $Id: IdentifiableQuantityType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef IDENTIFIABLEQUANTITYTYPE_H +#define IDENTIFIABLEQUANTITYTYPE_H 1 + +#include "QuantityType.hh" + + +class IdentifiableQuantityType : public QuantityType { +public: + IdentifiableQuantityType() { + } + ~IdentifiableQuantityType() { + } + void set_name( std::string& s ) { + m_name = s; + } + void set_name( char* s ) { + m_name = s; + } + std::string get_name() const { + return m_name; + } + +private: + std::string m_name; +}; + + + +#endif // IDENTIFIABLEQUANTITYTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh new file mode 100644 index 0000000000..79e9509ae8 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.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. * +// ******************************************************************** +// +// +// $Id: IdentifiableQuantityVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef IDENTIFIABLEQUANTITYVECTORTYPE_H +#define IDENTIFIABLEQUANTITYVECTORTYPE_H 1 + + +#include "QuantityVectorType.hh" + + +class IdentifiableQuantityVectorType : public QuantityVectorType { +public: + IdentifiableQuantityVectorType() { + } + ~IdentifiableQuantityVectorType() { + } + void set_name( std::string& s ) { + m_name = s; + } + void set_name( char* s ) { + m_name = s; + } + std::string get_name() const { + return m_name; + } +private: + // ID required + std::string m_name; +}; + + +#endif // IDENTIFIABLEQUANTITYVECTORTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh new file mode 100644 index 0000000000..4981963fc4 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.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. * +// ******************************************************************** +// +// +// $Id: IdentifiableThreeVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef IDENTIFIABLETHREEVECTORTYPE_H +#define IDENTIFIABLETHREEVECTORTYPE_H 1 + + +#include "ThreeVectorType.hh" + + +class IdentifiableThreeVectorType : public ThreeVectorType { +public: + IdentifiableThreeVectorType() { + } + ~IdentifiableThreeVectorType() { + } + void set_name( std::string& s ) { + m_name = s; + } + void set_name( char* s ) { + m_name = s; + } + std::string& name() const { + return m_name; + } +private: + // ID required + std::string m_name; +}; + + +#endif // IDENTIFIABLETHREEVECTORTYPE_H diff --git a/source/track/src/G4VEvtBiasMechanism.cc b/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh similarity index 72% rename from source/track/src/G4VEvtBiasMechanism.cc rename to examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh index 0b86e0ea26..b96a5650f0 100644 --- a/source/track/src/G4VEvtBiasMechanism.cc +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh @@ -21,43 +21,36 @@ // ******************************************************************** // // -// $Id: G4VEvtBiasMechanism.cc,v 1.3 2001/07/11 10:08:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: IdentifiableVolumeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- -// GEANT 4 class implementation file +// Comments // -// -// -// ------------------------------------------------------------ -// Implemented for the new scheme 13 Apr. 1999 H.Kurahige - -#include "G4VEvtBiasMechanism.hh" - -G4VEvtBiasMechanism::G4VEvtBiasMechanism(const G4String& name): - theEBName(name) -{ -} - -G4VEvtBiasMechanism::G4VEvtBiasMechanism(const G4VEvtBiasMechanism& right) -{ - theEBName = right.theEBName; -} - -G4VEvtBiasMechanism::~G4VEvtBiasMechanism() -{ -} - - - - - - - - +// -------------------------------------------------------------- +// +#ifndef IDENTIFIABLEVOLUMETYPE_H +#define IDENTIFIABLEVOLUMETYPE_H 1 +#include +class IdentifiableVolumeType { +public: + IdentifiableVolumeType() { + } + ~IdentifiableVolumeType() { + } + const std::string& get_name() const { + return m_ID; + } + void set_name( const std::string& n ) { + m_ID = n; + } +private: + std::string m_ID; +}; +#endif // IDENTIFIABLEVOLUMETYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh b/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh new file mode 100644 index 0000000000..299edb4e9e --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.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: MaterialAttributeGroup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef MATERIALATTRIBUTEGROUP_H +#define MATERIALATTRIBUTEGROUP_H 1 + +#include + +/* +enum MaterialState { + unknown = 0, + gas, + solid, + liquid +}; +*/ + +struct MaterialAttributeGroup { + std::string m_ID; + std::string m_formula; + //MaterialState m_state; + std::string m_state; +}; + +#endif // MATERIALATTRIBUTEGROUP_H diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh new file mode 100644 index 0000000000..b6565b443a --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/MaterialElementType.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. * +// ******************************************************************** +// +// +// $Id: MaterialElementType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef MATERIALELEMENTTYPE_H +#define MATERIALELEMENTTYPE_H 1 + +#include "ContentGroup.hh" +#include "MaterialType.hh" +#include "DorDref.hh" +#include "atom.hh" + +class AtomOrFraction : public ContentChoice +{ +public: + AtomOrFraction() : isAtom( false ) { + } + ~AtomOrFraction() { + } + const SAXObject* get_content() const { + const SAXObject* so; + if( isAtom ) + so = this; + else + so = &m_fractions; + return so; + } + + void set_content( const std::string& tag, SAXObject* so ) { + if( !isAtom ) { + ContentGroup::ContentItem ci = {tag,so}; + if( tag == "fraction" ) { + // Switch to sequence content model + m_fractions.add_content( ci ); + } else if( tag == "atom" ) { + ContentChoice::set_content( ci ); + isAtom = true; + // No more updates should happen from now on.... + } + } + } + +private: + bool isAtom; + ContentSequence m_fractions; +}; + +class MaterialElementType : public MaterialType { +public: + MaterialElementType() : m_density( 0 ) { + } + ~MaterialElementType() { + if( m_density != 0 ) + delete m_density; + } + + const std::string& get_N() const { + return m_N; + } + const std::string& get_Z() const { + return m_Z; + } + const SAXObject* get_AtomOrFraction() const { + return m_aorf.get_content(); + } + const SAXObject* get_DorDref() const { + const SAXObject* so = 0; + if( m_density != 0 ) { + so = m_density->get_content(); + } + return so; + } + + void set_N( std::string& n ) { + m_N = n; + } + void set_Z( std::string& z ) { + m_Z = z; + } + void set_AtomOrFraction( const std::string& tag, SAXObject* so ) { + m_aorf.set_content( tag, so ); + } + void set_DorDref( const std::string& tag, SAXObject* so ) { + if( !m_density ) { + m_density = new DorDref; + } + m_density->set_content( tag, so); + } + + +private: + DorDref* m_density; + AtomOrFraction m_aorf; + std::string m_N; + std::string m_Z; +}; + +#endif // MATERIALELEMENTTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh new file mode 100644 index 0000000000..5e9efba803 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.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: MaterialIsotopeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef MATERIALISOTOPETYPE_H +#define MATERIALISOTOPETYPE_H 1 + + +#include "MaterialType.hh" +#include "DorDref.hh" +#include "atom.hh" + +class MaterialIsotopeType : public MaterialType { +public: + MaterialIsotopeType() : m_density( 0 ) { + } + ~MaterialIsotopeType() { + if( m_density != 0 ) + delete m_density; + } + + const std::string& get_N() const { + return m_N; + } + const std::string& get_Z() const { + return m_Z; + } + const atom& get_atom() const { + return m_atom; + } + const SAXObject* get_DorDref() const { + const SAXObject* so = 0; + if( m_density != 0 ) { + so = m_density->get_content(); + } + return so; + } + + void set_N( std::string& n ) { + m_N = n; + } + void set_Z( std::string& z ) { + m_Z = z; + } + void set_atom( const atom& a ) { + m_atom = a; + } + void set_DorDref( const std::string& tag, SAXObject* so ) { + if( !m_density ) { + m_density = new DorDref; + } + m_density->set_content( tag, so); + } + + +private: + DorDref* m_density; + atom m_atom; + std::string m_N; + std::string m_Z; +}; + +#endif // MATERIALISOTOPETYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh new file mode 100644 index 0000000000..dfb7d93676 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.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: MaterialMixtureType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef MATERIALMIXTURETYPE_H +#define MATERIALMIXTURETYPE_H 1 + +#include "MaterialType.hh" +#include "DorDref.hh" +#include "TorTref.hh" +#include "PorPref.hh" +#include "atom.hh" + +class MaterialMixtureType : public MaterialType { +public: + MaterialMixtureType() { + } + + ~MaterialMixtureType() { + } + + const std::string& get_Z() const { + return m_Z; + } + + const SAXObject* get_DorDref() const { + return( m_density.get_content() ); + } + + ContentChoice* get_choice() { + return &m_choice; + } + + const ContentChoice* get_choice() const { + return &m_choice; + } + + void set_Z( const std::string& z ) { + m_Z = z; + } + + void set_DorDref( const std::string& tag, SAXObject* so ) { + m_density.set_content( tag, so); + } + + void set_choice( const std::string& tag, SAXObject* so ) { + ContentGroup::ContentItem ci = { tag, so }; + m_choice.set_content( ci ); + } + +private: + DorDref m_density; + ContentChoice m_choice; + std::string m_Z; +}; + +#endif // MATERIALMIXTURETYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh b/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh new file mode 100644 index 0000000000..93b23ae76d --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.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: MaterialPropertiesGroup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef MATERIALPROPERTIESGROUP_H +#define MATERIALPROPERTIESGROUP_H 1 + +#include "TagorTagref.hh" + + +// Morphism pattern used: +// element group -> struct +// choice -> ContentChoice (TagorTagref) +// choice? -> ContentChoice* ptr (TagorTagref* ptr) +struct MaterialPropertiesGroup +{ + // optional RL or RLref + TagorTagref* m_RLorRLref; + // optional AL or ALref + TagorTagref* m_ALorALref; + // optional T or Tref + TagorTagref* m_TorTref; + // optional P or Pref + TagorTagref* m_PorPref; + + MaterialPropertiesGroup() + : m_RLorRLref(0), m_ALorALref(0), m_TorTref(0), m_PorPref(0) { + } +}; + +#endif // MATERIALPROPERTIESGROUP_H diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialType.hh new file mode 100644 index 0000000000..a5ddabf89b --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/MaterialType.hh @@ -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. * +// ******************************************************************** +// +// +// $Id: MaterialType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef MATERIALTYPE_H +#define MATERIALTYPE_H 1 + +#include "MaterialPropertiesGroup.hh" +#include "MaterialAttributeGroup.hh" + +class MaterialType { +public: + ~MaterialType() { + // Make sure the memory is released + if( m_mpg.m_RLorRLref != 0 ) + delete m_mpg.m_RLorRLref; + if( m_mpg.m_ALorALref != 0 ) + delete m_mpg.m_ALorALref; + if( m_mpg.m_TorTref != 0 ) + delete m_mpg.m_TorTref; + if( m_mpg.m_PorPref != 0 ) + delete m_mpg.m_PorPref; + } + + void set_RLorRLref( const std::string& tag, SAXObject* so ) { + if( !m_mpg.m_RLorRLref ) { + m_mpg.m_RLorRLref = new TagorTagref; + } + m_mpg.m_RLorRLref->set_content( tag, so); + } + void set_ALorALref( const std::string& tag, SAXObject* so ) { + if( !m_mpg.m_ALorALref ) { + m_mpg.m_ALorALref = new TagorTagref; + } + m_mpg.m_ALorALref->set_content( tag, so); + } + void set_TorTref( const std::string& tag, SAXObject* so ) { + if( !m_mpg.m_TorTref ) { + m_mpg.m_TorTref = new TagorTagref; + } + m_mpg.m_TorTref->set_content( tag, so); + } + void set_PorPref( const std::string& tag, SAXObject* so ) { + if( !m_mpg.m_PorPref ) { + m_mpg.m_PorPref = new TagorTagref; + } + m_mpg.m_PorPref->set_content( tag, so); + } + + const SAXObject* get_RLorRLref() const { + const SAXObject* so = 0; + if( m_mpg.m_RLorRLref != 0 ) { + so = m_mpg.m_RLorRLref->get_content(); + } + return so; + } + const SAXObject* get_ALorALref() const { + const SAXObject* so = 0; + if( m_mpg.m_ALorALref != 0 ) { + so = m_mpg.m_ALorALref->get_content(); + } + return so; + } + const SAXObject* get_TorTref() const { + const SAXObject* so = 0; + if( m_mpg.m_TorTref != 0 ) { + so = m_mpg.m_TorTref->get_content(); + } + return so; + } + const SAXObject* get_PorPref() const { + const SAXObject* so = 0; + if( m_mpg.m_PorPref != 0 ) { + so = m_mpg.m_PorPref->get_content(); + } + return so; + } + + void set_name( const std::string& s ) { + m_mag.m_ID = s; + } + + const std::string& get_name() const { + return m_mag.m_ID; + } + + void set_formula( const std::string& f ) { + m_mag.m_formula = f; + } + + std::string get_formula() const { + return m_mag.m_formula; + } + +// void set_state( MaterialState s ) { +// m_mag.m_state = s; +// } +// +// MaterialState get_state() const { +// return m_mag.m_state; +// } + void set_state( const std::string& s ) { + m_mag.m_state = s; + } + + const std::string& get_state() const { + return m_mag.m_state; + } + +protected: + MaterialType() { + m_mag.m_formula = ""; + } + +protected: + MaterialPropertiesGroup m_mpg; + MaterialAttributeGroup m_mag; +}; + +#endif // MATERIALTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/PorPref.hh b/examples/extended/gdml/libgdml/schema/include/PorPref.hh new file mode 100644 index 0000000000..c570387c73 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/PorPref.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. * +// ******************************************************************** +// +// +// $Id: PorPref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef PORPREF_H +#define PORPREF_H 1 + +#include "QuantityType.hh" +#include "ReferenceType.hh" +//#include "TagorTagref.hh" + +class P : public SAXObject, public QuantityType +{ +public: + P() { + set_type( "Pressure" ); + set_unit( "pascal" ); + } + virtual ~P() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +class Pref : public SAXObject, public ReferenceType +{ +public: + Pref() { + } + virtual ~Pref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +//typedef TagorTagref PorPref; + +#endif // PORPREF_H diff --git a/examples/extended/gdml/libgdml/schema/include/QuantityType.hh b/examples/extended/gdml/libgdml/schema/include/QuantityType.hh new file mode 100644 index 0000000000..518d2a8017 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/QuantityType.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: QuantityType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef QUANTITYTYPE_H +#define QUANTITYTYPE_H 1 + +#include "ConstantType.hh" + +class QuantityType : public ConstantType { +public: + QuantityType() { + } + ~QuantityType() { + } + void set_unit( std::string& s ) { + m_unit = s; + } + void set_unit( char* s ) { + m_unit = s; + } + std::string get_unit() const { + return m_unit; + } + void set_type( std::string& s ) { + m_type = s; + } + void set_type( char* s ) { + m_type = s; + } + std::string get_type() const { + return m_type; + } +private: + // string + std::string m_unit; + // string + std::string m_type; +}; + + + +#endif // QUANTITYTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh b/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh new file mode 100644 index 0000000000..68885d854f --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.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: QuantityVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef QUANTITYVECTORTYPE_H +#define QUANTITYVECTORTYPE_H 1 + + +#include "ThreeVectorType.hh" + + +class QuantityVectorType : public ThreeVectorType { +public: + QuantityVectorType() { + } + ~QuantityVectorType() { + } + void set_unit( std::string& s ) { + m_unit = s; + } + void set_unit( char* s ) { + m_unit = s; + } + std::string get_unit() const { + return m_unit; + } + void set_type( std::string& s ) { + m_type = s; + } + void set_type( char* s ) { + m_type = s; + } + std::string get_type() const { + return m_type; + } +private: + // string + std::string m_unit; + // string + std::string m_type; +}; + + +#endif // QUANTITYVECTORTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh b/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh new file mode 100644 index 0000000000..9bbe497f65 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/ReferenceListType.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. * +// ******************************************************************** +// +// +// $Id: ReferenceListType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef REFERENCELISTTYPE_H +#define REFERENCELISTTYPE_H 1 + +#include + + +class ReferenceListType { +public: + ReferenceListType() { + } + ~ReferenceListType() { + } + void set_refs( std::string& s ) { + m_refs = s; + } + void set_refs( char* s ) { + m_refs = s; + } + std::string& refs() const { + return m_refs; + } + +private: + // IDREFS + std::string m_refs; +}; + + +#endif // REFERENCELISTTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh b/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh new file mode 100644 index 0000000000..fdfca7d7a6 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/ReferenceType.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: ReferenceType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef REFERENCETYPE_H +#define REFERENCETYPE_H 1 + +#include + +class ReferenceType { +public: + ReferenceType() { + } + ~ReferenceType() { + } + void set_ref( std::string& s ) { + m_ref = s; + } + void set_ref( char* s ) { + m_ref = s; + } + const std::string& get_ref() const { + return m_ref; + } + +private: + // IDREF + std::string m_ref; +}; + + +#endif // REFERENCETYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh b/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh new file mode 100644 index 0000000000..028ee3534b --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.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: SinglePlacementType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SINGLEPLACEMENTTYPE_H +#define SINGLEPLACEMENTTYPE_H 1 + +#include "ContentGroup.hh" +#include "ReferenceType.hh" + +class SinglePlacementType { +public: + + class volumeref : public SAXObject, public ReferenceType { + public: + volumeref() { + } + virtual ~volumeref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + +// We need to resolve the problem of conlifting non-terminals in grammar +// This is typical use-case here, the following two elements clash with +// BooleanSolidType elements +// class positionref : public SAXObject, public ReferenceType { +// public: +// positionref() { +// } +// virtual ~positionref() { +// } +// virtual SAXObject::Type type() { +// return SAXObject::element; +// } +// }; +// +// class rotationref : public SAXObject, public ReferenceType { +// public: +// rotationref() { +// } +// virtual ~rotationref() { +// } +// virtual SAXObject::Type type() { +// return SAXObject::element; +// } +// }; + +public: + SinglePlacementType() { + } + ~SinglePlacementType() { + } + + const ContentSequence* get_content() const { + return &m_sequence; + } + + void add_content( const std::string& tag, SAXObject* so ) { + ContentGroup::ContentItem ci = { tag, so }; + m_sequence.add_content( ci ); + } + +private: + ContentSequence m_sequence; +}; + +#endif // SINGLEPLACEMENTTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/SolidType.hh b/examples/extended/gdml/libgdml/schema/include/SolidType.hh new file mode 100644 index 0000000000..913c7081f6 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/SolidType.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: SolidType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SOLIDTYPE_H +#define SOLIDTYPE_H 1 + +#include + +class SolidType { +public: + SolidType() { + } + ~SolidType() { + } + + const std::string& get_lunit() const { + return m_lunit; + } + const std::string& get_aunit() const { + return m_aunit; + } + const std::string& get_name() const { + return m_name; + } + + void set_lunit( const std::string& lu ) { + m_lunit = lu; + } + void set_aunit( const std::string& au ) { + m_aunit = au; + } + void set_name( const std::string& name ) { + m_name = name; + } + +private: + std::string m_lunit; + std::string m_aunit; + std::string m_name; +}; + + + +#endif // SOLIDTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh b/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh new file mode 100644 index 0000000000..07c699daf7 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/TagorTagref.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: TagorTagref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef TAGORTAGREF_H +#define TAGORTAGREF_H 1 + +#include "ContentGroup.hh" + +class TagorTagref +{ +public: + TagorTagref() { + } + ~TagorTagref() { + } + + const SAXObject* get_content() const { + return &m_choice; + } + + void set_content( const std::string& tag, SAXObject* so ) { + ContentGroup::ContentItem ci = {tag,so}; + m_choice.set_content( ci ); + } + +private: + // choice content model: ( Tag | ref ) + ContentChoice m_choice; +}; + +#endif // TAGORTAGREF_H diff --git a/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh b/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh new file mode 100644 index 0000000000..25dd3d5e80 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.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: ThreeVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef THREEVECTORTYPE_H +#define THREEVECTORTYPE_H 1 + +#include + +class ThreeVectorType { +public: + ThreeVectorType() { + } + ~ThreeVectorType() { + } + void set_x( std::string& s ) { + m_x = s; + } + void set_x( char* s ) { + m_x = s; + } + std::string get_x() const { + return m_x; + } + void set_y( std::string& s ) { + m_y = s; + } + void set_y( char* s ) { + m_y = s; + } + std::string get_y() const { + return m_y; + } + void set_z( std::string& s ) { + m_z = s; + } + void set_z( char* s ) { + m_z = s; + } + std::string get_z() const { + return m_z; + } + +private: + std::string m_x; + std::string m_y; + std::string m_z; +}; + + +#endif // THREEVECTORTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/TorTref.hh b/examples/extended/gdml/libgdml/schema/include/TorTref.hh new file mode 100644 index 0000000000..8bc33883bc --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/TorTref.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. * +// ******************************************************************** +// +// +// $Id: TorTref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef TORTREF_H +#define TORTREF_H 1 + +#include "QuantityType.hh" +#include "ReferenceType.hh" +//#include "TagorTagref.hh" + +class T : public SAXObject, public QuantityType +{ +public: + T() { + set_type( "Temperature" ); + set_unit( "kelvin" ); + } + virtual ~T() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +class Tref : public SAXObject, public ReferenceType +{ +public: + Tref() { + } + virtual ~Tref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +//typedef TagorTagref TorTref; + +#endif // TORTREF_H diff --git a/examples/extended/gdml/libgdml/schema/include/VolumeType.hh b/examples/extended/gdml/libgdml/schema/include/VolumeType.hh new file mode 100644 index 0000000000..4136aa9322 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/VolumeType.hh @@ -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: VolumeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef VOLUMETYPE_H +#define VOLUMETYPE_H 1 + +#include "IdentifiableVolumeType.hh" +#include "ReferenceType.hh" +#include "SinglePlacementType.hh" +#include "ContentGroup.hh" + +class VolumeType : public IdentifiableVolumeType { +public: + + class materialref : public SAXObject, public ReferenceType { + public: + materialref() { + } + virtual ~materialref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + + class solidref : public SAXObject, public ReferenceType { + public: + solidref() { + } + virtual ~solidref() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + +public: + VolumeType() { + } + ~VolumeType() { + } + + const ContentSequence* get_content() const { + return &m_sequence; + } + + void add_content( const std::string& tag, SAXObject* so ) { + ContentGroup::ContentItem ci = { tag, so }; + m_sequence.add_content( ci ); + } +private: + ContentSequence m_sequence; +}; + +#endif // VOLUMETYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/assembly.hh b/examples/extended/gdml/libgdml/schema/include/assembly.hh new file mode 100644 index 0000000000..eb7c1ba187 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/assembly.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: assembly.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ASSEMBLY_H +#define ASSEMBLY_H 1 + +#include "SAXObject.hh" +#include "AssemblyVolumeType.hh" + +class assembly : public SAXObject, public AssemblyVolumeType +{ +public: + assembly() { + } + virtual ~assembly() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // ASSEMBLY_H diff --git a/examples/extended/gdml/libgdml/schema/include/atom.hh b/examples/extended/gdml/libgdml/schema/include/atom.hh new file mode 100644 index 0000000000..6ae45dc219 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/atom.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: atom.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ATOM_HH +#define ATOM_HH 1 + +#include "SAXObject.hh" +#include "AtomType.hh" + +class atom : public SAXObject, public AtomType +{ +public: + atom() { + } + virtual ~atom() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // ATOM_HH diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh b/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh new file mode 100644 index 0000000000..5b47f84cc0 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/boolean_intersection.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: boolean_intersection.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef BOOLEAN_INTERSECTION_H +#define BOOLEAN_INTERSECTION_H 1 + +#include "SAXObject.hh" +#include "BooleanSolidType.hh" + +class boolean_intersection : public SAXObject, public BooleanSolidType +{ +public: + boolean_intersection() { + } + virtual ~boolean_intersection() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // BOOLEAN_INTERSECTION_H diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh b/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh new file mode 100644 index 0000000000..a42512ae05 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.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: boolean_subtraction.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef BOOLEAN_SUBTRACTION_H +#define BOOLEAN_SUBTRACTION_H 1 + +#include "SAXObject.hh" +#include "BooleanSolidType.hh" + +class boolean_subtraction : public SAXObject, public BooleanSolidType +{ +public: + boolean_subtraction() { + } + virtual ~boolean_subtraction() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // BOOLEAN_SUBTRACTION_H diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_union.hh b/examples/extended/gdml/libgdml/schema/include/boolean_union.hh new file mode 100644 index 0000000000..d56820ab56 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/boolean_union.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: boolean_union.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef BOOLEAN_UNION_H +#define BOOLEAN_UNION_H 1 + +#include "SAXObject.hh" +#include "BooleanSolidType.hh" + +class boolean_union : public SAXObject, public BooleanSolidType +{ +public: + boolean_union() { + } + virtual ~boolean_union() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // BOOLEAN_UNION_H diff --git a/examples/extended/gdml/libgdml/schema/include/box.hh b/examples/extended/gdml/libgdml/schema/include/box.hh new file mode 100644 index 0000000000..6d6ee7582b --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/box.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: box.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef BOX_H +#define BOX_H 1 + +#include "SAXObject.hh" +#include "SolidType.hh" + +class box : public SAXObject, public SolidType { +public: + box() { + } + virtual ~box() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_x() const { + return m_x; + } + const std::string& get_y() const { + return m_y; + } + const std::string& get_z() const { + return m_z; + } + + void set_x( const std::string& x ) { + m_x = x; + } + void set_y( const std::string& y ) { + m_y = y; + } + void set_z( const std::string& z ) { + m_z = z; + } + +private: + std::string m_x; + std::string m_y; + std::string m_z; +}; + + + +#endif // BOX_H diff --git a/examples/extended/gdml/libgdml/schema/include/child.hh b/examples/extended/gdml/libgdml/schema/include/child.hh new file mode 100644 index 0000000000..534d306a56 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/child.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: child.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef CHILD_H +#define CHILD_H 1 + +#include "SAXObject.hh" + +#include "SinglePlacementType.hh" + +class child : public SAXObject, public SinglePlacementType +{ +public: + child() { + } + virtual ~child() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + + + +#endif // CHILD_H diff --git a/examples/extended/gdml/libgdml/schema/include/composite.hh b/examples/extended/gdml/libgdml/schema/include/composite.hh new file mode 100644 index 0000000000..a809dffdb4 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/composite.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: composite.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef COMPOSITE_H +#define COMPOSITE_H 1 + +#include "ReferenceType.hh" + +class composite : virtual public SAXObject, public ReferenceType +{ +public: + composite() { + } + virtual ~composite() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + const std::string& get_n() const { + return m_n; + } + void set_n( const std::string& n ) { + m_n = n; + } + +private: + // xs:positiveInteger + std::string m_n; +}; + +#endif // COMPOSITE_H diff --git a/examples/extended/gdml/libgdml/schema/include/cone.hh b/examples/extended/gdml/libgdml/schema/include/cone.hh new file mode 100644 index 0000000000..e186fa7f41 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/cone.hh @@ -0,0 +1,104 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: cone.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef CONE_H +#define CONE_H 1 + +#include "SAXObject.hh" +#include "SolidType.hh" + +class cone : public SAXObject, public SolidType { +public: + cone() { + } + virtual ~cone() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_rmin1() const { + return m_rmin1; + } + const std::string& get_rmin2() const { + return m_rmin2; + } + const std::string& get_rmax1() const { + return m_rmax1; + } + const std::string& get_rmax2() const { + return m_rmax2; + } + const std::string& get_z() const { + return m_z; + } + const std::string& get_startphi() const { + return m_startphi; + } + const std::string& get_deltaphi() const { + return m_deltaphi; + } + + void set_rmin1( const std::string& rmin1 ) { + m_rmin1 = rmin1; + } + void set_rmin2( const std::string& rmin2 ) { + m_rmin2 = rmin2; + } + void set_rmax1( const std::string& rmax1 ) { + m_rmax1 = rmax1; + } + void set_rmax2( const std::string& rmax2 ) { + m_rmax2 = rmax2; + } + void set_z( const std::string& z ) { + m_z = z; + } + void set_startphi( const std::string& startphi ) { + m_startphi = startphi; + } + void set_deltaphi( const std::string& deltaphi ) { + m_deltaphi = deltaphi; + } + +private: + std::string m_rmin1; + std::string m_rmin2; + std::string m_rmax1; + std::string m_rmax2; + std::string m_z; + std::string m_startphi; + std::string m_deltaphi; +}; + + +#endif // CONE_H diff --git a/examples/extended/gdml/libgdml/schema/include/define.hh b/examples/extended/gdml/libgdml/schema/include/define.hh new file mode 100644 index 0000000000..9960b8a277 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/define.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. * +// ******************************************************************** +// +// +// $Id: define.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef DEFINE_H +#define DEFINE_H 1 + + +#include "SAXObject.hh" +#include "defineType.hh" +#include "IdentifiableConstantType.hh" +#include "IdentifiableQuantityType.hh" +#include "IdentifiableExpressionType.hh" +#include "positionType.hh" +#include "rotationType.hh" + +class define : virtual public SAXObject, public defineType { +public: + define() { + } + virtual ~define() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +public: + class constant : public SAXObject, public IdentifiableConstantType { + public: + constant() { + } + virtual ~constant() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + class quantity : public SAXObject, public IdentifiableQuantityType { + public: + quantity() { + } + virtual ~quantity() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + class expression : public SAXObject, public IdentifiableExpressionType { + public: + expression() { + } + virtual ~expression() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + class position : public SAXObject, public positionType { + public: + position() { + } + virtual ~position() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + class rotation : public SAXObject, public rotationType { + public: + rotation() { + } + virtual ~rotation() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; +}; + +#endif // DEFINE_H diff --git a/examples/extended/gdml/libgdml/schema/include/defineType.hh b/examples/extended/gdml/libgdml/schema/include/defineType.hh new file mode 100644 index 0000000000..13220e4263 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/defineType.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: defineType.hh,v 1.3 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef DEFINETYPE_H +#define DEFINETYPE_H 1 + +#include "ContentGroup.hh" + +#include +#include + +class defineType { + +public: + defineType() : m_choices( 0 ) { + } + + ~defineType() { + + //std::cout << "defineType desctructor called..." << std::endl; + + if( m_choices != 0 ) { + if( m_choices->size() > 0 ) { + for( unsigned int idx = 0; idx < m_choices->size(); idx++ ) { + if( (*m_choices)[idx] != 0 ) { + delete (*m_choices)[idx]; + } + } + delete m_choices; + m_choices = 0; + } + } + } + + void add_to_content( const std::string& tag, SAXObject* so ) { + ContentGroup::ContentItem ci = {tag,so}; + if( m_choices == 0 ) { + m_choices = new std::vector; + } + ContentChoice* choice = new ContentChoice; + choice->set_content( ci ); + m_choices->push_back( choice ); + } + + SAXObject* get_content( unsigned int idx ) const { + return( (m_choices->size()>0) ? (*m_choices)[idx] : 0 ); + } + + unsigned int size() { + unsigned int ret = 0; + if( m_choices != 0 ) { + ret = m_choices->size(); + } + return ret; + } + + const unsigned int size() const { + unsigned int ret = 0; + if( m_choices != 0 ) { + ret = m_choices->size(); + } + return ret; + } + +private: + // 0..* choice + std::vector* m_choices; +}; + + +#endif // DEFINETYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/element.hh b/examples/extended/gdml/libgdml/schema/include/element.hh new file mode 100644 index 0000000000..4a86dbff58 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/element.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: element.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ELEMENT_H +#define ELEMENT_H 1 + +#include "MaterialElementType.hh" + +class element : virtual public SAXObject, public MaterialElementType +{ +public: + element() { + } + virtual ~element() { + } + + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // ELEMENT_H diff --git a/examples/extended/gdml/libgdml/schema/include/fraction.hh b/examples/extended/gdml/libgdml/schema/include/fraction.hh new file mode 100644 index 0000000000..eb7f9dbd95 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/fraction.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. * +// ******************************************************************** +// +// +// $Id: fraction.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef FRACTION_H +#define FRACTION_H 1 + +#include "ReferenceType.hh" + +class fraction : virtual public SAXObject, public ReferenceType +{ +public: + fraction() { + } + virtual ~fraction() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_n() const { + return m_n; + } + void set_n( const std::string& n ) { + m_n = n; + } + +private: + // xs:double + std::string m_n; +}; + +#endif // FRACTION_H diff --git a/examples/extended/gdml/libgdml/schema/include/isotope.hh b/examples/extended/gdml/libgdml/schema/include/isotope.hh new file mode 100644 index 0000000000..8b9b8b78ca --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/isotope.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: isotope.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ISOTOPE_H +#define ISOTOPE_H 1 + +#include "MaterialIsotopeType.hh" + +class isotope : virtual public SAXObject, public MaterialIsotopeType +{ +public: + isotope() { + } + virtual ~isotope() { + } + + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // ISOTOPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/material.hh b/examples/extended/gdml/libgdml/schema/include/material.hh new file mode 100644 index 0000000000..f750dc0e62 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/material.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: material.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ELEMENT_H +#define ELEMENT_H 1 + +#include "MaterialMixtureType.hh" + +class material : virtual public SAXObject, public MaterialMixtureType +{ +public: + material() { + } + virtual ~material() { + } + + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // ELEMENT_H diff --git a/examples/extended/gdml/libgdml/schema/include/para.hh b/examples/extended/gdml/libgdml/schema/include/para.hh new file mode 100644 index 0000000000..2a11afe92e --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/para.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. * +// ******************************************************************** +// +// +// $Id: para.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef PARA_H +#define PARA_H 1 + +#include "SAXObject.hh" +#include "SolidType.hh" + +class para : public SAXObject, public SolidType { +public: + para() { + } + virtual ~para() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_x() const { + return m_x; + } + const std::string& get_y() const { + return m_y; + } + const std::string& get_z() const { + return m_z; + } + const std::string& get_alpha() const { + return m_alpha; + } + const std::string& get_theta() const { + return m_theta; + } + const std::string& get_phi() const { + return m_phi; + } + + void set_x( const std::string& x ) { + m_x = x; + } + void set_y( const std::string& y ) { + m_y = y; + } + void set_z( const std::string& z ) { + m_z = z; + } + void set_alpha( const std::string& alpha ) { + m_alpha = alpha; + } + void set_theta( const std::string& theta ) { + m_theta = theta; + } + void set_phi( const std::string& phi ) { + m_phi = phi; + } + +private: + std::string m_x; + std::string m_y; + std::string m_z; + std::string m_alpha; + std::string m_theta; + std::string m_phi; +}; + +#endif // PARA_H diff --git a/examples/extended/gdml/libgdml/schema/include/positionType.hh b/examples/extended/gdml/libgdml/schema/include/positionType.hh new file mode 100644 index 0000000000..151ef3dd02 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/positionType.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: positionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef POSITIONTYPE_H +#define POSITIONTYPE_H 1 + + +#include "IdentifiableQuantityVectorType.hh" + + +class positionType : public IdentifiableQuantityVectorType { +public: + positionType() { + set_unit( "mm" ); + set_type( "cartesian" ); + } + ~positionType() { + } +}; + + + +#endif // POSITIONTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/rotationType.hh b/examples/extended/gdml/libgdml/schema/include/rotationType.hh new file mode 100644 index 0000000000..95b3d40a6e --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/rotationType.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: rotationType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef ROTATIONTYPE_H +#define ROTATIONTYPE_H 1 + + +#include "IdentifiableQuantityVectorType.hh" + + +class rotationType : public IdentifiableQuantityVectorType { +public: + rotationType() { + set_unit( "radian" ); + set_type( "cartesian" ); + } + ~rotationType() { + } +}; + + + +#endif // ROTATIONTYPE_H diff --git a/examples/extended/gdml/libgdml/schema/include/setup.hh b/examples/extended/gdml/libgdml/schema/include/setup.hh new file mode 100644 index 0000000000..2d411af487 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/setup.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. * +// ******************************************************************** +// +// +// $Id: setup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SETUP_H +#define SETUP_H 1 + +#include "SAXObject.hh" +#include "ReferenceType.hh" + +class setup : virtual public SAXObject +{ +public: + class world : public SAXObject, public ReferenceType { + public: + world() { + } + virtual ~world() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + }; + +public: + setup() : m_match( false ) { + } + virtual ~setup() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const setup::world& get_world() const { + return m_world; + } + const std::string& get_name() const { + return m_ID; + } + const std::string& get_version() const { + return m_version; + } + bool get_match() const { + return m_match; + } + + void set_world( const setup::world& w ) { + m_world = w; + } + void set_name( const std::string& n ) { + m_ID = n; + } + void set_version( const std::string& v ) { + m_version = v; + } + void set_match( bool m ) { + m_match = m; + } + +private: + setup::world m_world; + std::string m_ID; + std::string m_version; + bool m_match; +}; + +#endif // SETUP_H diff --git a/examples/extended/gdml/libgdml/schema/include/sphere.hh b/examples/extended/gdml/libgdml/schema/include/sphere.hh new file mode 100644 index 0000000000..8866a449fc --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/sphere.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. * +// ******************************************************************** +// +// +// $Id: sphere.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef SPHERE_H +#define SPHERE_H 1 + +#include "SAXObject.hh" +#include "SolidType.hh" + +class sphere : public SAXObject, public SolidType { +public: + sphere() { + } + virtual ~sphere() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_rmin() const { + return m_rmin; + } + const std::string& get_rmax() const { + return m_rmax; + } + const std::string& get_startphi() const { + return m_startphi; + } + const std::string& get_deltaphi() const { + return m_deltaphi; + } + const std::string& get_starttheta() const { + return m_starttheta; + } + const std::string& get_deltatheta() const { + return m_deltatheta; + } + + void set_rmin( const std::string& rmin ) { + m_rmin = rmin; + } + void set_rmax( const std::string& rmax ) { + m_rmax = rmax; + } + void set_startphi( const std::string& startphi ) { + m_startphi = startphi; + } + void set_deltaphi( const std::string& deltaphi ) { + m_deltaphi = deltaphi; + } + void set_starttheta( const std::string& starttheta ) { + m_starttheta = starttheta; + } + void set_deltatheta( const std::string& deltatheta ) { + m_deltatheta = deltatheta; + } + +private: + std::string m_rmin; + std::string m_rmax; + std::string m_startphi; + std::string m_deltaphi; + std::string m_starttheta; + std::string m_deltatheta; +}; + + + +#endif // SPHERE_H diff --git a/examples/extended/gdml/libgdml/schema/include/trap.hh b/examples/extended/gdml/libgdml/schema/include/trap.hh new file mode 100644 index 0000000000..98aeaafb98 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/trap.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: trap.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef TRAP_H +#define TRAP_H 1 + +#include "SAXObject.hh" +#include "SolidType.hh" + +class trap : public SAXObject, public SolidType { +public: + trap() { + } + virtual ~trap() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_x1() const { + return m_x1; + } + const std::string& get_x2() const { + return m_x2; + } + const std::string& get_x3() const { + return m_x3; + } + const std::string& get_x4() const { + return m_x4; + } + const std::string& get_y1() const { + return m_y1; + } + const std::string& get_y2() const { + return m_y2; + } + const std::string& get_z() const { + return m_z; + } + const std::string& get_theta() const { + return m_theta; + } + const std::string& get_phi() const { + return m_phi; + } + const std::string& get_alpha1() const { + return m_theta; + } + const std::string& get_alpha2() const { + return m_alpha2; + } + + void set_x1( const std::string& x1 ) { + m_x1 = x1; + } + void set_x2( const std::string& x2 ) { + m_x2 = x2; + } + void set_x3( const std::string& x3 ) { + m_x3 = x3; + } + void set_x4( const std::string& x4 ) { + m_x4 = x4; + } + void set_y1( const std::string& y1 ) { + m_y1 = y1; + } + void set_y2( const std::string& y2 ) { + m_y2 = y2; + } + void set_z( const std::string& z ) { + m_z = z; + } + void set_theta( const std::string& theta ) { + m_theta = theta; + } + void set_phi( const std::string& phi ) { + m_phi = phi; + } + void set_alpha1( const std::string& alpha1 ) { + m_alpha1 = alpha1; + } + void set_alpha2( const std::string& alpha2 ) { + m_alpha2 = alpha2; + } + +private: + std::string m_x1; + std::string m_x2; + std::string m_x3; + std::string m_x4; + std::string m_y1; + std::string m_y2; + std::string m_z; + std::string m_theta; + std::string m_phi; + std::string m_alpha1; + std::string m_alpha2; +}; + +#endif // TRAP_H diff --git a/examples/extended/gdml/libgdml/schema/include/trd.hh b/examples/extended/gdml/libgdml/schema/include/trd.hh new file mode 100644 index 0000000000..63bf9106c9 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/trd.hh @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: trd.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef TRD_H +#define TRD_H 1 + +#include "SAXObject.hh" +#include "SolidType.hh" + +class trd : public SAXObject, public SolidType { +public: + trd() { + } + virtual ~trd() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_x1() const { + return m_x1; + } + const std::string& get_x2() const { + return m_x2; + } + const std::string& get_y1() const { + return m_y1; + } + const std::string& get_y2() const { + return m_y2; + } + const std::string& get_z() const { + return m_z; + } + + void set_x1( const std::string& x1 ) { + m_x1 = x1; + } + void set_x2( const std::string& x2 ) { + m_x2 = x2; + } + void set_y1( const std::string& y1 ) { + m_y1 = y1; + } + void set_y2( const std::string& y2 ) { + m_y2 = y2; + } + void set_z( const std::string& z ) { + m_z = z; + } + +private: + std::string m_x1; + std::string m_x2; + std::string m_y1; + std::string m_y2; + std::string m_z; +}; + +#endif // TRD_H diff --git a/examples/extended/gdml/libgdml/schema/include/tube.hh b/examples/extended/gdml/libgdml/schema/include/tube.hh new file mode 100644 index 0000000000..c86e8eb607 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/tube.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: tube.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef TUBE_H +#define TUBE_H 1 + +#include "SAXObject.hh" +#include "SolidType.hh" + +class tube : public SAXObject, public SolidType { +public: + tube() { + } + virtual ~tube() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } + + const std::string& get_rmin() const { + return m_rmin; + } + const std::string& get_rmax() const { + return m_rmax; + } + const std::string& get_z() const { + return m_z; + } + const std::string& get_startphi() const { + return m_startphi; + } + const std::string& get_deltaphi() const { + return m_deltaphi; + } + + void set_rmin( const std::string& rmin ) { + m_rmin = rmin; + } + void set_rmax( const std::string& rmax ) { + m_rmax = rmax; + } + void set_z( const std::string& z ) { + m_z = z; + } + void set_startphi( const std::string& startphi ) { + m_startphi = startphi; + } + void set_deltaphi( const std::string& deltaphi ) { + m_deltaphi = deltaphi; + } + +private: + std::string m_rmin; + std::string m_rmax; + std::string m_z; + std::string m_startphi; + std::string m_deltaphi; +}; + + +#endif // TUBE_H diff --git a/examples/extended/gdml/libgdml/schema/include/volume.hh b/examples/extended/gdml/libgdml/schema/include/volume.hh new file mode 100644 index 0000000000..3e4c23c38c --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/include/volume.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: volume.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef VOLUME_H +#define VOLUME_H 1 + +#include "SAXObject.hh" +#include "VolumeType.hh" + +class volume : public SAXObject, public VolumeType +{ +public: + volume() { + } + virtual ~volume() { + } + virtual SAXObject::Type type() { + return SAXObject::element; + } +}; + +#endif // VOLUME_H diff --git a/examples/extended/gdml/libgdml/schema/src/schema.cc b/examples/extended/gdml/libgdml/schema/src/schema.cc new file mode 100644 index 0000000000..ca47dc77d7 --- /dev/null +++ b/examples/extended/gdml/libgdml/schema/src/schema.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: schema.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// diff --git a/examples/extended/gdml/libgdml/subscribers/GNUmakefile b/examples/extended/gdml/libgdml/subscribers/GNUmakefile new file mode 100644 index 0000000000..734f29e5bc --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/GNUmakefile @@ -0,0 +1,17 @@ +# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for G4 GDML subscribers library. Radovan Chytracek, 30/05/2002. +# ---------------------------------------------------------------- + +name := GDMLsubscribers + +include ../libgdml.gmk + +CPPFLAGS += \ + -I$(G4INSTALL)/source/global/management/include \ + -I$(G4INSTALL)/source/global/HEPGeometry/include \ + -I$(G4INSTALL)/source/geometry/management/include \ + -I$(G4INSTALL)/source/geometry/solids/CSG/include \ + -I$(G4INSTALL)/source/geometry/solids/Boolean/include \ + -I$(G4INSTALL)/source/materials/include + diff --git a/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh b/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh new file mode 100644 index 0000000000..6d98dfa54f --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh @@ -0,0 +1,195 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: BooleanSolidTypeSubscriber.hh,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#ifndef BOOLEANSOLIDTYPESUBSCRIBER_H +#define BOOLEANSOLIDTYPESUBSCRIBER_H 1 + +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "BooleanSolidType.hh" + +#include "define.hh" + +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "G4Transform3D.hh" + +#include "G4VSolid.hh" + +#include + +class BooleanSolidTypeSubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + BooleanSolidTypeSubscriber() + : m_translation( 0 ), m_rotation( 0 ), m_first( 0 ), m_second( 0 ) { + } + + virtual ~BooleanSolidTypeSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "BOOLEAN SOLID SUBSCRIBER:: "; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + if( object != 0 ) { + try { + // Try the element type first + const BooleanSolidType* obj = dynamic_cast( object ); + + if( obj != 0 ) { + //std::cout << "GOT BOOLEAN SOLID " << obj->get_name() << std::endl; + + const ContentSequence* bseq = obj->get_content(); + size_t seqlen = bseq->size(); + + for( size_t idx = 0; idx < seqlen; idx++ ) { + // Loop over sequence of inner elements + if( bseq->content(idx).tag == "first" ) { + BooleanSolidType::first* s1 = dynamic_cast + ( bseq->content(idx).object ); + std::string s1name = s1->get_ref(); + m_first = const_cast( GDMLProcessor::GetInstance()->GetSolid( s1name ) ); + if( m_first == 0 ) { + // We're in trouble we can't create boolean solid + std::cerr << "BOOLEAN SOLID SUBSCRIBER:: solid " + << s1->get_ref() << " not found!" << std::endl; + std::cerr << "Boolean solid " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your solids or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } else if( bseq->content(idx).tag == "second" ) { + BooleanSolidType::second* s2 = dynamic_cast + ( bseq->content(idx).object ); + std::string s2name = s2->get_ref(); + m_second = const_cast( GDMLProcessor::GetInstance()->GetSolid( s2name ) ); + if( m_second == 0 ) { + // We're in trouble we can't create boolean solid + std::cerr << "BOOLEAN SOLID SUBSCRIBER:: solid " + << s2->get_ref() << " not found!" << std::endl; + std::cerr << "Boolean solid " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your solids or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } else if( bseq->content(idx).tag == "choice" ) { + // We apparently got either position or rotation or both + const ContentChoice* bschoice = dynamic_cast + ( bseq->content(idx).object ); + if( bschoice->content().tag == "position" ) { +// BooleanSolidType::position* p = dynamic_cast + define::position* p = dynamic_cast + ( bschoice->content().object ); +// std::cout << "GOT position " << p->get_name() << " = (" +// << p->get_x() << "," +// << p->get_y() << "," +// << p->get_z() << ")" +// << p->get_unit() << std::endl; + std::string + expr = p->get_x() + "*" + p->get_unit(); + double dx = calc->Eval( expr.c_str() ); + expr = p->get_y() + "*" + p->get_unit(); + double dy = calc->Eval( expr.c_str() ); + expr = p->get_z() + "*" + p->get_unit(); + double dz = calc->Eval( expr.c_str() ); + G4ThreeVector* posobj = new G4ThreeVector( dx, dy, dz ); + GDMLProcessor::GetInstance()->AddPosition( p->get_name(), posobj ); + m_translation = posobj; + } else if( bschoice->content().tag == "rotation" ) { +// BooleanSolidType::rotation* r = dynamic_cast + define::rotation* r = dynamic_cast + ( bschoice->content().object ); +// std::cout << "GOT rotation " << r->get_name() << " = " << "(" +// << r->get_x() << "," +// << r->get_y() << "," +// << r->get_z() << ")" +// << r->get_unit() << std::endl; + std::string + expr = r->get_x() + "*" + r->get_unit(); + double dx = calc->Eval( expr.c_str() ); + expr = r->get_y() + "*" + r->get_unit(); + double dy = calc->Eval( expr.c_str() ); + expr = r->get_z() + "*" + r->get_unit(); + double dz = calc->Eval( expr.c_str() ); + G4RotationMatrix* rotobj = new G4RotationMatrix; + rotobj->rotateX( dx ); + rotobj->rotateY( dy ); + rotobj->rotateZ( dz ); + GDMLProcessor::GetInstance()->AddRotation( r->get_name(), rotobj ); + m_rotation = rotobj; + } else if( bschoice->content().tag == "positionref" ) { + BooleanSolidType::positionref* p = dynamic_cast + ( bschoice->content().object ); + if( !p->get_ref().empty() ) { + m_translation = const_cast( GDMLProcessor::GetInstance()-> + GetPosition( p->get_ref() ) ); + } + } else if( bschoice->content().tag == "rotationref" ) { + BooleanSolidType::rotationref* r = dynamic_cast + ( bschoice->content().object ); + if( !r->get_ref().empty() ) { + m_rotation = const_cast( GDMLProcessor::GetInstance()-> + GetRotation( r->get_ref() ) ); + } + } + } + } + } + } catch(...) { + std::cerr << "MATERIAL SUBSCRIBER:: GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "MATERIAL SUBSCRIBER:: GOT ZERO DATA POINTER!" << std::endl; + } + } + +protected: + G4ThreeVector* m_translation; + G4RotationMatrix* m_rotation; + G4VSolid* m_first; + G4VSolid* m_second; +}; + +#endif // BOOLEANSOLIDTYPESUBSCRIBER_H diff --git a/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc b/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc new file mode 100644 index 0000000000..d5bed83617 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc @@ -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: LibLoadSubscribers.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXComponentFactory.hh" + +extern "C" { + + void GDMLSubscriberLibLoad() { + LOAD_COMPONENT(defineSubscriber) + LOAD_COMPONENT(isotopeSubscriber) + LOAD_COMPONENT(elementSubscriber) + LOAD_COMPONENT(materialSubscriber) + LOAD_COMPONENT(unionSubscriber) + LOAD_COMPONENT(subtractionSubscriber) + LOAD_COMPONENT(intersectionSubscriber) + LOAD_COMPONENT(boxSubscriber) + LOAD_COMPONENT(sphereSubscriber) + LOAD_COMPONENT(tubeSubscriber) + LOAD_COMPONENT(coneSubscriber) + LOAD_COMPONENT(paraSubscriber) + LOAD_COMPONENT(trdSubscriber) + LOAD_COMPONENT(trapSubscriber) + LOAD_COMPONENT(volumeSubscriber) + LOAD_COMPONENT(assemblySubscriber) + LOAD_COMPONENT(setupSubscriber) + } + +}; diff --git a/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc new file mode 100644 index 0000000000..e3b1dafe89 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc @@ -0,0 +1,167 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: assemblySubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "assembly.hh" +#include "child.hh" +#include "BooleanSolidType.hh" + +#include "G4Material.hh" + +#include "G4AssemblyVolume.hh" + +#include + +#include "g4std/strstream" + +class assemblySubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + assemblySubscriber() { + Subscribe( "assembly" ); + } + + virtual ~assemblySubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "ASSEMBLY VOLUME SUBSCRIBER:: " << std::endl; + + //GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + GDMLProcessor* processor = GDMLProcessor::GetInstance(); + + const assembly* obj = 0; + + if( object != 0 ) { + try { + obj = dynamic_cast( object ); + + if( obj != 0 ) { + //std::cout << "GOT ASSEMBLY VOLUME " << obj->get_name() << std::endl; + + // Let's analyze content model if volume + const ContentSequence* seq = obj->get_content(); + size_t count = seq->size(); + + G4AssemblyVolume* anew = new G4AssemblyVolume; + + for( size_t i = 0; i < count; i++ ) { + if( seq->content(i).tag == "child" ) { + // Analyze each child's content + child* c = dynamic_cast( seq->content(i).object ); + const ContentSequence* child_seq = c->get_content(); + size_t ccount = child_seq->size(); + SinglePlacementType::volumeref* vr = 0; + BooleanSolidType::positionref* pr = 0; + BooleanSolidType::rotationref* rr = 0; + G4AssemblyTriplet* ptrp = 0; + G4LogicalVolume* plog = 0; + G4ThreeVector* ppos = 0; + G4RotationMatrix* prot = 0; + for( size_t cidx = 0; cidx < ccount; cidx++ ) { + if( child_seq->content(cidx).tag == "volumeref" ) { + // Check & retrieve volume + vr = dynamic_cast + ( child_seq->content(cidx).object ); + plog = const_cast(processor->GetLogicalVolume( vr->get_ref())); + if( plog == 0 ) { + std::cerr << "ASSEMBLY VOLUME SUBSCRIBER:: child volume " + << vr->get_ref() << " not found!" << std::endl; + std::cerr << "Assembly volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your volumes or add the missing one..." << std::endl; + std::cerr << "\nNOTE! Assembly can't contain another assembly!\n" << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } else if( child_seq->content(cidx).tag == "positionref" ) { + // Check & retrieve position + pr = dynamic_cast + ( child_seq->content(cidx).object ); + ppos = const_cast( processor->GetPosition( pr->get_ref() ) ); + if( ppos == 0 ) { + std::cerr << "ASSEMBLY VOLUME SUBSCRIBER:: child's position " + << pr->get_ref() << " not found!" << std::endl; + std::cerr << "Assembly volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, check your position definitions or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } else if( child_seq->content(cidx).tag == "rotationref" ) { + // Check & retrieve rotation + rr = dynamic_cast + ( child_seq->content(cidx).object ); + prot = const_cast( processor->GetRotation( rr->get_ref() ) ); + if( prot == 0 ) { + std::cerr << "ASSEMBLY VOLUME SUBSCRIBER:: child's rotation " + << rr->get_ref() << " not found!" << std::endl; + std::cerr << "Assembly volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, check your rotation definitions or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + // At this point we should have everything ready to create assembly triplet + ptrp = new G4AssemblyTriplet( plog, *ppos, prot ); + anew->AddPlacedVolume( plog, *ppos, prot ); + } else { + // Should not happen + ; + } + } // end of for(;;) + processor->AddAssemblyVolume( obj->get_name(), anew ); + } else { + // Should not happen + ; + } + } + } + } catch(...) { + std::cerr << "ASSEMBLY VOLUME SUBSCRIBER:: GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "ASSEMBLY VOLUME SUBSCRIBER:: GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(assemblySubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc new file mode 100644 index 0000000000..14764f5344 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.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. * +// ******************************************************************** +// +// +// $Id: boxSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "box.hh" + +#include "G4VSolid.hh" +#include "G4Box.hh" + +#include + +class boxSubscriber : public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + boxSubscriber() { + Subscribe( "box" ); + } + virtual ~boxSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "BOX SUBSCRIBER:: "; + if( object != 0 ) { + try { + const box* obj = dynamic_cast( object ); + + //std::cout << "GOT BOX " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + const std::string& name = obj->get_name(); + std::string sval = obj->get_x(); + sval += "*"; + sval += obj->get_lunit(); + double dx = calc->Eval( sval ); dx = dx/2.; + sval = obj->get_y(); + sval += "*"; + sval += obj->get_lunit(); + double dy = calc->Eval( sval ); dy = dy/2.; + sval = obj->get_z(); + sval += "*"; + sval += obj->get_lunit(); + double dz = calc->Eval( sval ); dz = dz/2.; + + //std::cout << "x: " << obj->get_x() << obj->get_lunit() << " dx: " << dx << std::endl; + //std::cout << "y: " << obj->get_y() << obj->get_lunit() << " dy: " << dy << std::endl; + //std::cout << "z: " << obj->get_z() << obj->get_lunit() << " dx: " << dz << std::endl; + + G4VSolid* newobj = new G4Box( name, dx, dy, dz ); + + GDMLProcessor::GetInstance()->AddSolid( name, newobj ); + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(boxSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc new file mode 100644 index 0000000000..8053a50eb6 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: coneSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "cone.hh" + +#include "G4VSolid.hh" +#include "G4Cons.hh" + +#include + +class coneSubscriber : public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + coneSubscriber() { + Subscribe( "cone" ); + } + virtual ~coneSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "CONE SUBSCRIBER:: "; + if( object != 0 ) { + try { + const cone* obj = dynamic_cast( object ); + + //std::cout << "GOT CONE " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + std::string lunit = obj->get_lunit(); + std::string aunit = obj->get_aunit(); + const std::string& name = obj->get_name(); + + std::string sval = obj->get_rmin1(); + sval += "*"+lunit; + double rmin1 = calc->Eval( sval ); + sval = obj->get_rmin2(); + sval += "*"+lunit; + double rmin2 = calc->Eval( sval ); + sval = obj->get_rmax1(); + sval += "*"+lunit; + double rmax1 = calc->Eval( sval ); + sval = obj->get_rmax2(); + sval += "*"+lunit; + double rmax2 = calc->Eval( sval ); + sval = obj->get_z(); + sval += "*"+lunit; + double dz = calc->Eval( sval ); dz = dz/2.; + sval = obj->get_startphi(); + sval += "*"+aunit; + double startphi = calc->Eval( sval ); + sval = obj->get_deltaphi(); + sval += "*"+aunit; + double deltaphi = calc->Eval( sval ); + +// std::cout << "rmin1: " << obj->get_rmin1() << lunit +// << " rmin1: " << rmin1 << std::endl; +// std::cout << "rmin2: " << obj->get_rmin2() << lunit +// << " rmin2: " << rmin2 << std::endl; +// std::cout << "rmax1: " << obj->get_rmax1() << lunit +// << " rmax1: " << rmax1 << std::endl; +// std::cout << "rmax2: " << obj->get_rmax2() << lunit +// << " rmax2: " << rmax2 << std::endl; +// std::cout << "z: " << obj->get_z() << lunit +// << " dz: " << dz << std::endl; +// std::cout << "startphi: " << obj->get_startphi() << aunit +// << " startphi: " << startphi << std::endl; +// std::cout << "deltaphi: " << obj->get_deltaphi() << aunit +// << " deltaphi: " << deltaphi << std::endl; + + G4VSolid* newobj = new G4Cons( name, rmin1, rmax1, rmin2, rmax2, dz, startphi, deltaphi ); + + GDMLProcessor::GetInstance()->AddSolid( name, newobj ); + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(coneSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc b/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc new file mode 100644 index 0000000000..0acd7dafa4 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.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: defineSubcriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "define.hh" + +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" + +#include + +class defineSubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + defineSubscriber() { + Subscribe( "define" ); + } + + virtual ~defineSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "define SUBSCRIBER:: " << std::endl; + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + const define* define_element = 0; + if( object != 0 ) { + try { + define_element = dynamic_cast(object); + + if( define_element->size() > 0 ) { + // There is something defined in there + unsigned int num = define_element->size(); + // Now let's traverse the define's structure + for( unsigned int idx = 0; idx < num; idx++ ) { + if( define_element->get_content(idx)->type() == SAXObject::contentGroup ) { + // Fine that's what's expected here + ContentChoice* choice = dynamic_cast(define_element->get_content(idx)); + ContentGroup::ContentItem item = choice->content(); + if( item.tag == "constant" ) { + define::constant* c = dynamic_cast(item.object); + //std::cout << "GOT constant " << c->get_name() << " = " << c->get_value() << std::endl; + calc->RegisterConstant( c ); + } else if( item.tag == "quantity" ) { + define::quantity* q = dynamic_cast(item.object); + //std::cout << "GOT quantity " << q->get_name() << " = " << q->get_value() << q->get_unit() << std::endl; + calc->RegisterPhysConstant( q ); + } else if( item.tag == "expression" ) { + define::expression* e = dynamic_cast(item.object); + calc->RegisterExpression( e ); + //std::cout << "GOT expression " << e->get_name() + // << " = " << e->get_text() + // << std::endl; + } else if( item.tag == "position" ) { + define::position* p = dynamic_cast(item.object); + //std::cout << "GOT position " << p->get_name() << " = (" + // << p->get_x() << "," + // << p->get_y() << "," + // << p->get_z() << ")" + // << p->get_unit() << std::endl; + std::string + expr = p->get_x() + "*" + p->get_unit(); + double dx = calc->Eval( expr.c_str() ); + expr = p->get_y() + "*" + p->get_unit(); + double dy = calc->Eval( expr.c_str() ); + expr = p->get_z() + "*" + p->get_unit(); + double dz = calc->Eval( expr.c_str() ); + G4ThreeVector* posobj = new G4ThreeVector( dx, dy, dz ); + GDMLProcessor::GetInstance()->AddPosition( p->get_name(), posobj ); + } else if( item.tag == "rotation" ) { + define::rotation* r = dynamic_cast(item.object); + //std::cout << "GOT rotation " << r->get_name() << " = " << "(" + // << r->get_x() << "," + // << r->get_y() << "," + // << r->get_z() << ")" + // << r->get_unit() << std::endl; + std::string + expr = r->get_x() + "*" + r->get_unit(); + double dx = calc->Eval( expr.c_str() ); + expr = r->get_y() + "*" + r->get_unit(); + double dy = calc->Eval( expr.c_str() ); + expr = r->get_z() + "*" + r->get_unit(); + double dz = calc->Eval( expr.c_str() ); + G4RotationMatrix* rotobj = new G4RotationMatrix; + rotobj->rotateX( dx ); + rotobj->rotateY( dy ); + rotobj->rotateZ( dz ); + GDMLProcessor::GetInstance()->AddRotation( r->get_name(), rotobj ); +// HepTransform3D* result = new HepRotateX3D(dx); +// *result = *result * HepRotateY3D(dy); +// *result = *result * HepRotateZ3D(dz); +// G4RotationMatrix rm4 = result->getRotation(); +// std::cout << "GOT rotation " << "rm4" << " = " << "(" +// << rm4.getPhi() << "," +// << rm4.getTheta() << "," +// << rm4.getPsi() << ")" +// << r->get_unit() << std::endl; + } else { + // Problem, nothing else can appear in define element + std::cerr << "define SUBSCRIBER:: Incorrect content model found!\a" << std::endl; + } + } else if( define_element->get_content(idx)->type() == SAXObject::element ) { + // Whoops, this should not happen as the only content of define element is 0 or more choices + std::cerr << "define SUBSCRIBER:: Incorrect content model found!\a" << std::endl; + } + } + } + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + delete object; + } + } +}; + +DECLARE_SUBSCRIBER_FACTORY(defineSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc new file mode 100644 index 0000000000..eec343c9ff --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc @@ -0,0 +1,136 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: elementSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "element.hh" +#include "fraction.hh" + +#include "G4Element.hh" + +#include + +class elementSubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + elementSubscriber() { + Subscribe( "element" ); + } + + virtual ~elementSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "ELEMENT SUBSCRIBER:: " << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + const element* obj = 0; + + if( object != 0 ) { + try { + // Try the element type first + obj = dynamic_cast(object); + + if( obj != 0 ) { + //std::cout << "GOT ELEMENT " << obj->get_name() << std::endl; + + double z = 0.0; + double a = 0.0; + std::string f; + + // We need to check the emptyness as the Z and formula attributes are optional + f = obj->get_Z(); + if( !f.empty() ) { + z = calc->Eval( f ); + } + f = obj->get_formula(); + if( f.empty() ) { + f=obj->get_name(); + } + + // Now let's inspect the content model + const ContentGroup* cg = dynamic_cast( obj->get_AtomOrFraction() ); + if( cg->content_type() == ContentGroup::choice ) { + // We've got a choice, actually atom should be in + const ContentChoice* choice = dynamic_cast( cg ); + ContentGroup::ContentItem ci = choice->content(); + atom* ae = dynamic_cast( ci.object ); + std::string sA = ae->get_value(); + sA += "*"; + sA += ae->get_unit(); + a = calc->Eval( sA ); + //std::cout << "Z: " << z << " " << z << std::endl; + //std::cout << "A: " << sA << " " << a/g/mole << std::endl; + G4Element* enew = new G4Element( obj->get_name(), f, z, a ); + std::cout << *enew << std::endl; + } else { + // Must be the sequence of fractions + const ContentSequence* seq = dynamic_cast( cg ); + size_t icount = seq->size(); + + G4Element* enew = new G4Element( obj->get_name(), f, icount ); + for( unsigned int i = 0; i < icount; i++ ) { + fraction* fi = dynamic_cast( seq->content( i ).object ); + double ifrac = calc->Eval( fi->get_n().c_str() ); + enew->AddIsotope( G4Isotope::GetIsotope(fi->get_ref()), ifrac ); + } + std::cout << *enew << std::endl; + } + + } else { + // We're notified about one of our children + // We've chosen content model based processing model here, so do nothing here + ; + } + } catch(...) { + std::cerr << "ELEMENT SUBSCRIBER:: GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "ELEMENT SUBSCRIBER:: GOT ZERO DATA POINTER!" << std::endl; + } + delete obj; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(elementSubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc new file mode 100644 index 0000000000..2007d27690 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.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: intersectionSubscriber.cc,v 1.3 2002/06/05 11:54:33 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "BooleanSolidTypeSubscriber.hh" + +#include "boolean_intersection.hh" + +#include "G4IntersectionSolid.hh" + +class intersectionSubscriber : public BooleanSolidTypeSubscriber +{ +public: + intersectionSubscriber() { + Subscribe( "intersection" ); + } + virtual ~intersectionSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + + const boolean_intersection* bi = dynamic_cast( object ); + + // First, let the base class extract the data + BooleanSolidTypeSubscriber::Activate( object ); + + // At this moment both constituent solids are ready + // Let's check whether we need to apply any transformations + G4VSolid* solid_intersection = 0; + bool useTransform = false; + G4ThreeVector translat; + G4RotationMatrix transrot; + + if( m_translation != 0 ) { + translat = *m_translation; + useTransform = true; + } + + if( m_rotation != 0 ) { + transrot = *m_rotation; + useTransform = true; + } + + if( useTransform ) { + G4Transform3D transform( transrot, translat ); + solid_intersection = new G4IntersectionSolid( bi->get_name(), m_first, m_second, transform ); + } else { + solid_intersection = new G4IntersectionSolid( bi->get_name(), m_first, m_second ); + } + + GDMLProcessor::GetInstance()->AddSolid( bi->get_name(), solid_intersection ); + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(intersectionSubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc new file mode 100644 index 0000000000..1f302be1be --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.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. * +// ******************************************************************** +// +// +// $Id: isotopeSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "isotope.hh" + +#include "G4Isotope.hh" + +#include + +class isotopeSubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const + { + return this; + } + +public: + isotopeSubscriber() { + Subscribe( "isotope" ); + } + + virtual ~isotopeSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "ISOTOPE SUBSCRIBER:: " << std::endl; + + const isotope* obj = 0; + + if( object != 0 ) { + try { + obj = dynamic_cast(object); + + if( obj != 0 ) { + //std::cout << "GOT ISOTOPE " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + // The big moment, we're gonna create an isotope + double z = calc->Eval( obj->get_Z() ); + double n = calc->Eval( obj->get_N() ); + std::string sA = obj->get_atom().get_value(); + sA += "*"; + sA += obj->get_atom().get_unit(); + double a = calc->Eval( sA ); + //std::cout << "Z: " << obj->get_Z() << " " << z << std::endl; + //std::cout << "N: " << obj->get_N() << " " << n << std::endl; + //std::cout << "A: " << sA << " " << a/g/mole << std::endl; + G4Isotope* inew = new G4Isotope( obj->get_name(), z, n, a ); + std::cout << *inew << std::endl; + } + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete obj; + } + +private: + double m_z; + double m_n; + double m_a; + // Geant4 does not require material properties to be specified for isotopes +}; + +DECLARE_SUBSCRIBER_FACTORY(isotopeSubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc new file mode 100644 index 0000000000..e1bab3264d --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.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: materialSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "material.hh" +#include "composite.hh" +#include "fraction.hh" + +#include "G4Material.hh" + +#include + +class materialSubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + materialSubscriber() { + Subscribe( "material" ); + } + + virtual ~materialSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "MATERIAL SUBSCRIBER:: " << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + const material* obj = 0; + + if( object != 0 ) { + try { + // Try the element type first + obj = dynamic_cast(object); + + if( obj != 0 ) { + //std::cout << "GOT MATERIAL " << obj->get_name() << std::endl; + + double z = 0.0; + double a = 0.0; + double d = 0.0; + double t = STP_Temperature; + double p = STP_Pressure; + G4State s = kStateUndefined; + std::string f, str; + + // We need to check the emptyness as the Z and formula attributes are optional + str = obj->get_Z(); + if( !str.empty() ) { + z = calc->Eval( str ); + } + + // enum G4State { kStateUndefined, kStateSolid, kStateLiquid, kStateGas }; + str = obj->get_state(); + if( str == "gas" ) + s = kStateGas; + else if( str == "liquid" ) + s = kStateLiquid; + else if( str == "solid" ) + s = kStateSolid; + else { + // Can't happen + ; + } + //std::cout << "State: " << s << " " << str << std::endl; + + f = obj->get_formula(); + if( f.empty() ) { + f=obj->get_name(); + } + //std::cout << "Formula: " << f << std::endl; + + // Retrieve density + const ContentChoice* dchoice = dynamic_cast( obj->get_DorDref() ); + if( dchoice->content().tag == "D" ) { + // Inlined definition of density + D* density = dynamic_cast( dchoice->content().object ); + str = density->get_value(); + str += "*"; + str += density->get_unit(); + d = calc->Eval( str ); + } else { + // Reference to already defined density quantity + Dref* dref = dynamic_cast( dchoice->content().object ); + str = dref->get_ref(); + d = calc->Eval( str ); + } + //std::cout << "D: " << d/(g/cm3) << "[g/cm3]" << std::endl; + + // Retrieve temperature if any + const SAXObject* tso = obj->get_TorTref(); + if( tso != 0 ) { + const ContentChoice* tchoice = dynamic_cast( tso ); + if( tchoice->content().tag == "T" ) { + // Inlined definition of density + T* temperature = dynamic_cast( tchoice->content().object ); + str = temperature->get_value(); + str += "*"; + str += temperature->get_unit(); + t = calc->Eval( str ); + } else { + // Reference to already defined density quantity + Tref* tref = dynamic_cast( tchoice->content().object ); + str = tref->get_ref(); + t = calc->Eval( str ); + } + //std::cout << "T: " << t/(kelvin) << "[kelvin]" << std::endl; + } + + // Retrieve pressure if any + const SAXObject* pso = obj->get_PorPref(); + if( pso != 0 ) { + const ContentChoice* pchoice = dynamic_cast( pso ); + if( pchoice->content().tag == "P" ) { + // Inlined definition of density + P* pressure = dynamic_cast( pchoice->content().object ); + str = pressure->get_value(); + str += "*"; + str += pressure->get_unit(); + p = calc->Eval( str ); + } else { + // Reference to already defined density quantity + Pref* pref = dynamic_cast( pchoice->content().object ); + str = pref->get_ref(); + p = calc->Eval( str ); + } + //std::cout << "P: " << p/(atmosphere) << "[atmosphere]" << std::endl; + } + + std::string tag; + size_t count = 0; + + const ContentChoice* cc = obj->get_choice(); + if( cc->content().object->type() == SAXObject::element ) { + // Must be an atom + tag = cc->content().tag; + atom* am = dynamic_cast( cc->content().object ); + std::string sA = am->get_value(); + sA += "*"; + sA += am->get_unit(); + a = calc->Eval( sA ); +// std::cout << "Simple definition by atom" << std::endl; +// std::cout << "Z: " << z << std::endl; +// std::cout << "A: " << a/(g/mole) << "[g/mole]" << std::endl; + G4Material* mnew = new G4Material( obj->get_name(), z, a, d, s, t, p ); + std::cout << *mnew << std::endl; + } else { + // Must be a sequence of composites or fractions + //std::cout << "Complex definition by "; + const ContentSequence* cseq = dynamic_cast( cc->content().object ); + count = cseq->size(); + std::string tag = cseq->content( 0 ).tag; + if( tag == "composite" ) { + // Composition by atoms of elements + //std::cout << count << " composites" << std::endl; + G4Material* mnew = new G4Material( obj->get_name(), d, count, s, t, p ); + for( unsigned int i = 0; i < count; i++ ) { + composite* ci = dynamic_cast( cseq->content( i ).object ); + int natom = (int)calc->Eval( ci->get_n().c_str() ); + // Find the material + G4Element* etoadd = 0; + if( (etoadd = G4Element::GetElement( ci->get_ref())) != 0 ) { + mnew->AddElement( etoadd, natom ); + } else { + std::cerr << "MATERIAL SUBSCRIBER:: element " + << ci->get_ref() << " not found!" << std::endl; + std::cerr << "Material " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your materials or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } + std::cout << *mnew << std::endl; + } else { + // Composition by fraction of mass + //std::cout << count << " fractions" << std::endl; + G4Material* mnew = new G4Material( obj->get_name(), d, count, s, t, p ); + for( unsigned int i = 0; i < count; i++ ) { + fraction* fi = dynamic_cast( cseq->content( i ).object ); + double frac = calc->Eval( fi->get_n().c_str() ); + // Find the material + G4Material* mtoadd = 0; + G4Element* etoadd = 0; + if( (mtoadd = G4Material::GetMaterial( fi->get_ref())) != 0 ) { + mnew->AddMaterial( mtoadd, frac ); + } else if( (etoadd = G4Element::GetElement( fi->get_ref())) != 0 ) { + mnew->AddElement( etoadd, frac ); + } else { + std::cerr << "MATERIAL SUBSCRIBER:: material or element " + << fi->get_ref() << " not found!" << std::endl; + std::cerr << "Material " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your materials or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } + std::cout << *mnew << std::endl; + } + } + } else { + // We're notified about one of our children + // We've chosen content model based processing model here, so do nothing here + ; + } + } catch(...) { + std::cerr << "MATERIAL SUBSCRIBER:: GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "MATERIAL SUBSCRIBER:: GOT ZERO DATA POINTER!" << std::endl; + } + delete obj; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(materialSubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc new file mode 100644 index 0000000000..a54d31d0eb --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.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: paraSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "para.hh" + +#include "G4VSolid.hh" +#include "G4Para.hh" + +#include + +class paraSubscriber : public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + paraSubscriber() { + Subscribe( "para" ); + } + virtual ~paraSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "PARA SUBSCRIBER:: "; + if( object != 0 ) { + try { + const para* obj = dynamic_cast( object ); + + //std::cout << "GOT PARA " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + const std::string& name = obj->get_name(); + std::string lunit = obj->get_lunit(); + std::string aunit = obj->get_aunit(); + + std::string sval = obj->get_x(); + sval += "*"+lunit; + double dx = calc->Eval( sval ); dx = dx/2.; + sval = obj->get_y(); + sval += "*"+lunit; + double dy = calc->Eval( sval ); dy = dy/2.; + sval = obj->get_z(); + sval += "*"+lunit; + double dz = calc->Eval( sval ); dz = dz/2.; + sval = obj->get_alpha(); + sval += "*"+aunit; + double dalpha = calc->Eval( sval ); + sval = obj->get_theta(); + sval += "*"+aunit; + double dtheta = calc->Eval( sval ); + sval = obj->get_phi(); + sval += "*"+aunit; + double dphi = calc->Eval( sval ); + +// std::cout << "x: " << obj->get_x() << lunit << " dx: " << dx << std::endl; +// std::cout << "y: " << obj->get_y() << lunit << " dy: " << dy << std::endl; +// std::cout << "z: " << obj->get_z() << lunit << " dx: " << dz << std::endl; +// std::cout << "alpha: " << obj->get_alpha() << aunit << " dalpha: " << dalpha << std::endl; +// std::cout << "theta: " << obj->get_theta() << aunit << " dtheta: " << dtheta << std::endl; +// std::cout << "phi: " << obj->get_phi() << aunit << " dphi: " << dphi << std::endl; + + G4VSolid* newobj = new G4Para( name, dx, dy, dz, dalpha, dtheta, dphi); + + GDMLProcessor::GetInstance()->AddSolid( name, newobj ); + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(paraSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc new file mode 100644 index 0000000000..141fb6538a --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc @@ -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: setupSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "setup.hh" + +#include + +class setupSubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const + { + return this; + } + +public: + setupSubscriber() { + Subscribe( "setup" ); + } + + virtual ~setupSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) + { + //std::cout << "SETUP SUBSCRIBER:: " << std::endl; + + const setup* obj = 0; + + if( object != 0 ) + { + try { + obj = dynamic_cast(object); + if( obj != 0 ) { + //std::cout << "GOT SETUP " << obj->get_name() + // << " version " << obj->get_version() << std::endl; + + if( obj->get_match() ) { + // The selected setup has been found + // Check & retrieve world volume + setup::world w = obj->get_world(); + G4LogicalVolume* wlv = const_cast + (GDMLProcessor::GetInstance()-> + GetLogicalVolume(w.get_ref())); + if( wlv == 0 ) { + std::cerr << "VOLUME SUBSCRIBER:: world volume " + << w.get_ref() << " not found!" << std::endl; + std::cerr << "World volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your volumes or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + G4VPhysicalVolume* wpv = new G4PVPlacement( 0, G4ThreeVector(), + wlv, wlv->GetName(), + 0, false, 0 ); + GDMLProcessor::GetInstance()->SetWorldVolume( wpv ); + } + } + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete obj; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(setupSubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc new file mode 100644 index 0000000000..a7353e33e9 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.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: sphereSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "sphere.hh" + +#include "G4VSolid.hh" +#include "G4Sphere.hh" + +#include + +class sphereSubscriber : public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + sphereSubscriber() { + Subscribe( "sphere" ); + } + virtual ~sphereSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "SPHERE SUBSCRIBER:: "; + if( object != 0 ) { + try { + const sphere* obj = dynamic_cast( object ); + + //std::cout << "GOT SPHERE " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + std::string lunit = obj->get_lunit(); + std::string aunit = obj->get_aunit(); + const std::string& name = obj->get_name(); + + std::string sval = obj->get_rmin(); + sval += "*"+lunit; + double rmin = calc->Eval( sval ); + sval = obj->get_rmax(); + sval += "*"+lunit; + double rmax = calc->Eval( sval ); + sval = obj->get_startphi(); + sval += "*"+aunit; + double startphi = calc->Eval( sval ); + sval = obj->get_deltaphi(); + sval += "*"+aunit; + double deltaphi = calc->Eval( sval ); + sval = obj->get_starttheta(); + sval += "*"+aunit; + double starttheta = calc->Eval( sval ); + sval = obj->get_deltatheta(); + sval += "*"+aunit; + double deltatheta = calc->Eval( sval ); + +// std::cout << "rmin: " << obj->get_rmin() << lunit +// << " rmin: " << rmin << std::endl; +// std::cout << "rmax: " << obj->get_rmax() << lunit +// << " rmax: " << rmax << std::endl; +// std::cout << "startphi: " << obj->get_startphi() << aunit +// << " startphi: " << startphi << std::endl; +// std::cout << "deltaphi: " << obj->get_deltaphi() << aunit +// << " deltaphi: " << deltaphi << std::endl; +// std::cout << "starttheta: " << obj->get_starttheta() << aunit +// << " starttheta: " << starttheta << std::endl; +// std::cout << "deltatheta: " << obj->get_deltatheta() << aunit +// << " deltatheta: " << deltatheta << std::endl; + + G4VSolid* newobj = new G4Sphere( name, rmin, rmax, + startphi, deltaphi, + starttheta, deltatheta); + + + GDMLProcessor::GetInstance()->AddSolid( name, newobj ); + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(sphereSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc new file mode 100644 index 0000000000..0d1c6ecebc --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.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: subtractionSubscriber.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "BooleanSolidTypeSubscriber.hh" + +#include "boolean_subtraction.hh" + +#include "G4SubtractionSolid.hh" + +class subtractionSubscriber : public BooleanSolidTypeSubscriber +{ +public: + subtractionSubscriber() { + Subscribe( "subtraction" ); + } + virtual ~subtractionSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + + const boolean_subtraction* bs = dynamic_cast( object ); + + // First, let the base class extract the data + BooleanSolidTypeSubscriber::Activate( object ); + + // At this moment both constituent solids are ready + // Let's check whether we need to apply any transformations + G4VSolid* solid_subtraction = 0; + bool useTransform = false; + G4ThreeVector translat; + G4RotationMatrix transrot; + + if( m_translation != 0 ) { + translat = *m_translation; + useTransform = true; + } + + if( m_rotation != 0 ) { + transrot = *m_rotation; + useTransform = true; + } + + if( useTransform ) { + G4Transform3D transform( transrot, translat ); + solid_subtraction = new G4SubtractionSolid( bs->get_name(), m_first, m_second, transform ); + } else { + solid_subtraction = new G4SubtractionSolid( bs->get_name(), m_first, m_second ); + } + + GDMLProcessor::GetInstance()->AddSolid( bs->get_name(), solid_subtraction ); + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(subtractionSubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc new file mode 100644 index 0000000000..adb5cb3d6b --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.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: trapSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "trap.hh" + +#include "G4VSolid.hh" +#include "G4Trap.hh" + +#include + +class trapSubscriber : public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + trapSubscriber() { + Subscribe( "trap" ); + } + virtual ~trapSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "GENERAL TRAPEZOID SUBSCRIBER:: "; + if( object != 0 ) { + try { + const trap* obj = dynamic_cast( object ); + + //std::cout << "GOT GENERAL TRAPEZOID " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + const std::string& name = obj->get_name(); + std::string lunit = obj->get_lunit(); + std::string aunit = obj->get_aunit(); + + std::string sval = obj->get_x1(); + sval += "*"+lunit; + double dx1 = calc->Eval( sval ); dx1 = dx1/2.; + sval = obj->get_x2(); + sval += "*"+lunit; + double dx2 = calc->Eval( sval ); dx2 = dx2/2.; + sval = obj->get_x3(); + sval += "*"+lunit; + double dx3 = calc->Eval( sval ); dx3 = dx3/2.; + sval = obj->get_x4(); + sval += "*"+lunit; + double dx4 = calc->Eval( sval ); dx4 = dx4/2.; + sval = obj->get_y1(); + sval += "*"+lunit; + double dy1 = calc->Eval( sval ); dy1 = dy1/2.; + sval = obj->get_y2(); + sval += "*"+lunit; + double dy2 = calc->Eval( sval ); dy2 = dy2/2.; + sval = obj->get_z(); + sval += "*"+lunit; + double dz = calc->Eval( sval ); dz = dz/2.; + + sval = obj->get_theta(); + sval += "*"+aunit; + double dtheta = calc->Eval( sval ); + sval = obj->get_phi(); + sval += "*"+aunit; + double dphi = calc->Eval( sval ); + sval = obj->get_alpha1(); + sval += "*"+aunit; + double dalpha1 = calc->Eval( sval ); + sval = obj->get_alpha1(); + sval += "*"+aunit; + double dalpha2 = calc->Eval( sval ); + +// std::cout << "x1: " << obj->get_x1() << lunit << " dx1: " << dx1 << std::endl; +// std::cout << "x2: " << obj->get_x2() << lunit << " dx2: " << dx2 << std::endl; +// std::cout << "x3: " << obj->get_x3() << lunit << " dx3: " << dx3 << std::endl; +// std::cout << "x4: " << obj->get_x4() << lunit << " dx4: " << dx4 << std::endl; +// std::cout << "y1: " << obj->get_y1() << lunit << " dy1: " << dy1 << std::endl; +// std::cout << "y2: " << obj->get_y2() << lunit << " dy2: " << dy2 << std::endl; +// std::cout << "z: " << obj->get_z() << lunit << " dz: " << dz << std::endl; +// std::cout << "theta: " << obj->get_theta() << lunit << " dtheta: " << dtheta << std::endl; +// std::cout << "phi: " << obj->get_phi() << aunit << " dphi: " << dphi << std::endl; +// std::cout << "alpha1: " << obj->get_alpha1() << aunit << " dalpha1: " << dalpha1 << std::endl; +// std::cout << "alpha1: " << obj->get_alpha2() << aunit << " dalpha2: " << dalpha2 << std::endl; + + G4VSolid* newobj = new G4Trap( name, dz, dtheta, dphi, dy1, dx1, dx2, dalpha1, + dy2, dx3, dx4, dalpha2); + + GDMLProcessor::GetInstance()->AddSolid( name, newobj ); + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(trapSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc new file mode 100644 index 0000000000..7b871d6af8 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.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: trdSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "trd.hh" + +#include "G4VSolid.hh" +#include "G4Trd.hh" + +#include + +class trdSubscriber : public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + trdSubscriber() { + Subscribe( "trd" ); + } + virtual ~trdSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "TRAPEZOID SUBSCRIBER:: "; + if( object != 0 ) { + try { + const trd* obj = dynamic_cast( object ); + + //std::cout << "GOT TRAPEZOID " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + const std::string& name = obj->get_name(); + std::string lunit = obj->get_lunit(); + + std::string sval = obj->get_x1(); + sval += "*"+lunit; + double dx1 = calc->Eval( sval ); dx1 = dx1/2.; + sval = obj->get_y1(); + sval += "*"+lunit; + double dy1 = calc->Eval( sval ); dy1 = dy1/2.; + sval = obj->get_x2(); + sval += "*"+lunit; + double dx2 = calc->Eval( sval ); dx2 = dx2/2.; + sval = obj->get_y2(); + sval += "*"+lunit; + double dy2 = calc->Eval( sval ); dy2 = dy2/2.; + sval = obj->get_z(); + sval += "*"+lunit; + double dz = calc->Eval( sval ); dz = dz/2.; + +// std::cout << "x1: " << obj->get_x1() << lunit << " dx1: " << dx1 << std::endl; +// std::cout << "y1: " << obj->get_y1() << lunit << " dy1: " << dy1 << std::endl; +// std::cout << "x2: " << obj->get_x2() << lunit << " dx2: " << dx2 << std::endl; +// std::cout << "y2: " << obj->get_y2() << lunit << " dy2: " << dy2 << std::endl; +// std::cout << "z: " << obj->get_z() << lunit << " dx: " << dz << std::endl; + + G4VSolid* newobj = new G4Trd( name, dx1, dx2, dy1, dy2, dz); + + GDMLProcessor::GetInstance()->AddSolid( name, newobj ); + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(trdSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc b/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc new file mode 100644 index 0000000000..1d05a99623 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: tubeSusbcriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "tube.hh" + +#include "G4VSolid.hh" +#include "G4Tubs.hh" + +#include + +class tubeSubscriber : public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + tubeSubscriber() { + Subscribe( "tube" ); + } + virtual ~tubeSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "TUBE SUBSCRIBER:: "; + if( object != 0 ) { + try { + const tube* obj = dynamic_cast( object ); + + //std::cout << "GOT TUBE " << obj->get_name() << std::endl; + + GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + + std::string lunit = obj->get_lunit(); + std::string aunit = obj->get_aunit(); + const std::string& name = obj->get_name(); + + std::string sval = obj->get_rmin(); + sval += "*"+lunit; + double rmin = calc->Eval( sval ); + sval = obj->get_rmax(); + sval += "*"+lunit; + double rmax = calc->Eval( sval ); + sval = obj->get_z(); + sval += "*"+lunit; + double dz = calc->Eval( sval ); dz = dz/2.; + sval = obj->get_startphi(); + sval += "*"+aunit; + double startphi = calc->Eval( sval ); + sval = obj->get_deltaphi(); + sval += "*"+aunit; + double deltaphi = calc->Eval( sval ); + +// std::cout << "rmin: " << obj->get_rmin() << lunit +// << " rmin: " << rmin << std::endl; +// std::cout << "rmax: " << obj->get_rmax() << lunit +// << " rmax: " << rmax << std::endl; +// std::cout << "z: " << obj->get_z() << lunit +// << " dz: " << dz << std::endl; +// std::cout << "startphi: " << obj->get_startphi() << aunit +// << " startphi: " << startphi << std::endl; +// std::cout << "deltaphi: " << obj->get_deltaphi() << aunit +// << " deltaphi: " << deltaphi << std::endl; + + G4VSolid* newobj = new G4Tubs( name, rmin, rmax, dz, startphi, deltaphi ); + + GDMLProcessor::GetInstance()->AddSolid( name, newobj ); + } catch(...) { + std::cerr << "GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(tubeSubscriber) + diff --git a/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc new file mode 100644 index 0000000000..55e6b96a90 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.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: unionSubscriber.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "BooleanSolidTypeSubscriber.hh" + +#include "boolean_union.hh" + +#include "G4UnionSolid.hh" + +class unionSubscriber : public BooleanSolidTypeSubscriber +{ +public: + unionSubscriber() { + Subscribe( "union" ); + } + virtual ~unionSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + + const boolean_union* bu = dynamic_cast( object ); + + // First, let the base class extract the data + BooleanSolidTypeSubscriber::Activate( object ); + + // At this moment both constituent solids are ready + // Let's check whether we need to apply any transformations + G4VSolid* solid_union = 0; + bool useTransform = false; + G4ThreeVector translat; + G4RotationMatrix transrot; + + if( m_translation != 0 ) { + translat = *m_translation; + useTransform = true; + } + + if( m_rotation != 0 ) { + transrot = *m_rotation; + useTransform = true; + } + + if( useTransform ) { + G4Transform3D transform( transrot, translat ); + solid_union = new G4UnionSolid( bu->get_name(), m_first, m_second, transform ); + } else { + solid_union = new G4UnionSolid( bu->get_name(), m_first, m_second ); + } + + GDMLProcessor::GetInstance()->AddSolid( bu->get_name(), solid_union ); + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(unionSubscriber) diff --git a/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc new file mode 100644 index 0000000000..c454375a23 --- /dev/null +++ b/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.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: volumeSubscriber.cc,v 1.3 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// +#include "SAXSubscriber.hh" +#include "SAXComponentFactory.hh" + +#include "GDMLProcessor.hh" +#include "GDMLExpressionEvaluator.hh" + +#include "volume.hh" +#include "child.hh" +#include "BooleanSolidType.hh" + +#include "G4Material.hh" + +#include "G4AssemblyVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" + +#include + +#include "g4std/strstream" + +class volumeSubscriber : virtual public SAXSubscriber +{ +public: + virtual const SAXComponentObject* Build() const { + return this; + } + +public: + volumeSubscriber() { + Subscribe( "volume" ); + } + + virtual ~volumeSubscriber() { + } + + // The activation callback invoked by SAXProcessor whenever it has + // a new object created from XML and a corresponding subcriber exists + virtual void Activate( const SAXObject* object ) { + //std::cout << "VOLUME SUBSCRIBER:: " << std::endl; + + //GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); + GDMLProcessor* processor = GDMLProcessor::GetInstance(); + + const volume* obj = 0; + + if( object != 0 ) { + try { + obj = dynamic_cast( object ); + + if( obj != 0 ) { + //std::cout << "GOT VOLUME " << obj->get_name() << std::endl; + + // Let's analyze content model if volume + const ContentSequence* seq = obj->get_content(); + size_t count = seq->size(); + + G4Material* vmaterial = 0; + G4VSolid* vsolid = 0; + G4PVPlacement* vchild = 0; + G4LogicalVolume* vnew = 0; + + for( size_t i = 0; i < count; i++ ) { + if( seq->content(i).tag == "materialref" ) { + // Check & retrieve material + VolumeType::materialref* mref = dynamic_cast + ( seq->content(i).object ); + if( (vmaterial = G4Material::GetMaterial( mref->get_ref())) == 0 ) { + std::cerr << "VOLUME SUBSCRIBER:: material " + << mref->get_ref() << " not found!" << std::endl; + std::cerr << "Volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your materials or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } else if( seq->content(i).tag == "solidref" ) { + // Check & retrieve solid + VolumeType::solidref* sref = dynamic_cast + ( seq->content(i).object ); + vsolid = const_cast( processor->GetSolid( sref->get_ref()) ); + if( vsolid == 0 ) { + std::cerr << "VOLUME SUBSCRIBER:: solid " + << sref->get_ref() << " not found!" << std::endl; + std::cerr << "Volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your solids or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + // At this point we should have material & solid so we can create log. volume + vnew = new G4LogicalVolume( vsolid, vmaterial, obj->get_name() ); + GDMLProcessor::GetInstance()->AddLogicalVolume( obj->get_name(), vnew ); + } else if( seq->content(i).tag == "child" ) { + // Analyze each child's content + child* c = dynamic_cast( seq->content(i).object ); + const ContentSequence* child_seq = c->get_content(); + size_t ccount = child_seq->size(); + SinglePlacementType::volumeref* vr = 0; + BooleanSolidType::positionref* pr = 0; + BooleanSolidType::rotationref* rr = 0; + G4LogicalVolume* plog = 0; + G4AssemblyVolume* alog = 0; + G4ThreeVector* ppos = 0; + G4RotationMatrix* prot = 0; + bool doAssemblyInprint = false; + for( size_t cidx = 0; cidx < ccount; cidx++ ) { + if( child_seq->content(cidx).tag == "volumeref" ) { + // Check & retrieve volume + vr = dynamic_cast + ( child_seq->content(cidx).object ); + plog = const_cast + (processor->GetLogicalVolume( vr->get_ref())); + if( plog == 0 ) { + // Let's check if an assembly request was ment + alog = const_cast + (processor->GetAssemblyVolume( vr->get_ref())); + if( alog == 0 ) { + std::cerr << "VOLUME SUBSCRIBER:: child volume " + << vr->get_ref() << " not found!" << std::endl; + std::cerr << "Volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, re-order your volumes or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + doAssemblyInprint = true; + } + } else if( child_seq->content(cidx).tag == "positionref" ) { + // Check & retrieve position + pr = dynamic_cast + ( child_seq->content(cidx).object ); + ppos = const_cast + ( processor->GetPosition( pr->get_ref() ) ); + if( ppos == 0 ) { + std::cerr << "VOLUME SUBSCRIBER:: child's position " + << pr->get_ref() << " not found!" << std::endl; + std::cerr << "Volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, check your position definitions or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + } else if( child_seq->content(cidx).tag == "rotationref" ) { + // Check & retrieve rotation + rr = dynamic_cast + ( child_seq->content(cidx).object ); + prot = const_cast + ( processor->GetRotation( rr->get_ref() ) ); + if( prot == 0 ) { + std::cerr << "VOLUME SUBSCRIBER:: child's rotation " + << rr->get_ref() << " not found!" << std::endl; + std::cerr << "Volume " << obj->get_name() << " can't be created!" << std::endl; + std::cerr << "Please, check your rotation definitions or add the missing one..." + << std::endl; + G4Exception( "Shutting-down due to error(s) in GDML input..." ); + } + // At this point we should have everything ready to create a child + if( doAssemblyInprint ) { + alog->MakeImprint( plog, *ppos, prot ); + } else { + std::strstream pvname; + pvname << "pv_" << vr->get_ref() << "_" << (cidx-2) << std::ends; + vchild = new G4PVPlacement( prot, *ppos, plog, pvname.str(), + vnew, false, cidx-2 ); + processor->AddPhysicalVolume( pvname.str(), vchild ); + } + } else { + // Should not happen + ; + } + } + } else { + // Should not happen + ; + } + } + } + } catch(...) { + std::cerr << "VOLUME SUBSCRIBER:: GOT INTO BAD_CAST TROUBLE!" << std::endl; + } + } else { + std::cerr << "VOLUME SUBSCRIBER:: GOT ZERO DATA POINTER!" << std::endl; + } + delete object; + } +}; + +DECLARE_SUBSCRIBER_FACTORY(volumeSubscriber) diff --git a/examples/extended/gdml/sample/GNUmakefile b/examples/extended/gdml/sample/GNUmakefile new file mode 100644 index 0000000000..9fb5edf49b --- /dev/null +++ b/examples/extended/gdml/sample/GNUmakefile @@ -0,0 +1,52 @@ +# $Id: GNUmakefile,v 1.3 2002/06/11 15:48:17 radoone Exp $ +# -------------------------------------------------------------- +# GNUmakefile for GDML sample module. Radovan Chytracek, 30/05/2002. +# -------------------------------------------------------------- + +name := gogdml +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +GDMLINSTALL := $(G4INSTALL)/examples/extended/gdml +GDMLLIBROOT := $(GDMLINSTALL)/libgdml + +CPPFLAGS += \ + -I$(GDMLINSTALL)/libgdml/saxana/include \ + -I$(GDMLINSTALL)/libgdml/schema/include \ + -I$(GDMLINSTALL)/libgdml/management/include \ + -I$(GDMLINSTALL)/libgdml/processes/include \ + -I$(GDMLINSTALL)/libgdml/subscribers/include \ + -I$(XERCESCROOT)/include + +EXTRALIBS += \ + -lGDMLsaxana \ + -lGDMLmanagement \ + -lGDMLschema \ + -lGDMLprocesses \ + -lGDMLsubscribers \ + -L $(XERCESCROOT)/lib -lxerces-c + +EXTRALIBSSOURCEDIRS += \ + $(GDMLLIBROOT)/saxana \ + $(GDMLLIBROOT)/schema \ + $(GDMLLIBROOT)/processes \ + $(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 + + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/gdml/sample/gogdml.cc b/examples/extended/gdml/sample/gogdml.cc new file mode 100644 index 0000000000..5501e5da54 --- /dev/null +++ b/examples/extended/gdml/sample/gogdml.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: gogdml.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- + +#include "G4RunManager.hh" +#include "G4UImanager.hh" + +#include "gogdmlDetectorConstruction.hh" +#include "gogdmlPhysicsList.hh" +#include "gogdmlPrimaryGeneratorAction.hh" + +int main() +{ + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + + // set mandatory initialization classes + runManager->SetUserInitialization(new gogdmlDetectorConstruction); + runManager->SetUserInitialization(new gogdmlPhysicsList); + + // set mandatory user action class + runManager->SetUserAction(new gogdmlPrimaryGeneratorAction); + + // Initialize G4 kernel + runManager->Initialize(); + + // get the pointer to the UI manager and set verbosities + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/run/verbose 2"); + UI->ApplyCommand("/event/verbose 2"); + UI->ApplyCommand("/tracking/verbose 2"); + + // start a run + int numberOfEvent = 3; + runManager->BeamOn(numberOfEvent); + + // job termination + delete runManager; + return 0; +} + + diff --git a/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh b/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh new file mode 100644 index 0000000000..165c944b52 --- /dev/null +++ b/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.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: gogdmlDetectorConstruction.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- +// + +#ifndef gogdmlDetectorConstruction_H +#define gogdmlDetectorConstruction_H 1 + +class G4VPhysicalVolume; + +#include "G4VUserDetectorConstruction.hh" + +#include "SAXProcessor.hh" +#include "ProcessingConfigurator.hh" + +class gogdmlDetectorConstruction : public G4VUserDetectorConstruction +{ + public: + gogdmlDetectorConstruction(); + ~gogdmlDetectorConstruction(); + + public: + G4VPhysicalVolume* Construct(); + + private: + SAXProcessor sxp; + ProcessingConfigurator config; + G4VPhysicalVolume* fWorld; +}; + +#endif + diff --git a/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh b/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh new file mode 100644 index 0000000000..c8a74ee578 --- /dev/null +++ b/examples/extended/gdml/sample/include/gogdmlPhysicsList.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. * +// ******************************************************************** +// +// +// $Id: gogdmlPhysicsList.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// +// gogdmlPhysicsList +// Construct/define particles and physics processes +// +// Particle defined in ExampleN01 +// geantino +// +// Process defined in ExampleN01 +// transportation +// -------------------------------------------------------------- +// + +#ifndef gogdmlPhysicsList_h +#define gogdmlPhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +class gogdmlPhysicsList: public G4VUserPhysicsList +{ + public: + gogdmlPhysicsList(); + ~gogdmlPhysicsList(); + + protected: + // Construct particle and physics process + void ConstructParticle(); + void ConstructProcess(); + void SetCuts(); + +}; + +#endif + + + + + + + diff --git a/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh b/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh new file mode 100644 index 0000000000..e5c36b32f2 --- /dev/null +++ b/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.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: gogdmlPrimaryGeneratorAction.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- + +#ifndef gogdmlPrimaryGeneratorAction_h +#define gogdmlPrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class gogdmlPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + gogdmlPrimaryGeneratorAction(); + ~gogdmlPrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif + + diff --git a/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc b/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc new file mode 100644 index 0000000000..c9f25eaba5 --- /dev/null +++ b/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.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: gogdmlDetectorConstruction.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- + +#include "gogdmlDetectorConstruction.hh" + +#include "GDMLProcessor.hh" + +// Added here just to help resolve properly dependencies +#include "G4BooleanSolid.hh" +#include "G4CSGSolid.hh" + +gogdmlDetectorConstruction::gogdmlDetectorConstruction() +{ + sxp.Initialize(); + config.SetURI( "test.gdml" ); + config.SetSetupName( "Test1" ); + sxp.Configure( &config ); +} + +gogdmlDetectorConstruction::~gogdmlDetectorConstruction() +{ + sxp.Finalize(); +} + +G4VPhysicalVolume* gogdmlDetectorConstruction::Construct() +{ + sxp.Run(); + + fWorld = (G4VPhysicalVolume *)GDMLProcessor::GetInstance()->GetWorldVolume(); + + if( fWorld == 0 ) { + G4Exception( + "World volume not set properly check your setup selection criteria or GDML input!" + ); + } + + return fWorld; +} + diff --git a/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc b/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc new file mode 100644 index 0000000000..3ae4e90b50 --- /dev/null +++ b/examples/extended/gdml/sample/src/gogdmlPhysicsList.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: gogdmlPhysicsList.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- + +#include "gogdmlPhysicsList.hh" +#include "G4ParticleTypes.hh" + + +gogdmlPhysicsList::gogdmlPhysicsList() +{;} + +gogdmlPhysicsList::~gogdmlPhysicsList() +{;} + +void gogdmlPhysicsList::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. + + G4Geantino::GeantinoDefinition(); +} + +void gogdmlPhysicsList::ConstructProcess() +{ + // Define transportation process + + AddTransportation(); +} + +void gogdmlPhysicsList::SetCuts() +{ + // uppress error messages even in case e/gamma/proton do not exist + G4int temp = GetVerboseLevel(); SetVerboseLevel(0); + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + SetCutsWithDefault(); + + // Retrieve verbose level + SetVerboseLevel(temp); +} + diff --git a/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc b/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc new file mode 100644 index 0000000000..8a69a2a166 --- /dev/null +++ b/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.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: gogdmlPrimaryGeneratorAction.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "gogdmlPrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4UImanager.hh" +#include "globals.hh" + +gogdmlPrimaryGeneratorAction::gogdmlPrimaryGeneratorAction() +{ + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/gun/particle geantino"); + UI->ApplyCommand("/gun/energy 1.0 GeV"); + UI->ApplyCommand("/gun/position -2.0 0.0 0.0 cm"); +} + +gogdmlPrimaryGeneratorAction::~gogdmlPrimaryGeneratorAction() +{ + delete particleGun; +} + +void gogdmlPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + G4UImanager* UI = G4UImanager::GetUIpointer(); + G4int i = anEvent->GetEventID() % 3; + switch(i) + { + case 0: + UI->ApplyCommand("/gun/direction 1.0 0.0 0.0"); + break; + case 1: + UI->ApplyCommand("/gun/direction 1.0 0.1 0.0"); + break; + case 2: + UI->ApplyCommand("/gun/direction 1.0 0.0 0.1"); + break; + } + + particleGun->GeneratePrimaryVertex(anEvent); +} + + diff --git a/examples/extended/gdml/sample/test.gdml b/examples/extended/gdml/sample/test.gdml new file mode 100644 index 0000000000..d1e38fbaec --- /dev/null +++ b/examples/extended/gdml/sample/test.gdml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/extended/gdml/schema/gdml_1.0.xsd b/examples/extended/gdml/schema/gdml_1.0.xsd new file mode 100644 index 0000000000..f10f70b1c3 --- /dev/null +++ b/examples/extended/gdml/schema/gdml_1.0.xsd @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + Represents a top of a geometrical sub-hierarchy not placed in space + None of its children can coincide with its boundary defined by an associated solid + Two different placements of the same logical volume represent two different geometrical + hierarchies in space + + + + + + + + + + + + + + + + + + + Allows to create a group of volumes bound together without a boundary + All the volumes exits inside the same virtual reference system of the assmebly volume + they belong to + When assembly volume is placed all its children follow the global transformation applied + to their assembly volume + After the assembly volume is placed its children exist as standalone placements in space + independent of each other + + + + + + + + + + + + + + + Represents a single unique copy a of an associated logical volume + in geometrical hierarchy + + + + + + + + + + + + + Definitions of a geometrical hierarchy of a set of volumes + + + + + + + + + + + + + + + + + + + + + + + Geometry setup representing the particular geometry hierarchy by refferring to + a given volume which becomes the top level volume + + + + + + + + A reference to the previously defined volume + in the structure block chosen by this setup + World volumme can't be an assembly volume + + + + + + + + + + + + + diff --git a/examples/extended/gdml/schema/gdml_simple_core.xsd b/examples/extended/gdml/schema/gdml_simple_core.xsd new file mode 100644 index 0000000000..30375adfef --- /dev/null +++ b/examples/extended/gdml/schema/gdml_simple_core.xsd @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + An anonymous, local scope, value + + + + + + + + + Named (referenced), global scope, constant value + + + + + + + + + + + + + An anonymous quantity, local scope, with a unit, + (possibly of a given type) quantity + + + + + + + + + + + + + + + Named (referenced), global scope,(possibly of a given type) quantity + + + + + + + + + + + + + An anonymous, 3 dimensional, local scope, vector of doubles + + + + + + + + + + + Named (referenced), 3 dimensional, global scope, vector of doubles + + + + + + + + + + + + + An anonymous, 3 dimensional, local scope, with a unit, + (possibly of a given type) quantity vector + + + + + + + + + + + + + + + Named (referenced), 3 dimensional, global scope, with a unit, + (possibly of a given type) quantity vector + + + + + + + + + + + + + Local reference to an element of a named type + + + + + + + + + List of local references to a set of element of a named type + + + + + + diff --git a/examples/extended/gdml/schema/gdml_simple_define.xsd b/examples/extended/gdml/schema/gdml_simple_define.xsd new file mode 100644 index 0000000000..5e5d83cede --- /dev/null +++ b/examples/extended/gdml/schema/gdml_simple_define.xsd @@ -0,0 +1,93 @@ + + + + + + + + Definition block of global named constants, quantitties, expressions, + positions and rotations which may be used by name or + by a reference in scope of the current document + + + + + + + + The global complex type is defined in order to reuse this defintion + in derived schemas + + + + + + + + Named constant + + + + + + Named quantity + + + + + + + Named expression, may contain other named constants, + quantities and expressions + + + + + + + + Named cartesian position, default unit mm + + + + + + + + Named cartesian rotation, default unit radian + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/extended/gdml/schema/gdml_simple_materials.xsd b/examples/extended/gdml/schema/gdml_simple_materials.xsd new file mode 100644 index 0000000000..02dad0ae3a --- /dev/null +++ b/examples/extended/gdml/schema/gdml_simple_materials.xsd @@ -0,0 +1,428 @@ + + + + + + + + + + + Atomic mass, quantity type A, default unit g/mole + + + + + + + + + + + + + Density + + + + + + + + + + + + General material properties + + + + + + + Radiation length + + + + + + + + + + + + + + + A reference to a previsouly defined named radiation length quantity value + + + + + + + + Absorption length + + + + + + + + + + + + + + A reference to a previsouly defined named absorption length quantity value + + + + + + + + Temperature + + + + + + + + + + + + + + A reference to previously defined named temperature quantity value + + + + + + + + Pressure + + + + + + + + + + + + + + A reference to previously defined named pressure quantity value + + + + + + + + + + + General material attributes + + + + + Material name + + + + + Material chemical formula + + + + + + Material physical state + + + + + + + + + + + + + + + + + Base type for materials + + + + + + + + + + + + + + Materials description + + + + + + + Material related definitons of constants and quantities + In this version of schema these become visible in global scope + + + + + + An isotope + + + + + + A simple element or an element compoased of isotopes + + + + + + + A composite or a mixture complex material + + + + + + + + + + Exported isotope type + + + + + + + + + Density quantity value + + + + + + + A reference to a previsouly defined named density quantity value + + + + + + + + + Number of nucleons + + + + + Atomic number + + + + + + + + + Exported material element type + + + + + + + + + Density quantity value + + + + + + + A reference to a previsouly defined named density quantity value + + + + + + + + An element can be defined either as a simple element or by a set + of isotopes fractions + + + + + + + An isotope fraction of an element where n is the actual amount + of the isotope in the element + + + + + + + + + + + + + + + Number of nucleons + + + + + Atomic number + + + + + + + + + + Exported material composite or mixture type + + + + + + + + + + + Density quantity value + + + + + + + A reference to a previsouly defined named density quantity value + + + + + + + + A complex material can be defined as a simple mixture when + its material properties are known or as a composite material + or a mixture. A composite material is defined by a set of elements + by specifying the number of atoms. + The second way is by a set of material fractions where the fractions + can be either simple elements or other complex materials. + The restriction is that one can't mix composition by atoms and fractions + at the same time. + + + + + + + Elements of this composite material specified as a set of local references + to already defined simple elements where value of n in each means the number of atoms + + + + + + + + + + + + + + Fractions of this mixture specified as a set of local references to already defined + elements or other mixtures where value of n in each means the fraction of the whole + material in the range 0.0 < n < 1.0 + + + + + + + + + + + + + + + Atomic number + + + + + + + diff --git a/examples/extended/gdml/schema/gdml_simple_solids.xsd b/examples/extended/gdml/schema/gdml_simple_solids.xsd new file mode 100644 index 0000000000..21bab3a8b0 --- /dev/null +++ b/examples/extended/gdml/schema/gdml_simple_solids.xsd @@ -0,0 +1,302 @@ + + + + + + + + + + Base solid type + + + + + + Length unit of all dimensions used for this instance of solid + + + + + + + Angle unit of angles used in definition of this solid + + + + + + + + + + Base type for boolean solids + + + + + + + + + + + + + + + + + + + + + + + + + + Abstract element for all solids substitution group + + + + + + + + Solids definitions block + + + + + + + + Definitions of constants and expressions to be used for solids' + dimensions and transformations + In this version these become part of the global scope. + + + + + + + + + + + + Exported boolean union of two solids + + + + + + + + Exported boolean subtraction of two solids + + + + + + + + Exported boolean intersectioin of two solids + + + + + + + + CSG box solid described by 3 dimensions of x, y, and z + + + + + + + + + + + + + + + + CSG sphere or spherical shell segment solid described by + rmin inner radius + rmax outer radius + startphi starting angle of the segment in radians(0 <= phi <= 2*PI) + deltaphi delta angle of the segment in radians + starttheta starting angle of the segment in radians(0 <= theta <= PI) + deltatheta delta angle of the segment in radians + + + + + + + + + + + + + + + + + + + CSG tube or tube segement solid described by + rmin Inner radius + rmax Outer radius + z length in z + startphi The starting phi angle in radians, adjusted such that + (startphi+deltaphi <= 2PI, startphi > -2PI) + deltaphi Delta angle of the segment in radians + + + + + + + + + + + + + + + + + + CSG cone or cone segment described by + rmin1 inside radius at z/2 + rmin2 inside radius at z/2 + rmax1 outside radius at z/2 + rmax2 outside radius at z/2 + z length in z + startphi starting angle of the segment in radians + deltaphi delta angle of the segment in radians + + + + + + + + + + + + + + + + + + + + CSG parallelepiped solid is described by + x, y, z 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 -y and +y + theta Polar angle of the line joining the centres of the faces at -z and +z in z + phi Azimuthal angle of the line joining the centres of the faces at -z and +z in z + + + + + + + + + + + + + + + + + + + CSG trapezoid solid with varying x and y dimensions along z axis + x1 Length along x at the surface positioned at -z + x2 Length along x at the surface positioned at +z + y1 Length along y at the surface positioned at -z + y2 Length along y at the surface positioned at +z + z Length along z axis + + + + + + + + + + + + + + + + + + CSG general trapezoid solid is described by + z Length along the z-axis + theta Polar angle of the line joining the centres of the faces at -/+z + phi Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z + y1 Length along y of the face at -z + x1 Length along x of the side at y = -y1 of the face at -z + x2 Length along x of the side at y = +y1 of the face at -z + alp1 Angle with respect to the y axis from the centre of the side at y =- y1 to the centre at y = +y1 of the face at -z + y2 Length along y of the face at +z + x3 Length along x of the side at y = -y2 of the face at +z + x4 Length along x of the side at y = +y2 of the face at +z + alp2 Angle with respect to the y axis from the centre of the side at y = -y2 to the centre at y = +y2 of the face at +z + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/extended/geometry/README b/examples/extended/geometry/README new file mode 100644 index 0000000000..0ecbee1b20 --- /dev/null +++ b/examples/extended/geometry/README @@ -0,0 +1,17 @@ + + Geometry tools + -------------- + +This directory includes tools and examples for the geometry setup. + +OLAP +---- +Debugging tool for overlapping geometries. +See notes included in the package for details on how to use it, known +limitations and defined commands. + +CAD +--- +Example of importing geometries described by CAD systems through AP203 +compliant STEP files. + diff --git a/examples/extended/geometry/cad/GNUmakefile b/examples/extended/geometry/cad/GNUmakefile new file mode 100644 index 0000000000..33f57befee --- /dev/null +++ b/examples/extended/geometry/cad/GNUmakefile @@ -0,0 +1,30 @@ +# $Id: GNUmakefile,v 1.2 2002/06/20 10:01:40 gcosmo Exp $ +# -------------------------------------------------------------- +# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. +# -------------------------------------------------------------- + +name := cadex +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +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))) + ansi_options = -Wall -ansi -pedantic + NCXX = $(filter-out $(ansi_options),$(CXXFLAGS)) + NCPP = $(CPPFLAGS) + CXXFLAGS := $(NCXX) + CPPFLAGS := $(NCPP) -w +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/geometry/cad/History b/examples/extended/geometry/cad/History new file mode 100644 index 0000000000..969b85eb12 --- /dev/null +++ b/examples/extended/geometry/cad/History @@ -0,0 +1,20 @@ +$Id: History,v 1.1 2002/06/20 10:00:53 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + 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 27, 98 G.Cosmo +- Created. + diff --git a/examples/extended/geometry/cad/README b/examples/extended/geometry/cad/README new file mode 100644 index 0000000000..67101e64a7 --- /dev/null +++ b/examples/extended/geometry/cad/README @@ -0,0 +1,25 @@ +$Id: README,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + CAD STEP interface example + -------------------------- + +This is an example using particle tracking in STEP CAD-models through +AP203 compliant STEP descriptions. The model can be changed by invoking +the UI command "/mydet/SelectDetector ", where + is the name of the STEP file .stp which +describes the detector geometry. +Due to limitations of the NIST STEP reader, a correct behavior can be +assured only for non-ISO/ANSI setup for the supported compilers as +specified in the notes for the SCL-3.2 package. Therefore, the GNUmakefile +in this example has been modified to force non-ISO/ANSI compilation on +Linux platforms. +AP203 STEP files showing errors in the reading process, can be formatted +using the PERL scripts provided in the "scripts" directory; most patterns +will be corrected. If errors are still observed, please inform us so that +the scripts can be enhanced. + diff --git a/examples/extended/geometry/cad/cadex.cc b/examples/extended/geometry/cad/cadex.cc new file mode 100644 index 0000000000..71805e8104 --- /dev/null +++ b/examples/extended/geometry/cad/cadex.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. * +// ******************************************************************** +// +// $Id: cadex.cc,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#include "CadDetectorConstruction.hh" +#include "CadRunAction.hh" +#include "CadPrimaryGeneratorAction.hh" +#include "CadPhysicsList.hh" + +#ifdef G4VIS_USE + #include "CadVisManager.hh" +#endif + +#include "G4RunManager.hh" +#include "G4UImanager.hh" + +#if defined(G4UI_USE_XM) + #include "G4UIXm.hh" +#elif defined(G4UI_USE_XAW) + #include "G4UIXaw.hh" +#else + #include "G4UIterminal.hh" +#endif + +int main(int argc, char** argv) +{ + // Set the default random engine to RanecuEngine + RanecuEngine defaultEngine; + HepRandom::setTheEngine(&defaultEngine); + + // Run manager + G4RunManager * runManager = new G4RunManager; + + // UserInitialization classes + runManager->SetUserInitialization(new CadDetectorConstruction); + runManager->SetUserInitialization(new CadPhysicsList); + + // Visualization manager + #if defined(G4VIS_USE) + G4VisManager* visManager = new CadVisManager; + visManager->Initialize(); + #endif + + // UserAction classes + runManager->SetUserAction(new CadRunAction); + runManager->SetUserAction(new CadPrimaryGeneratorAction); + + // User interactions + // Define (G)UI GAG for interactive mode + if(argc==1) + { + // G4UIterminal is a (dumb) terminal + #if defined(G4UI_USE_XM) + G4UIsession * session = new G4UIXm(argc,argv); + #elif defined(G4UI_USE_XAW) + G4UIsession * session = new G4UIXaw(argc,argv); + #else + G4UIsession * session = new G4UIterminal; + #endif + session->SessionStart(); + delete session; + } + else + // Batch mode + { + G4UImanager * UI = G4UImanager::GetUIpointer(); + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + + // Job termination + #if defined(G4VIS_USE) + delete visManager; + #endif + delete runManager; + + return 0; +} diff --git a/examples/extended/geometry/cad/cadex.in b/examples/extended/geometry/cad/cadex.in new file mode 100644 index 0000000000..b58b1ba064 --- /dev/null +++ b/examples/extended/geometry/cad/cadex.in @@ -0,0 +1,15 @@ +/mydet/SelectDetector rod_place_asm +/tracking/verbose 1 +# +# Initialize GEANT4 +# +/run/initialize +# +# Run 3 events +# +/run/beamOn 3 +# +# Termination +# +exit + diff --git a/examples/extended/geometry/cad/include/CadDetectorConstruction.hh b/examples/extended/geometry/cad/include/CadDetectorConstruction.hh new file mode 100644 index 0000000000..1596704a8c --- /dev/null +++ b/examples/extended/geometry/cad/include/CadDetectorConstruction.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: CadDetectorConstruction.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#ifndef CadDetectorConstruction_h +#define CadDetectorConstruction_h 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" + +class CadDetectorMessenger; + +class CadDetectorConstruction : public G4VUserDetectorConstruction +{ +public: + CadDetectorConstruction(); + ~CadDetectorConstruction(); + +public: + G4VPhysicalVolume* Construct(); + void SelectDetector(G4String val); + +private: + G4double expHall_x; + G4double expHall_y; + G4double expHall_z; + + G4double calBox_x; + G4double calBox_y; + G4double calBox_z; + G4double rotAngle; + G4double calPos; + + G4double trackerRadius; + G4double trackerHight; + G4double trackerPos; + + G4int detectorChoice; + CadDetectorMessenger* detectorMessenger; +}; + +#endif + diff --git a/examples/extended/geometry/cad/include/CadDetectorMessenger.hh b/examples/extended/geometry/cad/include/CadDetectorMessenger.hh new file mode 100644 index 0000000000..4df69f04b3 --- /dev/null +++ b/examples/extended/geometry/cad/include/CadDetectorMessenger.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: CadDetectorMessenger.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#ifndef CadDetectorMessenger_h +#define CadDetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class CadDetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; + +class CadDetectorMessenger: public G4UImessenger +{ + public: + CadDetectorMessenger(CadDetectorConstruction * myDC); + void SetNewValue(G4UIcommand * command,G4String newValues); + private: + CadDetectorConstruction * myDetector; + G4UIdirectory * mydetDir; + G4UIcmdWithAString * selDetCmd; + G4UIcmdWithAString * switchCmd; + G4UIcmdWithAString * selMatCmd; + +}; + +#endif + diff --git a/examples/extended/geometry/cad/include/CadPhysicsList.hh b/examples/extended/geometry/cad/include/CadPhysicsList.hh new file mode 100644 index 0000000000..37cd935e9a --- /dev/null +++ b/examples/extended/geometry/cad/include/CadPhysicsList.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: CadPhysicsList.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#ifndef CadPhysicsList_h +#define CadPhysicsList_h 1 + +#include "globals.hh" +#include "G4VUserPhysicsList.hh" + +class CadPhysicsList: public G4VUserPhysicsList +{ + public: + CadPhysicsList(); + virtual ~CadPhysicsList(); + + protected: + // Construct particle and physics + 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(); + +}; + +#endif + + + diff --git a/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh b/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh new file mode 100644 index 0000000000..77c720f615 --- /dev/null +++ b/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.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: CadPrimaryGeneratorAction.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#ifndef CadPrimaryGeneratorAction_h +#define CadPrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Event; + +class CadPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + CadPrimaryGeneratorAction(); + ~CadPrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4ParticleGun* particleGun; +}; + +#endif + + diff --git a/examples/extended/geometry/cad/include/CadRunAction.hh b/examples/extended/geometry/cad/include/CadRunAction.hh new file mode 100644 index 0000000000..725050b1cc --- /dev/null +++ b/examples/extended/geometry/cad/include/CadRunAction.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: CadRunAction.hh,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#ifndef CadRunAction_h +#define CadRunAction_h 1 + +#include "globals.hh" +#include "G4UserRunAction.hh" + +class G4Timer; +class G4Run; + +class CadRunAction : public G4UserRunAction +{ + public: + CadRunAction(); + virtual ~CadRunAction(); + + public: + virtual void BeginOfRunAction(const G4Run* aRun); + virtual void EndOfRunAction(const G4Run* aRun); + + private: + G4Timer* timer; +}; + +#endif diff --git a/examples/extended/geometry/cad/include/CadVisManager.hh b/examples/extended/geometry/cad/include/CadVisManager.hh new file mode 100644 index 0000000000..c559857dd1 --- /dev/null +++ b/examples/extended/geometry/cad/include/CadVisManager.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: CadVisManager.hh,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// -------------------------------------------------------------------- + +#ifndef CadVisManager_h +#define CadVisManager_h 1 + +#ifdef G4VIS_USE + +#include "G4VisManager.hh" + +// -------------------------------------------------------------------- + +class CadVisManager : public G4VisManager +{ + public: + + CadVisManager (); + + private: + + void RegisterGraphicsSystems (); +}; + +#endif + +#endif diff --git a/config/g4sort_step_file.pl b/examples/extended/geometry/cad/scripts/g4sort_step_file.pl similarity index 98% rename from config/g4sort_step_file.pl rename to examples/extended/geometry/cad/scripts/g4sort_step_file.pl index d3447e9e3b..3f583ff2bb 100755 --- a/config/g4sort_step_file.pl +++ b/examples/extended/geometry/cad/scripts/g4sort_step_file.pl @@ -1,4 +1,4 @@ -#!/usr/local/bin/perl +#!/usr/bin/perl sub usage { print STDERR "This script takes a STEP file (from STDIN)\n"; diff --git a/config/g4step_correct.pl b/examples/extended/geometry/cad/scripts/g4step_correct.pl similarity index 100% rename from config/g4step_correct.pl rename to examples/extended/geometry/cad/scripts/g4step_correct.pl diff --git a/examples/extended/geometry/cad/src/CadDetectorConstruction.cc b/examples/extended/geometry/cad/src/CadDetectorConstruction.cc new file mode 100644 index 0000000000..373f2919c0 --- /dev/null +++ b/examples/extended/geometry/cad/src/CadDetectorConstruction.cc @@ -0,0 +1,167 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: CadDetectorConstruction.cc,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#include "G4AssemblyCreator.hh" +#include "G4Assembly.hh" +#include "CadDetectorConstruction.hh" +#include "CadDetectorMessenger.hh" + +#include "G4PVPlacement.hh" +#include "G4LogicalVolume.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4Material.hh" +#include "G4Element.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +CadDetectorConstruction::CadDetectorConstruction() + : detectorChoice(0) +{ + expHall_x = 1111600.*cm; + expHall_y = 1111600.*cm; + expHall_z = 1111600.*cm; + + calBox_x = 50.*cm; + calBox_y = 50.*cm; + calBox_z = 50.*cm; + rotAngle = 30.*deg; + calPos = 200.*cm; + + trackerRadius = 50.*cm; + trackerHight = 100.*cm; + trackerPos = -200.*cm; + + detectorMessenger = new CadDetectorMessenger(this); +} + +CadDetectorConstruction::~CadDetectorConstruction() +{;} + +G4VPhysicalVolume* CadDetectorConstruction::Construct() +{ + + //------------------------------------------------------ materials + + 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="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); + + //------------------------------------------------------ volumes + + //------------------------------ 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); + + experimentalHall_log->SetVisAttributes (G4VisAttributes::Invisible); + + //------------------------------ STEP assembly creation + + const char * stepfile; + + switch(detectorChoice) + { + default: + stepfile = "stepfiles/G4rod_place_asm.stp"; + break; + + case 1: + stepfile = "stepfiles/G4rod_solid.stp"; + break; + } + + G4AssemblyCreator MyAC(stepfile); + MyAC.ReadStepFile(); + STEPentity* ent=0; + MyAC.CreateG4Geometry(*ent); + + void *tmp = MyAC.GetCreatedObject(); + G4Assembly* assembly = new G4Assembly(); + assembly->SetPlacedVector(*(G4PlacedVector*)tmp); + + // Set vis attribute to "transparent" blue + G4VisAttributes * visAttr = new G4VisAttributes(G4Colour(0.,0.,1.,.5)); + visAttr->SetVisibility(true); + + G4PlacedSolid* ps=0; + G4int solids = assembly->GetNumberOfSolids(); + G4cout << "Now placing " << solids << " logical volumes... "; + + for(G4int c=0;cGetPlacedSolid(c); + G4LogicalVolume* lv = new G4LogicalVolume(ps->GetSolid(),Lead,"STEPlog"); + HepRotation* hr = ps->GetRotation(); + G4ThreeVector* tr = ps->GetTranslation(); + new G4PVPlacement(hr, + *tr, + "STEPphys", // ps->GetSolid()->GetName(), + // no name assigned in sample STEP files + lv, + experimentalHall_phys, + false, + c); + lv->SetVisAttributes(visAttr); + } + G4cout << "Done !" << G4endl; + + return experimentalHall_phys; +} + + +void CadDetectorConstruction::SelectDetector(G4String val) +{ + if(val=="rod_solid") + { detectorChoice = 1; } + else + { detectorChoice = 0; } + G4cout << "Now Detector is " << val << G4endl; +} diff --git a/examples/extended/geometry/cad/src/CadDetectorMessenger.cc b/examples/extended/geometry/cad/src/CadDetectorMessenger.cc new file mode 100644 index 0000000000..595b00001b --- /dev/null +++ b/examples/extended/geometry/cad/src/CadDetectorMessenger.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: CadDetectorMessenger.cc,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#include "CadDetectorConstruction.hh" +#include "CadDetectorMessenger.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" + +CadDetectorMessenger::CadDetectorMessenger(CadDetectorConstruction * myDC) + : myDetector(myDC) +{ + G4String defParam; + + mydetDir = new G4UIdirectory("/mydet/"); + mydetDir->SetGuidance("Detector setup commands."); + + selDetCmd = new G4UIcmdWithAString("/mydet/SelectDetector",this); + selDetCmd->SetGuidance("Select Detector Setup."); + selDetCmd->SetGuidance(" Choice : rod_place_asm / rod_solid "); + selDetCmd->SetParameterName("choice",true); + selDetCmd->SetDefaultValue("rod_place_asm"); + selDetCmd->SetCandidates("rod_place_asm rod_solid"); + selDetCmd->AvailableForStates(PreInit,Idle); + + switchCmd = new G4UIcmdWithAString("/mydet/SwitchDetector",this); + switchCmd->SetGuidance("Assign the selected geometry to G4RunManager."); + switchCmd->SetGuidance("In cese detector name is associated to this command,"); + switchCmd->SetGuidance("\"/mydet/SelectDetector\" will be invoked and then switched."); + switchCmd->SetParameterName("choice",true); + switchCmd->SetDefaultValue(" "); + switchCmd->SetCandidates("rod_place_asm rod_solid \" \""); + switchCmd->AvailableForStates(PreInit,Idle); + + myDetector->SelectDetector(defParam="rod_place_asm"); +} + +void CadDetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValues) +{ + if( command == selDetCmd ) + { + myDetector->SelectDetector(newValues); + } + if( command == switchCmd ) + { + if(newValues=="rod_place_asm" || newValues=="CMSTracker") + { myDetector->SelectDetector(newValues); } + } + + return; +} + diff --git a/examples/extended/geometry/cad/src/CadPhysicsList.cc b/examples/extended/geometry/cad/src/CadPhysicsList.cc new file mode 100644 index 0000000000..16396a3628 --- /dev/null +++ b/examples/extended/geometry/cad/src/CadPhysicsList.cc @@ -0,0 +1,207 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: CadPhysicsList.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#include "CadPhysicsList.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" + + +CadPhysicsList::CadPhysicsList(): G4VUserPhysicsList() +{ + SetVerboseLevel(1); +} + +CadPhysicsList::~CadPhysicsList() +{ +} + +void CadPhysicsList::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(); + ConstructIons(); +} + +void CadPhysicsList::ConstructBosons() +{ + // Construct all bosons + G4BosonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void CadPhysicsList::ConstructLeptons() +{ + // Construct all leptons + G4LeptonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void CadPhysicsList::ConstructMesons() +{ + // Construct all mesons + G4MesonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void CadPhysicsList::ConstructBaryons() +{ + // Construct all barions + G4BaryonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void CadPhysicsList::ConstructIons() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + +void CadPhysicsList::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 CadPhysicsList::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 CadPhysicsList::ConstructHad() +{;} + +void CadPhysicsList::ConstructLeptHad() +{;} + +#include "G4Decay.hh" +void CadPhysicsList::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 CadPhysicsList::SetCuts() +{ + if (verboseLevel >0){ + G4cout << "CadPhysicsList::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/geometry/cad/src/CadPrimaryGeneratorAction.cc b/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc new file mode 100644 index 0000000000..8e00625838 --- /dev/null +++ b/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.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: CadPrimaryGeneratorAction.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +#include "CadPrimaryGeneratorAction.hh" + +#include "globals.hh" +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" + +CadPrimaryGeneratorAction::CadPrimaryGeneratorAction() +{ + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + + // default particle + + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + G4ParticleDefinition* particle + = particleTable->FindParticle(particleName="e-"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + particleGun->SetParticleEnergy(20.*MeV); + particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm)); +} + +CadPrimaryGeneratorAction::~CadPrimaryGeneratorAction() +{ + delete particleGun; +} + +void CadPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} + diff --git a/examples/extended/geometry/cad/src/CadRunAction.cc b/examples/extended/geometry/cad/src/CadRunAction.cc new file mode 100644 index 0000000000..d05a5f57c8 --- /dev/null +++ b/examples/extended/geometry/cad/src/CadRunAction.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: CadRunAction.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------ + +// Make this appear first! +#include "G4Timer.hh" + +#include "CadRunAction.hh" +#include "G4Run.hh" + +CadRunAction::CadRunAction() +{ + timer = new G4Timer; +} + +CadRunAction::~CadRunAction() +{ + delete timer; +} + +void CadRunAction::BeginOfRunAction(const G4Run* aRun) +{ + timer->Start(); +} + +void CadRunAction::EndOfRunAction(const G4Run* aRun) +{ + timer->Stop(); +} diff --git a/examples/extended/geometry/cad/src/CadVisManager.cc b/examples/extended/geometry/cad/src/CadVisManager.cc new file mode 100644 index 0000000000..e576b5374a --- /dev/null +++ b/examples/extended/geometry/cad/src/CadVisManager.cc @@ -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: CadVisManager.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// -------------------------------------------------------------------- + +#ifdef G4VIS_USE + +#include "CadVisManager.hh" + +// Visualization drivers... + +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4RayTracer.hh" + +CadVisManager::CadVisManager () {} + +void CadVisManager::RegisterGraphicsSystems () +{ + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4RayTracer); + + if (fVerbose > 0) + { + G4cout << G4endl + << "You have successfully chosen to use" + << " the following graphics systems:" + << G4endl; + PrintAvailableGraphicsSystems (); + } +} + +#endif diff --git a/examples/extended/geometry/cad/stepfiles/G4rod_place_asm.stp b/examples/extended/geometry/cad/stepfiles/G4rod_place_asm.stp new file mode 100644 index 0000000000..f5934ceddf --- /dev/null +++ b/examples/extended/geometry/cad/stepfiles/G4rod_place_asm.stp @@ -0,0 +1,980 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION((''),'1'); +FILE_NAME('ROD_PLACE_ASM','1998-02-27T10:19:15',('oriunno'),(''),'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718','PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718',''); +FILE_SCHEMA(('CONFIG_CONTROL_DESIGN')); +ENDSEC; +DATA; +#1=DIRECTION('',(1.E0,0.E0,0.E0)); +#2=VECTOR('',#1,2.41E3); +#3=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#4=LINE('',#3,#2); +#5=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6=VECTOR('',#5,1.4E1); +#7=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#8=LINE('',#7,#6); +#9=DIRECTION('',(0.E0,1.E0,0.E0)); +#10=VECTOR('',#9,1.6E1); +#11=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#12=LINE('',#11,#10); +#13=DIRECTION('',(0.E0,0.E0,1.E0)); +#14=VECTOR('',#13,1.4E1); +#15=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#16=LINE('',#15,#14); +#17=DIRECTION('',(0.E0,-1.E0,0.E0)); +#18=VECTOR('',#17,1.5E0); +#19=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#20=LINE('',#19,#18); +#21=DIRECTION('',(0.E0,0.E0,1.E0)); +#22=VECTOR('',#21,1.25E1); +#23=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); +#24=LINE('',#23,#22); +#25=DIRECTION('',(0.E0,1.E0,0.E0)); +#26=VECTOR('',#25,1.3E1); +#27=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); +#28=LINE('',#27,#26); +#29=DIRECTION('',(0.E0,0.E0,-1.E0)); +#30=VECTOR('',#29,1.25E1); +#31=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#32=LINE('',#31,#30); +#33=DIRECTION('',(0.E0,-1.E0,0.E0)); +#34=VECTOR('',#33,1.5E0); +#35=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#36=LINE('',#35,#34); +#37=DIRECTION('',(1.E0,0.E0,0.E0)); +#38=VECTOR('',#37,2.41E3); +#39=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#40=LINE('',#39,#38); +#41=DIRECTION('',(1.E0,0.E0,0.E0)); +#42=VECTOR('',#41,2.41E3); +#43=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#44=LINE('',#43,#42); +#45=DIRECTION('',(1.E0,0.E0,0.E0)); +#46=VECTOR('',#45,2.41E3); +#47=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); +#48=LINE('',#47,#46); +#49=DIRECTION('',(1.E0,0.E0,0.E0)); +#50=VECTOR('',#49,2.41E3); +#51=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#52=LINE('',#51,#50); +#53=DIRECTION('',(1.E0,0.E0,0.E0)); +#54=VECTOR('',#53,2.41E3); +#55=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); +#56=LINE('',#55,#54); +#57=DIRECTION('',(1.E0,0.E0,0.E0)); +#58=VECTOR('',#57,2.41E3); +#59=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); +#60=LINE('',#59,#58); +#61=DIRECTION('',(0.E0,0.E0,1.E0)); +#62=VECTOR('',#61,1.4E1); +#63=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); +#64=LINE('',#63,#62); +#65=DIRECTION('',(0.E0,1.E0,0.E0)); +#66=VECTOR('',#65,1.6E1); +#67=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); +#68=LINE('',#67,#66); +#69=DIRECTION('',(0.E0,0.E0,-1.E0)); +#70=VECTOR('',#69,1.4E1); +#71=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); +#72=LINE('',#71,#70); +#73=DIRECTION('',(0.E0,-1.E0,0.E0)); +#74=VECTOR('',#73,1.5E0); +#75=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); +#76=LINE('',#75,#74); +#77=DIRECTION('',(0.E0,0.E0,-1.E0)); +#78=VECTOR('',#77,1.25E1); +#79=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); +#80=LINE('',#79,#78); +#81=DIRECTION('',(0.E0,1.E0,0.E0)); +#82=VECTOR('',#81,1.3E1); +#83=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); +#84=LINE('',#83,#82); +#85=DIRECTION('',(0.E0,0.E0,1.E0)); +#86=VECTOR('',#85,1.25E1); +#87=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); +#88=LINE('',#87,#86); +#89=DIRECTION('',(0.E0,-1.E0,0.E0)); +#90=VECTOR('',#89,1.5E0); +#91=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); +#92=LINE('',#91,#90); +#93=DIRECTION('',(1.E0,0.E0,0.E0)); +#94=VECTOR('',#93,2.41E3); +#95=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#96=LINE('',#95,#94); +#97=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#98=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#99=VERTEX_POINT('','',#97); +#100=VERTEX_POINT('','',#98); +#101=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#102=VERTEX_POINT('','',#101); +#103=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#104=VERTEX_POINT('','',#103); +#105=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); +#106=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); +#107=VERTEX_POINT('','',#105); +#108=VERTEX_POINT('','',#106); +#109=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); +#110=VERTEX_POINT('','',#109); +#111=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); +#112=VERTEX_POINT('','',#111); +#113=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); +#114=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); +#115=VERTEX_POINT('','',#113); +#116=VERTEX_POINT('','',#114); +#117=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); +#118=VERTEX_POINT('','',#117); +#119=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#120=VERTEX_POINT('','',#119); +#121=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); +#122=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); +#123=VERTEX_POINT('','',#121); +#124=VERTEX_POINT('','',#122); +#125=CARTESIAN_POINT('',(1.205E3,7.5E0,-6.4E1)); +#126=VERTEX_POINT('','',#125); +#127=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); +#128=VERTEX_POINT('','',#127); +#129=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#130=DIRECTION('',(0.E0,0.E0,-1.E0)); +#131=DIRECTION('',(0.E0,1.E0,0.E0)); +#132=AXIS2_PLACEMENT_3D('',#129,#130,#131); +#133=PLANE('',#132); +#135=ORIENTED_EDGE('',*,*,#134,.F.); +#137=ORIENTED_EDGE('',*,*,#136,.T.); +#139=ORIENTED_EDGE('',*,*,#138,.T.); +#141=ORIENTED_EDGE('',*,*,#140,.F.); +#142=EDGE_LOOP('','',(#135,#137,#139,#141)); +#143=FACE_OUTER_BOUND('',#142,.F.); +#144=ADVANCED_FACE('',(#143),'' ,#133,.T.); + +#145=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); +#146=DIRECTION('',(1.E0,0.E0,0.E0)); +#147=DIRECTION('',(0.E0,0.E0,1.E0)); +#148=AXIS2_PLACEMENT_3D('',#145,#146,#147); +#149=PLANE('',#148); +#151=ORIENTED_EDGE('',*,*,#150,.T.); +#152=ORIENTED_EDGE('',*,*,#134,.T.); +#154=ORIENTED_EDGE('',*,*,#153,.T.); +#156=ORIENTED_EDGE('',*,*,#155,.T.); +#158=ORIENTED_EDGE('',*,*,#157,.F.); +#160=ORIENTED_EDGE('',*,*,#159,.F.); +#162=ORIENTED_EDGE('',*,*,#161,.F.); +#164=ORIENTED_EDGE('',*,*,#163,.T.); +#165=EDGE_LOOP('','',(#151,#152,#154,#156,#158,#160,#162,#164)); +#166=FACE_OUTER_BOUND('',#165,.F.); +#167=ADVANCED_FACE('',(#166),'' ,#149,.F.); + +#168=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#169=DIRECTION('',(0.E0,-1.E0,0.E0)); +#170=DIRECTION('',(0.E0,0.E0,-1.E0)); +#171=AXIS2_PLACEMENT_3D('',#168,#169,#170); +#172=PLANE('',#171); +#173=ORIENTED_EDGE('',*,*,#150,.F.); +#175=ORIENTED_EDGE('',*,*,#174,.T.); +#177=ORIENTED_EDGE('',*,*,#176,.T.); +#178=ORIENTED_EDGE('',*,*,#136,.F.); +#179=EDGE_LOOP('','',(#173,#175,#177,#178)); +#180=FACE_OUTER_BOUND('',#179,.F.); +#181=ADVANCED_FACE('',(#180),'' ,#172,.T.); + +#182=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#183=DIRECTION('',(0.E0,0.E0,1.E0)); +#184=DIRECTION('',(0.E0,-1.E0,0.E0)); +#185=AXIS2_PLACEMENT_3D('',#182,#183,#184); +#186=PLANE('',#185); +#188=ORIENTED_EDGE('',*,*,#187,.T.); +#190=ORIENTED_EDGE('',*,*,#189,.T.); +#191=ORIENTED_EDGE('',*,*,#174,.F.); +#192=ORIENTED_EDGE('',*,*,#163,.F.); +#193=EDGE_LOOP('','',(#188,#190,#191,#192)); +#194=FACE_OUTER_BOUND('',#193,.F.); +#195=ADVANCED_FACE('',(#194),'' ,#186,.T.); + +#196=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#197=DIRECTION('',(0.E0,0.E0,1.E0)); +#198=DIRECTION('',(0.E0,-1.E0,0.E0)); +#199=AXIS2_PLACEMENT_3D('',#196,#197,#198); +#200=PLANE('',#199); +#202=ORIENTED_EDGE('',*,*,#201,.T.); +#204=ORIENTED_EDGE('',*,*,#203,.T.); +#206=ORIENTED_EDGE('',*,*,#205,.F.); +#207=ORIENTED_EDGE('',*,*,#155,.F.); +#208=EDGE_LOOP('','',(#202,#204,#206,#207)); +#209=FACE_OUTER_BOUND('',#208,.F.); +#210=ADVANCED_FACE('',(#209),'' ,#200,.T.); + +#211=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#212=DIRECTION('',(0.E0,-1.E0,0.E0)); +#213=DIRECTION('',(0.E0,0.E0,-1.E0)); +#214=AXIS2_PLACEMENT_3D('',#211,#212,#213); +#215=PLANE('',#214); +#216=ORIENTED_EDGE('',*,*,#161,.T.); +#218=ORIENTED_EDGE('',*,*,#217,.T.); +#220=ORIENTED_EDGE('',*,*,#219,.F.); +#221=ORIENTED_EDGE('',*,*,#187,.F.); +#222=EDGE_LOOP('','',(#216,#218,#220,#221)); +#223=FACE_OUTER_BOUND('',#222,.F.); +#224=ADVANCED_FACE('',(#223),'' ,#215,.F.); + +#225=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.65E1)); +#226=DIRECTION('',(0.E0,0.E0,-1.E0)); +#227=DIRECTION('',(0.E0,1.E0,0.E0)); +#228=AXIS2_PLACEMENT_3D('',#225,#226,#227); +#229=PLANE('',#228); +#230=ORIENTED_EDGE('',*,*,#159,.T.); +#232=ORIENTED_EDGE('',*,*,#231,.T.); +#234=ORIENTED_EDGE('',*,*,#233,.F.); +#235=ORIENTED_EDGE('',*,*,#217,.F.); +#236=EDGE_LOOP('','',(#230,#232,#234,#235)); +#237=FACE_OUTER_BOUND('',#236,.F.); +#238=ADVANCED_FACE('',(#237),'' ,#229,.F.); + +#239=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.8E1)); +#240=DIRECTION('',(0.E0,1.E0,0.E0)); +#241=DIRECTION('',(0.E0,0.E0,1.E0)); +#242=AXIS2_PLACEMENT_3D('',#239,#240,#241); +#243=PLANE('',#242); +#244=ORIENTED_EDGE('',*,*,#157,.T.); +#245=ORIENTED_EDGE('',*,*,#205,.T.); +#247=ORIENTED_EDGE('',*,*,#246,.F.); +#248=ORIENTED_EDGE('',*,*,#231,.F.); +#249=EDGE_LOOP('','',(#244,#245,#247,#248)); +#250=FACE_OUTER_BOUND('',#249,.F.); +#251=ADVANCED_FACE('',(#250),'' ,#243,.F.); + +#252=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); +#253=DIRECTION('',(1.E0,0.E0,0.E0)); +#254=DIRECTION('',(0.E0,0.E0,1.E0)); +#255=AXIS2_PLACEMENT_3D('',#252,#253,#254); +#256=PLANE('',#255); +#258=ORIENTED_EDGE('',*,*,#257,.F.); +#259=ORIENTED_EDGE('',*,*,#138,.F.); +#260=ORIENTED_EDGE('',*,*,#176,.F.); +#261=ORIENTED_EDGE('',*,*,#189,.F.); +#262=ORIENTED_EDGE('',*,*,#219,.T.); +#263=ORIENTED_EDGE('',*,*,#233,.T.); +#264=ORIENTED_EDGE('',*,*,#246,.T.); +#265=ORIENTED_EDGE('',*,*,#203,.F.); +#266=EDGE_LOOP('','',(#258,#259,#260,#261,#262,#263,#264,#265)); +#267=FACE_OUTER_BOUND('',#266,.F.); +#268=ADVANCED_FACE('',(#267),'' ,#256,.T.); + +#269=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#270=DIRECTION('',(0.E0,1.E0,0.E0)); +#271=DIRECTION('',(0.E0,0.E0,1.E0)); +#272=AXIS2_PLACEMENT_3D('',#269,#270,#271); +#273=PLANE('',#272); +#274=ORIENTED_EDGE('',*,*,#153,.F.); +#275=ORIENTED_EDGE('',*,*,#140,.T.); +#276=ORIENTED_EDGE('',*,*,#257,.T.); +#277=ORIENTED_EDGE('',*,*,#201,.F.); +#278=EDGE_LOOP('','',(#274,#275,#276,#277)); +#279=FACE_OUTER_BOUND('',#278,.F.); +#280=ADVANCED_FACE('',(#279),'' ,#273,.T.); + +#281=CLOSED_SHELL('',(#144,#167,#181,#195,#210,#224,#238,#251,#268,#280)); +#282=MANIFOLD_SOLID_BREP('',#281); +#283=DIRECTION('',(1.E0,0.E0,0.E0)); +#284=VECTOR('',#283,2.41E3); +#285=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#286=LINE('',#285,#284); +#287=DIRECTION('',(0.E0,0.E0,1.E0)); +#288=VECTOR('',#287,1.4E1); +#289=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#290=LINE('',#289,#288); +#291=DIRECTION('',(0.E0,-1.E0,0.E0)); +#292=VECTOR('',#291,1.6E1); +#293=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#294=LINE('',#293,#292); +#295=DIRECTION('',(0.E0,0.E0,-1.E0)); +#296=VECTOR('',#295,1.4E1); +#297=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#298=LINE('',#297,#296); +#299=DIRECTION('',(0.E0,1.E0,0.E0)); +#300=VECTOR('',#299,1.5E0); +#301=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#302=LINE('',#301,#300); +#303=DIRECTION('',(0.E0,0.E0,-1.E0)); +#304=VECTOR('',#303,1.25E1); +#305=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); +#306=LINE('',#305,#304); +#307=DIRECTION('',(0.E0,-1.E0,0.E0)); +#308=VECTOR('',#307,1.3E1); +#309=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); +#310=LINE('',#309,#308); +#311=DIRECTION('',(0.E0,0.E0,1.E0)); +#312=VECTOR('',#311,1.25E1); +#313=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#314=LINE('',#313,#312); +#315=DIRECTION('',(0.E0,1.E0,0.E0)); +#316=VECTOR('',#315,1.5E0); +#317=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#318=LINE('',#317,#316); +#319=DIRECTION('',(1.E0,0.E0,0.E0)); +#320=VECTOR('',#319,2.41E3); +#321=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#322=LINE('',#321,#320); +#323=DIRECTION('',(0.E0,0.E0,-1.E0)); +#324=VECTOR('',#323,1.4E1); +#325=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); +#326=LINE('',#325,#324); +#327=DIRECTION('',(0.E0,-1.E0,0.E0)); +#328=VECTOR('',#327,1.6E1); +#329=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); +#330=LINE('',#329,#328); +#331=DIRECTION('',(0.E0,0.E0,1.E0)); +#332=VECTOR('',#331,1.4E1); +#333=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); +#334=LINE('',#333,#332); +#335=DIRECTION('',(0.E0,1.E0,0.E0)); +#336=VECTOR('',#335,1.5E0); +#337=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); +#338=LINE('',#337,#336); +#339=DIRECTION('',(0.E0,0.E0,1.E0)); +#340=VECTOR('',#339,1.25E1); +#341=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); +#342=LINE('',#341,#340); +#343=DIRECTION('',(0.E0,-1.E0,0.E0)); +#344=VECTOR('',#343,1.3E1); +#345=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); +#346=LINE('',#345,#344); +#347=DIRECTION('',(0.E0,0.E0,-1.E0)); +#348=VECTOR('',#347,1.25E1); +#349=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); +#350=LINE('',#349,#348); +#351=DIRECTION('',(0.E0,1.E0,0.E0)); +#352=VECTOR('',#351,1.5E0); +#353=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); +#354=LINE('',#353,#352); +#355=DIRECTION('',(1.E0,0.E0,0.E0)); +#356=VECTOR('',#355,2.41E3); +#357=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#358=LINE('',#357,#356); +#359=DIRECTION('',(1.E0,0.E0,0.E0)); +#360=VECTOR('',#359,2.41E3); +#361=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#362=LINE('',#361,#360); +#363=DIRECTION('',(1.E0,0.E0,0.E0)); +#364=VECTOR('',#363,2.41E3); +#365=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); +#366=LINE('',#365,#364); +#367=DIRECTION('',(1.E0,0.E0,0.E0)); +#368=VECTOR('',#367,2.41E3); +#369=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#370=LINE('',#369,#368); +#371=DIRECTION('',(1.E0,0.E0,0.E0)); +#372=VECTOR('',#371,2.41E3); +#373=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); +#374=LINE('',#373,#372); +#375=DIRECTION('',(1.E0,0.E0,0.E0)); +#376=VECTOR('',#375,2.41E3); +#377=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); +#378=LINE('',#377,#376); +#379=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#380=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#381=VERTEX_POINT('','',#379); +#382=VERTEX_POINT('','',#380); +#383=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#384=VERTEX_POINT('','',#383); +#385=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#386=VERTEX_POINT('','',#385); +#387=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); +#388=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); +#389=VERTEX_POINT('','',#387); +#390=VERTEX_POINT('','',#388); +#391=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); +#392=VERTEX_POINT('','',#391); +#393=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); +#394=VERTEX_POINT('','',#393); +#395=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#396=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); +#397=VERTEX_POINT('','',#395); +#398=VERTEX_POINT('','',#396); +#399=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); +#400=VERTEX_POINT('','',#399); +#401=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); +#402=VERTEX_POINT('','',#401); +#403=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); +#404=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); +#405=VERTEX_POINT('','',#403); +#406=VERTEX_POINT('','',#404); +#407=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); +#408=VERTEX_POINT('','',#407); +#409=CARTESIAN_POINT('',(1.205E3,-5.5E0,6.4E1)); +#410=VERTEX_POINT('','',#409); +#411=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#412=DIRECTION('',(0.E0,1.E0,0.E0)); +#413=DIRECTION('',(0.E0,0.E0,1.E0)); +#414=AXIS2_PLACEMENT_3D('',#411,#412,#413); +#415=PLANE('',#414); +#417=ORIENTED_EDGE('',*,*,#416,.F.); +#419=ORIENTED_EDGE('',*,*,#418,.T.); +#421=ORIENTED_EDGE('',*,*,#420,.T.); +#423=ORIENTED_EDGE('',*,*,#422,.F.); +#424=EDGE_LOOP('','',(#417,#419,#421,#423)); +#425=FACE_OUTER_BOUND('',#424,.F.); +#426=ADVANCED_FACE('',(#425),'' ,#415,.T.); + +#427=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); +#428=DIRECTION('',(1.E0,0.E0,0.E0)); +#429=DIRECTION('',(0.E0,0.E0,1.E0)); +#430=AXIS2_PLACEMENT_3D('',#427,#428,#429); +#431=PLANE('',#430); +#432=ORIENTED_EDGE('',*,*,#416,.T.); +#434=ORIENTED_EDGE('',*,*,#433,.T.); +#436=ORIENTED_EDGE('',*,*,#435,.T.); +#438=ORIENTED_EDGE('',*,*,#437,.T.); +#440=ORIENTED_EDGE('',*,*,#439,.F.); +#442=ORIENTED_EDGE('',*,*,#441,.F.); +#444=ORIENTED_EDGE('',*,*,#443,.F.); +#446=ORIENTED_EDGE('',*,*,#445,.T.); +#447=EDGE_LOOP('','',(#432,#434,#436,#438,#440,#442,#444,#446)); +#448=FACE_OUTER_BOUND('',#447,.F.); +#449=ADVANCED_FACE('',(#448),'' ,#431,.F.); + +#450=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#451=DIRECTION('',(0.E0,0.E0,1.E0)); +#452=DIRECTION('',(0.E0,-1.E0,0.E0)); +#453=AXIS2_PLACEMENT_3D('',#450,#451,#452); +#454=PLANE('',#453); +#455=ORIENTED_EDGE('',*,*,#433,.F.); +#456=ORIENTED_EDGE('',*,*,#422,.T.); +#458=ORIENTED_EDGE('',*,*,#457,.T.); +#460=ORIENTED_EDGE('',*,*,#459,.F.); +#461=EDGE_LOOP('','',(#455,#456,#458,#460)); +#462=FACE_OUTER_BOUND('',#461,.F.); +#463=ADVANCED_FACE('',(#462),'' ,#454,.T.); + +#464=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); +#465=DIRECTION('',(1.E0,0.E0,0.E0)); +#466=DIRECTION('',(0.E0,0.E0,1.E0)); +#467=AXIS2_PLACEMENT_3D('',#464,#465,#466); +#468=PLANE('',#467); +#470=ORIENTED_EDGE('',*,*,#469,.F.); +#471=ORIENTED_EDGE('',*,*,#457,.F.); +#472=ORIENTED_EDGE('',*,*,#420,.F.); +#474=ORIENTED_EDGE('',*,*,#473,.F.); +#476=ORIENTED_EDGE('',*,*,#475,.T.); +#478=ORIENTED_EDGE('',*,*,#477,.T.); +#480=ORIENTED_EDGE('',*,*,#479,.T.); +#482=ORIENTED_EDGE('',*,*,#481,.F.); +#483=EDGE_LOOP('','',(#470,#471,#472,#474,#476,#478,#480,#482)); +#484=FACE_OUTER_BOUND('',#483,.F.); +#485=ADVANCED_FACE('',(#484),'' ,#468,.T.); + +#486=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#487=DIRECTION('',(0.E0,-1.E0,0.E0)); +#488=DIRECTION('',(0.E0,0.E0,-1.E0)); +#489=AXIS2_PLACEMENT_3D('',#486,#487,#488); +#490=PLANE('',#489); +#491=ORIENTED_EDGE('',*,*,#435,.F.); +#492=ORIENTED_EDGE('',*,*,#459,.T.); +#493=ORIENTED_EDGE('',*,*,#469,.T.); +#495=ORIENTED_EDGE('',*,*,#494,.F.); +#496=EDGE_LOOP('','',(#491,#492,#493,#495)); +#497=FACE_OUTER_BOUND('',#496,.F.); +#498=ADVANCED_FACE('',(#497),'' ,#490,.T.); + +#499=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#500=DIRECTION('',(0.E0,0.E0,-1.E0)); +#501=DIRECTION('',(0.E0,1.E0,0.E0)); +#502=AXIS2_PLACEMENT_3D('',#499,#500,#501); +#503=PLANE('',#502); +#505=ORIENTED_EDGE('',*,*,#504,.T.); +#506=ORIENTED_EDGE('',*,*,#473,.T.); +#507=ORIENTED_EDGE('',*,*,#418,.F.); +#508=ORIENTED_EDGE('',*,*,#445,.F.); +#509=EDGE_LOOP('','',(#505,#506,#507,#508)); +#510=FACE_OUTER_BOUND('',#509,.F.); +#511=ADVANCED_FACE('',(#510),'' ,#503,.T.); + +#512=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#513=DIRECTION('',(0.E0,0.E0,-1.E0)); +#514=DIRECTION('',(0.E0,1.E0,0.E0)); +#515=AXIS2_PLACEMENT_3D('',#512,#513,#514); +#516=PLANE('',#515); +#517=ORIENTED_EDGE('',*,*,#494,.T.); +#518=ORIENTED_EDGE('',*,*,#481,.T.); +#520=ORIENTED_EDGE('',*,*,#519,.F.); +#521=ORIENTED_EDGE('',*,*,#437,.F.); +#522=EDGE_LOOP('','',(#517,#518,#520,#521)); +#523=FACE_OUTER_BOUND('',#522,.F.); +#524=ADVANCED_FACE('',(#523),'' ,#516,.T.); + +#525=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#526=DIRECTION('',(0.E0,1.E0,0.E0)); +#527=DIRECTION('',(0.E0,0.E0,1.E0)); +#528=AXIS2_PLACEMENT_3D('',#525,#526,#527); +#529=PLANE('',#528); +#530=ORIENTED_EDGE('',*,*,#443,.T.); +#532=ORIENTED_EDGE('',*,*,#531,.T.); +#533=ORIENTED_EDGE('',*,*,#475,.F.); +#534=ORIENTED_EDGE('',*,*,#504,.F.); +#535=EDGE_LOOP('','',(#530,#532,#533,#534)); +#536=FACE_OUTER_BOUND('',#535,.F.); +#537=ADVANCED_FACE('',(#536),'' ,#529,.F.); + +#538=CARTESIAN_POINT('',(-1.205E3,9.E0,7.65E1)); +#539=DIRECTION('',(0.E0,0.E0,1.E0)); +#540=DIRECTION('',(0.E0,-1.E0,0.E0)); +#541=AXIS2_PLACEMENT_3D('',#538,#539,#540); +#542=PLANE('',#541); +#543=ORIENTED_EDGE('',*,*,#441,.T.); +#545=ORIENTED_EDGE('',*,*,#544,.T.); +#546=ORIENTED_EDGE('',*,*,#477,.F.); +#547=ORIENTED_EDGE('',*,*,#531,.F.); +#548=EDGE_LOOP('','',(#543,#545,#546,#547)); +#549=FACE_OUTER_BOUND('',#548,.F.); +#550=ADVANCED_FACE('',(#549),'' ,#542,.F.); + +#551=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.8E1)); +#552=DIRECTION('',(0.E0,-1.E0,0.E0)); +#553=DIRECTION('',(0.E0,0.E0,-1.E0)); +#554=AXIS2_PLACEMENT_3D('',#551,#552,#553); +#555=PLANE('',#554); +#556=ORIENTED_EDGE('',*,*,#439,.T.); +#557=ORIENTED_EDGE('',*,*,#519,.T.); +#558=ORIENTED_EDGE('',*,*,#479,.F.); +#559=ORIENTED_EDGE('',*,*,#544,.F.); +#560=EDGE_LOOP('','',(#556,#557,#558,#559)); +#561=FACE_OUTER_BOUND('',#560,.F.); +#562=ADVANCED_FACE('',(#561),'' ,#555,.F.); + +#563=CLOSED_SHELL('',(#426,#449,#463,#485,#498,#511,#524,#537,#550,#562)); +#564=MANIFOLD_SOLID_BREP('',#563); +#565=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#566=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); +#567=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#568=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#567); +#569=(CONVERSION_BASED_UNIT('DEGREE',#568)NAMED_UNIT(#566)PLANE_ANGLE_UNIT()); +#570=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#571=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.415000081568E-1),#565,'closure','Maximum model space distance between geometric entities at asserted connectivities'); +#572=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#571))GLOBAL_UNIT_ASSIGNED_CONTEXT((#565,#569,#570))REPRESENTATION_CONTEXT('ID1','3')); +#573=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); +#574=DIRECTION('',(0.E0,0.E0,1.E0)); +#575=DIRECTION('',(1.E0,0.E0,0.E0)); +#576=AXIS2_PLACEMENT_3D('',#573,#574,#575); +#578=APPLICATION_CONTEXT('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); +#579=APPLICATION_PROTOCOL_DEFINITION('international standard','config_control_design',1994,#578); +#580=DESIGN_CONTEXT('',#578,'design'); +#581=MECHANICAL_CONTEXT('',#578,'mechanical'); +#582=PRODUCT('ROD','ROD','NOT SPECIFIED',(#581)); +#583=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('6','LAST_VERSION',#582, +.MADE.); +#592=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); +#593=DIRECTION('',(0.E0,0.E0,1.E0)); +#594=DIRECTION('',(1.E0,0.E0,0.E0)); +#595=AXIS2_PLACEMENT_3D('',#592,#593,#594); +#596=ITEM_DEFINED_TRANSFORMATION('','',#595,#576); +#597=(REPRESENTATION_RELATIONSHIP('','',#589,#577)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#596)SHAPE_REPRESENTATION_RELATIONSHIP()); +#598=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#597,#591); +#599=DIRECTION('',(1.E0,0.E0,0.E0)); +#600=VECTOR('',#599,3.4E2); +#601=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#602=LINE('',#601,#600); +#603=DIRECTION('',(0.E0,0.E0,-1.E0)); +#604=VECTOR('',#603,1.05E2); +#605=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#606=LINE('',#605,#604); +#607=DIRECTION('',(-1.E0,0.E0,0.E0)); +#608=VECTOR('',#607,3.4E2); +#609=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#610=LINE('',#609,#608); +#611=DIRECTION('',(0.E0,0.E0,1.E0)); +#612=VECTOR('',#611,1.05E2); +#613=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#614=LINE('',#613,#612); +#615=DIRECTION('',(0.E0,1.E0,0.E0)); +#616=VECTOR('',#615,4.5E0); +#617=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#618=LINE('',#617,#616); +#619=DIRECTION('',(0.E0,1.E0,0.E0)); +#620=VECTOR('',#619,4.5E0); +#621=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#622=LINE('',#621,#620); +#623=DIRECTION('',(0.E0,1.E0,0.E0)); +#624=VECTOR('',#623,4.5E0); +#625=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#626=LINE('',#625,#624); +#627=DIRECTION('',(0.E0,1.E0,0.E0)); +#628=VECTOR('',#627,4.5E0); +#629=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#630=LINE('',#629,#628); +#631=DIRECTION('',(1.E0,0.E0,0.E0)); +#632=VECTOR('',#631,3.4E2); +#633=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); +#634=LINE('',#633,#632); +#635=DIRECTION('',(0.E0,0.E0,1.E0)); +#636=VECTOR('',#635,1.05E2); +#637=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); +#638=LINE('',#637,#636); +#639=DIRECTION('',(-1.E0,0.E0,0.E0)); +#640=VECTOR('',#639,3.4E2); +#641=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); +#642=LINE('',#641,#640); +#643=DIRECTION('',(0.E0,0.E0,-1.E0)); +#644=VECTOR('',#643,1.05E2); +#645=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); +#646=LINE('',#645,#644); +#647=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#648=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#649=VERTEX_POINT('','',#647); +#650=VERTEX_POINT('','',#648); +#651=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#652=VERTEX_POINT('','',#651); +#653=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#654=VERTEX_POINT('','',#653); +#655=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); +#656=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); +#657=VERTEX_POINT('','',#655); +#658=VERTEX_POINT('','',#656); +#659=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); +#660=VERTEX_POINT('','',#659); +#661=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); +#662=VERTEX_POINT('','',#661); +#663=CARTESIAN_POINT('',(0.E0,-2.25E0,0.E0)); +#664=DIRECTION('',(0.E0,1.E0,0.E0)); +#665=DIRECTION('',(0.E0,0.E0,-1.E0)); +#666=AXIS2_PLACEMENT_3D('',#663,#664,#665); +#667=PLANE('',#666); +#669=ORIENTED_EDGE('',*,*,#668,.T.); +#671=ORIENTED_EDGE('',*,*,#670,.T.); +#673=ORIENTED_EDGE('',*,*,#672,.T.); +#675=ORIENTED_EDGE('',*,*,#674,.T.); +#676=EDGE_LOOP('','',(#669,#671,#673,#675)); +#677=FACE_OUTER_BOUND('',#676,.F.); +#678=ADVANCED_FACE('',(#677),'' ,#667,.F.); +#679=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#680=DIRECTION('',(0.E0,0.E0,1.E0)); +#681=DIRECTION('',(1.E0,0.E0,0.E0)); +#682=AXIS2_PLACEMENT_3D('',#679,#680,#681); +#683=PLANE('',#682); +#684=ORIENTED_EDGE('',*,*,#668,.F.); +#686=ORIENTED_EDGE('',*,*,#685,.T.); +#688=ORIENTED_EDGE('',*,*,#687,.T.); +#690=ORIENTED_EDGE('',*,*,#689,.F.); +#691=EDGE_LOOP('','',(#684,#686,#688,#690)); +#692=FACE_OUTER_BOUND('',#691,.F.); +#693=ADVANCED_FACE('',(#692),'' ,#683,.T.); + +#694=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#695=DIRECTION('',(-1.E0,0.E0,0.E0)); +#696=DIRECTION('',(0.E0,0.E0,1.E0)); +#697=AXIS2_PLACEMENT_3D('',#694,#695,#696); +#698=PLANE('',#697); +#699=ORIENTED_EDGE('',*,*,#674,.F.); +#701=ORIENTED_EDGE('',*,*,#700,.T.); +#703=ORIENTED_EDGE('',*,*,#702,.T.); +#704=ORIENTED_EDGE('',*,*,#685,.F.); +#705=EDGE_LOOP('','',(#699,#701,#703,#704)); +#706=FACE_OUTER_BOUND('',#705,.F.); +#707=ADVANCED_FACE('',(#706),'' ,#698,.T.); + +#708=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#709=DIRECTION('',(0.E0,0.E0,-1.E0)); +#710=DIRECTION('',(-1.E0,0.E0,0.E0)); +#711=AXIS2_PLACEMENT_3D('',#708,#709,#710); +#712=PLANE('',#711); +#713=ORIENTED_EDGE('',*,*,#672,.F.); +#715=ORIENTED_EDGE('',*,*,#714,.T.); +#717=ORIENTED_EDGE('',*,*,#716,.T.); +#718=ORIENTED_EDGE('',*,*,#700,.F.); +#719=EDGE_LOOP('','',(#713,#715,#717,#718)); +#720=FACE_OUTER_BOUND('',#719,.F.); +#721=ADVANCED_FACE('',(#720),'' ,#712,.T.); + +#722=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#723=DIRECTION('',(1.E0,0.E0,0.E0)); +#724=DIRECTION('',(0.E0,0.E0,-1.E0)); +#725=AXIS2_PLACEMENT_3D('',#722,#723,#724); +#726=PLANE('',#725); +#727=ORIENTED_EDGE('',*,*,#670,.F.); +#728=ORIENTED_EDGE('',*,*,#689,.T.); +#730=ORIENTED_EDGE('',*,*,#729,.T.); +#731=ORIENTED_EDGE('',*,*,#714,.F.); +#732=EDGE_LOOP('','',(#727,#728,#730,#731)); +#733=FACE_OUTER_BOUND('',#732,.F.); +#734=ADVANCED_FACE('',(#733),'' ,#726,.T.); + +#735=CARTESIAN_POINT('',(0.E0,2.25E0,0.E0)); +#736=DIRECTION('',(0.E0,1.E0,0.E0)); +#737=DIRECTION('',(0.E0,0.E0,-1.E0)); +#738=AXIS2_PLACEMENT_3D('',#735,#736,#737); +#739=PLANE('',#738); +#740=ORIENTED_EDGE('',*,*,#687,.F.); +#741=ORIENTED_EDGE('',*,*,#702,.F.); +#742=ORIENTED_EDGE('',*,*,#716,.F.); +#743=ORIENTED_EDGE('',*,*,#729,.F.); +#744=EDGE_LOOP('','',(#740,#741,#742,#743)); +#745=FACE_OUTER_BOUND('',#744,.F.); +#746=ADVANCED_FACE('',(#745),'' ,#739,.T.); + +#747=CLOSED_SHELL('',(#678,#693,#707,#721,#734,#746)); +#748=MANIFOLD_SOLID_BREP('',#747); +#749=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#750=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); +#751=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#752=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#751); +#753=(CONVERSION_BASED_UNIT('DEGREE',#752)NAMED_UNIT(#750)PLANE_ANGLE_UNIT()); +#754=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#755=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.415000081568E-1),#749,'closure','Maximum model space distance between geometric entities at asserted connectivities'); +#756=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#755))GLOBAL_UNIT_ASSIGNED_CONTEXT((#749,#753,#754))REPRESENTATION_CONTEXT('ID2','3')); +#757=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); +#758=DIRECTION('',(0.E0,0.E0,1.E0)); +#759=DIRECTION('',(1.E0,0.E0,0.E0)); +#760=AXIS2_PLACEMENT_3D('',#757,#758,#759); +#762=APPLICATION_CONTEXT('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); +#763=APPLICATION_PROTOCOL_DEFINITION('international standard','config_control_design',1994,#762); +#764=DESIGN_CONTEXT('',#762,'design'); +#765=MECHANICAL_CONTEXT('',#762,'mechanical'); +#766=PRODUCT('MODULE','MODULE','NOT SPECIFIED',(#765)); +#767=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('5','LAST_VERSION',#766,.MADE.); +#773=CARTESIAN_POINT('',(1.E3,0.E0,0.E0)); +#774=DIRECTION('',(0.E0,0.E0,1.E0)); +#775=DIRECTION('',(1.E0,0.E0,0.E0)); +#776=AXIS2_PLACEMENT_3D('',#773,#774,#775); +#777=ITEM_DEFINED_TRANSFORMATION('','',#776,#760); +#778=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#777)SHAPE_REPRESENTATION_RELATIONSHIP()); +#779=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#778,#772); +#782=CARTESIAN_POINT('',(6.E2,0.E0,0.E0)); +#783=DIRECTION('',(0.E0,0.E0,1.E0)); +#784=DIRECTION('',(1.E0,0.E0,0.E0)); +#785=AXIS2_PLACEMENT_3D('',#782,#783,#784); +#786=ITEM_DEFINED_TRANSFORMATION('','',#785,#760); +#787=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#786)SHAPE_REPRESENTATION_RELATIONSHIP()); +#788=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#787,#781); +#791=CARTESIAN_POINT('',(2.E2,0.E0,0.E0)); +#792=DIRECTION('',(0.E0,0.E0,1.E0)); +#793=DIRECTION('',(1.E0,0.E0,0.E0)); +#794=AXIS2_PLACEMENT_3D('',#791,#792,#793); +#795=ITEM_DEFINED_TRANSFORMATION('','',#794,#760); +#796=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#795)SHAPE_REPRESENTATION_RELATIONSHIP()); +#797=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#796,#790); +#800=CARTESIAN_POINT('',(-2.E2,0.E0,0.E0)); +#801=DIRECTION('',(0.E0,0.E0,1.E0)); +#802=DIRECTION('',(1.E0,0.E0,0.E0)); +#803=AXIS2_PLACEMENT_3D('',#800,#801,#802); +#804=ITEM_DEFINED_TRANSFORMATION('','',#803,#760); +#805=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#804)SHAPE_REPRESENTATION_RELATIONSHIP()); +#806=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#805,#799); +#809=CARTESIAN_POINT('',(-6.E2,0.E0,0.E0)); +#810=DIRECTION('',(0.E0,0.E0,1.E0)); +#811=DIRECTION('',(1.E0,0.E0,0.E0)); +#812=AXIS2_PLACEMENT_3D('',#809,#810,#811); +#813=ITEM_DEFINED_TRANSFORMATION('','',#812,#760); +#814=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#813)SHAPE_REPRESENTATION_RELATIONSHIP()); +#815=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#814,#808); +#818=CARTESIAN_POINT('',(-1.E3,0.E0,0.E0)); +#819=DIRECTION('',(0.E0,0.E0,1.E0)); +#820=DIRECTION('',(1.E0,0.E0,0.E0)); +#821=AXIS2_PLACEMENT_3D('',#818,#819,#820); +#822=ITEM_DEFINED_TRANSFORMATION('','',#821,#760); +#823=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#822)SHAPE_REPRESENTATION_RELATIONSHIP()); +#824=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#823,#817); +#825=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#826=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); +#827=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#828=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#827); +#829=(CONVERSION_BASED_UNIT('DEGREE',#828)NAMED_UNIT(#826)PLANE_ANGLE_UNIT()); +#830=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#831=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.415000081568E-1),#825,'closure','Maximum model space distance between geometric entities at asserted connectivities'); +#832=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( +(#831))GLOBAL_UNIT_ASSIGNED_CONTEXT((#825,#829,#830))REPRESENTATION_CONTEXT +('ID3','3')); +#833=APPLICATION_CONTEXT +('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); +#834=APPLICATION_PROTOCOL_DEFINITION('international standard', +'config_control_design',1994,#833); +#835=DESIGN_CONTEXT('',#833,'design'); +#836=MECHANICAL_CONTEXT('',#833,'mechanical'); +#837=PRODUCT('ROD_PLACE_ASM','ROD_PLACE_ASM','NOT SPECIFIED',(#836)); +#838=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',#837,.MADE.); +#840=PRODUCT_CATEGORY('part',''); +#841=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','',(#837)); +#842=PRODUCT_CATEGORY_RELATIONSHIP('','',#840,#841); +#843=PRODUCT_CATEGORY('part',''); +#844=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#582,#766)); +#845=PRODUCT_CATEGORY_RELATIONSHIP('','',#843,#844); +#846=SECURITY_CLASSIFICATION_LEVEL('unclassified'); +#847=SECURITY_CLASSIFICATION('','',#846); +#848=CC_DESIGN_SECURITY_CLASSIFICATION(#847,(#583,#767,#838,#590,#771,#780,#789,#798,#807,#816)); +#849=APPROVAL_STATUS('approved'); +#850=APPROVAL(#849,''); +#851=CC_DESIGN_APPROVAL(#850,(#847,#583,#767,#838,#584,#768,#839)); +#852=CALENDAR_DATE(98,27,2); +#853=COORDINATED_UNIVERSAL_TIME_OFFSET(1,0,.AHEAD.); +#854=LOCAL_TIME(10,19,1.5E1,#853); +#855=DATE_AND_TIME(#852,#854); +#856=APPROVAL_DATE_TIME(#855,#850); +#857=DATE_TIME_ROLE('creation_date'); +#858=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#855,#857,(#584,#768,#839)); +#859=DATE_TIME_ROLE('classification_date'); +#860=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#855,#859,(#847)); +#861=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$); +#862=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED'); +#863=PERSON_AND_ORGANIZATION(#861,#862); +#864=APPROVAL_ROLE('approver'); +#865=APPROVAL_PERSON_ORGANIZATION(#863,#850,#864); +#866=PERSON_AND_ORGANIZATION_ROLE('creator'); +#867=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#866,(#583,#767,#838,#584,#768,#839)); +#868=PERSON_AND_ORGANIZATION_ROLE('design_supplier'); +#869=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#868,(#583,#767,#838)); +#870=PERSON_AND_ORGANIZATION_ROLE('classification_officer'); +#871=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#870,(#847)); +#872=PERSON_AND_ORGANIZATION_ROLE('design_owner'); +#873=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#872,(#837,#582,#766)); +#134=EDGE_CURVE('', #99,#100,'',#12,.T.); + +#136=EDGE_CURVE('', #99,#107,'',#4,.T.); + +#138=EDGE_CURVE('', #107,#108,'',#68,.T.); + +#140=EDGE_CURVE('', #100,#108,'',#96,.T.); + +#150=EDGE_CURVE('', #104,#99,'',#8,.T.); + +#153=EDGE_CURVE('', #100,#102,'',#16,.T.); + +#155=EDGE_CURVE('', #102,#118,'',#20,.T.); + +#157=EDGE_CURVE('', #116,#118,'',#24,.T.); + +#159=EDGE_CURVE('', #115,#116,'',#28,.T.); + +#161=EDGE_CURVE('', #120,#115,'',#32,.T.); + +#163=EDGE_CURVE('', #120,#104,'',#36,.T.); + +#174=EDGE_CURVE('', #104,#112,'',#40,.T.); + +#176=EDGE_CURVE('', #112,#107,'',#72,.T.); + +#187=EDGE_CURVE('', #120,#128,'',#52,.T.); + +#189=EDGE_CURVE('', #128,#112,'',#76,.T.); + +#201=EDGE_CURVE('', #102,#110,'',#44,.T.); + +#203=EDGE_CURVE('', #110,#126,'',#92,.T.); + +#205=EDGE_CURVE('', #118,#126,'',#48,.T.); + +#217=EDGE_CURVE('', #115,#123,'',#56,.T.); + +#219=EDGE_CURVE('', #128,#123,'',#80,.T.); + +#231=EDGE_CURVE('', #116,#124,'',#60,.T.); + +#233=EDGE_CURVE('', #123,#124,'',#84,.T.); + +#246=EDGE_CURVE('', #124,#126,'',#88,.T.); + +#257=EDGE_CURVE('', #108,#110,'',#64,.T.); + +#416=EDGE_CURVE('', #381,#382,'',#290,.T.); + +#418=EDGE_CURVE('', #381,#389,'',#286,.T.); + +#420=EDGE_CURVE('', #389,#390,'',#334,.T.); + +#422=EDGE_CURVE('', #382,#390,'',#322,.T.); + +#433=EDGE_CURVE('', #382,#384,'',#294,.T.); + +#435=EDGE_CURVE('', #384,#386,'',#298,.T.); + +#437=EDGE_CURVE('', #386,#402,'',#302,.T.); + +#439=EDGE_CURVE('', #400,#402,'',#306,.T.); + +#441=EDGE_CURVE('', #398,#400,'',#310,.T.); + +#443=EDGE_CURVE('', #397,#398,'',#314,.T.); + +#445=EDGE_CURVE('', #397,#381,'',#318,.T.); + +#457=EDGE_CURVE('', #390,#392,'',#330,.T.); + +#459=EDGE_CURVE('', #384,#392,'',#358,.T.); + +#469=EDGE_CURVE('', #392,#394,'',#326,.T.); + +#473=EDGE_CURVE('', #405,#389,'',#338,.T.); + +#475=EDGE_CURVE('', #405,#406,'',#342,.T.); + +#477=EDGE_CURVE('', #406,#408,'',#346,.T.); + +#479=EDGE_CURVE('', #408,#410,'',#350,.T.); + +#481=EDGE_CURVE('', #394,#410,'',#354,.T.); + +#494=EDGE_CURVE('', #386,#394,'',#362,.T.); + +#504=EDGE_CURVE('', #397,#405,'',#370,.T.); + +#519=EDGE_CURVE('', #402,#410,'',#366,.T.); + +#531=EDGE_CURVE('', #398,#406,'',#374,.T.); + +#544=EDGE_CURVE('', #400,#408,'',#378,.T.); + +#577=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#576,#282,#564),#572); +#584=PRODUCT_DEFINITION('design','',#583,#580); +#585=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD.',#584); +#586=SHAPE_DEFINITION_REPRESENTATION(#585,#577); +#587=SHAPE_DEFINITION_REPRESENTATION(#588,#589); +#588=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD_PLACE_ASM.',#839); +#589=SHAPE_REPRESENTATION('',(#595,#776,#785,#794,#803,#812,#821),#832); +#590=NEXT_ASSEMBLY_USAGE_OCCURRENCE('0','Next assembly relationship','',#839,#584,$); +#591=PRODUCT_DEFINITION_SHAPE('Placement #0','Placement of ROD with respect to ROD_PLACE_ASM',#590); +#668=EDGE_CURVE('', #649,#650,'',#602,.T.); + +#670=EDGE_CURVE('', #650,#652,'',#606,.T.); + +#672=EDGE_CURVE('', #652,#654,'',#610,.T.); + +#674=EDGE_CURVE('', #654,#649,'',#614,.T.); + +#685=EDGE_CURVE('', #649,#657,'',#618,.T.); + +#687=EDGE_CURVE('', #657,#658,'',#634,.T.); + +#689=EDGE_CURVE('', #650,#658,'',#630,.T.); + +#700=EDGE_CURVE('', #654,#662,'',#622,.T.); + +#702=EDGE_CURVE('', #662,#657,'',#638,.T.); + +#714=EDGE_CURVE('', #652,#660,'',#626,.T.); + +#716=EDGE_CURVE('', #660,#662,'',#642,.T.); + +#729=EDGE_CURVE('', #658,#660,'',#646,.T.); + +#761=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#760,#748),#756); +#768=PRODUCT_DEFINITION('design','',#767,#764); +#769=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR MODULE.',#768); +#770=SHAPE_DEFINITION_REPRESENTATION(#769,#761); +#771=NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','Next assembly relationship','',#839,#768,$); +#772=PRODUCT_DEFINITION_SHAPE('Placement #1','Placement of MODULE with respect to ROD_PLACE_ASM',#771); +#780=NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','Next assembly relationship','',#839,#768,$); +#781=PRODUCT_DEFINITION_SHAPE('Placement #2','Placement of MODULE with respect to ROD_PLACE_ASM',#780); +#789=NEXT_ASSEMBLY_USAGE_OCCURRENCE('3','Next assembly relationship','',#839,#768,$); +#790=PRODUCT_DEFINITION_SHAPE('Placement #3','Placement of MODULE with respect to ROD_PLACE_ASM',#789); +#798=NEXT_ASSEMBLY_USAGE_OCCURRENCE('4','Next assembly relationship','',#839,#768,$); +#799=PRODUCT_DEFINITION_SHAPE('Placement #4','Placement of MODULE with respect to ROD_PLACE_ASM',#798); +#807=NEXT_ASSEMBLY_USAGE_OCCURRENCE('5','Next assembly relationship','',#839,#768,$); +#808=PRODUCT_DEFINITION_SHAPE('Placement #5','Placement of MODULE with respect to ROD_PLACE_ASM',#807); +#816=NEXT_ASSEMBLY_USAGE_OCCURRENCE('6','Next assembly relationship','',#839,#768,$); +#817=PRODUCT_DEFINITION_SHAPE('Placement #6','Placement of MODULE with respect to ROD_PLACE_ASM',#816); +#839=PRODUCT_DEFINITION('design','',#838,#835); +ENDSEC; +END-ISO-10303-21; + + + + + + + + diff --git a/examples/extended/geometry/cad/stepfiles/G4rod_solid.stp b/examples/extended/geometry/cad/stepfiles/G4rod_solid.stp new file mode 100644 index 0000000000..ccd7e63056 --- /dev/null +++ b/examples/extended/geometry/cad/stepfiles/G4rod_solid.stp @@ -0,0 +1,2055 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION((''),'1'); +FILE_NAME('ROD_PLACE_ASM','1998-02-27T10:19:15',('oriunno'),(''),'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718','PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718',''); +FILE_SCHEMA(('CONFIG_CONTROL_DESIGN')); +ENDSEC; +DATA; +#1=DIRECTION('',(1.E0,0.E0,0.E0)); +#2=VECTOR('',#1,2.41E3); +#3=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#4=LINE('',#3,#2); +#5=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6=VECTOR('',#5,1.4E1); +#7=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#8=LINE('',#7,#6); +#9=DIRECTION('',(0.E0,1.E0,0.E0)); +#10=VECTOR('',#9,1.6E1); +#11=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#12=LINE('',#11,#10); +#13=DIRECTION('',(0.E0,0.E0,1.E0)); +#14=VECTOR('',#13,1.4E1); +#15=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#16=LINE('',#15,#14); +#17=DIRECTION('',(0.E0,-1.E0,0.E0)); +#18=VECTOR('',#17,1.5E0); +#19=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#20=LINE('',#19,#18); +#21=DIRECTION('',(0.E0,0.E0,1.E0)); +#22=VECTOR('',#21,1.25E1); +#23=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); +#24=LINE('',#23,#22); +#25=DIRECTION('',(0.E0,1.E0,0.E0)); +#26=VECTOR('',#25,1.3E1); +#27=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); +#28=LINE('',#27,#26); +#29=DIRECTION('',(0.E0,0.E0,-1.E0)); +#30=VECTOR('',#29,1.25E1); +#31=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#32=LINE('',#31,#30); +#33=DIRECTION('',(0.E0,-1.E0,0.E0)); +#34=VECTOR('',#33,1.5E0); +#35=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#36=LINE('',#35,#34); +#37=DIRECTION('',(1.E0,0.E0,0.E0)); +#38=VECTOR('',#37,2.41E3); +#39=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#40=LINE('',#39,#38); +#41=DIRECTION('',(1.E0,0.E0,0.E0)); +#42=VECTOR('',#41,2.41E3); +#43=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#44=LINE('',#43,#42); +#45=DIRECTION('',(1.E0,0.E0,0.E0)); +#46=VECTOR('',#45,2.41E3); +#47=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); +#48=LINE('',#47,#46); +#49=DIRECTION('',(1.E0,0.E0,0.E0)); +#50=VECTOR('',#49,2.41E3); +#51=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#52=LINE('',#51,#50); +#53=DIRECTION('',(1.E0,0.E0,0.E0)); +#54=VECTOR('',#53,2.41E3); +#55=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); +#56=LINE('',#55,#54); +#57=DIRECTION('',(1.E0,0.E0,0.E0)); +#58=VECTOR('',#57,2.41E3); +#59=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); +#60=LINE('',#59,#58); +#61=DIRECTION('',(0.E0,0.E0,1.E0)); +#62=VECTOR('',#61,1.4E1); +#63=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); +#64=LINE('',#63,#62); +#65=DIRECTION('',(0.E0,1.E0,0.E0)); +#66=VECTOR('',#65,1.6E1); +#67=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); +#68=LINE('',#67,#66); +#69=DIRECTION('',(0.E0,0.E0,-1.E0)); +#70=VECTOR('',#69,1.4E1); +#71=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); +#72=LINE('',#71,#70); +#73=DIRECTION('',(0.E0,-1.E0,0.E0)); +#74=VECTOR('',#73,1.5E0); +#75=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); +#76=LINE('',#75,#74); +#77=DIRECTION('',(0.E0,0.E0,-1.E0)); +#78=VECTOR('',#77,1.25E1); +#79=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); +#80=LINE('',#79,#78); +#81=DIRECTION('',(0.E0,1.E0,0.E0)); +#82=VECTOR('',#81,1.3E1); +#83=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); +#84=LINE('',#83,#82); +#85=DIRECTION('',(0.E0,0.E0,1.E0)); +#86=VECTOR('',#85,1.25E1); +#87=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); +#88=LINE('',#87,#86); +#89=DIRECTION('',(0.E0,-1.E0,0.E0)); +#90=VECTOR('',#89,1.5E0); +#91=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); +#92=LINE('',#91,#90); +#93=DIRECTION('',(1.E0,0.E0,0.E0)); +#94=VECTOR('',#93,2.41E3); +#95=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#96=LINE('',#95,#94); +#97=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#98=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#99=VERTEX_POINT('','',#97); +#100=VERTEX_POINT('','',#98); +#101=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#102=VERTEX_POINT('','',#101); +#103=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#104=VERTEX_POINT('','',#103); +#105=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); +#106=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); +#107=VERTEX_POINT('','',#105); +#108=VERTEX_POINT('','',#106); +#109=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); +#110=VERTEX_POINT('','',#109); +#111=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); +#112=VERTEX_POINT('','',#111); +#113=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); +#114=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); +#115=VERTEX_POINT('','',#113); +#116=VERTEX_POINT('','',#114); +#117=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); +#118=VERTEX_POINT('','',#117); +#119=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#120=VERTEX_POINT('','',#119); +#121=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); +#122=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); +#123=VERTEX_POINT('','',#121); +#124=VERTEX_POINT('','',#122); +#125=CARTESIAN_POINT('',(1.205E3,7.5E0,-6.4E1)); +#126=VERTEX_POINT('','',#125); +#127=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); +#128=VERTEX_POINT('','',#127); +#129=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); +#130=DIRECTION('',(0.E0,0.E0,-1.E0)); +#131=DIRECTION('',(0.E0,1.E0,0.E0)); +#132=AXIS2_PLACEMENT_3D('',#129,#130,#131); +#133=PLANE('',#132); +#135=ORIENTED_EDGE('',*,*,#134,.F.); +#137=ORIENTED_EDGE('',*,*,#136,.T.); +#139=ORIENTED_EDGE('',*,*,#138,.T.); +#141=ORIENTED_EDGE('',*,*,#140,.F.); +#142=EDGE_LOOP('','',(#135,#137,#139,#141)); +#143=FACE_OUTER_BOUND('',#142,.F.); +#144=ADVANCED_FACE('',(#143),'' ,#133,.T.); + +#145=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); +#146=DIRECTION('',(1.E0,0.E0,0.E0)); +#147=DIRECTION('',(0.E0,0.E0,1.E0)); +#148=AXIS2_PLACEMENT_3D('',#145,#146,#147); +#149=PLANE('',#148); +#151=ORIENTED_EDGE('',*,*,#150,.T.); +#152=ORIENTED_EDGE('',*,*,#134,.T.); +#154=ORIENTED_EDGE('',*,*,#153,.T.); +#156=ORIENTED_EDGE('',*,*,#155,.T.); +#158=ORIENTED_EDGE('',*,*,#157,.F.); +#160=ORIENTED_EDGE('',*,*,#159,.F.); +#162=ORIENTED_EDGE('',*,*,#161,.F.); +#164=ORIENTED_EDGE('',*,*,#163,.T.); +#165=EDGE_LOOP('','',(#151,#152,#154,#156,#158,#160,#162,#164)); +#166=FACE_OUTER_BOUND('',#165,.F.); +#167=ADVANCED_FACE('',(#166),'' ,#149,.F.); + +#168=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); +#169=DIRECTION('',(0.E0,-1.E0,0.E0)); +#170=DIRECTION('',(0.E0,0.E0,-1.E0)); +#171=AXIS2_PLACEMENT_3D('',#168,#169,#170); +#172=PLANE('',#171); +#173=ORIENTED_EDGE('',*,*,#150,.F.); +#175=ORIENTED_EDGE('',*,*,#174,.T.); +#177=ORIENTED_EDGE('',*,*,#176,.T.); +#178=ORIENTED_EDGE('',*,*,#136,.F.); +#179=EDGE_LOOP('','',(#173,#175,#177,#178)); +#180=FACE_OUTER_BOUND('',#179,.F.); +#181=ADVANCED_FACE('',(#180),'' ,#172,.T.); + +#182=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#183=DIRECTION('',(0.E0,0.E0,1.E0)); +#184=DIRECTION('',(0.E0,-1.E0,0.E0)); +#185=AXIS2_PLACEMENT_3D('',#182,#183,#184); +#186=PLANE('',#185); +#188=ORIENTED_EDGE('',*,*,#187,.T.); +#190=ORIENTED_EDGE('',*,*,#189,.T.); +#191=ORIENTED_EDGE('',*,*,#174,.F.); +#192=ORIENTED_EDGE('',*,*,#163,.F.); +#193=EDGE_LOOP('','',(#188,#190,#191,#192)); +#194=FACE_OUTER_BOUND('',#193,.F.); +#195=ADVANCED_FACE('',(#194),'' ,#186,.T.); + +#196=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); +#197=DIRECTION('',(0.E0,0.E0,1.E0)); +#198=DIRECTION('',(0.E0,-1.E0,0.E0)); +#199=AXIS2_PLACEMENT_3D('',#196,#197,#198); +#200=PLANE('',#199); +#202=ORIENTED_EDGE('',*,*,#201,.T.); +#204=ORIENTED_EDGE('',*,*,#203,.T.); +#206=ORIENTED_EDGE('',*,*,#205,.F.); +#207=ORIENTED_EDGE('',*,*,#155,.F.); +#208=EDGE_LOOP('','',(#202,#204,#206,#207)); +#209=FACE_OUTER_BOUND('',#208,.F.); +#210=ADVANCED_FACE('',(#209),'' ,#200,.T.); + +#211=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); +#212=DIRECTION('',(0.E0,-1.E0,0.E0)); +#213=DIRECTION('',(0.E0,0.E0,-1.E0)); +#214=AXIS2_PLACEMENT_3D('',#211,#212,#213); +#215=PLANE('',#214); +#216=ORIENTED_EDGE('',*,*,#161,.T.); +#218=ORIENTED_EDGE('',*,*,#217,.T.); +#220=ORIENTED_EDGE('',*,*,#219,.F.); +#221=ORIENTED_EDGE('',*,*,#187,.F.); +#222=EDGE_LOOP('','',(#216,#218,#220,#221)); +#223=FACE_OUTER_BOUND('',#222,.F.); +#224=ADVANCED_FACE('',(#223),'' ,#215,.F.); + +#225=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.65E1)); +#226=DIRECTION('',(0.E0,0.E0,-1.E0)); +#227=DIRECTION('',(0.E0,1.E0,0.E0)); +#228=AXIS2_PLACEMENT_3D('',#225,#226,#227); +#229=PLANE('',#228); +#230=ORIENTED_EDGE('',*,*,#159,.T.); +#232=ORIENTED_EDGE('',*,*,#231,.T.); +#234=ORIENTED_EDGE('',*,*,#233,.F.); +#235=ORIENTED_EDGE('',*,*,#217,.F.); +#236=EDGE_LOOP('','',(#230,#232,#234,#235)); +#237=FACE_OUTER_BOUND('',#236,.F.); +#238=ADVANCED_FACE('',(#237),'' ,#229,.F.); + +#239=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.8E1)); +#240=DIRECTION('',(0.E0,1.E0,0.E0)); +#241=DIRECTION('',(0.E0,0.E0,1.E0)); +#242=AXIS2_PLACEMENT_3D('',#239,#240,#241); +#243=PLANE('',#242); +#244=ORIENTED_EDGE('',*,*,#157,.T.); +#245=ORIENTED_EDGE('',*,*,#205,.T.); +#247=ORIENTED_EDGE('',*,*,#246,.F.); +#248=ORIENTED_EDGE('',*,*,#231,.F.); +#249=EDGE_LOOP('','',(#244,#245,#247,#248)); +#250=FACE_OUTER_BOUND('',#249,.F.); +#251=ADVANCED_FACE('',(#250),'' ,#243,.F.); + +#252=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); +#253=DIRECTION('',(1.E0,0.E0,0.E0)); +#254=DIRECTION('',(0.E0,0.E0,1.E0)); +#255=AXIS2_PLACEMENT_3D('',#252,#253,#254); +#256=PLANE('',#255); +#258=ORIENTED_EDGE('',*,*,#257,.F.); +#259=ORIENTED_EDGE('',*,*,#138,.F.); +#260=ORIENTED_EDGE('',*,*,#176,.F.); +#261=ORIENTED_EDGE('',*,*,#189,.F.); +#262=ORIENTED_EDGE('',*,*,#219,.T.); +#263=ORIENTED_EDGE('',*,*,#233,.T.); +#264=ORIENTED_EDGE('',*,*,#246,.T.); +#265=ORIENTED_EDGE('',*,*,#203,.F.); +#266=EDGE_LOOP('','',(#258,#259,#260,#261,#262,#263,#264,#265)); +#267=FACE_OUTER_BOUND('',#266,.F.); +#268=ADVANCED_FACE('',(#267),'' ,#256,.T.); + +#269=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); +#270=DIRECTION('',(0.E0,1.E0,0.E0)); +#271=DIRECTION('',(0.E0,0.E0,1.E0)); +#272=AXIS2_PLACEMENT_3D('',#269,#270,#271); +#273=PLANE('',#272); +#274=ORIENTED_EDGE('',*,*,#153,.F.); +#275=ORIENTED_EDGE('',*,*,#140,.T.); +#276=ORIENTED_EDGE('',*,*,#257,.T.); +#277=ORIENTED_EDGE('',*,*,#201,.F.); +#278=EDGE_LOOP('','',(#274,#275,#276,#277)); +#279=FACE_OUTER_BOUND('',#278,.F.); +#280=ADVANCED_FACE('',(#279),'' ,#273,.T.); + +#281=CLOSED_SHELL('',(#144,#167,#181,#195,#210,#224,#238,#251,#268,#280)); +#282=MANIFOLD_SOLID_BREP('',#281); +#283=DIRECTION('',(1.E0,0.E0,0.E0)); +#284=VECTOR('',#283,2.41E3); +#285=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#286=LINE('',#285,#284); +#287=DIRECTION('',(0.E0,0.E0,1.E0)); +#288=VECTOR('',#287,1.4E1); +#289=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#290=LINE('',#289,#288); +#291=DIRECTION('',(0.E0,-1.E0,0.E0)); +#292=VECTOR('',#291,1.6E1); +#293=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#294=LINE('',#293,#292); +#295=DIRECTION('',(0.E0,0.E0,-1.E0)); +#296=VECTOR('',#295,1.4E1); +#297=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#298=LINE('',#297,#296); +#299=DIRECTION('',(0.E0,1.E0,0.E0)); +#300=VECTOR('',#299,1.5E0); +#301=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#302=LINE('',#301,#300); +#303=DIRECTION('',(0.E0,0.E0,-1.E0)); +#304=VECTOR('',#303,1.25E1); +#305=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); +#306=LINE('',#305,#304); +#307=DIRECTION('',(0.E0,-1.E0,0.E0)); +#308=VECTOR('',#307,1.3E1); +#309=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); +#310=LINE('',#309,#308); +#311=DIRECTION('',(0.E0,0.E0,1.E0)); +#312=VECTOR('',#311,1.25E1); +#313=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#314=LINE('',#313,#312); +#315=DIRECTION('',(0.E0,1.E0,0.E0)); +#316=VECTOR('',#315,1.5E0); +#317=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#318=LINE('',#317,#316); +#319=DIRECTION('',(1.E0,0.E0,0.E0)); +#320=VECTOR('',#319,2.41E3); +#321=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#322=LINE('',#321,#320); +#323=DIRECTION('',(0.E0,0.E0,-1.E0)); +#324=VECTOR('',#323,1.4E1); +#325=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); +#326=LINE('',#325,#324); +#327=DIRECTION('',(0.E0,-1.E0,0.E0)); +#328=VECTOR('',#327,1.6E1); +#329=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); +#330=LINE('',#329,#328); +#331=DIRECTION('',(0.E0,0.E0,1.E0)); +#332=VECTOR('',#331,1.4E1); +#333=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); +#334=LINE('',#333,#332); +#335=DIRECTION('',(0.E0,1.E0,0.E0)); +#336=VECTOR('',#335,1.5E0); +#337=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); +#338=LINE('',#337,#336); +#339=DIRECTION('',(0.E0,0.E0,1.E0)); +#340=VECTOR('',#339,1.25E1); +#341=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); +#342=LINE('',#341,#340); +#343=DIRECTION('',(0.E0,-1.E0,0.E0)); +#344=VECTOR('',#343,1.3E1); +#345=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); +#346=LINE('',#345,#344); +#347=DIRECTION('',(0.E0,0.E0,-1.E0)); +#348=VECTOR('',#347,1.25E1); +#349=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); +#350=LINE('',#349,#348); +#351=DIRECTION('',(0.E0,1.E0,0.E0)); +#352=VECTOR('',#351,1.5E0); +#353=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); +#354=LINE('',#353,#352); +#355=DIRECTION('',(1.E0,0.E0,0.E0)); +#356=VECTOR('',#355,2.41E3); +#357=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#358=LINE('',#357,#356); +#359=DIRECTION('',(1.E0,0.E0,0.E0)); +#360=VECTOR('',#359,2.41E3); +#361=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#362=LINE('',#361,#360); +#363=DIRECTION('',(1.E0,0.E0,0.E0)); +#364=VECTOR('',#363,2.41E3); +#365=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); +#366=LINE('',#365,#364); +#367=DIRECTION('',(1.E0,0.E0,0.E0)); +#368=VECTOR('',#367,2.41E3); +#369=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#370=LINE('',#369,#368); +#371=DIRECTION('',(1.E0,0.E0,0.E0)); +#372=VECTOR('',#371,2.41E3); +#373=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); +#374=LINE('',#373,#372); +#375=DIRECTION('',(1.E0,0.E0,0.E0)); +#376=VECTOR('',#375,2.41E3); +#377=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); +#378=LINE('',#377,#376); +#379=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#380=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#381=VERTEX_POINT('','',#379); +#382=VERTEX_POINT('','',#380); +#383=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#384=VERTEX_POINT('','',#383); +#385=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#386=VERTEX_POINT('','',#385); +#387=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); +#388=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); +#389=VERTEX_POINT('','',#387); +#390=VERTEX_POINT('','',#388); +#391=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); +#392=VERTEX_POINT('','',#391); +#393=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); +#394=VERTEX_POINT('','',#393); +#395=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#396=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); +#397=VERTEX_POINT('','',#395); +#398=VERTEX_POINT('','',#396); +#399=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); +#400=VERTEX_POINT('','',#399); +#401=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); +#402=VERTEX_POINT('','',#401); +#403=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); +#404=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); +#405=VERTEX_POINT('','',#403); +#406=VERTEX_POINT('','',#404); +#407=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); +#408=VERTEX_POINT('','',#407); +#409=CARTESIAN_POINT('',(1.205E3,-5.5E0,6.4E1)); +#410=VERTEX_POINT('','',#409); +#411=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); +#412=DIRECTION('',(0.E0,1.E0,0.E0)); +#413=DIRECTION('',(0.E0,0.E0,1.E0)); +#414=AXIS2_PLACEMENT_3D('',#411,#412,#413); +#415=PLANE('',#414); +#417=ORIENTED_EDGE('',*,*,#416,.F.); +#419=ORIENTED_EDGE('',*,*,#418,.T.); +#421=ORIENTED_EDGE('',*,*,#420,.T.); +#423=ORIENTED_EDGE('',*,*,#422,.F.); +#424=EDGE_LOOP('','',(#417,#419,#421,#423)); +#425=FACE_OUTER_BOUND('',#424,.F.); +#426=ADVANCED_FACE('',(#425),'' ,#415,.T.); + +#427=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); +#428=DIRECTION('',(1.E0,0.E0,0.E0)); +#429=DIRECTION('',(0.E0,0.E0,1.E0)); +#430=AXIS2_PLACEMENT_3D('',#427,#428,#429); +#431=PLANE('',#430); +#432=ORIENTED_EDGE('',*,*,#416,.T.); +#434=ORIENTED_EDGE('',*,*,#433,.T.); +#436=ORIENTED_EDGE('',*,*,#435,.T.); +#438=ORIENTED_EDGE('',*,*,#437,.T.); +#440=ORIENTED_EDGE('',*,*,#439,.F.); +#442=ORIENTED_EDGE('',*,*,#441,.F.); +#444=ORIENTED_EDGE('',*,*,#443,.F.); +#446=ORIENTED_EDGE('',*,*,#445,.T.); +#447=EDGE_LOOP('','',(#432,#434,#436,#438,#440,#442,#444,#446)); +#448=FACE_OUTER_BOUND('',#447,.F.); +#449=ADVANCED_FACE('',(#448),'' ,#431,.F.); + +#450=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); +#451=DIRECTION('',(0.E0,0.E0,1.E0)); +#452=DIRECTION('',(0.E0,-1.E0,0.E0)); +#453=AXIS2_PLACEMENT_3D('',#450,#451,#452); +#454=PLANE('',#453); +#455=ORIENTED_EDGE('',*,*,#433,.F.); +#456=ORIENTED_EDGE('',*,*,#422,.T.); +#458=ORIENTED_EDGE('',*,*,#457,.T.); +#460=ORIENTED_EDGE('',*,*,#459,.F.); +#461=EDGE_LOOP('','',(#455,#456,#458,#460)); +#462=FACE_OUTER_BOUND('',#461,.F.); +#463=ADVANCED_FACE('',(#462),'' ,#454,.T.); + +#464=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); +#465=DIRECTION('',(1.E0,0.E0,0.E0)); +#466=DIRECTION('',(0.E0,0.E0,1.E0)); +#467=AXIS2_PLACEMENT_3D('',#464,#465,#466); +#468=PLANE('',#467); +#470=ORIENTED_EDGE('',*,*,#469,.F.); +#471=ORIENTED_EDGE('',*,*,#457,.F.); +#472=ORIENTED_EDGE('',*,*,#420,.F.); +#474=ORIENTED_EDGE('',*,*,#473,.F.); +#476=ORIENTED_EDGE('',*,*,#475,.T.); +#478=ORIENTED_EDGE('',*,*,#477,.T.); +#480=ORIENTED_EDGE('',*,*,#479,.T.); +#482=ORIENTED_EDGE('',*,*,#481,.F.); +#483=EDGE_LOOP('','',(#470,#471,#472,#474,#476,#478,#480,#482)); +#484=FACE_OUTER_BOUND('',#483,.F.); +#485=ADVANCED_FACE('',(#484),'' ,#468,.T.); + +#486=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); +#487=DIRECTION('',(0.E0,-1.E0,0.E0)); +#488=DIRECTION('',(0.E0,0.E0,-1.E0)); +#489=AXIS2_PLACEMENT_3D('',#486,#487,#488); +#490=PLANE('',#489); +#491=ORIENTED_EDGE('',*,*,#435,.F.); +#492=ORIENTED_EDGE('',*,*,#459,.T.); +#493=ORIENTED_EDGE('',*,*,#469,.T.); +#495=ORIENTED_EDGE('',*,*,#494,.F.); +#496=EDGE_LOOP('','',(#491,#492,#493,#495)); +#497=FACE_OUTER_BOUND('',#496,.F.); +#498=ADVANCED_FACE('',(#497),'' ,#490,.T.); + +#499=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#500=DIRECTION('',(0.E0,0.E0,-1.E0)); +#501=DIRECTION('',(0.E0,1.E0,0.E0)); +#502=AXIS2_PLACEMENT_3D('',#499,#500,#501); +#503=PLANE('',#502); +#505=ORIENTED_EDGE('',*,*,#504,.T.); +#506=ORIENTED_EDGE('',*,*,#473,.T.); +#507=ORIENTED_EDGE('',*,*,#418,.F.); +#508=ORIENTED_EDGE('',*,*,#445,.F.); +#509=EDGE_LOOP('','',(#505,#506,#507,#508)); +#510=FACE_OUTER_BOUND('',#509,.F.); +#511=ADVANCED_FACE('',(#510),'' ,#503,.T.); + +#512=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); +#513=DIRECTION('',(0.E0,0.E0,-1.E0)); +#514=DIRECTION('',(0.E0,1.E0,0.E0)); +#515=AXIS2_PLACEMENT_3D('',#512,#513,#514); +#516=PLANE('',#515); +#517=ORIENTED_EDGE('',*,*,#494,.T.); +#518=ORIENTED_EDGE('',*,*,#481,.T.); +#520=ORIENTED_EDGE('',*,*,#519,.F.); +#521=ORIENTED_EDGE('',*,*,#437,.F.); +#522=EDGE_LOOP('','',(#517,#518,#520,#521)); +#523=FACE_OUTER_BOUND('',#522,.F.); +#524=ADVANCED_FACE('',(#523),'' ,#516,.T.); + +#525=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); +#526=DIRECTION('',(0.E0,1.E0,0.E0)); +#527=DIRECTION('',(0.E0,0.E0,1.E0)); +#528=AXIS2_PLACEMENT_3D('',#525,#526,#527); +#529=PLANE('',#528); +#530=ORIENTED_EDGE('',*,*,#443,.T.); +#532=ORIENTED_EDGE('',*,*,#531,.T.); +#533=ORIENTED_EDGE('',*,*,#475,.F.); +#534=ORIENTED_EDGE('',*,*,#504,.F.); +#535=EDGE_LOOP('','',(#530,#532,#533,#534)); +#536=FACE_OUTER_BOUND('',#535,.F.); +#537=ADVANCED_FACE('',(#536),'' ,#529,.F.); + +#538=CARTESIAN_POINT('',(-1.205E3,9.E0,7.65E1)); +#539=DIRECTION('',(0.E0,0.E0,1.E0)); +#540=DIRECTION('',(0.E0,-1.E0,0.E0)); +#541=AXIS2_PLACEMENT_3D('',#538,#539,#540); +#542=PLANE('',#541); +#543=ORIENTED_EDGE('',*,*,#441,.T.); +#545=ORIENTED_EDGE('',*,*,#544,.T.); +#546=ORIENTED_EDGE('',*,*,#477,.F.); +#547=ORIENTED_EDGE('',*,*,#531,.F.); +#548=EDGE_LOOP('','',(#543,#545,#546,#547)); +#549=FACE_OUTER_BOUND('',#548,.F.); +#550=ADVANCED_FACE('',(#549),'' ,#542,.F.); + +#551=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.8E1)); +#552=DIRECTION('',(0.E0,-1.E0,0.E0)); +#553=DIRECTION('',(0.E0,0.E0,-1.E0)); +#554=AXIS2_PLACEMENT_3D('',#551,#552,#553); +#555=PLANE('',#554); +#556=ORIENTED_EDGE('',*,*,#439,.T.); +#557=ORIENTED_EDGE('',*,*,#519,.T.); +#558=ORIENTED_EDGE('',*,*,#479,.F.); +#559=ORIENTED_EDGE('',*,*,#544,.F.); +#560=EDGE_LOOP('','',(#556,#557,#558,#559)); +#561=FACE_OUTER_BOUND('',#560,.F.); +#562=ADVANCED_FACE('',(#561),'' ,#555,.F.); + +#563=CLOSED_SHELL('',(#426,#449,#463,#485,#498,#511,#524,#537,#550,#562)); +#564=MANIFOLD_SOLID_BREP('',#563); +#565=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#566=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); +#567=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#568=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#567); +#569=(CONVERSION_BASED_UNIT('DEGREE',#568)NAMED_UNIT(#566)PLANE_ANGLE_UNIT()); +#570=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#571=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.434971384778E-1),#565, +'closure', +'Maximum model space distance between geometric entities at asserted connectivities'); +#572=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( +(#571))GLOBAL_UNIT_ASSIGNED_CONTEXT((#565,#569,#570))REPRESENTATION_CONTEXT +('ID1','3')); +#573=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); +#574=DIRECTION('',(0.E0,0.E0,1.E0)); +#575=DIRECTION('',(1.E0,0.E0,0.E0)); +#576=AXIS2_PLACEMENT_3D('',#573,#574,#575); +#578=APPLICATION_CONTEXT +('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); +#579=APPLICATION_PROTOCOL_DEFINITION('international standard', +'config_control_design',1994,#578); +#580=DESIGN_CONTEXT('',#578,'design'); +#581=MECHANICAL_CONTEXT('',#578,'mechanical'); +#582=PRODUCT('ROD','ROD','NOT SPECIFIED',(#581)); +#583=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('6','LAST_VERSION',#582, +.MADE.); +#592=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); +#593=DIRECTION('',(0.E0,0.E0,1.E0)); +#594=DIRECTION('',(1.E0,0.E0,0.E0)); +#595=AXIS2_PLACEMENT_3D('',#592,#593,#594); +#596=ITEM_DEFINED_TRANSFORMATION('','',#595,#576); +#597=(REPRESENTATION_RELATIONSHIP('','',#589,#577)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#596)SHAPE_REPRESENTATION_RELATIONSHIP()); +#598=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#597,#591); +#599=DIRECTION('',(1.E0,0.E0,0.E0)); +#600=VECTOR('',#599,3.4E2); +#601=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#602=LINE('',#601,#600); +#603=DIRECTION('',(0.E0,0.E0,-1.E0)); +#604=VECTOR('',#603,1.05E2); +#605=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#606=LINE('',#605,#604); +#607=DIRECTION('',(-1.E0,0.E0,0.E0)); +#608=VECTOR('',#607,3.4E2); +#609=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#610=LINE('',#609,#608); +#611=DIRECTION('',(0.E0,0.E0,1.E0)); +#612=VECTOR('',#611,1.05E2); +#613=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#614=LINE('',#613,#612); +#615=DIRECTION('',(0.E0,1.E0,0.E0)); +#616=VECTOR('',#615,4.5E0); +#617=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#618=LINE('',#617,#616); +#619=DIRECTION('',(0.E0,1.E0,0.E0)); +#620=VECTOR('',#619,4.5E0); +#621=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#622=LINE('',#621,#620); +#623=DIRECTION('',(0.E0,1.E0,0.E0)); +#624=VECTOR('',#623,4.5E0); +#625=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#626=LINE('',#625,#624); +#627=DIRECTION('',(0.E0,1.E0,0.E0)); +#628=VECTOR('',#627,4.5E0); +#629=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#630=LINE('',#629,#628); +#631=DIRECTION('',(1.E0,0.E0,0.E0)); +#632=VECTOR('',#631,3.4E2); +#633=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); +#634=LINE('',#633,#632); +#635=DIRECTION('',(0.E0,0.E0,1.E0)); +#636=VECTOR('',#635,1.05E2); +#637=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); +#638=LINE('',#637,#636); +#639=DIRECTION('',(-1.E0,0.E0,0.E0)); +#640=VECTOR('',#639,3.4E2); +#641=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); +#642=LINE('',#641,#640); +#643=DIRECTION('',(0.E0,0.E0,-1.E0)); +#644=VECTOR('',#643,1.05E2); +#645=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); +#646=LINE('',#645,#644); +#647=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#648=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#649=VERTEX_POINT('','',#647); +#650=VERTEX_POINT('','',#648); +#651=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#652=VERTEX_POINT('','',#651); +#653=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#654=VERTEX_POINT('','',#653); +#655=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); +#656=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); +#657=VERTEX_POINT('','',#655); +#658=VERTEX_POINT('','',#656); +#659=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); +#660=VERTEX_POINT('','',#659); +#661=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); +#662=VERTEX_POINT('','',#661); +#663=CARTESIAN_POINT('',(0.E0,-2.25E0,0.E0)); +#664=DIRECTION('',(0.E0,1.E0,0.E0)); +#665=DIRECTION('',(0.E0,0.E0,-1.E0)); +#666=AXIS2_PLACEMENT_3D('',#663,#664,#665); +#667=PLANE('',#666); +#669=ORIENTED_EDGE('',*,*,#668,.T.); +#671=ORIENTED_EDGE('',*,*,#670,.T.); +#673=ORIENTED_EDGE('',*,*,#672,.T.); +#675=ORIENTED_EDGE('',*,*,#674,.T.); +#676=EDGE_LOOP('','',(#669,#671,#673,#675)); +#677=FACE_OUTER_BOUND('',#676,.F.); +#678=ADVANCED_FACE('',(#677),'' ,#667,.F.); + +#679=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); +#680=DIRECTION('',(0.E0,0.E0,1.E0)); +#681=DIRECTION('',(1.E0,0.E0,0.E0)); +#682=AXIS2_PLACEMENT_3D('',#679,#680,#681); +#683=PLANE('',#682); +#684=ORIENTED_EDGE('',*,*,#668,.F.); +#686=ORIENTED_EDGE('',*,*,#685,.T.); +#688=ORIENTED_EDGE('',*,*,#687,.T.); +#690=ORIENTED_EDGE('',*,*,#689,.F.); +#691=EDGE_LOOP('','',(#684,#686,#688,#690)); +#692=FACE_OUTER_BOUND('',#691,.F.); +#693=ADVANCED_FACE('',(#692),'' ,#683,.T.); + +#694=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); +#695=DIRECTION('',(-1.E0,0.E0,0.E0)); +#696=DIRECTION('',(0.E0,0.E0,1.E0)); +#697=AXIS2_PLACEMENT_3D('',#694,#695,#696); +#698=PLANE('',#697); +#699=ORIENTED_EDGE('',*,*,#674,.F.); +#701=ORIENTED_EDGE('',*,*,#700,.T.); +#703=ORIENTED_EDGE('',*,*,#702,.T.); +#704=ORIENTED_EDGE('',*,*,#685,.F.); +#705=EDGE_LOOP('','',(#699,#701,#703,#704)); +#706=FACE_OUTER_BOUND('',#705,.F.); +#707=ADVANCED_FACE('',(#706),'' ,#698,.T.); + +#708=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); +#709=DIRECTION('',(0.E0,0.E0,-1.E0)); +#710=DIRECTION('',(-1.E0,0.E0,0.E0)); +#711=AXIS2_PLACEMENT_3D('',#708,#709,#710); +#712=PLANE('',#711); +#713=ORIENTED_EDGE('',*,*,#672,.F.); +#715=ORIENTED_EDGE('',*,*,#714,.T.); +#717=ORIENTED_EDGE('',*,*,#716,.T.); +#718=ORIENTED_EDGE('',*,*,#700,.F.); +#719=EDGE_LOOP('','',(#713,#715,#717,#718)); +#720=FACE_OUTER_BOUND('',#719,.F.); +#721=ADVANCED_FACE('',(#720),'' ,#712,.T.); + +#722=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); +#723=DIRECTION('',(1.E0,0.E0,0.E0)); +#724=DIRECTION('',(0.E0,0.E0,-1.E0)); +#725=AXIS2_PLACEMENT_3D('',#722,#723,#724); +#726=PLANE('',#725); +#727=ORIENTED_EDGE('',*,*,#670,.F.); +#728=ORIENTED_EDGE('',*,*,#689,.T.); +#730=ORIENTED_EDGE('',*,*,#729,.T.); +#731=ORIENTED_EDGE('',*,*,#714,.F.); +#732=EDGE_LOOP('','',(#727,#728,#730,#731)); +#733=FACE_OUTER_BOUND('',#732,.F.); +#734=ADVANCED_FACE('',(#733),'' ,#726,.T.); + +#735=CARTESIAN_POINT('',(0.E0,2.25E0,0.E0)); +#736=DIRECTION('',(0.E0,1.E0,0.E0)); +#737=DIRECTION('',(0.E0,0.E0,-1.E0)); +#738=AXIS2_PLACEMENT_3D('',#735,#736,#737); +#739=PLANE('',#738); +#740=ORIENTED_EDGE('',*,*,#687,.F.); +#741=ORIENTED_EDGE('',*,*,#702,.F.); +#742=ORIENTED_EDGE('',*,*,#716,.F.); +#743=ORIENTED_EDGE('',*,*,#729,.F.); +#744=EDGE_LOOP('','',(#740,#741,#742,#743)); +#745=FACE_OUTER_BOUND('',#744,.F.); +#746=ADVANCED_FACE('',(#745),'' ,#739,.T.); + +#747=CLOSED_SHELL('',(#678,#693,#707,#721,#734,#746)); +#748=MANIFOLD_SOLID_BREP('',#747); +#749=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#750=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); +#751=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#752=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#751); +#753=(CONVERSION_BASED_UNIT('DEGREE',#752)NAMED_UNIT(#750)PLANE_ANGLE_UNIT()); +#754=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#755=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.434971384778E-1),#749, +'closure', +'Maximum model space distance between geometric entities at asserted connectivities'); +#756=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( +(#755))GLOBAL_UNIT_ASSIGNED_CONTEXT((#749,#753,#754))REPRESENTATION_CONTEXT +('ID2','3')); +#757=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); +#758=DIRECTION('',(0.E0,0.E0,1.E0)); +#759=DIRECTION('',(1.E0,0.E0,0.E0)); +#760=AXIS2_PLACEMENT_3D('',#757,#758,#759); +#762=APPLICATION_CONTEXT +('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); +#763=APPLICATION_PROTOCOL_DEFINITION('international standard', +'config_control_design',1994,#762); +#764=DESIGN_CONTEXT('',#762,'design'); +#765=MECHANICAL_CONTEXT('',#762,'mechanical'); +#766=PRODUCT('MODULE','MODULE','NOT SPECIFIED',(#765)); +#767=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('5','LAST_VERSION',#766, +.MADE.); +#773=CARTESIAN_POINT('',(9.88E2,6.E0,0.E0)); +#774=DIRECTION('',(0.E0,0.E0,1.E0)); +#775=DIRECTION('',(1.E0,0.E0,0.E0)); +#776=AXIS2_PLACEMENT_3D('',#773,#774,#775); +#777=ITEM_DEFINED_TRANSFORMATION('','',#776,#760); +#778=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#777)SHAPE_REPRESENTATION_RELATIONSHIP()); +#779=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#778,#772); +#782=CARTESIAN_POINT('',(4.94E2,6.E0,0.E0)); +#783=DIRECTION('',(0.E0,0.E0,1.E0)); +#784=DIRECTION('',(1.E0,0.E0,0.E0)); +#785=AXIS2_PLACEMENT_3D('',#782,#783,#784); +#786=ITEM_DEFINED_TRANSFORMATION('','',#785,#760); +#787=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#786)SHAPE_REPRESENTATION_RELATIONSHIP()); +#788=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#787,#781); +#791=CARTESIAN_POINT('',(0.E0,6.E0,0.E0)); +#792=DIRECTION('',(0.E0,0.E0,1.E0)); +#793=DIRECTION('',(1.E0,0.E0,0.E0)); +#794=AXIS2_PLACEMENT_3D('',#791,#792,#793); +#795=ITEM_DEFINED_TRANSFORMATION('','',#794,#760); +#796=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#795)SHAPE_REPRESENTATION_RELATIONSHIP()); +#797=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#796,#790); +#800=CARTESIAN_POINT('',(-4.94E2,6.E0,0.E0)); +#801=DIRECTION('',(0.E0,0.E0,1.E0)); +#802=DIRECTION('',(1.E0,0.E0,0.E0)); +#803=AXIS2_PLACEMENT_3D('',#800,#801,#802); +#804=ITEM_DEFINED_TRANSFORMATION('','',#803,#760); +#805=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#804)SHAPE_REPRESENTATION_RELATIONSHIP()); +#806=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#805,#799); +#809=CARTESIAN_POINT('',(-9.88E2,6.E0,0.E0)); +#810=DIRECTION('',(0.E0,0.E0,1.E0)); +#811=DIRECTION('',(1.E0,0.E0,0.E0)); +#812=AXIS2_PLACEMENT_3D('',#809,#810,#811); +#813=ITEM_DEFINED_TRANSFORMATION('','',#812,#760); +#814=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#813)SHAPE_REPRESENTATION_RELATIONSHIP()); +#815=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#814,#808); +#818=CARTESIAN_POINT('',(7.41E2,-6.E0,0.E0)); +#819=DIRECTION('',(0.E0,0.E0,1.E0)); +#820=DIRECTION('',(1.E0,0.E0,0.E0)); +#821=AXIS2_PLACEMENT_3D('',#818,#819,#820); +#822=ITEM_DEFINED_TRANSFORMATION('','',#821,#760); +#823=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#822)SHAPE_REPRESENTATION_RELATIONSHIP()); +#824=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#823,#817); +#827=CARTESIAN_POINT('',(2.47E2,-6.E0,0.E0)); +#828=DIRECTION('',(0.E0,0.E0,1.E0)); +#829=DIRECTION('',(1.E0,0.E0,0.E0)); +#830=AXIS2_PLACEMENT_3D('',#827,#828,#829); +#831=ITEM_DEFINED_TRANSFORMATION('','',#830,#760); +#832=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#831)SHAPE_REPRESENTATION_RELATIONSHIP()); +#833=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#832,#826); +#836=CARTESIAN_POINT('',(-2.47E2,-6.E0,0.E0)); +#837=DIRECTION('',(0.E0,0.E0,1.E0)); +#838=DIRECTION('',(1.E0,0.E0,0.E0)); +#839=AXIS2_PLACEMENT_3D('',#836,#837,#838); +#840=ITEM_DEFINED_TRANSFORMATION('','',#839,#760); +#841=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#840)SHAPE_REPRESENTATION_RELATIONSHIP()); +#842=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#841,#835); +#845=CARTESIAN_POINT('',(-7.41E2,-6.E0,0.E0)); +#846=DIRECTION('',(0.E0,0.E0,1.E0)); +#847=DIRECTION('',(1.E0,0.E0,0.E0)); +#848=AXIS2_PLACEMENT_3D('',#845,#846,#847); +#849=ITEM_DEFINED_TRANSFORMATION('','',#848,#760); +#850=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#849)SHAPE_REPRESENTATION_RELATIONSHIP()); +#851=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#850,#844); +#852=DIRECTION('',(-1.E0,0.E0,0.E0)); +#853=VECTOR('',#852,1.6E1); +#854=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); +#855=LINE('',#854,#853); +#856=DIRECTION('',(0.E0,0.E0,1.E0)); +#857=VECTOR('',#856,1.56E2); +#858=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); +#859=LINE('',#858,#857); +#860=DIRECTION('',(1.E0,0.E0,0.E0)); +#861=VECTOR('',#860,1.6E1); +#862=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); +#863=LINE('',#862,#861); +#864=DIRECTION('',(0.E0,0.E0,-1.E0)); +#865=VECTOR('',#864,1.56E2); +#866=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); +#867=LINE('',#866,#865); +#868=DIRECTION('',(0.E0,1.E0,0.E0)); +#869=VECTOR('',#868,1.E1); +#870=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); +#871=LINE('',#870,#869); +#872=DIRECTION('',(0.E0,1.E0,0.E0)); +#873=VECTOR('',#872,1.E1); +#874=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); +#875=LINE('',#874,#873); +#876=DIRECTION('',(0.E0,1.E0,0.E0)); +#877=VECTOR('',#876,1.E1); +#878=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); +#879=LINE('',#878,#877); +#880=DIRECTION('',(0.E0,1.E0,0.E0)); +#881=VECTOR('',#880,1.E1); +#882=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); +#883=LINE('',#882,#881); +#884=DIRECTION('',(-1.E0,0.E0,0.E0)); +#885=VECTOR('',#884,1.6E1); +#886=CARTESIAN_POINT('',(7.E0,5.E0,-7.8E1)); +#887=LINE('',#886,#885); +#888=DIRECTION('',(0.E0,0.E0,-1.E0)); +#889=VECTOR('',#888,1.56E2); +#890=CARTESIAN_POINT('',(7.E0,5.E0,7.8E1)); +#891=LINE('',#890,#889); +#892=DIRECTION('',(1.E0,0.E0,0.E0)); +#893=VECTOR('',#892,1.6E1); +#894=CARTESIAN_POINT('',(-9.E0,5.E0,7.8E1)); +#895=LINE('',#894,#893); +#896=DIRECTION('',(0.E0,0.E0,1.E0)); +#897=VECTOR('',#896,1.56E2); +#898=CARTESIAN_POINT('',(-9.E0,5.E0,-7.8E1)); +#899=LINE('',#898,#897); +#900=DIRECTION('',(-1.E0,0.E0,0.E0)); +#901=VECTOR('',#900,1.3E1); +#902=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); +#903=LINE('',#902,#901); +#904=DIRECTION('',(0.E0,0.E0,1.E0)); +#905=VECTOR('',#904,1.25E1); +#906=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); +#907=LINE('',#906,#905); +#908=DIRECTION('',(1.E0,0.E0,0.E0)); +#909=VECTOR('',#908,1.3E1); +#910=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); +#911=LINE('',#910,#909); +#912=DIRECTION('',(0.E0,0.E0,-1.E0)); +#913=VECTOR('',#912,1.25E1); +#914=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); +#915=LINE('',#914,#913); +#916=DIRECTION('',(-1.E0,0.E0,0.E0)); +#917=VECTOR('',#916,1.3E1); +#918=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); +#919=LINE('',#918,#917); +#920=DIRECTION('',(0.E0,0.E0,1.E0)); +#921=VECTOR('',#920,1.4E1); +#922=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); +#923=LINE('',#922,#921); +#924=DIRECTION('',(1.E0,0.E0,0.E0)); +#925=VECTOR('',#924,1.3E1); +#926=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); +#927=LINE('',#926,#925); +#928=DIRECTION('',(0.E0,0.E0,-1.E0)); +#929=VECTOR('',#928,1.4E1); +#930=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); +#931=LINE('',#930,#929); +#932=DIRECTION('',(0.E0,1.E0,0.E0)); +#933=VECTOR('',#932,1.5E1); +#934=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); +#935=LINE('',#934,#933); +#936=DIRECTION('',(0.E0,1.E0,0.E0)); +#937=VECTOR('',#936,1.5E1); +#938=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); +#939=LINE('',#938,#937); +#940=DIRECTION('',(0.E0,1.E0,0.E0)); +#941=VECTOR('',#940,1.5E1); +#942=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); +#943=LINE('',#942,#941); +#944=DIRECTION('',(0.E0,1.E0,0.E0)); +#945=VECTOR('',#944,1.5E1); +#946=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); +#947=LINE('',#946,#945); +#948=DIRECTION('',(-1.E0,0.E0,0.E0)); +#949=VECTOR('',#948,1.3E1); +#950=CARTESIAN_POINT('',(5.5E0,2.E1,6.25E1)); +#951=LINE('',#950,#949); +#952=DIRECTION('',(0.E0,0.E0,-1.E0)); +#953=VECTOR('',#952,1.4E1); +#954=CARTESIAN_POINT('',(5.5E0,2.E1,7.65E1)); +#955=LINE('',#954,#953); +#956=DIRECTION('',(1.E0,0.E0,0.E0)); +#957=VECTOR('',#956,1.3E1); +#958=CARTESIAN_POINT('',(-7.5E0,2.E1,7.65E1)); +#959=LINE('',#958,#957); +#960=DIRECTION('',(0.E0,0.E0,1.E0)); +#961=VECTOR('',#960,1.4E1); +#962=CARTESIAN_POINT('',(-7.5E0,2.E1,6.25E1)); +#963=LINE('',#962,#961); +#964=DIRECTION('',(-1.E0,0.E0,0.E0)); +#965=VECTOR('',#964,1.3E1); +#966=CARTESIAN_POINT('',(5.5E0,2.E1,-7.65E1)); +#967=LINE('',#966,#965); +#968=DIRECTION('',(0.E0,0.E0,-1.E0)); +#969=VECTOR('',#968,1.25E1); +#970=CARTESIAN_POINT('',(5.5E0,2.E1,-6.4E1)); +#971=LINE('',#970,#969); +#972=DIRECTION('',(1.E0,0.E0,0.E0)); +#973=VECTOR('',#972,1.3E1); +#974=CARTESIAN_POINT('',(-7.5E0,2.E1,-6.4E1)); +#975=LINE('',#974,#973); +#976=DIRECTION('',(0.E0,0.E0,1.E0)); +#977=VECTOR('',#976,1.25E1); +#978=CARTESIAN_POINT('',(-7.5E0,2.E1,-7.65E1)); +#979=LINE('',#978,#977); +#980=DIRECTION('',(-1.E0,0.E0,0.E0)); +#981=VECTOR('',#980,1.E1); +#982=CARTESIAN_POINT('',(4.E0,2.E1,-7.5E1)); +#983=LINE('',#982,#981); +#984=DIRECTION('',(0.E0,0.E0,1.E0)); +#985=VECTOR('',#984,9.5E0); +#986=CARTESIAN_POINT('',(-6.E0,2.E1,-7.5E1)); +#987=LINE('',#986,#985); +#988=DIRECTION('',(1.E0,0.E0,0.E0)); +#989=VECTOR('',#988,1.E1); +#990=CARTESIAN_POINT('',(-6.E0,2.E1,-6.55E1)); +#991=LINE('',#990,#989); +#992=DIRECTION('',(0.E0,0.E0,-1.E0)); +#993=VECTOR('',#992,9.5E0); +#994=CARTESIAN_POINT('',(4.E0,2.E1,-6.55E1)); +#995=LINE('',#994,#993); +#996=DIRECTION('',(-1.E0,0.E0,0.E0)); +#997=VECTOR('',#996,1.E1); +#998=CARTESIAN_POINT('',(4.E0,2.E1,6.4E1)); +#999=LINE('',#998,#997); +#1000=DIRECTION('',(0.E0,0.E0,1.E0)); +#1001=VECTOR('',#1000,1.1E1); +#1002=CARTESIAN_POINT('',(-6.E0,2.E1,6.4E1)); +#1003=LINE('',#1002,#1001); +#1004=DIRECTION('',(1.E0,0.E0,0.E0)); +#1005=VECTOR('',#1004,1.E1); +#1006=CARTESIAN_POINT('',(-6.E0,2.E1,7.5E1)); +#1007=LINE('',#1006,#1005); +#1008=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1009=VECTOR('',#1008,1.1E1); +#1010=CARTESIAN_POINT('',(4.E0,2.E1,7.5E1)); +#1011=LINE('',#1010,#1009); +#1012=DIRECTION('',(0.E0,1.E0,0.E0)); +#1013=VECTOR('',#1012,1.5E1); +#1014=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); +#1015=LINE('',#1014,#1013); +#1016=DIRECTION('',(0.E0,1.E0,0.E0)); +#1017=VECTOR('',#1016,1.5E1); +#1018=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); +#1019=LINE('',#1018,#1017); +#1020=DIRECTION('',(0.E0,1.E0,0.E0)); +#1021=VECTOR('',#1020,1.5E1); +#1022=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); +#1023=LINE('',#1022,#1021); +#1024=DIRECTION('',(0.E0,1.E0,0.E0)); +#1025=VECTOR('',#1024,1.5E1); +#1026=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); +#1027=LINE('',#1026,#1025); +#1028=DIRECTION('',(0.E0,1.E0,0.E0)); +#1029=VECTOR('',#1028,1.65E1); +#1030=CARTESIAN_POINT('',(4.E0,3.5E0,-7.5E1)); +#1031=LINE('',#1030,#1029); +#1032=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1033=VECTOR('',#1032,1.3E1); +#1034=CARTESIAN_POINT('',(5.5E0,3.5E0,-7.65E1)); +#1035=LINE('',#1034,#1033); +#1036=DIRECTION('',(0.E0,0.E0,1.E0)); +#1037=VECTOR('',#1036,1.53E2); +#1038=CARTESIAN_POINT('',(-7.5E0,3.5E0,-7.65E1)); +#1039=LINE('',#1038,#1037); +#1040=DIRECTION('',(1.E0,0.E0,0.E0)); +#1041=VECTOR('',#1040,1.3E1); +#1042=CARTESIAN_POINT('',(-7.5E0,3.5E0,7.65E1)); +#1043=LINE('',#1042,#1041); +#1044=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1045=VECTOR('',#1044,1.53E2); +#1046=CARTESIAN_POINT('',(5.5E0,3.5E0,7.65E1)); +#1047=LINE('',#1046,#1045); +#1048=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1049=VECTOR('',#1048,1.E1); +#1050=CARTESIAN_POINT('',(4.E0,3.5E0,-7.5E1)); +#1051=LINE('',#1050,#1049); +#1052=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1053=VECTOR('',#1052,9.5E0); +#1054=CARTESIAN_POINT('',(4.E0,3.5E0,-6.55E1)); +#1055=LINE('',#1054,#1053); +#1056=DIRECTION('',(1.E0,0.E0,0.E0)); +#1057=VECTOR('',#1056,1.E1); +#1058=CARTESIAN_POINT('',(-6.E0,3.5E0,-6.55E1)); +#1059=LINE('',#1058,#1057); +#1060=DIRECTION('',(0.E0,0.E0,1.E0)); +#1061=VECTOR('',#1060,9.5E0); +#1062=CARTESIAN_POINT('',(-6.E0,3.5E0,-7.5E1)); +#1063=LINE('',#1062,#1061); +#1064=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1065=VECTOR('',#1064,1.E1); +#1066=CARTESIAN_POINT('',(4.E0,3.5E0,6.4E1)); +#1067=LINE('',#1066,#1065); +#1068=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1069=VECTOR('',#1068,1.1E1); +#1070=CARTESIAN_POINT('',(4.E0,3.5E0,7.5E1)); +#1071=LINE('',#1070,#1069); +#1072=DIRECTION('',(1.E0,0.E0,0.E0)); +#1073=VECTOR('',#1072,1.E1); +#1074=CARTESIAN_POINT('',(-6.E0,3.5E0,7.5E1)); +#1075=LINE('',#1074,#1073); +#1076=DIRECTION('',(0.E0,0.E0,1.E0)); +#1077=VECTOR('',#1076,1.1E1); +#1078=CARTESIAN_POINT('',(-6.E0,3.5E0,6.4E1)); +#1079=LINE('',#1078,#1077); +#1080=DIRECTION('',(0.E0,1.E0,0.E0)); +#1081=VECTOR('',#1080,7.E0); +#1082=CARTESIAN_POINT('',(5.5E0,-3.5E0,-7.65E1)); +#1083=LINE('',#1082,#1081); +#1084=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1085=VECTOR('',#1084,1.3E1); +#1086=CARTESIAN_POINT('',(5.5E0,-3.5E0,-7.65E1)); +#1087=LINE('',#1086,#1085); +#1088=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1089=VECTOR('',#1088,1.53E2); +#1090=CARTESIAN_POINT('',(5.5E0,-3.5E0,7.65E1)); +#1091=LINE('',#1090,#1089); +#1092=DIRECTION('',(1.E0,0.E0,0.E0)); +#1093=VECTOR('',#1092,1.3E1); +#1094=CARTESIAN_POINT('',(-7.5E0,-3.5E0,7.65E1)); +#1095=LINE('',#1094,#1093); +#1096=DIRECTION('',(0.E0,0.E0,1.E0)); +#1097=VECTOR('',#1096,1.53E2); +#1098=CARTESIAN_POINT('',(-7.5E0,-3.5E0,-7.65E1)); +#1099=LINE('',#1098,#1097); +#1100=DIRECTION('',(0.E0,1.E0,0.E0)); +#1101=VECTOR('',#1100,7.E0); +#1102=CARTESIAN_POINT('',(5.5E0,-3.5E0,7.65E1)); +#1103=LINE('',#1102,#1101); +#1104=DIRECTION('',(0.E0,1.E0,0.E0)); +#1105=VECTOR('',#1104,7.E0); +#1106=CARTESIAN_POINT('',(-7.5E0,-3.5E0,7.65E1)); +#1107=LINE('',#1106,#1105); +#1108=DIRECTION('',(0.E0,1.E0,0.E0)); +#1109=VECTOR('',#1108,7.E0); +#1110=CARTESIAN_POINT('',(-7.5E0,-3.5E0,-7.65E1)); +#1111=LINE('',#1110,#1109); +#1112=DIRECTION('',(0.E0,1.E0,0.E0)); +#1113=VECTOR('',#1112,1.65E1); +#1114=CARTESIAN_POINT('',(4.E0,3.5E0,-6.55E1)); +#1115=LINE('',#1114,#1113); +#1116=DIRECTION('',(0.E0,1.E0,0.E0)); +#1117=VECTOR('',#1116,1.65E1); +#1118=CARTESIAN_POINT('',(-6.E0,3.5E0,-6.55E1)); +#1119=LINE('',#1118,#1117); +#1120=DIRECTION('',(0.E0,1.E0,0.E0)); +#1121=VECTOR('',#1120,1.65E1); +#1122=CARTESIAN_POINT('',(-6.E0,3.5E0,-7.5E1)); +#1123=LINE('',#1122,#1121); +#1124=DIRECTION('',(0.E0,1.E0,0.E0)); +#1125=VECTOR('',#1124,1.65E1); +#1126=CARTESIAN_POINT('',(4.E0,3.5E0,6.4E1)); +#1127=LINE('',#1126,#1125); +#1128=DIRECTION('',(0.E0,1.E0,0.E0)); +#1129=VECTOR('',#1128,1.65E1); +#1130=CARTESIAN_POINT('',(-6.E0,3.5E0,6.4E1)); +#1131=LINE('',#1130,#1129); +#1132=DIRECTION('',(0.E0,1.E0,0.E0)); +#1133=VECTOR('',#1132,1.65E1); +#1134=CARTESIAN_POINT('',(-6.E0,3.5E0,7.5E1)); +#1135=LINE('',#1134,#1133); +#1136=DIRECTION('',(0.E0,1.E0,0.E0)); +#1137=VECTOR('',#1136,1.65E1); +#1138=CARTESIAN_POINT('',(4.E0,3.5E0,7.5E1)); +#1139=LINE('',#1138,#1137); +#1140=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); +#1141=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); +#1142=VERTEX_POINT('','',#1140); +#1143=VERTEX_POINT('','',#1141); +#1144=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); +#1145=VERTEX_POINT('','',#1144); +#1146=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); +#1147=VERTEX_POINT('','',#1146); +#1148=CARTESIAN_POINT('',(7.E0,5.E0,-7.8E1)); +#1149=CARTESIAN_POINT('',(-9.E0,5.E0,-7.8E1)); +#1150=VERTEX_POINT('','',#1148); +#1151=VERTEX_POINT('','',#1149); +#1152=CARTESIAN_POINT('',(-9.E0,5.E0,7.8E1)); +#1153=VERTEX_POINT('','',#1152); +#1154=CARTESIAN_POINT('',(7.E0,5.E0,7.8E1)); +#1155=VERTEX_POINT('','',#1154); +#1156=CARTESIAN_POINT('',(5.5E0,-3.5E0,-7.65E1)); +#1157=CARTESIAN_POINT('',(-7.5E0,-3.5E0,-7.65E1)); +#1158=VERTEX_POINT('','',#1156); +#1159=VERTEX_POINT('','',#1157); +#1160=CARTESIAN_POINT('',(-7.5E0,-3.5E0,7.65E1)); +#1161=VERTEX_POINT('','',#1160); +#1162=CARTESIAN_POINT('',(5.5E0,-3.5E0,7.65E1)); +#1163=VERTEX_POINT('','',#1162); +#1164=CARTESIAN_POINT('',(-7.5E0,3.5E0,7.65E1)); +#1165=CARTESIAN_POINT('',(5.5E0,3.5E0,7.65E1)); +#1166=VERTEX_POINT('','',#1164); +#1167=VERTEX_POINT('','',#1165); +#1168=CARTESIAN_POINT('',(5.5E0,2.E1,-7.65E1)); +#1169=CARTESIAN_POINT('',(-7.5E0,2.E1,-7.65E1)); +#1170=VERTEX_POINT('','',#1168); +#1171=VERTEX_POINT('','',#1169); +#1172=CARTESIAN_POINT('',(-7.5E0,2.E1,-6.4E1)); +#1173=VERTEX_POINT('','',#1172); +#1174=CARTESIAN_POINT('',(5.5E0,2.E1,-6.4E1)); +#1175=VERTEX_POINT('','',#1174); +#1176=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); +#1177=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); +#1178=VERTEX_POINT('','',#1176); +#1179=VERTEX_POINT('','',#1177); +#1180=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); +#1181=VERTEX_POINT('','',#1180); +#1182=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); +#1183=VERTEX_POINT('','',#1182); +#1184=CARTESIAN_POINT('',(5.5E0,3.5E0,-7.65E1)); +#1185=CARTESIAN_POINT('',(-7.5E0,3.5E0,-7.65E1)); +#1186=VERTEX_POINT('','',#1184); +#1187=VERTEX_POINT('','',#1185); +#1188=CARTESIAN_POINT('',(4.E0,2.E1,-7.5E1)); +#1189=CARTESIAN_POINT('',(-6.E0,2.E1,-7.5E1)); +#1190=VERTEX_POINT('','',#1188); +#1191=VERTEX_POINT('','',#1189); +#1192=CARTESIAN_POINT('',(-6.E0,2.E1,-6.55E1)); +#1193=VERTEX_POINT('','',#1192); +#1194=CARTESIAN_POINT('',(4.E0,2.E1,-6.55E1)); +#1195=VERTEX_POINT('','',#1194); +#1196=CARTESIAN_POINT('',(4.E0,3.5E0,-7.5E1)); +#1197=CARTESIAN_POINT('',(-6.E0,3.5E0,-7.5E1)); +#1198=VERTEX_POINT('','',#1196); +#1199=VERTEX_POINT('','',#1197); +#1200=CARTESIAN_POINT('',(-6.E0,3.5E0,-6.55E1)); +#1201=VERTEX_POINT('','',#1200); +#1202=CARTESIAN_POINT('',(4.E0,3.5E0,-6.55E1)); +#1203=VERTEX_POINT('','',#1202); +#1204=CARTESIAN_POINT('',(5.5E0,2.E1,6.25E1)); +#1205=CARTESIAN_POINT('',(-7.5E0,2.E1,6.25E1)); +#1206=VERTEX_POINT('','',#1204); +#1207=VERTEX_POINT('','',#1205); +#1208=CARTESIAN_POINT('',(-7.5E0,2.E1,7.65E1)); +#1209=VERTEX_POINT('','',#1208); +#1210=CARTESIAN_POINT('',(5.5E0,2.E1,7.65E1)); +#1211=VERTEX_POINT('','',#1210); +#1212=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); +#1213=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); +#1214=VERTEX_POINT('','',#1212); +#1215=VERTEX_POINT('','',#1213); +#1216=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); +#1217=VERTEX_POINT('','',#1216); +#1218=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); +#1219=VERTEX_POINT('','',#1218); +#1220=CARTESIAN_POINT('',(4.E0,2.E1,6.4E1)); +#1221=CARTESIAN_POINT('',(-6.E0,2.E1,6.4E1)); +#1222=VERTEX_POINT('','',#1220); +#1223=VERTEX_POINT('','',#1221); +#1224=CARTESIAN_POINT('',(-6.E0,2.E1,7.5E1)); +#1225=VERTEX_POINT('','',#1224); +#1226=CARTESIAN_POINT('',(4.E0,2.E1,7.5E1)); +#1227=VERTEX_POINT('','',#1226); +#1228=CARTESIAN_POINT('',(4.E0,3.5E0,6.4E1)); +#1229=CARTESIAN_POINT('',(-6.E0,3.5E0,6.4E1)); +#1230=VERTEX_POINT('','',#1228); +#1231=VERTEX_POINT('','',#1229); +#1232=CARTESIAN_POINT('',(-6.E0,3.5E0,7.5E1)); +#1233=VERTEX_POINT('','',#1232); +#1234=CARTESIAN_POINT('',(4.E0,3.5E0,7.5E1)); +#1235=VERTEX_POINT('','',#1234); +#1236=CARTESIAN_POINT('',(0.E0,-5.E0,0.E0)); +#1237=DIRECTION('',(0.E0,1.E0,0.E0)); +#1238=DIRECTION('',(0.E0,0.E0,1.E0)); +#1239=AXIS2_PLACEMENT_3D('',#1236,#1237,#1238); +#1240=PLANE('',#1239); +#1242=ORIENTED_EDGE('',*,*,#1241,.T.); +#1244=ORIENTED_EDGE('',*,*,#1243,.T.); +#1246=ORIENTED_EDGE('',*,*,#1245,.T.); +#1248=ORIENTED_EDGE('',*,*,#1247,.T.); +#1249=EDGE_LOOP('','',(#1242,#1244,#1246,#1248)); +#1250=FACE_OUTER_BOUND('',#1249,.F.); +#1251=ADVANCED_FACE('',(#1250),'' ,#1240,.F.); + +#1252=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); +#1253=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1254=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1255=AXIS2_PLACEMENT_3D('',#1252,#1253,#1254); +#1256=PLANE('',#1255); +#1257=ORIENTED_EDGE('',*,*,#1241,.F.); +#1259=ORIENTED_EDGE('',*,*,#1258,.T.); +#1261=ORIENTED_EDGE('',*,*,#1260,.T.); +#1263=ORIENTED_EDGE('',*,*,#1262,.F.); +#1264=EDGE_LOOP('','',(#1257,#1259,#1261,#1263)); +#1265=FACE_OUTER_BOUND('',#1264,.F.); +#1266=ADVANCED_FACE('',(#1265),'' ,#1256,.T.); + +#1267=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); +#1268=DIRECTION('',(1.E0,0.E0,0.E0)); +#1269=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1270=AXIS2_PLACEMENT_3D('',#1267,#1268,#1269); +#1271=PLANE('',#1270); +#1272=ORIENTED_EDGE('',*,*,#1247,.F.); +#1274=ORIENTED_EDGE('',*,*,#1273,.T.); +#1276=ORIENTED_EDGE('',*,*,#1275,.T.); +#1277=ORIENTED_EDGE('',*,*,#1258,.F.); +#1278=EDGE_LOOP('','',(#1272,#1274,#1276,#1277)); +#1279=FACE_OUTER_BOUND('',#1278,.F.); +#1280=ADVANCED_FACE('',(#1279),'' ,#1271,.T.); + +#1281=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); +#1282=DIRECTION('',(0.E0,0.E0,1.E0)); +#1283=DIRECTION('',(1.E0,0.E0,0.E0)); +#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283); +#1285=PLANE('',#1284); +#1286=ORIENTED_EDGE('',*,*,#1245,.F.); +#1288=ORIENTED_EDGE('',*,*,#1287,.T.); +#1290=ORIENTED_EDGE('',*,*,#1289,.T.); +#1291=ORIENTED_EDGE('',*,*,#1273,.F.); +#1292=EDGE_LOOP('','',(#1286,#1288,#1290,#1291)); +#1293=FACE_OUTER_BOUND('',#1292,.F.); +#1294=ADVANCED_FACE('',(#1293),'' ,#1285,.T.); + +#1295=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); +#1296=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1297=DIRECTION('',(0.E0,0.E0,1.E0)); +#1298=AXIS2_PLACEMENT_3D('',#1295,#1296,#1297); +#1299=PLANE('',#1298); +#1300=ORIENTED_EDGE('',*,*,#1243,.F.); +#1301=ORIENTED_EDGE('',*,*,#1262,.T.); +#1303=ORIENTED_EDGE('',*,*,#1302,.T.); +#1304=ORIENTED_EDGE('',*,*,#1287,.F.); +#1305=EDGE_LOOP('','',(#1300,#1301,#1303,#1304)); +#1306=FACE_OUTER_BOUND('',#1305,.F.); +#1307=ADVANCED_FACE('',(#1306),'' ,#1299,.T.); + +#1308=CARTESIAN_POINT('',(0.E0,5.E0,0.E0)); +#1309=DIRECTION('',(0.E0,1.E0,0.E0)); +#1310=DIRECTION('',(0.E0,0.E0,1.E0)); +#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310); +#1312=PLANE('',#1311); +#1313=ORIENTED_EDGE('',*,*,#1260,.F.); +#1314=ORIENTED_EDGE('',*,*,#1275,.F.); +#1315=ORIENTED_EDGE('',*,*,#1289,.F.); +#1316=ORIENTED_EDGE('',*,*,#1302,.F.); +#1317=EDGE_LOOP('','',(#1313,#1314,#1315,#1316)); +#1318=FACE_OUTER_BOUND('',#1317,.F.); +#1320=ORIENTED_EDGE('',*,*,#1319,.T.); +#1322=ORIENTED_EDGE('',*,*,#1321,.T.); +#1324=ORIENTED_EDGE('',*,*,#1323,.T.); +#1326=ORIENTED_EDGE('',*,*,#1325,.T.); +#1327=EDGE_LOOP('','',(#1320,#1322,#1324,#1326)); +#1328=FACE_BOUND('',#1327,.F.); +#1330=ORIENTED_EDGE('',*,*,#1329,.T.); +#1332=ORIENTED_EDGE('',*,*,#1331,.T.); +#1334=ORIENTED_EDGE('',*,*,#1333,.T.); +#1336=ORIENTED_EDGE('',*,*,#1335,.T.); +#1337=EDGE_LOOP('','',(#1330,#1332,#1334,#1336)); +#1338=FACE_BOUND('',#1337,.F.); +#1339=ADVANCED_FACE('',(#1318,#1328,#1338),'' ,#1312,.T.); + +#1340=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); +#1341=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1342=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1343=AXIS2_PLACEMENT_3D('',#1340,#1341,#1342); +#1344=PLANE('',#1343); +#1345=ORIENTED_EDGE('',*,*,#1319,.F.); +#1347=ORIENTED_EDGE('',*,*,#1346,.T.); +#1349=ORIENTED_EDGE('',*,*,#1348,.T.); +#1351=ORIENTED_EDGE('',*,*,#1350,.F.); +#1352=EDGE_LOOP('','',(#1345,#1347,#1349,#1351)); +#1353=FACE_OUTER_BOUND('',#1352,.F.); +#1354=ADVANCED_FACE('',(#1353),'' ,#1344,.T.); + +#1355=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); +#1356=DIRECTION('',(1.E0,0.E0,0.E0)); +#1357=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1358=AXIS2_PLACEMENT_3D('',#1355,#1356,#1357); +#1359=PLANE('',#1358); +#1360=ORIENTED_EDGE('',*,*,#1325,.F.); +#1362=ORIENTED_EDGE('',*,*,#1361,.T.); +#1364=ORIENTED_EDGE('',*,*,#1363,.T.); +#1365=ORIENTED_EDGE('',*,*,#1346,.F.); +#1366=EDGE_LOOP('','',(#1360,#1362,#1364,#1365)); +#1367=FACE_OUTER_BOUND('',#1366,.F.); +#1368=ADVANCED_FACE('',(#1367),'' ,#1359,.T.); + +#1369=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); +#1370=DIRECTION('',(0.E0,0.E0,1.E0)); +#1371=DIRECTION('',(1.E0,0.E0,0.E0)); +#1372=AXIS2_PLACEMENT_3D('',#1369,#1370,#1371); +#1373=PLANE('',#1372); +#1374=ORIENTED_EDGE('',*,*,#1323,.F.); +#1376=ORIENTED_EDGE('',*,*,#1375,.T.); +#1378=ORIENTED_EDGE('',*,*,#1377,.T.); +#1379=ORIENTED_EDGE('',*,*,#1361,.F.); +#1380=EDGE_LOOP('','',(#1374,#1376,#1378,#1379)); +#1381=FACE_OUTER_BOUND('',#1380,.F.); +#1382=ADVANCED_FACE('',(#1381),'' ,#1373,.T.); + +#1383=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); +#1384=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1385=DIRECTION('',(0.E0,0.E0,1.E0)); +#1386=AXIS2_PLACEMENT_3D('',#1383,#1384,#1385); +#1387=PLANE('',#1386); +#1388=ORIENTED_EDGE('',*,*,#1321,.F.); +#1389=ORIENTED_EDGE('',*,*,#1350,.T.); +#1391=ORIENTED_EDGE('',*,*,#1390,.T.); +#1392=ORIENTED_EDGE('',*,*,#1375,.F.); +#1393=EDGE_LOOP('','',(#1388,#1389,#1391,#1392)); +#1394=FACE_OUTER_BOUND('',#1393,.F.); +#1395=ADVANCED_FACE('',(#1394),'' ,#1387,.T.); + +#1396=CARTESIAN_POINT('',(0.E0,2.E1,0.E0)); +#1397=DIRECTION('',(0.E0,1.E0,0.E0)); +#1398=DIRECTION('',(0.E0,0.E0,1.E0)); +#1399=AXIS2_PLACEMENT_3D('',#1396,#1397,#1398); +#1400=PLANE('',#1399); +#1402=ORIENTED_EDGE('',*,*,#1401,.F.); +#1404=ORIENTED_EDGE('',*,*,#1403,.F.); +#1406=ORIENTED_EDGE('',*,*,#1405,.F.); +#1408=ORIENTED_EDGE('',*,*,#1407,.F.); +#1409=EDGE_LOOP('','',(#1402,#1404,#1406,#1408)); +#1410=FACE_OUTER_BOUND('',#1409,.F.); +#1412=ORIENTED_EDGE('',*,*,#1411,.T.); +#1414=ORIENTED_EDGE('',*,*,#1413,.T.); +#1416=ORIENTED_EDGE('',*,*,#1415,.T.); +#1418=ORIENTED_EDGE('',*,*,#1417,.T.); +#1419=EDGE_LOOP('','',(#1412,#1414,#1416,#1418)); +#1420=FACE_BOUND('',#1419,.F.); +#1421=ADVANCED_FACE('',(#1410,#1420),'' ,#1400,.T.); + +#1422=CARTESIAN_POINT('',(0.E0,2.E1,0.E0)); +#1423=DIRECTION('',(0.E0,1.E0,0.E0)); +#1424=DIRECTION('',(0.E0,0.E0,1.E0)); +#1425=AXIS2_PLACEMENT_3D('',#1422,#1423,#1424); +#1426=PLANE('',#1425); +#1427=ORIENTED_EDGE('',*,*,#1348,.F.); +#1428=ORIENTED_EDGE('',*,*,#1363,.F.); +#1429=ORIENTED_EDGE('',*,*,#1377,.F.); +#1430=ORIENTED_EDGE('',*,*,#1390,.F.); +#1431=EDGE_LOOP('','',(#1427,#1428,#1429,#1430)); +#1432=FACE_OUTER_BOUND('',#1431,.F.); +#1434=ORIENTED_EDGE('',*,*,#1433,.T.); +#1436=ORIENTED_EDGE('',*,*,#1435,.T.); +#1438=ORIENTED_EDGE('',*,*,#1437,.T.); +#1440=ORIENTED_EDGE('',*,*,#1439,.T.); +#1441=EDGE_LOOP('','',(#1434,#1436,#1438,#1440)); +#1442=FACE_BOUND('',#1441,.F.); +#1443=ADVANCED_FACE('',(#1432,#1442),'' ,#1426,.T.); + +#1444=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); +#1445=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1446=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446); +#1448=PLANE('',#1447); +#1449=ORIENTED_EDGE('',*,*,#1329,.F.); +#1451=ORIENTED_EDGE('',*,*,#1450,.T.); +#1452=ORIENTED_EDGE('',*,*,#1401,.T.); +#1454=ORIENTED_EDGE('',*,*,#1453,.F.); +#1455=EDGE_LOOP('','',(#1449,#1451,#1452,#1454)); +#1456=FACE_OUTER_BOUND('',#1455,.F.); +#1457=ADVANCED_FACE('',(#1456),'' ,#1448,.T.); + +#1458=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); +#1459=DIRECTION('',(1.E0,0.E0,0.E0)); +#1460=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1461=AXIS2_PLACEMENT_3D('',#1458,#1459,#1460); +#1462=PLANE('',#1461); +#1463=ORIENTED_EDGE('',*,*,#1335,.F.); +#1465=ORIENTED_EDGE('',*,*,#1464,.T.); +#1466=ORIENTED_EDGE('',*,*,#1403,.T.); +#1467=ORIENTED_EDGE('',*,*,#1450,.F.); +#1468=EDGE_LOOP('','',(#1463,#1465,#1466,#1467)); +#1469=FACE_OUTER_BOUND('',#1468,.F.); +#1470=ADVANCED_FACE('',(#1469),'' ,#1462,.T.); + +#1471=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); +#1472=DIRECTION('',(0.E0,0.E0,1.E0)); +#1473=DIRECTION('',(1.E0,0.E0,0.E0)); +#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473); +#1475=PLANE('',#1474); +#1476=ORIENTED_EDGE('',*,*,#1333,.F.); +#1478=ORIENTED_EDGE('',*,*,#1477,.T.); +#1479=ORIENTED_EDGE('',*,*,#1405,.T.); +#1480=ORIENTED_EDGE('',*,*,#1464,.F.); +#1481=EDGE_LOOP('','',(#1476,#1478,#1479,#1480)); +#1482=FACE_OUTER_BOUND('',#1481,.F.); +#1483=ADVANCED_FACE('',(#1482),'' ,#1475,.T.); + +#1484=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); +#1485=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1486=DIRECTION('',(0.E0,0.E0,1.E0)); +#1487=AXIS2_PLACEMENT_3D('',#1484,#1485,#1486); +#1488=PLANE('',#1487); +#1489=ORIENTED_EDGE('',*,*,#1331,.F.); +#1490=ORIENTED_EDGE('',*,*,#1453,.T.); +#1491=ORIENTED_EDGE('',*,*,#1407,.T.); +#1492=ORIENTED_EDGE('',*,*,#1477,.F.); +#1493=EDGE_LOOP('','',(#1489,#1490,#1491,#1492)); +#1494=FACE_OUTER_BOUND('',#1493,.F.); +#1495=ADVANCED_FACE('',(#1494),'' ,#1488,.T.); + +#1496=CARTESIAN_POINT('',(5.5E0,5.E0,-7.5E1)); +#1497=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1498=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1499=AXIS2_PLACEMENT_3D('',#1496,#1497,#1498); +#1500=PLANE('',#1499); +#1502=ORIENTED_EDGE('',*,*,#1501,.T.); +#1504=ORIENTED_EDGE('',*,*,#1503,.T.); +#1505=ORIENTED_EDGE('',*,*,#1433,.F.); +#1507=ORIENTED_EDGE('',*,*,#1506,.F.); +#1508=EDGE_LOOP('','',(#1502,#1504,#1505,#1507)); +#1509=FACE_OUTER_BOUND('',#1508,.F.); +#1510=ADVANCED_FACE('',(#1509),'' ,#1500,.F.); + +#1511=CARTESIAN_POINT('',(0.E0,3.5E0,0.E0)); +#1512=DIRECTION('',(0.E0,1.E0,0.E0)); +#1513=DIRECTION('',(0.E0,0.E0,1.E0)); +#1514=AXIS2_PLACEMENT_3D('',#1511,#1512,#1513); +#1515=PLANE('',#1514); +#1517=ORIENTED_EDGE('',*,*,#1516,.T.); +#1519=ORIENTED_EDGE('',*,*,#1518,.T.); +#1521=ORIENTED_EDGE('',*,*,#1520,.T.); +#1523=ORIENTED_EDGE('',*,*,#1522,.T.); +#1524=EDGE_LOOP('','',(#1517,#1519,#1521,#1523)); +#1525=FACE_OUTER_BOUND('',#1524,.F.); +#1526=ORIENTED_EDGE('',*,*,#1501,.F.); +#1528=ORIENTED_EDGE('',*,*,#1527,.F.); +#1530=ORIENTED_EDGE('',*,*,#1529,.F.); +#1532=ORIENTED_EDGE('',*,*,#1531,.F.); +#1533=EDGE_LOOP('','',(#1526,#1528,#1530,#1532)); +#1534=FACE_BOUND('',#1533,.F.); +#1536=ORIENTED_EDGE('',*,*,#1535,.F.); +#1538=ORIENTED_EDGE('',*,*,#1537,.F.); +#1540=ORIENTED_EDGE('',*,*,#1539,.F.); +#1542=ORIENTED_EDGE('',*,*,#1541,.F.); +#1543=EDGE_LOOP('','',(#1536,#1538,#1540,#1542)); +#1544=FACE_BOUND('',#1543,.F.); +#1545=ADVANCED_FACE('',(#1525,#1534,#1544),'' ,#1515,.F.); + +#1546=CARTESIAN_POINT('',(7.E0,-5.E0,-7.65E1)); +#1547=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1548=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1549=AXIS2_PLACEMENT_3D('',#1546,#1547,#1548); +#1550=PLANE('',#1549); +#1552=ORIENTED_EDGE('',*,*,#1551,.T.); +#1554=ORIENTED_EDGE('',*,*,#1553,.T.); +#1555=ORIENTED_EDGE('',*,*,#1516,.F.); +#1557=ORIENTED_EDGE('',*,*,#1556,.F.); +#1558=EDGE_LOOP('','',(#1552,#1554,#1555,#1557)); +#1559=FACE_OUTER_BOUND('',#1558,.F.); +#1560=ADVANCED_FACE('',(#1559),'' ,#1550,.F.); + +#1561=CARTESIAN_POINT('',(0.E0,-3.5E0,0.E0)); +#1562=DIRECTION('',(0.E0,1.E0,0.E0)); +#1563=DIRECTION('',(0.E0,0.E0,1.E0)); +#1564=AXIS2_PLACEMENT_3D('',#1561,#1562,#1563); +#1565=PLANE('',#1564); +#1566=ORIENTED_EDGE('',*,*,#1551,.F.); +#1568=ORIENTED_EDGE('',*,*,#1567,.F.); +#1570=ORIENTED_EDGE('',*,*,#1569,.F.); +#1572=ORIENTED_EDGE('',*,*,#1571,.F.); +#1573=EDGE_LOOP('','',(#1566,#1568,#1570,#1572)); +#1574=FACE_OUTER_BOUND('',#1573,.F.); +#1575=ADVANCED_FACE('',(#1574),'' ,#1565,.T.); + +#1576=CARTESIAN_POINT('',(5.5E0,-5.E0,7.8E1)); +#1577=DIRECTION('',(1.E0,0.E0,0.E0)); +#1578=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1579=AXIS2_PLACEMENT_3D('',#1576,#1577,#1578); +#1580=PLANE('',#1579); +#1581=ORIENTED_EDGE('',*,*,#1567,.T.); +#1582=ORIENTED_EDGE('',*,*,#1556,.T.); +#1583=ORIENTED_EDGE('',*,*,#1522,.F.); +#1585=ORIENTED_EDGE('',*,*,#1584,.F.); +#1586=EDGE_LOOP('','',(#1581,#1582,#1583,#1585)); +#1587=FACE_OUTER_BOUND('',#1586,.F.); +#1588=ADVANCED_FACE('',(#1587),'' ,#1580,.F.); + +#1589=CARTESIAN_POINT('',(-9.E0,-5.E0,7.65E1)); +#1590=DIRECTION('',(0.E0,0.E0,1.E0)); +#1591=DIRECTION('',(1.E0,0.E0,0.E0)); +#1592=AXIS2_PLACEMENT_3D('',#1589,#1590,#1591); +#1593=PLANE('',#1592); +#1594=ORIENTED_EDGE('',*,*,#1569,.T.); +#1595=ORIENTED_EDGE('',*,*,#1584,.T.); +#1596=ORIENTED_EDGE('',*,*,#1520,.F.); +#1598=ORIENTED_EDGE('',*,*,#1597,.F.); +#1599=EDGE_LOOP('','',(#1594,#1595,#1596,#1598)); +#1600=FACE_OUTER_BOUND('',#1599,.F.); +#1601=ADVANCED_FACE('',(#1600),'' ,#1593,.F.); + +#1602=CARTESIAN_POINT('',(-7.5E0,-5.E0,-7.8E1)); +#1603=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1604=DIRECTION('',(0.E0,0.E0,1.E0)); +#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604); +#1606=PLANE('',#1605); +#1607=ORIENTED_EDGE('',*,*,#1571,.T.); +#1608=ORIENTED_EDGE('',*,*,#1597,.T.); +#1609=ORIENTED_EDGE('',*,*,#1518,.F.); +#1610=ORIENTED_EDGE('',*,*,#1553,.F.); +#1611=EDGE_LOOP('','',(#1607,#1608,#1609,#1610)); +#1612=FACE_OUTER_BOUND('',#1611,.F.); +#1613=ADVANCED_FACE('',(#1612),'' ,#1606,.F.); + +#1614=CARTESIAN_POINT('',(4.E0,5.E0,-6.4E1)); +#1615=DIRECTION('',(1.E0,0.E0,0.E0)); +#1616=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1617=AXIS2_PLACEMENT_3D('',#1614,#1615,#1616); +#1618=PLANE('',#1617); +#1619=ORIENTED_EDGE('',*,*,#1527,.T.); +#1620=ORIENTED_EDGE('',*,*,#1506,.T.); +#1621=ORIENTED_EDGE('',*,*,#1439,.F.); +#1623=ORIENTED_EDGE('',*,*,#1622,.F.); +#1624=EDGE_LOOP('','',(#1619,#1620,#1621,#1623)); +#1625=FACE_OUTER_BOUND('',#1624,.F.); +#1626=ADVANCED_FACE('',(#1625),'' ,#1618,.F.); + +#1627=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.55E1)); +#1628=DIRECTION('',(0.E0,0.E0,1.E0)); +#1629=DIRECTION('',(1.E0,0.E0,0.E0)); +#1630=AXIS2_PLACEMENT_3D('',#1627,#1628,#1629); +#1631=PLANE('',#1630); +#1632=ORIENTED_EDGE('',*,*,#1529,.T.); +#1633=ORIENTED_EDGE('',*,*,#1622,.T.); +#1634=ORIENTED_EDGE('',*,*,#1437,.F.); +#1636=ORIENTED_EDGE('',*,*,#1635,.F.); +#1637=EDGE_LOOP('','',(#1632,#1633,#1634,#1636)); +#1638=FACE_OUTER_BOUND('',#1637,.F.); +#1639=ADVANCED_FACE('',(#1638),'' ,#1631,.F.); + +#1640=CARTESIAN_POINT('',(-6.E0,5.E0,-7.65E1)); +#1641=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1642=DIRECTION('',(0.E0,0.E0,1.E0)); +#1643=AXIS2_PLACEMENT_3D('',#1640,#1641,#1642); +#1644=PLANE('',#1643); +#1645=ORIENTED_EDGE('',*,*,#1531,.T.); +#1646=ORIENTED_EDGE('',*,*,#1635,.T.); +#1647=ORIENTED_EDGE('',*,*,#1435,.F.); +#1648=ORIENTED_EDGE('',*,*,#1503,.F.); +#1649=EDGE_LOOP('','',(#1645,#1646,#1647,#1648)); +#1650=FACE_OUTER_BOUND('',#1649,.F.); +#1651=ADVANCED_FACE('',(#1650),'' ,#1644,.F.); + +#1652=CARTESIAN_POINT('',(5.5E0,5.E0,6.4E1)); +#1653=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1654=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1655=AXIS2_PLACEMENT_3D('',#1652,#1653,#1654); +#1656=PLANE('',#1655); +#1657=ORIENTED_EDGE('',*,*,#1535,.T.); +#1659=ORIENTED_EDGE('',*,*,#1658,.T.); +#1660=ORIENTED_EDGE('',*,*,#1411,.F.); +#1662=ORIENTED_EDGE('',*,*,#1661,.F.); +#1663=EDGE_LOOP('','',(#1657,#1659,#1660,#1662)); +#1664=FACE_OUTER_BOUND('',#1663,.F.); +#1665=ADVANCED_FACE('',(#1664),'' ,#1656,.F.); + +#1666=CARTESIAN_POINT('',(-6.E0,5.E0,6.25E1)); +#1667=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1668=DIRECTION('',(0.E0,0.E0,1.E0)); +#1669=AXIS2_PLACEMENT_3D('',#1666,#1667,#1668); +#1670=PLANE('',#1669); +#1671=ORIENTED_EDGE('',*,*,#1541,.T.); +#1673=ORIENTED_EDGE('',*,*,#1672,.T.); +#1674=ORIENTED_EDGE('',*,*,#1413,.F.); +#1675=ORIENTED_EDGE('',*,*,#1658,.F.); +#1676=EDGE_LOOP('','',(#1671,#1673,#1674,#1675)); +#1677=FACE_OUTER_BOUND('',#1676,.F.); +#1678=ADVANCED_FACE('',(#1677),'' ,#1670,.F.); + +#1679=CARTESIAN_POINT('',(-7.5E0,5.E0,7.5E1)); +#1680=DIRECTION('',(0.E0,0.E0,1.E0)); +#1681=DIRECTION('',(1.E0,0.E0,0.E0)); +#1682=AXIS2_PLACEMENT_3D('',#1679,#1680,#1681); +#1683=PLANE('',#1682); +#1684=ORIENTED_EDGE('',*,*,#1539,.T.); +#1686=ORIENTED_EDGE('',*,*,#1685,.T.); +#1687=ORIENTED_EDGE('',*,*,#1415,.F.); +#1688=ORIENTED_EDGE('',*,*,#1672,.F.); +#1689=EDGE_LOOP('','',(#1684,#1686,#1687,#1688)); +#1690=FACE_OUTER_BOUND('',#1689,.F.); +#1691=ADVANCED_FACE('',(#1690),'' ,#1683,.F.); + +#1692=CARTESIAN_POINT('',(4.E0,5.E0,7.65E1)); +#1693=DIRECTION('',(1.E0,0.E0,0.E0)); +#1694=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1695=AXIS2_PLACEMENT_3D('',#1692,#1693,#1694); +#1696=PLANE('',#1695); +#1697=ORIENTED_EDGE('',*,*,#1537,.T.); +#1698=ORIENTED_EDGE('',*,*,#1661,.T.); +#1699=ORIENTED_EDGE('',*,*,#1417,.F.); +#1700=ORIENTED_EDGE('',*,*,#1685,.F.); +#1701=EDGE_LOOP('','',(#1697,#1698,#1699,#1700)); +#1702=FACE_OUTER_BOUND('',#1701,.F.); +#1703=ADVANCED_FACE('',(#1702),'' ,#1696,.F.); + +#1704=CLOSED_SHELL('',(#1251,#1266,#1280,#1294,#1307,#1339,#1354,#1368,#1382, +#1395,#1421,#1443,#1457,#1470,#1483,#1495,#1510,#1545,#1560,#1575,#1588,#1601, +#1613,#1626,#1639,#1651,#1665,#1678,#1691,#1703)); +#1705=MANIFOLD_SOLID_BREP('',#1704); +#1706=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#1707=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); +#1708=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#1709=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2), +#1708); +#1710=(CONVERSION_BASED_UNIT('DEGREE',#1709)NAMED_UNIT(#1707)PLANE_ANGLE_UNIT +()); +#1711=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#1712=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.558582844092E-2),#1706, +'closure', +'Maximum model space distance between geometric entities at asserted connectivities'); +#1713=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( +(#1712))GLOBAL_UNIT_ASSIGNED_CONTEXT((#1706,#1710,#1711))REPRESENTATION_CONTEXT +('ID3','3')); +#1714=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); +#1715=DIRECTION('',(0.E0,0.E0,1.E0)); +#1716=DIRECTION('',(1.E0,0.E0,0.E0)); +#1717=AXIS2_PLACEMENT_3D('',#1714,#1715,#1716); +#1719=APPLICATION_CONTEXT +('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); +#1720=APPLICATION_PROTOCOL_DEFINITION('international standard', +'config_control_design',1994,#1719); +#1721=DESIGN_CONTEXT('',#1719,'design'); +#1722=MECHANICAL_CONTEXT('',#1719,'mechanical'); +#1723=PRODUCT('ROD_CLOSER','ROD_CLOSER','NOT SPECIFIED',(#1722)); +#1724=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('3','LAST_VERSION', +#1723,.MADE.); +#1730=CARTESIAN_POINT('',(1.21E3,0.E0,0.E0)); +#1731=DIRECTION('',(0.E0,0.E0,1.E0)); +#1732=DIRECTION('',(0.E0,1.E0,0.E0)); +#1733=AXIS2_PLACEMENT_3D('',#1730,#1731,#1732); +#1734=ITEM_DEFINED_TRANSFORMATION('','',#1733,#1717); +#1735=(REPRESENTATION_RELATIONSHIP('','',#589,#1718)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1734)SHAPE_REPRESENTATION_RELATIONSHIP()); +#1736=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1735,#1729); +#1739=CARTESIAN_POINT('',(-1.21E3,0.E0,0.E0)); +#1740=DIRECTION('',(0.E0,0.E0,1.E0)); +#1741=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1742=AXIS2_PLACEMENT_3D('',#1739,#1740,#1741); +#1743=ITEM_DEFINED_TRANSFORMATION('','',#1742,#1717); +#1744=(REPRESENTATION_RELATIONSHIP('','',#589,#1718)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1743)SHAPE_REPRESENTATION_RELATIONSHIP()); +#1745=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1744,#1738); +#1746=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#1747=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); +#1748=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#1749=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2), +#1748); +#1750=(CONVERSION_BASED_UNIT('DEGREE',#1749)NAMED_UNIT(#1747)PLANE_ANGLE_UNIT +()); +#1751=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#1752=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.434971384778E-1),#1746, +'closure', +'Maximum model space distance between geometric entities at asserted connectivities'); +#1753=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( +(#1752))GLOBAL_UNIT_ASSIGNED_CONTEXT((#1746,#1750,#1751))REPRESENTATION_CONTEXT +('ID4','3')); +#1754=APPLICATION_CONTEXT +('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); +#1755=APPLICATION_PROTOCOL_DEFINITION('international standard', +'config_control_design',1994,#1754); +#1756=DESIGN_CONTEXT('',#1754,'design'); +#1757=MECHANICAL_CONTEXT('',#1754,'mechanical'); +#1758=PRODUCT('ROD_ASM','ROD_ASM','NOT SPECIFIED',(#1757)); +#1759=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('9','LAST_VERSION', +#1758,.MADE.); +#1761=PRODUCT_CATEGORY('part',''); +#1762=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','',(#1758)); +#1763=PRODUCT_CATEGORY_RELATIONSHIP('','',#1761,#1762); +#1764=PRODUCT_CATEGORY('part',''); +#1765=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#582,#766,#1723)); +#1766=PRODUCT_CATEGORY_RELATIONSHIP('','',#1764,#1765); +#1767=SECURITY_CLASSIFICATION_LEVEL('unclassified'); +#1768=SECURITY_CLASSIFICATION('','',#1767); +#1769=CC_DESIGN_SECURITY_CLASSIFICATION(#1768,(#583,#767,#1724,#1759,#590,#771, +#780,#789,#798,#807,#816,#825,#834,#843,#1728,#1737)); +#1770=APPROVAL_STATUS('approved'); +#1771=APPROVAL(#1770,''); +#1772=CC_DESIGN_APPROVAL(#1771,(#1768,#583,#767,#1724,#1759,#584,#768,#1725, +#1760)); +#1773=CALENDAR_DATE(98,17,2); +#1774=COORDINATED_UNIVERSAL_TIME_OFFSET(1,0,.AHEAD.); +#1775=LOCAL_TIME(9,37,4.3E1,#1774); +#1776=DATE_AND_TIME(#1773,#1775); +#1777=APPROVAL_DATE_TIME(#1776,#1771); +#1778=DATE_TIME_ROLE('creation_date'); +#1779=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1776,#1778,(#584,#768,#1725,#1760)); +#1780=DATE_TIME_ROLE('classification_date'); +#1781=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1776,#1780,(#1768)); +#1782=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$); +#1783=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED'); +#1784=PERSON_AND_ORGANIZATION(#1782,#1783); +#1785=APPROVAL_ROLE('approver'); +#1786=APPROVAL_PERSON_ORGANIZATION(#1784,#1771,#1785); +#1787=PERSON_AND_ORGANIZATION_ROLE('creator'); +#1788=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1787,(#583,#767,#1724, +#1759,#584,#768,#1725,#1760)); +#1789=PERSON_AND_ORGANIZATION_ROLE('design_supplier'); +#1790=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1789,(#583,#767,#1724, +#1759)); +#1791=PERSON_AND_ORGANIZATION_ROLE('classification_officer'); +#1792=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1791,(#1768)); +#1793=PERSON_AND_ORGANIZATION_ROLE('design_owner'); +#1794=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1793,(#1758,#582,#766, +#1723)); +#134=EDGE_CURVE('', #99,#100,'',#12,.T.); + +#136=EDGE_CURVE('', #99,#107,'',#4,.T.); + +#138=EDGE_CURVE('', #107,#108,'',#68,.T.); + +#140=EDGE_CURVE('', #100,#108,'',#96,.T.); + +#150=EDGE_CURVE('', #104,#99,'',#8,.T.); + +#153=EDGE_CURVE('', #100,#102,'',#16,.T.); + +#155=EDGE_CURVE('', #102,#118,'',#20,.T.); + +#157=EDGE_CURVE('', #116,#118,'',#24,.T.); + +#159=EDGE_CURVE('', #115,#116,'',#28,.T.); + +#161=EDGE_CURVE('', #120,#115,'',#32,.T.); + +#163=EDGE_CURVE('', #120,#104,'',#36,.T.); + +#174=EDGE_CURVE('', #104,#112,'',#40,.T.); + +#176=EDGE_CURVE('', #112,#107,'',#72,.T.); + +#187=EDGE_CURVE('', #120,#128,'',#52,.T.); + +#189=EDGE_CURVE('', #128,#112,'',#76,.T.); + +#201=EDGE_CURVE('', #102,#110,'',#44,.T.); + +#203=EDGE_CURVE('', #110,#126,'',#92,.T.); + +#205=EDGE_CURVE('', #118,#126,'',#48,.T.); + +#217=EDGE_CURVE('', #115,#123,'',#56,.T.); + +#219=EDGE_CURVE('', #128,#123,'',#80,.T.); + +#231=EDGE_CURVE('', #116,#124,'',#60,.T.); + +#233=EDGE_CURVE('', #123,#124,'',#84,.T.); + +#246=EDGE_CURVE('', #124,#126,'',#88,.T.); + +#257=EDGE_CURVE('', #108,#110,'',#64,.T.); + +#416=EDGE_CURVE('', #381,#382,'',#290,.T.); + +#418=EDGE_CURVE('', #381,#389,'',#286,.T.); + +#420=EDGE_CURVE('', #389,#390,'',#334,.T.); + +#422=EDGE_CURVE('', #382,#390,'',#322,.T.); + +#433=EDGE_CURVE('', #382,#384,'',#294,.T.); + +#435=EDGE_CURVE('', #384,#386,'',#298,.T.); + +#437=EDGE_CURVE('', #386,#402,'',#302,.T.); + +#439=EDGE_CURVE('', #400,#402,'',#306,.T.); + +#441=EDGE_CURVE('', #398,#400,'',#310,.T.); + +#443=EDGE_CURVE('', #397,#398,'',#314,.T.); + +#445=EDGE_CURVE('', #397,#381,'',#318,.T.); + +#457=EDGE_CURVE('', #390,#392,'',#330,.T.); + +#459=EDGE_CURVE('', #384,#392,'',#358,.T.); + +#469=EDGE_CURVE('', #392,#394,'',#326,.T.); + +#473=EDGE_CURVE('', #405,#389,'',#338,.T.); + +#475=EDGE_CURVE('', #405,#406,'',#342,.T.); + +#477=EDGE_CURVE('', #406,#408,'',#346,.T.); + +#479=EDGE_CURVE('', #408,#410,'',#350,.T.); + +#481=EDGE_CURVE('', #394,#410,'',#354,.T.); + +#494=EDGE_CURVE('', #386,#394,'',#362,.T.); + +#504=EDGE_CURVE('', #397,#405,'',#370,.T.); + +#519=EDGE_CURVE('', #402,#410,'',#366,.T.); + +#531=EDGE_CURVE('', #398,#406,'',#374,.T.); + +#544=EDGE_CURVE('', #400,#408,'',#378,.T.); + +#577=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#576,#282,#564),#572); +#584=PRODUCT_DEFINITION('design','',#583,#580); +#585=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD.',#584); +#586=SHAPE_DEFINITION_REPRESENTATION(#585,#577); +#587=SHAPE_DEFINITION_REPRESENTATION(#588,#589); +#588=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD_ASM.',#1760); +#589=SHAPE_REPRESENTATION('',(#595,#776,#785,#794,#803,#812,#821,#830,#839,#848, +#1733,#1742),#1753); +#590=NEXT_ASSEMBLY_USAGE_OCCURRENCE('0','Next assembly relationship','',#1760, +#584,$); +#591=PRODUCT_DEFINITION_SHAPE('Placement #0', +'Placement of ROD with respect to ROD_ASM',#590); +#668=EDGE_CURVE('', #649,#650,'',#602,.T.); + +#670=EDGE_CURVE('', #650,#652,'',#606,.T.); + +#672=EDGE_CURVE('', #652,#654,'',#610,.T.); + +#674=EDGE_CURVE('', #654,#649,'',#614,.T.); + +#685=EDGE_CURVE('', #649,#657,'',#618,.T.); + +#687=EDGE_CURVE('', #657,#658,'',#634,.T.); + +#689=EDGE_CURVE('', #650,#658,'',#630,.T.); + +#700=EDGE_CURVE('', #654,#662,'',#622,.T.); + +#702=EDGE_CURVE('', #662,#657,'',#638,.T.); + +#714=EDGE_CURVE('', #652,#660,'',#626,.T.); + +#716=EDGE_CURVE('', #660,#662,'',#642,.T.); + +#729=EDGE_CURVE('', #658,#660,'',#646,.T.); + +#761=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#760,#748),#756); +#768=PRODUCT_DEFINITION('design','',#767,#764); +#769=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR MODULE.',#768); +#770=SHAPE_DEFINITION_REPRESENTATION(#769,#761); +#771=NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','Next assembly relationship','',#1760, +#768,$); +#772=PRODUCT_DEFINITION_SHAPE('Placement #1', +'Placement of MODULE with respect to ROD_ASM',#771); +#780=NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','Next assembly relationship','',#1760, +#768,$); +#781=PRODUCT_DEFINITION_SHAPE('Placement #2', +'Placement of MODULE with respect to ROD_ASM',#780); +#789=NEXT_ASSEMBLY_USAGE_OCCURRENCE('3','Next assembly relationship','',#1760, +#768,$); +#790=PRODUCT_DEFINITION_SHAPE('Placement #3', +'Placement of MODULE with respect to ROD_ASM',#789); +#798=NEXT_ASSEMBLY_USAGE_OCCURRENCE('4','Next assembly relationship','',#1760, +#768,$); +#799=PRODUCT_DEFINITION_SHAPE('Placement #4', +'Placement of MODULE with respect to ROD_ASM',#798); +#807=NEXT_ASSEMBLY_USAGE_OCCURRENCE('5','Next assembly relationship','',#1760, +#768,$); +#808=PRODUCT_DEFINITION_SHAPE('Placement #5', +'Placement of MODULE with respect to ROD_ASM',#807); +#816=NEXT_ASSEMBLY_USAGE_OCCURRENCE('6','Next assembly relationship','',#1760, +#768,$); +#817=PRODUCT_DEFINITION_SHAPE('Placement #6', +'Placement of MODULE with respect to ROD_ASM',#816); +#825=NEXT_ASSEMBLY_USAGE_OCCURRENCE('7','Next assembly relationship','',#1760, +#768,$); +#826=PRODUCT_DEFINITION_SHAPE('Placement #7', +'Placement of MODULE with respect to ROD_ASM',#825); +#834=NEXT_ASSEMBLY_USAGE_OCCURRENCE('8','Next assembly relationship','',#1760, +#768,$); +#835=PRODUCT_DEFINITION_SHAPE('Placement #8', +'Placement of MODULE with respect to ROD_ASM',#834); +#843=NEXT_ASSEMBLY_USAGE_OCCURRENCE('9','Next assembly relationship','',#1760, +#768,$); +#844=PRODUCT_DEFINITION_SHAPE('Placement #9', +'Placement of MODULE with respect to ROD_ASM',#843); +#1241=EDGE_CURVE('', #1142,#1143,'',#855,.T.); + +#1243=EDGE_CURVE('', #1143,#1145,'',#859,.T.); + +#1245=EDGE_CURVE('', #1145,#1147,'',#863,.T.); + +#1247=EDGE_CURVE('', #1147,#1142,'',#867,.T.); + +#1258=EDGE_CURVE('', #1142,#1150,'',#871,.T.); + +#1260=EDGE_CURVE('', #1150,#1151,'',#887,.T.); + +#1262=EDGE_CURVE('', #1143,#1151,'',#883,.T.); + +#1273=EDGE_CURVE('', #1147,#1155,'',#875,.T.); + +#1275=EDGE_CURVE('', #1155,#1150,'',#891,.T.); + +#1287=EDGE_CURVE('', #1145,#1153,'',#879,.T.); + +#1289=EDGE_CURVE('', #1153,#1155,'',#895,.T.); + +#1302=EDGE_CURVE('', #1151,#1153,'',#899,.T.); + +#1319=EDGE_CURVE('', #1178,#1179,'',#903,.T.); + +#1321=EDGE_CURVE('', #1179,#1181,'',#907,.T.); + +#1323=EDGE_CURVE('', #1181,#1183,'',#911,.T.); + +#1325=EDGE_CURVE('', #1183,#1178,'',#915,.T.); + +#1329=EDGE_CURVE('', #1214,#1215,'',#919,.T.); + +#1331=EDGE_CURVE('', #1215,#1217,'',#923,.T.); + +#1333=EDGE_CURVE('', #1217,#1219,'',#927,.T.); + +#1335=EDGE_CURVE('', #1219,#1214,'',#931,.T.); + +#1346=EDGE_CURVE('', #1178,#1170,'',#935,.T.); + +#1348=EDGE_CURVE('', #1170,#1171,'',#967,.T.); + +#1350=EDGE_CURVE('', #1179,#1171,'',#947,.T.); + +#1361=EDGE_CURVE('', #1183,#1175,'',#939,.T.); + +#1363=EDGE_CURVE('', #1175,#1170,'',#971,.T.); + +#1375=EDGE_CURVE('', #1181,#1173,'',#943,.T.); + +#1377=EDGE_CURVE('', #1173,#1175,'',#975,.T.); + +#1390=EDGE_CURVE('', #1171,#1173,'',#979,.T.); + +#1401=EDGE_CURVE('', #1206,#1207,'',#951,.T.); + +#1403=EDGE_CURVE('', #1211,#1206,'',#955,.T.); + +#1405=EDGE_CURVE('', #1209,#1211,'',#959,.T.); + +#1407=EDGE_CURVE('', #1207,#1209,'',#963,.T.); + +#1411=EDGE_CURVE('', #1222,#1223,'',#999,.T.); + +#1413=EDGE_CURVE('', #1223,#1225,'',#1003,.T.); + +#1415=EDGE_CURVE('', #1225,#1227,'',#1007,.T.); + +#1417=EDGE_CURVE('', #1227,#1222,'',#1011,.T.); + +#1433=EDGE_CURVE('', #1190,#1191,'',#983,.T.); + +#1435=EDGE_CURVE('', #1191,#1193,'',#987,.T.); + +#1437=EDGE_CURVE('', #1193,#1195,'',#991,.T.); + +#1439=EDGE_CURVE('', #1195,#1190,'',#995,.T.); + +#1450=EDGE_CURVE('', #1214,#1206,'',#1015,.T.); + +#1453=EDGE_CURVE('', #1215,#1207,'',#1027,.T.); + +#1464=EDGE_CURVE('', #1219,#1211,'',#1019,.T.); + +#1477=EDGE_CURVE('', #1217,#1209,'',#1023,.T.); + +#1501=EDGE_CURVE('', #1198,#1199,'',#1051,.T.); + +#1503=EDGE_CURVE('', #1199,#1191,'',#1123,.T.); + +#1506=EDGE_CURVE('', #1198,#1190,'',#1031,.T.); + +#1516=EDGE_CURVE('', #1186,#1187,'',#1035,.T.); + +#1518=EDGE_CURVE('', #1187,#1166,'',#1039,.T.); + +#1520=EDGE_CURVE('', #1166,#1167,'',#1043,.T.); + +#1522=EDGE_CURVE('', #1167,#1186,'',#1047,.T.); + +#1527=EDGE_CURVE('', #1203,#1198,'',#1055,.T.); + +#1529=EDGE_CURVE('', #1201,#1203,'',#1059,.T.); + +#1531=EDGE_CURVE('', #1199,#1201,'',#1063,.T.); + +#1535=EDGE_CURVE('', #1230,#1231,'',#1067,.T.); + +#1537=EDGE_CURVE('', #1235,#1230,'',#1071,.T.); + +#1539=EDGE_CURVE('', #1233,#1235,'',#1075,.T.); + +#1541=EDGE_CURVE('', #1231,#1233,'',#1079,.T.); + +#1551=EDGE_CURVE('', #1158,#1159,'',#1087,.T.); + +#1553=EDGE_CURVE('', #1159,#1187,'',#1111,.T.); + +#1556=EDGE_CURVE('', #1158,#1186,'',#1083,.T.); + +#1567=EDGE_CURVE('', #1163,#1158,'',#1091,.T.); + +#1569=EDGE_CURVE('', #1161,#1163,'',#1095,.T.); + +#1571=EDGE_CURVE('', #1159,#1161,'',#1099,.T.); + +#1584=EDGE_CURVE('', #1163,#1167,'',#1103,.T.); + +#1597=EDGE_CURVE('', #1161,#1166,'',#1107,.T.); + +#1622=EDGE_CURVE('', #1203,#1195,'',#1115,.T.); + +#1635=EDGE_CURVE('', #1201,#1193,'',#1119,.T.); + +#1658=EDGE_CURVE('', #1231,#1223,'',#1131,.T.); + +#1661=EDGE_CURVE('', #1230,#1222,'',#1127,.T.); + +#1672=EDGE_CURVE('', #1233,#1225,'',#1135,.T.); + +#1685=EDGE_CURVE('', #1235,#1227,'',#1139,.T.); + +#1718=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#1717,#1705),#1713); +#1725=PRODUCT_DEFINITION('design','',#1724,#1721); +#1726=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD_CLOSER.',#1725); +#1727=SHAPE_DEFINITION_REPRESENTATION(#1726,#1718); +#1728=NEXT_ASSEMBLY_USAGE_OCCURRENCE('10','Next assembly relationship','',#1760, +#1725,$); +#1729=PRODUCT_DEFINITION_SHAPE('Placement #10', +'Placement of ROD_CLOSER with respect to ROD_ASM',#1728); +#1737=NEXT_ASSEMBLY_USAGE_OCCURRENCE('11','Next assembly relationship','',#1760, +#1725,$); +#1738=PRODUCT_DEFINITION_SHAPE('Placement #11', +'Placement of ROD_CLOSER with respect to ROD_ASM',#1737); +#1760=PRODUCT_DEFINITION('design','',#1759,#1756); +ENDSEC; +END-ISO-10303-21; diff --git a/examples/extended/geometry/olap/GNUmakefile b/examples/extended/geometry/olap/GNUmakefile new file mode 100644 index 0000000000..23cae29767 --- /dev/null +++ b/examples/extended/geometry/olap/GNUmakefile @@ -0,0 +1,23 @@ +# $Id: GNUmakefile,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := olapex +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/architecture.gmk + +include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* diff --git a/examples/extended/geometry/olap/History b/examples/extended/geometry/olap/History new file mode 100644 index 0000000000..b4bb03d17f --- /dev/null +++ b/examples/extended/geometry/olap/History @@ -0,0 +1,34 @@ +$Id: History,v 1.3 2002/06/05 16:01:49 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +June 5th, 2002 M.Liendl - olapex-V04-00-01 +- Updated README. + +June 4th, 2002 G.Cosmo - olapex-V04-00-00 +- Some general code cleanup. +- Added disclaimer of liability. +- Fixed usage of G4 types (G4int, G4double, G4bool). +- Fixed usage of namespace (G4std::, G4endl, #include "g4std/...") +- Fixed warnings and porting on supported platforms. + +June 3rd, 2002 M.Liendl +- First implementation of the CMS tool for debugging overlapping geometries. + +June 3rd, 2002 G.Cosmo +- Created. diff --git a/examples/extended/geometry/olap/README b/examples/extended/geometry/olap/README new file mode 100644 index 0000000000..1e654e8081 --- /dev/null +++ b/examples/extended/geometry/olap/README @@ -0,0 +1,433 @@ + + OLAP + + Debugging Tool for Ovelapping Geometries + ---------------------------------------- + (Martin.Liendl@cern.ch) + + 1 Abbreviations + 2 Introduction + 3 Instrumenting the example with a user-geometry + 4 Reference of command line commands + 5 Known Problems + + +1 Abbreviations +=============== + +LV ... instance of G4LogicalVolume + +PV ... instance of G4VPhysicalVolume (Placement, Replica or Parameterised) + +MV ... mother volume, also referred as NewMother + +DV ... daughter volume + +NewWorld ... a geometry consisting of one MV and several DVs. The world +volume is a enlarged bounding box into which the MV is put. Optionally the +MV can be rotated according to user given parameters inside the NewWorld. + + +2 Introduction +============== + +Intersecting DVs inside the same MV or a DV protruding from its MV +are said to be overlapping. Thus a complete geometry is correct, if +all direct DVs of any given MV are not intersecting mutually or whith +their MV. Geant4 does not provide any possibilities for its tracking +geometry to ensure this. The tools described here can't do this either +strictly speaking. The geometry is not verified but falsified when +using these tools. That means, that the geometry needs not be correct +if a check using these tools succeeds (but it will be more likely +to be a correct geometry). But if the check fails, the error is located +and can be fixed more easily. Checking means, that a geantino is shot +from a given point A to another point B and vice versa from B to A. +At each step of the geantino's track a boundary crossing has occurred +(only geometry limits the geantino's steps!). If the set of boundary +crossings from A to B is different from the set going from B to A +(within a given Geant4 tolerance), some volumes must be overlapping +along the line connecting A and B. To locate the overlaps more easily, +the full geometry (which can be very complex in 'depth' in a hierarchical +sense) is not used but only a subset consisting of a user selectable +MV and all contained DVs. Then a user defined 'grid' of geantinos +is shot through this simple geometry and possible overlaps are detected +and reported. Checking all MVs in this way is then equivalent to checking +the full geometry and has the advantage of identifying the cause of +overlap directly. + + +3 Instrumenting the example with a user-geometry +================================================ + +A very tiny geometry (RandomDetector.hh,.cc) is provided within the example. +It is instantiated in the file olapex.cc. + + +3.1 Configuring the user-geometry +--------------------------------- + +The geometry debugging tools can be used for any Geant4 geometry. The +geometry which one wants to debug must be available as subclass of +G4VUserDetectorConstruction and must be used to construct the OlapDetConstr. +Just read the code in olapex.cc and see how any geometry +has to be prepared for debugging. The only thing to do is to use the provided +Olap-UserActions in the main() of the Geant4 program: + +G4RunManager * runManager = new G4RunManager; + +// special primary generator for geantino shooting (in a grid) + +runManager->SetUserAction(new OlapGenerator); + +// the full geometry (which will be debugged) + +G4VUserDetectorConstruction * origGeom = new RandomDetector; + +// wrap full geometry into Olap-Geometry class + +OlapDetConstr * olapGeom = new OlapDetConstr(origGeom); + +// set wrapped geometry for Geant4 to use + +runManager->SetUserInitialization(olapGeom); + +// special physics list (nothing but transportation) + +runManager->SetUserInitialization(new OlapPhysicsList); + +// now create all UserActions ... + +OlapRunAction * olapRunAction = new OlapRunAction; + +OlapEventAction * olapEventAction = new OlapEventAction(olapRunAction); + +OlapSteppingAction * olapSteppingAction = + + new OlapSteppingAction(olapEventAction); + +runManager->SetUserAction(olapRunAction); + +runManager->SetUserAction(olapEventAction); + +runManager->SetUserAction(olapSteppingAction); + + +3.2 Navigating the geometry from command line +---------------------------------------------- + +Unix like navigation of the logical volume hierarchy is provided by +the /olap/cd command. The root of the logical volume tree can be accessed +by the character '/'. Any node in the volume tree can be accessed by a '/' +separated string of regular expressions. If '/' is at the beginning of the string, +the tree hierarchy is transversed from the root otherwise from the +currently chosen logical volume. Further the command /olap/goto +can be used to jump to the first LogicalVolume matching the . + +Every succesful navigational command (/olap/cd, olap/goto) results +in the construction of a NewWorld, the MV beeing the argument of the +navigational command and the DVs beeing the direct daughters of the MV. + +/olap/pwd always shows where in the full geometrical hierarchy the +current NewWorld and MV is located. + + +3.3 Detecting Overlaps +---------------------- + +First determine the density of the grid of geantinos using + +/olap/grid 7 7 7 + +which returns the number of events (= pairs of geantinos) which will +be shot through the NewWorld geometry (in this case 147 geantino pairs). + +To start overlap detection type + +/olap/trigger + +After all 147 events are processed, a summary of detected overlaps +is given. Multiple detected overlaps are only reported once + +Error reports are written to G4cerr and to a log file if this is chosen +(see section on output). The output looks like this: + +===== collected overlaps of run [1] (ol=2) + +--[1]-------------------------- + +delta=51 + +vol 1: point=(-23,0,-40.02) vol 2: point=(-74,0,-40.02) axis=0 + +A -> B: +[0]: ins=[i] PVName=[NewWorld:0] Type=[N] P=(-0,-0,-0) R=[0,90,90,90,0,0] +G4Box: x/2=1234.23 y/2=1234.23 z/2=60.06 +[1]: ins=[o] PVName=[SiliconPatchPanel:0] Type=[N] P=(-0,-0,-0) R=[0,90,90,90,0,0] +G4Tubs: z/2=60 rIn=74 rOut=1233 startPhi=0 deltaPhi=6.28319 +[2]: ins=[s] PVName=[SiliconPatchPanel1:1] Type=[N] P=(-0,-0,-40) R=[0,90,90,90,0,0] +G4Tubs: z/2=20 rIn=23 rOut=1135 startPhi=0 deltaPhi=6.28319 + +B -> A: +[0]: ins=[i] PVName=[NewWorld:0] Type=[N] P=(-0,-0,-0) R=[0,90,90,90,0,0] +G4Box: x/2=1234.23 y/2=1234.23 z/2=60.06 + +'delta' denotes the detected overlap distance. Two volumes are overlapping +at least this distance. The following coordinates of points are points +on the boundary of the overlapping volumes. In case of no overlap +they should be the same points. The first point was found when tracking +from A to B, while the second point was found when tracking from B +to A. Using the command +/olap/delta +the accuracy for detecting an overlap can be set. Overlaps will only +be reported if two volumes overlap at least DELTA*unit on one of the +genantino tracks scanning the volumes. +The default value is 1 nm, which is quite tight. + +To identify the overlapping volumes, +the NavigationHistories of the two points are also shown in the output. +The format of these histories is as follows: + +[A]: ins=[B] PVName=[C] Type=[D] P=(E) R=[F] G + +A --> Level in G4Navigationhistory + +B --> Stepping point is 'inside' vol [2], 'on surface' [1] or 'outside' + [0] (mostly biased by numerical limits) + +C --> PhysicalVolume-name:copy-no + +D --> [N]..placement, [R]..repicated, [P]..parameterized + +E --> Position(intern.units) + +F --> Rotation(in deg:phiX,thetaX,phiY,..) + +G --> Solidtype: specification + +In the sample output given above, one can deduce that 'SiliconPatchPanel1' +with copy-no 1 is overlapping its mother 'SiliconPatchPanel'. +A schematic sketch of this situation is below: + +(x=0) (x=-1234*mm) +(B) <----------------------------------------------------> (A) + + ------------------------------------------------------- + |NewWorld | + | ------------------------------------------- | + | |SiliconPatchPanel | | + | | | | + | ----------------------------------- | | + | |SiliconPatchPanel1 | | | + | | | | | + |....x...*.............................|...........|..| + | | | | | + | ----------------------------------- | | + | | | | + | ------------------------------------------- | + | | + ------------------------------------------------------- + +... = geantino rays from (A) to (B) and from (B) to (A) + x = point found when tracking from (A) to (B) + * = point found wehn tracking from (B) to (A) + + 'x' and '*' should be on the same position in case of no + overlaps. But they are not, because 'SiliconPatchPanel1' is + protruding its mother volume 'SiliconPatchPanel'. + The output report always assigns a point to the volume which + is left behind the current direction of the geantino ray. + In the example 'x' is assigned to 'SiliconPatchPanel1', because + the tracking direction was (A) to (B). On the other hand side, + '*' is assigned to 'NewWorld', because the tracking direction + was (B) to (A). + +3.4 Handling the output +----------------------- + +The output from the overlap detection can be written to file. The program +provides two possibilities: 'Global logging', which creates one file, +or 'logging by volume' where each logical volume puts its overlapping +error into a file. + +To instantiate global logging type: + +/olap/log + +where path/filename is omittable, and the default is olap.log which +will be created in the current directory. Alternatively one can type +the path (must end with /), or only the filename. To stop the logging, +type + +/olap/log false + +(or exit the program) + +The logging by volume command is + +/olap/logByVolume + +where the path is once again omittable. If the path is specified, it +is important that it ends with / . Each log file will then be called +NameOfLogicalVolume.log, for example SiliconPatchPanel.log. Again +the logging can be stopped by typing + +/olap/logByVolume false + +Logging can be done from batch mode with a macro file, or when running +the program. If the path is specified, it has to exist. The logging +files are using the append format. + + +4 Reference of command line commands +==================================== + +4.1 Terminology +--------------- + +NewWorld: NewWorld is the world volume of the chosen subset of the +detector where overlap detection takes place. Its solid is a box slightly +larger than the bounding box of the NewMother solid. + +NewMother(MV): The user chosen mother volume where overlap detection takes +place. It is positioned into origin of the NewWorld. Only +the first level of daughter volumes is then placed inside the NewMother. + + +4.2 Commands for geometry navigation +------------------------------------ + +All command line commands are available in the Geant4 command directory +/olap. For a short help inside Geant4 type help and choose the olap +command directory. + +Commands for navigating the geometry always navigate the full logical +hierarchy and set the current logical volume to the NewMother. +Overlaps are detected only between the volumes of the first layer of +daughters of NewMother and between the daughters and their mother +volume. + +/olap/ls: list all logical daughters of the current NewMother + +/olap/pwd: prints the position of the current NewMother within the +logical hierarchy of the full geometry. + +/olap/rotate : Defines the rotation +of the NewMother inside the NewWorld. The rotation will be applied only +in subsequent navigational commands such as /olap/goto or /olap/cd. +The rotation axis is defined by the angles and , the rotation +angle around this axis by the angle . +Rotating the NewMother can be particulary helpfull in cases where +boundaries of the NewMother or of the daugher volumes are parallel +to the bounderies of the NewWorld-box. Parallesl boundaries often cause +numierical ambiguities during tracking time resulting in fake overlap +detections. + +/olap/goto : Sets the current NewMother to the logical Volume +which name matches . Search order is always descending construction +order of volumes. If more than one volume matches the the +first match is chosen. + +/olap/cd /...: Unix-like changing of the current +NewMother. The argument /olap/cd / sets the topmost logical volume +of the full geometry to NewMother. olap/cd /Tracker sets the first +logical daughter of the topmost logical volume which name matches +Tracker to NewMother. olap/cd .. moves up one step in the logical +hierarchy and sets the corresponding logical volume to NewMother. +Combinations are possible, e.g.: /olap/cd Abc.*xy/../../cdef + +/olap/list : Lists all logical volumes whose name matches +without changing the NewMother. + + +4.2 Commands for overlap detection +---------------------------------- + +/olap/grid a b c: Sets a grid for geantino pairs flying through the +NewWorld. There will be a*b geantino pairs flying parallel to the +z-axis in a regular grid, b*c parallel to the x-axis and a*c parallel +to the y-axis. + +/olap/delta value unit: Sets boundary tolerance for overlaps in units +of length. + +/olap/trigger: Start geantino shooting in the current NewWorld according +to the defined grid. + +/olap/triggerFull n: Starting from the current NewWorld, the trigger-command +is applied n times, each time changing the NewWorld by traversing +the logical volume subtree. If -1 is given as argument (or n > number +of subtree nodes), the whole subtree is checked. + + +4.3 Commands for logging +------------------------ + +/olap/log : Puts the output into one global file. +Default-filename is olap.log. + +/olap/logByVolume : Each logical volume makes its own file called +NameOfLogicalVolume.log where overlap errors for that specific volume +are put. + + +5. Known Problem +================ + +. Overlaps of the same two volumes are sometimes reported more the one + time at the end of a run + +. Fake overlaps are reported sometimes when many boundaries of volumes + are parallel to the axis of 'NewWorld'. In this case, try to + use /olap/rotate to rotate the volumes inside 'NewWorld', set the + 'NewWorld' again and redo the overlap scan. + +. Fake overlaps can be reported when the Geant4 tracking algorithm + gets 'caught' between volume boundaries (many small steps ...) + +. Visualization of overlaps is not yet correctly supported. + + +---------------------------------------------------------------------------- +END OF README +please don't read stuff below ... +---------------------------------------------------------------------------- + +[[********************************** experimental *********************** +3.3 +If visualization +was enabled, the detected overlaps are visualized with green markers +as shown in Fig. [fig:olap]. In this figure the NewMother is visualized +in blue and her daughters in red. +]]************************************************************************ + +[[*** The following is experimental *************************************** +Visualization can also be enabled from the command line. Simply type +/olap/syncVis 1 +where the argument is a boolean and '0' turns the visualization off. +If turned on every change of NewMother should also trigger a redraw +of the chosen visualization driver. If the viewer is not updated, +a flush can be triggered by /vis/viewer/update. Using VRML2FILE as +visualization output, ECalBarrelAlveola_2 can be viewed in an appropriate +VRML viewer:([fig] Example of a NewWorld with a NewMother +in red and her daughters in blue (Alveola structure and contained +crystals of the CMS Ecal). ) + +]]******************************************************************** + + +[[************************************** experimental ********************** +4.4 Commands for visulization +----------------------------- + +/olap/syncVis 1/0: Enables visualization. Every change of NewMother +should trigger a redraw. The argument is a boolean where '1' turns +it on and '0' off. + +/olap/saveVis : Saves the current color scheme to an ASCII +file. (The visualisation attributes can also be modified in this file +externally.) + +/olap/saveVis : Loads a color scheme from an ASCII file. +The color scheme must be compatible with the active Geant4 geometry +in memory. +]]*************************************************************************** diff --git a/examples/extended/geometry/olap/include/G4GeoNav.hh b/examples/extended/geometry/olap/include/G4GeoNav.hh new file mode 100644 index 0000000000..9caa0b19b5 --- /dev/null +++ b/examples/extended/geometry/olap/include/G4GeoNav.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: G4GeoNav.hh,v 1.2 2002/06/04 09:23:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// G4GeoNav +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef G4GeoNav_h +#define G4GeoNav_h + +#include "G4String.hh" +#include "g4std/vector" +#include + +#include "G4RotationMatrix.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4VisAttributes.hh" + +#include "tree.hh" + +class G4VPhysicalVolume; +class OlapDetConstr; + +// qt-free version of G4GeoNav + +typedef Tree LVTree; + +class G4GeoNav +{ + +public: + G4GeoNav( G4LogicalVolume * root ); + ~G4GeoNav(); + G4LogicalVolume * GetLV() { return theCurLV->data(); } + + // get next logical volume which name matches aRegExp + //G4LogicalVolume * NextLV(const G4String & aRegExp); + + // returns a vector of LogicalVolumes which names match the aRegExp + G4int FilterLV(const G4String & aRegExp, + G4std::vector & result, + G4bool stopAtFirst=false); + // returns a vector of LogicalVolumes reflecting the hierarchy of theCurLVItem + G4int PathLV(G4std::vector & result); + // "cd /CMS/Tr.*/.*Barrel" + G4LogicalVolume * ChangeLV(const G4String & aRegExp); + // get next lv as seen from the current one + G4LogicalVolume * NextLV(); + // "pwd" + G4int PwdLV(G4std::vector&); + // "ls" + G4int LsLV(G4std::vector&); + // theSubreeLVItem = theCurLVItem + //void CurLVToSubtree() {theSubtreeLVItem = theCurLVItem;}; + //OlapDetConstr * GetDetConstr(); + const LVTree::node_t & root() const { return *(theLVTree->root()); } + +protected: + + void RecursiveFill(LVTree::node_t*); + + void CountSubtreeNodes(LVTree::node_t*,G4int&); + // recursive counting of nodes + + G4int Tokenize(const G4String &, G4std::vector&); + + void FindLV(regex_t *, LVTree::node_t * , + G4std::vector&, G4bool stopAtFirst=false) ; + + void populateLVTree(LVTree::node_t*); // recursive population of LV-Tree + + LVTree * theLVTree ; + LVTree::node_t * theCurLV; // used in the NewWorld + LVTree::node_t * theRootLV; // root of the 'whole' geometry + LVTree::node_t * theSubtreeEndLVItem; // (un)used ... +}; + +#endif diff --git a/examples/extended/geometry/olap/include/OlapDetConstr.hh b/examples/extended/geometry/olap/include/OlapDetConstr.hh new file mode 100644 index 0000000000..1c696b8224 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapDetConstr.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: OlapDetConstr.hh,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapDetConstr +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapDetConstr_h +#define OlapDetConstr_h + +#include "G4VUserDetectorConstruction.hh" +#include "G4VisAttributes.hh" +#include "G4RotationMatrix.hh" + +class G4VPhysicalVolume; +class G4LogicalVolume; +class G4Box; + + +class OlapDetConstr : public G4VUserDetectorConstruction +{ +public: + + OlapDetConstr(G4VUserDetectorConstruction * aGeometry, + G4VPhysicalVolume *aWorld=0); + + ~OlapDetConstr(); + + // initialization of full geometry + G4VPhysicalVolume * Construct(); + + // returns a new PV-World-Volume with just ONE depths of daughters + G4VPhysicalVolume * SetNewWorld(G4LogicalVolume * aMotherLV, G4bool debugFlag=false); + + // set the rotation of the 'new' world (axis + rotation angle) + void SetRotation(G4double theta, G4double phi, G4double alpha); + + // t.b.i. + G4VPhysicalVolume * SetFullWorld(); + + // returns current 'new' World + G4VPhysicalVolume * GetNewWorld(); + + // returns the 'full' World (the whole detector) + G4VPhysicalVolume * GetFullWorld(); + + // pointer to original world + G4LogicalVolume * GetOriginalWorld(); + + G4int GetNrLVs() { return nrLV; }; + +private: + OlapDetConstr(); + // add: copy-ctor, assign-op + + // resets Colors in FullWorld + void ResetColors(); + void ResetColors(G4LogicalVolume*); + void ColorFirstLevel(); + void ConstructNewWorld(); + void DeleteNewWorld(); + void SetVis(G4LogicalVolume *, G4VisAttributes *); + void DrawPolyOutline(); // Draw only outlines of G4Polycones/-hedras into NewWorld + + G4double theTheta, thePhi, theAlpha; + G4RotationMatrix * theNewWorldRot; + G4VUserDetectorConstruction * theFullGeometry; + G4VPhysicalVolume * theWorld; + G4VPhysicalVolume * theNewWorld; + G4LogicalVolume * theNewWorldLV; + G4LogicalVolume * theNewLV; // ptr to 'original' new-world inside full geometry + G4Box * theNewWorldBox; + G4VisAttributes * visMother; + G4VisAttributes * visDaughterA; + G4VisAttributes * visDaughterB; + G4VisAttributes * visWorld; + G4VisAttributes * visFullWorld; + G4VisAttributes * visFirstLevel; + G4VisAttributes * visInvisible; + G4bool syncVis; + G4int nrLV; +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapEventAction.hh b/examples/extended/geometry/olap/include/OlapEventAction.hh new file mode 100644 index 0000000000..3c4315f9e6 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapEventAction.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: OlapEventAction.hh,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapEventAction +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapEventAction_h +#define OlapEventAction_h + +#include "g4std/vector" +#include "G4UserEventAction.hh" +#include "globals.hh" +#include "G4ThreeVector.hh" +#include "G4NavigationHistory.hh" +#include "OlapSteppingAction.hh" + +class OlapRunAction; +class OlapDetConstr; + +// class to collect detected overlaps +class OlapInfo +{ +public: + OlapInfo(G4NavigationHistory & h1, + G4NavigationHistory & h2, + G4ThreeVector & p1, + G4ThreeVector & p2, + G4int a=0, + G4LogicalVolume* original=0) : + hist1(h1), hist2(h2), v1(p1), v2(p2),axis(a) + {}; + + ~OlapInfo(); + + G4bool operator==(const OlapInfo &); + + G4NavigationHistory hist1, hist2; + G4ThreeVector v1, v2; + G4int axis; + // geantino ray travelling parallel to that axis detected the olap + G4std::vector stAB; + G4std::vector stBA; + G4String info; + G4int probNot ; + G4LogicalVolume* originalMother; +}; + +G4std::ostream & + operator<<(G4std::ostream& flux, OlapInfo & oi); + + +// ------------==============-------------==============---------------- + + +class OlapEventAction : public G4UserEventAction +{ +public: + OlapEventAction(OlapRunAction*); + ~OlapEventAction(); + + void BeginOfEventAction(const G4Event* anEvent); + void EndOfEventAction(const G4Event* anEvent); + + // returns true, if new olverlap was detected! + G4bool InsertOI(OlapInfo *); + + OlapRunAction * theRunAction; + OlapDetConstr * theDet; + G4std::vector ABSteps; + G4std::vector BASteps; + G4bool dontDelete; +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapGenerator.hh b/examples/extended/geometry/olap/include/OlapGenerator.hh new file mode 100644 index 0000000000..2daa5461e8 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapGenerator.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: OlapGenerator.hh,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapGenerator +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapGenerator_h +#define OlapGenerator_h + +#include "g4std/vector" +#include "globals.hh" +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4ThreeVector.hh" + +class G4VisExtent; + +class OlapGrid +{ +public: + OlapGrid(); + void Reset() { for (G4int i=0;i<3;i++) count[i]=0; axis=0; } + void Next(); + G4std::vector count; // + G4std::vector gsize; // gridsize + G4int axis, eventsPerRun; +}; + + +class OlapGenerator : public G4VUserPrimaryGeneratorAction +{ + +public: + OlapGenerator(); + ~OlapGenerator(); + + void GeneratePrimaries(G4Event*); + + void SetExtent(const G4VisExtent&); + + void SetExtent(G4double); + + void SetAutoIncrement(G4bool b) { autoinc = b; } + + void SetGrid(G4int,G4int,G4int); + + void Reset(); + + G4int GetAxis() { return grid.axis; }; + + OlapGrid grid; // basically a vector of , size==3 + G4std::vector ext; + G4ThreeVector posAB, posBA; + G4bool autoinc; +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapLogManager.hh b/examples/extended/geometry/olap/include/OlapLogManager.hh new file mode 100644 index 0000000000..aba2e361b4 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapLogManager.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: OlapLogManager.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapLogManager +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapLogManager_h +#define OlapLogManager_h + +#include "globals.hh" + +class OlapLogManager +{ + +public: + ~OlapLogManager(); + static OlapLogManager * GetOlapLogManager(); + + void Logging(G4String); + void LogByVolume(G4String); + G4bool areWeLogging; + G4bool areWeLoggingByVolume; + G4String filename; + G4String logPath; + + +private: + OlapLogManager(); + static OlapLogManager * theInstance; + +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapManager.hh b/examples/extended/geometry/olap/include/OlapManager.hh new file mode 100644 index 0000000000..5431997972 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapManager.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. * +// ******************************************************************** +// +// +// $Id: OlapManager.hh,v 1.2 2002/06/04 09:23:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapManager +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapManager_h +#define OlapManager_h + +#include "g4std/vector" +#include "g4std/map" +#include "g4std/set" + +#include "globals.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4LogicalVolume.hh" +#include "OlapNotify.hh" +#include "OlapEventAction.hh" // class OlapInfo! + +class OlapManagerMessenger; +class OlapDetConstr; +class OlapVolTree; +class G4RunManager; +class G4GeoNav; +class OlapGui; +class CMSPrimaryGeneratorAction; +class OlapGenerator; + +class OlapManager +{ +public: + ~OlapManager(); + static OlapManager * GetOlapManager(); + void TriggerRun(); + void TriggerFull(G4int=10); + G4VPhysicalVolume * GetNewWorld(); + G4VPhysicalVolume * GetFullWorld(); + //G4bool SetNextWorld(G4int=1); + //G4bool SetPrevWorld(G4int=1); + void SetGrid(G4int,G4int,G4int); + void SetDelta(G4double d) { delta = d;} + G4double Delta() { return delta;} + G4bool Next(); + void ListLV(const G4String &); + void GotoLV(const G4String &); + void ChangeLV(const G4String &); + void SetNewWorld(G4LogicalVolume*); + void SetRotation(G4double theta, G4double phi, G4double alpha); + G4LogicalVolume* GetOriginalWorld(); + void PwdLV(); + void LsLV(); + void TestVolTree(); + G4int GetNrLVs(); + //! interrupts olap-processing (only during 'triggerFull'); + // next trigger/triggerFull will continue! + void Interrupt() { interrupt=true ; } + void registerNotification(OlapNotify*n) { theNotifs.insert(n); } + void notifyNewWorld(G4LogicalVolume*); + void notifyOlaps(const G4std::vector &); + void deRegisterNotification(OlapNotify*n) { ; } + // FIXME: handle completly different in next redesign! + G4std::map NoOlapMap; + +private: + + OlapManager(); + + OlapManagerMessenger * theMessenger; + OlapDetConstr * theDet; + + OlapGenerator * olapGenerator; + CMSPrimaryGeneratorAction * cmsGenerator; + G4double delta; + G4int eventsPerRun; + G4int lvPos; + G4bool polyMode; + G4RunManager * theRunManager; + G4LogicalVolumeStore * theLVStore; + G4std::vector::iterator theLVit; + G4std::vector theLVs; + static OlapManager * theInstance; + G4GeoNav * theGeoNav; + G4std::set theNotifs; + G4bool interrupt; +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapManagerMessenger.hh b/examples/extended/geometry/olap/include/OlapManagerMessenger.hh new file mode 100644 index 0000000000..1b0932b3d1 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapManagerMessenger.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: OlapManagerMessenger.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapManagerMessenger +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapManagerMessenger_h +#define OlapManagerMessenger_h + +#include "G4UImessenger.hh" +#include "OlapLogManager.hh" + +class OlapManager; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; +class G4UIcmdWith3Vector; +class G4UIcmdWith3VectorAndUnit; +class G4UIcmdWithABool; + +class OlapManagerMessenger : public G4UImessenger +{ + +public: + OlapManagerMessenger(OlapManager*); + ~OlapManagerMessenger(); + void SetNewValue(G4UIcommand*, G4String); + +private: + G4UIdirectory * theOlapDir; + G4UIcmdWith3VectorAndUnit * theRotationCmd; + G4UIcmdWithoutParameter * theTriggerCmd; + G4UIcmdWithAnInteger * theTriggerFullCmd; + G4UIcmdWithAString * theGotoWorldCmd; + G4UIcmdWithoutParameter * theLsCmd; + G4UIcmdWithAString * theCdCmd; + G4UIcmdWithAString * theListCmd; + G4UIcmdWithoutParameter * thePwdCmd; + G4UIcmdWithoutParameter * theWhereIsCmd; + G4UIcmdWith3Vector * theSetGridCmd; + G4UIcmdWithADoubleAndUnit * theDeltaCmd; + G4UIcmdWithAString * theLogCmd; + G4UIcmdWithAString * theLogByVolumeCmd; + + OlapManager * theManager; + OlapLogManager * theLogManager; + +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapNotify.hh b/examples/extended/geometry/olap/include/OlapNotify.hh new file mode 100644 index 0000000000..b9e58a1779 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapNotify.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: OlapNotify.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapNotify +// +// Register a subclass of OlapNotify with OlapManager to be +// notified when the geometry changes or when overlap are +// reported. +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapNotify_h +#define OlapNotify_h + +#include "g4std/vector" + +#include "OlapEventAction.hh" + +class G4LogicalVolume; + +class OlapNotify +{ +public: + OlapNotify(); + virtual ~OlapNotify(); + + virtual void worldChanged(G4LogicalVolume* newWorld) = 0; + virtual void overlaps(const G4std::vector &)=0; + +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapPhysicsList.hh b/examples/extended/geometry/olap/include/OlapPhysicsList.hh new file mode 100644 index 0000000000..884cca92b6 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapPhysicsList.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: OlapPhysicsList.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapPhysicsList +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapPhysicsList_h +#define OlapPhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +class OlapPhysicsList: public G4VUserPhysicsList +{ + public: + OlapPhysicsList(); + ~OlapPhysicsList(); + + protected: + // Construct particle and physics + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + virtual void SetCuts(); + + public: + // Set/Get cut values + + protected: + // these methods Construct particles + void ConstructBosons(); + + protected: + // these methods Construct physics processes and register them + + private: + G4double cutForGamma; + G4double cutForElectron; + G4double cutForProton; + G4double currentDefaultCut; +}; + +#endif diff --git a/examples/extended/geometry/olap/include/OlapRunAction.hh b/examples/extended/geometry/olap/include/OlapRunAction.hh new file mode 100644 index 0000000000..2551329313 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapRunAction.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: OlapRunAction.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapRunAction +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapRunAction_h +#define OlapRunAction_h + +#include "g4std/vector" +#include "g4std/fstream" +#include "G4UserRunAction.hh" +#include "OlapEventAction.hh" +#include "OlapLogManager.hh" + +class OlapRunAction : public G4UserRunAction +{ + +public: + + OlapRunAction(); + ~OlapRunAction(); + + void BeginOfRunAction(const G4Run* aRun); + void EndOfRunAction(const G4Run* aRun); + void DrawOlaps(); + + G4std::vector theOlaps; + +private: + + G4std::ofstream FILE; +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapSteppingAction.hh b/examples/extended/geometry/olap/include/OlapSteppingAction.hh new file mode 100644 index 0000000000..009604f9b3 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapSteppingAction.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: OlapSteppingAction.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapSteppingAction +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapSteppingAction_h +#define OlapSteppingAction_h + +#include "g4std/vector" +#include "g4std/iostream" + +#include "globals.hh" +#include "G4UserSteppingAction.hh" +#include "G4VPhysicalVolume.hh" +#include "G4NavigationHistory.hh" + +class OlapEventAction; + +struct OlapStepInfo +{ + G4ThreeVector thePoint; + G4NavigationHistory theHist; + +}; + +G4std::ostream& operator << (G4std::ostream &, const OlapStepInfo &); +G4std::ostream& operator << (G4std::ostream &, G4std::vector &); + +class OlapSteppingAction : public G4UserSteppingAction +{ +public: + OlapSteppingAction(OlapEventAction*); + ~OlapSteppingAction(); + + void UserSteppingAction(const G4Step *); + + OlapEventAction * theEventAction; + +}; +#endif diff --git a/examples/extended/geometry/olap/include/OlapVisManager.hh b/examples/extended/geometry/olap/include/OlapVisManager.hh new file mode 100644 index 0000000000..aee11d5e70 --- /dev/null +++ b/examples/extended/geometry/olap/include/OlapVisManager.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: OlapVisManager.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapVisManager +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OLAPVISMANAGER_HH +#define OLAPVISMANAGER_HH + +#ifdef G4VIS_USE +#include "G4VisManager.hh" + +class OlapVisManager: public G4VisManager +{ + +public: + + OlapVisManager (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/extended/geometry/olap/include/RandomDetector.hh b/examples/extended/geometry/olap/include/RandomDetector.hh new file mode 100644 index 0000000000..36217a9674 --- /dev/null +++ b/examples/extended/geometry/olap/include/RandomDetector.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: RandomDetector.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// RandomDetector +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef RandomDetector_h +#define RandomDetector_h + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" + +class RandomDetector : public G4VUserDetectorConstruction +{ +public: + RandomDetector(G4double prop); + //RandomDetector(G4int level, G4int perLevel, G4double); + ~RandomDetector(); + + G4VPhysicalVolume * Construct(); + +private: + G4int levels_, perLevel_; + G4double overlapProp_; // propability of overlap + G4double worldDim_; +}; + +#endif diff --git a/examples/extended/geometry/olap/include/SolidAnalyser.hh b/examples/extended/geometry/olap/include/SolidAnalyser.hh new file mode 100644 index 0000000000..31bf997af6 --- /dev/null +++ b/examples/extended/geometry/olap/include/SolidAnalyser.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: SolidAnalyser.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// SolidAnalyser +// +// Sigleton providing Geant4 solids specifications in a generic way. +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef SolidAnalyser_h +#define SolidAnalyser_h + +#include "g4std/vector" +#include "g4std/algorithm" + +#include "globals.hh" + +// supported Geant4 solids: +class G4VSolid; +class G4Box; +class G4Cons; +class G4Polycone; +class G4Polyhedra; +class G4Trap; +class G4Trd; +class G4Tubs; + +class SolidAnalyser +{ + +public: + + static SolidAnalyser * GetSolidAnalyser(); + + //void Reset(); + + // user method to retrieve information + G4int GetParam(const G4VSolid *, + G4std::vector > & ) const; + + ~SolidAnalyser(); + +protected: + G4int GetParam(const G4Box *, + G4std::vector > & ) const; + G4int GetParam(const G4Cons *, + G4std::vector > & ) const; + G4int GetParam(const G4Polycone *, + G4std::vector > & ) const; + G4int GetParam(const G4Polyhedra *, + G4std::vector > & ) const; + G4int GetParam(const G4Trap *, + G4std::vector > & ) const; + G4int GetParam(const G4Trd *, + G4std::vector > & ) const; + G4int GetParam(const G4Tubs *, + G4std::vector > & ) const; + +private: + + SolidAnalyser(); + + G4int NotImplemented(const G4VSolid *, + G4std::vector > & ) const; + + static SolidAnalyser * theInstance; +}; + +G4std::ostream & operator<<(G4std::ostream& flux, + G4std::vector >& v); + +#endif diff --git a/examples/extended/geometry/olap/include/tree.hh b/examples/extended/geometry/olap/include/tree.hh new file mode 100644 index 0000000000..6dc574ddea --- /dev/null +++ b/examples/extended/geometry/olap/include/tree.hh @@ -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. * +// ******************************************************************** +// +// +// $Id: tree.hh,v 1.2 2002/06/04 09:23:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// Tree +// +// Very simple tree data-type to get rid of QT-ListView ... +// Trees are build once and not to be modified. +// No memory management for Data! +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#ifndef OlapTree_h +#define OlapTree_h + +#include "g4std/set" +#include "g4std/vector" +#include "g4std/list" + +#include "G4Types.hh" + +template class TreeNodeIterator; + +template +class TreeNode +{ + + friend class TreeNodeIterator; + +public: + + TreeNode(TreeNode * parent, Data data) + : parent_(parent), firstChild_(0), + lastChild_(0), nextSibling_(0), data_(data) + { + if (parent) + { + if(!parent->firstChild_) + { + parent->firstChild_=this; + parent->lastChild_=this; + } + else + { + parent->lastChild_->nextSibling_ = this; + parent->lastChild_=this; + } + } + } + + ~TreeNode() // deletes the whole subtree as well! + { + if (parent_) + { + TreeNode * i = parent_->firstChild_; + while(*i) + { + TreeNode * temp = i; + i = i->nextSibling_; + delete temp; + } + } + } + + TreeNode * parent() const { return parent_; } + Data data() const { return data_; } + + G4int childCount() const + { + TreeNode * i = firstChild_; + G4int c=0; + while (i) + { + i = i->nextSibling_; c++; + } + return c; + } + TreeNode * firstChild() const { return firstChild_; } + TreeNode * nextSibling() const { return nextSibling_; } + TreeNode * lastChild() const { return lastChild_; } + +protected: + + TreeNode * parent_; + TreeNode * firstChild_; + TreeNode * lastChild_; + TreeNode * nextSibling_; + Data data_; + +private: + TreeNode(const TreeNode &); + TreeNode & operator=(const TreeNode *); +}; + + +template +class Tree +{ +public: + + typedef TreeNode node_t; + + Tree(Data rt) + : root_(new node_t(0,rt)) {} + + node_t * root() { return root_; } + +protected: + + node_t * root_; +}; + + +template +class TreeNodeIterator +{ +public: + TreeNodeIterator(TreeNode * np) + : myroot_(np), curpos_(np) + { + //if (np->parent()) + //nexts_=++(np->parent()->firstChild()); + } + + ~TreeNodeIterator() { } + + TreeNode * current() { return curpos_; } + + TreeNode * next() + { + + if (curpos_->firstChild_) + { + curpos_ = curpos_->firstChild_; + return curpos_; + } + + if (curpos_->nextSibling_) + { + curpos_ = curpos_->nextSibling_; + return curpos_; + } + while(up()) + { + if (curpos_->nextSibling_) + { + curpos_ = curpos_->nextSibling_; + return curpos_; + } + } + return 0; + } + +protected: + + G4bool up() + { + G4bool result(true); + if (curpos_->parent_) + curpos_ = curpos_->parent_; + else + result=false; + + if (curpos_==myroot_) + { + result=false; + } + return result; + } + + TreeNode * myroot_; + TreeNode * curpos_; + //Tree::c_iterator nextc_; +}; + +#endif diff --git a/examples/extended/geometry/olap/olapex.cc b/examples/extended/geometry/olap/olapex.cc new file mode 100644 index 0000000000..2909402753 --- /dev/null +++ b/examples/extended/geometry/olap/olapex.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: olapex.cc,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - OLAP, Debugging Tool for Ovelapping Geometries +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +// the detector-construction +#include "RandomDetector.hh" + +// Geant4 +#include "G4RunManager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +// this module +#include "OlapGenerator.hh" +#include "OlapDetConstr.hh" +#include "OlapPhysicsList.hh" +#include "OlapManager.hh" +#include "OlapRunAction.hh" +#include "OlapEventAction.hh" +#include "OlapSteppingAction.hh" +#include "G4GeoNav.hh" + +#ifdef G4VIS_USE + #include "OlapVisManager.hh" +#endif + +#ifdef debug + #include "G4LogicalVolumeStore.hh" + #include "G4PhysicalVolumeStore.hh" +#endif + + +int main(int argc,char** argv) { + + + G4RunManager * runManager = new G4RunManager; + + // particle-generator must be the first useraction!!! + runManager->SetUserAction(new OlapGenerator); + + // put the user-geometry here + G4VUserDetectorConstruction * origGeom = new RandomDetector(0); + OlapDetConstr * olapGeom = new OlapDetConstr(origGeom); + runManager->SetUserInitialization(olapGeom); + runManager->SetUserInitialization(new OlapPhysicsList); + + // initialize G4 + runManager->Initialize(); + + // initialize overlap-detection + OlapManager * olap = OlapManager::GetOlapManager(); + olap->GotoLV(olap->GetFullWorld()->GetLogicalVolume()->GetName()); + +#ifdef G4VIS_USE + //Instantiating OlapVisManager + OlapVisManager *visManager = new OlapVisManager; + visManager -> Initialize(); +#endif + + //User action classes. + OlapRunAction * olapRunAction = new OlapRunAction; + OlapEventAction * olapEventAction = new OlapEventAction(olapRunAction); + OlapSteppingAction * olapSteppingAction = new OlapSteppingAction(olapEventAction); + runManager->SetUserAction(olapRunAction); + runManager->SetUserAction(olapEventAction); + runManager->SetUserAction(olapSteppingAction); + + + +#ifdef debug + //Get number of logical and physical volumes + G4LogicalVolumeStore* logstore = G4LogicalVolumeStore::GetInstance(); + G4PhysicalVolumeStore* phystore = G4PhysicalVolumeStore::GetInstance(); + G4cout << endl + << "Number of Logical volumes " << logstore->entries() << endl + << "====================================" << endl + << "Number of Physical volumes " << phystore->entries() << endl + << "====================================" << endl << endl; +#endif + + + + //Get the pointer for the User Interface maager + G4UImanager* UI = G4UImanager::GetUIpointer(); + + if (argc == 1) { + G4VUIshell * s = new G4UItcsh("Idle> ",10); + G4UIsession* session = new G4UIterminal(s); + + G4String command = "/control/execute gui.mac"; + UI->ApplyCommand(command); + session->SessionStart(); + + delete session; + } + //Batch mode + else { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + + +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; + + return 0; +} diff --git a/examples/extended/geometry/olap/src/G4GeoNav.cc b/examples/extended/geometry/olap/src/G4GeoNav.cc new file mode 100644 index 0000000000..82ec830d0e --- /dev/null +++ b/examples/extended/geometry/olap/src/G4GeoNav.cc @@ -0,0 +1,318 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4GeoNav.cc,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// G4GeoNav +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "G4GeoNav.hh" + +G4GeoNav::G4GeoNav( G4LogicalVolume * rv ) + : theLVTree(new LVTree(rv)) +{ + theCurLV = theLVTree->root(); + theRootLV = theLVTree->root(); + RecursiveFill(theLVTree->root()); +} + +G4GeoNav::~G4GeoNav() +{} + + +G4LogicalVolume * G4GeoNav::NextLV() +{ + //FIXME: G4GeoNav::NextLV() + + TreeNodeIterator tni(theCurLV); + + G4LogicalVolume * v = 0; + if (tni.next()) { + v = tni.current()->data(); + theCurLV = tni.current(); + } + return v; +/* + G4cerr << "DON'T CALL G4GeoNav::Next()!" << endl; + exit(1); + return 0; +*/ +} + + +G4int G4GeoNav::FilterLV(const G4String & aRegexStr, + G4std::vector & result, + G4bool stopAtFirst) +{ + regex_t aRegex; + const char * aRegexCStr = aRegexStr.data(); + if (regcomp(&aRegex,aRegexCStr,0)) { + G4cerr << "failed to interpret regex-string" << G4endl; + return 0; + } + + LVTree::node_t * aNode = theLVTree->root(); + FindLV(&aRegex,aNode,result,stopAtFirst); + regfree(&aRegex); + return result.size(); +} + + +void G4GeoNav::FindLV(regex_t * aRegex, LVTree::node_t * node, + G4std::vector& result, + G4bool stopAtFirst) +{ + if( !regexec(aRegex, node->data()->GetName().data(), 0,0,0)) + { + result.push_back(node->data()); + if (stopAtFirst) + { + theCurLV = node; + return; + } + } + + LVTree::node_t * i = node->firstChild(); + while(i) { // recursive + FindLV(aRegex, i, result, stopAtFirst); + i = i->nextSibling(); + } + +} + +G4int G4GeoNav::PathLV(G4std::vector & result) +{ + result.push_back(theCurLV->data()); + G4int level=1; + LVTree::node_t * node = theCurLV; + while (node->parent()) + { + node = node->parent(); + G4LogicalVolume * aLV = node->data(); + result.push_back(aLV); + level++; + } + return level; +} + + +G4int G4GeoNav::Tokenize(const G4String & aStr, + G4std::vector& tokens) +{ + G4String::size_type c = aStr.size(); + G4String::size_type idx = 0; + G4String::size_type idx2 = 0; + + // empty string means 'root' + if (!c) + { + tokens.push_back("/"); + return 1; + } + + // scan for '/' + G4std::vector pos; + pos.push_back(0); // begin of input + G4String sep("/"); + + if (aStr[idx]==sep[idx]) + tokens.push_back("/"); + + G4String curStr = aStr; // G4String("-") ; + + G4String::size_type i=0; + for (i=0; i tokens; + G4int c = Tokenize(aRegExp,tokens); + + LVTree::node_t * anItem = theCurLV; + LVTree::node_t * anItemBefore = theCurLV; + if (c) { + + G4std::vector::iterator it = tokens.begin(); + if (*it==G4String("/")) + { // absolute or relative + anItem = theRootLV; + it++; + } + + while ( it != tokens.end() ) + { + //regex_t aRegex; + if (*it == G4String("..")) + { + anItem = anItem->parent(); + if (!anItem) { + G4cerr << "not found!" << G4endl; + return 0; + } + it++; + } + else + { + regex_t aRegex; + const char * aRegexCStr = (*it).data(); + if (regcomp(&aRegex,aRegexCStr,0)) + { + G4cerr << "failed to interpret regex-string" << G4endl; + return 0; + } + + G4int children = anItem->childCount(); + + if (!children) + { + G4cerr << "not found!!" << G4endl; + return 0; + } + + //LVTree::node_t * temp = *(anItem->firstChild()); + //anItem = temp; + + // loop over children + LVTree::node_t * u= anItem->firstChild(); + G4bool found=false; + while (u) + { + if ( !regexec(&aRegex, u->data()->GetName().data(),0,0,0)) + { + found=true; + anItem = u; + break; + } + u = u->nextSibling(); + } + + regfree(&aRegex); + if (!found) + { + G4cerr << "not found!!!!" << G4endl; + return 0; + } + it++; + } + + } + + if (anItem!=anItemBefore) + { + theCurLV=anItem; + return anItem->data(); + } + return 0; + } + return 0; +} + +G4int G4GeoNav::PwdLV(G4std::vector& result) +{ + result.push_back(theCurLV->data()); + LVTree::node_t * temp = theCurLV; + while (temp->parent()) + { + temp = temp->parent(); + result.push_back(temp->data()); + } + return result.size(); +} + + +void G4GeoNav::RecursiveFill(LVTree::node_t* node) +{ + G4LogicalVolume * lv = node->data(); + + G4std::set lvset; + + for ( G4int i=0; iGetNoDaughters(); ++i) + { + lvset.insert(lv->GetDaughter(i)->GetLogicalVolume()); + } + + G4std::set::iterator it = lvset.begin(); + for(;it!=lvset.end();++it) + { + LVTree::node_t * newnode = new LVTree::node_t(node, *it); + //create new node '*it' in parent 'node' + RecursiveFill(newnode); + } + +} + +G4int G4GeoNav::LsLV(G4std::vector& result) +{ + G4int c=0; + LVTree::node_t * n = theCurLV->firstChild(); + while(n) + { + result.push_back(n->data()); + n = n->nextSibling(); + c++; + } + return c; +} diff --git a/examples/extended/geometry/olap/src/OlapDetConstr.cc b/examples/extended/geometry/olap/src/OlapDetConstr.cc new file mode 100644 index 0000000000..361654ed8b --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapDetConstr.cc @@ -0,0 +1,631 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: OlapDetConstr.cc,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapDetConstr +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapDetConstr.hh" +#include "OlapGenerator.hh" + +#include "SolidAnalyser.hh" +#include "OlapManager.hh" + +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4PVParameterised.hh" +#include "G4LogicalVolume.hh" +#include "G4RunManager.hh" +#include "G4VisExtent.hh" +#include "G4VisAttributes.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4Box.hh" +#include "G4Polyline.hh" +#include "G4Polycone.hh" +#include "G4Polyhedra.hh" +#include "G4ThreeVector.hh" + +// debugging: +//#define OLAPDEBUG1 +//#define OlapDetConstr_debug + +OlapDetConstr::OlapDetConstr(G4VUserDetectorConstruction * aGeometry, + G4VPhysicalVolume *aWorld) : + theTheta(0), + thePhi(0), + theAlpha(0), + theNewWorldRot(0), + theFullGeometry(aGeometry), + theWorld(aWorld), + theNewWorld(0), + theNewLV(0), + theNewWorldBox(new G4Box("world",1.,1.,1.)), + syncVis(true), + nrLV(0) +{ + //theNewWorldLV = new G4LogicalVolume + visMother = new G4VisAttributes(G4Colour(7.0, 0.0, 0.0, 0.4)); // red + visMother->SetForceWireframe(true); + visDaughterA = new G4VisAttributes(G4Colour(.0, 0.0, 1.0, 0.3)); // blue + visDaughterA->SetForceWireframe(false); + visDaughterB = new G4VisAttributes(G4Colour(0., 0., 1.0, 0.3)); // light-blue + visDaughterB->SetForceWireframe(false); + visWorld = new G4VisAttributes(G4Colour(1., 0, 0, 1.)); // red + visWorld->SetForceWireframe(false); + visWorld->SetVisibility(true); + + visFullWorld = new G4VisAttributes(G4Colour(1.,1.,1.,0.9)); + visFullWorld->SetForceWireframe(true); + visWorld->SetVisibility(false); + + visInvisible = new G4VisAttributes(G4Colour(1.,1.,1.,0.9)); + visInvisible->SetForceWireframe(true); + visInvisible->SetVisibility(false); + + visFirstLevel = new G4VisAttributes(G4Colour(1.,1.,1,1)); + visFirstLevel->SetForceWireframe(true); + visFirstLevel->SetVisibility(true); +} + + +OlapDetConstr::~OlapDetConstr() +{ + //delete theNewWorld; + //delete theNewLV; not the owner! + //delete theFullGeometry; + //delete visMother; + //delete visDaughterA; + //delete visDaughterB; + //delete visWorld; + + //delete visFullWorld; + //delete visInvisible; + //delete visFirstLevel; +} + + +void OlapDetConstr::SetRotation(G4double t, G4double p, G4double a) +{ + theTheta = t; + thePhi = p; + theAlpha = a; +} + + +G4VPhysicalVolume * OlapDetConstr::Construct() +{ + if (!theWorld) + theWorld = theFullGeometry->Construct(); + if (!theWorld) + { + G4cerr << "OlapDetConstr::Construct(): could not create full world." << G4endl; + G4cerr << " exiting ..." << G4endl; + G4Exception("ERROR - OlapDetConstr::Construct()"); + } + + // logical volume which will have a box with its dimensions derived from + // the extent of the 'new-mother' volume positioned inside + // the size of this NewWorld will be set in 'SetNewWorld(..)' + theNewWorldLV = + new G4LogicalVolume(theNewWorldBox, + theWorld->GetLogicalVolume()->GetMaterial(), + "NewWorld" + ); + + // physical volume which will serve as the 'small' NewWorld to be + // used for overlap checking + theNewWorld = + new G4PVPlacement( 0, // rotation + G4ThreeVector(), // translation + "NewWorld", // name of phys = name of logical!!! + theNewWorldLV, // own logical vol + 0, false, 0 // no mother, not MANY, cpNr=0 + ); + + theNewWorldLV->SetVisAttributes(visWorld); + + //ResetColors(); + + + theNewLV = theWorld->GetLogicalVolume(); + nrLV = G4LogicalVolumeStore::GetInstance()->size(); + G4cout << "OlapDetConstr::Construct(): nr of lvs=" << nrLV << G4endl; + return theWorld; +} + + +G4VPhysicalVolume * OlapDetConstr::SetNewWorld(G4LogicalVolume * aMotherLV, + G4bool debugFlag) +{ + if (debugFlag) + { + G4cout << "mother: " << aMotherLV->GetName() << " : " + << aMotherLV->GetSolid()->GetName() << G4endl; + return 0; + } + + //ML: ResetColors(theNewLV); + theNewLV = aMotherLV; + + ConstructNewWorld(); + + // set new world to Geant4-Kernel + G4RunManager::GetRunManager()->DefineWorldVolume(theNewWorld); + + // try to set the OlapGenerator + const OlapGenerator * aGen = dynamic_cast + (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + if ( aGen ) + { + OlapGenerator * aNonConstGen = const_cast(aGen); + + // 'optimal' extent + // aNonConstGen->SetExtent(theNewLV->GetSolid()->GetExtent()); + + // extent which allows arbitrary rotations ... + G4Box * bx = dynamic_cast + (theNewWorld->GetLogicalVolume()->GetSolid()); + aNonConstGen->SetExtent(2.*bx->GetXHalfLength()); + } + else + { + G4cerr << "Warning: Primary generator is not OlapGenerator!" << G4endl + << "Overlap Detection will not work!" << G4endl; + } + return theNewWorld; +} + + +G4VPhysicalVolume * OlapDetConstr::GetNewWorld() +{ + return theNewWorld; +} + + +G4VPhysicalVolume * OlapDetConstr::GetFullWorld() +{ + return theWorld; +} + + +void OlapDetConstr::DrawPolyOutline() +{ + SolidAnalyser::GetSolidAnalyser(); + G4VSolid * solid = theNewLV->GetSolid(); + G4Polyline line, endline; + G4double ex(0), first_r(0), first_z(0); + G4double maxz(0), maxr(0); + G4int nr(0); + G4Polycone * s = dynamic_cast(solid); + G4Polyhedra * sh = dynamic_cast(solid); + if (s) + { + nr = s->GetNumRZCorner(); + + first_r = s->GetCorner(0).r; + first_z = s->GetCorner(0).z; + for (G4int i=0; iGetCorner(i).r; + G4double z = s->GetCorner(i).z; + //line.push_back(G4ThreeVector(r,0.,z)); + line.push_back(G4ThreeVector(r,z,0)); + if (r>maxr) + maxr=r; + if (z>maxz) + maxz=z; + G4cout << G4ThreeVector(r,0,z) << G4endl; + //endline.push_back(G4ThreeVector(s->GetCorner(nr-1).r, 0., + // s->GetCorner(nr-1).z)); + endline.push_back(G4ThreeVector(s->GetCorner(nr-1).r, + s->GetCorner(nr-1).z,0)); + } + } + else if (sh) + { + nr = sh->GetNumRZCorner(); + + first_r = sh->GetCorner(0).r; + first_z = sh->GetCorner(0).z; + for (G4int i=0; iGetCorner(i).r; + G4double z = sh->GetCorner(i).z; + line.push_back(G4ThreeVector(r,0.,z)); + if (r>maxr) + maxr=r; + if (z>maxz) + maxz=z; + G4cout << G4ThreeVector(r,0,z) << G4endl; + endline.push_back(G4ThreeVector(sh->GetCorner(nr-1).r, 0., + sh->GetCorner(nr-1).z)); + } + } + else + return; + + //endline.push_back(G4ThreeVector(first_r,0.,first_z)); + endline.push_back(G4ThreeVector(first_r,first_z,0.)); + if (maxz>=maxr) + ex = maxz; + else + ex = maxr; + + G4cout << "ex=" << ex << G4endl; + theNewWorldBox->SetXHalfLength(ex + ex/30.); + theNewWorldBox->SetYHalfLength(ex + ex/30.); + theNewWorldBox->SetZHalfLength(ex + ex/30.); + + G4Colour colour; + colour = G4Colour(1.,0.,0.); + line.SetVisAttributes(theNewLV->GetVisAttributes()->GetColor()); + G4VVisManager::GetConcreteInstance()->Draw(line); + colour = G4Colour(0.,1.,0.); + endline.SetVisAttributes(theNewLV->GetVisAttributes()->GetColor()); + //endline.SetVisAttributes(attribs3); + G4VVisManager::GetConcreteInstance()->Draw(endline); + colour = G4Colour(0.,0.,1.); + G4Polyline ax; + //ax.push_back(G4ThreeVector(0.,0.,-ex)); + //ax.push_back(G4ThreeVector(0.,0.,ex)); + ax.push_back(G4ThreeVector(0.,-ex,0.)); + ax.push_back(G4ThreeVector(0.,ex,0.)); + G4VisAttributes attribs2(colour); + ax.SetVisAttributes(attribs2); + G4VVisManager::GetConcreteInstance()->Draw(ax); +} + +void OlapDetConstr::ConstructNewWorld() +{ + // delete the current NewWorld + DeleteNewWorld(); + + #ifdef OlapDetConstr_debug + G4int checkb = G4LogicalVolumeStore::GetInstance()->size(); + G4cerr << "OlapDetConstr::ConstructNewWorld():" + << " nr of lvs after DeleteNewWorld is: " << checkb << G4endl; + #endif + + #ifdef somewhen_but_not_now + OlapManager * m = OlapManager::GetOlapManager(); + // If polymode is set, don't create a overlap-detection world + // but draw the outlines of the mother polycone/-hedra (if it is one) + if (m->IsPolyMode()) + { + DrawPolyOutline(); + return; + } + #endif + G4int nr = theNewLV->GetNoDaughters(); + + // create a NewWorld with a 2% larger extent than the + // solid of the NewMother + + const G4VisExtent & ext = theNewLV->GetSolid()->GetExtent(); + G4double extX = (ext.GetXmax()-ext.GetXmin())/2.; + G4double extY = (ext.GetYmax()-ext.GetYmin())/2.; + G4double extZ = (ext.GetZmax()-ext.GetZmin())/2.; + G4ThreeVector pos( (ext.GetXmax()+ext.GetXmin())/2. , + (ext.GetYmax()+ext.GetYmin())/2. , + (ext.GetZmax()+ext.GetZmin())/2. + ); + pos=-pos; + + /* + extX += extX/1000.; + extY += extY/1000.; + extZ += extZ/1000.; + */ + G4double worldDim = sqrt(extX*extX + extY*extY + extZ*extZ); + worldDim += worldDim/100.; + // this automatically sets the dimensions of the + // solid in theNewWorldLV, because it's a ptr to the same solid + theNewWorldBox->SetXHalfLength(worldDim); + theNewWorldBox->SetYHalfLength(worldDim); + theNewWorldBox->SetZHalfLength(worldDim); + + //G4LogicalVolume * aInbetweenLV = + // new G4LogicalVolume(theNewWorldBox, theNewLV->GetMaterial(), "INBETWEEN"); + + //aInbetweenLV->SetVisAttributes(visWorld); + + // create the mother with one layer of daughters + G4LogicalVolume * aNewMotherLV = + new G4LogicalVolume(theNewLV->GetSolid(), + theNewLV->GetMaterial(), + theNewLV->GetName() + ); + + //LM + // below the mother is fixed colored instead as taken from vis-atts of the + // full detector + //aNewMotherLV->SetVisAttributes(visMother); + aNewMotherLV->SetVisAttributes(theNewLV->GetVisAttributes()); + +#ifdef OLAPDEBUG2 + G4cout << " mother: " << theNewLV->GetName() << G4endl; +#endif + + delete theNewWorldRot; + G4ThreeVector rotAxis(cos(thePhi)*sin(theTheta), + sin(thePhi)*sin(theTheta), + cos(theTheta)); + + theNewWorldRot = new G4RotationMatrix(rotAxis,theAlpha); + + /* + new G4PVPlacement( theNewWorldRot, G4ThreeVector(), aInbetweenLV, + theNewLV->GetName(), + theNewWorldLV, false, 0); + */ + + // G4VPhysicalVolume * aNewMotherPV = + new G4PVPlacement( theNewWorldRot, // rotation + pos, // translation + aNewMotherLV, // own logical vol + theNewLV->GetName(), // name of phys = name of logical!!! + + theNewWorldLV, // mother logical vol + //aInbetweenLV, + + false, 0 // not MANY, cpNr=0 + ); + + + // loop over daughters an copy them into the new world ... + // - but don't iterate recursively over deeper layers of daughters! + for (G4int i=0; iGetDaughter(i); + #ifdef OLAPDEBUG2 + G4cout << i << " "; + #endif + + // --------------------------------------------------------------- + // only do the stuff, if OlapManager.NoOlapMap[lv] is set to false! + // otherwise the volume should not be considered for olap detection + + OlapManager * m = OlapManager::GetOlapManager(); + if (m->NoOlapMap[pv->GetLogicalVolume()]) + continue; + // --------------------------------------------------------------- + + G4LogicalVolume * myLogical = + new G4LogicalVolume(pv->GetLogicalVolume()->GetSolid(), + pv->GetLogicalVolume()->GetMaterial(), + pv->GetLogicalVolume()->GetName() + ); + + //LM + // take vis atts from whole detector instead of fixed values! + myLogical->SetVisAttributes(pv->GetLogicalVolume()->GetVisAttributes()); + + // select between placements, replicas and parameterizations + G4PVPlacement * pvPlace; + if (dynamic_cast(pv)) + { + pvPlace = dynamic_cast(pv); + new G4PVPlacement( pvPlace->GetRotation(), + pvPlace->GetTranslation(), + myLogical, // my own logical vol + pvPlace->GetName(), + aNewMotherLV, // my mother logical vol + false, // not many + pvPlace->GetCopyNo() + ); + #ifdef OLAPDEBUG2 + G4cout << " daughter: " << i << " " << pvPlace->GetName() + << " lv=" << pv->GetLogicalVolume()->GetName() + << " solid=" << pv->GetLogicalVolume()->GetSolid()->GetEntityType() << G4endl; + #endif + + } + else if ( pv->IsReplicated() && ! pv->GetParameterisation() ) // Replicas + { + // retrieve replication data + EAxis aAxis; + G4int nReplicas; + G4double aWidth, anOffset; + G4bool aDummy; + pv->GetReplicationData(aAxis, nReplicas, aWidth, anOffset, aDummy); + + new G4PVReplica( pv->GetName(), + myLogical, + aNewMotherLV, + aAxis, + nReplicas, + aWidth, + anOffset + ); + + #ifdef OLAPDEBUG2 + G4cout << " repl.daughter: " << i << " " << pv->GetName() + << " lv=" << pv->GetLogicalVolume()->GetName() + << " solid=" << pv->GetLogicalVolume()->GetSolid()->GetEntityType() << G4endl; + #endif + + } + else if ( pv->IsReplicated() && pv->GetParameterisation() ) + { + // retrieve replication/parameterisation data + EAxis aAxis; + G4int nReplicas; + G4double aWidth, anOffset; + G4bool aDummy; + pv->GetReplicationData(aAxis, nReplicas, aWidth, anOffset, aDummy); + G4VPVParameterisation *pParam = pv->GetParameterisation(); + + new G4PVParameterised( pv->GetName(), + myLogical, + aNewMotherLV, + aAxis, + nReplicas, + pParam + ); + #ifdef OLAPDEBUG2 + G4cout << " param.daughter: " << i << " " << pv->GetName() + << " lv=" << pv->GetLogicalVolume()->GetName() + << " solid=" + << pv->GetLogicalVolume()->GetSolid()->GetEntityType() + << G4endl; + #endif + + }// end:placement?replica?parameterisation + + } // end:Loop over Daughters + + #ifdef OlapDetConstr_debug + G4int check = G4LogicalVolumeStore::GetInstance()->size(); + G4cerr << "OlapDetConstr::ConstructNewWorld():" + << " nr of lvs after construction is: " << check + << G4endl << G4endl; + #endif + +} + + +void OlapDetConstr::DeleteNewWorld() +{ + #ifdef OlapDetConstr_debug + G4int checkb = G4LogicalVolumeStore::GetInstance()->size(); + G4cerr << "OlapDetConstr::DeleteNewWorld():" + << " nr of lvs before delete is: " << checkb << G4endl; + #endif + + G4int nr = theNewWorldLV->GetNoDaughters(); + + if (nr==0) + { + G4cerr << "OlapDetConstr::DeleteNewWorld(): no daughter in NewWorld!" + << G4endl << G4endl; + return; + } + + if (nr>1 || nr<0) // only one daughter is allowed!!!! + { + G4cerr << "OlapDetConstr::DeleteNewWorld(): " + << "too many daughters in NewWorldLV!" << nr << G4endl; + G4cerr << " exiting ..." << G4endl; + G4Exception("ERROR - OlapDetConstr::DeleteNewWorld()"); + } + + G4LogicalVolume * aMother; + G4VPhysicalVolume * aDaughter; + + aMother = theNewWorldLV->GetDaughter(0)->GetLogicalVolume(); + + G4int nrd = aMother->GetNoDaughters(); + for (G4int i=0; iGetDaughter(i); + G4LogicalVolume * tmp = aDaughter->GetLogicalVolume(); + //aMother->RemoveDaughter(aDaughter); + #ifdef OlapDetConstr_debug + G4cerr << " deleting: i=" << i << " of " << nrd + << " : vol=" << tmp->GetName() << G4endl; + #endif + delete tmp; + delete aDaughter; + } + + aDaughter = theNewWorldLV->GetDaughter(0); + theNewWorldLV->RemoveDaughter(aDaughter); + delete aDaughter; + delete aMother; + + #ifdef OlapDetConstr_debug + G4int check = G4LogicalVolumeStore::GetInstance()->size(); + if (check!=nrLV) { + G4cerr << "OlapDetConstr::DeleteNewWorld():" + << " nr of lvs should be: " << nrLV << " but is: " + << check << G4endl; + } + #endif +} + + +// set everything in the full geometry to invisible +void OlapDetConstr::ResetColors() +{ +/* + G4ColorMap * aColMap = G4ColorMap::GetColorMap(); + aColMap->SetAllInvisible(); +*/ + //ColorFirstLevel(); +} + + +// colors the first layer of daughters of the full geometry +void OlapDetConstr::ColorFirstLevel() +{ +/* + G4ColorMap * aColMap = G4ColorMap::GetColorMap(); + + G4LogicalVolume * lvWorld = theWorld->GetLogicalVolume(); + aColMap->SetVisible(lvWorld,true); + G4int nr = lvWorld->GetNoDaughters(); + for (G4int i = 0; iSetVisible(lvWorld->GetDaughter(i)->GetLogicalVolume(),true); + } +*/ +} + + +// sets NewWorld invisible +void OlapDetConstr::ResetColors(G4LogicalVolume* lv) +{ +/* + G4ColorMap * aColMap = G4ColorMap::GetColorMap(); + G4int nr = lv->GetNoDaughters(); + for (G4int i =0; iSetVisible(lv->GetDaughter(i)->GetLogicalVolume(),false); + } + aColMap->SetVisible(lv,false); +*/ + //ColorFirstLevel(); + +} + + +G4VPhysicalVolume * OlapDetConstr::SetFullWorld() +{ + G4RunManager::GetRunManager()->DefineWorldVolume(theWorld); + + return theWorld; +} + + +G4LogicalVolume * OlapDetConstr::GetOriginalWorld() +{ + return theNewLV; +} diff --git a/examples/extended/geometry/olap/src/OlapEventAction.cc b/examples/extended/geometry/olap/src/OlapEventAction.cc new file mode 100644 index 0000000000..76965095ed --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapEventAction.cc @@ -0,0 +1,403 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: OlapEventAction.cc,v 1.1 2002/06/04 07:40:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapEventAction +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "g4std/vector" +#include "g4std/strstream" + +#include "G4VVisManager.hh" +#include "G4Trajectory.hh" +#include "G4TrajectoryContainer.hh" +#include "G4UImanager.hh" +#include "G4Event.hh" +#include "G4RunManager.hh" +#include "G4Run.hh" + +#include "OlapManager.hh" +#include "OlapEventAction.hh" +#include "OlapRunAction.hh" +#include "OlapDetConstr.hh" +#include "OlapGenerator.hh" + +//#define OLAP_DEBUG +//#define OLAP_DEBUG_2 + +G4std::ostream & + operator<<(G4std::ostream& flux, OlapInfo & oi) +{ + OlapStepInfo si; + si.thePoint = oi.v1; + si.theHist = oi.hist1; + flux << "vol 1: point=" << oi.v1 << " vol 2: point=" << oi.v2 + << " axis=" << oi.axis << " [" << oi.probNot << "] " + << oi.info << G4endl; + if (oi.stAB.size()) + { + flux << oi.stAB << G4endl << G4endl; + flux << oi.stBA << G4endl; + } + flux << "A -> B:" << G4endl; + flux << si << G4endl; + flux << "B -> A:" << G4endl; + si.thePoint=oi.v2; + si.theHist=oi.hist2; + flux << si << G4endl; + return flux; +} + + +OlapInfo::~OlapInfo() +{ + while( !stAB.empty() ) + { + delete stAB.back(); + stAB.pop_back(); + } + + while( !stBA.empty() ) + { + delete stBA.back(); + stBA.pop_back(); + } + +} + +G4bool OlapInfo::operator==(const OlapInfo & rh) +{ + /* + const G4AffineTransform & in1 = rh.hist1.GetTopTransform(); + const G4AffineTransform & in2 = rh.hist2.GetTopTransform(); + const G4AffineTransform & th1 = hist1.GetTopTransform(); + const G4AffineTransform & th2 = hist2.GetTopTransform(); + + G4cout << "histories: 1 2: " << G4endl; + for (G4int i=0; i<16; i++) { + G4cout << th1[i] << '\t' << th2[i] << G4endl; + G4cout << in1[i] << '\t' << in2[i] << G4endl; + G4cout << "----------------------------" << G4endl; + } + */ + G4bool result = false; + if ( + ( + ( hist1.GetTopVolume() == rh.hist1.GetTopVolume() ) && + ( hist2.GetTopVolume() == rh.hist2.GetTopVolume() ) + ) + || + ( + ( hist1.GetTopVolume() == rh.hist2.GetTopVolume() ) && + ( hist2.GetTopVolume() == rh.hist1.GetTopVolume() ) + ) + ) + result = true; + return result; +} + + +OlapEventAction::OlapEventAction(OlapRunAction * aRunAction) + : theRunAction(aRunAction), dontDelete(false) +{ + const G4VUserDetectorConstruction * aDet = + G4RunManager::GetRunManager()->GetUserDetectorConstruction(); + const OlapDetConstr * aConstDet = + dynamic_cast(aDet); + if (!aDet) { + G4cerr << "OlapEventAction just can be used together with an OlapDetConstr!" + << G4endl << "exiting ..." << G4endl; + G4Exception("ERROR - OlapEventAction::OlapEventAction()"); + } + theDet = const_cast(aConstDet); +} + + +OlapEventAction::~OlapEventAction() +{ +} + + +void OlapEventAction::BeginOfEventAction(const G4Event* anEvent) +{ + // G4cout << ">>>evt=" << anEvent->GetEventID() << " run=" << + // anEvent->G4endl; + + while (!ABSteps.empty()) + { + if (! dontDelete ) + delete ABSteps.back(); + ABSteps.pop_back(); + } + + while (!BASteps.empty()) + { + if (! dontDelete ) + delete BASteps.back(); + BASteps.pop_back(); + } + + dontDelete=false; +} + + +void OlapEventAction::EndOfEventAction(const G4Event* anEvent) +{ + + const OlapGenerator * aGen = dynamic_cast + (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + OlapGenerator * aGenerator=0; + if ( aGen ) + { + aGenerator = const_cast(aGen); + } + else + { + G4cerr << "Warning: Primary generator is not OlapGenerator!" << G4endl + << " Overlap Detection will not work!" << G4endl; + return; + } + + if (! (anEvent->GetEventID() % 1000)) + { + G4cout << "Event=" << anEvent->GetEventID() << " : " + << theDet->GetNewWorld()->GetLogicalVolume()->GetDaughter(0)->GetName() + << G4endl; + } + + // try the starting points of AB and BA + // they must be in the theWorldLV volume ... + // G4LogicalVolume * startLV = + // (ABSteps[0])->theHist.GetTopVolume()->GetLogicalVolume(); + + G4int axx = -1; + if (aGenerator) + axx = aGenerator->GetAxis(); + + G4double distAB, distBA; + distAB = (ABSteps[0])->thePoint[axx] + - (ABSteps[ABSteps.size()-1])->thePoint[axx]; + distBA = (BASteps[0])->thePoint[axx] + - (BASteps[BASteps.size()-1])->thePoint[axx]; + #ifdef OLAP_DEBUG + G4cout << "OlapEventAction::EndOfEventAction(): " + << "deltaAB=" + << (ABSteps[0])->thePoint[axx] + - (ABSteps[ABSteps.size()-1])->thePoint[axx] + << " deltaBA=" + << (BASteps[0])->thePoint[axx] + - (BASteps[BASteps.size()-1])->thePoint[axx] + << G4endl; + #endif + + G4double tolerance = OlapManager::GetOlapManager()->Delta(); + + if ( (ABSteps[ABSteps.size()-1])->theHist.GetTopVolume()->GetLogicalVolume() != + theDet->GetNewWorld()->GetLogicalVolume() || + (BASteps[BASteps.size()-1])->theHist.GetTopVolume()->GetLogicalVolume() != + theDet->GetNewWorld()->GetLogicalVolume() + ) + { + #ifdef OLAP_DEBUG_2 + G4cerr << "=============overlap: daughter protrudes mother" << G4endl; + #endif + //G4cerr << ABSteps[0]->theHist << G4endl; + OlapInfo * oi = + new OlapInfo( ABSteps[ABSteps.size()-1]->theHist, + BASteps[BASteps.size()-1]->theHist, + ABSteps[ABSteps.size()-1]->thePoint, + BASteps[BASteps.size()-1]->thePoint, + axx, + OlapManager::GetOlapManager()->GetOriginalWorld() ); + oi->info = "daughter protrudes mother"; + oi->probNot = false; // it's an overlap + oi->stAB = ABSteps; + oi->stBA = BASteps; + dontDelete = true; + + if ( !InsertOI(oi) ) + { // already detected! + delete oi; + } + return; + } + + // just in case, not the OlapGenerator is used but + // another particle generator + if (!BASteps.size()) + return; + + // do we have as many steps from AB as from BA? + if (ABSteps.size() != BASteps.size()) { + #ifdef OLAP_DEBUG + G4cerr << "overlap: different no of steps AB, BA" << G4endl; + #endif + //G4cerr << ABSteps[0]->theHist << G4endl; + //G4cerr << "in that case we're are not logging (yet) ..." << G4endl; + OlapInfo * oi = + new OlapInfo( ABSteps[1]->theHist, + BASteps[1]->theHist, + ABSteps[1]->thePoint, + BASteps[1]->thePoint, + axx, + OlapManager::GetOlapManager()->GetOriginalWorld() ); + // copy all steps and prohibit deletion of their pointers ... + oi->stAB = ABSteps; + oi->stBA = BASteps; + oi->probNot = true; // probably not an overlap, just numerics .... + dontDelete = true; + + G4std::ostrstream os; + os << "A,B diff. steps AB:" << ABSteps.size() + << " BA:" << BASteps.size() << '\0'; + + oi->info = G4String(os.str()); + if ( !InsertOI(oi) ) + { + delete oi; + } + return; + } + + // now forget about the first and the last points of AB and BA & + // compare the remaining points of AB with the remaining points + // of BA where the points of BA are in descending order while + // the points of BA are in ascending order + G4int siz = ABSteps.size(); + G4int j = siz-3; + for (G4int i = 1; i<(siz-1); i++) + { + G4double delta = + (ABSteps[i]->thePoint - BASteps[j]->thePoint).mag() ; + if (delta>tolerance) + { + OlapInfo * oi = + new OlapInfo( ABSteps[i]->theHist, + BASteps[j]->theHist, + ABSteps[i]->thePoint, + BASteps[j]->thePoint, + axx, + OlapManager::GetOlapManager()->GetOriginalWorld() ); + #ifdef OLAP_DEBUG + G4cerr << "overlap: delta=" << delta << G4endl; + G4cerr << *oi << G4endl; + #endif + + if ( !InsertOI(oi) ) + { // already detected! + delete oi; + } + + /* + G4cerr << "overlap: delta=" << delta << G4endl; + G4cerr << *(ABSteps[i]) + << *(BASteps[j]); + */ + } + j--; + } + + // G4cout << "From A to B:" << G4endl; + // G4cout << ABSteps << G4endl; + // G4cout << "From B to A:" << G4endl; + // G4cout << BASteps << G4endl; +} + +G4bool OlapEventAction::InsertOI(OlapInfo * oi) +{ + G4std::vector::iterator it = theRunAction->theOlaps.begin(); + G4bool flag(false); + while (it != theRunAction->theOlaps.end()) + { + if (*oi== *(*it)) { // already detected overlap + flag=true; + if ((*it)->probNot != oi->probNot ) + { // probably a real overlap, not numerics + flag=false; + (*it)->probNot = false; + oi->probNot = false; + } + break; + } + it++; + } + + if (flag) + { + #ifdef OLAP_DEBUG + G4cout << "===================================" << G4endl; + G4cout << "No of detected Overlaps: " << theRunAction->theOlaps.size() + << G4endl; + G4cout << "===================================" << G4endl; + #endif + return false; // already detected overlap + } + + theRunAction->theOlaps.push_back(oi); + + #ifdef OLAP_DEBUG + G4cout << "===================================" << G4endl; + G4cout << "No of detected Overlaps: " << theRunAction->theOlaps.size() + << G4endl; + G4cout << "===================================" << G4endl; + G4cout << oi->hist1 << G4endl; + G4cout << "CpNo: " << oi->hist1.GetTopVolume()->GetCopyNo() << G4endl; + G4cout << "Pos: " << oi->hist1.GetTopTransform().NetTranslation() + << G4endl; + G4cout << "Rot: " << oi->hist1.GetTopTransform().NetRotation().phiX() + << " " << oi->hist1.GetTopTransform().NetRotation().phiY() << " " + << oi->hist1.GetTopTransform().NetRotation().phiZ() << " " + << oi->hist1.GetTopTransform().NetRotation().thetaX() << " " + << oi->hist1.GetTopTransform().NetRotation().thetaY() << " " + << oi->hist1.GetTopTransform().NetRotation().thetaZ() + << G4endl ; + G4cout << oi->v1 << G4endl << "----" << G4endl; + + G4cout << oi->hist2 << G4endl; + G4cout << "CpNo: " << oi->hist2.GetTopVolume()->GetCopyNo() << G4endl; + G4cout << "Pos: " << oi->hist2.GetTopTransform().NetTranslation() + << G4endl; + G4cout << "Rot: " << oi->hist2.GetTopTransform().NetRotation().phiX() + << " " << oi->hist2.GetTopTransform().NetRotation().phiY() << " " + << oi->hist2.GetTopTransform().NetRotation().phiZ() << " " + << oi->hist2.GetTopTransform().NetRotation().thetaX() << " " + << oi->hist2.GetTopTransform().NetRotation().thetaY() << " " + << oi->hist2.GetTopTransform().NetRotation().thetaZ() + << G4endl ; + G4cout << oi->v2 << G4endl << "----" << G4endl; + + #endif + + static char * c = getenv("OLAP_LOG_EVENT"); + if (c) + G4cerr << *oi << G4endl; + + return true; // new overlap detected! +} diff --git a/examples/extended/geometry/olap/src/OlapGenerator.cc b/examples/extended/geometry/olap/src/OlapGenerator.cc new file mode 100644 index 0000000000..58b6d37b2f --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapGenerator.cc @@ -0,0 +1,218 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: OlapGenerator.cc,v 1.2 2002/06/04 09:23:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapGenerator +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapGenerator.hh" +#include "G4Event.hh" +#include "G4VisExtent.hh" +#include "G4PrimaryParticle.hh" +#include "G4Geantino.hh" +#include "G4ChargedGeantino.hh" +#include "G4RunManager.hh" +#include "G4Run.hh" +#include "G4Event.hh" + +//#define OLAPDEBUG1 + +OlapGrid::OlapGrid() + : count(3,0), gsize(3,3), axis(0), eventsPerRun(27) +{ + Reset(); + G4cout << "OlapGrid(): " << G4endl + << " gsize: " << gsize[0] << " " << gsize[1] + << " " << gsize[2] << G4endl; +} + +void OlapGrid::Next() +{ + G4int out = (axis+1)%3; // outer loop + G4int in = (axis+2)%3; // inner loop + if ( !(count[in] = (count[in]+1)%gsize[in]) ) + { + if( !(count[out] = (count[out]+1)%gsize[out]) ) + { + axis = (axis+1)%3; + } + } +} + +OlapGenerator::OlapGenerator() : autoinc(false) +{ + if (!ext.size()) + { + ext.push_back(1); + ext.push_back(2); + ext.push_back(3); + } + /* + ext[0]=1.; + ext[1]=2.; + ext[2]=3.; + */ +} + + +OlapGenerator::~OlapGenerator() +{ +} + + +void OlapGenerator::GeneratePrimaries(G4Event * anEvent) +{ + G4int out = (grid.axis+1)%3; // outer loop + G4int in = (grid.axis+2)%3; // inner loop + + posAB[grid.axis]=-ext[grid.axis]/2.; + posAB[in]=-ext[in]/2.+ext[in]/G4double(grid.gsize[in]-1) + *G4double(grid.count[in]); + posAB[out]=-ext[out]/2.+ext[out]/G4double(grid.gsize[out]-1) + *G4double(grid.count[out]); + + posBA = posAB; + posBA[grid.axis]=-posBA[grid.axis]; + + G4ThreeVector dirAB, dirBA; + dirAB[grid.axis] = 1; + dirBA[grid.axis] = -1; + + #ifdef OLAPDEBUG1 + G4int runID = G4RunManager::GetRunManager()->GetCurrentRun()->GetRunID(); + G4int evtID = anEvent->GetEventID(); + G4cout << "generator: " + << "run=" << runID << " evt=" << evtID + << " axis=" << grid.axis << " out=" << grid.count[out] + << " in=" << grid.count[in] + << " posAB=" << posAB + << " posBA=" << posBA << G4endl; + #endif + + // now generator 2 geantinos flying in opposite direction from A->B and B->A +// ========================== + G4ParticleDefinition* pd = G4Geantino::GeantinoDefinition(); + + // create 2 opposite positioned vertices + G4PrimaryVertex* vertexAB = + new G4PrimaryVertex(posAB,0); + G4PrimaryVertex* vertexBA = + new G4PrimaryVertex(posBA,0); + + // create one geantino per vertex as primary + G4double mass = pd->GetPDGMass(); + G4double energy = 1. + mass; + G4double pmom = sqrt(energy*energy-mass*mass); + G4double pxAB = pmom*dirAB.x(); + G4double pyAB = pmom*dirAB.y(); + G4double pzAB = pmom*dirAB.z(); + G4double pxBA = pmom*dirBA.x(); + G4double pyBA = pmom*dirBA.y(); + G4double pzBA = pmom*dirBA.z(); + + G4PrimaryParticle* particleAB = new G4PrimaryParticle(pd,pxAB,pyAB,pzAB); + G4PrimaryParticle* particleBA = new G4PrimaryParticle(pd,pxBA,pyBA,pzBA); + particleAB->SetMass( mass ); + particleBA->SetMass( mass ); + particleAB->SetCharge(0.); + particleBA->SetCharge(0.); + vertexAB->SetPrimary( particleAB ); + vertexBA->SetPrimary( particleBA ); + anEvent->AddPrimaryVertex( vertexAB ); + anEvent->AddPrimaryVertex( vertexBA ); + + // ok, set all counters to be ready for the next position + if (autoinc) + grid.Next(); + /* + if ( !(count[in] = (count[in]+1)%grid[in]) ) { + if( !(count[out] = (count[out]+1)%grid[out]) ) { + axis = (axis+1)%3; + } + } + */ + +} + + +void OlapGenerator::SetExtent(const G4VisExtent & anExt) +{ + ext[0]=(anExt.GetXmax()-anExt.GetXmin()); + ext[1]=(anExt.GetYmax()-anExt.GetYmin()); + ext[2]=(anExt.GetZmax()-anExt.GetZmin()); + for (G4int i=0; i<3; i++) + ext[i] += ext[i]/2000.; // enlarge by 1% + + Reset(); + +} + +void OlapGenerator::SetExtent(G4double e) +{ + ext[0]=e; + ext[1]=e; + ext[2]=e; +} + + +void OlapGenerator::Reset() +{ + grid.Reset(); + /* + for (G4int i=0; i<3; i++) { + count[i]=0; + } + + axis=0; + */ +} + + +void OlapGenerator::SetGrid(G4int x, G4int y, G4int z) +{ + if (x>2) + grid.gsize[0]=x; + else + G4cerr << "Warning in OlapGenerator::SetGrid(): wrong x-grid parameter: " << x << G4endl; + + + if (y>2) + grid.gsize[1]=y; + else + G4cerr << "Warning in OlapGenerator::SetGrid(): wrong y-grid parameter: " << y << G4endl; + + if (z>2) + grid.gsize[2]=z; + else + G4cerr << "Warning in OlapGenerator::SetGrid(): wrong z-grid parameter: " << z << G4endl; + + grid.eventsPerRun = x*y + y*z + x*z; + Reset(); +} diff --git a/examples/extended/geometry/olap/src/OlapLogManager.cc b/examples/extended/geometry/olap/src/OlapLogManager.cc new file mode 100644 index 0000000000..9a6dda7a74 --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapLogManager.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: OlapLogManager.cc,v 1.1 2002/06/04 07:40:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapLogManager +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapLogManager.hh" + +#include "globals.hh" +#include "g4std/fstream" + +OlapLogManager * OlapLogManager::theInstance = 0; + + +OlapLogManager::OlapLogManager() +{ + areWeLogging = false; + areWeLoggingByVolume = false; +} + +OlapLogManager::~OlapLogManager() {} + +void OlapLogManager::Logging(G4String aValue) +{ + if(aValue == "false") + { + areWeLogging = false; + } + else + { + G4int lastLetter = aValue.length(); + G4String::size_type c = lastLetter-1; + if (aValue[c] == '/') + aValue = aValue + "olap.log"; + + areWeLogging = true; + filename = aValue; + G4cerr << "Output will be put into " << aValue << G4endl; + } +} + + +void OlapLogManager::LogByVolume(G4String aPath) +{ + if(aPath == "false") + { + areWeLoggingByVolume = false; + } + else + { + areWeLoggingByVolume = true; + logPath = aPath; + G4cerr << "Output will be put into " << aPath + << "NameOfVolume.log" << G4endl; + } +} + + +OlapLogManager * OlapLogManager::GetOlapLogManager() +{ + if (!theInstance) + theInstance = new OlapLogManager(); + + return theInstance; +} diff --git a/examples/extended/geometry/olap/src/OlapManager.cc b/examples/extended/geometry/olap/src/OlapManager.cc new file mode 100644 index 0000000000..93e76b8e65 --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapManager.cc @@ -0,0 +1,367 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: OlapManager.cc,v 1.1 2002/06/04 07:40:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapManager +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include + +#include "g4std/vector" + +#include "OlapManager.hh" +#include "OlapDetConstr.hh" +#include "OlapManagerMessenger.hh" +#include "OlapGenerator.hh" +#include "OlapEventAction.hh" +#include "G4GeoNav.hh" +#include "G4RunManager.hh" +#include "globals.hh" + +OlapManager * OlapManager::theInstance = 0; + +OlapManager::OlapManager() : + olapGenerator(0), delta( kRadTolerance ), + eventsPerRun(27), lvPos(0), polyMode(false), + interrupt(false) +{ + theMessenger = new OlapManagerMessenger(this); + theLVStore = G4LogicalVolumeStore::GetInstance(); + // for SUN + //G4std::vector::iterator aIt = theLVStore->begin(); + //G4LogicalVolumeStore::iterator aIt = theLVStore->begin(); + + theRunManager = G4RunManager::GetRunManager(); + const G4VUserDetectorConstruction * aTmp = + theRunManager->GetUserDetectorConstruction(); + + const OlapDetConstr * aConstDetConstr = + dynamic_cast(aTmp); + if (!aConstDetConstr) { + G4cerr << "OlapManger(): can't get the OlapDetConstr instance!" << G4endl; + G4cerr << " exiting ..." << G4endl; + G4Exception("ERROR - OlapManager::OlapManager()"); + } + + // need a non-const instance for building NewWords! + theDet = const_cast(aConstDetConstr); + + // instantiate the logical volume tree & add it to the Gui + theGeoNav = new G4GeoNav(theDet->GetFullWorld()->GetLogicalVolume()); + + G4std::vector::iterator aIt2; + for (aIt2=theLVStore->begin(); aIt2 != theLVStore->end(); aIt2++) + NoOlapMap[*aIt2] = false; +} + + +OlapManager::~OlapManager() +{ + delete theMessenger; + delete theGeoNav; + delete olapGenerator; +} + + +OlapManager * OlapManager::GetOlapManager() +{ + if (!theInstance) + theInstance = new OlapManager(); + + return theInstance; +} + + +void OlapManager::SetRotation(G4double theta, G4double phi, G4double alpha) +{ + theDet->SetRotation(theta,phi,alpha); + + // ?? set the current new-world again to activate the rotation?? +} + + + +void OlapManager::TriggerRun() +{ + const OlapGenerator * aGen = dynamic_cast + (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + OlapGenerator * aNonConstGen = 0; + if ( aGen ) + { + aNonConstGen = const_cast(aGen); + } + else + { + G4cerr << "Warning: Primary generator is not OlapGenerator!" << G4endl + << "Overlap Detection will not work!" << G4endl; + return; + } + //while + aNonConstGen->SetAutoIncrement(true); + theRunManager->BeamOn(eventsPerRun); + aNonConstGen->SetAutoIncrement(false); +} + + +void OlapManager::TriggerFull(G4int trg) +{ + const OlapGenerator * aGen = dynamic_cast + (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + OlapGenerator * aNonConstGen = 0; + if ( aGen ) + { + aNonConstGen = const_cast(aGen); + } + else + { + G4cerr << "Warning: Primary generator is not OlapGenerator!" << G4endl + << "Overlap Detection will not work!" << G4endl; + return; + } + //while + aNonConstGen->SetAutoIncrement(true); + + interrupt = false; // can be changed to 'true' in the following loop + // by subclasses of OlapNotify. In that case, + // the triggerFull-command will be stopped. + + while (Next() && trg) + { + if (theDet->GetNewWorld()->GetLogicalVolume()->GetDaughter(0)-> + GetLogicalVolume()->GetNoDaughters()) + { + theRunManager->BeamOn(eventsPerRun); + trg--; + if (interrupt) + { + break; + } + } + } + aNonConstGen->SetAutoIncrement(false); +} + +G4VPhysicalVolume * OlapManager::GetNewWorld() +{ + return theDet->GetNewWorld(); +} + + +G4VPhysicalVolume * OlapManager::GetFullWorld() +{ + return theDet->GetFullWorld(); +} + +G4bool OlapManager::Next() +{ + G4LogicalVolume * nextlv = theGeoNav->NextLV(); + if(nextlv) + { + theDet->SetNewWorld(nextlv); + G4cout << nextlv->GetName() << G4endl; + return true; + } + return false; +} + +/* +G4bool OlapManager::SetNextWorld(G4int aOffs) +{ + if (aOffs >= theLVs.size()) + { + G4cout << aOffs << ">" << theLVs.size() -1 << G4endl; + return false; + } + else + { + G4cout << "no daughters: " << (*theLVit)->GetNoDaughters() << G4endl; + theDet->SetNewWorld(theLVs[aOffs]); + lvPos=aOffs; + return true; + } + +} +*/ + +/* +G4bool OlapManager::SetPrevWorld(G4int aOffs) +{ + //FIXME: OlapManager::SetPrevWorld(int) - remove this method! + G4cerr << "DON'T CALL OlapManager::SetPrevWorld(..)!" << G4endl; + G4Exception("ERROR - OlapManager::SetPrevWorld()"); + + for (G4int i=1; iSetNewWorld(*theLVit); + return true; + } + theLVit--; + } + + if (theLVit != theLVs.begin()) + { + theLVit--; + if ( *theLVit != 0) + { + theDet->SetNewWorld(*theLVit); + return true; + } + } + + return false; +} +*/ + +void OlapManager::ListLV(const G4String & aRegexStr) +{ + G4cout << "logical volumes matching " << aRegexStr << ":" < aLVVec; + G4int c = theGeoNav->FilterLV(aRegexStr,aLVVec); + + for(G4int i=0; iGetName() << G4endl; + } +} + + +void OlapManager::LsLV() +{ + G4std::vector lvs; + G4int c = theGeoNav->LsLV(lvs); + for (G4int i = 0; iGetName() << G4endl; +} + +void OlapManager::PwdLV() +{ + G4std::vector lvs; + theGeoNav->PwdLV(lvs); + G4String temp; + G4cout << "/ = "; + for (G4int i=lvs.size()-1; i>=0; i--) + { + G4cout << temp << (lvs[i])->GetName() << G4endl; + temp = temp + G4String(" "); + } +} + + +G4int OlapManager::GetNrLVs() +{ + return theDet->GetNrLVs(); +} + + +void OlapManager::ChangeLV(const G4String & aDir) +{ + G4LogicalVolume * aLv = theGeoNav->ChangeLV(aDir); + if (aLv) + { + G4cout << "new world: " << aLv->GetName() << G4endl; + theDet->SetNewWorld(aLv); + notifyNewWorld(theDet->GetNewWorld()->GetLogicalVolume()); + } +} + +void OlapManager::GotoLV(const G4String & aRegexStr) +{ + G4std::vector lvs; + if (theGeoNav->FilterLV(aRegexStr,lvs,true)) + { + G4cout << "new world: " << (lvs[0])->GetName() << G4endl; + theDet->SetNewWorld((lvs[0])); + notifyNewWorld(theDet->GetNewWorld()->GetLogicalVolume()); + } +} + + +void OlapManager::SetNewWorld(G4LogicalVolume * nw) +{ + if (nw) + { + theDet->SetNewWorld(nw); + notifyNewWorld(theDet->GetNewWorld()->GetLogicalVolume()); + } +} + +void OlapManager::SetGrid(G4int x, G4int y, G4int z) +{ + // try to find the OlapGenerator and set the new grid + const OlapGenerator * aGen = dynamic_cast + (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + OlapGenerator * aNonConstGen = 0; + if ( aGen ) + { + aNonConstGen = const_cast(aGen); + aNonConstGen->SetGrid(x,y,z); + } + else + { + G4cerr << "Warning: Primary generator is not OlapGenerator!" << G4endl + << "Overlap Detection will not work!" << G4endl; + return; + } + + eventsPerRun = x*y + y*z + x*z; + G4cout << "/olap/trigger will trigger " + << eventsPerRun + << " events." << G4endl; +} + + +void OlapManager::notifyNewWorld(G4LogicalVolume* nw) +{ + //G4cout << G4endl << "NewWorld-Notif: " << nw->GetName() << G4endl; + G4std::set::iterator i = theNotifs.begin(); + for(;i!=theNotifs.end();++i) + (*i)->worldChanged(nw); +} + + +void OlapManager::notifyOlaps(const G4std::vector & ov) +{ + G4std::set::iterator i = theNotifs.begin(); + for(;i!=theNotifs.end();++i) + (*i)->overlaps(ov); +} + + +G4LogicalVolume* OlapManager::GetOriginalWorld() +{ + if (theDet) + { + return theDet->GetOriginalWorld(); + } + return 0; +} diff --git a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc new file mode 100644 index 0000000000..86a660db0d --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapManagerMessenger.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. * +// ******************************************************************** +// +// +// $Id: OlapManagerMessenger.cc,v 1.1 2002/06/04 07:40:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapManagerMessenger +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapManagerMessenger.hh" +#include "OlapManager.hh" +#include "OlapLogManager.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWith3Vector.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWith3VectorAndUnit.hh" + +OlapManagerMessenger::OlapManagerMessenger(OlapManager* aManager) + : theManager(aManager) +{ + + theLogManager = OlapLogManager::GetOlapLogManager(); + + theOlapDir = new G4UIdirectory("/olap/"); + theOlapDir->SetGuidance("Overlap detection facility"); + + theRotationCmd = new G4UIcmdWith3VectorAndUnit("/olap/rotate",this); + theRotationCmd->SetGuidance("rotate the new-world"); + theRotationCmd->AvailableForStates(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); + + theTriggerFullCmd = new G4UIcmdWithAnInteger("/olap/triggerFull",this); + theTriggerFullCmd->SetGuidance("starts a series of scans (only where mothers have"); + theTriggerFullCmd->SetGuidance("daughters. (-1 ... full detector)"); + theTriggerFullCmd->SetDefaultValue(1); + theTriggerFullCmd->SetParameterName("nr",true); + theTriggerFullCmd->SetRange("nr>=-1"); + theTriggerFullCmd->AvailableForStates(Idle); + + theDeltaCmd = new G4UIcmdWithADoubleAndUnit("/olap/delta",this); + theDeltaCmd->SetGuidance("set boundary tolerance for overlaps in units of length"); + theDeltaCmd->SetDefaultValue(kRadTolerance); + theDeltaCmd->SetParameterName("delta",true); + theDeltaCmd->SetRange("delta>=1.e-9"); // current G4-accuracy + theDeltaCmd->SetUnitCategory("Length"); + theDeltaCmd->AvailableForStates(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); + + thePwdCmd = new G4UIcmdWithoutParameter("/olap/pwd",this); + thePwdCmd->SetGuidance("show the position in the logical volume hierachy of the new world"); + thePwdCmd->AvailableForStates(Idle); + + theLsCmd = new G4UIcmdWithoutParameter("/olap/ls",this); + theLsCmd->SetGuidance("lists the logical daughters of the current NewWorld"); + theLsCmd->AvailableForStates(Idle); + + theListCmd = new G4UIcmdWithAString("/olap/list",this); + theListCmd->SetGuidance("lists all logical volumes which name matches regexp"); + theListCmd->AvailableForStates(Idle); + + theCdCmd = new G4UIcmdWithAString("/olap/cd",this); + theCdCmd->SetGuidance("change to NewWorld like unix-cd"); + theCdCmd->AvailableForStates(Idle); + + theGotoWorldCmd = new G4UIcmdWithAString("/olap/goto",this); + theGotoWorldCmd->SetGuidance("setting first logical vol matching regexp as NewWorld"); + theGotoWorldCmd->AvailableForStates(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); + + 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); + +} + + +OlapManagerMessenger::~OlapManagerMessenger() +{ + delete theTriggerCmd; + delete theTriggerFullCmd; + delete theWhereIsCmd; + delete theListCmd; + delete theSetGridCmd; + delete theGotoWorldCmd; + delete theCdCmd; + delete thePwdCmd; + delete theLsCmd; + delete theDeltaCmd; + delete theOlapDir; + delete theLogCmd; + delete theLogByVolumeCmd; + delete theRotationCmd; +} + + +void OlapManagerMessenger::SetNewValue(G4UIcommand* aCmd, G4String aVal) +{ + + if( aCmd == theTriggerCmd ) + { theManager->TriggerRun();} + + if( aCmd == theTriggerFullCmd ) + { theManager->TriggerFull(theTriggerFullCmd->GetNewIntValue(aVal)); } + + if( aCmd == theLsCmd ) + { theManager->LsLV(); } + + if( aCmd == thePwdCmd ) + { theManager->PwdLV(); } + + if( aCmd == theListCmd ) + { theManager->ListLV(aVal); } + + if( aCmd == theGotoWorldCmd ) + { theManager->GotoLV(aVal); } + + if( aCmd == theCdCmd ) + { theManager->ChangeLV(aVal); } + + if ( aCmd == theSetGridCmd ) + { G4ThreeVector vec = theSetGridCmd->GetNew3VectorValue(aVal); + theManager->SetGrid(G4int(vec[0]),G4int(vec[1]),G4int(vec[2])); + } + + if ( aCmd == theDeltaCmd ) + { + theManager->SetDelta(theDeltaCmd->GetNewDoubleValue(aVal)); + G4cout << "boundary tolerance set to " << theManager->Delta()/mm << "mm." << G4endl; + } + if ( aCmd == theLogCmd ) + { theLogManager->Logging(aVal); } + + if (aCmd == theLogByVolumeCmd ) + { theLogManager->LogByVolume(aVal); } + + if (aCmd == theRotationCmd ) + { G4ThreeVector vec = theRotationCmd->GetNew3VectorValue(aVal); + theManager->SetRotation(vec[0],vec[1],vec[2]); } +} diff --git a/examples/extended/geometry/olap/src/OlapNotify.cc b/examples/extended/geometry/olap/src/OlapNotify.cc new file mode 100644 index 0000000000..0d6bfb062e --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapNotify.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. * +// ******************************************************************** +// +// +// $Id: OlapNotify.cc,v 1.1 2002/06/04 07:40:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapNotify +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapNotify.hh" +#include "G4LogicalVolume.hh" +#include "OlapManager.hh" + +OlapNotify::OlapNotify() +{ + //OlapManager * om = OlapManager::GetOlapManager(); + //om->registerNotification(this); +} + +OlapNotify::~OlapNotify() +{ + //OlapManager * om = OlapManager::GetOlapManager(); + //om->deRegisterNotification(this); +} diff --git a/examples/extended/geometry/olap/src/OlapPhysicsList.cc b/examples/extended/geometry/olap/src/OlapPhysicsList.cc new file mode 100644 index 0000000000..fd1c8e502b --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapPhysicsList.cc @@ -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: OlapPhysicsList.cc,v 1.1 2002/06/04 07:40:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapPhysicsList +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapPhysicsList.hh" + +#include "G4ios.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" + +OlapPhysicsList::OlapPhysicsList(): G4VUserPhysicsList() +{ + currentDefaultCut = defaultCutValue = 2.0*mm; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForProton = defaultCutValue; + + SetVerboseLevel(1); +} + + +OlapPhysicsList::~OlapPhysicsList() +{} + + +void OlapPhysicsList::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(); +} + + +void OlapPhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); +} + + +void OlapPhysicsList::ConstructProcess() +{ + AddTransportation(); + + theParticleIterator->reset(); + //theParticleTable->DumpTable(); + + return; + + // Olap-Process for stopping at user-defined surface ... +/* will come in the next release + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + pmanager->AddProcess(new OlapProc(),-1,-1,1); + } +*/ +} + + +#include "G4Decay.hh" + + +void OlapPhysicsList::SetCuts() +{ + // don't need cuts because transportation is the only process .. + return; +} diff --git a/examples/extended/geometry/olap/src/OlapRunAction.cc b/examples/extended/geometry/olap/src/OlapRunAction.cc new file mode 100644 index 0000000000..ecef29deba --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapRunAction.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. * +// ******************************************************************** +// +// +// $Id: OlapRunAction.cc,v 1.2 2002/06/04 09:23:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapRunAction +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapRunAction.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" + +#include "OlapManager.hh" + +#include "G4Run.hh" + +#include "globals.hh" +#include "g4std/fstream" + +OlapRunAction::OlapRunAction() +{ +} + + +OlapRunAction::~OlapRunAction() +{ +} + + +void OlapRunAction::BeginOfRunAction(const G4Run* aRun) +{ + while ( !theOlaps.empty() ) + { + delete theOlaps.back(); + theOlaps.pop_back(); + } +} + + +void OlapRunAction::EndOfRunAction(const G4Run* aRun) +{ + if (!theOlaps.size()) + return; + +//output to screen + G4cerr << "===== collected overlaps of run [" << aRun->GetRunID() << "] " + << "(ol=" << theOlaps.size() << ")"<< G4endl; + + OlapManager::GetOlapManager()->notifyOlaps(theOlaps); + + G4std::vector::iterator it = theOlaps.begin(); + G4int i=1; + while (it!=theOlaps.end()) + { + G4cerr << "--[" << i << "]--------------------------" << G4endl; + G4cerr << "delta=" << ((*it)->v1 - (*it)->v2).mag() << G4endl; + G4cerr << *(*it) << G4endl; + + it++; i++; + } + +//output to file + + OlapLogManager * logManager = OlapLogManager::GetOlapLogManager(); + if (logManager->areWeLogging || logManager->areWeLoggingByVolume) + { + it = theOlaps.begin(); + i=1; + G4String fname; + + if(logManager->areWeLogging) + fname = logManager->filename; + + else if(logManager->areWeLoggingByVolume) + { + G4String volume; + if((*it)->hist1.GetDepth() >= 1) + volume = (*it)->hist1.GetVolume(1)->GetName(); + else if((*it)->hist2.GetDepth() >= 1) + volume = (*it)->hist2.GetVolume(1)->GetName(); + else + G4cerr << "error: did not get the filename" << G4endl; + + fname = logManager->logPath + volume + ".log"; + } + + FILE.open(fname, G4std::ios::app); + FILE << "===== collected overlaps of run [" << aRun->GetRunID() << "] " + << "(ol=" << theOlaps.size() << ")"<< G4endl; + + while (it!=theOlaps.end()) { + + FILE << "--[" << i << "]--------------------------" << G4endl; + FILE << "delta=" << ((*it)->v1 - (*it)->v2).mag() << G4endl; + FILE << *(*it) << G4endl; + + it++; i++; + } + FILE << "-------------------------------------" << G4endl; + FILE.close(); + + G4cerr << "Output has also been put into "<< fname << G4endl; + }//end if + + G4cerr << "-------------------------------------" << G4endl; + DrawOlaps(); + +} + +#include "g4std/vector" +#include "G4Circle.hh" +#include "G4Polyline.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" +#include "G4VSolid.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "OlapManager.hh" + +void OlapRunAction::DrawOlaps() +{ + // iguana takes over ... +} diff --git a/examples/extended/geometry/olap/src/OlapSteppingAction.cc b/examples/extended/geometry/olap/src/OlapSteppingAction.cc new file mode 100644 index 0000000000..084918b570 --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapSteppingAction.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: OlapSteppingAction.cc,v 1.1 2002/06/04 07:40:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapSteppingAction +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "OlapSteppingAction.hh" +#include "OlapEventAction.hh" +#include "G4EventManager.hh" +#include "G4RunManager.hh" +#include "G4Track.hh" +#include "G4TouchableHistory.hh" +#include "G4NavigationHistory.hh" +#include "G4Step.hh" +#include "G4VSolid.hh" +#include "SolidAnalyser.hh" + +G4std::ostream& +operator << (G4std::ostream& os, G4std::vector& vec) +{ + G4std::vector::iterator it = vec.begin(); + while (it!=vec.end()) + { + G4VPhysicalVolume * pv = (*it)->theHist.GetTopVolume(); + os << (*it)->thePoint << " [" << pv->GetName() << ":" << pv->GetCopyNo() + << "]" << G4endl; + it++; + } + return os; +} + +G4std::ostream& +operator << (G4std::ostream& os, const OlapStepInfo& aStepInfo) +{ + //G4cout << "History depth="<GetLogicalVolume()->GetSolid(); + SolidAnalyser * solAna = SolidAnalyser::GetSolidAnalyser(); + G4std::vector< G4std::pair > param; + solAna->GetParam(solid,param); + + os << "["<Inside(locP)==kInside) + c='i'; + if (solid->Inside(locP)==kOutside) + c='o'; + if (solid->Inside(locP)==kSurface) + c='s'; + os << " ins=[" << c << "] " ; // << "lok.pt.=" << locP; + if( aStepInfo.theHist.GetVolume(i) != 0 ) { + os << " PVName=["<< aStepInfo.theHist.GetVolume(i)->GetName() << ":" + << aStepInfo.theHist.GetVolume(i)->GetCopyNo() + << "] Type=["; + switch(aStepInfo.theHist.GetVolumeType(i)) + { + case kNormal: + os <<"N"; + break; + case kReplica: + os <<"R" << aStepInfo.theHist.GetReplicaNo(i); + break; + case kParameterised: + os <<"P" << aStepInfo.theHist.GetReplicaNo(i); + break; + } + os << "] "; + }else{ + os << "Phys = "; + } + + const G4AffineTransform & trans = + aStepInfo.theHist.GetTransform(i).Inverse(); + + os << "P=" << trans.NetTranslation() + << " R=[" << trans.NetRotation().phiX()/degree << "," + << trans.NetRotation().thetaX()/degree << "," + << trans.NetRotation().phiY()/degree << "," + << trans.NetRotation().thetaY()/degree << "," + << trans.NetRotation().phiZ()/degree << "," + << trans.NetRotation().thetaZ()/degree << "] "; + + // solid specification + + os << " " << solid->GetEntityType() << ": "; + G4std::vector< G4std::pair >::iterator it = + param.begin(); + while ( it != param.end() ) + { + os << (*it).first << '=' << (*it).second << " "; + it++; + } + os << G4endl; + } + return os; +} + + +OlapSteppingAction::OlapSteppingAction(OlapEventAction * aEvAct) + : theEventAction(aEvAct) +{ +} + + +OlapSteppingAction::~OlapSteppingAction() +{ +} + + +void OlapSteppingAction::UserSteppingAction(const G4Step * aStep) +{ + const G4Track * aTrack = aStep->GetTrack(); + const G4NavigationHistory & aHist = *(aTrack->GetTouchable()->GetHistory()); + G4int aTrackID = aTrack->GetTrackID(); + G4int aStepNo = aTrack->GetCurrentStepNumber(); + //G4cout << "Stepping: " << aTrack->GetVolume()->GetName() + // << " CpNr: " << aTrack->GetVolume()->GetCopyNo() << G4endl; + + if (aStepNo>999) { + G4cerr << "OlapSteppingAction(): to many steps, killing track" << G4endl + << " pv=[" << aTrack->GetVolume()->GetName() + << "] cpnr=[" << aTrack->GetVolume()->GetCopyNo() + << "] pos=" << aTrack->GetPosition() + << G4endl; + //G4EventManager::GetEventManager()->AbortCurrentEvent(); + //G4RunManager::GetRunManager()->AbortRun(); + G4Track * aNonConstTrack = const_cast(aTrack); + aNonConstTrack->SetTrackStatus(fStopAndKill); + return; + } + OlapStepInfo * aStepInfo = new OlapStepInfo; + + aStepInfo->thePoint = aTrack->GetPosition(); + aStepInfo->theHist = aHist; + + if (aTrackID % 2) + { + theEventAction->ABSteps.push_back(aStepInfo); + } + else + { + theEventAction->BASteps.push_back(aStepInfo); + } + //G4cout << *aStepInfo << G4endl; +} diff --git a/examples/extended/geometry/olap/src/OlapVisManager.cc b/examples/extended/geometry/olap/src/OlapVisManager.cc new file mode 100644 index 0000000000..6d3f454f31 --- /dev/null +++ b/examples/extended/geometry/olap/src/OlapVisManager.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. * +// ******************************************************************** +// +// +// $Id: OlapVisManager.cc,v 1.1 2002/06/04 07:40:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// OlapVisManager +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "globals.hh" + +#ifdef G4VIS_USE +#include "OlapVisManager.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 + +OlapVisManager::OlapVisManager (G4int verboseLevel) +{ + SetVerboseLevel( verboseLevel ); +} + +void OlapVisManager::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 << G4endl + << "You have successfully chosen to use the following graphics systems." + << G4endl; + PrintAvailableGraphicsSystems (); + } +} + +#endif diff --git a/examples/extended/geometry/olap/src/RandomDetector.cc b/examples/extended/geometry/olap/src/RandomDetector.cc new file mode 100644 index 0000000000..361dd185bf --- /dev/null +++ b/examples/extended/geometry/olap/src/RandomDetector.cc @@ -0,0 +1,120 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RandomDetector.cc,v 1.1 2002/06/04 07:40:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// RandomDetector +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "globals.hh" +#include "Randomize.hh" +#include "SystemOfUnits.h" +#include "G4PVPlacement.hh" +#include "G4LogicalVolume.hh" +#include "G4Box.hh" +#include "G4Material.hh" + +#include "RandomDetector.hh" + +//RandomDetector::RandomDetector(G4int levels, G4int perLevel, G4double prop) + +RandomDetector::RandomDetector(G4double prop) + : levels_(0), + perLevel_(0), + overlapProp_(prop), + worldDim_(10.*m) +{ +} + + +RandomDetector::~RandomDetector() +{ +} + + +G4VPhysicalVolume * RandomDetector::Construct() +{ + // Material: only one for all volumes ... + G4double density = 1.390*g/cm3; + G4double a = 39.95*g/mole; + G4Material* lAr = new G4Material("liquidArgon", 18., a, density); + + // world volume + G4double halfDim = worldDim_/2.; + G4Box * aWorldBox = new G4Box("WorldBox", halfDim, halfDim, halfDim); + G4LogicalVolume * aWorldLV = new G4LogicalVolume(aWorldBox, lAr, "WorldLV"); + + // 2 daughters, overlapping with prop. p (protruding parent or each other) + // G4double outer = sqrt(3.*halfDim*halfDim); + G4double inner = halfDim; + G4double childDim = halfDim/3.; + G4double childRad = sqrt(3.*childDim*childDim); + G4Box * aChildBox = new G4Box("ChildBox", childDim, childDim, childDim); + G4LogicalVolume * child1 = new G4LogicalVolume(aChildBox, lAr, "Child_1_LV"); + G4LogicalVolume * child2 = new G4LogicalVolume(aChildBox, lAr, "Child_2_LV"); + + G4bool parentOverlap = G4UniformRand() < overlapProp_ ? true : false; + G4bool childOverlap = G4UniformRand() < overlapProp_ ? true : false; + + G4ThreeVector ax1(1.,1.,1.); + G4RotationMatrix * rm1 = new G4RotationMatrix(ax1,30.*deg); + G4ThreeVector ax2(0.2,-1.,0.45); + G4RotationMatrix * rm2 = new G4RotationMatrix(ax2,70.*deg); + + G4double t1 = G4UniformRand()*180.*deg; + G4double p1 = G4UniformRand()*360.*deg; + G4double t2 = G4UniformRand()*180.*deg; + G4double p2 = G4UniformRand()*360.*deg; + G4double r1, r2; + + if (parentOverlap) + { + r1 = inner - childRad/3.; + } + else + { + r1 = inner - childRad - childRad/5.; + } + + r2 = inner - childRad - childRad/5.; + + if (childOverlap) + { + t2 = t1; + p2 = p1; + } + + G4ThreeVector tr1( r1*cos(p1)*sin(t1), r1*sin(p1)*sin(t1), r1*cos(t1)); + G4ThreeVector tr2( r2*cos(p2)*sin(t2), r2*sin(p2)*sin(t2), r2*cos(t2)); + + new G4PVPlacement(rm1,tr1,child1,"Child_1",aWorldLV,false,1); + new G4PVPlacement(rm2,tr2,child2,"Child_2",aWorldLV,false,2); + return new G4PVPlacement(0,G4ThreeVector(),aWorldLV,"Random",0,false,1); +} + diff --git a/examples/extended/geometry/olap/src/SolidAnalyser.cc b/examples/extended/geometry/olap/src/SolidAnalyser.cc new file mode 100644 index 0000000000..e10458457d --- /dev/null +++ b/examples/extended/geometry/olap/src/SolidAnalyser.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. * +// ******************************************************************** +// +// +// $Id: SolidAnalyser.cc,v 1.2 2002/06/04 09:23:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// SolidAnalyser +// +// Author: Martin Liendl - Martin.Liendl@cern.ch +// +// -------------------------------------------------------------- +// +#include "SolidAnalyser.hh" + +#include "g4std/strstream" + +#include "G4Box.hh" +#include "G4Cons.hh" +#include "G4Polycone.hh" +#include "G4Polyhedra.hh" +#include "G4Trap.hh" +#include "G4Trd.hh" +#include "G4Tubs.hh" + +SolidAnalyser * SolidAnalyser::theInstance = 0; + +SolidAnalyser::SolidAnalyser() +{ +} + + +SolidAnalyser::~SolidAnalyser() +{ + delete theInstance; +} + + +SolidAnalyser * SolidAnalyser::GetSolidAnalyser() +{ + if (! theInstance) + theInstance = new SolidAnalyser(); + + return theInstance; +} + + +G4int SolidAnalyser::GetParam(const G4VSolid * s, + G4std::vector > & result ) const +{ + const G4Box * box = dynamic_cast(s); + if ( box ) return GetParam(box,result); + + const G4Cons * cons = dynamic_cast(s); + if ( cons ) return GetParam(cons,result); + + const G4Polycone * pcon = dynamic_cast(s); + if ( pcon ) return GetParam(pcon,result); + + const G4Polyhedra * phed = dynamic_cast(s); + if ( phed ) return GetParam(phed,result); + + const G4Trap * trap = dynamic_cast(s); + if ( trap ) return GetParam(trap,result); + + const G4Trd * trd = dynamic_cast(s); + if ( trd ) return GetParam(trd,result); + + const G4Tubs * tubs = dynamic_cast(s); + if ( tubs ) return GetParam(tubs,result); + + return NotImplemented(s,result); +} + +// default parameters for not implemented solids +G4int SolidAnalyser::NotImplemented(const G4VSolid * s, + G4std::vector > & result) const +{ + G4String temp = s->GetEntityType() + G4String(": not impl."); + result.push_back(G4std::make_pair(temp,-1.0)); + return -1; +} + +// G4Box +G4int SolidAnalyser::GetParam(const G4Box * s, + G4std::vector > & result) const +{ + result.push_back(G4std::make_pair(G4String("x/2"), s->GetXHalfLength())); + result.push_back(G4std::make_pair(G4String("y/2"), s->GetYHalfLength())); + result.push_back(G4std::make_pair(G4String("z/2"), s->GetZHalfLength())); + return 3; +} + +// G4Cons +G4int SolidAnalyser::GetParam(const G4Cons * s, + G4std::vector > & result) const +{ + result.push_back(G4std::make_pair(G4String("z/2"), + s->GetZHalfLength())); + result.push_back(G4std::make_pair(G4String("rInZ-"), + s->GetInnerRadiusMinusZ())); + result.push_back(G4std::make_pair(G4String("rInZ+"), + s->GetInnerRadiusPlusZ())); + result.push_back(G4std::make_pair(G4String("rOutZ-"), + s->GetOuterRadiusMinusZ())); + result.push_back(G4std::make_pair(G4String("rOutZ+"), + s->GetOuterRadiusPlusZ())); + result.push_back(G4std::make_pair(G4String("startPhi"), + s->GetStartPhiAngle())); + result.push_back(G4std::make_pair(G4String("deltaPhi"), + s->GetDeltaPhiAngle())); + return 7; +} + +// G4Polycone +G4int SolidAnalyser::GetParam(const G4Polycone * s, + G4std::vector > & result) const +{ + result.push_back(G4std::make_pair(G4String("startPhi"), s->GetStartPhi())); + result.push_back(G4std::make_pair(G4String("endPhi"), s->GetEndPhi())); + + G4int nr = s->GetNumRZCorner(); + G4String temp("nrRZ"); + result.push_back(G4std::make_pair(temp, G4double(nr))); + for (G4int i=0; iGetCorner(i); + sstr_z << "z_" << i << '\0'; + sstr_r << "r_" << i << '\0'; + G4String z_str(sstr_z.str()); + G4String r_str(sstr_r.str()); + result.push_back(G4std::make_pair(z_str, sideRz.z)); + result.push_back(G4std::make_pair(r_str, sideRz.r)); + } + return 3 + 2*nr; +} + +// G4Polyhedra +G4int SolidAnalyser::GetParam(const G4Polyhedra * s, + G4std::vector > & result) const +{ + result.push_back(G4std::make_pair(G4String("startPhi"), s->GetStartPhi())); + result.push_back(G4std::make_pair(G4String("endPhi"), s->GetEndPhi())); + result.push_back(G4std::make_pair(G4String("nrSide"), + G4double(s->GetNumSide()))); + + G4int nr = s->GetNumRZCorner(); + + result.push_back(G4std::make_pair(G4String("nrRZ"), G4double(nr))); + + for (G4int i=0; iGetCorner(i); + sstr_z << "z_" << i << '\0'; + sstr_r << "r_" << i << '\0'; + G4String z_str(sstr_z.str()); + G4String r_str(sstr_r.str()); + result.push_back(G4std::make_pair(z_str, sideRz.z)); + result.push_back(G4std::make_pair(r_str, sideRz.r)); + } + return 4 + 2*nr; +} + +// G4Trap +G4int SolidAnalyser::GetParam(const G4Trap * s, + G4std::vector > & result) const +{ + result.push_back(G4std::make_pair(G4String("z/2"), s->GetZHalfLength())); + + result.push_back(G4std::make_pair(G4String("x/2_1"), s->GetXHalfLength1())); + result.push_back(G4std::make_pair(G4String("x/2_2"), s->GetXHalfLength2())); + result.push_back(G4std::make_pair(G4String("y/2_1"), s->GetYHalfLength1())); + result.push_back(G4std::make_pair(G4String("tanAlpha_1"),s->GetTanAlpha1())); + + result.push_back(G4std::make_pair(G4String("x/2_3"), s->GetXHalfLength3())); + result.push_back(G4std::make_pair(G4String("x/2_4"), s->GetXHalfLength4())); + result.push_back(G4std::make_pair(G4String("y/2_2"), s->GetYHalfLength2())); + result.push_back(G4std::make_pair(G4String("tanAlpha_2"),s->GetTanAlpha2())); + + return 9; +} + +// G4Trd +G4int SolidAnalyser::GetParam(const G4Trd * s, + G4std::vector > & result) const +{ + result.push_back(G4std::make_pair(G4String("z/2"), s->GetZHalfLength())); + + result.push_back(G4std::make_pair(G4String("x/2_1"), s->GetXHalfLength1())); + result.push_back(G4std::make_pair(G4String("x/2_2"), s->GetXHalfLength2())); + result.push_back(G4std::make_pair(G4String("y/2_1"), s->GetYHalfLength1())); + result.push_back(G4std::make_pair(G4String("y/2_2"), s->GetYHalfLength2())); + return 5; +} + +// G4Tubs +G4int SolidAnalyser::GetParam(const G4Tubs * s, + G4std::vector > & result) const +{ + result.push_back(G4std::make_pair(G4String("z/2"), s->GetZHalfLength())); + result.push_back(G4std::make_pair(G4String("rIn"), s->GetInnerRadius())); + result.push_back(G4std::make_pair(G4String("rOut"), s->GetOuterRadius())); + result.push_back(G4std::make_pair(G4String("startPhi"), + s->GetStartPhiAngle())); + result.push_back(G4std::make_pair(G4String("deltaPhi"), + s->GetDeltaPhiAngle())); + + return 5; +} + +G4std::ostream & operator<<(G4std::ostream& flux, + G4std::vector > & v) +{ + G4std::vector >::iterator it = v.begin(); + while ( it != v.end() ) + { + flux << (*it).first << '=' << (*it).second << "
" << G4endl; + it++; + } + return flux; +} diff --git a/examples/extended/parallel/ParN02/GNUmakefile b/examples/extended/parallel/ParN02/GNUmakefile new file mode 100644 index 0000000000..015d0b3b7d --- /dev/null +++ b/examples/extended/parallel/ParN02/GNUmakefile @@ -0,0 +1,19 @@ +# $Id: GNUmakefile,v 1.1 2002/03/05 15:21:51 gcosmo Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +include ParGNUmakefile + +name := ParN02 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/parallel/ParN02/History b/examples/extended/parallel/ParN02/History new file mode 100644 index 0000000000..d3f1537dff --- /dev/null +++ b/examples/extended/parallel/ParN02/History @@ -0,0 +1,22 @@ +$Id: History,v 1.1 2002/03/05 15:21:52 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Example ParN02 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 * + ---------------------------------------------------------- + +March 5th, 2002 G.Cosmo - ParN02-V04-00-00 +------------------------ +- Created from original version of Gene Cooperman. + Parallel version of example/novice/N02. + diff --git a/examples/extended/parallel/ParN02/ParGNUmakefile b/examples/extended/parallel/ParN02/ParGNUmakefile new file mode 100644 index 0000000000..6a5d8ef876 --- /dev/null +++ b/examples/extended/parallel/ParN02/ParGNUmakefile @@ -0,0 +1,113 @@ +# $Id: ParGNUmakefile,v 1.3 2002/03/09 09:49:55 cooperma Exp $ +# -------------------------------------------------------------- +#This file should be included in GNUmakefile of local directory. + +#Usage: make [ to compile parallel version ] +# make run [ to compile and run it ] +# make run-debug [ to compile and run in gdb ] +# make parclean [ remove intermediate and executable files ] +# See `run' target for parameters by which executable is called. +# This assumes Geant4 environment vars have been defined. +# See ../info/NEW_APP_INSTALL (number 10) for an example of setting up +# the Geant4 environment variables. + +# MEM_MODEL can be --seq, --mpi, or --pthread in current version of TOP-C. +MEM_MODEL=--seq +MEM_MODEL=--mpi + +ifndef REMOTE_SHELL + REMOTE_SHELL=ssh +endif + +MACROFILE=ParN02.in + +# DATAFILE=pythia_event.data +DATAFILE= + +# Everything below here should be set automatically based on +# your environment variables, the G4TARGET of GNUmakefile, etc. +# G4TARGET set in the makefile that includes this one. + +ifndef PARTARGET + PARTARGET = ${G4TARGET} +endif + +ifndef G4INSTALL + G4INSTALL = _Environment_variable_G4INSTALL_must_be_defined_ +endif + +ifndef G4WORKDIR + G4WORKDIR = ${G4INSTALL} +endif + +ifndef G4BIN + G4BIN = $$G4WORKDIR/bin +endif +ifndef G4BINDIR + G4BINDIR = ${G4BIN}/$$G4SYSTEM +endif + +EXECUTABLE=${G4BIN}/$$G4SYSTEM/${PARTARGET} + +G4DEBUG = 1 + +TOPC_LIBS = `topc-config ${MEM_MODEL} --libs` +TOPC_CFLAGS = -DG4USE_TOPC `topc-config ${MEM_MODEL} --cflags` +# optionally add: -DTOPC_DEBUG to TOPC_CFLAGS for debugging details. +TOPC_OPTIONS = --TOPC-verbose + +EXTRALIBS=${TOPC_LIBS} +CPPFLAGS=${TOPC_CFLAGS} + +TIMESTAMP=${G4BINDIR}/timestamp + +# Unfortunately, .../geant4.x.x/config/binmake.gmk has target: +# $(G4BINDIR)/$(G4TARGET) +# (for example: ${G4BIN}/$$G4SYSTEM/ParN02) +# And that rule always triggers due to dependency on .../exe/obj.last +# Also, G4BINDIR uses shell variables, that are guaranteed to expand +# only after recursive make. +compile: + @ if [ "$$G4SYSTEM" = "" ]; then \ + echo '***' Environment variable G4SYSTEM not defined; \ + echo '***' Make sure G4INSTALL and G4SYSTEM are set; \ + fi + ${MAKE} G4BINDIR=${G4BINDIR} ${TIMESTAMP} +${TIMESTAMP}: *.cc *.icc src/*.cc include/*.hh ParGNUmakefile + # Test for presence of topc-config + topc-config ${MEM_MODEL} --libs > /dev/null + ${MAKE} all + rm -f ${TIMESTAMP} + echo "" > ${TIMESTAMP} + make -t ${EXECUTABLE} + +run: compile + pwd + echo ${EXECUTABLE} + cp -f ${MACROFILE} ${DATAFILE} procgroup `dirname ${EXECUTABLE}`/ + # ${EXECUTABLE} will use procgroup file in current directory. + ( cd `dirname ${EXECUTABLE}`; RSH=${REMOTE_SHELL}; export RSH; \ + ${EXECUTABLE} ${TOPC_OPTIONS} ${MACROFILE} ) + +run-debug: compile + @ if [ "$$G4DEBUG" = "" ]; then \ + echo '***' Environment variable G4DEBUG not defined; \ + echo '***' Set it, make parclean, and re-compile using GDEBUG; \ + fi + # exit 1; \ + echo ${EXECUTABLE} + cp -f ${MACROFILE} ${DATAFILE} procgroup `dirname ${EXECUTABLE}`/ + rm -f `dirname ${EXECUTABLE}`/tmp.gdb + echo 'set args ${TOPC_OPTIONS} ${MACROFILE}' \ + > `dirname ${EXECUTABLE}`/tmp.gdb + echo 'break main' >> `dirname ${EXECUTABLE}`/tmp.gdb + echo 'run' >> `dirname ${EXECUTABLE}`/tmp.gdb + # ${EXECUTABLE} will use procgroup file in current directory. + ( cd `dirname ${EXECUTABLE}`; RSH=${REMOTE_SHELL}; export RSH; \ + gdb -x tmp.gdb ${EXECUTABLE} ) +parclean: + rm -f ${TIMESTAMP} + ${MAKE} clean +pardist: parclean + ( dir=`basename $$PWD`; cd ..; tar cvf $$dir.tar ./$$dir; \ + gzip $$dir.tar && (cd $$dir; ls -l ../$$dir.tar.gz) ) diff --git a/examples/extended/parallel/ParN02/ParN02.cc b/examples/extended/parallel/ParN02/ParN02.cc new file mode 100644 index 0000000000..a22711347f --- /dev/null +++ b/examples/extended/parallel/ParN02/ParN02.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. * +// ******************************************************************** +// +// +// $Id: ParN02.cc,v 1.2 2002/03/09 06:21:18 cooperma Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02DetectorConstruction.hh" +#include "ExN02PhysicsList.hh" +#include "ExN02PrimaryGeneratorAction.hh" +#include "ExN02RunAction.hh" +#include "ExN02EventAction.hh" +#include "ExN02SteppingAction.hh" +#include "ExN02SteppingVerbose.hh" + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +#ifdef G4VIS_USE +#include "ExN02VisManager.hh" +#endif + +#include "ParTopC.icc" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) { + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new ExN02SteppingVerbose); + + // Run manager + G4RunManager * runManager = new G4RunManager; + + // UserInitialization classes (mandatory) + ExN02DetectorConstruction* ExN02detector = new ExN02DetectorConstruction; + runManager->SetUserInitialization(ExN02detector); + runManager->SetUserInitialization(new ExN02PhysicsList); + +#ifdef G4VIS_USE + // Visualization, if you choose to have it! + G4VisManager* visManager = new ExN02VisManager; + visManager->Initialize(); +#endif + + // UserAction classes + runManager->SetUserAction(new ExN02PrimaryGeneratorAction(ExN02detector)); + runManager->SetUserAction(new ExN02RunAction); + runManager->SetUserAction(new ExN02EventAction); + runManager->SetUserAction(new ExN02SteppingAction); + + //Initialize G4 kernel + runManager->Initialize(); + + //get the pointer to the User Interface manager + G4UImanager * UI = G4UImanager::GetUIpointer(); + + if(argc==1) + // Define (G)UI terminal for interactive mode + { + // G4UIterminal is a (dumb) terminal. + G4UIsession * session = 0; +#ifdef G4UI_USE_TCSH + session = new G4UIterminal(new G4UItcsh); +#else + session = new G4UIterminal(); +#endif + + UI->ApplyCommand("/control/execute vis.mac"); + session->SessionStart(); + delete session; + } + else + // Batch mode + { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/parallel/ParN02/ParN02.in b/examples/extended/parallel/ParN02/ParN02.in new file mode 100644 index 0000000000..46ad7e89d2 --- /dev/null +++ b/examples/extended/parallel/ParN02/ParN02.in @@ -0,0 +1,21 @@ +/tracking/verbose 1 + +/gun/energy 200 MeV +/gun/particle e+ +/run/beamOn 1 + +/gun/energy 1 TeV +/gun/particle mu+ +/run/beamOn 1 + +/tracking/verbose 0 + +/gun/energy 200 MeV +/gun/particle e+ +/run/beamOn 100 + +/gun/energy 1 TeV +/gun/particle mu+ +/run/beamOn 100 + +exit diff --git a/examples/extended/parallel/ParN02/ParN02.large_N.in b/examples/extended/parallel/ParN02/ParN02.large_N.in new file mode 100644 index 0000000000..7ada9932a0 --- /dev/null +++ b/examples/extended/parallel/ParN02/ParN02.large_N.in @@ -0,0 +1,21 @@ +/tracking/verbose 1 + +/gun/energy 200 MeV +/gun/particle e+ +/run/beamOn 1 + +/gun/energy 1 TeV +/gun/particle mu+ +/run/beamOn 1 + +/tracking/verbose 0 + +/gun/energy 200 MeV +/gun/particle e+ +/run/beamOn 10000 + +/gun/energy 1 TeV +/gun/particle mu+ +/run/beamOn 1000 + +exit diff --git a/examples/extended/parallel/ParN02/ParTopC.icc b/examples/extended/parallel/ParN02/ParTopC.icc new file mode 100644 index 0000000000..71ec7490f9 --- /dev/null +++ b/examples/extended/parallel/ParN02/ParTopC.icc @@ -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: ParTopC.icc,v 1.1 2002/03/09 06:25:03 cooperma Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifdef G4USE_TOPC +# include "ParRunManager.hh" +#endif + +static int G4_main(int argc, char **argv); + +int main(int argc,char** argv) { +# ifdef G4USE_TOPC + TOPC_OPT_safety = 15; // Needed until a certain TOP-C bug is diagnosed. + TOPC_init(&argc, &argv); +# endif + int ret_val = G4_main(argc, argv); +# ifdef G4USE_TOPC + TOPC_finalize(); +# endif + return ret_val; +} + +#ifdef G4USE_TOPC +# define G4RunManager ParRunManager +#endif + +#define main G4_main diff --git a/examples/extended/parallel/ParN02/docs/000README b/examples/extended/parallel/ParN02/docs/000README new file mode 100644 index 0000000000..9575b1640d --- /dev/null +++ b/examples/extended/parallel/ParN02/docs/000README @@ -0,0 +1,162 @@ +$Id: 000README,v 1.3 2002/03/09 09:47:58 cooperma Exp $ +------------------------------------------------------------------------------ + + ParGeant4: Geant4/TOP-C, a parallelization of Geant4 + Version 0.9 + (event-level parallelism only) + + Gene Cooperman + Northeastern University + gene@ccs.neu.edu, + +For the latest information on ParGeant4, see: + http://www.ccs.neu.edu/home/gene/pargeant4.html +Note that a version now exists that runs Geant4 over the Grid. +Please write to gene@ccs.neu.edu for further information. +To port other applications to a parallel version, read the + files ../../info/PAR_INSTALL and ../../info/PAR_README. + +This parallelization was done using a precompiled library for Geant4 4.0 +See the beginning of GNUmakefile for reasonable `make' targets to run it. +To run it: +0. a. Follow the standard Geant4 installation procedure. + b. Verify that the Geant4 sequential examples work for you: + cd $G4INSTALL/examples/novice/exampleN02 + make + $G4WORKDIR/bin/$G4SYSTEM/ParN02 ParN02.in + c. Download and install TOP-C + The TOP-C home page is at http://www.ccs.neu.edu/home/gene/topc.html + cd + gzip -dc topc.tar.gz | tar -xvf - + cd topc + ./configure + make + make test + [ Copy bin/topc-config to your path ] +2. make run + [ By default, the included `procgroup' file creates two slave processes + on localhost. ] + [ Note that in addition to output on master, + $G4WORKDIR/bin/$G4SYSTEM/slave*.out contains slave output. ] + [ To remove intermediate files and start over: make parclean ] +3. Try running it with slave processes on remote processes. + First, test that your local environment is set up correctly. + Try: + ssh $G4WORKDIR/bin/$G4SYSTEM/ParN02 `pwd`/ParN02.in + The above command needs to work without asking for a password. + [ If you use dynamic libraries (*.so), make sure the LD_LIBRARY_PATH + in your shell startup file (e.g. ~.tcshrc) includes both: + $G4INSTALL/lib/$G4SYSTEM and $CLHEP_BASE_DIR/lib + If you use AFS, you may need to type 'klog' to renew your AFS token. ] + In `procgroup' file, replace `localhost' by desired remote hosts; + Add additional remote hosts (additional slaves) if you like. + Then: make run + +============================================================================ +If you read ParGNUmakefile, you'll find other things that you can +modify. For example, all TOP-C additions are in conditionals: + remove -DG4USE_TOPC from ParGNUmakefile and: + make parclean; make run + in order to re-compile and rerun without TOP-C. +Define REMOTE_SHELL differently if you don't use `ssh' for a remote shell. + (If undefined, ParGNUmakefile defines it to be `ssh') +Define MACROFILE diferently to use a different set of input commands. +Define MEM_MODEL=--seq + to run with TOP-C, but using a single (sequential) process, suitable + for easy debugging (via gdb, for example). +Try: pushd $G4WORKDIR/bin/$G4SYSTEM/; ./ParN02 --TOPC-help + to see TOP-C run-time options that can be invoked, such as + pushd $G4WORKDIR/bin/$G4SYSTEM/; ./ParN02 --TOPC-num-slaves=5 ParN02.in + Alternatively, modify TOPC_OPTIONS in ParGNUmakefile for the same effect. + +You can also try other targets: make run-debug + This will run it under gdb, so you can single step to see what happens. +make parclean - Start over with clean set of files. + +============================================================================ +New or modified files: + ParN02.cc - Adds one line: #include "ParN02.icc" + ParExample.icc inserts: #include "topc.h" + and causes main to calls TOPC_init, TOPC_finalize, + and to use: `new ParRunManager' instead of `new G4RunManager' + GNUmakefile - Adds one line at beginning: include ParGNUmakefile + ParGNUmakefile defines EXTRALIBS and CPPFLAGS so as to + modify behavior of config/binmake.gmk + in order to use TOP-C libraries and includes + procgroup - Specifies which slave hosts to use, and where to put output + For example: localhost 1 - > slave1.out + host=`localhost', executable=`same as master', + params of slave=`> slave1.out' (redirect output) + If output not redirected, it goes to stdout on master. + src/ParRunManager.cc - ParRunManger derived from G4RunManager + replaces Gr4RunManager::DoEventLoop w/ TOP-C parallel loop, + Adds certain local vars of DoEventLoop as ParRunManager members + src/ParMarshaledObj.cc - run-time utilities for marshalling + src/ParExN02MarshaledHits.cc - marshals N02 hits (calorimeter hits) + include/Par*.hh - Currently just ParRunManager.hh + ~/slave*.out - Contains outputs of slave1, slave2, etc. + Generated each time parallel ParN02 is executed. + These files are specified in the file procgroup. + thwap - A script I inherited from our N.U. systems group + `thwap ParN02' will clobber all processes you own + whose command line includes `ParN02' as substring. + Handy for runaway processes when doing parallelism. + +==================================================================== +This version passes an event number to the slave and lets the +slave generate the event. The slave passes back marshaled hits to +the master. + +I will integrate the track level parallelism into this scenario at +a later date. For the track level, I will generate several +secondary tracks on the master, and then convert the secondary tracks +to new events that can be passed to slaves. I will do this only if +I detect that there are not enough initial events to fully occupy all +the slaves. This scheme has the drawback that we are splitting an event +into many events, which may make the summarization, histogram, and so +on more difficult. However, track level parallelism will be triggered +only when a very small number of events are generated. + +I also want to support postponing +a track to the next event ( G4ClassificationOfNewTrack::fPostpone . +To do this, each slave will wait to retire an event until it knows that +the previous event has been retired. + +In addition, I plan to have only the master read commands and pass +them to the slaves. Currently, the master and slaves each read +identical commands. + +==================================================================== +If you are curious about some of the layers, the following +stack trace [somewhat out of date now] gives some idea. + G4RunManager::BeamOn calls ParRunManager::DoEventLoop +(since G4RunManager::DoEventLoop is virtual) + ParRunManager::DoEventLoop calls TOPC_master_slave + TOPC_master_slave calls submit_task_input + submit_task_input eventually calls COMM_send_msg which calls MPI_Send +(COMM_send_msg is the communication layer of TOPC; + ParN02.cc was linked with the TOP-C MPI communication layer. + The same source could have been linked with a POSIX threads layer, + a communication layer, or some other communication layer. +) + MPI_send calls send +(where send is the socket system call of libc.so) + +(gdb) where +#0 0x41946c62 in send () from /lib/libc.so.6 +#1 0x400839c1 in send () at wrapsyscall.c:186 +#2 0x805c547 in MPI_Send (buf=0x82690fc, count=4, datatype=3, dest=2, tag=1, comm=0) at sendrecv.c:236 +#3 0x805a0b5 in COMM_send_msg (msg=0x82690fc, msg_size=4, dst=2, tag=TASK_INPUT_TAG) at comm-mpi.c:224 +#4 0x805774e in send_task_input (slave=2, input={data = 0x82690fc, data_size = 4}, tag=TASK_INPUT_TAG) at topc.c:560 +#5 0x8057aa8 in submit_task_input (input={data = 0x82690fc, data_size = 4}) at topc.c:659 +#6 0x805813c in TOPC_master_slave (generate_task_input_=0x4003d2e4 , + do_task_=0x4003d350 , check_task_result_=0x4003d420 , + update_shared_data_=0) at topc.c:922 +#7 0x4003d18c in ParRunManager::DoEventLoop (this=0x80c0bf0, n_event=1, macroFile=0x0, n_select=-1) at src/ParRunManager.cc:51 +#8 0x400b14d1 in G4RunManager::BeamOn () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4run.so +#9 0x400b870a in G4RunMessenger::SetNewValue () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4run.so +#10 0x4167157b in G4UIcommand::DoIt () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4intercoms.so +#11 0x416810a3 in G4UImanager::ApplyCommand () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4intercoms.so +#12 0x805db7e in G4UIterminal::ExecuteCommand () at /afs/cern.ch/sw/lhcxx/specific/redhat61/3.2.0/include/CLHEP/Random/Randomize.h:64 +#13 0x805d42d in G4UIterminal::SessionStart () at /afs/cern.ch/sw/lhcxx/specific/redhat61/3.2.0/include/CLHEP/Random/Randomize.h:64 +#14 0x8056a3d in main (argc=1, argv=0x80bfa00) at ParN02.cc:98 diff --git a/examples/extended/parallel/ParN02/docs/COPYING b/examples/extended/parallel/ParN02/docs/COPYING new file mode 100644 index 0000000000..d642c27246 --- /dev/null +++ b/examples/extended/parallel/ParN02/docs/COPYING @@ -0,0 +1,25 @@ + /********************************************************************** + * Parallel Library for Geant4 + * Copyright (c) 2001 Gene Cooperman * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library (see file COPYING); if not, write * + * to the Free Software Foundation, Inc., 59 Temple Place, Suite * + * 330, Boston, MA 02111-1307 USA, or contact Gene Cooperman * + * . * + **********************************************************************/ + +My intention is to make this software freely available as part of +the Geant4 collaboration. I believe that the liberal GNU Lesser General +Public License should not be a barrier to reasonable usage. If you find +that it is, please write to me. diff --git a/examples/extended/parallel/ParN02/docs/README b/examples/extended/parallel/ParN02/docs/README new file mode 100644 index 0000000000..50f84b9333 --- /dev/null +++ b/examples/extended/parallel/ParN02/docs/README @@ -0,0 +1,124 @@ +$Id: README,v 1.1 2002/03/05 15:21:55 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + ParN02 + ------ + + + This example simulates a simplified fixe target experiment. + Read 000README for a description of how to run it in parallel. + + 1- GEOMETRY DEFINITION + + The setup consists of a target followed by six chambers of increasing + transverse size. These chambers are located in a region called Tracker + region. Their shape are boxes, constructed as parametrised volumes + (ChamberParametrisation class). + + The default geometry is constructed in DetectorConstruction class. + One can change the material of the target and of the chambers + interactively via the commands defined in the DetectorMessenger class. + + In addition a transverse uniform magnetic field can be applied (see + N02MagneticField and DetectorMessenger classes). + + + 2- PHYSICS LIST + + The particle's type and the physic processes which will be available + in this example are set in PhysicsList class. + + In this example, all the so called 'electromagnetic processes' are + introduced for gamma, charged leptons, and charged hadrons (see the + method PhysicsList::ConstructEM()). + + An important data member of this class is the defaultCutValue which + defines the production threshold of secondary particles + (mainly Ionisation and Bremsstrahlung processes are concerned by this + CutValue). + Notice that the CutValue must be given in unit of length, corresponding + to the stopping range of the particle. It is automatically converted + in energy for each material, and a table is printed in the method + PhysicsList::SetCuts() + + In addition the build-in interactive command: + /process/(in)activate processName + allows to activate/inactivate the processes one by one. + + + 3- RUNS and EVENTS + + The primary kinematic consists of a single particle which hits the + target perpendicular to the input face. The type of the particle + and its energy are set in the PrimaryGeneratorAction class, and can + be changed via the G4 build-in commands of ParticleGun class. + + A RUN is a set of events. + + The user has control: + -at Begin and End of each run (class RunAction) + -at Begin and End of each event (class EventAction) + -at Begin and End of each track (class TrackingAction, not used here) + -at End of each step (class SteppingAction) + + The class SteppingVerbose prints some informations step per step, + under the control of the command: /tracking/verbose 1 + It inherits from G4SteppingVerbose, and has been setup here in order + to illustrate how to extract informations from the G4 kernel during + the tracking of a particle. + + + 4- DETECTOR RESPONSE + + A HIT is a record, track per track (even step per step), of all the + informations needed to simulate and analyse the detector response. + + In this example the Tracker chambers are considered as the detector. + Therefore the chambers are declared 'sensitive detectors' (SD) in + the DetectorConstruction class. + + Then, a Hit is defined as a set of 4 informations per step, inside + the chambers, namely: + - the track identifier (an integer), + - the chamber number, + - the total energy deposit in this step, + - the position of the deposit. + + A given hit is an instance of the class TrackerHit which is created + during the tracking of a particle, step by step, in the method + TrackerSD::ProcessHits(). This hit is inserted in a HitsCollection. + + The HitsCollection is printed at the end of event (via the method + TrackerSD::EndOfEvent()), under the control of the command: /hits/verbose 1 + + + 5- VISUALIZATION + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via a set of /vis/ commands + in the macro vis.mac. This macro is automatically read from + the main when running in interactive mode. + + The tracks are automatically drawn at the end of event and erased at + the beginning of the next run. + + The visualization (with OpenGL driver) assumes two things: + 1- the visualisation & interfaces categories have been compiled + with the environment variable G4VIS_BUILD_OPENGLX_DRIVER. + 2- ParN02.cc has been compiled with G4VIS_USE_OPENGLX. + + (The same with DAWNFILE instead of OPENGLX) + + + 6- USER INTERFACES + + The default command interface, called G4UIterminal, is done via + standart cin/G4cout. + On Linux and Sun-cc on can use a smarter command interface G4UItcsh. + It is enough to set the environment variable G4UI_USE_TCSH before + compiling ParN02.cc + diff --git a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh new file mode 100644 index 0000000000..1363e0fd77 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.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: ExN02ChamberParameterisation.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// A parameterisation that describes a series of boxes along Z +// The boxes have equal width, & their lengths are a linear equation. +// They are spaced an equal distance apart, starting from given location. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02ChamberParameterisation_H +#define ExN02ChamberParameterisation_H 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4Box; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02ChamberParameterisation : public G4VPVParameterisation +{ + public: + + ExN02ChamberParameterisation(G4int NoChambers, + G4double startZ, + G4double spacing, + G4double widthChamber, + G4double lengthInitial, + G4double lengthFinal ); + + virtual + ~ExN02ChamberParameterisation(); + + void ComputeTransformation (const G4int copyNo, + G4VPhysicalVolume* physVol) const; + + void ComputeDimensions (G4Box & trackerLayer, const G4int copyNo, + const G4VPhysicalVolume* physVol) const; + + + private: + + G4int fNoChambers; + G4double fStartZ; + G4double fHalfWidth; // The half-width of each tracker chamber + G4double fSpacing; // The distance between the chambers' center + G4double fHalfLengthFirst; // The first half-length + G4double fHalfLengthIncr; // The Increment for the half-length +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh b/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh new file mode 100644 index 0000000000..f250be88f6 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.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: ExN02DetectorConstruction.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02DetectorConstruction_h +#define ExN02DetectorConstruction_h 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" +#include "ExN02MagneticField.hh" + +class G4Box; +class G4LogicalVolume; +class G4VPhysicalVolume; +class G4Material; +class ExN02DetectorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + + ExN02DetectorConstruction(); + ~ExN02DetectorConstruction(); + + public: + + G4VPhysicalVolume* Construct(); + + const + G4VPhysicalVolume* GetTracker() {return physiTracker;}; + G4double GetTrackerFullLength() {return fTrackerLength;}; + G4double GetTargetFullLength() {return fTargetLength;}; + G4double GetWorldFullLength() {return fWorldLength;}; + + void setTargetMaterial (G4String); + void setChamberMaterial(G4String); + void SetMagField(G4double); + + private: + + G4Box* solidWorld; // pointer to the solid envelope + G4LogicalVolume* logicWorld; // pointer to the logical envelope + G4VPhysicalVolume* physiWorld; // pointer to the physical envelope + + G4Box* solidTarget; // pointer to the solid Target + G4LogicalVolume* logicTarget; // pointer to the logical Target + G4VPhysicalVolume* physiTarget; // pointer to the physical Target + + G4Box* solidTracker; // pointer to the solid Tracker + G4LogicalVolume* logicTracker; // pointer to the logical Tracker + G4VPhysicalVolume* physiTracker; // pointer to the physical Tracker + + G4Box* solidChamber; // pointer to the solid Chamber + G4LogicalVolume* logicChamber; // pointer to the logical Chamber + G4VPhysicalVolume* physiChamber; // pointer to the physical Chamber + + G4Material* TargetMater; // pointer to the target material + G4Material* ChamberMater; // pointer to the chamber material + ExN02MagneticField* fpMagField; // pointer to the magnetic field + + ExN02DetectorMessenger* detectorMessenger; // pointer to the Messenger + + G4double fWorldLength; // Full length of the world volume + G4double fTargetLength; // Full length of Target + G4double fTrackerLength; // Full length of Tracker + G4int NbOfChambers; // Nb of chambers in the tracker region + G4double ChamberWidth; // width of the chambers + G4double ChamberSpacing; // distance between chambers +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh b/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh new file mode 100644 index 0000000000..1b144f4124 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.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: ExN02DetectorMessenger.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02DetectorMessenger_h +#define ExN02DetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class ExN02DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02DetectorMessenger: public G4UImessenger +{ + public: + ExN02DetectorMessenger(ExN02DetectorConstruction*); + ~ExN02DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + ExN02DetectorConstruction* myDetector; + + G4UIdirectory* mydetDir; + G4UIcmdWithAString* TargMatCmd; + G4UIcmdWithAString* ChamMatCmd; + G4UIcmdWithADoubleAndUnit* FieldCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/parallel/ParN02/include/ExN02EventAction.hh b/examples/extended/parallel/ParN02/include/ExN02EventAction.hh new file mode 100644 index 0000000000..e142e79c34 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02EventAction.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: ExN02EventAction.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02EventAction_h +#define ExN02EventAction_h 1 + +#include "G4UserEventAction.hh" + +class G4Event; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02EventAction : public G4UserEventAction +{ + public: + ExN02EventAction(); + ~ExN02EventAction(); + + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh b/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh new file mode 100644 index 0000000000..c55f7e8450 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02MagneticField.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: ExN02MagneticField.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// A class for control of the Magnetic Field of the detector. +// The field is assumed to be uniform. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02MagneticField_H +#define ExN02MagneticField_H + +#include "G4UniformMagField.hh" + +class G4FieldManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +class ExN02MagneticField: public G4UniformMagField +{ + public: + + ExN02MagneticField(G4ThreeVector); // The value of the field + ExN02MagneticField(); // A zero field + ~ExN02MagneticField(); + + //Set the field (fieldValue,0,0) + void SetFieldValue(G4double fieldValue); + void SetFieldValue(G4ThreeVector fieldVector); + + G4ThreeVector GetConstantFieldValue(); + + protected: + + // Find the global Field Manager + G4FieldManager* GetGlobalFieldManager(); // static +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh b/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh new file mode 100644 index 0000000000..90243bf484 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN02PhysicsList.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02PhysicsList_h +#define ExN02PhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02PhysicsList: public G4VUserPhysicsList +{ + public: + ExN02PhysicsList(); + ~ExN02PhysicsList(); + + protected: + // Construct particle and physics + void ConstructParticle(); + void ConstructProcess(); + + void SetCuts(); + + + 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(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh b/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..c28a84f838 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.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: ExN02PrimaryGeneratorAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02PrimaryGeneratorAction_h +#define ExN02PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class ExN02DetectorConstruction; +class G4ParticleGun; +class G4Event; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + ExN02PrimaryGeneratorAction(ExN02DetectorConstruction*); + ~ExN02PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event*); + + private: + G4ParticleGun* particleGun; + ExN02DetectorConstruction* myDetector; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/parallel/ParN02/include/ExN02RunAction.hh b/examples/extended/parallel/ParN02/include/ExN02RunAction.hh new file mode 100644 index 0000000000..bd09bb9f5d --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02RunAction.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: ExN02RunAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02RunAction_h +#define ExN02RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +class ExN02RunAction : public G4UserRunAction +{ + public: + ExN02RunAction(); + ~ExN02RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + diff --git a/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh b/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh new file mode 100644 index 0000000000..e883ba9b9d --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh @@ -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: ExN02SteppingAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02SteppingAction_h +#define ExN02SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02SteppingAction : public G4UserSteppingAction +{ + public: + ExN02SteppingAction(); + ~ExN02SteppingAction(){}; + + void UserSteppingAction(const G4Step*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh b/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh new file mode 100644 index 0000000000..92090fd5db --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.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: ExN02SteppingVerbose.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose. +// It shows how to extract informations during the tracking of a particle. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02SteppingVerbose; + +#ifndef ExN02SteppingVerbose_h +#define ExN02SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02SteppingVerbose : public G4SteppingVerbose +{ + public: + + ExN02SteppingVerbose(); + ~ExN02SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh b/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh new file mode 100644 index 0000000000..0701a61f0b --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02TrackerHit.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. * +// ******************************************************************** +// +// +// $Id: ExN02TrackerHit.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02TrackerHit_h +#define ExN02TrackerHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02TrackerHit : public G4VHit +{ + public: + + ExN02TrackerHit(); + ~ExN02TrackerHit(); + ExN02TrackerHit(const ExN02TrackerHit&); + const ExN02TrackerHit& operator=(const ExN02TrackerHit&); + int operator==(const ExN02TrackerHit&) const; + + inline void* operator new(size_t); + inline void operator delete(void*); + + void Draw(); + void Print(); + + public: + + void SetTrackID (G4int track) { trackID = track; }; + void SetChamberNb(G4int chamb) { chamberNb = chamb; }; + void SetEdep (G4double de) { edep = de; }; + void SetPos (G4ThreeVector xyz){ pos = xyz; }; + + G4int GetTrackID() { return trackID; }; + G4int GetChamberNb() { return chamberNb; }; + G4double GetEdep() { return edep; }; + G4ThreeVector GetPos(){ return pos; }; + + private: + + G4int trackID; + G4int chamberNb; + G4double edep; + G4ThreeVector pos; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +typedef G4THitsCollection ExN02TrackerHitsCollection; + +extern G4Allocator ExN02TrackerHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void* ExN02TrackerHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN02TrackerHitAllocator.MallocSingle(); + return aHit; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void ExN02TrackerHit::operator delete(void *aHit) +{ + ExN02TrackerHitAllocator.FreeSingle((ExN02TrackerHit*) aHit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh b/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh new file mode 100644 index 0000000000..e8687092d2 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02TrackerSD.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: ExN02TrackerSD.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02TrackerSD_h +#define ExN02TrackerSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN02TrackerHit.hh" + +class G4Step; +class G4HCofThisEvent; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02TrackerSD : public G4VSensitiveDetector +{ + public: + ExN02TrackerSD(G4String); + ~ExN02TrackerSD(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*, G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); + + private: + ExN02TrackerHitsCollection* trackerCollection; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/parallel/ParN02/include/ExN02VisManager.hh b/examples/extended/parallel/ParN02/include/ExN02VisManager.hh new file mode 100644 index 0000000000..af06b52c00 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ExN02VisManager.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: ExN02VisManager.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Example Visualization Manager implementing virtual function +// RegisterGraphicsSystems. Exploits C-pre-processor variables +// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if +// environment variables of the same name are set. + +// So all you have to do is set environment variables and compile and +// instantiate this in your main(). + +// Alternatively, you can implement an empty function here and just +// register the systems you want in your main(), e.g.: +// G4VisManager* myVisManager = new MyVisManager; +// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN02VisManager_h +#define ExN02VisManager_h 1 + +#ifdef G4VIS_USE + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN02VisManager: public G4VisManager { + +public: + + ExN02VisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + +#endif diff --git a/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh b/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh new file mode 100644 index 0000000000..0e06f434d4 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh @@ -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. * +// ******************************************************************** +// +// $Id: ParExMarshaledHits.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifndef ParExMarshaledHits_h +#define ParExMarshaledHits_h 1 + +#include "G4THitsCollection.hh" +#include "ParMarshaledObj.hh" + +#include "G4SDManager.hh" +#include "G4RunManager.hh" + +// Calling sequence: +// MarshaledHCofThisEvent::MarshaledHCofThisEvent() +// -> MarshaledHCofThisEvent::MarshalHitsCollection +// (G4VHitsCollection * aBaseHC, G4String HCname) +// -> TMarshaledHitsCollection::Marshal(G4VHitsCollection * aBaseHC) +// -> TMarshaledHitsCollection::MarshalHit(T *aHit) +// MarshaledHCofThisEvent::UnmarshalSlaveHCofThisEvent() +// -> TMarshaledHitsCollection::UnmarshalSlaveHitsCollection +// (G4String HCname, G4String SDname) +// -> TMarshaledHitsCollection::Unmarshal(G4THitsCollection * aHC) +// -> TMarshaledHitsCollection::UnmarshalHit(T * aHit) + +// class T derived from G4VHit +template class TMarshaledHitsCollection + : public MarshaledObj +{ + public: + inline void Marshal(G4VHitsCollection * aBaseHC); // Marshal hits of aBaseHC + + inline void UnmarshalSlaveHitsCollection(G4String & HCname, G4String & SDname); + inline void Unmarshal(G4THitsCollection * aHC); + + // By default, we a hit of type T as a void pointer + inline void MarshalHit( T *aHit ) + { MarshaledObj::Marshal((void *)aHit, sizeof(*aHit)); } + + // Unmarshal hits into HC for T. By default assume it was marshaled + // as a void pointer (ObjPtr) + inline void UnmarshalHit(T * aHit) + { + if (isNewHitsCollection) + *aHit = *(T *)MarshaledObj::UnmarshalAsSharedObjPtr(); + else + G4Exception( + "Event Level Parallelism: Every hit collection sent to master" + " should be new.\n Current hit collection, " + + collectionName + ", is not new.\n" + ); + } + + protected: + static G4bool isNewHitsCollection; + static G4String collectionName; +}; + +template +G4bool TMarshaledHitsCollection::isNewHitsCollection = true; + +template +G4String TMarshaledHitsCollection::collectionName = ""; + +template +inline void TMarshaledHitsCollection::Marshal(G4VHitsCollection * aBaseHC) +{ G4THitsCollection *aHC = (G4THitsCollection *)aBaseHC; + G4int numHits = aHC->entries(); + MarshaledObj::Marshal( numHits ); +#ifdef TOPC_DEBUG + G4cout << "Marshaled numHits: " << numHits << G4endl; +#endif + for (int j = 0; j < numHits; j++) { + T *aHit = (*aHC)[j]; + MarshalHit( aHit ); + } +} + +template +inline void TMarshaledHitsCollection::Unmarshal + (G4THitsCollection * aHC) +{ + G4int numHits; + MarshaledObj::Unmarshal( numHits ); +#ifdef TOPC_DEBUG + G4cout << "numHits: " << numHits << G4endl; +#endif + for (int j = 0; j < numHits; j++) { + T *aHit = new T; + UnmarshalHit( aHit ); + aHC->insert( aHit ); + } +} + +template +inline void TMarshaledHitsCollection::UnmarshalSlaveHitsCollection + (G4String & HCname, G4String & SDname) +{ + G4HCofThisEvent *HCE = G4RunManager::GetRunManager()-> + GetCurrentEvent()-> + GetHCofThisEvent(); + // Find or create HitsCollection, aHC, with name HCname + G4THitsCollection *aHC; + // HCname is unique. + collectionName = HCname; + G4int HCID = G4SDManager::GetSDMpointer()->GetCollectionID(HCname); + if (HCID < 0) + { aHC = new G4THitsCollection(SDname, HCname); + HCID = G4SDManager::GetSDMpointer()->GetCollectionID(HCname); + HCE->AddHitsCollection( HCID, aHC ); + isNewHitsCollection = true; + } + else { + aHC = (G4THitsCollection *)HCE->GetHC(HCID); + isNewHitsCollection = ( aHC->entries() == 0 ? true : false ); + } + + Unmarshal(aHC); +}; + +#endif + diff --git a/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh b/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh new file mode 100644 index 0000000000..35a8f7a04f --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ParMarshaledObj.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. * +// ******************************************************************** +// +// $Id: ParMarshaledObj.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifndef ParMarshaledObj_h +#define ParMarshaledObj_h 1 + +#include +#include + +#include + +// Geant4 types; Which of these is the official one? G4types.hh or globals.hh +// G4types.hh included from G4ios.hh +#include "G4Event.hh" +#include "globals.hh" + +// A MarshaledObj is conceptually a +// dynamically resizable buffer, size, and cursor. +// Data structure of buffer: +// Note that buffer has no internal construct to determine size of buffer +// It is the responsibility of the user to know types of field1, ... +// There are two types of MarshaledObj, depending on whether +// IsUnmarshaling() is true or false. +// I use malloc/free because I can also use realloc to extend the buffer. + +class MarshaledObj { + private: + // Make sure all marshaled objects are word aligned. + static const int WORD_SIZE = sizeof(long); + static inline int ROUND_UP( int x ) + { return (((x)+(WORD_SIZE-1)) / WORD_SIZE) * WORD_SIZE; } + + public: + inline MarshaledObj(int total_size) + :extent(ROUND_UP(total_size)),size(0) + { if (extent > 0) + buffer = (char *)malloc(extent); + else + buffer = NULL; + cursor = buffer + size; + } + inline MarshaledObj() + :extent(128),size(0) + { buffer = (char *)malloc(extent); + cursor = buffer + size; + } + // this is for an arbitrary buffer; we specify the size explicitly + // if buf_len == 0, then we'll be unmarshaling + inline MarshaledObj(void *buf, int buf_len = 0) + :extent(ROUND_UP(buf_len+sizeof(int))), + size(ROUND_UP(buf_len+sizeof(buf_len))) + { if ( buf_len <= 0 ) { + extent = size = 0; // IMPLIES: IsUnmarshaling() => true + buffer = (char *)buf; + cursor = buffer; + } else { + buffer = (char *)malloc(extent); + *(int *)buffer = buf_len; + memcpy( buffer+sizeof(int), (char *)buf, extent ); + cursor = buffer + size; + } + } + inline ~MarshaledObj() + { if ( ! IsUnmarshaling() ) + free(buffer); + } + + inline bool IsUnmarshaling() { return (extent <= 0); } + + private: + // Don't use copy constructor + const MarshaledObj& operator=(const MarshaledObj& right); + + protected: + char *buffer; /* First entry is size of buffer */ + private: + int extent; /* extent is number of bytes allocated, extent >= size */ + int size; /* Initially, buffer has entry for size */ + char *cursor; + + inline void ResizeBuffer( size_t new_size ) + { int displacement = cursor - buffer; + extent = new_size; + buffer = (char *)realloc( buffer, extent ); + cursor = buffer + displacement; + } + + public: + inline int BufferSize() + { return cursor - buffer; } + inline void *GetBuffer() { + return buffer; + } + // inline void SetNewBuffer(void *buf) { + // free(buffer); + // buffer = (char *)buf; + // size = 0; /* unknown size */ + // cursor = buffer; + // } + +#define MarshalDefinition(TYPE) \ + inline void Marshal(TYPE a##TYPE) { \ + if (IsUnmarshaling()) \ + throw "Tried to marshal in object marked isUnmarshaling = true"; \ + size += ROUND_UP(sizeof(a##TYPE)); \ + while ( size > extent ) \ + ResizeBuffer( 2 * extent ); \ + *(TYPE *)cursor = a##TYPE; \ + cursor = buffer + size; \ + } \ + inline void Unmarshal(TYPE & a##TYPE) { \ + a##TYPE = *(TYPE *)cursor; \ + cursor += ROUND_UP(sizeof(a##TYPE)); \ + } \ + inline TYPE UnmarshalAs##TYPE() { \ + TYPE a##TYPE = *(TYPE *)cursor; \ + cursor += ROUND_UP(sizeof(a##TYPE)); \ + return a##TYPE; \ + } + +// This works for any inline objects (no embedded pointers) +MarshalDefinition(G4int) +MarshalDefinition(G4double) +MarshalDefinition(G4ThreeVector) +// MarshalDefinition(int) +// MarshalDefinition(double) + + +// These cannot follow the pattern, since the data is not inline. + inline void MarshalG4String(G4String& aG4String) { + if (IsUnmarshaling()) + throw "Tried to marshal in object marked isUnmarshaling = true"; + size += ROUND_UP( aG4String.length() + 1 ); // 1 for final NULL char + while ( size > extent ) + ResizeBuffer( 2 * extent ); + strcpy( (char *)cursor, aG4String ); + cursor = buffer + size; + } + inline void Marshal(G4String& aG4String) + { MarshalG4String( aG4String ); } + inline void Unmarshal(G4String& aG4String) { + aG4String = (char *)cursor; + cursor += ROUND_UP( aG4String.length() + 1 ); // 1 for final NULL char + } + // INEFFICIENT? (copies return value) + inline G4String UnmarshalAsG4String() { + G4String aG4String = (char *)cursor; + cursor += ROUND_UP( aG4String.length() + 1 ); // 1 for final NULL char + return aG4String; + } + +// USAGE: MarshalObjPtr( &aG4obj, sizeof(aG4obj) ); +// USAGE: MarshaledObj tmp; +// G4Obj *aObjPtr = tmp.UnmarshalObjPtr(); +// ... +// delete aObjPtr; + inline void MarshalObjPtr(const void * aObjPtr, int obj_size) + { + if (IsUnmarshaling()) + throw "Tried to marshal in object marked isUnmarshaling = true"; + size += ROUND_UP( obj_size + sizeof(int) ); + while ( size > extent ) + ResizeBuffer( 2 * extent ); + *(int *)cursor = obj_size; + memcpy( cursor+sizeof(int), aObjPtr, obj_size ); + cursor = buffer + size; + } + inline void Marshal(const void * aObjPtr, int obj_size) + { MarshalObjPtr(aObjPtr,obj_size); } + inline void Unmarshal(void * & aObjPtr) + { + int obj_size = *(int *)cursor; + aObjPtr = malloc( obj_size ); + memcpy( aObjPtr, cursor+sizeof(int), obj_size ); + cursor += ROUND_UP( obj_size + sizeof(int) ); + } + inline void * UnmarshalAsObjPtr() + { + void *aObjPtr; + Unmarshal(aObjPtr); + return aObjPtr; + } + inline void * UnmarshalAsSharedObjPtr() + { + int obj_size = *(int *)cursor; + void *aObjPtr; + aObjPtr = cursor+sizeof(int); + cursor += ROUND_UP( obj_size + sizeof(int) ); + return aObjPtr; + } + // UnmarshalAsSharedObjPtr: return value points into buffer of curr. obj. + + inline void MarshalMarshaledObj(MarshaledObj& aMarshaledObj) { + if (IsUnmarshaling()) + throw "Tried to marshal in object marked isUnmarshaling = true"; + MarshalObjPtr( aMarshaledObj.GetBuffer(), aMarshaledObj.BufferSize() ); + } + // INEFFICIENT? (copies return value) + inline MarshaledObj UnmarshalAsMarshaledObj() { + MarshaledObj aMarshaledObj( ((char *)cursor)+sizeof(int), *(int *)cursor ); + cursor += ROUND_UP( aMarshaledObj.BufferSize()+sizeof(int) ); + return aMarshaledObj; + } +}; + +class MarshaledHCofThisEvent : public MarshaledObj +{ + public: + inline MarshaledHCofThisEvent(int size) : MarshaledObj(size) { } + // Trivial constructor. MarshaledHCofThisEvent(0) creates nothing. + MarshaledHCofThisEvent(); + // Constructor copies hits from HCE of master in this marshaled object + MarshaledHCofThisEvent(G4Event *anEvent); + // Constructor copies hits from HCE of anEvent in this marshaled object + inline MarshaledHCofThisEvent(void *buf) + : MarshaledObj(buf) // Object will be set for IsUnmarshaling + { } + + void UnmarshalSlaveHCofThisEvent(); + // Unmarshal copies hits from slave in HCE of master + // We inherit destructor of ParMarshaledObj + // It does so by calling UnmarshalSlaveHitsCollection for dispatching + void UnmarshalSlaveHitsCollection(G4String & HCname, G4String & SDname); + + void MarshalHitsCollection(G4VHitsCollection * aBaseHC, G4String HCname); + // To be defined in ParExN02MarshaledHits.cc or other + // application-specific file. + + private: + // Don't use copy constructor + const MarshaledHCofThisEvent& operator=(const MarshaledHCofThisEvent& right); + void MarshalHitsCollection(const G4Event *anEvent); +}; + +/* +main() { + MarshaledObj tmp = MarshaledObj(); + tmp.Marshal(5); + tmp.Marshal(5.3); + tmp.Marshal(7); + + MarshaledObj tmp2; + tmp2.MarshalMarshaledObj(tmp); + cout << tmp2.UnmarshalAsG4int() << "\n"; + cout << tmp2.UnmarshalAsG4double() << "\n"; + cout << tmp2.UnmarshalAsG4int() << "\n"; +} +*/ + +#endif diff --git a/examples/extended/parallel/ParN02/include/ParRandomState.hh b/examples/extended/parallel/ParN02/include/ParRandomState.hh new file mode 100644 index 0000000000..10669f5820 --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ParRandomState.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: ParRandomState.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- +// Each of the three members below must be modified for the application. +// This default version simply sets the random seed on the slave using +// the eventID. +// -------------------------------------------------------------------- + +#ifndef ParMarshaledRandomState_h +#define ParMarshaledRandomState_h 1 + +#include "ParMarshaledObj.hh" + +class ParMarshaledRandomState : public MarshaledObj +{ + public: + // If 0, GetNextRandomStateForSlave not called. + static const int RANDOM_STATE_SIZE = sizeof(long); + + // Called on master + inline void *GetNextRandomStateForSlave() + { static long * nextSeed = new long; + *nextSeed = (long) (100000000L * HepRandom::getTheGenerator()->flat()); +#ifdef TOPC_DEBUG + G4cout << "GET SEED: " << *nextSeed << G4endl; +#endif + return nextSeed; + } + + // Called on slave at beginning of new event. + inline void SetNextRandomStateForSlave( G4int eventID, void *randomState ) + { HepRandom::setTheSeed( *(long *)randomState ); +#ifdef TOPC_DEBUG + G4cout << "SET SEED: " << *(long *)randomState << G4endl; +#endif + } + + public: + // The constructors do not need to be modified. + inline ParMarshaledRandomState( G4int eventID ) + : MarshaledObj(RANDOM_STATE_SIZE+sizeof(int)+sizeof(G4int)) + { Marshal(eventID); + Marshal( GetNextRandomStateForSlave(), RANDOM_STATE_SIZE ); + } + inline ParMarshaledRandomState( void *buf ) + : MarshaledObj(buf) + // MarshaledObj() called with buf and 0 size, creates object for unmarshaling + { } + + inline void unmarshalEventIDandSetState( G4int & eventID ) + { Unmarshal(eventID); + // SharedObjPtr is pointer to random state. + SetNextRandomStateForSlave( eventID, UnmarshalAsSharedObjPtr() ); + } +}; + +#endif + diff --git a/examples/extended/parallel/ParN02/include/ParRunManager.hh b/examples/extended/parallel/ParN02/include/ParRunManager.hh new file mode 100644 index 0000000000..f651f6c07f --- /dev/null +++ b/examples/extended/parallel/ParN02/include/ParRunManager.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: ParRunManager.hh,v 1.2 2002/06/06 17:05:02 cooperma Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifndef ParRunManager_h +#define ParRunManager_h 1 + +#include "G4RunManager.hh" +#include "G4StateManager.hh" +#include "G4UserEventAction.hh" +#include "topc.h" + +class ParRunManager : public G4RunManager +{ + + protected: + virtual void DoEventLoop(G4int n_event, + const char* macroFile=0, + G4int n_select=-1); + + private: // TOP-C callbacks + TOPC_BUF GenerateEventInput(); + TOPC_BUF DoEvent( void * input_buf ); + TOPC_ACTION CheckEventResult( void * input_buf, void * ignore ); + + static ParRunManager* myRunManager; + static TOPC_BUF MyGenerateEventInput(); + static TOPC_BUF MyDoEvent( void * input_buf ); + static TOPC_ACTION MyCheckEventResult( void * input_buf, void * ignore ); + + // Copies of local variables of G4RunManager::DoEventLoop() + static G4StateManager* stateManager; + static G4int n_event; + static G4int n_select; + static G4String msg; + + G4int i_event; // Used in lieu of i_event in RunManager::DoEventLoop() + + inline void ImportDoEventLoopLocals( + G4StateManager* stateManager, G4int n_event, + G4int n_select, G4String msg ) + { + ParRunManager::stateManager = stateManager; + ParRunManager::n_event = n_event; + ParRunManager::n_select = n_select; + ParRunManager::msg = msg; + ParRunManager::myRunManager = this; + } + + // Copy of userEventAction: see ParRunManager.cc for further comments + G4UserEventAction * origUserEventAction; + +}; + +#endif diff --git a/examples/extended/parallel/ParN02/initInter.mac b/examples/extended/parallel/ParN02/initInter.mac new file mode 100644 index 0000000000..b90e11e221 --- /dev/null +++ b/examples/extended/parallel/ParN02/initInter.mac @@ -0,0 +1,29 @@ +# +# Macro file for the initialization phase of "ParN02.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/camera/zoom 1.4 +/vis/camera/viewpoint 90 180 +/vis/drawVolume +# +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories diff --git a/examples/extended/parallel/ParN02/procgroup b/examples/extended/parallel/ParN02/procgroup new file mode 100644 index 0000000000..0b71db78de --- /dev/null +++ b/examples/extended/parallel/ParN02/procgroup @@ -0,0 +1,62 @@ +# NOTE: '#' in column 0 is a comment. + +local 0 +localhost 1 - >slave1.out +localhost 1 - >slave2.out + +# lxplus015.cern.ch 1 - >slave1.out +# lxplus016.cern.ch 1 - >slave2.out +# xplus017.cern.ch 1 - >slave2.out + +# The general format is that "local 0" (required) implies creation of a master. +# Otherwise there is one line per slave. +# The first field is the hostname or localhost (in a form valid for "rsh") +# If you prefer ssh over rsh, then (e.g. in csh): setenv RSH ssh +# The second field, 1, is obligatory. +# The third field is an absolute or relative pathname (e.g.: ./XXX or ../XXX) +# of the binary. A relative pathname is appended to path of the binary +# on master. The slave process will execute in the same directory +# as the current working directory of the master, if possible. +# Otherwise, the slave will execute in the home directory. +# If the third field is `-', then the command line (including arguments) +# for that slave will be the same as on the master. +# Any additional fields (fourth and beyond) are appended to the +# command line for that slave only. +# Note that '>slave1.out' works, redirecting standard output. However, +# the output file, slave1.out, will be placed in the home directory. +# Currently, `localhost' implies the Bourne shell, and any other +# name implies the default user shell for that machine. +# By default, standard output and error are sent to user tty (a la rsh). +# +# The format is inherited from MPICH, which grew from P4. + +#========================================================================= +#EXAMPLE: +# # Master process +# local 0 +# # One slave process on local computer, using same binary and same arguments +# localhost 1 - +# # One remote slave process, with absolute path to binary and no arguments +# regulus.ccs.neu.edu 1 /ccs/tmp/gene/a.out +# # One slave using alpha architecture, +# # with path of alpha binary relative to binary of this master process. +# # Output placed in slave-alpha-1.out in user's home directory. +# alpha.ccs.neu.edu 1 ../alpha/a.out > slave-alpha-1.out + +#========================================================================= +#IF YOU HAVE PROBLEMS: +# MPINU uses "rsh" to start a slave process. Diagnose it via: +# rsh REMOTE_SLAVE_HOST hostname +# If it doesn't work or if it asks you for a password, try: +# 1. Add a .rhosts file on the remote host and specify your local host. +# 2. Sometimes adding .localhost to your .rhosts helps. +# 3. Specify an alternative to "rsh" in your shell. For example: +# RSH=ssh; export RSH # in Bourne shell, bash, etc. +# setenv RSH ssh # in csh, tcsh, etc. +# 4. If you use "ssh", you may also need to copy keys to allow +# login to the remote host without a password. +# It's also possible that mpinu guessed badly the hostname of your local host. +# If you suspect this, on the master try (in csh, tcsh): +# setenv CALLBACK_HOST LOCAL_MASTER_HOST +# where LOCAL_MASTER_HOST is the correct hostname of the local master. + diff --git a/examples/extended/parallel/ParN02/procgroup.cern b/examples/extended/parallel/ParN02/procgroup.cern new file mode 100644 index 0000000000..1e2daf0389 --- /dev/null +++ b/examples/extended/parallel/ParN02/procgroup.cern @@ -0,0 +1,71 @@ +# This procgroup file is designed for the lxplus cluster at CERN. +# It assumes that 50 slaves, lxplus002 to lxplus051, are all available via +# rsh without a password (assuming the master process is on lxplus001. +# The 50 slave files are placed in your home directory +# (and in the next version, in your current directory). +# Make sure that your run-time files are all in afs directories +# so that the files are also visible to slaves. +# Remember that other users may be using this cluster. +# Use this only for a short demonstration. + +# When running, consider adding --TOPC-num-slaves=10 +# or something similarly moderate at first. +# There can be long delays in starting many slaves at once. + +local 0 +lxplus001 1 - > slave001.out +lxplus002 1 - > slave002.out +lxplus003 1 - > slave003.out +lxplus004 1 - > slave004.out +lxplus005 1 - > slave005.out +lxplus006 1 - > slave006.out +lxplus007 1 - > slave007.out +lxplus008 1 - > slave008.out +lxplus009 1 - > slave009.out +lxplus011 1 - > slave011.out +lxplus012 1 - > slave012.out +lxplus013 1 - > slave013.out +lxplus014 1 - > slave014.out +lxplus015 1 - > slave015.out +lxplus016 1 - > slave016.out +lxplus017 1 - > slave017.out +lxplus018 1 - > slave018.out +lxplus019 1 - > slave019.out +lxplus021 1 - > slave021.out +lxplus022 1 - > slave022.out +lxplus023 1 - > slave023.out +lxplus024 1 - > slave024.out +lxplus025 1 - > slave025.out +lxplus026 1 - > slave026.out +lxplus027 1 - > slave027.out +lxplus028 1 - > slave028.out +lxplus029 1 - > slave029.out +lxplus031 1 - > slave031.out +lxplus032 1 - > slave032.out +lxplus033 1 - > slave033.out +lxplus034 1 - > slave034.out +lxplus035 1 - > slave035.out +lxplus036 1 - > slave036.out +lxplus037 1 - > slave037.out +lxplus038 1 - > slave038.out +lxplus039 1 - > slave039.out +lxplus041 1 - > slave041.out +lxplus042 1 - > slave042.out +lxplus043 1 - > slave043.out +lxplus044 1 - > slave044.out +lxplus045 1 - > slave045.out +lxplus046 1 - > slave046.out +lxplus047 1 - > slave047.out +lxplus048 1 - > slave048.out +lxplus049 1 - > slave049.out +lxplus041 1 - > slave041.out +lxplus042 1 - > slave042.out +lxplus043 1 - > slave043.out +lxplus044 1 - > slave044.out +lxplus045 1 - > slave045.out +lxplus046 1 - > slave046.out +lxplus047 1 - > slave047.out +lxplus048 1 - > slave048.out +lxplus049 1 - > slave049.out +lxplus050 1 - > slave050.out +lxplus051 1 - > slave051.out diff --git a/examples/extended/parallel/ParN02/run1.mac b/examples/extended/parallel/ParN02/run1.mac new file mode 100644 index 0000000000..1a0d277e1c --- /dev/null +++ b/examples/extended/parallel/ParN02/run1.mac @@ -0,0 +1,23 @@ +# $Id: run1.mac,v 1.1 2002/03/05 15:21:54 gcosmo Exp $ +# +# Macro file for "ParN02.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run1.mac +# +/run/verbose 2 +/event/verbose 0 +# +# proton 3 GeV to the direction (0.,0.,1.) (default kinematic) +# 1 event with detailled printing +# +/tracking/verbose 1 +/run/beamOn 1 +# +# muon 300 MeV to the direction (0.,0.,1.) +# 3 events (no printing) +# +/gun/particle mu- +/gun/energy 300 MeV +/tracking/verbose 0 +/run/beamOn 3 diff --git a/examples/extended/parallel/ParN02/run2.mac b/examples/extended/parallel/ParN02/run2.mac new file mode 100644 index 0000000000..31732b78ba --- /dev/null +++ b/examples/extended/parallel/ParN02/run2.mac @@ -0,0 +1,23 @@ +# $Id: run2.mac,v 1.1 2002/03/05 15:21:54 gcosmo Exp $ +# +# Macro file for "ParN02.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run2.mac +# +/run/verbose 2 +/event/verbose 0 +# +# proton 3 GeV to the direction (0.,0.,1.) (default kinematic) +# 1 event with detailled printing +# +/tracking/verbose 1 +/run/beamOn 1 +# +# set a magnetic field +# 1 events; print the hits +# +/mydet/setField 2 tesla +/tracking/verbose 0 +/hits/verbose 1 +/run/beamOn 1 diff --git a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc new file mode 100644 index 0000000000..2d3eed596a --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.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. * +// ******************************************************************** +// +// +// $Id: ExN02ChamberParameterisation.cc,v 1.1 2002/03/05 15:21:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02ChamberParameterisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Box.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02ChamberParameterisation::ExN02ChamberParameterisation( + G4int NoChambers, + G4double startZ, // Z of center of first + G4double spacingZ, // Z spacing of centers + G4double widthChamber, + G4double lengthInitial, + G4double lengthFinal ) +{ + fNoChambers = NoChambers; + fStartZ = startZ; + fHalfWidth = widthChamber*0.5; + fSpacing = spacingZ; + fHalfLengthFirst = 0.5 * lengthInitial; + // fHalfLengthLast = lengthFinal; + if( NoChambers > 0 ){ + fHalfLengthIncr = 0.5 * (lengthFinal-lengthInitial)/NoChambers; + if (spacingZ < widthChamber) { + G4Exception("ExN02ChamberParameterisation construction: Width>Spacing"); + } + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02ChamberParameterisation::~ExN02ChamberParameterisation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02ChamberParameterisation::ComputeTransformation +(const G4int copyNo, G4VPhysicalVolume* physVol) const +{ + G4double Zposition= fStartZ + (copyNo+1) * fSpacing; + G4ThreeVector origin(0,0,Zposition); + physVol->SetTranslation(origin); + physVol->SetRotation(0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02ChamberParameterisation::ComputeDimensions +(G4Box& trackerChamber, const G4int copyNo, + const G4VPhysicalVolume* physVol) const +{ + G4double halfLength= fHalfLengthFirst + copyNo * fHalfLengthIncr; + trackerChamber.SetXHalfLength(halfLength); + trackerChamber.SetYHalfLength(halfLength); + trackerChamber.SetZHalfLength(fHalfWidth); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc new file mode 100644 index 0000000000..4e4e34e8ab --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.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. * +// ******************************************************************** +// +// +// $Id: ExN02DetectorConstruction.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02DetectorConstruction.hh" +#include "ExN02DetectorMessenger.hh" +#include "ExN02ChamberParameterisation.hh" +#include "ExN02MagneticField.hh" +#include "ExN02TrackerSD.hh" + +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVParameterised.hh" +#include "G4SDManager.hh" + +#include "G4UserLimits.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02DetectorConstruction::ExN02DetectorConstruction() +:solidWorld(0), logicWorld(0), physiWorld(0), + solidTarget(0), logicTarget(0), physiTarget(0), + solidTracker(0),logicTracker(0),physiTracker(0), + solidChamber(0),logicChamber(0),physiChamber(0), + TargetMater(0), ChamberMater(0),fpMagField(0), + fWorldLength(0.), fTargetLength(0.), fTrackerLength(0.), + NbOfChambers(0) , ChamberWidth(0.), ChamberSpacing(0.) +{ + fpMagField = new ExN02MagneticField(); + detectorMessenger = new ExN02DetectorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02DetectorConstruction::~ExN02DetectorConstruction() +{ + delete fpMagField; + delete detectorMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* ExN02DetectorConstruction::Construct() +{ +//--------- Material definition --------- + + G4double a, iz, z, density; + G4String name, symbol; + G4double temperature, pressure; + G4int nel; + + //Air + 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); + density = 1.29*mg/cm3; + G4Material* Air = new G4Material(name="Air", density, nel=2); + Air->AddElement(elN, .7); + Air->AddElement(elO, .3); + + //Pb + a = 207.19*g/mole; + density = 11.35*g/cm3; + G4Material* Pb = new G4Material(name="Pb", z=82., a, density); + + //Xenon gas + density = 5.458*mg/cm3; + pressure = 1*atmosphere; + temperature = 293.15*kelvin; + G4Material* Xenon = new G4Material(name="XenonGas", z=54., a=131.29*g/mole, + density, kStateGas,temperature,pressure); + + // Print all the materials defined. + // + G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + +//--------- Sizes of the principal geometrical components (solids) --------- + + NbOfChambers = 5; + ChamberWidth = 20*cm; + ChamberSpacing = 80*cm; + + fTrackerLength = (NbOfChambers+1)*ChamberSpacing; // Full length of Tracker + fTargetLength = 5.0 * cm; // Full length of Target + + TargetMater = Pb; + ChamberMater = Xenon; + + fWorldLength= 1.2 *(fTargetLength+fTrackerLength); + + G4double targetSize = 0.5*fTargetLength; // Half length of the Target + G4double trackerSize = 0.5*fTrackerLength; // Half length of the Tracker + +//--------- Definitions of Solids, Logical Volumes, Physical Volumes --------- + + //------------------------------ + // World + //------------------------------ + + G4double HalfWorldLength = 0.5*fWorldLength; + + solidWorld= new G4Box("world",HalfWorldLength,HalfWorldLength,HalfWorldLength); + logicWorld= new G4LogicalVolume( solidWorld, Air, "World", 0, 0, 0); + + // Must place the World Physical volume unrotated at (0,0,0). + // + 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 operations + 0); // no field specific to volume + + //------------------------------ + // Target + //------------------------------ + + G4ThreeVector positionTarget = G4ThreeVector(0,0,-(targetSize+trackerSize)); + + solidTarget = new G4Box("target",targetSize,targetSize,targetSize); + logicTarget = new G4LogicalVolume(solidTarget,TargetMater,"Target",0,0,0); + physiTarget = new G4PVPlacement(0, // no rotation + positionTarget, // at (x,y,z) + "Target", // its name + logicTarget, // its logical volume + physiWorld, // its mother volume + false, // no boolean operations + 0); // no particular field + + G4cout << "Target is " << fTargetLength/cm << " cm of " + << TargetMater->GetName() << G4endl; + + //------------------------------ + // Tracker + //------------------------------ + + G4ThreeVector positionTracker = G4ThreeVector(0,0,0); + + solidTracker = new G4Box("tracker",trackerSize,trackerSize,trackerSize); + logicTracker = new G4LogicalVolume(solidTracker , Air, "Tracker",0,0,0); + physiTracker = new G4PVPlacement(0, // no rotation + positionTracker, // at (x,y,z) + "Tracker", // its name + logicTracker, // its logical volume + physiWorld, // its mother volume + false, // no boolean operations + 0); // no particular field + + //------------------------------ + // Tracker segments + //------------------------------ + // + // An example of Parameterised volumes + // dummy values for G4Box -- modified by parameterised volume + + solidChamber = new G4Box("chamber", 100*cm, 100*cm, 10*cm); + logicChamber = new G4LogicalVolume(solidChamber,ChamberMater,"Chamber",0,0,0); + + G4double firstPosition = -trackerSize + 0.5*ChamberWidth; + G4double firstLength = fTrackerLength/10; + G4double lastLength = fTrackerLength; + + G4VPVParameterisation* chamberParam = new ExN02ChamberParameterisation( + NbOfChambers, // NoChambers + firstPosition, // Z of center of first + ChamberSpacing, // Z spacing of centers + ChamberWidth, // Width Chamber + firstLength, // lengthInitial + lastLength); // lengthFinal + + // dummy value : kZAxis -- modified by parameterised volume + // + physiChamber = new G4PVParameterised( + "Chamber", // their name + logicChamber, // their logical volume + physiTracker, // Mother physical volume + kZAxis, // Are placed along this axis + NbOfChambers, // Number of chambers + chamberParam); // The parametrisation + + G4cout << "There are " << NbOfChambers << " chambers in the tracker region. " + << "The chambers are " << ChamberWidth/mm << " mm of " + << ChamberMater->GetName() << "\n The distance between chamber is " + << ChamberSpacing/cm << " cm" << G4endl; + + //------------------------------------------------ + // Sensitive detectors + //------------------------------------------------ + + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + G4String trackerChamberSDname = "ExN02/TrackerChamberSD"; + ExN02TrackerSD* aTrackerSD = new ExN02TrackerSD( trackerChamberSDname ); + SDman->AddNewDetector( aTrackerSD ); + logicChamber->SetSensitiveDetector( aTrackerSD ); + +//--------- Visualization attributes ------------------------------- + + G4VisAttributes* BoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + logicWorld ->SetVisAttributes(BoxVisAtt); + logicTarget ->SetVisAttributes(BoxVisAtt); + logicTracker->SetVisAttributes(BoxVisAtt); + + G4VisAttributes* ChamberVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + logicChamber->SetVisAttributes(ChamberVisAtt); + +//--------- example of User Limits ------------------------------- + + // below is an example of how to set tracking constraints in a given + // logical volume(see also in N02PhysicsList how to setup the process + // G4UserSpecialCuts). + // Sets a max Step length in the tracker region + // G4double maxStep = 0.5*ChamberWidth, maxLength = 2*fTrackerLength; + // G4double maxTime = 0.1*ns, minEkin = 10*MeV; + // logicTracker->SetUserLimits(new G4UserLimits(maxStep,maxLength,maxTime, + // minEkin)); + + return physiWorld; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02DetectorConstruction::setTargetMaterial(G4String materialName) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialName); + if (pttoMaterial) + {TargetMater = pttoMaterial; + logicTarget->SetMaterial(pttoMaterial); + G4cout << "\n----> The target is " << fTargetLength/cm << " cm of " + << materialName << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02DetectorConstruction::setChamberMaterial(G4String materialName) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialName); + if (pttoMaterial) + {ChamberMater = pttoMaterial; + logicChamber->SetMaterial(pttoMaterial); + G4cout << "\n----> The chambers are " << ChamberWidth/cm << " cm of " + << materialName << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02DetectorConstruction::SetMagField(G4double fieldValue) +{ + fpMagField->SetFieldValue(fieldValue); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc new file mode 100644 index 0000000000..a762444b60 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN02DetectorMessenger.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02DetectorMessenger.hh" + +#include "ExN02DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02DetectorMessenger::ExN02DetectorMessenger(ExN02DetectorConstruction* myDet) +:myDetector(myDet) +{ + + mydetDir = new G4UIdirectory("/mydet/"); + mydetDir->SetGuidance("ExN02 detector control."); + + TargMatCmd = new G4UIcmdWithAString("/mydet/setTargetMate",this); + TargMatCmd->SetGuidance("Select Material of the Target."); + TargMatCmd->SetParameterName("choice",false); + TargMatCmd->AvailableForStates(PreInit,Idle); + + ChamMatCmd = new G4UIcmdWithAString("/mydet/setChamberMate",this); + ChamMatCmd->SetGuidance("Select Material of the Target."); + ChamMatCmd->SetParameterName("choice",false); + ChamMatCmd->AvailableForStates(PreInit,Idle); + + FieldCmd = new G4UIcmdWithADoubleAndUnit("/mydet/setField",this); + FieldCmd->SetGuidance("Define magnetic field."); + FieldCmd->SetGuidance("Magnetic field will be in X direction."); + FieldCmd->SetParameterName("Bx",false); + FieldCmd->SetDefaultUnit("tesla"); + FieldCmd->SetUnitCategory("Magnetic flux density"); + FieldCmd->AvailableForStates(PreInit,Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02DetectorMessenger::~ExN02DetectorMessenger() +{ + delete TargMatCmd; + delete ChamMatCmd; + delete FieldCmd; + delete mydetDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == TargMatCmd ) + { myDetector->setTargetMaterial(newValue);} + + if( command == ChamMatCmd ) + { myDetector->setChamberMaterial(newValue);} + + if( command == FieldCmd ) + { myDetector->SetMagField(FieldCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02EventAction.cc b/examples/extended/parallel/ParN02/src/ExN02EventAction.cc new file mode 100644 index 0000000000..4475905875 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02EventAction.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: ExN02EventAction.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02EventAction.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02EventAction::ExN02EventAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02EventAction::~ExN02EventAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02EventAction::BeginOfEventAction(const G4Event*) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02EventAction::EndOfEventAction(const G4Event* evt) +{ + G4int event_id = evt->GetEventID(); + + // get number of stored trajectories + // + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + + // periodic printing + // + if (event_id < 100 || event_id%100 == 0) { + G4cout << ">>> Event " << evt->GetEventID() << G4endl; + G4cout << " " << n_trajectories + << " trajectories stored in this event." << G4endl; + } + + // extract the trajectories and draw them + // + if (G4VVisManager::GetConcreteInstance()) + { + for (G4int i=0; iGetTrajectoryContainer()))[i]); + trj->DrawTrajectory(50); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc b/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc new file mode 100644 index 0000000000..79739eeb7c --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02MagneticField.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: ExN02MagneticField.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// User Field class implementation. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02MagneticField.hh" +#include "G4FieldManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02MagneticField::ExN02MagneticField() + : G4UniformMagField(G4ThreeVector()) +{ + GetGlobalFieldManager()->SetDetectorField(this); + GetGlobalFieldManager()->CreateChordFinder(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02MagneticField::ExN02MagneticField(G4ThreeVector fieldVector) + : G4UniformMagField(fieldVector) +{ + GetGlobalFieldManager()->SetDetectorField(this); + GetGlobalFieldManager()->CreateChordFinder(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Set the value of the Global Field to fieldValue along X +// +void ExN02MagneticField::SetFieldValue(G4double fieldValue) +{ + G4UniformMagField::SetFieldValue(G4ThreeVector(fieldValue,0,0)); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Set the value of the Global Field +// +void ExN02MagneticField::SetFieldValue(G4ThreeVector fieldVector) +{ + // Find the Field Manager for the global field + G4FieldManager* fieldMgr= GetGlobalFieldManager(); + + if(fieldVector!=G4ThreeVector(0.,0.,0.)) + { + G4UniformMagField::SetFieldValue(fieldVector); + fieldMgr->SetDetectorField(this); + } else { + // If the new field's value is Zero, then it is best to + // insure that it is not used for propagation. + G4MagneticField* magField = NULL; + fieldMgr->SetDetectorField(magField); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02MagneticField::~ExN02MagneticField() +{ + // GetGlobalFieldManager()->SetDetectorField(0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4TransportationManager.hh" + +G4FieldManager* ExN02MagneticField::GetGlobalFieldManager() +{ + return G4TransportationManager::GetTransportationManager()->GetFieldManager(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc new file mode 100644 index 0000000000..6edaf22bfe --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc @@ -0,0 +1,310 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN02PhysicsList.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "globals.hh" +#include "ExN02PhysicsList.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" +#include "g4std/iomanip" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02PhysicsList::ExN02PhysicsList(): G4VUserPhysicsList() +{ + defaultCutValue = 1.0*cm; + SetVerboseLevel(1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02PhysicsList::~ExN02PhysicsList() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02PhysicsList::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 ExN02PhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02PhysicsList::ConstructLeptons() +{ + // leptons + // e+/- + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + // mu+/- + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + // nu_e + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + // nu_mu + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02PhysicsList::ConstructMesons() +{ + // mesons + // light 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 ExN02PhysicsList::ConstructBaryons() +{ + // barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02PhysicsList::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" + +#include "G4UserSpecialCuts.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02PhysicsList::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(); + ////G4VProcess* theUserCuts = new G4UserSpecialCuts(); + + // + // add processes + pmanager->AddProcess(anIonisation); + pmanager->AddProcess(aMultipleScattering); + ////pmanager->AddProcess(theUserCuts); + + // + // 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(theUserCuts, idxPostStep,3); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4Decay.hh" +void ExN02PhysicsList::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 ExN02PhysicsList::SetCuts() +{ + //G4VUserPhysicsList::SetCutsWithDefault method sets + //the default cut value for all particle types + // + SetCutsWithDefault(); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc b/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..840fae548b --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.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: ExN02PrimaryGeneratorAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02PrimaryGeneratorAction.hh" +#include "ExN02DetectorConstruction.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02PrimaryGeneratorAction::ExN02PrimaryGeneratorAction( + ExN02DetectorConstruction* myDC) +:myDetector(myDC) +{ + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + +// default particle + + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* particle = particleTable->FindParticle("proton"); + + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); + particleGun->SetParticleEnergy(3.0*GeV); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02PrimaryGeneratorAction::~ExN02PrimaryGeneratorAction() +{ + delete particleGun; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + G4double position = -0.5*(myDetector->GetWorldFullLength()); + particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); + + particleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/parallel/ParN02/src/ExN02RunAction.cc b/examples/extended/parallel/ParN02/src/ExN02RunAction.cc new file mode 100644 index 0000000000..422faf9339 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02RunAction.cc @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN02RunAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02RunAction.hh" + +#include "G4Run.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02RunAction::ExN02RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02RunAction::~ExN02RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02RunAction::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 ExN02RunAction::EndOfRunAction(const G4Run*) +{ + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + + diff --git a/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc b/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc new file mode 100644 index 0000000000..40fafc9911 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02SteppingAction.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: ExN02SteppingAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02SteppingAction.hh" +#include "G4SteppingManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02SteppingAction::ExN02SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02SteppingAction::UserSteppingAction(const G4Step*) +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc b/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc new file mode 100644 index 0000000000..35134bd625 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.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: ExN02SteppingVerbose.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02SteppingVerbose::ExN02SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02SteppingVerbose::~ExN02SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02SteppingVerbose::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 ExN02SteppingVerbose::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/parallel/ParN02/src/ExN02TrackerHit.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc new file mode 100644 index 0000000000..c74183f000 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc @@ -0,0 +1,102 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN02TrackerHit.cc,v 1.1 2002/03/05 15:22:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02TrackerHit.hh" +#include "G4UnitsTable.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" + +G4Allocator ExN02TrackerHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02TrackerHit::ExN02TrackerHit() {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02TrackerHit::~ExN02TrackerHit() {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02TrackerHit::ExN02TrackerHit(const ExN02TrackerHit& right) +{ + trackID = right.trackID; + chamberNb = right.chamberNb; + edep = right.edep; + pos = right.pos; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +const ExN02TrackerHit& ExN02TrackerHit::operator=(const ExN02TrackerHit& right) +{ + trackID = right.trackID; + chamberNb = right.chamberNb; + edep = right.edep; + pos = right.pos; + return *this; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int ExN02TrackerHit::operator==(const ExN02TrackerHit& right) const +{ + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02TrackerHit::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); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02TrackerHit::Print() +{ + G4cout << " trackID: " << trackID << " chamberNb: " << chamberNb + << " energy deposit: " << G4BestUnit(edep,"Energy") + << " position: " << G4BestUnit(pos,"Length") << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc new file mode 100644 index 0000000000..4bf1d227f4 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc @@ -0,0 +1,97 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN02TrackerSD.cc,v 1.1 2002/03/05 15:22:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN02TrackerSD.hh" +#include "G4HCofThisEvent.hh" +#include "G4Step.hh" +#include "G4ThreeVector.hh" +#include "G4SDManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02TrackerSD::ExN02TrackerSD(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="trackerCollection"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN02TrackerSD::~ExN02TrackerSD(){ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02TrackerSD::Initialize(G4HCofThisEvent* HCE) +{ + trackerCollection = new ExN02TrackerHitsCollection + (SensitiveDetectorName,collectionName[0]); + static G4int HCID = -1; + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } + HCE->AddHitsCollection( HCID, trackerCollection ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool ExN02TrackerSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + + if(edep==0.) return false; + + ExN02TrackerHit* newHit = new ExN02TrackerHit(); + newHit->SetTrackID (aStep->GetTrack()->GetTrackID()); + newHit->SetChamberNb(aStep->GetPreStepPoint()->GetTouchable() + ->GetReplicaNumber()); + newHit->SetEdep (edep); + newHit->SetPos (aStep->GetPostStepPoint()->GetPosition()); + trackerCollection->insert( newHit ); + + //newHit->Print(); + //newHit->Draw(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02TrackerSD::EndOfEvent(G4HCofThisEvent* HCE) +{ + if (verboseLevel>0) { + G4int NbHits = trackerCollection->entries(); + G4cout << "\n-------->Hits Collection: in this event they are " << NbHits + << " hits in the tracker chambers: " << G4endl; + for (G4int i=0;iPrint(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/parallel/ParN02/src/ExN02VisManager.cc b/examples/extended/parallel/ParN02/src/ExN02VisManager.cc new file mode 100644 index 0000000000..bf2010a06b --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ExN02VisManager.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: ExN02VisManager.cc,v 1.1 2002/03/05 15:22:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// John Allison 24th January 1998. + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4VIS_USE + +#include "ExN02VisManager.hh" + +// Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "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...... + +ExN02VisManager::ExN02VisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN02VisManager::RegisterGraphicsSystems () { + + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new 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/parallel/ParN02/src/ParExN02MarshaledHits.cc b/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc new file mode 100644 index 0000000000..bde4cc6127 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc @@ -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. * +// ******************************************************************** +// +// $Id: ParExN02MarshaledHits.cc,v 1.1 2002/03/05 15:22:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- +// Customize this file for your application. +// -------------------------------------------------------------------- + +#include "ParExMarshaledHits.hh" +#include "ParMarshaledObj.hh" +#include "ExN02TrackerHit.hh" + +// ===================================================================== +// Must define MarshalHit and UnmarshalHit for each derived class of G4VHit + +// MarshalHit() and UnmarshalHit() have defaults given by the member +// function of TMarshaledHitsCollection. +// The default copies the entire class into a single buffer. If your +// hit class includes pointers, and if you use those pointer in your +// analysis (AnalyzeEvent), then you will need to override the default +// with an explicit specialization that marshals the pointers. +// You may also wish to override the default in order to write +// more efficient marshaling code. + +// See ParExMarshaledHits.cc-N04-efficient for an example of overriding +// the default. + +// ===================================================================== +// Dispatch marshaling and unmarshaling of HC's according to type of G4VHit +// When unmarshaling, we will see the "G4String HCname", and have +// to create a HC of the correct type. +// So, You must include an "if" or "else if" for each type of hit. + +// NOTE TO MYSELF: Is there a cleaner way to do this? +// If types were objects, we'd just set up a table here: +// { {"trackerCollection", TMarshaledHitsCollection}, +// ... } +// and then write general code to use the table. + +void MarshaledHCofThisEvent::MarshalHitsCollection + (G4VHitsCollection * aBaseHC, G4String HCname) +{ if (HCname == "trackerCollection") + ((TMarshaledHitsCollection *)this) + -> Marshal( aBaseHC ); + else G4Exception( "TMarshaledHitsCollection::MarshaledHCofThisEvent :" + " HCname, " + HCname + ", not found." ); +} + +void MarshaledHCofThisEvent::UnmarshalSlaveHitsCollection(G4String & HCname, G4String & SDname) +{ if (HCname == "trackerCollection") + ((TMarshaledHitsCollection *)this) + -> UnmarshalSlaveHitsCollection( HCname, SDname ); + else G4Exception( "TMarshaledHitsCollection::UnmarshalSlaveHitsCollection" + " : HCname, " + HCname + ", not found." ); +} diff --git a/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc b/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc new file mode 100644 index 0000000000..d302127a99 --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ParMarshaledObj.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: ParMarshaledObj.cc,v 1.1 2002/03/05 15:22:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- +// When we implement track level parallelism, we will use G4PrimaryTransformer. +// We will also need to merge hits from several slaves. To do so, we will need +// the following: +// - MarshaledHCofThisEvent must also have a private const member: +// const G4bool canMergeHits = false; +// and a virtual method (not pure) +// virtual void insertOrMerge(ExN02TrackerHit *); +// - Then can create a derived class with constructor: +// inline DerivedClassConstructor() +// : canMergeHits(true),MarshaledHCofThisEventWithTemplate() {} +// - And insertOrMerge() should be defined in the derived class +// The logic for insertOrMerge() can usually be copied from +// (for example) ExN02TrackerSD::ProcessHits +// -------------------------------------------------------------------- + +#include "G4HCofThisEvent.hh" +#include "G4Step.hh" +#include "G4ThreeVector.hh" +#include "G4SDManager.hh" +#include "G4RunManager.hh" +#include "G4EventManager.hh" +#include "G4Event.hh" +#include "G4ios.hh" + +#include "ParMarshaledObj.hh" + +MarshaledHCofThisEvent::MarshaledHCofThisEvent(G4Event *anEvent) +{ MarshalHitsCollection(anEvent); } + +MarshaledHCofThisEvent::MarshaledHCofThisEvent() +{ MarshalHitsCollection( G4RunManager::GetRunManager()-> GetCurrentEvent() ); } + +void MarshaledHCofThisEvent::MarshalHitsCollection(const G4Event *anEvent) +{ +// MarshaledHCofThisEvent() can be in class ParMarshaledObj +// It can then be dispatched based on HCname to submarshaling +// for correct class. + + G4HCofThisEvent *HCE = anEvent->GetHCofThisEvent(); + G4int numHitsColl = HCE->GetNumberOfCollections(); + Marshal( numHitsColl ); + for (int i = 0; i < numHitsColl; i++) { + // Use base class to find HCname. + G4VHitsCollection *aBaseHC = HCE->GetHC(i); + G4String SDname = aBaseHC->GetSDname(); + G4String HCname = aBaseHC->GetName(); + Marshal( SDname ); + Marshal( HCname ); +#ifdef TOPC_DEBUG + G4cout << "Marshaled HCname: " << HCname << G4endl; + G4cout << "Marshaled SDname: " << SDname << G4endl; +#endif + + MarshalHitsCollection(aBaseHC, HCname); + } +} + +// NOTES TO MYSELF: +// G4SDManager::GetSDMpointer()->FindSensitiveDetector(SDname); + +// IMPORTANT: all calls to Unmarshal must be in same order as +// the calls to Marshal in the constructor. +void MarshaledHCofThisEvent::UnmarshalSlaveHCofThisEvent() +{ + /* + G4HCofThisEvent *HCE = G4RunManager::GetRunManager()-> + GetCurrentEvent()-> + GetHCofThisEvent(); + */ + G4int numHitsColl; + Unmarshal( numHitsColl ); + for (int i = 0; i < numHitsColl; i++) { + G4String SDname; + G4String HCname; + Unmarshal( SDname ); + Unmarshal( HCname ); +#ifdef TOPC_DEBUG + G4cout << "HCname: " << HCname << G4endl; + G4cout << "SDname: " << SDname << G4endl; +#endif + + UnmarshalSlaveHitsCollection(HCname, SDname); + } +} diff --git a/examples/extended/parallel/ParN02/src/ParRunManager.cc b/examples/extended/parallel/ParN02/src/ParRunManager.cc new file mode 100644 index 0000000000..8f76dfeb9b --- /dev/null +++ b/examples/extended/parallel/ParN02/src/ParRunManager.cc @@ -0,0 +1,226 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * 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 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifdef G4USE_TOPC + +// G4Timer.hh has to be loaded *before* globals.hh... +// +#include "G4Timer.hh" + +#include "G4RunManager.hh" + +#include "Randomize.hh" +#include "G4Run.hh" +#include "G4RunMessenger.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4VUserPhysicsList.hh" +#include "G4UserRunAction.hh" +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4GeometryManager.hh" +#include "G4SDManager.hh" +#include "G4TransportationManager.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ApplicationState.hh" +#include "G4StateManager.hh" +#include "G4VPersistencyManager.hh" +#include "G4UImanager.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessTable.hh" +#include "G4UnitsTable.hh" +#include "G4VVisManager.hh" + +#include "ParRunManager.hh" +#include "ParMarshaledObj.hh" +#include "ParRandomState.hh" + +#include "G4ios.hh" +#include "g4std/strstream" + +// Define static data members of ParRunManager +// They are set by ImportDoEventLoopLocals +G4StateManager* ParRunManager::stateManager; +G4int ParRunManager::n_event; +G4int ParRunManager::n_select; +G4String ParRunManager::msg; +ParRunManager* ParRunManager::myRunManager = NULL; + +// TOP-C callbacks (static functions) +// If this->*(&ParRunManager::GenerateEventInput), created a thunk, +// it would be ideal here. +TOPC_BUF ParRunManager::MyGenerateEventInput() + { return myRunManager->GenerateEventInput(); } +TOPC_BUF ParRunManager::MyDoEvent( void *input_buf ) + { return myRunManager->DoEvent(input_buf); } +TOPC_ACTION ParRunManager::MyCheckEventResult( void * input_buf, void *buf ) + { return myRunManager->CheckEventResult(input_buf, buf); } + +static void trace_event_input( void *input ) +{ G4cout << "Event " << *(G4int *)input << G4endl; } + +void ParRunManager::DoEventLoop(G4int n_event,const char* macroFile,G4int n_select) +{ + TOPC_OPT_trace_input = trace_event_input; + + G4StateManager* stateManager = G4StateManager::GetStateManager(); + +#ifdef G4_ORIGINAL + cout << "ParRunManager::DoEventLoop" << endl; + G4RunManager::DoEventLoop(n_event, macroFile, n_select); + return; +#endif + + if(verboseLevel>0) + { timer->Start(); } + + G4String msg; + if(macroFile!=NULL) + { + if(n_select<0) n_select = n_event; + msg = "/control/execute "; + msg += macroFile; + } + else + { n_select = -1; } + + // BeginOfEventAction() and EndOfEventAction() would normally be + // called inside G4EventManager::ProcessOneEvent() in ParRunManager::DoEvent + // on slave. Since this is often where hits are collected and where + // histogram data is first stored, must do it + // on master instead, to process hits. So, set user event action to NULL. + // Keep private copy, and execute it in CheckTaskResult(). + // If user later does: SetUserAction( (G4UserEventAction *)NULL ); + // we won't notice and copy it to origUserEventAction. + // How paranoid do we want to be? Should we create trvialUserEventAction? + if ( eventManager->GetUserEventAction() ) + { + origUserEventAction = eventManager->GetUserEventAction(); + SetUserAction( (G4UserEventAction *)NULL ); + } + + // Make these variables accessible to TOP-C callback functions + ImportDoEventLoopLocals( stateManager, n_event, n_select, msg ); + + // This is where all the parallelism occurs + i_event = -1; // ParRunManager::GenerateEventInput() will increment this. + TOPC_master_slave(MyGenerateEventInput, MyDoEvent, MyCheckEventResult, NULL); + + if(verboseLevel>0) + { + timer->Stop(); + G4cout << "Run terminated." << G4endl; + G4cout << "Run Summary" << G4endl; + if(runAborted) +/* + { G4cout << " Run Aborted after " << i_event << " events processed." << G4endl; } +*/ + { G4cout << " Run Aborted." << G4endl; } + else + { G4cout << " Number of events processed : " << n_event << G4endl; } + G4cout << " " << *timer << G4endl; + } + +} + +TOPC_BUF ParRunManager::GenerateEventInput() +{ + if(runAborted) return NOTASK; + + i_event++; + if (i_event >= n_event) return NOTASK; + else + { ParMarshaledRandomState buf = ParMarshaledRandomState( i_event ); + return TOPC_MSG( buf.GetBuffer(), buf.BufferSize() ); + } + // else return TOPC_MSG( &i_event, sizeof(i_event) ); +} + +TOPC_BUF ParRunManager::DoEvent( void *input_buf ) +{ + G4int i_event; + ParMarshaledRandomState buf = ParMarshaledRandomState( input_buf ); + buf.unmarshalEventIDandSetState( i_event ); + + stateManager->SetNewState(EventProc); + + currentEvent = GenerateEvent(i_event); + + eventManager->ProcessOneEvent(currentEvent); + + MarshaledObj *aMarshaledObj = new MarshaledHCofThisEvent(currentEvent); + return TOPC_MSG(aMarshaledObj->GetBuffer(), aMarshaledObj->BufferSize()); +} + +TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf ) +{ + G4int i_event; + MarshaledObj buf = MarshaledObj(input_buf); + buf.Unmarshal(i_event); + + stateManager->SetNewState(EventProc); + if(!userPrimaryGeneratorAction) + { + G4Exception + ("G4RunManager::BeamOn - G4VUserPrimaryGeneratorAction is not defined."); + } + + // This creates a trivial event in lieu of GenerateEvent(i_event); + currentEvent = new G4Event(i_event); + + // Original UserEventAction was saved and set to NULL. Do it now on master. + if (origUserEventAction) + origUserEventAction->BeginOfEventAction( currentEvent ); + + // When Geant4 4.0 sees empty event, it still calls userStackingAction. + // On master, only trivial events exist, so we delete userStackingAction + SetUserAction( (G4UserStackingAction*)NULL ); + eventManager->ProcessOneEvent(currentEvent); // Processing the trivial event + + // Called with output_buf and no size, creates object for unmarshaling + MarshaledHCofThisEvent marshaledObj(output_buf); + marshaledObj.UnmarshalSlaveHCofThisEvent(); + // UnmarshalSlaveHCofThisEvent placed slave Hits in ParRunManager::currentEvent + + // Original UserEventAction was saved and set to NULL. Do it now on master. + if (origUserEventAction) + origUserEventAction->EndOfEventAction( currentEvent ); + + AnalyzeEvent(currentEvent); + + if(i_eventApplyCommand(msg); + stateManager->SetNewState(GeomClosed); + StackPreviousEvent(currentEvent); + currentEvent = NULL; + // Move this to GenerateEventInput: + // if(runAborted) break; + return NO_ACTION; +} + +#endif diff --git a/examples/extended/parallel/ParN02/thwap b/examples/extended/parallel/ParN02/thwap new file mode 100755 index 0000000000..faaf41f4c8 --- /dev/null +++ b/examples/extended/parallel/ParN02/thwap @@ -0,0 +1,142 @@ +#!/usr/bin/perl + +# +# Rat's thwap script, rewritten in perl and diffed a lot. +# +# django@ccs.neu.edu +# July 24, 1993 +# +# 1/19/94 v2.01 - bdowling +# Added: Interactive prompting (-i) +# Whuggled option handling +# -Allows numeric signals +# -Allows varied ordering +# Changed finding processes slightly +# Added sysV support ?? +# 1997.08.05 jay +# added Solaris support + +$0 =~ s#.*/##; +$| = 1; + +$fakeit = 0; +$iprompt = 0; + +# gdc - /usr/bin/kill -> /bin/kill, Redhat Linux 4.2 had only /bin/kill +@valid_signals = split(/[ \t\n]+/, `/bin/kill -l`); +die "$0: error running 'kill' to gather signals!: $!\n" if $?; + +$signal = "KILL"; + +while ($ARGV[0] =~ /^-/) { + $_ = shift(@ARGV); + if (/^-n$/) { + $fakeit = 1; $iprompt = 0; + } elsif (/^-i$/) { + $iprompt = 1; $fakeit = 0; + } elsif (/^-(\w+)/) { + $signal = $1; + $signal =~ tr/[a-z]/[A-Z]/; + $signal =~ s/^SIG//; + die "$1: $signal is not a valid signal\n" + if (! grep(/^$signal$/, + (@valid_signals, (1..$#valid_signals+1) ) ) ); + } +} +#warn "> $signal\n"; +# we don't need to do this, since Perl can handle named signals just as well +# as numberic ones. In fact, this causes us grief because kill -l does not +# return the same thing on all systems +#if (! ($signal =~ /^[0-9]+$/)) { # We want to work with a numeric signal +# for($x=0;$x<=$#valid_signals;$x++) { +# do { $numsignal = ++$x; last; } if @valid_signals[$x] eq $signal; +# } +#} +#warn "> $signal\n"; + +&usage if ($#ARGV < 0); + +foreach $uname ('/bin/uname', '/usr/bin/uname', '/sbin/uname') { + next unless (-x $uname); + chop($rev = `$uname -r`); + ($OSMAJOR = $rev) =~ s/\..*//; + last; +} + +if ($OSMAJOR == 5) { # System V + $ps_flags = " -f "; + $ps_flags .= " -e " if ($> == 0); + $ps_flags .= " -u $>" if ($> != 0); # Do we need this? Could we just do + # ps -f above? It gets some root procs + # such as rlogin etc. (which is cool!) +} else { # Assume BSD system, what others could we check for? + $ps_flags = "uxww"; + $ps_flags .= "a" if ($> == 0); # Only need this if we're root +} + +# Don't want a leading "-" on the flags, so it works on both Alphas and Suns: +$ps_pid = open(PS, "ps $ps_flags |"), "\n"; +$header = ; +$seen_header = 0; +$thwapped = 0; + +while () { + ($foo = $_) =~ s/^\s*//; + ($user, $pid, @rest) = split(' ',$foo); + next if ($pid == $$ || $pid == $ps_pid); # Don't thwap this process! + next if (/thwap/); # Hackish attempt to avoid + # thwapping this process + # when invoked via rsh + + testit: foreach $expr (@ARGV) { + if ($expr =~ /^[0-9]+$/) { # make numbers only match pids + next testit if ($pid != $expr); + } + if (grep(/$expr/, $_)) { +# warn "expr = $expr; user = $user; pid = $pid; rest = @rest\n"; + warn $header if (! $seen_header); + warn "\n" if ($seen_header && $iprompt); + $seen_header = 1; + warn $_; + if (! $iprompt || &AskYN() ) { +# warn "-> kill $signal $pid\n" if (! $fakeit); + if (! $fakeit ) { + # quotes needed around $signal so Perl will interpret both + # numeric and non-numberic signals properly -- dNb + $killed = kill("$signal", $pid); + warn "kill: $!\n" if ! $killed; + $thwapped += $killed; + } else { + $thwapped++; + } + } + last testit; # Okay it's dead jim, we're done this loop. + } + } +} + +close(PS); + +warn "$0: ", ( $fakeit ? "would have " : "" ), + "sent SIG${signal} to $thwapped process", + ($thwapped == 1 ? "" : "es"), "\n"; + +sub usage { + warn <<"EOT"; +Usage: $0 [options] ... +Options: + -n fake mode - only display processes that would be selected + -i interactive mode - prompt on each suspect process + - any valid literal or numeric signal (see kill -l) + +EOT +exit(1); +} + +sub AskYN { + print STDERR "Send SIG", @valid_signals[$numsignal-1], " to this process? (y/n/a)? "; + $ans = ; + $iprompt = ! ($ans =~ /^a/i); + return( $ans =~ /^[ay]/i ); +} + diff --git a/examples/extended/parallel/ParN04/GNUmakefile b/examples/extended/parallel/ParN04/GNUmakefile new file mode 100644 index 0000000000..24c60715ac --- /dev/null +++ b/examples/extended/parallel/ParN04/GNUmakefile @@ -0,0 +1,30 @@ +# $Id: GNUmakefile,v 1.1 2002/03/05 15:22:04 gcosmo Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +include ParGNUmakefile + +name := ParN04 +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),HP-aCC) +COMPILER := $(shell aCC -V 2>&1) +ifeq ($(COMPILER), aCC: HP ANSI C++ B3910B A.01.15) +$(G4TMP)/$(G4SYSTEM)/$(name)/ExN04HadronPhysics.o: src/ExN04HadronPhysics.cc + $(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/ExN04HadronPhysics.cc +endif +endif diff --git a/examples/extended/parallel/ParN04/History b/examples/extended/parallel/ParN04/History new file mode 100644 index 0000000000..7d601e286b --- /dev/null +++ b/examples/extended/parallel/ParN04/History @@ -0,0 +1,22 @@ +$Id: History,v 1.1 2002/03/05 15:22:04 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Example ParN04 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 * + ---------------------------------------------------------- + +March 5th, 2002 G.Cosmo - ParN04-V04-00-00 +------------------------ +- Created from original version of Gene Cooperman. + Parallel version of example/novice/N04. + diff --git a/examples/extended/parallel/ParN04/ParGNUmakefile b/examples/extended/parallel/ParN04/ParGNUmakefile new file mode 100644 index 0000000000..00df1a5834 --- /dev/null +++ b/examples/extended/parallel/ParN04/ParGNUmakefile @@ -0,0 +1,114 @@ +# $Id: ParGNUmakefile,v 1.4 2002/06/06 17:27:25 cooperma Exp $ +# -------------------------------------------------------------- +#This file should be included in GNUmakefile of local directory. + +#Usage: make [ to compile parallel version ] +# make run [ to compile and run it ] +# make run-debug [ to compile and run in gdb ] +# make parclean [ remove intermediate and executable files ] +# See `run' target for parameters by which executable is called. +# This assumes Geant4 environment vars have been defined. +# See ../info/NEW_APP_INSTALL (number 10) for an example of setting up +# the Geant4 environment variables. + +# MEM_MODEL can be --seq, --mpi, or --pthread in current version of TOP-C. +MEM_MODEL=--seq +MEM_MODEL=--mpi + +ifndef REMOTE_SHELL + REMOTE_SHELL=ssh +endif + +MACROFILE=ParN04.in +# MACROFILE=ParN04.EMtest.large_N.in + +DATAFILE= +DATAFILE=pythia_event.data + +# Everything below here should be set automatically based on +# your environment variables, the G4TARGET of GNUmakefile, etc. +# G4TARGET set in the makefile that includes this one. + +ifndef PARTARGET + PARTARGET = ${G4TARGET} +endif + +ifndef G4INSTALL + G4INSTALL = _Environment_variable_G4INSTALL_must_be_defined_ +endif + +ifndef G4WORKDIR + G4WORKDIR = ${G4INSTALL} +endif + +ifndef G4BIN + G4BIN = $$G4WORKDIR/bin +endif +ifndef G4BINDIR + G4BINDIR = ${G4BIN}/$$G4SYSTEM +endif + +EXECUTABLE=${G4BIN}/$$G4SYSTEM/${PARTARGET} + +G4DEBUG = 1 + +TOPC_LIBS = `topc-config ${MEM_MODEL} --libs` +TOPC_CFLAGS = -DG4USE_TOPC `topc-config ${MEM_MODEL} --cflags` +# optionally add: -DTOPC_DEBUG to TOPC_CFLAGS for debugging details. +TOPC_OPTIONS = --TOPC-verbose + +EXTRALIBS=${TOPC_LIBS} +CPPFLAGS=${TOPC_CFLAGS} + +TIMESTAMP=${G4BINDIR}/timestamp + +# Unfortunately, .../geant4.x.x/config/binmake.gmk has target: +# $(G4BINDIR)/$(G4TARGET) +# (for example: ${G4BIN}/$$G4SYSTEM/ParN04) +# And that rule always triggers due to dependency on .../exe/obj.last +# Also, G4BINDIR uses shell variables, that are guaranteed to expand +# only after recursive make. +compile: + @ if [ "$$G4SYSTEM" = "" ]; then \ + echo '***' Environment variable G4SYSTEM not defined; \ + echo '***' Make sure G4INSTALL and G4SYSTEM are set; \ + fi + ${MAKE} G4BINDIR=${G4BINDIR} ${TIMESTAMP} +${TIMESTAMP}: *.cc *.icc src/*.cc include/*.hh ParGNUmakefile + # Test for presence of topc-config + topc-config ${MEM_MODEL} --libs > /dev/null + ${MAKE} all + rm -f ${TIMESTAMP} + echo "" > ${TIMESTAMP} + make -t ${EXECUTABLE} + +run: compile + pwd + echo ${EXECUTABLE} + cp -f ${MACROFILE} ${DATAFILE} procgroup `dirname ${EXECUTABLE}`/ + # ${EXECUTABLE} will use procgroup file in current directory. + ( cd `dirname ${EXECUTABLE}`; RSH=${REMOTE_SHELL}; export RSH; \ + ${EXECUTABLE} ${TOPC_OPTIONS} ${MACROFILE} ) + +run-debug: compile + @ if [ "$$G4DEBUG" = "" ]; then \ + echo '***' Environment variable G4DEBUG not defined; \ + echo '***' Set it, make parclean, and re-compile using GDEBUG; \ + fi + # exit 1; \ + echo ${EXECUTABLE} + cp -f ${MACROFILE} ${DATAFILE} procgroup `dirname ${EXECUTABLE}`/ + rm -f `dirname ${EXECUTABLE}`/tmp.gdb + echo 'set args ${TOPC_OPTIONS} ${MACROFILE}' \ + > `dirname ${EXECUTABLE}`/tmp.gdb + echo 'break main' >> `dirname ${EXECUTABLE}`/tmp.gdb + echo 'run' >> `dirname ${EXECUTABLE}`/tmp.gdb + # ${EXECUTABLE} will use procgroup file in current directory. + ( cd `dirname ${EXECUTABLE}`; RSH=${REMOTE_SHELL}; export RSH; \ + gdb -x tmp.gdb ${EXECUTABLE} ) +parclean: + rm -f ${TIMESTAMP} + ${MAKE} clean +pardist: parclean + ( dir=`basename $$PWD`; cd ..; tar cvf $$dir.tar ./$$dir; \ + gzip $$dir.tar && (cd $$dir; ls -l ../$$dir.tar.gz) ) diff --git a/examples/extended/parallel/ParN04/ParN04.EMtest.in b/examples/extended/parallel/ParN04/ParN04.EMtest.in new file mode 100644 index 0000000000..77fd29298c --- /dev/null +++ b/examples/extended/parallel/ParN04/ParN04.EMtest.in @@ -0,0 +1,8 @@ +/mydet/generator particleGun +/mydet/reqmuon 1 +/mydet/isomuon 1 +/run/beamOn 1 +/gun/particle mu- +/gun/energy 10 TeV +/run/beamOn 2 +exit diff --git a/examples/extended/parallel/ParN04/ParN04.EMtest.large_N.in b/examples/extended/parallel/ParN04/ParN04.EMtest.large_N.in new file mode 100644 index 0000000000..808eb14040 --- /dev/null +++ b/examples/extended/parallel/ParN04/ParN04.EMtest.large_N.in @@ -0,0 +1,8 @@ +/mydet/generator particleGun +/mydet/reqmuon 1 +/mydet/isomuon 1 +/run/beamOn 1 +/gun/particle mu- +/gun/energy 10 TeV +/run/beamOn 20 +exit diff --git a/examples/extended/parallel/ParN04/ParN04.cc b/examples/extended/parallel/ParN04/ParN04.cc new file mode 100644 index 0000000000..9f0fb02068 --- /dev/null +++ b/examples/extended/parallel/ParN04/ParN04.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ParN04.cc,v 1.2 2002/03/09 06:21:25 cooperma Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// -------------------------------------------------------------- +// +// GEANT4 - ParN04 +// +// -------------------------------------------------------------- + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" + +#include "ExN04DetectorConstruction.hh" +#include "ExN04PhysicsList.hh" +#include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04EventAction.hh" +#include "ExN04StackingAction.hh" +#include "ExN04TrackingAction.hh" +#include "ExN04SteppingAction.hh" + +#include "ParTopC.icc" + +int main(int argc,char** argv) +{ + G4RunManager* runManager = new G4RunManager; + + runManager->SetUserInitialization(new ExN04DetectorConstruction); + runManager->SetUserInitialization(new ExN04PhysicsList); + + runManager->Initialize(); + + runManager->SetUserAction(new ExN04PrimaryGeneratorAction); + runManager->SetUserAction(new ExN04EventAction); + runManager->SetUserAction(new ExN04StackingAction); + runManager->SetUserAction(new ExN04TrackingAction); + runManager->SetUserAction(new ExN04SteppingAction); + + if(argc==1) + { + // G4UIterminal is a (dumb) terminal. + G4UIsession* session = new G4UIterminal; + session->SessionStart(); + delete session; + } + else + { + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + + delete runManager; + + return 0; +} + diff --git a/examples/extended/parallel/ParN04/ParN04.in b/examples/extended/parallel/ParN04/ParN04.in new file mode 100644 index 0000000000..e532c669c1 --- /dev/null +++ b/examples/extended/parallel/ParN04/ParN04.in @@ -0,0 +1,8 @@ +# +/mydet/RoIangle 10 deg +/mydet/reqmuon 1 +/mydet/isomuon 1 +/run/beamOn 3 +# +exit + diff --git a/examples/extended/parallel/ParN04/ParTopC.icc b/examples/extended/parallel/ParN04/ParTopC.icc new file mode 100644 index 0000000000..01b0581a7d --- /dev/null +++ b/examples/extended/parallel/ParN04/ParTopC.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. * +// ******************************************************************** +// +// $Id: ParTopC.icc,v 1.1 2002/03/09 06:25:10 cooperma Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifdef G4USE_TOPC +# include "ParRunManager.hh" +#endif + +static int G4_main(int argc, char **argv); + +int main(int argc,char** argv) { +# ifdef G4USE_TOPC + TOPC_init(&argc, &argv); +# endif + int ret_val = G4_main(argc, argv); +# ifdef G4USE_TOPC + TOPC_finalize(); +# endif + return ret_val; +} + +#ifdef G4USE_TOPC +# define G4RunManager ParRunManager +#endif + +#define main G4_main diff --git a/examples/extended/parallel/ParN04/docs/000README b/examples/extended/parallel/ParN04/docs/000README new file mode 100644 index 0000000000..46525ca9dd --- /dev/null +++ b/examples/extended/parallel/ParN04/docs/000README @@ -0,0 +1,162 @@ +$Id: 000README,v 1.3 2002/03/09 09:48:03 cooperma Exp $ +------------------------------------------------------------------- + + ParGeant4: Geant4/TOP-C, a parallelization of Geant4 + Version 0.9 + (event-level parallelism only) + + Gene Cooperman + Northeastern University + gene@ccs.neu.edu, + +For the latest information on ParGeant4, see: + http://www.ccs.neu.edu/home/gene/pargeant4.html +Note that a version now exists that runs Geant4 over the Grid. +Please write to gene@ccs.neu.edu for further information. +To port other applications to a parallel version, read the + files ../../info/PAR_INSTALL and ../../info/PAR_README. + + +This parallelization was done using a precompiled library for Geant4 4.0 +See the beginning of GNUmakefile for reasonable `make' targets to run it. +To run it: +0. a. Follow the standard Geant4 installation procedure. + b. Verify that the Geant4 sequential examples work for you: + cd $G4INSTALL/examples/novice/exampleN04 + make + $G4WORKDIR/bin/$G4SYSTEM/ParN04 ParN04.in + c. Download and install TOP-C. + The TOP-C home page is at http://www.ccs.neu.edu/home/gene/topc.html + cd + gzip -dc topc.tar.gz | tar -xvf - + cd topc + ./configure + make + make test + [ Copy bin/topc-config to your path ] +2. make run + [ By default, the included `procgroup' file creates two slave processes + on localhost. ] + [ Note that in addition to output on master, + $G4WORKDIR/bin/$G4SYSTEM/slave*.out contains slave output. ] + [ To remove intermediate files and start over: make parclean ] +3. Try running it with slave processes on remote processes. + First, test that your local environment is set up correctly. + Try: ssh $G4WORKDIR/bin/$G4SYSTEM/ParN04 `pwd`/ParN04.in + The above command needs to work without asking for a password. + [ If you use dynamic libraries (*.so), make sure the LD_LIBRARY_PATH + in your shell startup file (e.g. ~.tcshrc) includes both: + $G4INSTALL/lib/$G4SYSTEM and $CLHEP_BASE_DIR/lib + If you use AFS, you may need to type 'klog' to renew your AFS token. ] + In `procgroup' file, replace `localhost' by desired remote hosts; + Add additional remote hosts (additional slaves) if you like. + Then: make run + +============================================================================ +If you read ParGNUmakefile, you'll find other things that you can +modify. For example, all TOP-C additions are in conditionals: + remove -DG4USE_TOPC from ParGNUmakefile and: + make parclean; make run + in order to re-compile and rerun without TOP-C. +Define REMOTE_SHELL differently if you don't use `ssh' for a remote shell. + (If undefined, ParGNUmakefile defines it to be `ssh') +Define MACROFILE diferently to use a different set of input commands. +Define MEM_MODEL=--seq + to run with TOP-C, but using a single (sequential) process, suitable + for easy debugging (via gdb, for example). +Try: pushd $G4WORKDIR/bin/$G4SYSTEM/; ./ParN04 --TOPC-help + to see TOP-C run-time options that can be invoked, such as + pushd $G4WORKDIR/bin/$G4SYSTEM/; ./ParN04 --TOPC-num-slaves=5 ParN04.in + Alternatively, modify TOPC_OPTIONS in ParGNUmakefile for the same effect. + +You can also try other targets: make run-debug + This will run it under gdb, so you can single step to see what happens. +make parclean - Start over with clean set of files. + +============================================================================ +New or modified files: + ParN04.cc - Adds one line: #include "ParN04.icc" + ParExample.icc inserts: #include "topc.h" + and causes main to calls TOPC_init, TOPC_finalize, + and to use: `new ParRunManager' instead of `new G4RunManager' + GNUmakefile - Adds one line at beginning: include ParGNUmakefile + ParGNUmakefile defines EXTRALIBS and CPPFLAGS so as to + modify behavior of config/binmake.gmk + in order to use TOP-C libraries and includes + procgroup - Specifies which slave hosts to use, and where to put output + For example: localhost 1 - > slave1.out + host=`localhost', executable=`same as master', + params of slave=`> slave1.out' (redirect output) + If output not redirected, it goes to stdout on master. + src/ParRunManager.cc - ParRunManger derived from G4RunManager + replaces Gr4RunManager::DoEventLoop w/ TOP-C parallel loop, + Adds certain local vars of DoEventLoop as ParRunManager members + src/ParMarshaledObj.cc - run-time utilities for marshalling + src/ParExN04MarshaledHits.cc - marshals N04 hits (calorimeter & tracking hits) + include/Par*.hh - Currently just ParRunManager.hh + ~/slave*.out - Contains outputs of slave1, slave2, etc. + Generated each time parallel ParN04 is executed. + These files are specified in the file procgroup. + thwap - A script I inherited from our N.U. systems group + `thwap ParN04' will clobber all processes you own + whose command line includes `ParN04' as substring. + Handy for runaway processes when doing parallelism. + +==================================================================== +This version passes an event number to the slave and lets the +slave generate the event. The slave passes back marshaled hits to +the master. + +I will integrate the track level parallelism into this scenario at +a later date. For the track level, I will generate several +secondary tracks on the master, and then convert the secondary tracks +to new events that can be passed to slaves. I will do this only if +I detect that there are not enough initial events to fully occupy all +the slaves. This scheme has the drawback that we are splitting an event +into many events, which may make the summarization, histogram, and so +on more difficult. However, track level parallelism will be triggered +only when a very small number of events are generated. + +I also want to support postponing +a track to the next event ( G4ClassificationOfNewTrack::fPostpone . +To do this, each slave will wait to retire an event until it knows that +the previous event has been retired. + +In addition, I plan to have only the master read commands and pass +them to the slaves. Currently, the master and slaves each read +identical commands. + +==================================================================== +If you are curious about some of the layers, the following +stack trace [somewhat out of date now] gives some idea. + G4RunManager::BeamOn calls ParRunManager::DoEventLoop +(since G4RunManager::DoEventLoop is virtual) + ParRunManager::DoEventLoop calls TOPC_master_slave + TOPC_master_slave calls submit_task_input + submit_task_input eventually calls COMM_send_msg which calls MPI_Send +(COMM_send_msg is the communication layer of TOPC; + The exampleN02.cc was linked with the TOP-C MPI communication layer. + The same source could have been linked with a POSIX threads layer, + a communication layer, or some other communication layer. +) + MPI_send calls send +(where send is the socket system call of libc.so) + +(gdb) where +#0 0x41946c62 in send () from /lib/libc.so.6 +#1 0x400839c1 in send () at wrapsyscall.c:186 +#2 0x805c547 in MPI_Send (buf=0x82690fc, count=4, datatype=3, dest=2, tag=1, comm=0) at sendrecv.c:236 +#3 0x805a0b5 in COMM_send_msg (msg=0x82690fc, msg_size=4, dst=2, tag=TASK_INPUT_TAG) at comm-mpi.c:224 +#4 0x805774e in send_task_input (slave=2, input={data = 0x82690fc, data_size = 4}, tag=TASK_INPUT_TAG) at topc.c:560 +#5 0x8057aa8 in submit_task_input (input={data = 0x82690fc, data_size = 4}) at topc.c:659 +#6 0x805813c in TOPC_master_slave (generate_task_input_=0x4003d2e4 , + do_task_=0x4003d350 , check_task_result_=0x4003d420 , + update_shared_data_=0) at topc.c:922 +#7 0x4003d18c in ParRunManager::DoEventLoop (this=0x80c0bf0, n_event=1, macroFile=0x0, n_select=-1) at src/ParRunManager.cc:51 +#8 0x400b14d1 in G4RunManager::BeamOn () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4run.so +#9 0x400b870a in G4RunMessenger::SetNewValue () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4run.so +#10 0x4167157b in G4UIcommand::DoIt () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4intercoms.so +#11 0x416810a3 in G4UImanager::ApplyCommand () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4intercoms.so +#12 0x805db7e in G4UIterminal::ExecuteCommand () at /afs/cern.ch/sw/lhcxx/specific/redhat61/3.2.0/include/CLHEP/Random/Randomize.h:64 +#13 0x805d42d in G4UIterminal::SessionStart () at /afs/cern.ch/sw/lhcxx/specific/redhat61/3.2.0/include/CLHEP/Random/Randomize.h:64 +#14 0x8056a3d in main (argc=1, argv=0x80bfa00) at ParN04.cc:98 diff --git a/examples/extended/parallel/ParN04/docs/BUG.userStackingAction b/examples/extended/parallel/ParN04/docs/BUG.userStackingAction new file mode 100644 index 0000000000..634561b451 --- /dev/null +++ b/examples/extended/parallel/ParN04/docs/BUG.userStackingAction @@ -0,0 +1,28 @@ +$Id: BUG.userStackingAction,v 1.1 2002/03/05 15:22:07 gcosmo Exp $ +------------------------------------------------------------------- +When Geant4 4.0 sees empty event, it still calls userStackingAction. + +In the function: + G4StackManager::PopNextTrack(G4VTrajectory**newTrajectory) + +in Geant4 4.0, one has: + +145 if(userStackingAction) userStackingAction->NewStage(); +146 #ifdef G4VERBOSE +147 if( verboseLevel > 0 ) G4cout << " " << GetNUrgentTrack() +148 << " urgent tracks and " << GetNWaitingTrack() +149 << " waiting tracks." << G4endl; +150 #endif +151 if( ( GetNUrgentTrack()==0 ) && ( GetNWaitingTrack()==0 ) ) return 0; + +It seems to me that the call, `return 0' (line 151), should occur before +the call to `NewStage()' (line 145). If there are no tracks to +be stacked (neither GetNUrgentTrack() nor GetNWaitingTrack()), +then there is no new stage. So, it's a mistake to call + userStackingAction->NewStage(). + +This affects my parallelization of Geant4, in which I need to purposely +create a trivial event on the master, and call +G4EventManager()::ProcessOneEvent() on it to initialize the event on the +master. I am doing this in order to copy the hits from the slave into +an event on the master. diff --git a/examples/extended/parallel/ParN04/docs/README b/examples/extended/parallel/ParN04/docs/README new file mode 100644 index 0000000000..b2f8659b25 --- /dev/null +++ b/examples/extended/parallel/ParN04/docs/README @@ -0,0 +1,48 @@ +$Id: README,v 1.1 2002/03/05 15:22:08 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + ParN04 + ------ + + ParN04 has a simplified collider detector geometry. + This example demonstrates the following features. + [ Read 000README for a description of how to run it in parallel. ] + +1. PYTHIA primary events. + + ExN04PrimaryGeneratorAction has G4HEPEvtInterface as the generator. +G4HEPEvtInterface accesses to "pythia_event.data", which contains three +events of Higgs generation produced by PYTHIA. "pythia_main.f" is an +example FORTRAN code of PYTHIA for generating this event sample. + +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 accumurated 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/parallel/ParN04/include/ExN04CalorimeterHit.hh b/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh new file mode 100644 index 0000000000..3b902165ba --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/include/ExN04CalorimeterParametrisation.hh b/examples/extended/parallel/ParN04/include/ExN04CalorimeterParametrisation.hh new file mode 100644 index 0000000000..bfab08a8f8 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/include/ExN04CalorimeterROGeometry.hh b/examples/extended/parallel/ParN04/include/ExN04CalorimeterROGeometry.hh new file mode 100644 index 0000000000..b48798df80 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/include/ExN04CalorimeterSD.hh b/examples/extended/parallel/ParN04/include/ExN04CalorimeterSD.hh new file mode 100644 index 0000000000..32c01e0383 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04CalorimeterSD.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 ExN04CalorimeterSD_h +#define ExN04CalorimeterSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04CalorimeterHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04CalorimeterSD : public G4VSensitiveDetector +{ + + public: + ExN04CalorimeterSD(G4String name); + ~ExN04CalorimeterSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + ExN04CalorimeterHitsCollection *CalCollection; + int CellID[20][48]; + const int numberOfCellsInZ; + const int numberOfCellsInPhi; +}; + + + + +#endif + diff --git a/examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh b/examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh new file mode 100644 index 0000000000..3601f184e5 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh @@ -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. * +// ******************************************************************** +// + +#ifndef ExN04DetectorConstruction_h +#define ExN04DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +class G4VPhysicalVolume; + +class ExN04DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + ExN04DetectorConstruction(); + ~ExN04DetectorConstruction(); + + public: + G4VPhysicalVolume* Construct(); + + private: + +#include "ExN04DetectorParameterDef.hh" + +}; + +#endif + diff --git a/examples/extended/parallel/ParN04/include/ExN04DetectorParameterDef.hh b/examples/extended/parallel/ParN04/include/ExN04DetectorParameterDef.hh new file mode 100644 index 0000000000..d26e656d67 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/include/ExN04DummySD.hh b/examples/extended/parallel/ParN04/include/ExN04DummySD.hh new file mode 100644 index 0000000000..eeed0dd0df --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04DummySD.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. * +// ******************************************************************** +// +// +// Dummy sensitive used only to flag sensitivity +// in cells of RO geometry. +// + +#ifndef ExN04DummySD_h +#define ExN04DummySD_h 1 + +#include "G4VSensitiveDetector.hh" +class G4Step; + +class ExN04DummySD : public G4VSensitiveDetector +{ +public: + ExN04DummySD(); + ~ExN04DummySD() {}; + + void Initialize(G4HCofThisEvent*HCE) {}; + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} + void EndOfEvent(G4HCofThisEvent*HCE) {}; + void clear() {}; + void DrawAll() {}; + void PrintAll() {}; +}; +ExN04DummySD::ExN04DummySD() + : G4VSensitiveDetector("dummySD") +{} +#endif diff --git a/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh new file mode 100644 index 0000000000..566c4e5b56 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:09 gcosmo 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 +// ------------------------------------------------------------ +#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/parallel/ParN04/include/ExN04EventAction.hh b/examples/extended/parallel/ParN04/include/ExN04EventAction.hh new file mode 100644 index 0000000000..96b251bcdb --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04EventAction.hh @@ -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. * +// ******************************************************************** +// + +#ifndef ExN04EventAction_h +#define ExN04EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class ExN04EventAction : public G4UserEventAction +{ + public: + ExN04EventAction(); + ~ExN04EventAction(); + + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + private: + G4int trackerCollID; + G4int calorimeterCollID; + G4int muonCollID; +}; + +#endif + + diff --git a/examples/extended/parallel/ParN04/include/ExN04Field.hh b/examples/extended/parallel/ParN04/include/ExN04Field.hh new file mode 100644 index 0000000000..efa14063d0 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04Field.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 ExN04Field_H +#define ExN04Field_H 1 + +#include "globals.hh" +#include "G4MagneticField.hh" + +class ExN04Field : public G4MagneticField +{ + public: + ExN04Field(); + ~ExN04Field(); + + void GetFieldValue( const double Point[3], + double *Bfield ) const; + + private: + G4double Bz; + G4double rmax_sq; + G4double zmax; +}; + +#endif + diff --git a/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh new file mode 100644 index 0000000000..9010793ebd --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:10 gcosmo 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 +// ------------------------------------------------------------ +#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/parallel/ParN04/include/ExN04HadronPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh new file mode 100644 index 0000000000..bd388ae718 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh @@ -0,0 +1,331 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN04HadronPhysics.hh,v 1.1 2002/03/05 15:22:10 gcosmo 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 +// ------------------------------------------------------------ +#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 + +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; + G4HEPionPlusInelastic* theHEPionPlusModel; + G4MultipleScattering thePionPlusMult; + G4hIonisation thePionPlusIonisation; + + // Pi - + G4PionMinusInelasticProcess thePionMinusInelastic; + G4LEPionMinusInelastic* theLEPionMinusModel; + G4HEPionMinusInelastic* theHEPionMinusModel; + G4MultipleScattering thePionMinusMult; + G4hIonisation thePionMinusIonisation; +#ifdef TRIUMF_STOP_PIMINUS + G4PionMinusAbsorptionAtRest thePionMinusAbsorption; +#else + G4PiMinusAbsorptionAtRest thePionMinusAbsorption; +#endif + + // 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/parallel/ParN04/include/ExN04IonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh new file mode 100644 index 0000000000..f2213f0813 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:11 gcosmo 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 +// ------------------------------------------------------------ +#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/parallel/ParN04/include/ExN04MuonHit.hh b/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh new file mode 100644 index 0000000000..2b6607cf81 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04MuonHit.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 ExN04MuonHit_h +#define ExN04MuonHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +class ExN04MuonHit : public G4VHit +{ + public: + + 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); + + void Draw(); + void Print(); + + private: + G4double edep; + G4ThreeVector pos; + + public: + 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; } + +}; + +typedef G4THitsCollection ExN04MuonHitsCollection; + +extern G4Allocator ExN04MuonHitAllocator; + +inline void* ExN04MuonHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN04MuonHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExN04MuonHit::operator delete(void *aHit) +{ + ExN04MuonHitAllocator.FreeSingle((ExN04MuonHit*) aHit); +} + +#endif + + diff --git a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh new file mode 100644 index 0000000000..ac219f72b3 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:11 gcosmo 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 +// ------------------------------------------------------------ +#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/parallel/ParN04/include/ExN04MuonSD.hh b/examples/extended/parallel/ParN04/include/ExN04MuonSD.hh new file mode 100644 index 0000000000..1f0c39e381 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04MuonSD.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 ExN04MuonSD_h +#define ExN04MuonSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04MuonHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04MuonSD : public G4VSensitiveDetector +{ + + public: + ExN04MuonSD(G4String name); + ~ExN04MuonSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + ExN04MuonHitsCollection * muonCollection; + G4double positionResolution; + +}; + + + + +#endif + diff --git a/examples/extended/parallel/ParN04/include/ExN04PhysicsList.hh b/examples/extended/parallel/ParN04/include/ExN04PhysicsList.hh new file mode 100644 index 0000000000..445ac20653 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04PhysicsList.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 ExN04PhysicsList_h +#define ExN04PhysicsList_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" + +class ExN04PhysicsList: public G4VModularPhysicsList +{ +public: + ExN04PhysicsList(); + virtual ~ExN04PhysicsList(); + +public: + // SetCuts() + virtual void SetCuts(); + + +}; + + +#endif + + + diff --git a/examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorAction.hh b/examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..2568cf38a1 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorAction.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 ExN04PrimaryGeneratorAction_h +#define ExN04PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4VPrimaryGenerator; +class G4Event; +class ExN04PrimaryGeneratorMessenger; + +class ExN04PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + ExN04PrimaryGeneratorAction(); + ~ExN04PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4VPrimaryGenerator* HEPEvt; + G4VPrimaryGenerator* particleGun; + ExN04PrimaryGeneratorMessenger* messenger; + G4bool useHEPEvt; + + public: + inline void SetHEPEvtGenerator(G4bool f) + { useHEPEvt = f; } + inline G4bool GetHEPEvtGenerator() + { return useHEPEvt; } +}; + +#endif + + diff --git a/examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorMessenger.hh b/examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..f51be77447 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04PrimaryGeneratorMessenger.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 ExN04PrimaryGeneratorMessenger_h +#define ExN04PrimaryGeneratorMessenger_h 1 + +class ExN04PrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcmdWithAString; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class ExN04PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + ExN04PrimaryGeneratorMessenger(ExN04PrimaryGeneratorAction* mpga); + ~ExN04PrimaryGeneratorMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + ExN04PrimaryGeneratorAction * myAction; + + private: //commands + G4UIdirectory * mydetDirectory; + G4UIcmdWithAString * genCmd; + +}; + +#endif + + diff --git a/examples/extended/parallel/ParN04/include/ExN04StackingAction.hh b/examples/extended/parallel/ParN04/include/ExN04StackingAction.hh new file mode 100644 index 0000000000..6fa030f3a7 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/include/ExN04StackingActionMessenger.hh b/examples/extended/parallel/ParN04/include/ExN04StackingActionMessenger.hh new file mode 100644 index 0000000000..38da86a685 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/include/ExN04SteppingAction.hh b/examples/extended/parallel/ParN04/include/ExN04SteppingAction.hh new file mode 100644 index 0000000000..aafc85416e --- /dev/null +++ b/examples/extended/parallel/ParN04/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/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh b/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh new file mode 100644 index 0000000000..8731dadeb6 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04TrackerHit.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 ExN04TrackerHit_h +#define ExN04TrackerHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +class ExN04TrackerHit : public G4VHit +{ + public: + + 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: + G4double edep; + G4ThreeVector pos; + + public: + inline void SetEdep(G4double de) + { edep = de; } + inline G4double GetEdep() + { return edep; } + inline void SetPos(G4ThreeVector xyz) + { pos = xyz; } + inline G4ThreeVector GetPos() + { 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/parallel/ParN04/include/ExN04TrackerParametrisation.hh b/examples/extended/parallel/ParN04/include/ExN04TrackerParametrisation.hh new file mode 100644 index 0000000000..dc1fa0102e --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04TrackerParametrisation.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 ExN04TrackerParametrisation_H +#define ExN04TrackerParametrisation_H 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4Tubs; + +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/parallel/ParN04/include/ExN04TrackerSD.hh b/examples/extended/parallel/ParN04/include/ExN04TrackerSD.hh new file mode 100644 index 0000000000..57068a1950 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04TrackerSD.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 ExN04TrackerSD_h +#define ExN04TrackerSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04TrackerHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04TrackerSD : public G4VSensitiveDetector +{ + + public: + 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: + ExN04TrackerHitsCollection *trackerCollection; + + public: +}; + + + + +#endif + diff --git a/examples/extended/parallel/ParN04/include/ExN04TrackingAction.hh b/examples/extended/parallel/ParN04/include/ExN04TrackingAction.hh new file mode 100644 index 0000000000..9007f2bd85 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/include/ParExMarshaledHits.hh b/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh new file mode 100644 index 0000000000..f8d97a77ba --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh @@ -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. * +// ******************************************************************** +// +// $Id: ParExMarshaledHits.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifndef ParExMarshaledHits_h +#define ParExMarshaledHits_h 1 + +#include "G4THitsCollection.hh" +#include "ParMarshaledObj.hh" + +#include "G4SDManager.hh" +#include "G4RunManager.hh" + +// Calling sequence: +// MarshaledHCofThisEvent::MarshaledHCofThisEvent() +// -> MarshaledHCofThisEvent::MarshalHitsCollection +// (G4VHitsCollection * aBaseHC, G4String HCname) +// -> TMarshaledHitsCollection::Marshal(G4VHitsCollection * aBaseHC) +// -> TMarshaledHitsCollection::MarshalHit(T *aHit) +// MarshaledHCofThisEvent::UnmarshalSlaveHCofThisEvent() +// -> TMarshaledHitsCollection::UnmarshalSlaveHitsCollection +// (G4String HCname, G4String SDname) +// -> TMarshaledHitsCollection::Unmarshal(G4THitsCollection * aHC) +// -> TMarshaledHitsCollection::UnmarshalHit(T * aHit) + +// class T derived from G4VHit +template class TMarshaledHitsCollection + : public MarshaledObj +{ + public: + inline void Marshal(G4VHitsCollection * aBaseHC); // Marshal hits of aBaseHC + + inline void UnmarshalSlaveHitsCollection(G4String & HCname, G4String & SDname); + inline void Unmarshal(G4THitsCollection * aHC); + + // By default, we a hit of type T as a void pointer + inline void MarshalHit( T *aHit ) + { MarshaledObj::Marshal((void *)aHit, sizeof(*aHit)); } + + // Unmarshal hits into HC for T. By default assume it was marshaled + // as a void pointer (ObjPtr) + inline void UnmarshalHit(T * aHit) + { + if (isNewHitsCollection) + *aHit = *(T *)MarshaledObj::UnmarshalAsSharedObjPtr(); + else + G4Exception( + "Event Level Parallelism: Every hit collection sent to master" + " should be new.\n Current hit collection, " + + collectionName + ", is not new.\n" + ); + } + + protected: + static G4bool isNewHitsCollection; + static G4String collectionName; +}; + +template +G4bool TMarshaledHitsCollection::isNewHitsCollection = true; + +template +G4String TMarshaledHitsCollection::collectionName = ""; + +template +inline void TMarshaledHitsCollection::Marshal(G4VHitsCollection * aBaseHC) +{ G4THitsCollection *aHC = (G4THitsCollection *)aBaseHC; + G4int numHits = aHC->entries(); + MarshaledObj::Marshal( numHits ); +#ifdef TOPC_DEBUG + G4cout << "Marshaled numHits: " << numHits << G4endl; +#endif + for (int j = 0; j < numHits; j++) { + T *aHit = (*aHC)[j]; + MarshalHit( aHit ); + } +} + +template +inline void TMarshaledHitsCollection::Unmarshal + (G4THitsCollection * aHC) +{ + G4int numHits; + MarshaledObj::Unmarshal( numHits ); +#ifdef TOPC_DEBUG + G4cout << "numHits: " << numHits << G4endl; +#endif + for (int j = 0; j < numHits; j++) { + T *aHit = new T; + UnmarshalHit( aHit ); + aHC->insert( aHit ); + } +} + +template +inline void TMarshaledHitsCollection::UnmarshalSlaveHitsCollection + (G4String & HCname, G4String & SDname) +{ + G4HCofThisEvent *HCE = G4RunManager::GetRunManager()-> + GetCurrentEvent()-> + GetHCofThisEvent(); + // Find or create HitsCollection, aHC, with name HCname + G4THitsCollection *aHC; + // HCname is unique. + collectionName = HCname; + G4int HCID = G4SDManager::GetSDMpointer()->GetCollectionID(HCname); + if (HCID < 0) + { aHC = new G4THitsCollection(SDname, HCname); + HCID = G4SDManager::GetSDMpointer()->GetCollectionID(HCname); + HCE->AddHitsCollection( HCID, aHC ); + isNewHitsCollection = true; + } + else { + aHC = (G4THitsCollection *)HCE->GetHC(HCID); + isNewHitsCollection = ( aHC->entries() == 0 ? true : false ); + } + + Unmarshal(aHC); +}; + +#endif diff --git a/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh b/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh new file mode 100644 index 0000000000..31dda8ff84 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh @@ -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. * +// ******************************************************************** +// +// $Id: ParMarshaledObj.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifndef ParMarshaledObj_h +#define ParMarshaledObj_h + +#include +#include "g4std/iostream" + +// Geant4 types +#include "globals.hh" +#include "G4Event.hh" + +// A MarshaledObj is conceptually a +// dynamically resizable buffer, size, and cursor. +// Data structure of buffer: +// Note that buffer has no internal construct to determine size of buffer +// It is the responsibility of the user to know types of field1, ... +// There are two types of MarshaledObj, depending on whether +// IsUnmarshaling() is true or false. +// I use malloc/free because I can also use realloc to extend the buffer. + +class MarshaledObj { + private: + // Make sure all marshaled objects are word aligned. + static const int WORD_SIZE = sizeof(long); + static inline int ROUND_UP( int x ) + { return (((x)+(WORD_SIZE-1)) / WORD_SIZE) * WORD_SIZE; } + + public: + inline MarshaledObj(int total_size) + :extent(ROUND_UP(total_size)),size(0) + { if (extent > 0) + buffer = (char *)malloc(extent); + else + buffer = NULL; + cursor = buffer + size; + } + inline MarshaledObj() + :extent(128),size(0) + { buffer = (char *)malloc(extent); + cursor = buffer + size; + } + // this is for an arbitrary buffer; we specify the size explicitly + // if buf_len == 0, then we'll be unmarshaling + inline MarshaledObj(void *buf, int buf_len = 0) + :extent(ROUND_UP(buf_len+sizeof(int))), + size(ROUND_UP(buf_len+sizeof(buf_len))) + { if ( buf_len <= 0 ) { + extent = size = 0; // IMPLIES: IsUnmarshaling() => true + buffer = (char *)buf; + cursor = buffer; + } else { + buffer = (char *)malloc(extent); + *(int *)buffer = buf_len; + memcpy( buffer+sizeof(int), (char *)buf, extent ); + cursor = buffer + size; + } + } + inline ~MarshaledObj() + { if ( ! IsUnmarshaling() ) + free(buffer); + } + + inline bool IsUnmarshaling() { return (extent <= 0); } + + private: + // Don't use copy constructor + const MarshaledObj& operator=(const MarshaledObj& right); + + protected: + char *buffer; /* First entry is size of buffer */ + private: + int extent; /* extent is number of bytes allocated, extent >= size */ + int size; /* Initially, buffer has entry for size */ + char *cursor; + + inline void ResizeBuffer( size_t new_size ) + { int displacement = cursor - buffer; + extent = new_size; + buffer = (char *)realloc( buffer, extent ); + cursor = buffer + displacement; + } + + public: + inline int BufferSize() + { return cursor - buffer; } + inline void *GetBuffer() { + return buffer; + } + // inline void SetNewBuffer(void *buf) { + // free(buffer); + // buffer = (char *)buf; + // size = 0; /* unknown size */ + // cursor = buffer; + // } + +#define MarshalDefinition(TYPE) \ + inline void Marshal(TYPE a##TYPE) { \ + if (IsUnmarshaling()) \ + throw "Tried to marshal in object marked isUnmarshaling = true"; \ + size += ROUND_UP(sizeof(a##TYPE)); \ + while ( size > extent ) \ + ResizeBuffer( 2 * extent ); \ + *(TYPE *)cursor = a##TYPE; \ + cursor = buffer + size; \ + } \ + inline void Unmarshal(TYPE & a##TYPE) { \ + a##TYPE = *(TYPE *)cursor; \ + cursor += ROUND_UP(sizeof(a##TYPE)); \ + } \ + inline TYPE UnmarshalAs##TYPE() { \ + TYPE a##TYPE = *(TYPE *)cursor; \ + cursor += ROUND_UP(sizeof(a##TYPE)); \ + return a##TYPE; \ + } + +// This works for any inline objects (no embedded pointers) +MarshalDefinition(G4int) +MarshalDefinition(G4double) +MarshalDefinition(G4ThreeVector) +// MarshalDefinition(int) +// MarshalDefinition(double) + + +// These cannot follow the pattern, since the data is not inline. + inline void MarshalG4String(G4String& aG4String) { + if (IsUnmarshaling()) + throw "Tried to marshal in object marked isUnmarshaling = true"; + size += ROUND_UP( aG4String.length() + 1 ); // 1 for final NULL char + while ( size > extent ) + ResizeBuffer( 2 * extent ); + strcpy( (char *)cursor, aG4String ); + cursor = buffer + size; + } + inline void Marshal(G4String& aG4String) + { MarshalG4String( aG4String ); } + inline void Unmarshal(G4String& aG4String) { + aG4String = (char *)cursor; + cursor += ROUND_UP( aG4String.length() + 1 ); // 1 for final NULL char + } + // INEFFICIENT? (copies return value) + inline G4String UnmarshalAsG4String() { + G4String aG4String = (char *)cursor; + cursor += ROUND_UP( aG4String.length() + 1 ); // 1 for final NULL char + return aG4String; + } + +// USAGE: MarshalObjPtr( &aG4obj, sizeof(aG4obj) ); +// USAGE: MarshaledObj tmp; +// G4Obj *aObjPtr = tmp.UnmarshalObjPtr(); +// ... +// delete aObjPtr; + inline void MarshalObjPtr(const void * aObjPtr, int obj_size) + { + if (IsUnmarshaling()) + throw "Tried to marshal in object marked isUnmarshaling = true"; + size += ROUND_UP( obj_size + sizeof(int) ); + while ( size > extent ) + ResizeBuffer( 2 * extent ); + *(int *)cursor = obj_size; + memcpy( cursor+sizeof(int), aObjPtr, obj_size ); + cursor = buffer + size; + } + inline void Marshal(const void * aObjPtr, int obj_size) + { MarshalObjPtr(aObjPtr,obj_size); } + inline void Unmarshal(void * & aObjPtr) + { + int obj_size = *(int *)cursor; + aObjPtr = malloc( obj_size ); + memcpy( aObjPtr, cursor+sizeof(int), obj_size ); + cursor += ROUND_UP( obj_size + sizeof(int) ); + } + inline void * UnmarshalAsObjPtr() + { + void *aObjPtr; + Unmarshal(aObjPtr); + return aObjPtr; + } + inline void * UnmarshalAsSharedObjPtr() + { + int obj_size = *(int *)cursor; + void *aObjPtr; + aObjPtr = cursor+sizeof(int); + cursor += ROUND_UP( obj_size + sizeof(int) ); + return aObjPtr; + } + // UnmarshalAsSharedObjPtr: return value points into buffer of curr. obj. + + inline void MarshalMarshaledObj(MarshaledObj& aMarshaledObj) { + if (IsUnmarshaling()) + throw "Tried to marshal in object marked isUnmarshaling = true"; + MarshalObjPtr( aMarshaledObj.GetBuffer(), aMarshaledObj.BufferSize() ); + } + // INEFFICIENT? (copies return value) + inline MarshaledObj UnmarshalAsMarshaledObj() { + MarshaledObj aMarshaledObj( ((char *)cursor)+sizeof(int), *(int *)cursor ); + cursor += ROUND_UP( aMarshaledObj.BufferSize()+sizeof(int) ); + return aMarshaledObj; + } +}; + +class MarshaledHCofThisEvent : public MarshaledObj +{ + public: + inline MarshaledHCofThisEvent(int size) : MarshaledObj(size) { } + // Trivial constructor. MarshaledHCofThisEvent(0) creates nothing. + MarshaledHCofThisEvent(); + // Constructor copies hits from HCE of master in this marshaled object + MarshaledHCofThisEvent(G4Event *anEvent); + // Constructor copies hits from HCE of anEvent in this marshaled object + inline MarshaledHCofThisEvent(void *buf) + : MarshaledObj(buf) // Object will be set for IsUnmarshaling + { } + + void UnmarshalSlaveHCofThisEvent(); + // Unmarshal copies hits from slave in HCE of master + // We inherit destructor of ParMarshaledObj + // It does so by calling UnmarshalSlaveHitsCollection for dispatching + void UnmarshalSlaveHitsCollection(G4String & HCname, G4String & SDname); + + void MarshalHitsCollection(G4VHitsCollection * aBaseHC, G4String HCname); + // To be defined in ParExN02MarshaledHits.cc or other + // application-specific file. + + private: + // Don't use copy constructor + const MarshaledHCofThisEvent& operator=(const MarshaledHCofThisEvent& right); + void MarshalHitsCollection(const G4Event *anEvent); +}; + +/* +main() { + MarshaledObj tmp = MarshaledObj(); + tmp.Marshal(5); + tmp.Marshal(5.3); + tmp.Marshal(7); + + MarshaledObj tmp2; + tmp2.MarshalMarshaledObj(tmp); + cout << tmp2.UnmarshalAsG4int() << "\n"; + cout << tmp2.UnmarshalAsG4double() << "\n"; + cout << tmp2.UnmarshalAsG4int() << "\n"; +} +*/ + +#endif diff --git a/examples/extended/parallel/ParN04/include/ParRandomState.hh b/examples/extended/parallel/ParN04/include/ParRandomState.hh new file mode 100644 index 0000000000..6104e88221 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ParRandomState.hh @@ -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: ParRandomState.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- +// Each of the three members below must be modified for the application. +// This default version simply sets the random seed on the slave using +// the eventID. +// -------------------------------------------------------------------- + +#ifndef ParRandomState_h +#define ParRandomState_h 1 + +#include "ParMarshaledObj.hh" + +class ParMarshaledRandomState : public MarshaledObj +{ + public: + // If 0, GetNextRandomStateForSlave not called. + static const int RANDOM_STATE_SIZE = sizeof(long); + + // Called on master + inline void *GetNextRandomStateForSlave() + { static long * nextSeed = new long; + *nextSeed = (long) (100000000L * HepRandom::getTheGenerator()->flat()); +#ifdef TOPC_DEBUG + G4cout << "GET SEED: " << *nextSeed << G4endl; +#endif + return nextSeed; + } + + // Called on slave at beginning of new event. + inline void SetNextRandomStateForSlave( G4int eventID, void *randomState ) + { HepRandom::setTheSeed( *(long *)randomState ); +#ifdef TOPC_DEBUG + G4cout << "SET SEED: " << *(long *)randomState << G4endl; +#endif + } + + public: + // The constructors do not need to be modified. + inline ParMarshaledRandomState( G4int eventID ) + : MarshaledObj(RANDOM_STATE_SIZE+sizeof(int)+sizeof(G4int)) + { Marshal(eventID); + Marshal( GetNextRandomStateForSlave(), RANDOM_STATE_SIZE ); + } + inline ParMarshaledRandomState( void *buf ) + : MarshaledObj(buf) + // MarshaledObj() called with buf and 0 size, creates object for unmarshaling + { } + + inline void unmarshalEventIDandSetState( G4int & eventID ) + { Unmarshal(eventID); + // SharedObjPtr is pointer to random state. + SetNextRandomStateForSlave( eventID, UnmarshalAsSharedObjPtr() ); + } +}; + +#endif diff --git a/examples/extended/parallel/ParN04/include/ParRunManager.hh b/examples/extended/parallel/ParN04/include/ParRunManager.hh new file mode 100644 index 0000000000..1966831238 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ParRunManager.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: ParRunManager.hh,v 1.2 2002/06/06 17:05:05 cooperma Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifndef ParRunManager_h +#define ParRunManager_h 1 + +#include "G4RunManager.hh" +#include "G4StateManager.hh" +#include "G4UserEventAction.hh" +#include "topc.h" + +class ParRunManager : public G4RunManager +{ + + protected: // with description + virtual void DoEventLoop(G4int n_event, + const char* macroFile=0, + G4int n_select=-1); + + private: // TOP-C callbacks + TOPC_BUF GenerateEventInput(); + TOPC_BUF DoEvent( void * input_buf ); + TOPC_ACTION CheckEventResult( void * input_buf, void * ignore ); + + static ParRunManager* myRunManager; + static TOPC_BUF MyGenerateEventInput(); + static TOPC_BUF MyDoEvent( void * input_buf ); + static TOPC_ACTION MyCheckEventResult( void * input_buf, void * ignore ); + + // Copies of local variables of G4RunManager::DoEventLoop() + static G4StateManager* stateManager; + static G4int n_event; + static G4int n_select; + static G4String msg; + + G4int i_event; // Used in lieu of i_event in RunManager::DoEventLoop() + + inline void ImportDoEventLoopLocals( + G4StateManager* stateManager, G4int n_event, + G4int n_select, G4String msg ) + { + ParRunManager::stateManager = stateManager; + ParRunManager::n_event = n_event; + ParRunManager::n_select = n_select; + ParRunManager::msg = msg; + ParRunManager::myRunManager = this; + } + + // Copy of userEventAction: see ParRunManager.cc for further comments + G4UserEventAction * origUserEventAction; + +}; + +#endif diff --git a/examples/novice/N04/prerun.mac b/examples/extended/parallel/ParN04/prerun.mac similarity index 100% rename from examples/novice/N04/prerun.mac rename to examples/extended/parallel/ParN04/prerun.mac diff --git a/examples/extended/parallel/ParN04/procgroup b/examples/extended/parallel/ParN04/procgroup new file mode 100644 index 0000000000..2a194da197 --- /dev/null +++ b/examples/extended/parallel/ParN04/procgroup @@ -0,0 +1,62 @@ +# NOTE: '#' in column 0 is a comment. + +local 0 +localhost 1 - >slave1.out +localhost 1 - >slave2.out + +# lxplus015.cern.ch 1 - >slave1.out +# lxplus016.cern.ch 1 - >slave2.out +# lxplus017.cern.ch 1 - >slave2.out + +# The general format is that "local 0" (required) implies creation of a master. +# Otherwise there is one line per slave. +# The first field is the hostname or localhost (in a form valid for "rsh") +# If you prefer ssh over rsh, then (e.g. in csh): setenv RSH ssh +# The second field, 1, is obligatory. +# The third field is an absolute or relative pathname (e.g.: ./XXX or ../XXX) +# of the binary. A relative pathname is appended to path of the binary +# on master. The slave process will execute in the same directory +# as the current working directory of the master, if possible. +# Otherwise, the slave will execute in the home directory. +# If the third field is `-', then the command line (including arguments) +# for that slave will be the same as on the master. +# Any additional fields (fourth and beyond) are appended to the +# command line for that slave only. +# Note that '>slave1.out' works, redirecting standard output. However, +# the output file, slave1.out, will be placed in the home directory. +# Currently, `localhost' implies the Bourne shell, and any other +# name implies the default user shell for that machine. +# By default, standard output and error are sent to user tty (a la rsh). +# +# The format is inherited from MPICH, which grew from P4. + +#========================================================================= +#EXAMPLE: +# # Master process +# local 0 +# # One slave process on local computer, using same binary and same arguments +# localhost 1 - +# # One remote slave process, with absolute path to binary and no arguments +# regulus.ccs.neu.edu 1 /ccs/tmp/gene/a.out +# # One slave using alpha architecture, +# # with path of alpha binary relative to binary of this master process. +# # Output placed in slave-alpha-1.out in user's home directory. +# alpha.ccs.neu.edu 1 ../alpha/a.out > slave-alpha-1.out + +#========================================================================= +#IF YOU HAVE PROBLEMS: +# MPINU uses "rsh" to start a slave process. Diagnose it via: +# rsh REMOTE_SLAVE_HOST hostname +# If it doesn't work or if it asks you for a password, try: +# 1. Add a .rhosts file on the remote host and specify your local host. +# 2. Sometimes adding .localhost to your .rhosts helps. +# 3. Specify an alternative to "rsh" in your shell. For example: +# RSH=ssh; export RSH # in Bourne shell, bash, etc. +# setenv RSH ssh # in csh, tcsh, etc. +# 4. If you use "ssh", you may also need to copy keys to allow +# login to the remote host without a password. +# It's also possible that mpinu guessed badly the hostname of your local host. +# If you suspect this, on the master try (in csh, tcsh): +# setenv CALLBACK_HOST LOCAL_MASTER_HOST +# where LOCAL_MASTER_HOST is the correct hostname of the local master. + diff --git a/examples/extended/parallel/ParN04/pythia_event.data b/examples/extended/parallel/ParN04/pythia_event.data new file mode 100644 index 0000000000..d99b2c8a36 --- /dev/null +++ b/examples/extended/parallel/ParN04/pythia_event.data @@ -0,0 +1,1021 @@ + 411 + 2 25 2 3 0.19538240e+02 0.24846369e+02 -0.60465937e+01 0.30378159e+03 + 2 23 4 5 0.11302123e+01 -0.23156443e+02 0.11416953e+03 0.89038048e+02 + 2 23 6 7 0.18408028e+02 0.48002811e+02 -0.12021612e+03 0.90217377e+02 + 1 13 0 0 -0.22464989e+02 -0.38451706e+02 0.20864853e+02 0.10570000e+00 + 1 -13 0 0 0.23595201e+02 0.15295260e+02 0.93304688e+02 0.10570000e+00 + 1 11 0 0 0.56072354e+00 -0.13617630e+02 -0.84170624e+02 0.50999998e-03 + 1 -11 0 0 0.17847303e+02 0.61620441e+02 -0.36045494e+02 0.50999998e-03 + 2 -2 51 51 -0.24825256e+01 -0.14315886e+01 0.28472370e+00 0.55999998e-02 + 2 21 51 51 0.66146022e+00 -0.66755712e+00 0.81425560e+00 0.00000000e+00 + 2 21 51 51 0.11284412e+00 -0.12166600e+00 0.19426866e+01 0.00000000e+00 + 2 21 51 51 -0.72664952e+00 0.35631818e+00 0.11287285e+00 0.00000000e+00 + 2 21 51 51 -0.12132846e+01 -0.13862884e+00 0.64822245e+01 0.00000000e+00 + 2 2 51 51 -0.87098330e-01 -0.17324427e+00 0.70668072e-01 0.55999998e-02 + 2 2 58 58 0.36495557e+01 -0.73652897e+01 0.82880411e+01 0.55999998e-02 + 2 21 58 58 0.23490760e+00 -0.55826795e+00 0.16173358e+01 0.00000000e+00 + 2 21 58 58 0.59331387e+00 0.26031549e+01 0.17713112e+01 0.00000000e+00 + 2 21 58 58 0.78495450e-01 -0.12233107e+00 0.68161473e-01 0.00000000e+00 + 2 21 58 58 0.12431704e+00 0.19548857e+00 -0.11572183e+02 0.00000000e+00 + 2 21 58 58 0.43687469e+00 -0.20160186e+00 -0.11824560e+02 0.00000000e+00 + 2 21 58 58 0.26381168e+01 -0.34718337e+01 -0.46374741e+02 0.00000000e+00 + 2 21 58 58 -0.86590804e-01 -0.30970857e+00 -0.16267967e+01 0.00000000e+00 + 2 21 58 58 0.16517977e+00 0.52066833e+00 -0.19957296e+01 0.00000000e+00 + 2 21 58 58 -0.42709002e+01 0.28111598e+01 -0.10303283e+02 0.00000000e+00 + 2 21 58 58 -0.22370346e+00 -0.12734073e+00 -0.15402281e+01 0.00000000e+00 + 2 -3 58 58 -0.33012703e+00 -0.17668970e+00 -0.12896216e+02 0.19900000e+00 + 2 3 82 82 0.74550366e+00 0.22669594e+01 -0.11368204e+03 0.19900000e+00 + 2 21 82 82 -0.21134222e+00 -0.81889890e-01 -0.24464021e+01 0.00000000e+00 + 2 21 82 82 -0.36056280e+00 -0.17687646e+00 -0.21671016e+01 0.00000000e+00 + 2 21 82 82 0.50335813e+00 -0.12304134e+01 -0.40660557e+02 0.00000000e+00 + 2 2101 82 82 -0.34702000e+00 -0.54470760e+00 -0.43786853e+03 0.57933331e+00 + 2 3 90 90 -0.18407012e+01 0.18637952e+01 0.73181429e+01 0.00000000e+00 + 2 -3 90 90 0.18407012e+01 -0.18637952e+01 -0.25560465e+01 0.00000000e+00 + 2 1 97 97 -0.17644401e+01 -0.56901944e+00 -0.24435639e+00 0.00000000e+00 + 2 -1 97 97 0.17644401e+01 0.56901944e+00 -0.53484602e+01 0.00000000e+00 + 2 1 102 102 -0.20567404e+00 -0.15753872e+01 -0.21010509e+00 0.00000000e+00 + 2 -1 102 102 0.20567404e+00 0.15753872e+01 0.59660425e+01 0.00000000e+00 + 2 2103 108 108 -0.14887555e+00 0.14248030e+00 0.69132288e+03 0.77133328e+00 + 2 21 108 108 -0.11365955e+01 -0.49284640e+00 0.43605831e+02 0.00000000e+00 + 2 21 108 108 -0.59331387e+00 -0.26031549e+01 0.72112262e+00 0.00000000e+00 + 2 21 108 108 0.67539737e-01 -0.14405334e+00 0.80054253e-01 0.00000000e+00 + 2 21 108 108 0.16206586e+00 -0.34149442e-01 -0.13090137e+00 0.00000000e+00 + 2 21 108 108 -0.25859413e+01 -0.33627687e+01 -0.18993883e+02 0.00000000e+00 + 2 21 108 108 -0.11061648e+02 -0.10030169e+02 -0.55285320e+02 0.00000000e+00 + 2 21 108 108 -0.40657463e+01 -0.59533137e+00 -0.16637203e+02 0.00000000e+00 + 2 21 108 108 0.81168249e-01 -0.23527068e+00 -0.89707837e-01 0.00000000e+00 + 2 2 108 108 0.13900024e+00 0.65477300e+00 0.10666741e+00 0.55999998e-02 + 2 21 131 131 0.21285610e+01 -0.96450549e+00 -0.12914455e+01 0.00000000e+00 + 2 21 131 131 -0.21285610e+01 0.96450549e+00 0.15101042e+02 0.00000000e+00 + 2 21 141 141 -0.14508307e+01 -0.12847765e+00 0.52964214e+02 0.00000000e+00 + 2 21 141 141 0.14508307e+01 0.12847765e+00 -0.36845894e+02 0.00000000e+00 + 2 92 52 57 -0.37352538e+01 -0.21763668e+01 0.97074308e+01 0.86355495e+01 + 2 221 159 161 -0.80582070e+00 -0.12772357e+01 0.85968161e+00 0.54750001e+00 + 1-2212 0 0 -0.39845359e+00 -0.18744478e+00 -0.28154469e+00 0.93830001e+00 + 1 2212 0 0 -0.12567594e+01 -0.21684027e+00 0.64517856e+00 0.93830001e+00 + 2 111 162 163 -0.52594995e+00 -0.46889600e+00 0.57446718e+00 0.13500001e+00 + 2 -213 164 165 -0.11209842e+00 0.69486573e-01 0.47767506e+01 0.80699837e+00 + 2 213 166 167 -0.63617158e+00 -0.95436491e-01 0.31328979e+01 0.89775747e+00 + 2 92 59 81 0.30094395e+01 -0.62025914e+01 -0.86388885e+02 0.77777664e+02 + 1 211 0 0 0.13427008e+01 -0.26062658e+01 0.30216877e+01 0.13959999e+00 + 2 311 168 168 0.40764526e+00 -0.21195003e+00 0.51881242e+00 0.49770001e+00 + 2 -313 169 170 0.11182569e+01 -0.16883652e+01 0.26147256e+01 0.82680744e+00 + 2 -213 171 172 -0.10183442e+00 -0.47228408e+00 0.77066433e+00 0.76131308e+00 + 2 213 173 174 0.88673675e+00 -0.84632939e+00 0.11933347e+01 0.11022177e+01 + 1 -211 0 0 -0.18196012e+00 -0.49367240e+00 0.10575020e+01 0.13959999e+00 + 2 323 175 176 0.18539359e+00 0.28427398e+00 0.68860364e+00 0.88390887e+00 + 1 -321 0 0 0.90151668e+00 -0.61134267e+00 0.95534205e+00 0.49360001e+00 + 1 211 0 0 -0.13798623e+00 0.43877777e+00 0.25701129e+00 0.13959999e+00 + 1 2112 0 0 0.66577101e+00 0.28948170e+00 -0.88070399e+00 0.93959999e+00 + 1-2212 0 0 -0.47853556e+00 0.29844052e+00 -0.12891874e+01 0.93830001e+00 + 2 323 177 178 -0.38174641e+00 0.15966283e+00 -0.24305027e+01 0.90328294e+00 + 2 -323 179 180 0.68835557e+00 -0.14367788e+00 -0.61069512e+01 0.81600565e+00 + 2 221 181 183 0.27491635e+00 0.20284052e+00 -0.87451458e+01 0.54750001e+00 + 1 211 0 0 0.11579485e+01 -0.22874067e+01 -0.31742264e+02 0.13959999e+00 + 2 311 184 184 0.75824469e+00 -0.85745949e+00 -0.87357492e+01 0.49770001e+00 + 1 -321 0 0 -0.36013183e+00 0.37428829e+00 -0.48698983e+01 0.49360001e+00 + 1 321 0 0 0.23628737e+00 -0.47319981e+00 -0.47992659e+01 0.49360001e+00 + 2 3322 185 186 -0.35570526e+00 0.61233449e+00 -0.25788193e+01 0.13149000e+01 + 2-3212 187 188 -0.17342371e+01 0.64074337e+00 -0.66727114e+01 0.11926000e+01 + 2 -213 189 190 -0.14601166e+01 0.14058664e+01 -0.60593095e+01 0.68749446e+00 + 2 213 191 192 -0.37675244e+00 0.15691012e+00 -0.94519520e+01 0.91518497e+00 + 2 311 193 193 -0.45328639e-01 -0.37425721e+00 -0.31041012e+01 0.49770001e+00 + 2 92 83 89 0.32993677e+00 0.23307204e+00 -0.59682465e+03 0.10651698e+02 + 1 -321 0 0 0.34642014e+00 0.13582803e+01 -0.57536453e+02 0.49360001e+00 + 2 111 194 195 -0.22437094e-01 0.35515699e+00 -0.29233303e+02 0.13500001e+00 + 1 211 0 0 0.29584134e+00 0.22412711e+00 -0.42484713e+01 0.13959999e+00 + 2 113 196 197 -0.63742548e-02 -0.19909430e+00 -0.20716032e+02 0.76558536e+00 + 1 -211 0 0 0.12700388e+00 -0.35441807e-02 -0.40301620e+02 0.13959999e+00 + 2 223 198 200 -0.50310060e-01 -0.10083643e+01 -0.20915148e+02 0.75687313e+00 + 1 2212 0 0 -0.36020714e+00 -0.49348956e+00 -0.42387360e+03 0.93830001e+00 + 2 92 91 96 0.00000000e+00 0.00000000e+00 0.47620964e+01 0.10393816e+02 + 2 -313 201 202 -0.58042550e+00 0.63733709e+00 0.31947005e+01 0.89394814e+00 + 1 -211 0 0 -0.35475734e+00 0.21957833e+00 -0.16065042e+00 0.13959999e+00 + 2 323 203 204 -0.72124936e-02 0.54061729e+00 0.17406511e+01 0.81076276e+00 + 2 -313 205 206 0.15946677e+00 -0.66047955e+00 -0.38343780e-01 0.87225807e+00 + 2 -213 207 208 -0.44858670e+00 0.62688202e+00 0.16363863e+01 0.70860994e+00 + 1 321 0 0 0.12315153e+01 -0.13639352e+01 -0.16106471e+01 0.49360001e+00 + 2 92 98 101 0.00000000e+00 0.00000000e+00 -0.55928164e+01 0.50428748e+01 + 1 -211 0 0 -0.78326690e+00 -0.37968913e+00 -0.38600278e+00 0.13959999e+00 + 2 213 209 210 -0.80133951e+00 0.40485406e+00 -0.19952333e+00 0.79269451e+00 + 2 111 211 212 0.29410553e+00 -0.14981756e+00 -0.61370862e+00 0.13500001e+00 + 2 223 213 215 0.12905009e+01 0.12465262e+00 -0.43935819e+01 0.76472420e+00 + 2 92 103 107 0.00000000e+00 0.00000000e+00 0.57559376e+01 0.52291427e+01 + 2 -213 216 217 0.30341426e-01 -0.80026239e-02 0.13941473e+00 0.74790990e+00 + 2 213 218 219 0.20280991e+00 -0.31684929e+00 0.90099144e+00 0.79093164e+00 + 2 -213 220 221 -0.98886512e-01 -0.54532015e+00 0.56220156e+00 0.82238573e+00 + 1 211 0 0 -0.48269165e+00 0.48339233e-01 0.34247407e+00 0.13959999e+00 + 2 113 222 223 0.34842682e+00 0.82183284e+00 0.38108559e+01 0.86568820e+00 + 2 92 109 130 -0.19142347e+02 -0.16700491e+02 0.64469952e+03 0.52673993e+03 + 2 331 224 225 -0.31828788e+00 -0.28879259e-01 0.30639532e+03 0.95759463e+00 + 2 2214 226 227 -0.17091548e+00 0.41215912e+00 0.18134865e+03 0.12281277e+01 + 1 -211 0 0 -0.21337096e+00 -0.78557378e+00 0.66059822e+02 0.13959999e+00 + 2 331 228 229 -0.59956498e-01 0.38622740e+00 0.13099792e+03 0.95781225e+00 + 2 223 230 232 0.33040482e+00 0.16450146e+00 0.18928904e+02 0.78479451e+00 + 2 221 233 235 -0.24549142e+00 -0.13222420e+00 0.19283197e+02 0.54750001e+00 + 2 113 236 237 -0.32288766e+00 -0.14266454e+00 0.10670929e+02 0.72956729e+00 + 2 111 238 239 -0.62115288e+00 -0.17956005e+01 0.10359015e+01 0.13500001e+00 + 2 213 240 241 0.15887353e+00 -0.12029245e+00 0.69275177e+00 0.76900363e+00 + 1 -211 0 0 0.12893344e+00 0.46391614e-01 -0.11724535e+00 0.13959999e+00 + 2 213 242 243 -0.66157222e+00 -0.12031867e+00 -0.27802687e+01 0.92537868e+00 + 2 111 244 245 -0.49866670e+00 -0.26722581e+01 -0.25359402e+01 0.13500001e+00 + 2 113 246 247 -0.49806209e+01 -0.47304673e+01 -0.26734175e+02 0.81701642e+00 + 1 -211 0 0 -0.12273804e+01 -0.30985761e+00 -0.48824930e+01 0.13959999e+00 + 2 -313 248 249 -0.28246355e+01 -0.28250186e+01 -0.16902178e+02 0.89466429e+00 + 2 311 250 250 -0.17557780e+01 -0.17156659e+01 -0.10652614e+02 0.49770001e+00 + 2-2114 251 252 -0.16921530e+01 -0.92987555e+00 -0.78336420e+01 0.12249888e+01 + 2 2214 253 254 -0.24333186e+01 -0.18534211e+01 -0.10909353e+02 0.12117262e+01 + 2 -213 255 256 -0.93599880e+00 -0.12221253e+00 -0.38374243e+01 0.97767270e+00 + 2 113 257 258 -0.76206547e+00 0.73393363e+00 -0.18387768e+01 0.10223405e+01 + 1 211 0 0 -0.16266888e+00 -0.15386631e+00 -0.33147329e+00 0.13959999e+00 + 2 223 259 261 0.12636223e+00 -0.55055213e-02 -0.13583282e+01 0.78175670e+00 + 2 92 132 140 0.00000000e+00 0.00000000e+00 0.13809596e+02 0.11468465e+02 + 1 -211 0 0 -0.79316360e+00 0.24428114e+00 0.46131530e+01 0.13959999e+00 + 2 113 262 263 -0.30535904e+00 -0.15252879e+00 0.24335117e+01 0.57161868e+00 + 1 211 0 0 -0.22026351e+00 0.44651905e+00 0.72053212e+00 0.13959999e+00 + 2 313 264 265 -0.12834707e+00 -0.90234041e-01 0.38922803e+01 0.10082972e+01 + 1 -321 0 0 -0.38574028e+00 0.73624663e-01 0.16868111e+01 0.49360001e+00 + 2 323 266 267 0.66993225e+00 0.29340930e-01 0.70507574e+00 0.95219034e+00 + 2 -323 268 269 0.14431622e+01 -0.82960689e+00 -0.57296562e+00 0.92617905e+00 + 1 211 0 0 -0.13503614e+00 0.21710680e+00 0.70387549e-02 0.13959999e+00 + 2 111 270 271 -0.14518487e+00 0.61497144e-01 0.32415950e+00 0.13500001e+00 + 2 92 142 158 0.00000000e+00 0.00000000e+00 0.16118320e+02 0.88401489e+02 + 2 331 272 274 -0.70734853e+00 0.86514942e-01 -0.30510149e+01 0.95836711e+00 + 2 113 275 276 0.74551374e+00 -0.93517542e-01 0.66860813e+00 0.87463605e+00 + 2 223 277 278 -0.37139601e+00 0.12721571e+00 0.48620519e+00 0.78128511e+00 + 2 221 279 281 -0.90886220e-01 0.59690247e-02 0.11176066e+01 0.54750001e+00 + 1 211 0 0 -0.49295121e+00 -0.27733743e+00 0.28253324e+01 0.13959999e+00 + 2 -213 282 283 0.41200882e+00 0.29818064e+00 0.78310447e+01 0.85314947e+00 + 2 213 284 285 -0.66296601e+00 0.36033589e-01 0.92667618e+01 0.96779156e+00 + 2 111 286 287 0.21580642e+00 -0.42132854e-01 0.88119942e+00 0.13500001e+00 + 2 -213 288 289 -0.57515484e+00 0.10795248e+00 0.28336853e+02 0.88690424e+00 + 2 221 290 292 -0.52397922e-01 -0.28998443e+00 -0.15921714e+01 0.54750001e+00 + 2 213 293 294 0.86032256e-01 -0.63731536e-01 -0.91060656e+00 0.48154864e+00 + 2 -213 295 296 0.15886268e+00 -0.38100131e-01 -0.55007129e+01 0.69966000e+00 + 1 2212 0 0 0.24402221e+00 0.14529544e+00 -0.44689755e+01 0.93830001e+00 + 1 211 0 0 0.48864394e+00 0.44582254e+00 -0.10788389e+02 0.13959999e+00 + 2-2224 297 298 -0.33853960e+00 -0.10347863e+00 -0.36369028e+01 0.12198563e+01 + 2 113 299 300 0.79094344e+00 -0.39250079e+00 -0.54019437e+01 0.58878148e+00 + 2 221 301 302 0.14980686e+00 0.47798950e-01 0.55425081e-01 0.54750001e+00 + 1 -211 0 0 -0.42502713e+00 -0.55629349e+00 0.56052005e+00 0.13959999e+00 + 1 211 0 0 -0.18458691e+00 -0.29628819e+00 0.15380770e+00 0.13959999e+00 + 2 111 303 304 -0.19620663e+00 -0.42465404e+00 0.14535378e+00 0.13500001e+00 + 1 22 0 0 -0.10359311e+00 -0.16687860e+00 0.12937161e+00 0.00000000e+00 + 1 22 0 0 -0.42235690e+00 -0.30201745e+00 0.44509563e+00 0.00000000e+00 + 1 -211 0 0 -0.30538782e+00 -0.25055185e+00 0.23175387e+01 0.13959999e+00 + 2 111 305 307 0.19328941e+00 0.32003841e+00 0.24592113e+01 0.13500001e+00 + 1 211 0 0 -0.14793885e+00 0.14137977e+00 0.23317988e+01 0.13959999e+00 + 2 111 308 309 -0.48823270e+00 -0.23681626e+00 0.80109900e+00 0.13500001e+00 + 1 130 0 0 0.40764526e+00 -0.21195003e+00 0.51881242e+00 0.49770001e+00 + 1 -321 0 0 0.94717366e+00 -0.13382001e+01 0.17392095e+01 0.49360001e+00 + 1 211 0 0 0.17108326e+00 -0.35016492e+00 0.87551600e+00 0.13959999e+00 + 1 -211 0 0 -0.67190684e-01 -0.45966712e+00 0.92653006e-01 0.13959999e+00 + 2 111 310 311 -0.34643732e-01 -0.12616888e-01 0.67801124e+00 0.13500001e+00 + 1 211 0 0 -0.21198481e+00 -0.17111376e-01 0.27619553e+00 0.13959999e+00 + 2 111 312 313 0.10987215e+01 -0.82921797e+00 0.91713911e+00 0.13500001e+00 + 1 321 0 0 0.11597306e-01 0.39374286e+00 0.27319980e+00 0.49360001e+00 + 2 111 314 315 0.17379627e+00 -0.10946894e+00 0.41540378e+00 0.13500001e+00 + 2 311 316 316 -0.11527415e+00 0.35495925e+00 -0.17358985e+01 0.49770001e+00 + 1 211 0 0 -0.26647228e+00 -0.19529644e+00 -0.69460404e+00 0.13959999e+00 + 2 -311 317 317 0.66590405e+00 0.18047683e-01 -0.41477675e+01 0.49770001e+00 + 1 -211 0 0 0.22451550e-01 -0.16172555e+00 -0.19591836e+01 0.13959999e+00 + 1 211 0 0 -0.60867816e-02 0.43116592e-01 -0.20548604e+01 0.13959999e+00 + 1 -211 0 0 0.20043600e+00 0.13562152e+00 -0.24994955e+01 0.13959999e+00 + 2 111 318 319 0.80567174e-01 0.24102420e-01 -0.41907902e+01 0.13500001e+00 + 1 130 0 0 0.75824469e+00 -0.85745949e+00 -0.87357492e+01 0.49770001e+00 + 2 3122 320 321 -0.22232258e+00 0.52443242e+00 -0.19526496e+01 0.11156000e+01 + 2 111 322 323 -0.13338268e+00 0.87902039e-01 -0.62616962e+00 0.13500001e+00 + 2-3122 324 325 -0.16895678e+01 0.57185096e+00 -0.62257700e+01 0.11156000e+01 + 1 22 0 0 -0.44669293e-01 0.68892375e-01 -0.44694138e+00 0.00000000e+00 + 1 -211 0 0 -0.80928057e+00 0.78997672e+00 -0.42847233e+01 0.13959999e+00 + 2 111 326 327 -0.65083611e+00 0.61588979e+00 -0.17745867e+01 0.13500001e+00 + 1 211 0 0 -0.17909412e+00 -0.12813601e+00 -0.73236573e+00 0.13959999e+00 + 2 111 328 329 -0.19765827e+00 0.28504610e+00 -0.87195845e+01 0.13500001e+00 + 1 130 0 0 -0.45328639e-01 -0.37425721e+00 -0.31041012e+01 0.49770001e+00 + 1 22 0 0 0.47937334e-01 0.12543571e+00 -0.13108867e+02 0.00000000e+00 + 1 22 0 0 -0.70374429e-01 0.22972126e+00 -0.16124435e+02 0.00000000e+00 + 1 -211 0 0 0.24171615e+00 -0.28916091e-01 -0.16390606e+02 0.13959999e+00 + 1 211 0 0 -0.24809040e+00 -0.17017820e+00 -0.43254256e+01 0.13959999e+00 + 1 211 0 0 -0.11893980e+00 -0.57423019e+00 -0.10873691e+02 0.13959999e+00 + 1 -211 0 0 -0.61774179e-01 -0.29227108e-01 -0.47508254e+01 0.13959999e+00 + 2 111 330 331 0.13040392e+00 -0.40490705e+00 -0.52906322e+01 0.13500001e+00 + 2 -311 332 332 -0.60385597e+00 0.24032481e+00 0.19908502e+01 0.49770001e+00 + 2 111 333 334 0.23430467e-01 0.39701226e+00 0.12038500e+01 0.13500001e+00 + 1 321 0 0 -0.10851977e+00 0.40657371e+00 0.16263103e+01 0.49360001e+00 + 2 111 335 336 0.10130728e+00 0.13404354e+00 0.11434095e+00 0.13500001e+00 + 1 -321 0 0 0.17853266e+00 -0.33790973e+00 0.22834848e+00 0.49360001e+00 + 1 211 0 0 -0.19065883e-01 -0.32256982e+00 -0.26669225e+00 0.13959999e+00 + 1 -211 0 0 0.89574188e-01 0.42564642e+00 0.72221565e+00 0.13959999e+00 + 2 111 337 338 -0.53816092e+00 0.20123564e+00 0.91417080e+00 0.13500001e+00 + 1 211 0 0 0.55750787e-01 -0.52768737e-01 0.10051788e+00 0.13959999e+00 + 2 111 339 341 -0.85709023e+00 0.45762280e+00 -0.30004120e+00 0.13500001e+00 + 1 22 0 0 0.22169419e-01 -0.62080190e-01 -0.16671452e+00 0.00000000e+00 + 1 22 0 0 0.27193609e+00 -0.87737367e-01 -0.44699410e+00 0.00000000e+00 + 1 211 0 0 0.91846436e+00 0.18229064e+00 -0.31224864e+01 0.13959999e+00 + 1 -211 0 0 0.29799598e+00 -0.10534655e-01 -0.53717220e+00 0.13959999e+00 + 2 111 342 343 0.74040487e-01 -0.47103368e-01 -0.73392338e+00 0.13500001e+00 + 1 -211 0 0 0.36651649e-01 -0.32271400e+00 0.21077132e+00 0.13959999e+00 + 2 111 344 345 -0.63102227e-02 0.31471136e+00 -0.71356587e-01 0.13500001e+00 + 1 211 0 0 -0.13447335e+00 -0.63811243e-03 0.71405095e+00 0.13959999e+00 + 2 111 346 347 0.33728325e+00 -0.31621116e+00 0.18694040e+00 0.13500001e+00 + 1 -211 0 0 0.10850030e+00 -0.47500437e+00 0.68725526e+00 0.13959999e+00 + 2 111 348 349 -0.20738682e+00 -0.70315801e-01 -0.12505367e+00 0.13500001e+00 + 1 211 0 0 0.22508651e+00 0.89700723e+00 0.35909469e+01 0.13959999e+00 + 1 -211 0 0 0.12334032e+00 -0.75174406e-01 0.21990907e+00 0.13959999e+00 + 1 22 0 0 0.52933775e-01 0.80345944e-01 0.17340380e+02 0.00000000e+00 + 2 113 350 351 -0.37122163e+00 -0.10922520e+00 0.28905493e+03 0.81080163e+00 + 1 2212 0 0 0.90145588e-01 0.28407833e+00 0.13285492e+03 0.93830001e+00 + 2 111 352 353 -0.26106107e+00 0.12808080e+00 0.48493732e+02 0.13500001e+00 + 1 22 0 0 -0.23241075e-01 -0.53236566e-01 0.64876080e+00 0.00000000e+00 + 2 113 354 355 -0.36715418e-01 0.43946394e+00 0.13034915e+03 0.44019306e+00 + 1 211 0 0 0.29208881e+00 0.28145757e+00 0.63344240e+01 0.13959999e+00 + 1 -211 0 0 0.43253690e-01 -0.66416584e-01 0.10037141e+02 0.13959999e+00 + 2 111 356 357 -0.49376749e-02 -0.50539538e-01 0.25573392e+01 0.13500001e+00 + 1 -211 0 0 -0.20224541e+00 -0.51119506e-01 0.56910295e+01 0.13959999e+00 + 1 211 0 0 -0.20152666e-01 0.40970050e-01 0.44818664e+01 0.13959999e+00 + 2 111 358 359 -0.23093365e-01 -0.12207475e+00 0.91103029e+01 0.13500001e+00 + 1 211 0 0 0.16824702e-01 0.58452882e-01 0.51339090e+00 0.13959999e+00 + 1 -211 0 0 -0.33971235e+00 -0.20111741e+00 0.10157537e+02 0.13959999e+00 + 1 22 0 0 -0.39330694e+00 -0.96078479e+00 0.52545404e+00 0.00000000e+00 + 1 22 0 0 -0.22784591e+00 -0.83481568e+00 0.51044738e+00 0.00000000e+00 + 1 211 0 0 -0.22510204e+00 -0.21141884e+00 0.47503024e+00 0.13959999e+00 + 2 111 360 361 0.38397554e+00 0.91126412e-01 0.21772142e+00 0.13500001e+00 + 1 211 0 0 -0.55778003e+00 -0.27983859e+00 -0.26750662e+01 0.13959999e+00 + 2 111 362 363 -0.10379215e+00 0.15951993e+00 -0.10520211e+00 0.13500001e+00 + 1 22 0 0 -0.32996857e+00 -0.15332353e+01 -0.15316178e+01 0.00000000e+00 + 1 22 0 0 -0.16869813e+00 -0.11390227e+01 -0.10043224e+01 0.00000000e+00 + 1 211 0 0 -0.29001868e+00 -0.16182452e+00 -0.11268277e+01 0.13959999e+00 + 1 -211 0 0 -0.46906023e+01 -0.45686426e+01 -0.25607346e+02 0.13959999e+00 + 1 -321 0 0 -0.13015716e+01 -0.16785280e+01 -0.92617903e+01 0.49360001e+00 + 1 211 0 0 -0.15230639e+01 -0.11464908e+01 -0.76403885e+01 0.13959999e+00 + 2 310 364 365 -0.17557780e+01 -0.17156659e+01 -0.10652614e+02 0.49770001e+00 + 1-2112 0 0 -0.11383542e+01 -0.76443744e+00 -0.51323209e+01 0.93959999e+00 + 2 111 366 367 -0.55379879e+00 -0.16543815e+00 -0.27013209e+01 0.13500001e+00 + 1 2112 0 0 -0.16373657e+01 -0.11167045e+01 -0.70404215e+01 0.93959999e+00 + 1 211 0 0 -0.79595286e+00 -0.73671657e+00 -0.38689318e+01 0.13959999e+00 + 1 -211 0 0 0.15850604e+00 0.87946914e-02 -0.32990688e+00 0.13959999e+00 + 2 111 368 369 -0.10945048e+01 -0.13100722e+00 -0.35075173e+01 0.13500001e+00 + 1 211 0 0 -0.66040617e+00 0.96752298e+00 -0.14393373e+01 0.13959999e+00 + 1 -211 0 0 -0.10165933e+00 -0.23358937e+00 -0.39943951e+00 0.13959999e+00 + 1 -211 0 0 0.25961566e+00 0.18196659e+00 -0.50807846e+00 0.13959999e+00 + 1 211 0 0 -0.11607266e+00 -0.13716529e+00 -0.24241248e+00 0.13959999e+00 + 2 111 370 371 -0.17180759e-01 -0.50306823e-01 -0.60783720e+00 0.13500001e+00 + 1 -211 0 0 -0.25079268e+00 -0.14066462e+00 0.57106650e+00 0.13959999e+00 + 1 211 0 0 -0.54566368e-01 -0.11864185e-01 0.18624455e+01 0.13959999e+00 + 2 311 372 372 -0.67813188e-01 0.12768656e-01 0.37760293e+01 0.49770001e+00 + 2 111 373 374 -0.60533889e-01 -0.10300270e+00 0.11625117e+00 0.13500001e+00 + 1 321 0 0 0.26797056e-01 0.97719491e-01 0.30053487e+00 0.49360001e+00 + 2 111 375 376 0.64313519e+00 -0.68378560e-01 0.40454093e+00 0.13500001e+00 + 1 -321 0 0 0.92149395e+00 -0.54465115e+00 -0.39817899e-01 0.49360001e+00 + 2 111 377 378 0.52166820e+00 -0.28495574e+00 -0.53314769e+00 0.13500001e+00 + 1 22 0 0 -0.11339319e+00 0.63886501e-01 0.11602437e+00 0.00000000e+00 + 1 22 0 0 -0.31791680e-01 -0.23893565e-02 0.20813516e+00 0.00000000e+00 + 1 -211 0 0 -0.91035783e-01 -0.16374838e-01 -0.40069652e+00 0.13959999e+00 + 1 211 0 0 0.48181415e-01 0.78923991e-02 -0.56590527e+00 0.13959999e+00 + 2 221 379 381 -0.66449416e+00 0.94997384e-01 -0.20844133e+01 0.54750001e+00 + 1 211 0 0 0.70628440e+00 -0.27939665e+00 0.75671035e+00 0.13959999e+00 + 1 -211 0 0 0.39229378e-01 0.18587910e+00 -0.88102147e-01 0.13959999e+00 + 1 22 0 0 0.11430277e+00 -0.14969531e+00 0.36782908e+00 0.00000000e+00 + 2 111 382 383 -0.48569879e+00 0.27691102e+00 0.11837615e+00 0.13500001e+00 + 1 -211 0 0 0.65168113e-01 0.35077356e-01 0.31411949e+00 0.13959999e+00 + 1 211 0 0 0.57987459e-02 -0.76875659e-02 0.13298714e+00 0.13959999e+00 + 2 111 384 385 -0.16185309e+00 -0.21420768e-01 0.67050004e+00 0.13500001e+00 + 1 -211 0 0 0.15821029e+00 0.55362713e+00 0.40274653e+01 0.13959999e+00 + 2 111 386 387 0.25379851e+00 -0.25544649e+00 0.38035798e+01 0.13500001e+00 + 1 211 0 0 -0.36657304e+00 0.37019482e+00 0.72804980e+01 0.13959999e+00 + 2 111 388 389 -0.29639298e+00 -0.33416125e+00 0.19862630e+01 0.13500001e+00 + 1 22 0 0 0.99512905e-01 -0.34864727e-01 0.65817761e+00 0.00000000e+00 + 1 22 0 0 0.11629352e+00 -0.72681289e-02 0.22302184e+00 0.00000000e+00 + 1 -211 0 0 -0.59619009e+00 0.40030181e+00 0.17943459e+02 0.13959999e+00 + 2 111 390 391 0.21035254e-01 -0.29234934e+00 0.10393394e+02 0.13500001e+00 + 2 111 392 393 -0.12593122e+00 -0.39390929e-01 -0.61039817e+00 0.13500001e+00 + 2 111 394 395 -0.58858968e-01 -0.64211681e-01 -0.38511115e+00 0.13500001e+00 + 2 111 396 397 0.13239226e+00 -0.18638182e+00 -0.59666204e+00 0.13500001e+00 + 1 211 0 0 0.29066654e-01 0.11876713e+00 -0.14631253e+00 0.13959999e+00 + 2 111 398 399 0.56965593e-01 -0.18249866e+00 -0.76429391e+00 0.13500001e+00 + 1 -211 0 0 0.26636237e+00 -0.26360965e+00 -0.40121326e+01 0.13959999e+00 + 2 111 400 401 -0.10749971e+00 0.22550952e+00 -0.14885799e+01 0.13500001e+00 + 1-2212 0 0 -0.37388986e+00 -0.27045113e+00 -0.28790128e+01 0.93830001e+00 + 1 -211 0 0 0.35350285e-01 0.16697249e+00 -0.75788987e+00 0.13959999e+00 + 1 211 0 0 0.48644480e+00 -0.33594474e-01 -0.36750827e+01 0.13959999e+00 + 1 -211 0 0 0.30449858e+00 -0.35890627e+00 -0.17268605e+01 0.13959999e+00 + 1 22 0 0 0.16128547e+00 0.28555831e+00 0.63952044e-01 0.00000000e+00 + 1 22 0 0 -0.11478610e-01 -0.23775935e+00 -0.85269660e-02 0.00000000e+00 + 1 22 0 0 -0.10271733e+00 -0.88402793e-01 0.18537257e-01 0.00000000e+00 + 1 22 0 0 -0.93489304e-01 -0.33625123e+00 0.12681653e+00 0.00000000e+00 + 1 22 0 0 0.75990766e-01 0.57265669e-01 0.94807225e+00 0.00000000e+00 + 1 -11 0 0 0.35212100e-01 0.77722684e-01 0.44789311e+00 0.50999998e-03 + 1 11 0 0 0.82086504e-01 0.18504998e+00 0.10632457e+01 0.50999998e-03 + 1 22 0 0 -0.44343448e+00 -0.17969893e+00 0.62999040e+00 0.00000000e+00 + 1 22 0 0 -0.44798218e-01 -0.57117335e-01 0.17110865e+00 0.00000000e+00 + 1 22 0 0 -0.30469976e-01 0.59026919e-01 0.27168182e+00 0.00000000e+00 + 1 22 0 0 -0.41737556e-02 -0.71643807e-01 0.40632936e+00 0.00000000e+00 + 1 22 0 0 0.74299604e-01 -0.37127625e-01 0.92670344e-01 0.00000000e+00 + 1 22 0 0 0.10244218e+01 -0.79209036e+00 0.82446873e+00 0.00000000e+00 + 1 22 0 0 0.56566015e-01 -0.11525574e+00 0.21322384e+00 0.00000000e+00 + 1 22 0 0 0.11723024e+00 0.57868138e-02 0.20217992e+00 0.00000000e+00 + 2 310 402 403 -0.11527415e+00 0.35495925e+00 -0.17358985e+01 0.49770001e+00 + 1 130 0 0 0.66590405e+00 0.18047683e-01 -0.41477675e+01 0.49770001e+00 + 1 22 0 0 0.18608594e-01 -0.41609187e-01 -0.54631424e+00 0.00000000e+00 + 1 22 0 0 0.61958585e-01 0.65711603e-01 -0.36444759e+01 0.00000000e+00 + 1 2212 0 0 -0.20820765e+00 0.54172301e+00 -0.18049067e+01 0.93830001e+00 + 1 -211 0 0 -0.14114893e-01 -0.17290637e-01 -0.14774263e+00 0.13959999e+00 + 1 22 0 0 -0.13530068e-02 0.96969679e-03 -0.27568799e+00 0.00000000e+00 + 1 22 0 0 -0.13202968e+00 0.86932346e-01 -0.35048169e+00 0.00000000e+00 + 1-2212 0 0 -0.13836095e+01 0.55919319e+00 -0.50605316e+01 0.93830001e+00 + 1 211 0 0 -0.30595800e+00 0.12657739e-01 -0.11652377e+01 0.13959999e+00 + 1 22 0 0 -0.10182273e-01 0.98283328e-02 -0.89853957e-01 0.00000000e+00 + 1 22 0 0 -0.64065379e+00 0.60606146e+00 -0.16847327e+01 0.00000000e+00 + 1 22 0 0 -0.87039024e-02 -0.64600515e-03 -0.31367801e-01 0.00000000e+00 + 1 22 0 0 -0.18895438e+00 0.28569213e+00 -0.86882172e+01 0.00000000e+00 + 1 22 0 0 0.10091648e-01 0.25830641e-02 -0.46646541e+00 0.00000000e+00 + 1 22 0 0 0.12031227e+00 -0.40749007e+00 -0.48241668e+01 0.00000000e+00 + 2 310 404 405 -0.60385597e+00 0.24032481e+00 0.19908502e+01 0.49770001e+00 + 1 22 0 0 0.79345495e-01 0.26392269e+00 0.79846239e+00 0.00000000e+00 + 1 22 0 0 -0.55915028e-01 0.13308959e+00 0.40538767e+00 0.00000000e+00 + 1 22 0 0 0.13274840e+00 0.86818509e-01 0.88617653e-01 0.00000000e+00 + 1 22 0 0 -0.31441133e-01 0.47225028e-01 0.25723282e-01 0.00000000e+00 + 1 22 0 0 -0.39945868e+00 0.17937493e+00 0.77671480e+00 0.00000000e+00 + 1 22 0 0 -0.13870227e+00 0.21860713e-01 0.13745603e+00 0.00000000e+00 + 1 22 0 0 -0.11562924e+00 0.41618053e-01 -0.82745254e-01 0.00000000e+00 + 1 11 0 0 -0.44501269e+00 0.24143347e+00 -0.13128549e+00 0.50999998e-03 + 1 -11 0 0 -0.29644838e+00 0.17457131e+00 -0.86010471e-01 0.50999998e-03 + 1 22 0 0 0.49122330e-01 -0.65950103e-01 -0.19605039e+00 0.00000000e+00 + 1 22 0 0 0.24918156e-01 0.18846739e-01 -0.53787297e+00 0.00000000e+00 + 1 22 0 0 0.60822960e-01 0.19015592e+00 -0.26359610e-01 0.00000000e+00 + 1 22 0 0 -0.67133181e-01 0.12455542e+00 -0.44996973e-01 0.00000000e+00 + 1 22 0 0 0.10856646e+00 -0.35601616e-01 0.78911796e-01 0.00000000e+00 + 1 22 0 0 0.22871678e+00 -0.28060955e+00 0.10802858e+00 0.00000000e+00 + 1 22 0 0 -0.12345234e+00 -0.50865963e-01 0.79179928e-03 0.00000000e+00 + 1 22 0 0 -0.83934471e-01 -0.19449839e-01 -0.12584546e+00 0.00000000e+00 + 1 -211 0 0 0.53750366e-01 -0.33722538e+00 0.15880556e+03 0.13959999e+00 + 1 211 0 0 -0.42497200e+00 0.22800018e+00 0.13024939e+03 0.13959999e+00 + 1 22 0 0 -0.37542433e-01 0.32445993e-01 0.30016596e+01 0.00000000e+00 + 1 22 0 0 -0.22351862e+00 0.95634803e-01 0.45492069e+02 0.00000000e+00 + 1 -211 0 0 -0.16306826e+00 0.32609034e+00 0.69960144e+02 0.13959999e+00 + 1 211 0 0 0.12635285e+00 0.11337361e+00 0.60389015e+02 0.13959999e+00 + 1 22 0 0 -0.46671171e-01 -0.79848066e-01 0.15196191e+01 0.00000000e+00 + 1 22 0 0 0.41733496e-01 0.29308533e-01 0.10377198e+01 0.00000000e+00 + 1 22 0 0 -0.61566632e-01 -0.70849620e-02 0.28648024e+01 0.00000000e+00 + 1 22 0 0 0.38473267e-01 -0.11498979e+00 0.62455006e+01 0.00000000e+00 + 1 22 0 0 0.13612035e+00 -0.32635536e-01 0.77396527e-01 0.00000000e+00 + 1 22 0 0 0.24785519e+00 0.12376195e+00 0.14032491e+00 0.00000000e+00 + 1 22 0 0 -0.61057854e-01 0.10267012e+00 -0.13374057e+00 0.00000000e+00 + 1 22 0 0 -0.42734299e-01 0.56849811e-01 0.28538477e-01 0.00000000e+00 + 1 211 0 0 -0.83120298e+00 -0.66581219e+00 -0.53890667e+01 0.13959999e+00 + 1 -211 0 0 -0.92457491e+00 -0.10498536e+01 -0.52635465e+01 0.13959999e+00 + 1 22 0 0 -0.23152240e+00 -0.72908178e-02 -0.11959318e+01 0.00000000e+00 + 1 22 0 0 -0.32227635e+00 -0.15814734e+00 -0.15053891e+01 0.00000000e+00 + 1 22 0 0 -0.65237373e+00 -0.14305177e+00 -0.20624697e+01 0.00000000e+00 + 1 22 0 0 -0.44213110e+00 0.12044545e-01 -0.14450476e+01 0.00000000e+00 + 1 22 0 0 0.25653861e-01 0.31115312e-01 -0.85467085e-01 0.00000000e+00 + 1 22 0 0 -0.42834621e-01 -0.81422135e-01 -0.52237010e+00 0.00000000e+00 + 1 130 0 0 -0.67813188e-01 0.12768656e-01 0.37760293e+01 0.49770001e+00 + 1 22 0 0 0.10695789e-01 -0.86623155e-01 0.13358414e-01 0.00000000e+00 + 1 22 0 0 -0.71229674e-01 -0.16379539e-01 0.10289276e+00 0.00000000e+00 + 1 22 0 0 0.63222963e+00 -0.63323185e-01 0.41488680e+00 0.00000000e+00 + 1 22 0 0 0.10905538e-01 -0.50553745e-02 -0.10345921e-01 0.00000000e+00 + 1 22 0 0 0.10743281e+00 -0.70566952e-01 -0.49035445e-01 0.00000000e+00 + 1 22 0 0 0.41423535e+00 -0.21438879e+00 -0.48411226e+00 0.00000000e+00 + 2 111 406 407 -0.41847411e+00 0.31866200e-01 -0.12108350e+01 0.13500001e+00 + 2 111 408 409 -0.54577664e-01 -0.36072738e-01 -0.45207369e+00 0.13500001e+00 + 2 111 410 411 -0.19144243e+00 0.99203929e-01 -0.42150474e+00 0.13500001e+00 + 1 22 0 0 -0.12964304e+00 0.11765007e+00 -0.13210051e-01 0.00000000e+00 + 1 22 0 0 -0.35605574e+00 0.15926096e+00 0.13158619e+00 0.00000000e+00 + 1 22 0 0 -0.76802045e-01 -0.66370726e-01 0.21681556e+00 0.00000000e+00 + 1 22 0 0 -0.85051045e-01 0.44949960e-01 0.45368448e+00 0.00000000e+00 + 1 22 0 0 0.41614715e-01 -0.13166466e+00 0.14916643e+01 0.00000000e+00 + 1 22 0 0 0.21218382e+00 -0.12378184e+00 0.23119156e+01 0.00000000e+00 + 1 22 0 0 -0.23486614e+00 -0.32985044e+00 0.17169389e+01 0.00000000e+00 + 1 22 0 0 -0.61526846e-01 -0.43108463e-02 0.26932427e+00 0.00000000e+00 + 1 22 0 0 0.30363131e-01 -0.12112865e+00 0.65437236e+01 0.00000000e+00 + 1 22 0 0 -0.93278764e-02 -0.17122069e+00 0.38496709e+01 0.00000000e+00 + 1 22 0 0 -0.64551845e-01 0.43496061e-01 -0.17594749e+00 0.00000000e+00 + 1 22 0 0 -0.61379373e-01 -0.82886994e-01 -0.43445072e+00 0.00000000e+00 + 1 22 0 0 0.20019051e-01 0.63746199e-02 -0.35471357e-02 0.00000000e+00 + 1 22 0 0 -0.78878023e-01 -0.70586301e-01 -0.38156402e+00 0.00000000e+00 + 1 22 0 0 0.85770851e-02 0.21672482e-01 -0.47895871e-01 0.00000000e+00 + 1 22 0 0 0.12381517e+00 -0.20805430e+00 -0.54876620e+00 0.00000000e+00 + 1 22 0 0 0.76668024e-01 -0.18297887e+00 -0.74766558e+00 0.00000000e+00 + 1 22 0 0 -0.19702435e-01 0.48020110e-03 -0.16628269e-01 0.00000000e+00 + 1 22 0 0 -0.84948696e-01 0.16198775e+00 -0.13379973e+01 0.00000000e+00 + 1 22 0 0 -0.22551011e-01 0.63521773e-01 -0.15058267e+00 0.00000000e+00 + 1 -211 0 0 -0.17130530e+00 0.11896621e+00 -0.13137789e+01 0.13959999e+00 + 1 211 0 0 0.56031149e-01 0.23599304e+00 -0.42211950e+00 0.13959999e+00 + 1 -211 0 0 -0.49140501e+00 0.21513861e+00 0.98223191e+00 0.13959999e+00 + 1 211 0 0 -0.11245090e+00 0.25186181e-01 0.10086182e+01 0.13959999e+00 + 1 22 0 0 -0.37725320e+00 0.49148191e-01 -0.11605642e+01 0.00000000e+00 + 1 22 0 0 -0.41220885e-01 -0.17281990e-01 -0.50270841e-01 0.00000000e+00 + 1 22 0 0 -0.95925368e-02 0.42840481e-01 -0.26198569e+00 0.00000000e+00 + 1 22 0 0 -0.44985130e-01 -0.78913219e-01 -0.19008802e+00 0.00000000e+00 + 1 22 0 0 -0.20752785e+00 0.80715276e-01 -0.40676939e+00 0.00000000e+00 + 1 22 0 0 0.16085410e-01 0.18488655e-01 -0.14735345e-01 0.00000000e+00 + 281 + 2 25 2 3 -0.38788685e+02 0.56758366e+02 0.37199829e+03 0.29970563e+03 + 2 23 4 5 -0.76688789e+02 -0.51514370e+02 0.70661171e+02 0.90678490e+02 + 2 23 6 7 0.37900108e+02 0.10827272e+03 0.30133713e+03 0.91444672e+02 + 1 11 0 0 -0.35037724e+02 -0.74105598e+02 0.42024319e+02 0.50999998e-03 + 1 -11 0 0 -0.41651081e+02 0.22591228e+02 0.28636854e+02 0.50999998e-03 + 1 11 0 0 0.43651142e+02 0.58341856e+01 0.95054100e+02 0.50999998e-03 + 1 -11 0 0 -0.57510338e+01 0.10243854e+03 0.20628302e+03 0.50999998e-03 + 2 2101 36 36 0.48570320e+00 -0.18252555e+00 0.42739960e+03 0.57933331e+00 + 2 21 36 36 -0.21073213e+01 -0.46825180e+01 0.46771286e+02 0.00000000e+00 + 2 21 36 36 0.64631076e+01 -0.43175821e+01 0.55581346e+01 0.00000000e+00 + 2 21 36 36 0.79345355e+01 -0.94112406e+01 0.14930843e+02 0.00000000e+00 + 2 21 36 36 0.14397410e+01 -0.96099091e+00 0.13965563e+01 0.00000000e+00 + 2 21 36 36 0.13796278e+01 -0.16660649e+01 0.38120571e+00 0.00000000e+00 + 2 21 36 36 0.51253104e+01 0.18961005e+01 -0.26113472e+01 0.00000000e+00 + 2 21 36 36 0.47832532e+01 -0.95984440e+01 -0.82181966e+00 0.00000000e+00 + 2 21 36 36 0.14642161e+02 -0.34674370e+02 -0.11342762e+01 0.00000000e+00 + 2 21 36 36 -0.45165142e+00 -0.55700028e+00 0.87797455e-01 0.00000000e+00 + 2 21 36 36 0.41902546e-01 -0.62131830e-01 0.13061762e+00 0.00000000e+00 + 2 21 36 36 -0.83743179e+00 -0.48883364e+00 -0.10762419e+00 0.00000000e+00 + 2 21 36 36 0.13202742e+01 -0.93532749e-01 -0.82503586e+01 0.00000000e+00 + 2 21 36 36 0.20894508e+01 0.21721227e+01 -0.49961552e+02 0.00000000e+00 + 2 21 36 36 -0.13706659e+00 0.16146072e+01 -0.24619696e+02 0.00000000e+00 + 2 21 36 36 -0.40800489e-01 0.27735075e+00 -0.37324661e+00 0.00000000e+00 + 2 21 36 36 -0.11987943e-01 0.11744563e+00 -0.15019013e+00 0.00000000e+00 + 2 21 36 36 -0.48221876e-02 0.20954113e-01 0.47427926e-01 0.00000000e+00 + 2 21 36 36 0.11395608e+01 0.95680982e+00 -0.26797426e+02 0.00000000e+00 + 2 2 36 36 -0.55523872e+00 -0.52268445e+00 0.28763893e+00 0.55999998e-02 + 2 2 85 85 -0.46395159e+00 -0.22145268e+00 0.12426339e+01 0.55999998e-02 + 2 21 85 85 -0.27452559e+01 -0.34393749e+01 0.18415006e+01 0.00000000e+00 + 2 21 85 85 -0.43974584e-02 -0.97174013e+00 0.33163962e+00 0.00000000e+00 + 2 21 85 85 -0.37285098e+00 0.38878900e+00 0.41543350e+01 0.00000000e+00 + 2 21 85 85 -0.49403268e+00 0.74467406e+01 0.33887421e+02 0.00000000e+00 + 2 2101 85 85 0.17084795e+00 0.20119110e+00 -0.66028198e+03 0.57933331e+00 + 2 21 107 107 -0.13218033e+01 -0.91309756e+00 -0.76327357e+01 0.00000000e+00 + 2 21 107 107 0.13218033e+01 0.91309756e+00 -0.12770474e+03 0.00000000e+00 + 2 92 37 84 0.42698307e+02 -0.60162529e+02 0.38216357e+03 0.55214569e+03 + 1 2112 0 0 0.27544296e+00 0.15768570e+00 0.20904825e+03 0.93959999e+00 + 2 213 114 115 0.19970268e+00 -0.30144534e+00 0.16155620e+03 0.62811553e+00 + 2 -213 116 117 0.54165818e-01 -0.13751221e-01 0.41473419e+02 0.99513817e+00 + 1 211 0 0 -0.60207349e+00 -0.76332736e+00 0.13427646e+02 0.13959999e+00 + 2 331 118 119 -0.37467605e+00 -0.17943465e+01 0.18625505e+02 0.95783585e+00 + 1 -211 0 0 -0.13102627e+00 0.17985451e+00 0.38405428e+01 0.13959999e+00 + 1 211 0 0 -0.57940489e+00 -0.37664610e+00 0.72669644e+01 0.13959999e+00 + 1 -211 0 0 0.17452517e+00 -0.11261261e+01 0.65300646e+01 0.13959999e+00 + 2 113 120 121 0.22365627e+00 -0.34317482e+00 0.36552854e+01 0.75294077e+00 + 2 111 122 123 -0.16194460e+00 -0.86468168e-01 0.36187646e+01 0.13500001e+00 + 1 211 0 0 -0.43255966e-01 -0.18696013e+00 0.55146551e+00 0.13959999e+00 + 2 113 124 125 0.25742260e+00 -0.84495372e+00 0.32665341e+01 0.83827710e+00 + 1-2212 0 0 0.47334561e+00 0.17081229e+00 0.11884232e+01 0.93830001e+00 + 1 2112 0 0 0.24833930e+01 -0.16832703e+01 0.30849545e+01 0.93959999e+00 + 2 213 126 127 0.64917475e+00 -0.14521512e+01 0.20068088e+01 0.49577826e+00 + 2 -323 128 129 0.20268896e+01 -0.23970575e+01 0.40310435e+01 0.83054411e+00 + 2 311 130 130 0.52652760e+01 -0.43328762e+01 0.54268813e+01 0.49770001e+00 + 2 213 131 132 0.22766056e+01 -0.26377347e+01 0.47344556e+01 0.86158347e+00 + 1-2212 0 0 0.14279242e+01 -0.17623793e+01 0.19231342e+01 0.93830001e+00 + 1 2112 0 0 0.15560459e+01 -0.22449940e+00 -0.11977528e+00 0.93959999e+00 + 1 211 0 0 -0.89613244e-01 0.75042676e-02 0.48803228e+00 0.13959999e+00 + 2 223 133 135 0.22631001e+01 0.27164075e+00 -0.19335957e+00 0.79356897e+00 + 1 -211 0 0 0.36158675e+00 -0.11776174e+01 -0.11074029e+00 0.13959999e+00 + 2 213 136 137 0.23342264e+01 0.41905382e+00 -0.98568606e+00 0.84440988e+00 + 1 -211 0 0 0.16593636e+01 -0.26010368e+01 -0.59342647e+00 0.13959999e+00 + 2-2214 138 139 0.13479950e+01 -0.15348326e+01 -0.32651016e+00 0.13228093e+01 + 2 2224 140 141 0.65418949e+01 -0.15828154e+02 -0.47009635e+00 0.13482418e+01 + 2 221 142 143 0.29262218e+01 -0.47286787e+01 -0.53677827e+00 0.54750001e+00 + 2 221 144 146 0.23274262e+01 -0.68333354e+01 -0.33479744e+00 0.54750001e+00 + 2 223 147 149 0.35405495e+01 -0.91335783e+01 -0.64097218e-01 0.78360820e+00 + 1-2212 0 0 0.98546666e+00 -0.22104075e+01 -0.20315696e+00 0.93830001e+00 + 1 2212 0 0 -0.27106124e+00 -0.73282701e+00 0.43336695e+00 0.93830001e+00 + 2 -213 150 151 -0.39381629e+00 -0.62968028e+00 -0.22485580e+01 0.81770819e+00 + 2 223 152 154 0.49144527e+00 -0.18982796e+00 -0.12298237e+01 0.71769726e+00 + 2 223 155 157 -0.24442706e+00 0.24788095e-01 -0.31514196e+01 0.78217977e+00 + 2 111 158 159 0.15472808e+01 0.13182130e+01 -0.24158785e+02 0.13500001e+00 + 2 113 160 161 0.50196952e+00 0.26731136e+00 -0.11839139e+02 0.89459306e+00 + 2 221 162 164 0.61081503e-01 0.29317781e+00 -0.34796796e+01 0.54750001e+00 + 2 111 165 166 0.18113567e+00 -0.29671416e+00 -0.17869318e+01 0.13500001e+00 + 2 -313 167 168 0.15458654e+00 0.14424775e+01 -0.22070684e+02 0.90029514e+00 + 1 321 0 0 0.46830887e+00 0.64867723e+00 -0.90629654e+01 0.49360001e+00 + 1 -321 0 0 0.21110734e+00 0.35982755e+00 -0.67190423e+01 0.49360001e+00 + 2 313 169 170 -0.18934581e+00 0.51623577e+00 -0.59455557e+01 0.88445270e+00 + 2 113 171 172 0.17164426e+00 0.28219232e+00 -0.97086678e+01 0.72479057e+00 + 2 213 173 174 0.10377861e+01 -0.17285077e+00 -0.50304852e+01 0.81528711e+00 + 2 -323 175 176 -0.62674934e+00 0.13722376e-01 -0.16230460e+01 0.91335124e+00 + 2 323 177 178 0.20495912e+00 0.18652706e+00 -0.14927809e+01 0.93574464e+00 + 2 113 179 180 -0.25700772e+00 -0.32552040e+00 -0.52822739e+00 0.48736656e+00 + 2 92 86 106 -0.39096408e+01 0.34041529e+01 -0.61882446e+03 0.34045166e+03 + 2 113 181 182 -0.12344964e+01 -0.15993313e+01 0.11920009e+01 0.89560831e+00 + 2 111 183 184 -0.54193473e+00 -0.27038300e+00 0.90099299e+00 0.13500001e+00 + 2 213 185 186 -0.13129203e+01 -0.19371516e+01 0.85114551e+00 0.74189663e+00 + 1 2112 0 0 -0.41772881e+00 -0.28167894e-01 0.41779418e+01 0.93959999e+00 + 2 223 187 189 0.15095557e+00 0.12981141e+01 0.44355912e+01 0.87816018e+00 + 1-2212 0 0 -0.53032186e-01 0.41331682e+00 0.25896833e+01 0.93830001e+00 + 2 2224 190 191 -0.33245780e-01 0.69197381e+00 0.53567147e+01 0.12445635e+01 + 2 223 192 194 -0.87735653e+00 0.12465861e+01 0.75365024e+01 0.78382903e+00 + 2-2224 195 196 0.55532694e+00 0.13782918e+01 0.52925782e+01 0.12293053e+01 + 2 223 197 199 -0.35003126e+00 0.51385667e-01 0.11406705e+01 0.77775091e+00 + 1 211 0 0 0.38089284e+00 0.11117604e+01 0.53942676e+01 0.13959999e+00 + 2 -213 200 201 -0.27059031e+00 0.29371256e+00 0.80102164e+00 0.71644431e+00 + 2 113 202 203 0.76385863e-01 0.15239239e+00 0.85749710e+00 0.73309618e+00 + 2 113 204 205 -0.44283297e-01 0.39558592e+00 -0.18365430e+01 0.42807612e+00 + 2 323 206 207 -0.17970985e+00 -0.30101603e+00 -0.12052518e+01 0.86142594e+00 + 2 -311 208 208 -0.22368699e-01 0.73426984e-01 -0.24367452e+01 0.49770001e+00 + 2 2114 209 210 0.31121796e+00 0.60034138e+00 -0.29751916e+01 0.12159030e+01 + 2 221 211 212 -0.16143917e+00 -0.43570590e+00 -0.77665911e+01 0.54750001e+00 + 1-2112 0 0 -0.27870384e+00 0.31085299e-01 -0.38051548e+02 0.93959999e+00 + 2 3122 213 214 0.89706711e-01 0.57036769e+00 -0.92424911e+02 0.11156000e+01 + 2 311 215 215 0.30371356e+00 -0.33243194e+00 -0.51265442e+03 0.49770001e+00 + 2 92 108 113 0.00000000e+00 0.00000000e+00 -0.13533748e+03 0.69306006e+01 + 1 2112 0 0 0.35519326e+00 0.12201169e+00 -0.30370211e+02 0.93959999e+00 + 1-2212 0 0 -0.18825777e+00 -0.37686929e+00 -0.13777378e+02 0.93830001e+00 + 1 211 0 0 -0.17158167e+00 0.60542691e+00 -0.26161070e+02 0.13959999e+00 + 2 113 216 217 -0.47789492e-01 0.21690406e-01 -0.21389153e+02 0.87973726e+00 + 2 113 218 219 -0.18159941e+00 -0.50177068e+00 -0.88438091e+01 0.11328787e+01 + 2 113 220 221 0.23403507e+00 0.12951100e+00 -0.34795860e+02 0.68873048e+00 + 1 211 0 0 0.26103616e+00 -0.22108746e+00 0.45403881e+02 0.13959999e+00 + 2 111 222 223 -0.61333463e-01 -0.80357879e-01 0.11615231e+03 0.13500001e+00 + 1 -211 0 0 -0.23691779e+00 -0.69610596e-01 0.36602180e+02 0.13959999e+00 + 2 111 224 225 0.29108360e+00 0.55859379e-01 0.48712363e+01 0.13500001e+00 + 1 22 0 0 -0.18899152e+00 -0.15751173e+00 0.21297214e+01 0.00000000e+00 + 2 223 226 228 -0.18568450e+00 -0.16368346e+01 0.16495783e+02 0.77838725e+00 + 1 211 0 0 0.18184035e+00 -0.35473040e+00 0.35481498e+01 0.13959999e+00 + 1 -211 0 0 0.41815951e-01 0.11555530e-01 0.10713592e+00 0.13959999e+00 + 1 22 0 0 -0.17155413e+00 -0.79841152e-01 0.35886385e+01 0.00000000e+00 + 1 22 0 0 0.96095446e-02 -0.66270167e-02 0.30126125e-01 0.00000000e+00 + 1 211 0 0 0.46612322e-03 -0.24260432e+00 0.22597966e+01 0.13959999e+00 + 1 -211 0 0 0.25695649e+00 -0.60234940e+00 0.10067376e+01 0.13959999e+00 + 1 211 0 0 0.66326046e+00 -0.11595780e+01 0.16420740e+01 0.13959999e+00 + 2 111 229 230 -0.14085799e-01 -0.29257306e+00 0.36473456e+00 0.13500001e+00 + 2 -311 231 231 0.18914202e+01 -0.21999004e+01 0.34685597e+01 0.49770001e+00 + 1 -211 0 0 0.13546924e+00 -0.19715716e+00 0.56248403e+00 0.13959999e+00 + 2 310 232 233 0.52652760e+01 -0.43328762e+01 0.54268813e+01 0.49770001e+00 + 1 211 0 0 0.60302323e+00 -0.24408543e+00 0.85986000e+00 0.13959999e+00 + 2 111 234 235 0.16735823e+01 -0.23936491e+01 0.38745954e+01 0.13500001e+00 + 1 -211 0 0 0.15638188e+01 0.70622563e-01 -0.24009903e+00 0.13959999e+00 + 1 211 0 0 0.55790073e+00 0.19617711e+00 0.12573893e+00 0.13959999e+00 + 2 111 236 237 0.14138059e+00 0.48410892e-02 -0.78999475e-01 0.13500001e+00 + 1 211 0 0 0.15892372e+00 -0.24669923e-01 0.91960147e-01 0.13959999e+00 + 2 111 238 239 0.21753030e+01 0.44372377e+00 -0.10776463e+01 0.13500001e+00 + 1-2212 0 0 0.88059151e+00 -0.14471650e+01 -0.30709031e+00 0.93830001e+00 + 2 111 240 242 0.46740365e+00 -0.87667823e-01 -0.19419909e-01 0.13500001e+00 + 1 2212 0 0 0.51758332e+01 -0.11943376e+02 -0.59485149e+00 0.93830001e+00 + 1 211 0 0 0.13660616e+01 -0.38847766e+01 0.12475518e+00 0.13959999e+00 + 1 22 0 0 0.52823907e+00 -0.52674681e+00 -0.21669418e-02 0.00000000e+00 + 1 22 0 0 0.23979828e+01 -0.42019320e+01 -0.53461134e+00 0.00000000e+00 + 2 111 243 244 0.12620666e+01 -0.36386154e+01 -0.25497511e-01 0.13500001e+00 + 2 111 245 246 0.66689354e+00 -0.19258493e+01 -0.20123827e+00 0.13500001e+00 + 2 111 247 248 0.39846611e+00 -0.12688707e+01 -0.10806167e+00 0.13500001e+00 + 1 -211 0 0 0.10650274e+01 -0.31662552e+01 0.17399763e+00 0.13959999e+00 + 1 211 0 0 0.21162155e+01 -0.52065272e+01 -0.24268213e+00 0.13959999e+00 + 2 111 249 250 0.35930654e+00 -0.76079583e+00 0.45872773e-02 0.13500001e+00 + 1 -211 0 0 -0.17717707e+00 -0.28147057e+00 -0.20153457e+00 0.13959999e+00 + 2 111 251 252 -0.21663918e+00 -0.34820965e+00 -0.20470233e+01 0.13500001e+00 + 1 211 0 0 0.13776729e+00 0.13529733e-01 -0.41038430e+00 0.13959999e+00 + 1 -211 0 0 0.63038081e-01 -0.15787682e+00 -0.67284465e+00 0.13959999e+00 + 2 111 253 254 0.29063985e+00 -0.45480847e-01 -0.14659454e+00 0.13500001e+00 + 1 -211 0 0 -0.64696416e-01 0.14088410e+00 -0.62166977e+00 0.13959999e+00 + 1 211 0 0 -0.16181377e+00 -0.20679560e+00 -0.66262615e+00 0.13959999e+00 + 2 111 255 256 -0.17916881e-01 0.90699598e-01 -0.18671240e+01 0.13500001e+00 + 1 22 0 0 0.22189668e+00 0.14483929e+00 -0.35262706e+01 0.00000000e+00 + 1 22 0 0 0.13253841e+01 0.11733737e+01 -0.20632513e+02 0.00000000e+00 + 1 -211 0 0 0.70896387e+00 0.42484239e-01 -0.79635744e+01 0.13959999e+00 + 1 211 0 0 -0.20699434e+00 0.22482711e+00 -0.38755641e+01 0.13959999e+00 + 1 211 0 0 0.91621615e-01 0.20548759e+00 -0.13944298e+01 0.13959999e+00 + 1 -211 0 0 -0.52526727e-01 0.11911549e+00 -0.15794086e+01 0.13959999e+00 + 2 111 257 258 0.21986622e-01 -0.31425230e-01 -0.50584143e+00 0.13500001e+00 + 1 22 0 0 0.80350719e-01 -0.28660037e-01 -0.35064930e+00 0.00000000e+00 + 1 22 0 0 0.10078496e+00 -0.26805413e+00 -0.14362825e+01 0.00000000e+00 + 1 -321 0 0 0.13352612e+00 0.48621836e+00 -0.71747546e+01 0.49360001e+00 + 1 211 0 0 0.21060430e-01 0.95625919e+00 -0.14895931e+02 0.13959999e+00 + 1 321 0 0 0.36241159e-01 0.25879318e+00 -0.21070709e+01 0.49360001e+00 + 1 -211 0 0 -0.22558698e+00 0.25744259e+00 -0.38384852e+01 0.13959999e+00 + 1 211 0 0 -0.53802609e-01 0.12364080e+00 -0.81490459e+01 0.13959999e+00 + 1 -211 0 0 0.22544688e+00 0.15855151e+00 -0.15596225e+01 0.13959999e+00 + 1 211 0 0 0.15590119e+00 0.16821909e+00 -0.21994071e+01 0.13959999e+00 + 2 111 259 260 0.88188493e+00 -0.34106988e+00 -0.28310783e+01 0.13500001e+00 + 2 -311 261 261 -0.49028185e+00 -0.27938795e+00 -0.11734914e+01 0.49770001e+00 + 1 -211 0 0 -0.13646746e+00 0.29311034e+00 -0.44955459e+00 0.13959999e+00 + 2 311 262 262 0.31756687e+00 0.22368468e-01 -0.14064000e+01 0.49770001e+00 + 1 211 0 0 -0.11260775e+00 0.16415858e+00 -0.86380988e-01 0.13959999e+00 + 1 211 0 0 0.48683047e-01 0.29065162e-01 -0.10783450e+00 0.13959999e+00 + 1 -211 0 0 -0.30569077e+00 -0.35458556e+00 -0.42039293e+00 0.13959999e+00 + 1 211 0 0 0.46731442e-01 -0.47625706e+00 0.22509272e+00 0.13959999e+00 + 1 -211 0 0 -0.12812278e+01 -0.11230743e+01 0.96690822e+00 0.13959999e+00 + 1 22 0 0 -0.47970286e+00 -0.27839303e+00 0.83924335e+00 0.00000000e+00 + 1 22 0 0 -0.62231846e-01 0.80100372e-02 0.61749596e-01 0.00000000e+00 + 1 211 0 0 0.35047024e-01 -0.27726609e+00 0.10667506e+00 0.13959999e+00 + 2 111 263 264 -0.13479675e+01 -0.16598855e+01 0.74447048e+00 0.13500001e+00 + 1 -211 0 0 0.30724925e+00 0.29032791e+00 0.14580457e+01 0.13959999e+00 + 1 211 0 0 -0.62115543e-01 0.15006724e+00 0.32145339e+00 0.13959999e+00 + 2 111 265 266 -0.94178148e-01 0.85771888e+00 0.26560922e+01 0.13500001e+00 + 1 2212 0 0 -0.15730496e-01 0.37236276e+00 0.31265371e+01 0.93830001e+00 + 1 211 0 0 -0.17515281e-01 0.31961107e+00 0.22301774e+01 0.13959999e+00 + 1 -211 0 0 -0.34247249e-01 0.21564898e+00 0.10370485e+01 0.13959999e+00 + 1 211 0 0 -0.45986629e+00 0.89171660e+00 0.49212313e+01 0.13959999e+00 + 2 111 267 268 -0.38324305e+00 0.13922054e+00 0.15782231e+01 0.13500001e+00 + 1-2212 0 0 0.62526393e+00 0.13621899e+01 0.47636108e+01 0.93830001e+00 + 1 -211 0 0 -0.69936991e-01 0.16101956e-01 0.52896714e+00 0.13959999e+00 + 1 211 0 0 -0.49567103e-01 0.22178528e+00 0.30424258e+00 0.13959999e+00 + 1 -211 0 0 -0.33374456e+00 -0.10965851e+00 0.36545169e+00 0.13959999e+00 + 2 111 269 270 0.33280402e-01 -0.60741104e-01 0.47097629e+00 0.13500001e+00 + 1 -211 0 0 -0.90249926e-01 0.48498529e+00 0.59930718e+00 0.13959999e+00 + 2 111 271 272 -0.18034039e+00 -0.19127271e+00 0.20171446e+00 0.13500001e+00 + 1 -211 0 0 0.31085363e+00 0.14395136e+00 0.18177070e+00 0.13959999e+00 + 1 211 0 0 -0.23446777e+00 0.84410533e-02 0.67572641e+00 0.13959999e+00 + 1 211 0 0 -0.89451388e-01 0.24208829e-01 -0.34928125e+00 0.13959999e+00 + 1 -211 0 0 0.45168087e-01 0.37137708e+00 -0.14872617e+01 0.13959999e+00 + 2 311 273 273 0.41494928e-01 0.17588258e-01 -0.50956225e+00 0.49770001e+00 + 1 211 0 0 -0.22120477e+00 -0.31860429e+00 -0.69568950e+00 0.13959999e+00 + 2 310 274 275 -0.22368699e-01 0.73426984e-01 -0.24367452e+01 0.49770001e+00 + 1 2212 0 0 0.40168422e+00 0.56973457e+00 -0.28285611e+01 0.93830001e+00 + 1 -211 0 0 -0.90466261e-01 0.30606799e-01 -0.14663041e+00 0.13959999e+00 + 1 22 0 0 -0.20285095e+00 -0.24511898e+00 -0.70465693e+01 0.00000000e+00 + 1 22 0 0 0.41411784e-01 -0.19058691e+00 -0.72002172e+00 0.00000000e+00 + 1 2212 0 0 0.20840339e-01 0.38807443e+00 -0.73403870e+02 0.93830001e+00 + 1 -211 0 0 0.68866372e-01 0.18229327e+00 -0.19021038e+02 0.13959999e+00 + 1 130 0 0 0.30371356e+00 -0.33243194e+00 -0.51265442e+03 0.49770001e+00 + 1 211 0 0 -0.39681975e-01 0.22246712e+00 -0.19566095e+02 0.13959999e+00 + 1 -211 0 0 -0.81075244e-02 -0.20077671e+00 -0.18230586e+01 0.13959999e+00 + 1 -211 0 0 -0.50010502e+00 -0.46744642e+00 -0.78011012e+01 0.13959999e+00 + 1 211 0 0 0.31850559e+00 -0.34324247e-01 -0.10427074e+01 0.13959999e+00 + 1 211 0 0 0.24603629e+00 0.35976243e+00 -0.18780502e+02 0.13959999e+00 + 1 -211 0 0 -0.12001224e-01 -0.23025143e+00 -0.16015356e+02 0.13959999e+00 + 1 22 0 0 -0.93265906e-01 -0.48181377e-01 0.10101965e+03 0.00000000e+00 + 1 22 0 0 0.31932451e-01 -0.32176502e-01 0.15132648e+02 0.00000000e+00 + 1 22 0 0 0.23594819e+00 0.96489623e-01 0.35831766e+01 0.00000000e+00 + 1 22 0 0 0.55135410e-01 -0.40630244e-01 0.12880595e+01 0.00000000e+00 + 1 211 0 0 -0.13836588e+00 -0.57486284e+00 0.42439799e+01 0.13959999e+00 + 1 -211 0 0 -0.14420071e+00 -0.34837562e+00 0.61678200e+01 0.13959999e+00 + 2 111 276 277 0.96882053e-01 -0.71359628e+00 0.60839849e+01 0.13500001e+00 + 1 22 0 0 -0.18841324e-01 -0.22117667e+00 0.34900826e+00 0.00000000e+00 + 1 22 0 0 0.47555240e-02 -0.71396388e-01 0.15726320e-01 0.00000000e+00 + 1 130 0 0 0.18914202e+01 -0.21999004e+01 0.34685597e+01 0.49770001e+00 + 1 -211 0 0 0.29802856e+01 -0.22283113e+01 0.28174312e+01 0.13959999e+00 + 1 211 0 0 0.22849901e+01 -0.21045644e+01 0.26094499e+01 0.13959999e+00 + 1 22 0 0 0.15269976e+01 -0.21112761e+01 0.34445794e+01 0.00000000e+00 + 1 22 0 0 0.14658487e+00 -0.28237298e+00 0.43001607e+00 0.00000000e+00 + 1 22 0 0 0.10798589e+00 0.64270027e-01 -0.37716057e-01 0.00000000e+00 + 1 22 0 0 0.33394702e-01 -0.59428934e-01 -0.41283417e-01 0.00000000e+00 + 1 22 0 0 0.18971473e+01 0.43188098e+00 -0.93472230e+00 0.00000000e+00 + 1 22 0 0 0.27815574e+00 0.11842787e-01 -0.14292392e+00 0.00000000e+00 + 1 22 0 0 0.14522603e+00 -0.49813092e-02 -0.64232647e-01 0.00000000e+00 + 1 11 0 0 0.21419953e+00 -0.57948638e-01 0.34956697e-01 0.50999998e-03 + 1 -11 0 0 0.10797805e+00 -0.24737865e-01 0.98560471e-02 0.50999998e-03 + 1 22 0 0 0.89733899e+00 -0.26233699e+01 -0.77802546e-01 0.00000000e+00 + 1 22 0 0 0.36472762e+00 -0.10152452e+01 0.52305032e-01 0.00000000e+00 + 1 22 0 0 0.14396720e+00 -0.35587764e+00 -0.87434247e-01 0.00000000e+00 + 1 22 0 0 0.52292633e+00 -0.15699717e+01 -0.11380403e+00 0.00000000e+00 + 1 22 0 0 0.39604741e+00 -0.11356404e+01 -0.11139192e+00 0.00000000e+00 + 1 22 0 0 0.24186932e-02 -0.13323030e+00 0.33302596e-02 0.00000000e+00 + 1 22 0 0 0.23139253e-01 -0.80080658e-01 -0.38312331e-01 0.00000000e+00 + 1 22 0 0 0.33616728e+00 -0.68071508e+00 0.42899609e-01 0.00000000e+00 + 1 22 0 0 -0.14057273e+00 -0.11377235e+00 -0.72172314e+00 0.00000000e+00 + 1 22 0 0 -0.76066457e-01 -0.23443730e+00 -0.13253002e+01 0.00000000e+00 + 1 22 0 0 0.24506089e+00 -0.10456903e-01 -0.61914958e-01 0.00000000e+00 + 1 22 0 0 0.45578945e-01 -0.35023943e-01 -0.84679574e-01 0.00000000e+00 + 1 22 0 0 0.16220845e-04 -0.15516587e-01 -0.10466164e+01 0.00000000e+00 + 1 22 0 0 -0.17933102e-01 0.10621619e+00 -0.82050759e+00 0.00000000e+00 + 1 22 0 0 0.31282797e-01 -0.81709869e-01 -0.35712025e+00 0.00000000e+00 + 1 22 0 0 -0.92961732e-02 0.50284639e-01 -0.14872116e+00 0.00000000e+00 + 1 22 0 0 0.27460128e+00 -0.16958950e+00 -0.88408399e+00 0.00000000e+00 + 1 22 0 0 0.60728365e+00 -0.17148039e+00 -0.19469944e+01 0.00000000e+00 + 1 130 0 0 -0.49028185e+00 -0.27938795e+00 -0.11734914e+01 0.49770001e+00 + 1 130 0 0 0.31756687e+00 0.22368468e-01 -0.14064000e+01 0.49770001e+00 + 1 22 0 0 -0.13274746e+01 -0.15987654e+01 0.71985871e+00 0.00000000e+00 + 1 22 0 0 -0.20492829e-01 -0.61120078e-01 0.24611739e-01 0.00000000e+00 + 1 22 0 0 -0.25996860e-01 0.26112226e+00 0.10192146e+01 0.00000000e+00 + 1 22 0 0 -0.68181291e-01 0.59659660e+00 0.16368775e+01 0.00000000e+00 + 1 22 0 0 -0.56165677e-01 0.72462305e-01 0.25628680e+00 0.00000000e+00 + 1 22 0 0 -0.32707736e+00 0.66758223e-01 0.13219362e+01 0.00000000e+00 + 1 22 0 0 -0.45394484e-01 -0.21222722e-01 0.82837217e-01 0.00000000e+00 + 1 22 0 0 0.78674890e-01 -0.39518386e-01 0.38813910e+00 0.00000000e+00 + 1 22 0 0 -0.13908482e+00 -0.19842787e+00 0.13059059e+00 0.00000000e+00 + 1 22 0 0 -0.41255571e-01 0.71551614e-02 0.71123861e-01 0.00000000e+00 + 1 130 0 0 0.41494928e-01 0.17588258e-01 -0.50956225e+00 0.49770001e+00 + 2 111 278 279 0.44763453e-01 0.21693882e+00 -0.17932104e+01 0.13500001e+00 + 2 111 280 281 -0.67132153e-01 -0.14351183e+00 -0.64353466e+00 0.13500001e+00 + 1 22 0 0 0.12255216e+00 -0.46857163e+00 0.42406788e+01 0.00000000e+00 + 1 22 0 0 -0.25670115e-01 -0.24502462e+00 0.18433053e+01 0.00000000e+00 + 1 22 0 0 0.81326328e-02 0.17741503e+00 -0.16375283e+01 0.00000000e+00 + 1 22 0 0 0.36630820e-01 0.39523788e-01 -0.15568215e+00 0.00000000e+00 + 1 22 0 0 -0.17954875e-01 0.24108613e-01 -0.58036458e-01 0.00000000e+00 + 1 22 0 0 -0.49177285e-01 -0.16762045e+00 -0.58549827e+00 0.00000000e+00 + 326 + 2 25 2 3 0.41438408e+02 0.14557352e+02 -0.14048491e+02 0.28458023e+03 + 2 23 4 5 -0.46209373e+02 0.91588821e+02 0.17647835e+02 0.92447227e+02 + 2 23 6 7 0.87647781e+02 -0.77031471e+02 -0.31696327e+02 0.87191383e+02 + 1 13 0 0 0.10370345e+02 0.41394424e+02 0.41884537e+02 0.10570000e+00 + 1 -13 0 0 -0.56579723e+02 0.50194420e+02 -0.24236698e+02 0.10570000e+00 + 1 11 0 0 0.66831177e+02 -0.33942914e+01 -0.27768253e+02 0.50999998e-03 + 1 -11 0 0 0.20816608e+02 -0.73637177e+02 -0.39280732e+01 0.50999998e-03 + 2 2 34 34 -0.71108060e+01 0.14566184e+01 0.22808779e+02 0.55999998e-02 + 2 21 34 34 -0.18810297e+01 0.16388229e+01 0.91655064e+01 0.00000000e+00 + 2 21 34 34 -0.61637654e+01 0.39791441e+01 0.26933565e+02 0.00000000e+00 + 2 21 34 34 -0.69973426e+01 0.37425354e+01 0.27603138e+02 0.00000000e+00 + 2 21 34 34 -0.13199933e+02 0.54352593e+01 0.44799198e+02 0.00000000e+00 + 2 21 34 34 -0.16915086e+00 0.34760669e+00 0.10103340e+02 0.00000000e+00 + 2 21 34 34 -0.14391123e+01 -0.22032247e+00 -0.21317600e+02 0.00000000e+00 + 2 2101 34 34 0.17409255e+00 -0.21291969e-01 -0.55086456e+03 0.57933331e+00 + 2 3 59 59 -0.61325729e+00 0.18470528e+01 -0.39895196e+01 0.00000000e+00 + 2 21 59 59 0.14391123e+01 0.22032247e+00 0.25952251e+02 0.00000000e+00 + 2 -3 59 59 0.61325729e+00 -0.18470528e+01 0.13582983e+02 0.00000000e+00 + 2 2101 70 70 0.32395923e+00 0.25666359e+00 0.53615656e+03 0.57933331e+00 + 2 21 70 70 -0.15227619e+01 0.54397371e-01 0.38746700e+02 0.00000000e+00 + 2 21 70 70 -0.14995421e+00 -0.26981854e+00 0.79972345e+00 0.00000000e+00 + 2 21 70 70 -0.84305400e+00 -0.25279527e+01 0.10104793e+02 0.00000000e+00 + 2 21 70 70 -0.36814457e+00 0.10394955e+00 0.29598224e+01 0.00000000e+00 + 2 21 70 70 -0.17633410e+00 -0.48724639e+00 0.26058824e+01 0.00000000e+00 + 2 21 70 70 0.25736117e-02 0.28950627e+01 0.44561954e+02 0.00000000e+00 + 2 21 70 70 -0.95671046e+00 0.20214338e+01 0.34076393e+02 0.00000000e+00 + 2 21 70 70 0.11764596e+02 -0.14580537e+02 -0.32612015e+02 0.00000000e+00 + 2 21 70 70 0.39286840e+01 -0.53908911e+01 -0.93192339e+01 0.00000000e+00 + 2 21 70 70 0.78865781e+01 -0.96656160e+01 -0.10694677e+02 0.00000000e+00 + 2 21 70 70 0.75945604e+00 -0.84174627e+00 -0.17217987e+01 0.00000000e+00 + 2 21 70 70 0.77119696e+00 -0.19251760e+01 -0.10005461e+01 0.00000000e+00 + 2 21 70 70 -0.28015524e+02 -0.11956046e+01 -0.18040230e+03 0.00000000e+00 + 2 2 70 70 0.50496191e+00 0.41702172e+00 -0.24989708e+02 0.55999998e-02 + 2 92 35 58 -0.36787048e+02 0.16358372e+02 -0.43076865e+03 0.57480469e+03 + 2 323 112 113 -0.49290743e+01 0.24374750e+01 0.18801435e+02 0.89566958e+00 + 2 3322 114 115 -0.64341292e+01 0.34679275e+01 0.25288445e+02 0.13149000e+01 + 1 321 0 0 -0.76996989e+01 0.26784744e+01 0.26400232e+02 0.49360001e+00 + 2-3224 116 117 -0.46863966e+01 0.22057505e+01 0.17954533e+02 0.13658290e+01 + 2 221 118 119 -0.40311294e+01 0.19123808e+01 0.16239162e+02 0.54750001e+00 + 2 -313 120 121 -0.43060822e+01 0.22962837e+01 0.16751940e+02 0.91629928e+00 + 2 113 122 123 -0.21221604e+01 0.82904750e+00 0.10456110e+02 0.96900457e+00 + 1 -211 0 0 -0.71399033e+00 0.44747451e+00 0.18689886e+01 0.13959999e+00 + 1 211 0 0 -0.67922479e+00 0.19668864e+00 0.32637978e+01 0.13959999e+00 + 1 2112 0 0 0.14117671e-01 0.23368967e+00 0.24250169e+01 0.93959999e+00 + 1 -211 0 0 0.18886009e+00 -0.26079533e+00 -0.28592691e+00 0.13959999e+00 + 2-2114 124 125 0.94134368e-01 -0.46292496e+00 0.71708316e+00 0.13580405e+01 + 2 213 126 127 -0.15038444e-01 0.46724507e+00 -0.40085700e+00 0.93637139e+00 + 1 -211 0 0 -0.51298213e+00 0.10653985e+00 -0.11979393e+01 0.13959999e+00 + 2 213 128 129 0.19174059e+00 0.30409923e+00 -0.66043788e+00 0.44958362e+00 + 2 221 130 131 -0.51977402e+00 -0.25283831e+00 -0.82875509e+01 0.54750001e+00 + 2 -213 132 133 0.21035807e+00 -0.24310401e+00 -0.76653104e+01 0.68721831e+00 + 1 211 0 0 -0.14391299e+00 0.61576851e-02 -0.45478663e+00 0.13959999e+00 + 2 311 134 134 -0.41194418e+00 0.21298569e+00 -0.40379262e+01 0.49770001e+00 + 2 -323 135 136 0.46218705e+00 -0.13160247e-01 -0.16436102e+02 0.92755502e+00 + 2 3212 137 138 0.26328048e-01 -0.33102626e+00 -0.25353889e+02 0.11926000e+01 + 2-3212 139 140 -0.43017650e+00 0.87195158e-01 -0.67074966e+02 0.11926000e+01 + 2 213 141 142 -0.56359255e+00 -0.97283155e-01 -0.63400448e+02 0.74333543e+00 + 1 2112 0 0 0.22453530e+00 0.13008809e+00 -0.37567917e+03 0.93959999e+00 + 2 92 60 69 0.14391123e+01 0.22032247e+00 0.35545715e+02 0.26152042e+02 + 2 -311 143 143 0.24636053e+00 0.80416781e+00 -0.13087701e+01 0.49770001e+00 + 2 -213 144 145 -0.46715793e+00 0.37862208e+00 -0.13609464e+01 0.99066472e+00 + 2 113 146 147 -0.49340013e+00 0.38124898e+00 -0.40823966e+00 0.76850492e+00 + 1 211 0 0 0.23648372e+00 -0.76929885e-02 0.14349578e+00 0.13959999e+00 + 2 221 148 149 -0.48298340e-01 0.12194949e-01 0.48521988e-01 0.54750001e+00 + 2 113 150 151 0.60911554e+00 0.93871631e-01 0.99327192e+01 0.71365458e+00 + 2 -213 152 153 0.24638759e+00 0.67802534e-01 0.27052319e+01 0.79553854e+00 + 2 111 154 155 0.41040052e-01 -0.94815767e+00 0.65773239e+01 0.13500001e+00 + 2 213 156 157 0.53838879e+00 0.32270947e+00 0.70561552e+01 0.81596082e+00 + 2 311 158 158 0.53019249e+00 -0.88444436e+00 0.12160224e+02 0.49770001e+00 + 2 92 71 111 -0.60904775e+01 -0.31136059e+02 0.40927155e+03 0.85464911e+03 + 2 223 159 161 0.79515898e+00 -0.27576205e+00 0.32981046e+03 0.76945823e+00 + 1 2112 0 0 -0.75234270e+00 0.36816642e+00 0.17541595e+03 0.93959999e+00 + 2 113 162 163 -0.38099223e+00 0.30231598e+00 0.34283569e+02 0.49320701e+00 + 1 211 0 0 -0.64505205e-01 0.33822302e-01 0.33588643e+01 0.13959999e+00 + 2 -213 164 165 -0.23362136e+00 -0.14298709e+00 0.13607329e+02 0.76187265e+00 + 2 213 166 167 -0.65153199e+00 -0.94378179e+00 0.93435078e+01 0.57681608e+00 + 2-3222 168 169 -0.48454326e-01 -0.61692196e+00 0.11497869e+02 0.11894000e+01 + 2 3322 170 171 -0.10193458e+01 -0.98182422e+00 0.81353731e+01 0.13149000e+01 + 2 313 172 173 0.25482866e+00 0.95916474e+00 0.15540339e+02 0.82665676e+00 + 2 111 174 175 -0.11632512e+00 -0.38842503e-01 0.63832760e+01 0.13500001e+00 + 1 211 0 0 0.18610407e+00 -0.29942505e-01 0.16905839e+01 0.13959999e+00 + 2 -323 176 177 -0.98785299e+00 0.97554016e+00 0.19930580e+02 0.95813388e+00 + 2 333 178 179 -0.20591909e+00 0.74108356e+00 0.10084447e+02 0.10248526e+01 + 2 311 180 180 -0.12961921e-01 0.85354024e+00 0.14248921e+02 0.49770001e+00 + 2 213 181 182 0.47789223e-01 -0.26385936e+00 0.18492206e+01 0.66975856e+00 + 2 223 183 185 -0.65710343e-01 0.30790129e+00 0.21805565e+01 0.78227329e+00 + 2 -323 186 187 -0.20481806e+00 0.24165303e+00 0.35406852e+01 0.87079328e+00 + 2 313 188 189 0.20785101e+00 0.18129598e+00 0.65572000e+01 0.88840193e+00 + 1 211 0 0 0.37066418e+00 -0.10937537e+00 -0.46078855e+00 0.13959999e+00 + 1 -211 0 0 -0.35174221e+00 -0.23613321e-01 0.16317688e+01 0.13959999e+00 + 2 213 190 191 -0.48426622e+00 -0.21517088e+00 0.21306841e+00 0.72649771e+00 + 1 -211 0 0 0.44194964e+00 -0.31865066e+00 -0.70785117e+00 0.13959999e+00 + 2 213 192 193 0.61160407e+01 -0.73751845e+01 -0.16950869e+02 0.11057392e+01 + 2 111 194 195 0.28595188e+01 -0.27062492e+01 -0.38424091e+01 0.13500001e+00 + 2 -213 196 197 0.31980155e+01 -0.46024699e+01 -0.91538668e+01 0.89640588e+00 + 2 213 198 199 0.12488128e+01 -0.21438730e+01 -0.30187523e+01 0.46633410e+00 + 1-2212 0 0 0.17105160e+01 -0.22774978e+01 -0.41120591e+01 0.93830001e+00 + 1 2212 0 0 0.34862311e+01 -0.27751074e+01 -0.55731740e+01 0.93830001e+00 + 2 -213 200 201 0.17275742e+01 -0.35042291e+01 -0.49166145e+01 0.63925010e+00 + 2 213 202 203 0.20874901e+01 -0.34534984e+01 -0.34547279e+01 0.87731212e+00 + 2 -213 204 205 0.15763011e+01 -0.15362613e+01 -0.23864768e+01 0.88865817e+00 + 1 211 0 0 0.98504918e-02 0.46542299e+00 -0.84161872e+00 0.13959999e+00 + 2 113 206 207 -0.30992508e+00 -0.67074966e+00 -0.32063713e+01 0.70169324e+00 + 2 223 208 210 -0.29526111e+00 -0.85930061e+00 -0.14618748e+01 0.77016401e+00 + 2 -323 211 212 -0.13310676e+01 0.17135657e+00 -0.12346370e+02 0.90151328e+00 + 2 313 213 214 -0.21383297e+01 0.19214821e+00 -0.12359980e+02 0.90993136e+00 + 1 211 0 0 -0.83602877e+01 -0.10339868e+01 -0.54190029e+02 0.13959999e+00 + 2 111 215 216 -0.40879869e+01 -0.13894716e+00 -0.25157595e+02 0.13500001e+00 + 2 331 217 218 -0.39698505e+01 -0.18095352e+00 -0.32222778e+02 0.95784533e+00 + 2 113 219 220 -0.70482969e+01 0.58688861e+00 -0.45597282e+02 0.77489501e+00 + 2 113 221 222 0.70622033e+00 -0.29732278e+00 -0.18070471e+02 0.70901865e+00 + 2 311 223 223 -0.45461121e+01 0.22614551e+01 0.16710886e+02 0.49770001e+00 + 1 211 0 0 -0.38296169e+00 0.17601967e+00 0.20905490e+01 0.13959999e+00 + 2 3122 224 225 -0.50745373e+01 0.27856727e+01 0.19727074e+02 0.11156000e+01 + 2 111 226 227 -0.13595918e+01 0.68225455e+00 0.55613708e+01 0.13500001e+00 + 2-3122 228 229 -0.39722197e+01 0.19902633e+01 0.15882102e+02 0.11156000e+01 + 1 -211 0 0 -0.71417660e+00 0.21548705e+00 0.20724304e+01 0.13959999e+00 + 1 22 0 0 -0.82491601e+00 0.23666409e+00 0.37723541e+01 0.00000000e+00 + 1 22 0 0 -0.32062132e+01 0.16757166e+01 0.12466808e+02 0.00000000e+00 + 2 -311 230 230 -0.15520333e+01 0.86995488e+00 0.68825550e+01 0.49770001e+00 + 2 111 231 232 -0.27540488e+01 0.14263288e+01 0.98693848e+01 0.13500001e+00 + 1 -211 0 0 -0.86387968e+00 0.25682694e+00 0.62355433e+01 0.13959999e+00 + 1 211 0 0 -0.12582808e+01 0.57222050e+00 0.42205658e+01 0.13959999e+00 + 1-2112 0 0 -0.25038835e+00 -0.24545550e+00 0.56692249e+00 0.93959999e+00 + 2 111 233 234 0.34452271e+00 -0.21746945e+00 0.15016064e+00 0.13500001e+00 + 1 211 0 0 -0.44735974e+00 0.27902970e+00 -0.13100171e+00 0.13959999e+00 + 2 111 235 236 0.43232131e+00 0.18821540e+00 -0.26985529e+00 0.13500001e+00 + 1 211 0 0 0.28038591e-01 0.32686734e+00 -0.35192433e+00 0.13959999e+00 + 2 111 237 238 0.16370198e+00 -0.22768095e-01 -0.30851352e+00 0.13500001e+00 + 1 22 0 0 -0.33441242e-01 0.78583337e-01 -0.20943567e+00 0.00000000e+00 + 1 22 0 0 -0.48633280e+00 -0.33142164e+00 -0.80781155e+01 0.00000000e+00 + 1 -211 0 0 0.25126988e+00 0.13548167e+00 -0.45971608e+01 0.13959999e+00 + 2 111 239 240 -0.40911824e-01 -0.37858567e+00 -0.30681496e+01 0.13500001e+00 + 1 130 0 0 -0.41194418e+00 0.21298569e+00 -0.40379262e+01 0.49770001e+00 + 2 -311 241 241 0.18558350e+00 -0.74414700e-01 -0.50768628e+01 0.49770001e+00 + 1 -211 0 0 0.27660349e+00 0.61254457e-01 -0.11359239e+02 0.13959999e+00 + 2 3122 242 243 0.28847748e-01 -0.23323885e+00 -0.23418324e+02 0.11156000e+01 + 1 22 0 0 -0.25197007e-02 -0.97787425e-01 -0.19355658e+01 0.00000000e+00 + 2-3122 244 245 -0.35003576e+00 0.82073703e-01 -0.59023140e+02 0.11156000e+01 + 1 22 0 0 -0.80140755e-01 0.51214569e-02 -0.80518255e+01 0.00000000e+00 + 1 211 0 0 -0.63708037e+00 -0.64583734e-01 -0.59705170e+02 0.13959999e+00 + 2 111 246 247 0.73487774e-01 -0.32699425e-01 -0.36952834e+01 0.13500001e+00 + 2 310 248 249 0.24636053e+00 0.80416781e+00 -0.13087701e+01 0.49770001e+00 + 1 -211 0 0 -0.70218945e+00 0.22152367e+00 -0.58502531e+00 0.13959999e+00 + 2 111 250 251 0.23503149e+00 0.15709843e+00 -0.77592117e+00 0.13500001e+00 + 1 -211 0 0 0.16273546e+00 0.61937921e-01 -0.19819413e+00 0.13959999e+00 + 1 211 0 0 -0.65613562e+00 0.31931105e+00 -0.21004553e+00 0.13959999e+00 + 1 22 0 0 0.18478692e+00 -0.43670822e-01 0.19404837e+00 0.00000000e+00 + 1 22 0 0 -0.23308526e+00 0.55865772e-01 -0.14552638e+00 0.00000000e+00 + 1 211 0 0 0.50777370e+00 0.31613728e+00 0.80921898e+01 0.13959999e+00 + 1 -211 0 0 0.10134178e+00 -0.22226566e+00 0.18405293e+01 0.13959999e+00 + 1 -211 0 0 -0.47400147e-01 0.33018929e+00 0.75475168e+00 0.13959999e+00 + 2 111 252 253 0.29378775e+00 -0.26238674e+00 0.19504805e+01 0.13500001e+00 + 1 22 0 0 0.34860112e-01 -0.24120235e+00 0.20853834e+01 0.00000000e+00 + 1 22 0 0 0.61799400e-02 -0.70695531e+00 0.44919400e+01 0.00000000e+00 + 1 211 0 0 -0.13133617e+00 -0.62698528e-01 0.77079558e+00 0.13959999e+00 + 2 111 254 255 0.66972488e+00 0.38540798e+00 0.62853584e+01 0.13500001e+00 + 1 130 0 0 0.53019249e+00 -0.88444436e+00 0.12160224e+02 0.49770001e+00 + 1 -211 0 0 0.21897934e-01 -0.15447406e+00 0.42676281e+02 0.13959999e+00 + 1 211 0 0 0.46600056e+00 -0.23210877e+00 0.20299660e+03 0.13959999e+00 + 2 111 256 257 0.30726051e+00 0.11082076e+00 0.84137619e+02 0.13500001e+00 + 1 211 0 0 -0.30300719e+00 0.31685460e+00 0.16920702e+02 0.13959999e+00 + 1 -211 0 0 -0.77985033e-01 -0.14538631e-01 0.17362867e+02 0.13959999e+00 + 1 -211 0 0 -0.20240374e+00 -0.66937879e-01 0.13039113e+02 0.13959999e+00 + 2 111 258 259 -0.31217610e-01 -0.76049201e-01 0.56821489e+00 0.13500001e+00 + 1 211 0 0 -0.24947886e+00 -0.74414772e+00 0.66068707e+01 0.13959999e+00 + 2 111 260 261 -0.40205309e+00 -0.19963400e+00 0.27366371e+01 0.13500001e+00 + 1-2212 0 0 -0.73050909e-01 -0.34525424e+00 0.75620427e+01 0.93830001e+00 + 2 111 262 263 0.24596587e-01 -0.27166769e+00 0.39358263e+01 0.13500001e+00 + 2 3122 264 265 -0.86498624e+00 -0.88570130e+00 0.64826331e+01 0.11156000e+01 + 2 111 266 267 -0.15435956e+00 -0.96122973e-01 0.16527400e+01 0.13500001e+00 + 1 321 0 0 0.10598703e+00 0.35855144e+00 0.58029475e+01 0.49360001e+00 + 1 -211 0 0 0.14884162e+00 0.60061330e+00 0.97373924e+01 0.13959999e+00 + 1 22 0 0 -0.11161480e-01 0.16877351e-01 0.13841344e+00 0.00000000e+00 + 1 22 0 0 -0.10516363e+00 -0.55719852e-01 0.62448621e+01 0.00000000e+00 + 1 -321 0 0 -0.24676126e+00 0.44987160e+00 0.11329118e+02 0.49360001e+00 + 2 111 268 269 -0.74109185e+00 0.52566862e+00 0.86014633e+01 0.13500001e+00 + 1 -321 0 0 -0.33094257e-01 0.28266686e+00 0.53545933e+01 0.49360001e+00 + 1 321 0 0 -0.17282484e+00 0.45841673e+00 0.47298541e+01 0.49360001e+00 + 2 310 270 271 -0.12961921e-01 0.85354024e+00 0.14248921e+02 0.49770001e+00 + 1 211 0 0 0.25156075e+00 -0.23852922e+00 0.15660967e+01 0.13959999e+00 + 2 111 272 273 -0.20377150e+00 -0.25330152e-01 0.28312409e+00 0.13500001e+00 + 1 -211 0 0 -0.15448186e+00 -0.50658688e-01 0.11333379e+01 0.13959999e+00 + 1 211 0 0 0.19927508e+00 0.17115864e+00 0.56634295e+00 0.13959999e+00 + 2 111 274 275 -0.11050357e+00 0.18740135e+00 0.48087588e+00 0.13500001e+00 + 2 -311 276 276 -0.13400263e+00 -0.94701037e-01 0.25199316e+01 0.49770001e+00 + 1 -211 0 0 -0.70815407e-01 0.33635402e+00 0.10207530e+01 0.13959999e+00 + 2 311 277 277 0.26900309e+00 0.36403023e-01 0.26404321e+01 0.49770001e+00 + 2 111 278 279 -0.61152078e-01 0.14489296e+00 0.39167686e+01 0.13500001e+00 + 1 211 0 0 -0.14797384e+00 -0.40751368e+00 -0.13095684e-01 0.13959999e+00 + 2 111 280 281 -0.33629245e+00 0.19234276e+00 0.22616413e+00 0.13500001e+00 + 1 211 0 0 0.63919884e+00 -0.12869163e+01 -0.28832173e+01 0.13959999e+00 + 2 111 282 283 0.54768419e+01 -0.60882683e+01 -0.14067651e+02 0.13500001e+00 + 1 22 0 0 0.18789384e+01 -0.16896714e+01 -0.24750209e+01 0.00000000e+00 + 1 22 0 0 0.98058045e+00 -0.10165777e+01 -0.13673881e+01 0.00000000e+00 + 1 -211 0 0 0.24018731e+01 -0.29324963e+01 -0.56338801e+01 0.13959999e+00 + 2 111 284 285 0.79614258e+00 -0.16699739e+01 -0.35199869e+01 0.13500001e+00 + 1 211 0 0 0.91364026e-01 -0.27511114e+00 -0.36023402e+00 0.13959999e+00 + 2 111 286 287 0.11574489e+01 -0.18687620e+01 -0.26585183e+01 0.13500001e+00 + 1 -211 0 0 0.25930572e+00 -0.55958503e+00 -0.51718402e+00 0.13959999e+00 + 2 111 288 289 0.14682686e+01 -0.29446440e+01 -0.43994308e+01 0.13500001e+00 + 1 211 0 0 0.20326428e+00 -0.77078432e-01 -0.17394587e+00 0.13959999e+00 + 2 111 290 291 0.18842258e+01 -0.33764200e+01 -0.32807822e+01 0.13500001e+00 + 1 -211 0 0 0.34082428e+00 -0.79663908e+00 -0.58045924e+00 0.13959999e+00 + 2 111 292 293 0.12354767e+01 -0.73962200e+00 -0.18060172e+01 0.13500001e+00 + 1 -211 0 0 0.13689779e+00 -0.14520556e-01 -0.41534090e+00 0.13959999e+00 + 1 211 0 0 -0.44682288e+00 -0.65622914e+00 -0.27910304e+01 0.13959999e+00 + 1 211 0 0 0.47002457e-01 -0.39860123e+00 -0.68654937e+00 0.13959999e+00 + 1 -211 0 0 -0.52497648e-01 0.34334734e-01 -0.10422316e+00 0.13959999e+00 + 2 111 294 295 -0.28976595e+00 -0.49503410e+00 -0.67110223e+00 0.13500001e+00 + 2 -311 296 296 -0.75847727e+00 0.36377749e+00 -0.65850973e+01 0.49770001e+00 + 1 -211 0 0 -0.57259035e+00 -0.19242091e+00 -0.57612729e+01 0.13959999e+00 + 2 311 297 297 -0.18215243e+01 0.31788930e-01 -0.11180157e+02 0.49770001e+00 + 2 111 298 299 -0.31680539e+00 0.16035928e+00 -0.11798224e+01 0.13500001e+00 + 1 22 0 0 -0.16041219e+01 -0.82175143e-01 -0.95077581e+01 0.00000000e+00 + 1 22 0 0 -0.24838650e+01 -0.56772016e-01 -0.15649836e+02 0.00000000e+00 + 1 22 0 0 -0.46702590e-01 -0.52240146e-02 -0.33040181e+00 0.00000000e+00 + 2 113 300 301 -0.39231477e+01 -0.17572948e+00 -0.31892374e+02 0.95052135e+00 + 1 -211 0 0 -0.61926789e+01 0.35115600e+00 -0.38862953e+02 0.13959999e+00 + 1 211 0 0 -0.85561693e+00 0.23573253e+00 -0.67343206e+01 0.13959999e+00 + 1 -211 0 0 0.37391788e+00 -0.32747900e+00 -0.53179026e+01 0.13959999e+00 + 1 211 0 0 0.33230245e+00 0.30156225e-01 -0.12752569e+02 0.13959999e+00 + 2 310 302 303 -0.45461121e+01 0.22614551e+01 0.16710886e+02 0.49770001e+00 + 1 2212 0 0 -0.39082196e+01 0.21662800e+01 0.15476336e+02 0.93830001e+00 + 1 -211 0 0 -0.11663171e+01 0.61939240e+00 0.42507343e+01 0.13959999e+00 + 1 22 0 0 -0.32708722e+00 0.21929240e+00 0.15617156e+01 0.00000000e+00 + 1 22 0 0 -0.10325046e+01 0.46296209e+00 0.39996550e+01 0.00000000e+00 + 1-2112 0 0 -0.34557827e+01 0.16201288e+01 0.13723925e+02 0.93959999e+00 + 2 111 304 305 -0.51643735e+00 0.37013489e+00 0.21581783e+01 0.13500001e+00 + 1 130 0 0 -0.15520333e+01 0.86995488e+00 0.68825550e+01 0.49770001e+00 + 1 22 0 0 -0.25444410e+01 0.13548732e+01 0.91284723e+01 0.00000000e+00 + 1 22 0 0 -0.20960797e+00 0.71455613e-01 0.74091214e+00 0.00000000e+00 + 1 22 0 0 0.29127267e+00 -0.16129617e+00 0.17135797e+00 0.00000000e+00 + 1 22 0 0 0.53250067e-01 -0.56173276e-01 -0.21197330e-01 0.00000000e+00 + 1 22 0 0 0.11820612e+00 0.12103913e+00 -0.97233601e-01 0.00000000e+00 + 1 22 0 0 0.31411517e+00 0.67176275e-01 -0.17262168e+00 0.00000000e+00 + 1 22 0 0 -0.21006495e-01 0.32251608e-02 -0.10877032e-01 0.00000000e+00 + 1 22 0 0 0.18470848e+00 -0.25993256e-01 -0.29763651e+00 0.00000000e+00 + 1 22 0 0 -0.40173959e-01 -0.37500456e+00 -0.30678730e+01 0.00000000e+00 + 1 22 0 0 -0.73787145e-03 -0.35811309e-02 -0.27672201e-03 0.00000000e+00 + 1 130 0 0 0.18558350e+00 -0.74414700e-01 -0.50768628e+01 0.49770001e+00 + 1 2112 0 0 0.92052236e-01 -0.12041133e+00 -0.19125034e+02 0.93959999e+00 + 2 111 306 307 -0.63204482e-01 -0.11282752e+00 -0.42932920e+01 0.13500001e+00 + 1-2112 0 0 -0.27687034e+00 -0.10830589e-01 -0.46226391e+02 0.93959999e+00 + 2 111 308 309 -0.73165394e-01 0.92904292e-01 -0.12796747e+02 0.13500001e+00 + 1 22 0 0 0.10434706e-01 0.35379745e-01 -0.22813993e+01 0.00000000e+00 + 1 22 0 0 0.63053064e-01 -0.68079174e-01 -0.14138842e+01 0.00000000e+00 + 2 111 310 312 0.27425963e+00 0.77905470e+00 -0.11070448e+01 0.13500001e+00 + 2 111 313 314 -0.27899094e-01 0.25113076e-01 -0.20172533e+00 0.13500001e+00 + 1 22 0 0 0.14557257e-01 0.46167355e-01 -0.26479146e+00 0.00000000e+00 + 1 22 0 0 0.22047424e+00 0.11093107e+00 -0.51112974e+00 0.00000000e+00 + 1 22 0 0 0.61136525e-01 -0.13958430e+00 0.65220308e+00 0.00000000e+00 + 1 22 0 0 0.23265123e+00 -0.12280244e+00 0.12982774e+01 0.00000000e+00 + 1 22 0 0 0.37815168e+00 0.27617621e+00 0.34253983e+01 0.00000000e+00 + 1 22 0 0 0.29157323e+00 0.10923176e+00 0.28599603e+01 0.00000000e+00 + 1 22 0 0 0.13605198e+00 0.16790852e-02 0.46064415e+02 0.00000000e+00 + 1 22 0 0 0.17120852e+00 0.10914167e+00 0.38073200e+02 0.00000000e+00 + 1 22 0 0 0.40138498e-01 0.93274154e-02 0.92987537e-01 0.00000000e+00 + 1 22 0 0 -0.71356110e-01 -0.85376620e-01 0.47522736e+00 0.00000000e+00 + 1 22 0 0 -0.39242959e+00 -0.21617706e+00 0.26620002e+01 0.00000000e+00 + 1 22 0 0 -0.96234623e-02 0.16543061e-01 0.74637100e-01 0.00000000e+00 + 1 22 0 0 0.36018837e-01 -0.17901634e+00 0.32870953e+01 0.00000000e+00 + 1 22 0 0 -0.11422250e-01 -0.92651352e-01 0.64873087e+00 0.00000000e+00 + 1 2112 0 0 -0.84846747e+00 -0.79750925e+00 0.56253753e+01 0.93959999e+00 + 2 111 315 316 -0.16518824e-01 -0.88192098e-01 0.85725862e+00 0.13500001e+00 + 1 22 0 0 -0.11403742e+00 -0.12847933e+00 0.11442795e+01 0.00000000e+00 + 1 22 0 0 -0.40322140e-01 0.32356367e-01 0.50846052e+00 0.00000000e+00 + 1 22 0 0 -0.49423215e+00 0.40656820e+00 0.63980045e+01 0.00000000e+00 + 1 22 0 0 -0.24685967e+00 0.11910039e+00 0.22034583e+01 0.00000000e+00 + 1 -211 0 0 0.15085154e-01 0.45040664e+00 0.10370765e+02 0.13959999e+00 + 1 211 0 0 -0.28047075e-01 0.40313360e+00 0.38781571e+01 0.13959999e+00 + 1 22 0 0 -0.12062058e+00 0.28491676e-01 0.76203555e-01 0.00000000e+00 + 1 22 0 0 -0.83150908e-01 -0.53821824e-01 0.20692053e+00 0.00000000e+00 + 1 22 0 0 -0.43055758e-01 0.14696251e+00 0.19304861e+00 0.00000000e+00 + 1 22 0 0 -0.67447804e-01 0.40438842e-01 0.28782725e+00 0.00000000e+00 + 2 310 317 318 -0.13400263e+00 -0.94701037e-01 0.25199316e+01 0.49770001e+00 + 2 310 319 320 0.26900309e+00 0.36403023e-01 0.26404321e+01 0.49770001e+00 + 1 22 0 0 -0.63334741e-02 0.87834835e-01 0.86847484e+00 0.00000000e+00 + 1 22 0 0 -0.54818600e-01 0.57058126e-01 0.30482934e+01 0.00000000e+00 + 1 22 0 0 -0.31515610e+00 0.12453495e+00 0.17935826e+00 0.00000000e+00 + 1 22 0 0 -0.21136321e-01 0.67807809e-01 0.46805874e-01 0.00000000e+00 + 1 22 0 0 0.43340564e+01 -0.47914200e+01 -0.10993716e+02 0.00000000e+00 + 1 22 0 0 0.11427853e+01 -0.12968487e+01 -0.30739343e+01 0.00000000e+00 + 1 22 0 0 0.69023973e+00 -0.15316551e+01 -0.32212863e+01 0.00000000e+00 + 1 22 0 0 0.10590283e+00 -0.13831866e+00 -0.29870057e+00 0.00000000e+00 + 1 22 0 0 0.57320201e+00 -0.81362838e+00 -0.12527791e+01 0.00000000e+00 + 1 22 0 0 0.58424693e+00 -0.10551337e+01 -0.14057392e+01 0.00000000e+00 + 1 22 0 0 0.14005007e+00 -0.30309054e+00 -0.51523858e+00 0.00000000e+00 + 1 22 0 0 0.13282185e+01 -0.26415532e+01 -0.38841918e+01 0.00000000e+00 + 1 22 0 0 0.11602631e+01 -0.21961141e+01 -0.21464989e+01 0.00000000e+00 + 1 22 0 0 0.72396260e+00 -0.11803057e+01 -0.11342831e+01 0.00000000e+00 + 1 22 0 0 0.10558223e+01 -0.68428266e+00 -0.15619646e+01 0.00000000e+00 + 1 22 0 0 0.17965445e+00 -0.55339292e-01 -0.24405247e+00 0.00000000e+00 + 1 22 0 0 -0.66199720e-01 -0.47192749e-01 -0.50142597e-01 0.00000000e+00 + 1 22 0 0 -0.22356623e+00 -0.44784135e+00 -0.62095964e+00 0.00000000e+00 + 1 130 0 0 -0.75847727e+00 0.36377749e+00 -0.65850973e+01 0.49770001e+00 + 2 310 321 322 -0.18215243e+01 0.31788930e-01 -0.11180157e+02 0.49770001e+00 + 1 22 0 0 -0.31177819e+00 0.11260062e+00 -0.10116001e+01 0.00000000e+00 + 1 22 0 0 -0.50271973e-02 0.47758657e-01 -0.16822235e+00 0.00000000e+00 + 1 -211 0 0 -0.83661580e+00 -0.37449476e+00 -0.86737938e+01 0.13959999e+00 + 1 211 0 0 -0.30865319e+01 0.19876529e+00 -0.23218578e+02 0.13959999e+00 + 2 111 323 324 -0.10525277e+01 0.68615335e+00 0.38682466e+01 0.13500001e+00 + 2 111 325 326 -0.34935842e+01 0.15753014e+01 0.12842638e+02 0.13500001e+00 + 1 22 0 0 -0.39728139e-01 0.20489970e-01 0.66015996e-01 0.00000000e+00 + 1 22 0 0 -0.47670925e+00 0.34964493e+00 0.20921626e+01 0.00000000e+00 + 1 22 0 0 -0.43703761e-01 -0.13569491e+00 -0.26803949e+01 0.00000000e+00 + 1 22 0 0 -0.19500721e-01 0.22867374e-01 -0.16128974e+01 0.00000000e+00 + 1 22 0 0 -0.88810906e-01 0.10295479e+00 -0.75418334e+01 0.00000000e+00 + 1 22 0 0 0.15645508e-01 -0.10050502e-01 -0.52549133e+01 0.00000000e+00 + 1 22 0 0 0.23610634e+00 0.50179350e+00 -0.69610780e+00 0.00000000e+00 + 1 -11 0 0 0.21298081e-02 0.88938728e-01 -0.13902593e+00 0.50999998e-03 + 1 11 0 0 0.36023483e-01 0.18832244e+00 -0.27191100e+00 0.50999998e-03 + 1 22 0 0 -0.27493648e-01 -0.37969157e-01 -0.16731404e+00 0.00000000e+00 + 1 22 0 0 -0.40544383e-03 0.63082233e-01 -0.34411285e-01 0.00000000e+00 + 1 22 0 0 -0.62414233e-01 -0.90601563e-01 0.48255536e+00 0.00000000e+00 + 1 22 0 0 0.45895405e-01 0.24094582e-02 0.37470329e+00 0.00000000e+00 + 1 -211 0 0 -0.21274689e+00 0.40981188e-01 0.19403763e+01 0.13959999e+00 + 1 211 0 0 0.78744248e-01 -0.13568223e+00 0.57955533e+00 0.13959999e+00 + 1 -211 0 0 0.11479615e+00 -0.11553774e+00 0.49125594e+00 0.13959999e+00 + 1 211 0 0 0.15420695e+00 0.15194076e+00 0.21491761e+01 0.13959999e+00 + 1 211 0 0 -0.16319364e+01 -0.47821801e-01 -0.95520258e+01 0.13959999e+00 + 1 -211 0 0 -0.18958768e+00 0.79610728e-01 -0.16281309e+01 0.13959999e+00 + 1 22 0 0 -0.29928148e+00 0.12499975e+00 0.10057473e+01 0.00000000e+00 + 1 22 0 0 -0.75324619e+00 0.56115359e+00 0.28624990e+01 0.00000000e+00 + 1 22 0 0 -0.26696101e+00 0.15567617e+00 0.97485036e+00 0.00000000e+00 + 1 22 0 0 -0.32266233e+01 0.14196252e+01 0.11867787e+02 0.00000000e+00 diff --git a/examples/extended/parallel/ParN04/pythia_main.f b/examples/extended/parallel/ParN04/pythia_main.f new file mode 100644 index 0000000000..b0a5126780 --- /dev/null +++ b/examples/extended/parallel/ParN04/pythia_main.f @@ -0,0 +1,88 @@ +* + COMMON /LUDAT2/ KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON /LUDAT3/ MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + COMMON /PYSUBS/ MSEL,MSUB(200),KFIN(2,-40:40),CKIN(200) + COMMON /PYPARS/ MSTP(200),PARP(200),MSTI(200),PARI(200) +*********** COMMON /LUJETS/ N,K(4000,5),P(4000,5),V(4000,5) + EXTERNAL LUDATA,PYDATA + CHARACTER FRAME*4,BEAM*10,TARGET*10 + REAL WIN + INTEGER LUCOMP + REAL PDT(500,5) +* + FRAME = 'CMS' + BEAM = 'P' + TARGET = 'P' + WIN = 14000. + NEVNT = 3 +* + MSEL = 0 + MSUB(102) = 1 + MSUB(123) = 1 + MSUB(124) = 1 +* + PMAS(6,1) = 176. + PMAS(25,1) = 500. + CKIN(1) = 470. + CKIN(2) = 530. +* +* turn off all Higgs decays except the ZZ +* + IH = LUCOMP(25) + DO IDC=MDCY(IH,2),MDCY(IH,2)+MDCY(IH,3)-1 + IF (KFDP(IDC,1).NE.23.AND.MDME(IDC,1).EQ.1) MDME(IDC,1)=0 + ENDDO +* +* turn off all Z decays except mumu or ee +* + IZ = LUCOMP(23) + DO IDC=MDCY(IZ,2),MDCY(IZ,2)+MDCY(IZ,3)-1 + IF (MDME(IDC,1).EQ.1) THEN + IF ((IABS(KFDP(IDC,1)).NE.13) + > .AND.(IABS(KFDP(IDC,1)).NE.11)) THEN + MDME(IDC,1)=0 + ENDIF + ENDIF + ENDDO +*********************************************************** + CALL PYINIT(FRAME,BEAM,TARGET,WIN) +* + DO IEVT = 1, NEVNT +* + CALL PYEVNT + CALL LUEDIT(11) + CALL LUEDIT(12) + CALL LUEDIT(15) +* + CALL LUHEPC(1) +* + CALL HEP2G4 +* + ENDDO +*********************************************************** + STOP + END +*********************************************************** + SUBROUTINE HEP2G4 +* +* Output /HEPEVT/ event structure to G4HEPEvtInterface +* +* M.Asai (asai@kekvax.kek.jp) -- 24/09/96 +* +*********************************************************** + PARAMETER (NMXHEP=2000) + COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + >JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + DOUBLE PRECISION PHEP,VHEP +* + WRITE(6,*) NHEP + DO IHEP=1,NHEP + WRITE(6,10) + > ISTHEP(IHEP),IDHEP(IHEP),JDAHEP(1,IHEP),JDAHEP(2,IHEP), + > PHEP(1,IHEP),PHEP(2,IHEP),PHEP(3,IHEP),PHEP(5,IHEP) +10 FORMAT(4I5,4(1X,D15.8)) + ENDDO +* + RETURN + END + diff --git a/examples/extended/parallel/ParN04/src/ExN04CalorimeterHit.cc b/examples/extended/parallel/ParN04/src/ExN04CalorimeterHit.cc new file mode 100644 index 0000000000..4b43319609 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04CalorimeterParametrisation.cc b/examples/extended/parallel/ParN04/src/ExN04CalorimeterParametrisation.cc new file mode 100644 index 0000000000..c054aaa3eb --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04CalorimeterParametrisation.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. * +// ******************************************************************** +// + +#include "ExN04CalorimeterParametrisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Tubs.hh" + +ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation() +{ + +#include "ExN04DetectorParameterDef.icc" + +} + +ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation() +{;} + +void ExN04CalorimeterParametrisation::ComputeTransformation +(const G4int copyNo,G4VPhysicalVolume *physVol) const +{ + G4ThreeVector origin; + physVol->SetTranslation(origin); +} + +void ExN04CalorimeterParametrisation::ComputeDimensions +(G4Tubs & calorimeterLayer, const G4int copyNo, + const G4VPhysicalVolume * physVol) const +{ + 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/parallel/ParN04/src/ExN04CalorimeterROGeometry.cc b/examples/extended/parallel/ParN04/src/ExN04CalorimeterROGeometry.cc new file mode 100644 index 0000000000..5710bc97a9 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04CalorimeterSD.cc b/examples/extended/parallel/ParN04/src/ExN04CalorimeterSD.cc new file mode 100644 index 0000000000..c2df7f35ce --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04DetectorConstruction.cc b/examples/extended/parallel/ParN04/src/ExN04DetectorConstruction.cc new file mode 100644 index 0000000000..7ed0cc02dd --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04DetectorParameterDef.icc b/examples/extended/parallel/ParN04/src/ExN04DetectorParameterDef.icc new file mode 100644 index 0000000000..6f7364f101 --- /dev/null +++ b/examples/extended/parallel/ParN04/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 = 2.*muBox_radius; + diff --git a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc new file mode 100644 index 0000000000..989366a0e5 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/parallel/ParN04/src/ExN04EventAction.cc b/examples/extended/parallel/ParN04/src/ExN04EventAction.cc new file mode 100644 index 0000000000..5a1bdfbac9 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04EventAction.cc @@ -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. * +// ******************************************************************** +// + +#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"); + } + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/draw/current"); + } +} + +void ExN04EventAction::EndOfEventAction(const G4Event* evt) +{ + G4cout << ">>> Event " << evt->GetEventID() << G4endl; + + 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; + } + + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + if(THC) THC->DrawAllHits(); + if(CHC) CHC->DrawAllHits(); + if(MHC) MHC->DrawAllHits(); + G4UImanager::GetUIpointer()->ApplyCommand("/vis/show/view"); + } +} + + + diff --git a/examples/extended/parallel/ParN04/src/ExN04Field.cc b/examples/extended/parallel/ParN04/src/ExN04Field.cc new file mode 100644 index 0000000000..fa8abd7c8c --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04Field.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. * +// ******************************************************************** +// + +#include "ExN04Field.hh" + +ExN04Field::ExN04Field() +{ + Bz = 3.0*tesla; + rmax_sq = sqr(50.*cm); + zmax = 100.*cm; +} + +ExN04Field::~ExN04Field() +{;} + +void ExN04Field::GetFieldValue(const double Point[3],double *Bfield) const +{ + 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/parallel/ParN04/src/ExN04HadronPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc new file mode 100644 index 0000000000..341e85e4e7 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc @@ -0,0 +1,428 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: ExN04HadronPhysics.cc,v 1.1 2002/03/05 15:22:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#include "ExN04HadronPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +ExN04HadronPhysics::ExN04HadronPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +ExN04HadronPhysics::~ExN04HadronPhysics() +{ +} + +#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); + + // PionPlus + pManager = G4PionPlus::PionPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEPionPlusModel = new G4LEPionPlusInelastic(); + theHEPionPlusModel = new G4HEPionPlusInelastic(); + thePionPlusInelastic.RegisterMe(theLEPionPlusModel); + thePionPlusInelastic.RegisterMe(theHEPionPlusModel); + 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(); + theHEPionMinusModel = new G4HEPionMinusInelastic(); + thePionMinusInelastic.RegisterMe(theLEPionMinusModel); + thePionMinusInelastic.RegisterMe(theHEPionMinusModel); + 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(theHEKaonPlusModel); + 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(theHEProtonModel); + 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(theHENeutronModel); + 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/parallel/ParN04/src/ExN04IonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc new file mode 100644 index 0000000000..4027057cb4 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/parallel/ParN04/src/ExN04MuonHit.cc b/examples/extended/parallel/ParN04/src/ExN04MuonHit.cc new file mode 100644 index 0000000000..ca82efb025 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04MuonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc new file mode 100644 index 0000000000..8dc9a4454b --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/parallel/ParN04/src/ExN04MuonSD.cc b/examples/extended/parallel/ParN04/src/ExN04MuonSD.cc new file mode 100644 index 0000000000..b464103b89 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04MuonSD.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. * +// ******************************************************************** +// + +#include "ExN04MuonSD.hh" +#include "ExN04MuonHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ios.hh" + +ExN04MuonSD::ExN04MuonSD(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="muonCollection"); + positionResolution = 5*cm; +} + +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 ExN04MuonSD::clear() +{ +} + +void ExN04MuonSD::DrawAll() +{ +} + +void ExN04MuonSD::PrintAll() +{ +} + diff --git a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc new file mode 100644 index 0000000000..5bab699154 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/03/05 15:22:17 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +#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/parallel/ParN04/src/ExN04PrimaryGeneratorAction.cc b/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..0f3023b19f --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorAction.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 "ExN04PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4HEPEvtInterface.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "ExN04PrimaryGeneratorMessenger.hh" + +ExN04PrimaryGeneratorAction::ExN04PrimaryGeneratorAction() +{ + HEPEvt = new G4HEPEvtInterface("pythia_event.data"); + + G4int n_particle = 1; + G4ParticleGun* fParticleGun = new G4ParticleGun(n_particle); + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + G4ParticleDefinition* particle + = particleTable->FindParticle(particleName="mu+"); + fParticleGun->SetParticleDefinition(particle); + fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,1.,0.)); + fParticleGun->SetParticleEnergy(100.*GeV); + fParticleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm)); + particleGun = fParticleGun; + + messenger = new ExN04PrimaryGeneratorMessenger(this); + useHEPEvt = true; +} + +ExN04PrimaryGeneratorAction::~ExN04PrimaryGeneratorAction() +{ + delete HEPEvt; + delete particleGun; + delete messenger; +} + +void ExN04PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + if(useHEPEvt) + { HEPEvt->GeneratePrimaryVertex(anEvent); } + else + { particleGun->GeneratePrimaryVertex(anEvent); } +} + + diff --git a/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorMessenger.cc b/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..72f0db3bf1 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorMessenger.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 "ExN04PrimaryGeneratorMessenger.hh" +#include "ExN04PrimaryGeneratorAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4ios.hh" + +ExN04PrimaryGeneratorMessenger::ExN04PrimaryGeneratorMessenger(ExN04PrimaryGeneratorAction * mpga) +:myAction(mpga) +{ + mydetDirectory = new G4UIdirectory("/mydet/"); + mydetDirectory->SetGuidance("ExN04 detector control commands."); + + genCmd = new G4UIcmdWithAString("/mydet/generator",this); + genCmd->SetGuidance("Select primary generator."); + genCmd->SetGuidance(" Available generators : PYTHIA, particleGun"); + genCmd->SetParameterName("generator",true); + genCmd->SetDefaultValue("PYTHIA"); + genCmd->SetCandidates("PYTHIA particleGun"); +} + +ExN04PrimaryGeneratorMessenger::~ExN04PrimaryGeneratorMessenger() +{ + delete genCmd; + delete mydetDirectory; +} + +void ExN04PrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==genCmd ) + { myAction->SetHEPEvtGenerator(newValue=="PYTHIA"); } +} + +G4String ExN04PrimaryGeneratorMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + + if( command==genCmd ) + { + if(myAction->GetHEPEvtGenerator()) + { cv = "PYTHIA"; } + else + { cv = "particleGun"; } + } + + return cv; +} + diff --git a/examples/extended/parallel/ParN04/src/ExN04StackingAction.cc b/examples/extended/parallel/ParN04/src/ExN04StackingAction.cc new file mode 100644 index 0000000000..cbe49ae54f --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04StackingActionMessenger.cc b/examples/extended/parallel/ParN04/src/ExN04StackingActionMessenger.cc new file mode 100644 index 0000000000..64244bb9a6 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04SteppingAction.cc b/examples/extended/parallel/ParN04/src/ExN04SteppingAction.cc new file mode 100644 index 0000000000..83ce56ad7c --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04TrackerHit.cc b/examples/extended/parallel/ParN04/src/ExN04TrackerHit.cc new file mode 100644 index 0000000000..f6094b7618 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04TrackerParametrisation.cc b/examples/extended/parallel/ParN04/src/ExN04TrackerParametrisation.cc new file mode 100644 index 0000000000..55b3ff1cc8 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04TrackerParametrisation.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 "ExN04TrackerParametrisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Tubs.hh" + +ExN04TrackerParametrisation::ExN04TrackerParametrisation() +{ + +#include "ExN04DetectorParameterDef.icc" + +} + +ExN04TrackerParametrisation::~ExN04TrackerParametrisation() +{;} + +void ExN04TrackerParametrisation::ComputeTransformation +(const G4int copyNo,G4VPhysicalVolume *physVol) const +{ + G4ThreeVector origin; + physVol->SetTranslation(origin); +} + +void ExN04TrackerParametrisation::ComputeDimensions +(G4Tubs & trackerLayer, const G4int copyNo, + const G4VPhysicalVolume * physVol) const +{ + 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/parallel/ParN04/src/ExN04TrackerSD.cc b/examples/extended/parallel/ParN04/src/ExN04TrackerSD.cc new file mode 100644 index 0000000000..0389809c88 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ExN04TrackingAction.cc b/examples/extended/parallel/ParN04/src/ExN04TrackingAction.cc new file mode 100644 index 0000000000..400d3b5601 --- /dev/null +++ b/examples/extended/parallel/ParN04/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/parallel/ParN04/src/ParExN04MarshaledHits.cc b/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc new file mode 100644 index 0000000000..3eba19e8a4 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc @@ -0,0 +1,119 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: ParExN04MarshaledHits.cc,v 1.1 2002/03/05 15:22:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- +// In this version, we MarshalHit and UnmarshalHit for +// TMarshaledHitsCollection +// more efficiently by ignoring position, rotation matrix, +// and pLogV under assumption that they won't be needed for analysis. +// ===================================================================== +// Must define MarshalHit and UnmarshalHit for each derived class of G4VHit +// MarshalHit() and UnmarshalHit() have defaults given by the member +// function of TMarshaledHitsCollection. +// The default copies the entire class into a single buffer. If your +// hit class includes pointers, and if you use those pointer in your +// analysis (AnalyzeEvent), then you will need to override the default +// with an explicit specialization that marshals the pointers. +// You may also wish to override the default in order to write more +// efficient marshaling code. +// In this case, we choose to marshal only the essential fields of +// ExN04CalorimeterHit. +// -------------------------------------------------------------------- + +#include "ParExMarshaledHits.hh" +#include "ParMarshaledObj.hh" +#include "ExN04TrackerHit.hh" +#include "ExN04MuonHit.hh" +#include "ExN04CalorimeterHit.hh" + +template <> +inline void TMarshaledHitsCollection::MarshalHit( ExN04CalorimeterHit *aHit ) +{ + MarshaledObj::Marshal( aHit->GetZ() ); + MarshaledObj::Marshal( aHit->GetPhi() ); + MarshaledObj::Marshal( aHit->GetEdep() ); +} +template <> +inline void TMarshaledHitsCollection::UnmarshalHit( ExN04CalorimeterHit *aHit ) +{ + if (isNewHitsCollection) { + G4int ZCellID = UnmarshalAsG4int(); + G4int PhiCellID = UnmarshalAsG4int(); + aHit->SetCellID( ZCellID, PhiCellID ); + aHit->SetEdep( UnmarshalAsG4double() ); + // Here, we decide that G4ThreeVector and G4RotationMatrix and pLogV + // will not be needed for analysis. + } + else + G4Exception( + "Event Level Parallelism: Every hit collection sent to master should be" + " new.\n Current hit collection, " + collectionName + ", is not new.\n" + ); +} + +// ===================================================================== +// Dispatch marshaling and unmarshaling of HC's according to type of G4VHit +// When unmarshaling, we will see the "G4String HCname", and have +// to create a HC of the correct type. +// So, You must include an "if" or "else if" for each type of hit. + +// NOTE TO MYSELF: Is there a cleaner way to do this? +// If types were objects, we'd just set up a table here: +// { {"trackerCollection", TMarshaledHitsCollection}, +// ... } +// and then write general code to use the table. + +void MarshaledHCofThisEvent::MarshalHitsCollection + (G4VHitsCollection * aBaseHC, G4String HCname) +{ if (HCname == "trackerCollection") + ((TMarshaledHitsCollection *)this) + -> Marshal( aBaseHC ); + else if (HCname == "muonCollection") + ((TMarshaledHitsCollection *)this) + -> Marshal( aBaseHC ); + else if (HCname == "calCollection") + ((TMarshaledHitsCollection *)this) + -> Marshal( aBaseHC ); + else G4Exception( "TMarshaledHitsCollection::MarshaledHCofThisEvent :" + " HCname, " + HCname + ", not found." ); +} + +void MarshaledHCofThisEvent::UnmarshalSlaveHitsCollection(G4String & HCname, G4String & SDname) +{ if (HCname == "trackerCollection") + ((TMarshaledHitsCollection *)this) + -> UnmarshalSlaveHitsCollection( HCname, SDname ); + else if (HCname == "muonCollection") + ((TMarshaledHitsCollection *)this) + -> UnmarshalSlaveHitsCollection( HCname, SDname ); + else if (HCname == "calCollection") + ((TMarshaledHitsCollection *)this) + -> UnmarshalSlaveHitsCollection( HCname, SDname ); + else G4Exception( "TMarshaledHitsCollection::UnmarshalSlaveHitsCollection" + " : HCname, " + HCname + ", not found." ); +} diff --git a/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc b/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc new file mode 100644 index 0000000000..33bcc992a4 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ParMarshaledObj.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: ParMarshaledObj.cc,v 1.1 2002/03/05 15:22:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- +// When we implement track level parallelism, we will use G4PrimaryTransformer. +// We will also need to merge hits from several slaves. To do so, we will need +// the following: +// - MarshaledHCofThisEvent must also have a private const member: +// const G4bool canMergeHits = false; +// and a virtual method (not pure) +// virtual void insertOrMerge(ExN02TrackerHit *); +// - Then can create a derived class with constructor: +// inline DerivedClassConstructor() +// : canMergeHits(true), MarshaledHCofThisEventWithTemplate() {} +// - And insertOrMerge() should be defined in the derived class +// The logic for insertOrMerge() can usually be copied from +// (for example) ExN02TrackerSD::ProcessHits. +// -------------------------------------------------------------------- + +#include "G4HCofThisEvent.hh" +#include "G4Step.hh" +#include "G4ThreeVector.hh" +#include "G4SDManager.hh" +#include "G4RunManager.hh" +#include "G4EventManager.hh" +#include "G4Event.hh" +#include "G4ios.hh" + +#include "ParMarshaledObj.hh" + +MarshaledHCofThisEvent::MarshaledHCofThisEvent(G4Event *anEvent) +{ MarshalHitsCollection(anEvent); } + +MarshaledHCofThisEvent::MarshaledHCofThisEvent() +{ MarshalHitsCollection( G4RunManager::GetRunManager()-> GetCurrentEvent() ); } + +void MarshaledHCofThisEvent::MarshalHitsCollection(const G4Event *anEvent) +{ +// MarshaledHCofThisEvent() can be in class ParMarshaledObj +// It can then be dispatched based on HCname to submarshaling +// for correct class. + + G4HCofThisEvent *HCE = anEvent->GetHCofThisEvent(); + G4int numHitsColl = HCE->GetNumberOfCollections(); + Marshal( numHitsColl ); + for (int i = 0; i < numHitsColl; i++) { + // Use base class to find HCname. + G4VHitsCollection *aBaseHC = HCE->GetHC(i); + G4String SDname = aBaseHC->GetSDname(); + G4String HCname = aBaseHC->GetName(); + Marshal( SDname ); + Marshal( HCname ); +#ifdef TOPC_DEBUG + G4cout << "Marshaled HCname: " << HCname << G4endl; + G4cout << "Marshaled SDname: " << SDname << G4endl; +#endif + + MarshalHitsCollection(aBaseHC, HCname); + } +} + +// NOTES TO MYSELF: +// G4SDManager::GetSDMpointer()->FindSensitiveDetector(SDname); + +// IMPORTANT: all calls to Unmarshal must be in same order as +// the calls to Marshal in the constructor. +void MarshaledHCofThisEvent::UnmarshalSlaveHCofThisEvent() +{ + /* + G4HCofThisEvent *HCE = G4RunManager::GetRunManager()-> + GetCurrentEvent()-> + GetHCofThisEvent(); + */ + G4int numHitsColl; + Unmarshal( numHitsColl ); + for (int i = 0; i < numHitsColl; i++) { + G4String SDname; + G4String HCname; + Unmarshal( SDname ); + Unmarshal( HCname ); +#ifdef TOPC_DEBUG + G4cout << "HCname: " << HCname << G4endl; + G4cout << "SDname: " << SDname << G4endl; +#endif + + UnmarshalSlaveHitsCollection(HCname, SDname); + } +} diff --git a/examples/extended/parallel/ParN04/src/ParRunManager.cc b/examples/extended/parallel/ParN04/src/ParRunManager.cc new file mode 100644 index 0000000000..26b5147dda --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ParRunManager.cc @@ -0,0 +1,226 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * 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 $ +// +// -------------------------------------------------------------------- +// Parallel Library for Geant4 +// +// Gene Cooperman , 2001 +// -------------------------------------------------------------------- + +#ifdef G4USE_TOPC + +// G4Timer.hh has to be loaded *before* globals.hh... +// +#include "G4Timer.hh" + +#include "G4RunManager.hh" + +#include "Randomize.hh" +#include "G4Run.hh" +#include "G4RunMessenger.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4VUserPhysicsList.hh" +#include "G4UserRunAction.hh" +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4GeometryManager.hh" +#include "G4SDManager.hh" +#include "G4TransportationManager.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ApplicationState.hh" +#include "G4StateManager.hh" +#include "G4VPersistencyManager.hh" +#include "G4UImanager.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessTable.hh" +#include "G4UnitsTable.hh" +#include "G4VVisManager.hh" + +#include "ParRunManager.hh" +#include "ParMarshaledObj.hh" +#include "ParRandomState.hh" + +#include "G4ios.hh" +#include "g4std/strstream" + +// Define static data members of ParRunManager +// They are set by ImportDoEventLoopLocals +G4StateManager* ParRunManager::stateManager; +G4int ParRunManager::n_event; +G4int ParRunManager::n_select; +G4String ParRunManager::msg; +ParRunManager* ParRunManager::myRunManager = 0; + +// TOP-C callbacks (static functions) +// If this->*(&ParRunManager::GenerateEventInput), created a thunk, +// it would be ideal here. +TOPC_BUF ParRunManager::MyGenerateEventInput() + { return myRunManager->GenerateEventInput(); } +TOPC_BUF ParRunManager::MyDoEvent( void *input_buf ) + { return myRunManager->DoEvent(input_buf); } +TOPC_ACTION ParRunManager::MyCheckEventResult( void * input_buf, void *buf ) + { return myRunManager->CheckEventResult(input_buf, buf); } + +static void trace_event_input( void *input ) +{ G4cout << "Event " << *(G4int *)input << G4endl; } + +void ParRunManager::DoEventLoop(G4int n_event,const char* macroFile,G4int n_select) +{ + TOPC_OPT_trace_input = trace_event_input; + + G4StateManager* stateManager = G4StateManager::GetStateManager(); + +#ifdef G4_ORIGINAL + cout << "ParRunManager::DoEventLoop" << endl; + G4RunManager::DoEventLoop(n_event, macroFile, n_select); + return; +#endif + + if(verboseLevel>0) + { timer->Start(); } + + G4String msg; + if(macroFile!=0) + { + if(n_select<0) n_select = n_event; + msg = "/control/execute "; + msg += macroFile; + } + else + { n_select = -1; } + + // BeginOfEventAction() and EndOfEventAction() would normally be + // called inside G4EventManager::ProcessOneEvent() in ParRunManager::DoEvent + // on slave. Since this is often where hits are collected and where + // histogram data is first stored, must do it + // on master instead, to process hits. So, set user event action to NULL. + // Keep private copy, and execute it in CheckTaskResult(). + // If user later does: SetUserAction( (G4UserEventAction *)NULL ); + // we won't notice and copy it to origUserEventAction. + // How paranoid do we want to be? Should we create trvialUserEventAction? + if ( eventManager->GetUserEventAction() ) + { + origUserEventAction = eventManager->GetUserEventAction(); + SetUserAction( (G4UserEventAction *)0 ); + } + + // Make these variables accessible to TOP-C callback functions + ImportDoEventLoopLocals( stateManager, n_event, n_select, msg ); + + // This is where all the parallelism occurs + i_event = -1; // ParRunManager::GenerateEventInput() will increment this. + TOPC_master_slave(MyGenerateEventInput, MyDoEvent, MyCheckEventResult, 0); + + if(verboseLevel>0) + { + timer->Stop(); + G4cout << "Run terminated." << G4endl; + G4cout << "Run Summary" << G4endl; + if(runAborted) +/* + { G4cout << " Run Aborted after " << i_event << " events processed." << G4endl; } +*/ + { G4cout << " Run Aborted." << G4endl; } + else + { G4cout << " Number of events processed : " << n_event << G4endl; } + G4cout << " " << *timer << G4endl; + } + +} + +TOPC_BUF ParRunManager::GenerateEventInput() +{ + if(runAborted) return NOTASK; + + i_event++; + if (i_event >= n_event) return NOTASK; + else + { ParMarshaledRandomState buf = ParMarshaledRandomState( i_event ); + return TOPC_MSG( buf.GetBuffer(), buf.BufferSize() ); + } + // else return TOPC_MSG( &i_event, sizeof(i_event) ); +} + +TOPC_BUF ParRunManager::DoEvent( void *input_buf ) +{ + G4int i_event; + ParMarshaledRandomState buf = ParMarshaledRandomState( input_buf ); + buf.unmarshalEventIDandSetState( i_event ); + + stateManager->SetNewState(EventProc); + + currentEvent = GenerateEvent(i_event); + + eventManager->ProcessOneEvent(currentEvent); + + MarshaledObj *aMarshaledObj = new MarshaledHCofThisEvent(currentEvent); + return TOPC_MSG(aMarshaledObj->GetBuffer(), aMarshaledObj->BufferSize()); +} + +TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf ) +{ + G4int i_event; + MarshaledObj buf = MarshaledObj(input_buf); + buf.Unmarshal(i_event); + + stateManager->SetNewState(EventProc); + if(!userPrimaryGeneratorAction) + { + G4Exception + ("G4RunManager::BeamOn - G4VUserPrimaryGeneratorAction is not defined."); + } + + // This creates a trivial event in lieu of GenerateEvent(i_event); + currentEvent = new G4Event(i_event); + + // Original UserEventAction was saved and set to NULL. Do it now on master. + if (origUserEventAction) + origUserEventAction->BeginOfEventAction( currentEvent ); + + // When Geant4 4.0 sees empty event, it still calls userStackingAction. + // On master, only trivial events exist, so we delete userStackingAction + SetUserAction( (G4UserStackingAction*)0 ); + eventManager->ProcessOneEvent(currentEvent); // Processing the trivial event + + // Called with output_buf and no size, creates object for unmarshaling + MarshaledHCofThisEvent marshaledObj(output_buf); + marshaledObj.UnmarshalSlaveHCofThisEvent(); + // UnmarshalSlaveHCofThisEvent placed slave Hits in ParRunManager::currentEvent + + // Original UserEventAction was saved and set to NULL. Do it now on master. + if (origUserEventAction) + origUserEventAction->EndOfEventAction( currentEvent ); + + AnalyzeEvent(currentEvent); + + if(i_eventApplyCommand(msg); + stateManager->SetNewState(GeomClosed); + StackPreviousEvent(currentEvent); + currentEvent = 0; + // Move this to GenerateEventInput: + // if(runAborted) break; + return NO_ACTION; +} + +#endif diff --git a/examples/extended/parallel/README.html b/examples/extended/parallel/README.html new file mode 100644 index 0000000000..583cf1a1c7 --- /dev/null +++ b/examples/extended/parallel/README.html @@ -0,0 +1,118 @@ + + + +ParGeant4 README + + + + + + + + + +

ParGeant4 README

+
+by Gene Cooperman + (gene@ccs.neu.edu) +
+There is also a +ParGeant4 Home Page, which will be updated more frequently than +this page. + +

+This distribution implements event-level parallelism for + Geant4 + using the free TOP-C distribution. + (TOP-C + = Task Oriented Parallel C/C++) + +

+These are example parallelizations that parallelize examples/novice/N02 +and examples/novice/N04 of the Geant4 distribution. +The files also contain information on how to write new parallel +Geant4 applications or parallelize existing sequential Geant4 +applications. + +

+

+The design goals are:
+1.  No modification of the Geant4 kernel libraries.
+2.  Application sessions should be efficient and reproducible
+     (independently of the number of slave processes and the
+      order in which they are called by TOP-C)
+3.  Setting deterministic random seeds on each slave
+    [ This code assumes that each slave will initialize its random state
+      based on either the event number or a random seed selected
+      on the master.]
+
+This assumes that you have already installed CLHEP, Geant4, and TOP-C
+  TOP-C can be downloaded via its home page:
+                          http://www.ccs.neu.edu/home/gene/topc.html
+
+Other qualifications are:
+1.  `topc-config' is already in your path.
+2.  It has only been tested under Linux, although it should be
+       portable to any other UNIX supported by Geant4.
+3.  Currently, this distribution does not support:
+      histograms, trajectory stores, n-tuples, track parallelism,
+      interactive input commands (no macrofile)
+    I plan to add those features according to demand.
+       Probably:  a. histograms (I believe histograms work now, but I don't
+                        have a ready test application.  If someone does, could
+                        you either check yourself if the parallelization works
+                        for histograms, or tell me, and I'll parallelize it.)
+                  b. track-level parallelism
+                  c. allowing interactive input
+                  d. other
+
+ + +

+NEW! +ParGeant4 has now been demonstrated to run over the Computational Grid +using a new TOP-C communication layer, with support for the Grid, +based on Ampic. There is a paper +reporting on this in + +postscript. +
+ G. Cooperman, H. Casanova, J. Hayes and T. Witzel, +``Using TOP-C and AMPIC to Port Large Parallel Applications + to the Computational Grid'', + Proc. of 2nd IEEC/ACM Interantional Symposium + on Cluster Computing and the Grid (CCGrid), 2002, + to appear + + +

+(This material is based in part upon work supported by the National Science +Foundation under Grants No. 9732330 and 9872114. Any opinions, findings, and +conclusions or recommendations expressed in this material are those of +the author(s) and do not necessarily reflect the views of the National +Science Foundation.) +

+

+Gene Cooperman
+College of Computer Science, 215CN
+Northeastern University
+Boston, MA 02115
+e-mail: gene@ccs.neu.edu
+Phone: (617) 373-8686
+Fax: (617) 373-5121 +
+ + + + diff --git a/examples/extended/parallel/info/NEW_APP_INSTALL b/examples/extended/parallel/info/NEW_APP_INSTALL new file mode 100644 index 0000000000..a053ed9c45 --- /dev/null +++ b/examples/extended/parallel/info/NEW_APP_INSTALL @@ -0,0 +1,164 @@ +$Id: NEW_APP_INSTALL,v 1.2 2002/03/09 08:07:55 cooperma Exp $ +------------------------------------------------------------------------------ +These are instructions for parallelizing a new application. Before +doing so, try out the examples, ParN02 and ParN04, which have +parallelized examples/novice/N02 and examples/novice/N04. +These instructions are written relative to ParN02, but also see +ParN04 for a more extended example of marshaling hits. + +TO INSTALL: + +1. Install Geant4, CLHEP, and TOP-C + To ensure compatibility, use same compiler for all three. + (Currently, Geant4 recommends GNU g++ version 2.91.66 or 2.95.2 or higher. + Try `g++ --version' to check.) + TOP-C: http://www.ccs.neu.edu/home/gene/topc.html + Geant4: http://cern.ch/geant4/source/source.html + CLHEP: http://wwwinfo.cern.ch/asd/lhc++/DISTRIBUTION/hep.html + +2. Source in the standard Geant4 and CLHEP environment variables. + Environment variables are described in the Geant4 Installation Guide from: + http://cern.ch/geant4/G4UsersDocuments/Overview/html + +3. Use same compiler for TOP-C as recommended for Geant4. (currently GNU + g++ version 2.91.66 or 2.95.2 or higher are recommended) + (Try g++ --version to check) + Make sure that topc-config is in your path. (Try `which topc-config') + Test that TOP-C is working. (cd to TOP-C install dir and `make test') + Also test that a standard Geant4 application (such as novice/N02) works. + +4. For clarity, we assume we are parallelizing novice/N02 from the Geant4 + distribution. The instructions should work for most Geant4 applications. + First, copy the following files: + cp ParExample.icc ParGNUmakefile procgroup $G4INSTALL/example/novice/N02/ + cp Par*.cc $G4INSTALL/example/novice/N02/src/ + cp Par*.hh $G4INSTALL/example/novice/N02/include/ + +5. Change to the N02 directory: + cd $G4INSTALL/example/novice/N02/ + +6. Modify GNUmakefile by adding a line at the beginning: + include ParGNUmakefile + + Modify exampleN02.cc by adding a line just before the definition of main(): + [IMPORTANT: This must be the last include file in exampleN02.cc] + #include "ParTopC.icc" + +7. Optionally modify include/ParRandomState.hh + If this is your first installation, I recommend using the provided default. + This arranges to generate a random seed on the master for + each event, and copy it to the slave processing that event. + The seed is a pseudorandom one explicitly depending on the event number. + This provides both reasonable efficiency and repeatability + that is independent of the number of slave process and of the + order in which slaves complete their tasks. + +8. Modify src/ParExN02MarshaledHits.cc according to the comments in that file. + You will find examples of the required modification both in ParN02 + and in ParN04/src/ParExN04MarshaledHits.cc. ParN04 illustrates a + larger variety of marshaled hits, but read those in ParN02 first, + in order to understand the principles. + + The modifications are required to implement marshaling of each type of hit + (e.g. for N04: ExN04TrackerHit, ExN04MuonHit, ExN04CalorimeterHit) + + You will need to modify the functions: + MarshaledHCofThisEvent::MarshalHitsCollection + MarshaledHCofThisEvent::UnmarshalSlaveHitsCollection + in order to add additional cases in the `if ... else if ...' statement. + You should also remove the existing case of ExN02TrackerHit + if you are not parallelizing examples/novice/N02. + + There are already default template functions for each type of hit, T: + TMarshaledHitsCollection::UnmarshalHit + TMarshaledHitsCollection::MarshalHit + where T is a G4VHit class such as ExN02TrackerHit. + The default copies the entire class into a single buffer. If your + hit class includes pointers, and if you use those pointer in your + analysis (AnalyzeEvent), then you will need to override the default + with an explicit specialization that marshals the pointers. + You may also wish to override the default in order to write + more efficient marshaling code. + +9. The file `procgroup' determines on which machines the remote processes run. + The makefile automatically copies the local procgroup to the G4BINDIR just + before each run. + For testing, you can use the provided file, as is, and it will set + up two slave processes on the localhost. For production runs, you + will want to change it. See the file procgroup for comments on + ways to change it. Note that the default procgroup redirects standard + output on the slave (within an event) into a file slave00X.out . + Without this, the output of the slaves and the master would be + displayed intermixed on the user console. + +10. Before you compile, make sure your Geant4 environment variables point to + where you want. This is important because your application binary + must be in a location visible to all the computers running your + parallel application. But your Geant4 source and libraries may have + to stay on a different partition, where you have more disk space. + + For example, in my case, I was using source from $G4INSTALL, + but I was building my application binary and libraries elsewhere. + I had: setenv $4SYSTEM Linux-g++ + I wanted to build my application libraries in: ~/geant4-cern/lib/Linux-g++ + So, I did: setenv G4WORKDIR ~/geant4-cern + I also made sure that ~/geant4-cern/bin/Linux-g++ existed, since the + default for the application binary was $G4WORKDIR/bin/$G4SYSTEM . + Because I copied the precompiled Geant4 libraries + into ~/geant4-cern/lib-geant4/Linux-g++ + I also needed to tell Geant4 about this non-standard location + via: setenv G4LIB ~/geant4-cern/lib-geant4 + For more information, see: + http://cern.ch/geant4/G4UsersDocuments/UsersGuides/ (cont.) + InstallationGuide/html/UnixMachines/unixMachines.html + + As always, if you are using shared libaries (.so) under Linux, you may + have to update your LD_LIBRARY_PATH . Since you will be running + a parallel application, put this in your shell initialization file + (in my case, in ~.tcshrc), so it will also be availabe for the remote + processes that are generated. + I use the original Geant4 libraries (lib-gent4), the application + libraries (lib), and the CLHEP library. So, I do: + setenv LD_LIBRARY_PATH \ + ${LD_LIBRARY_PATH}:$HOME/geant4-cern/geant4.4.0/lib-geant4/Linux-g++ + setenv LD_LIBRARY_PATH \ + ${LD_LIBRARY_PATH}:$HOME/geant4-cern/geant4.4.0/lib/Linux-g++ + setenv LD_LIBRARY_PATH \ + ${LD_LIBRARY_PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/CLHEP/1.7.0.0/lib + + +11. Modify ParGNUmakefile according to your goals. + It may be enough to only change: + MACROFILE (current default: ParN02.in) + If you have a datafile (e.g.: examples/novice/N04/pythia_main.data) + then also set DATAFILE. + The GNUmakefile copies the MACROFILE and DATAFILE to the G4BINDIR. + If you require other files (e.g.: pythia_event.data for ExN04), then + copy them to the G4BINDIR manually or modify ParGNUmakefile to do so. + Then choose your desired makefile target and go. Try one of: + make compile + make run + make run-debug [Runs application inside gdb.] + make parclean + +============================================================================ +Further possible customizations: + +If you wish to customize your code further, note that ParGNUmakefile +contains TOP-C parameters. Try other parameters such as: + --TOPC-verbose=0 + --TOPC-trace=0 + --TOPC-slave-timeout=XXX [ units are seconds, default 1800 seconds ] + --TOPC-num-slaves=XXX + --TOPC-help + +If you wish to make some of these the default, add a line like: + TOPC_OPT_trace = 0; +between `main( ... )' and `TOPC_init( ... )' in the main function. + +Read the TOP-C manual, available from the home page + http://www.ccs.neu.edu/home/gene/topc.html +for further customizations and uses of TOP-C. + +Read ParMarshaledObj.hh for the full set of primitive marshaling functions +that you might want to use in writing MarshalHit() and UnmarshalHit(). diff --git a/examples/extended/parallel/info/NEW_APP_README b/examples/extended/parallel/info/NEW_APP_README new file mode 100644 index 0000000000..42a7b4be94 --- /dev/null +++ b/examples/extended/parallel/info/NEW_APP_README @@ -0,0 +1,47 @@ +$Id: NEW_APP_README,v 1.2 2002/03/09 10:15:01 cooperma Exp $ +------------------------------------------------------------------------------ +This file and NEW_APP_INSTALL describe important information if you are + planning to create a new parallel Geant4 application, similarly + to the examples ParN02 and ParN04. +This package implements event-level parallelism for Geant4 + using the free TOP-C distribution. (TOP-C = Task Oriented Parallel C/C++) + +To parallelize an existing sequential Geant4 application, read NEW_APP_INSTALL. + +The design goals are: +1. No modification of the Geant4 kernel libraries. +2. Application sessions should be efficient and reproducible + (independently of the number of slave processes and the + order in which they are called by TOP-C) +3. Setting deterministic random seeds on each slave + [ This code assumes that each slave will initialize its random state + based on either the event number or a random seed selected + on the master.] + +This assumes that you have already installed CLHEP, Geant4, and TOP-C + TOP-C can be downloaded via its home page: + http://www.ccs.neu.edu/home/gene/topc.html + +Other qualifications are: +1. It has only been tested under Linux, although it should be + portable to any other UNIX supported by Geant4. +2. Since Geant4 does not currently support a uniform format for + tracker hits, calorimeter hits, etc., on new applications, + you may have to write marshalling code for your hits, based + on the examples in ParN02 and ParN04. +3. This should support histograms as long as AnalysisManager::Step() is + is trivial. However, I have not had the opportunity + for careful testing. Please write to gene@ccs.neu.edu if you + are including histograms, and especially if you define + AnalysisManager::Step(). +4. Currently, this distribution does not support: + trajectory stores, n-tuples, track parallelism, + interactive input commands (no macrofile) + I plan to add those features according to demand. + Probably: a. allowing interactive input + b. track-level parallelism + c. other (trajectory store, PostponeOneEvent(), ...) + +Some design assumptions in this ParGeant4 implementation: +1. A collectionName for a G4HitsCollection uniquely identifies the + G4HitsCollection within a G4HCofThisEvent. diff --git a/examples/extended/persistency/PersistentEx01/PersistentEx01.cc b/examples/extended/persistency/PersistentEx01/PersistentEx01.cc index fa7ed6bf62..eade15b5aa 100644 --- a/examples/extended/persistency/PersistentEx01/PersistentEx01.cc +++ b/examples/extended/persistency/PersistentEx01/PersistentEx01.cc @@ -22,7 +22,7 @@ // // // $Id: PersistentEx01.cc,v 1.6 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/persistency/PersistentEx01/PersistentEx01.out b/examples/extended/persistency/PersistentEx01/PersistentEx01.out index ecdfb77c5b..94e63a49fd 100644 --- a/examples/extended/persistency/PersistentEx01/PersistentEx01.out +++ b/examples/extended/persistency/PersistentEx01/PersistentEx01.out @@ -14,7 +14,7 @@ OO_FD_BOOT is set to /afs/cern.ch/sw/geant4/stt/dev2/SUN-CC/debug_NONISO/example Opening federated database OO_FD_BOOT. ********************************************** - Geant4 version $Name: geant4-04-00 $ + Geant4 version $Name: geant4-04-01 $ (06-Apr-2001) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/persistency/PersistentEx02/PersistentEx02.cc b/examples/extended/persistency/PersistentEx02/PersistentEx02.cc index b8353cc46f..bd664286bf 100644 --- a/examples/extended/persistency/PersistentEx02/PersistentEx02.cc +++ b/examples/extended/persistency/PersistentEx02/PersistentEx02.cc @@ -22,7 +22,7 @@ // // // $Id: PersistentEx02.cc,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/persistency/PersistentEx02/PersistentEx02.out b/examples/extended/persistency/PersistentEx02/PersistentEx02.out index 91c4e4087f..7087de4e99 100644 --- a/examples/extended/persistency/PersistentEx02/PersistentEx02.out +++ b/examples/extended/persistency/PersistentEx02/PersistentEx02.out @@ -14,7 +14,7 @@ OO_FD_BOOT is set to /afs/cern.ch/sw/geant4/stt/dev2/SUN-CC/debug_NONISO/example Opening federated database OO_FD_BOOT. ********************************************** - Geant4 version $Name: geant4-04-00 $ + Geant4 version $Name: geant4-04-01 $ (06-Apr-2001) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh b/examples/extended/persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh index dd22b0362c..f85024e95f 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: PersEx02DetectorConstruction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02DetectorConstruction_h diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02EventAction.hh b/examples/extended/persistency/PersistentEx02/include/PersEx02EventAction.hh index b9366fc497..ae57e020a4 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02EventAction.hh +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: PersEx02EventAction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02PhysicsList.hh b/examples/extended/persistency/PersistentEx02/include/PersEx02PhysicsList.hh index b9846fa259..1d786d6f5e 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02PhysicsList.hh +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PersEx02PhysicsList.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02PhysicsList_h diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh b/examples/extended/persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh index 9416f86c82..5dad7af06c 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: PersEx02PrimaryGeneratorAction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02PrimaryGeneratorAction_h diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02RunAction.hh b/examples/extended/persistency/PersistentEx02/include/PersEx02RunAction.hh index 99b7948cc9..37a43ca35b 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02RunAction.hh +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: PersEx02RunAction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02RunAction_h diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02StackingAction.hh b/examples/extended/persistency/PersistentEx02/include/PersEx02StackingAction.hh index bb76950658..accc3af5a9 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02StackingAction.hh +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02StackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: PersEx02StackingAction.hh,v 1.3 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02StackingAction_H diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHit.ddl b/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHit.ddl index 685d15ef52..5e2c6c6965 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHit.ddl +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHit.ddl @@ -22,7 +22,7 @@ // // // $Id: PersEx02TrackerHit.ddl,v 1.5 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02TrackerHit_h diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl b/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl index afbde1d96b..b44c63831b 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl @@ -22,7 +22,7 @@ // // // $Id: PersEx02TrackerHitsCollection.ddl,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02TrackerHitsCollection_h diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerSD.hh b/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerSD.hh index ab8eb521fe..2a364f3cc5 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerSD.hh +++ b/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerSD.hh @@ -22,7 +22,7 @@ // // // $Id: PersEx02TrackerSD.hh,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef PersEx02TrackerSD_h diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.cc index 6437c4d35e..76a0bab3f2 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02DetectorConstruction.cc,v 1.5 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PersEx02DetectorConstruction.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc index bbcdbd16e1..672667d06f 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02EventAction.cc,v 1.6 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PersEx02EventAction.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc index d522bfd27a..b32383d87f 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02PhysicsList.cc,v 1.5 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "globals.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc index e7bf5d7006..dbbdfacf3a 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02PrimaryGeneratorAction.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PersEx02PrimaryGeneratorAction.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc index c1969040df..b48c953128 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02RunAction.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PersEx02RunAction.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc index 92c9bca7c6..61c2a3053e 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02StackingAction.cc,v 1.3 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PersEx02StackingAction.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc index a97905f42b..1bd2a35b8c 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02TrackerHit.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PersEx02TrackerHit.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHitsCollection.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHitsCollection.cc index 5975871605..b1de9a128f 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHitsCollection.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHitsCollection.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02TrackerHitsCollection.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PersEx02TrackerHitsCollection.hh" diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc index 2df6cb1079..4f0c778bae 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc +++ b/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: PersEx02TrackerSD.cc,v 1.6 2001/07/11 09:58:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include diff --git a/examples/novice/N01/History b/examples/novice/N01/History index 6f41e16e70..93990d1062 100644 --- a/examples/novice/N01/History +++ b/examples/novice/N01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.3 2000/06/17 12:21:24 stesting Exp $ +$Id: History,v 1.5 2002/05/14 01:50:31 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 14, 2002 Makoto Asai (exampleN01-V04-00-01) +- Remove UI command from ExN01PrimaryGeneratorAction and use direct method calls + +April 26, 2002 Gabriele Cosmo (exampleN01-V04-00-00) +- Removed deletion of volumes from destructor if ExN01DetectorConstruction. + Now volumes are automatically destructed by kernel's stores. + June 17, 2000 John Allison (exampleN01-V01-01-00) - Updated exampleN01.out for geant4-01-01-ref-06. diff --git a/examples/novice/N01/exampleN01.cc b/examples/novice/N01/exampleN01.cc index 3c7a6730ad..67ef8fb294 100644 --- a/examples/novice/N01/exampleN01.cc +++ b/examples/novice/N01/exampleN01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN01.cc,v 1.3 2001/07/11 09:58:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: exampleN01.cc,v 1.4 2002/01/09 17:23:47 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N01/exampleN01.out b/examples/novice/N01/exampleN01.out index 0fe926eb01..b597feccd2 100644 --- a/examples/novice/N01/exampleN01.out +++ b/examples/novice/N01/exampleN01.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Start Run processing. diff --git a/examples/novice/N01/include/ExN01DetectorConstruction.hh b/examples/novice/N01/include/ExN01DetectorConstruction.hh index 40d3ab9d01..717d60a88d 100644 --- a/examples/novice/N01/include/ExN01DetectorConstruction.hh +++ b/examples/novice/N01/include/ExN01DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN01DetectorConstruction.hh,v 1.4 2001/11/05 08:24:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN01DetectorConstruction.hh,v 1.5 2002/01/09 17:23:48 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN01DetectorConstruction_H diff --git a/examples/novice/N01/include/ExN01PhysicsList.hh b/examples/novice/N01/include/ExN01PhysicsList.hh index ad55e21fe3..fb12365c57 100644 --- a/examples/novice/N01/include/ExN01PhysicsList.hh +++ b/examples/novice/N01/include/ExN01PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN01PhysicsList.hh,v 1.4 2001/07/11 09:58:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN01PhysicsList.hh,v 1.5 2002/01/09 17:23:48 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh index 83833a6c76..e125f4e59f 100644 --- a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh +++ b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN01PrimaryGeneratorAction.hh,v 1.3 2001/07/11 09:58:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN01PrimaryGeneratorAction.hh,v 1.4 2002/01/09 17:23:48 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN01PrimaryGeneratorAction_h diff --git a/examples/novice/N01/src/ExN01DetectorConstruction.cc b/examples/novice/N01/src/ExN01DetectorConstruction.cc index 0bd45a236d..a7e095d3e7 100644 --- a/examples/novice/N01/src/ExN01DetectorConstruction.cc +++ b/examples/novice/N01/src/ExN01DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN01DetectorConstruction.cc,v 1.4 2001/11/05 08:24:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN01DetectorConstruction.cc,v 1.6 2002/04/26 13:49:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN01DetectorConstruction.hh" @@ -44,14 +44,6 @@ ExN01DetectorConstruction::ExN01DetectorConstruction() ExN01DetectorConstruction::~ExN01DetectorConstruction() { - delete calorimeterLayer_log; - delete calorimeterBlock_log; - delete tracker_log; - delete experimentalHall_log; - delete tracker_phys; - delete calorimeterBlock_phys; - delete calorimeterLayer_phys; - delete experimentalHall_phys; } G4VPhysicalVolume* ExN01DetectorConstruction::Construct() diff --git a/examples/novice/N01/src/ExN01PhysicsList.cc b/examples/novice/N01/src/ExN01PhysicsList.cc index cdc42918d9..b223f59344 100644 --- a/examples/novice/N01/src/ExN01PhysicsList.cc +++ b/examples/novice/N01/src/ExN01PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN01PhysicsList.cc,v 1.4 2001/07/11 09:58:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN01PhysicsList.cc,v 1.5 2002/01/09 17:23:48 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc index d5fc8ccef6..a0b8979eea 100644 --- a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc +++ b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc @@ -21,15 +21,16 @@ // ******************************************************************** // // -// $Id: ExN01PrimaryGeneratorAction.cc,v 1.3 2001/07/11 09:58:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN01PrimaryGeneratorAction.cc,v 1.5 2002/05/14 01:50:31 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN01PrimaryGeneratorAction.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" -#include "G4UImanager.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" #include "globals.hh" ExN01PrimaryGeneratorAction::ExN01PrimaryGeneratorAction() @@ -37,10 +38,11 @@ ExN01PrimaryGeneratorAction::ExN01PrimaryGeneratorAction() G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); - G4UImanager* UI = G4UImanager::GetUIpointer(); - UI->ApplyCommand("/gun/particle geantino"); - UI->ApplyCommand("/gun/energy 1.0 GeV"); - UI->ApplyCommand("/gun/position -2.0 0.0 0.0 m"); + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="geantino")); + particleGun->SetParticleEnergy(1.0*GeV); + particleGun->SetParticlePosition(G4ThreeVector(-2.0*m, 0.0, 0.0)); } ExN01PrimaryGeneratorAction::~ExN01PrimaryGeneratorAction() @@ -50,21 +52,20 @@ ExN01PrimaryGeneratorAction::~ExN01PrimaryGeneratorAction() void ExN01PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { - G4UImanager* UI = G4UImanager::GetUIpointer(); G4int i = anEvent->GetEventID() % 3; + G4ThreeVector v(1.0,0.0,0.0); switch(i) { case 0: - UI->ApplyCommand("/gun/direction 1.0 0.0 0.0"); break; case 1: - UI->ApplyCommand("/gun/direction 1.0 0.1 0.0"); + v.setY(0.1); break; case 2: - UI->ApplyCommand("/gun/direction 1.0 0.0 0.1"); + v.setZ(0.1); break; } - + particleGun->SetParticleMomentumDirection(v); particleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/novice/N02/exampleN02.cc b/examples/novice/N02/exampleN02.cc index a95114a86d..daca1f2122 100644 --- a/examples/novice/N02/exampleN02.cc +++ b/examples/novice/N02/exampleN02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN02.cc,v 1.7 2001/10/24 12:20:42 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: exampleN02.cc,v 1.8 2002/01/09 17:23:49 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/exampleN02.large_N.out b/examples/novice/N02/exampleN02.large_N.out index 02585274f4..595b06c0ef 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-00 $ + Geant4 version $Name: geant4-04-01 $ (15-Dec-2000) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/novice/N02/exampleN02.out b/examples/novice/N02/exampleN02.out index 1b543249aa..b7314f6568 100644 --- a/examples/novice/N02/exampleN02.out +++ b/examples/novice/N02/exampleN02.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -37,17 +37,15 @@ Target is 5 cm of Pb There are 5 chambers in the tracker region. The chambers are 200 mm of XenonGas The distance between chamber is 80 cm +phot: Total cross sections from Sandia parametrisation. + 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. + PhysicsTables from 1 keV to 100 GeV in 80 bins. msc: Tables of transport mean free paths. New model of MSC , computes the lateral @@ -114,2058 +112,2267 @@ 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 -32.2 mum -1.27 mum -2.86 m 200 MeV 8.09 keV 4.79 cm 4.79 cm World eIoni - 2 -141 mum 113 mum -2.45 m 200 MeV 88.4 keV 41.2 cm 46 cm World Transportation - 3 -146 mum 127 mum -2.45 m 197 MeV 2.14 MeV 682 mum 46.1 cm Target eBrem - 4 -145 mum 125 mum -2.45 m 194 MeV 236 keV 190 mum 46.1 cm Target eBrem - 5 -142 mum 121 mum -2.45 m 190 MeV 201 keV 163 mum 46.1 cm Target eBrem - 6 -141 mum 121 mum -2.45 m 187 MeV 19 keV 16.7 mum 46.1 cm Target eBrem - 7 -144 mum 106 mum -2.45 m 179 MeV 439 keV 419 mum 46.1 cm Target eBrem - 8 -216 mum 86.5 mum -2.45 m 173 MeV 2.23 MeV 1.87 mm 46.3 cm Target eBrem - 9 -235 mum 70.6 mum -2.45 m 143 MeV 600 keV 487 mum 46.4 cm Target eBrem - 10 -374 mum -21.8 mum -2.44 m 125 MeV 1.99 MeV 1.7 mm 46.6 cm Target eBrem - 11 -385 mum -26.8 mum -2.44 m 124 MeV 201 keV 135 mum 46.6 cm Target eBrem - 12 -389 mum -30.1 mum -2.44 m 75.9 MeV 78 keV 54.2 mum 46.6 cm Target eBrem - 13 -469 mum -52 mum -2.44 m 71.5 MeV 830 keV 677 mum 46.6 cm Target eBrem - 14 -531 mum -247 mum -2.44 m 67.4 MeV 2.31 MeV 1.34 mm 46.8 cm Target eBrem - 15 -557 mum -249 mum -2.44 m 60.9 MeV 489 keV 451 mum 46.8 cm Target eBrem - 16 -730 mum -369 mum -2.44 m 57.7 MeV 1.22 MeV 1.11 mm 46.9 cm Target eBrem - 17 -741 mum -374 mum -2.44 m 56.4 MeV 164 keV 162 mum 46.9 cm Target eBrem - 18 -1.01 mm -406 mum -2.44 m 53.5 MeV 2.58 MeV 1.44 mm 47.1 cm Target eBrem - 19 -1.06 mm -431 mum -2.44 m 52.7 MeV 515 keV 451 mum 47.1 cm Target eBrem - 20 -1.07 mm -436 mum -2.44 m 48 MeV 206 keV 198 mum 47.2 cm Target eBrem - 21 -950 mum -393 mum -2.44 m 14.3 MeV 3.18 MeV 2.1 mm 47.4 cm Target eBrem - 22 -990 mum -591 mum -2.44 m 13 MeV 880 keV 903 mum 47.5 cm Target eBrem - 23 -1.98 mm -411 mum -2.43 m 10.6 MeV 2.37 MeV 2.28 mm 47.7 cm Target eIoni - 24 -1.84 mm -617 mum -2.43 m 9.13 MeV 664 keV 551 mum 47.7 cm Target eBrem - 25 -1.77 mm -992 mum -2.43 m 4.66 MeV 411 keV 419 mum 47.8 cm Target eBrem - 26 -1.75 mm -1.06 mm -2.43 m 2.83 MeV 85.8 keV 73.9 mum 47.8 cm Target eBrem - 27 -1.33 mm -1.24 mm -2.43 m 2.04 MeV 491 keV 519 mum 47.8 cm Target eBrem - 28 -1.42 mm -1.44 mm -2.43 m 1.35 MeV 684 keV 626 mum 47.9 cm Target eIoni - 29 -1.22 mm -1.41 mm -2.43 m 823 keV 530 keV 497 mum 48 cm Target eIoni - 30 -1.2 mm -1.42 mm -2.43 m 475 keV 348 keV 380 mum 48 cm Target eIoni - 31 -1.23 mm -1.39 mm -2.43 m 179 keV 296 keV 262 mum 48 cm Target eIoni - 32 -1.23 mm -1.38 mm -2.43 m 0 eV 179 keV 65.5 mum 48 cm Target eIoni - 33 -1.23 mm -1.38 mm -2.43 m 0 eV 0 eV 0 fm 48 cm Target annihil + 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 -1.23 mm -1.38 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.52 cm -2.05 cm -2.44 m 308 keV 0 eV 2.53 cm 2.53 cm Target compt - 2 1.55 cm -2.07 cm -2.44 m 0 eV 88 keV 995 mum 2.63 cm Target phot + 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 = 31, Parent ID = 29 +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 29 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.55 cm -2.07 cm -2.44 m 220 keV 0 eV 0 fm 0 fm Target initStep - 1 1.55 cm -2.07 cm -2.44 m 2.78e-11 eV 220 keV 94 mum 94 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.52 cm -2.05 cm -2.44 m 203 keV 0 eV 0 fm 0 fm Target initStep - 1 1.52 cm -2.05 cm -2.44 m 0 eV 203 keV 83.2 mum 83.2 mum Target eIoni + 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.23 mm -1.38 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.61 mm -946 mum -2.43 m 331 keV 0 eV 578 mum 578 mum Target compt - 2 -2.28 mm -1.04 mm -2.43 m 0 eV 88 keV 740 mum 1.32 mm Target phot + 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 = 33, Parent ID = 28 +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 28 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.28 mm -1.04 mm -2.43 m 243 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.28 mm -1.05 mm -2.43 m 0 eV 243 keV 109 mum 109 mum Target eIoni + 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 = 32, Parent ID = 28 +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 28 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.61 mm -946 mum -2.43 m 180 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.61 mm -943 mum -2.43 m 0 eV 180 keV 69.3 mum 69.3 mum Target eIoni + 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.33 mm -1.24 mm -2.43 m 305 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.34 mm -3.14 mm -2.43 m 0 eV 88 keV 2.15 mm 2.15 mm Target phot + 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 = 34, Parent ID = 27 +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 27 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.34 mm -3.14 mm -2.43 m 217 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.35 mm -3.14 mm -2.43 m 5.55e-11 eV 217 keV 92.1 mum 92.1 mum Target eIoni + 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 -1.75 mm -1.06 mm -2.43 m 1.74 MeV 0 eV 0 fm 0 fm Target initStep - 1 7.73 mm -1.94 cm -2.44 m 1.6 MeV 0 eV 2.14 cm 2.14 cm Target compt - 2 7.75 mm -1.94 cm -2.44 m 699 keV 0 eV 52.4 mum 2.14 cm Target compt - 3 1.65 cm -1.92 cm -2.44 m 622 keV 0 eV 9.14 mm 3.06 cm Target compt - 4 1.78 cm -1.97 cm -2.44 m 431 keV 0 eV 1.49 mm 3.2 cm Target compt - 5 1.9 cm -1.9 cm -2.44 m 0 eV 88 keV 1.42 mm 3.35 cm Target phot + 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 = 39, Parent ID = 26 +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 26 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.9 cm -1.9 cm -2.44 m 343 keV 0 eV 0 fm 0 fm Target initStep - 1 1.91 cm -1.9 cm -2.44 m 0 eV 343 keV 179 mum 179 mum Target eIoni + 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 = 38, Parent ID = 26 +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 26 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.78 cm -1.97 cm -2.44 m 191 keV 0 eV 0 fm 0 fm Target initStep - 1 1.78 cm -1.97 cm -2.44 m 5.55e-11 eV 191 keV 75.8 mum 75.8 mum Target eIoni + 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 = e-, Track ID = 37, Parent ID = 26 +* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 43 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.65 cm -1.92 cm -2.44 m 77.4 keV 0 eV 0 fm 0 fm Target initStep - 1 1.65 cm -1.92 cm -2.44 m 1.39e-11 eV 77.4 keV 18.2 mum 18.2 mum Target eIoni + 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 = 36, Parent ID = 26 +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 45 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.75 mm -1.94 cm -2.44 m 900 keV 0 eV 0 fm 0 fm Target initStep - 1 7.68 mm -1.95 cm -2.44 m 429 keV 472 keV 396 mum 396 mum Target eIoni - 2 7.67 mm -1.95 cm -2.44 m 1.67e-10 eV 429 keV 238 mum 635 mum Target eIoni + 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 = 35, Parent ID = 26 +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 45 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.73 mm -1.94 cm -2.44 m 141 keV 0 eV 0 fm 0 fm Target initStep - 1 7.73 mm -1.94 cm -2.44 m 0 eV 141 keV 47.4 mum 47.4 mum Target eIoni + 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 -1.77 mm -992 mum -2.43 m 4.06 MeV 0 eV 0 fm 0 fm Target initStep - 1 8.75 mm -2.5 cm -2.43 m 4.06 MeV 0 eV 2.71 cm 2.71 cm Target Transportation - 2 5.03 cm -12 cm -2.4 m 4.06 MeV 0 eV 10.7 cm 13.4 cm World Transportation - 3 1.05 m -2.4 m -1.76 m 4.06 MeV 0 eV 2.57 m 2.7 m Tracker Transportation - 4 1.27 m -2.91 m -1.62 m 4.06 MeV 0 eV 57.5 cm 3.28 m OutOfWorld Transportation + 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 -1.84 mm -617 mum -2.43 m 787 keV 0 eV 0 fm 0 fm Target initStep - 1 33.5 mum -4.12 mm -2.43 m 205 keV 0 eV 5.11 mm 5.11 mm Target compt - 2 -66.3 mum -4.09 mm -2.43 m 0 eV 88 keV 165 mum 5.27 mm Target phot + 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 = 41, Parent ID = 24 +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -66.3 mum -4.09 mm -2.43 m 117 keV 0 eV 0 fm 0 fm Target initStep - 1 -67.2 mum -4.09 mm -2.43 m 0 eV 117 keV 35.2 mum 35.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 24 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 33.5 mum -4.12 mm -2.43 m 583 keV 0 eV 0 fm 0 fm Target initStep - 1 74.3 mum -4.15 mm -2.43 m 210 keV 373 keV 307 mum 307 mum Target eIoni - 2 77.1 mum -4.15 mm -2.43 m 2.78e-11 eV 210 keV 87.5 mum 394 mum Target eIoni + 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 -990 mum -591 mum -2.44 m 507 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 mm -64.4 mum -2.43 m 176 keV 0 eV 9.55 mm 9.55 mm Target compt - 2 -998 mum -125 mum -2.43 m 0 eV 88 keV 275 mum 9.82 mm Target phot + 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 = 43, Parent ID = 23 +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -998 mum -125 mum -2.43 m 88 keV 0 eV 0 fm 0 fm Target initStep - 1 -997 mum -125 mum -2.43 m 0 eV 88 keV 22.4 mum 22.4 mum Target eIoni + 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 = 42, Parent ID = 23 +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.11 mm -64.4 mum -2.43 m 331 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 mm -63.4 mum -2.43 m 0 eV 331 keV 171 mum 171 mum Target eIoni + 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 -950 mum -393 mum -2.44 m 30.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -963 mum -386 mum -2.44 m 0 eV 0 eV 151 mum 151 mum Target conv + 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 = 45, Parent ID = 22 +* G4Track Information: Particle = e+, Track ID = 54, Parent ID = 22 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -963 mum -386 mum -2.44 m 19.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -913 mum -187 mum -2.44 m 17.5 MeV 1.37 MeV 1.05 mm 1.05 mm Target eBrem - 2 -1.12 mm -169 mum -2.43 m 14.9 MeV 915 keV 667 mum 1.71 mm Target eBrem - 3 -1.13 mm -147 mum -2.43 m 14.3 MeV 141 keV 117 mum 1.83 mm Target eBrem - 4 -1.27 mm -6.1 mum -2.43 m 12.7 MeV 670 keV 564 mum 2.4 mm Target eBrem - 5 -1.4 mm 1.05 mm -2.43 m 10.1 MeV 2.54 MeV 2.24 mm 4.64 mm Target eIoni - 6 -1.14 mm 704 mum -2.43 m 7.46 MeV 812 keV 712 mum 5.35 mm Target eBrem - 7 -1.06 mm 614 mum -2.43 m 5.94 MeV 253 keV 212 mum 5.56 mm Target eBrem - 8 -758 mum 614 mum -2.43 m 4.45 MeV 583 keV 494 mum 6.05 mm Target eBrem - 9 -712 mum 607 mum -2.43 m 3.27 MeV 54.7 keV 64.4 mum 6.12 mm Target eBrem - 10 -725 mum 559 mum -2.43 m 2.47 MeV 792 keV 836 mum 6.95 mm Target eIoni - 11 -867 mum 574 mum -2.43 m 1.81 MeV 669 keV 703 mum 7.66 mm Target eIoni - 12 -1.06 mm 401 mum -2.43 m 1.31 MeV 497 keV 584 mum 8.24 mm Target eIoni - 13 -1.05 mm 559 mum -2.43 m 834 keV 476 keV 488 mum 8.73 mm Target eIoni - 14 -1.03 mm 661 mum -2.43 m 375 keV 459 keV 383 mum 9.11 mm Target eIoni - 15 -1.04 mm 667 mum -2.43 m 16.4 keV 359 keV 201 mum 9.31 mm Target eIoni - 16 -1.04 mm 667 mum -2.43 m 0 eV 16.4 keV 1.22 mum 9.31 mm Target eIoni - 17 -1.04 mm 667 mum -2.43 m 0 eV 0 eV 0 fm 9.31 mm Target annihil + 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 = 55, Parent ID = 45 +* G4Track Information: Particle = gamma, Track ID = 57, Parent ID = 54 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.04 mm 667 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.28 mm -390 mum -2.43 m 0 eV 88 keV 1.09 mm 1.09 mm Target phot + 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 = 56, Parent ID = 55 +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 57 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.28 mm -390 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.27 mm -406 mum -2.43 m 54.1 keV 369 keV 235 mum 235 mum Target eIoni - 2 -1.27 mm -406 mum -2.43 m 1.39e-11 eV 54.1 keV 10.1 mum 245 mum Target eIoni + 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 = 54, Parent ID = 45 +* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 54 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.04 mm 667 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -852 mum 1.48 mm -2.43 m 0 eV 88 keV 836 mum 836 mum Target phot + 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 = 57, Parent ID = 54 +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 56 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -852 mum 1.48 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -849 mum 1.49 mm -2.43 m 0 eV 423 keV 235 mum 235 mum Target eIoni + 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 = 53, Parent ID = 45 +* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 54 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -712 mum 607 mum -2.43 m 1.13 MeV 0 eV 0 fm 0 fm Target initStep - 1 8.02 mm 1.71 mm -2.42 m 274 keV 0 eV 1.22 cm 1.22 cm Target compt - 2 8.07 mm 1.47 mm -2.42 m 0 eV 88 keV 324 mum 1.25 cm Target phot + 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 = 59, Parent ID = 53 +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 55 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.07 mm 1.47 mm -2.42 m 186 keV 0 eV 0 fm 0 fm Target initStep - 1 8.07 mm 1.47 mm -2.42 m 0 eV 186 keV 73.1 mum 73.1 mum Target eIoni + 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 = 58, Parent ID = 53 +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 22 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.02 mm 1.71 mm -2.42 m 859 keV 0 eV 0 fm 0 fm Target initStep - 1 8.1 mm 1.73 mm -2.42 m 348 keV 511 keV 386 mum 386 mum Target eIoni - 2 8.1 mm 1.73 mm -2.42 m 0 eV 348 keV 183 mum 569 mum Target eIoni + 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 = gamma, Track ID = 52, Parent ID = 45 +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 22 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -758 mum 614 mum -2.43 m 899 keV 0 eV 0 fm 0 fm Target initStep - 1 2.1 cm 5.12 mm -2.42 m 0 eV 88 keV 2.64 cm 2.64 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 52 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.1 cm 5.12 mm -2.42 m 811 keV 0 eV 0 fm 0 fm Target initStep - 1 2.1 cm 5.07 mm -2.42 m 459 keV 352 keV 375 mum 375 mum Target eIoni - 2 2.1 cm 5.05 mm -2.42 m 187 keV 272 keV 254 mum 629 mum Target eIoni - 3 2.1 cm 5.05 mm -2.42 m 0 eV 187 keV 73.6 mum 703 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.06 mm 614 mum -2.43 m 1.27 MeV 0 eV 0 fm 0 fm Target initStep - 1 -839 mum 526 mum -2.43 m 540 keV 0 eV 296 mum 296 mum Target compt - 2 -1.57 mm -5.74 mm -2.43 m 0 eV 88 keV 7.11 mm 7.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 51 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.57 mm -5.74 mm -2.43 m 452 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.58 mm -5.74 mm -2.43 m 152 keV 300 keV 251 mum 251 mum Target eIoni - 2 -1.58 mm -5.74 mm -2.43 m 0 eV 152 keV 53.3 mum 304 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 51 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -839 mum 526 mum -2.43 m 731 keV 0 eV 0 fm 0 fm Target initStep - 1 -796 mum 589 mum -2.43 m 360 keV 370 keV 353 mum 353 mum Target eIoni - 2 -795 mum 592 mum -2.43 m 0 eV 360 keV 192 mum 546 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 50, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.14 mm 704 mum -2.43 m 1.85 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.59 mm -2.71 mm -2.43 m 422 keV 0 eV 5.52 mm 5.52 mm Target compt - 2 976 mum -2.9 mm -2.43 m 0 eV 88 keV 748 mum 6.26 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 50 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 976 mum -2.9 mm -2.43 m 334 keV 0 eV 0 fm 0 fm Target initStep - 1 968 mum -2.9 mm -2.43 m 0 eV 334 keV 173 mum 173 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 50 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.59 mm -2.71 mm -2.43 m 1.43 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.69 mm -2.65 mm -2.43 m 529 keV 299 keV 350 mum 350 mum Target eBrem - 2 1.69 mm -2.67 mm -2.43 m 80 keV 449 keV 286 mum 636 mum Target eIoni - 3 1.69 mm -2.68 mm -2.43 m 0 eV 80 keV 19.2 mum 655 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 63 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.69 mm -2.65 mm -2.43 m 598 keV 0 eV 0 fm 0 fm Target initStep - 1 99.9 mum -5.06 mm -2.43 m 448 keV 0 eV 3.44 mm 3.44 mm Target compt - 2 1.05 mm -7.27 mm -2.43 m 186 keV 0 eV 3.74 mm 7.18 mm Target compt - 3 1.21 mm -7.19 mm -2.43 m 0 eV 88 keV 279 mum 7.46 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.21 mm -7.19 mm -2.43 m 98.3 keV 0 eV 0 fm 0 fm Target initStep - 1 1.21 mm -7.19 mm -2.43 m 0 eV 98.3 keV 26.8 mum 26.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.05 mm -7.27 mm -2.43 m 261 keV 0 eV 0 fm 0 fm Target initStep - 1 1.05 mm -7.27 mm -2.43 m 5.55e-11 eV 261 keV 121 mum 121 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 99.9 mum -5.06 mm -2.43 m 150 keV 0 eV 0 fm 0 fm Target initStep - 1 97.7 mum -5.06 mm -2.43 m 0 eV 150 keV 52.3 mum 52.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 49, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.27 mm -6.1 mum -2.43 m 972 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.65 mm 1.93 mm -2.41 m 287 keV 0 eV 2.06 cm 2.06 cm Target compt - 2 -3.15 mm 3.87 mm -2.41 m 0 eV 88 keV 4.9 mm 2.55 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 49 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.15 mm 3.87 mm -2.41 m 199 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.15 mm 3.87 mm -2.41 m 0 eV 199 keV 80.8 mum 80.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 49 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.65 mm 1.93 mm -2.41 m 685 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.62 mm 1.95 mm -2.41 m 326 keV 359 keV 340 mum 340 mum Target eIoni - 2 -7.62 mm 1.94 mm -2.41 m 0 eV 326 keV 167 mum 507 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 48, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.13 mm -147 mum -2.43 m 458 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.55 mm 1.62 mm -2.42 m 0 eV 88 keV 1.18 cm 1.18 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 48 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.55 mm 1.62 mm -2.42 m 370 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.55 mm 1.62 mm -2.42 m 5.55e-11 eV 370 keV 200 mum 200 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 47, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.12 mm -169 mum -2.43 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 mm -32 mum -2.43 m 229 keV 0 eV 614 mum 614 mum Target compt - 2 -1.27 mm -36.5 mum -2.43 m 0 eV 88 keV 384 mum 999 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 47 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.27 mm -36.5 mum -2.43 m 141 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.27 mm -36.5 mum -2.43 m 0 eV 141 keV 47.3 mum 47.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 47 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 mm -32 mum -2.43 m 1.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.26 mm -167 mum -2.43 m 664 keV 451 keV 442 mum 442 mum Target eBrem - 2 -1.28 mm -198 mum -2.43 m 89 keV 575 keV 334 mum 775 mum Target eIoni - 3 -1.28 mm -199 mum -2.43 m 0 eV 89 keV 22.7 mum 798 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.26 mm -167 mum -2.43 m 388 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.15 mm -1.07 mm -2.44 m 0 eV 88 keV 2.23 mm 2.23 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 74 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.15 mm -1.07 mm -2.44 m 300 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.15 mm -1.08 mm -2.44 m 0 eV 300 keV 148 mum 148 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 46, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -913 mum -187 mum -2.44 m 516 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.83 mm 43 mum -2.42 m 219 keV 0 eV 1.58 cm 1.58 cm Target compt - 2 -3.84 mm -1.2 mm -2.42 m 0 eV 88 keV 1.76 mm 1.76 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 46 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.84 mm -1.2 mm -2.42 m 131 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.84 mm -1.2 mm -2.42 m 5.55e-11 eV 131 keV 42 mum 42 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 46 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.83 mm 43 mum -2.42 m 297 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.83 mm 45 mum -2.42 m 5.55e-11 eV 297 keV 146 mum 146 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 22 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -963 mum -386 mum -2.44 m 10.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -613 mum 60.1 mum -2.44 m 7.48 MeV 1.46 MeV 1.31 mm 1.31 mm Target eBrem - 2 -621 mum 59.2 mum -2.44 m 6.49 MeV 7.31 keV 9.92 mum 1.32 mm Target eBrem - 3 -277 mum -537 mum -2.44 m 1.9 MeV 1.52 MeV 1.12 mm 2.44 mm Target eBrem - 4 -467 mum -478 mum -2.44 m 1.27 MeV 637 keV 594 mum 3.04 mm Target eIoni - 5 -372 mum -585 mum -2.44 m 755 keV 512 keV 475 mum 3.51 mm Target eIoni - 6 -422 mum -606 mum -2.44 m 183 keV 572 keV 360 mum 3.87 mm Target eIoni - 7 -423 mum -609 mum -2.44 m 5.55e-11 eV 183 keV 71 mum 3.94 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 80, Parent ID = 44 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -277 mum -537 mum -2.44 m 3.06 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 cm 8.43 mm -2.43 m 0 eV 0 eV 1.65 cm 1.65 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 82, Parent ID = 80 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.35 cm 8.43 mm -2.43 m 1.49 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.37 cm 8.38 mm -2.43 m 797 keV 694 keV 524 mum 524 mum Target eIoni - 2 -1.38 cm 8.33 mm -2.43 m 442 keV 355 keV 373 mum 897 mum Target eIoni - 3 -1.38 cm 8.31 mm -2.43 m 136 keV 306 keV 245 mum 1.14 mm Target eIoni - 4 -1.38 cm 8.31 mm -2.43 m 5.55e-11 eV 136 keV 42.2 mum 1.18 mm Target eIoni - 5 -1.38 cm 8.31 mm -2.43 m 5.55e-11 eV 0 eV 0 fm 1.18 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 82 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.38 cm 8.31 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.46 cm 9.94 mm -2.43 m 0 eV 88 keV 4.25 mm 4.25 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 84 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.46 cm 9.94 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.47 cm 9.95 mm -2.43 m 56.5 keV 367 keV 235 mum 235 mum Target eIoni - 2 -1.47 cm 9.95 mm -2.43 m 6.94e-12 eV 56.5 keV 10.9 mum 246 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 82 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.38 cm 8.31 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 cm 7.64 mm -2.43 m 338 keV 0 eV 1.75 mm 1.75 mm Target compt - 2 -1.57 cm 83.7 mum -2.43 m 0 eV 88 keV 8.03 mm 9.78 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.57 cm 83.7 mum -2.43 m 250 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.57 cm 78.2 mum -2.43 m 5.55e-11 eV 250 keV 114 mum 114 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.35 cm 7.64 mm -2.43 m 173 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 cm 7.64 mm -2.43 m 2.78e-11 eV 173 keV 65.3 mum 65.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 80 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.35 cm 8.43 mm -2.43 m 549 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 cm 8.45 mm -2.43 m 239 keV 310 keV 294 mum 294 mum Target eIoni - 2 -1.35 cm 8.45 mm -2.43 m 0 eV 239 keV 106 mum 400 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 44 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -621 mum 59.2 mum -2.44 m 984 keV 0 eV 0 fm 0 fm Target initStep - 1 -415 mum -1.01 mm -2.43 m 382 keV 0 eV 1.9 mm 1.9 mm Target compt - 2 -4.68 mm 432 mum -2.43 m 304 keV 0 eV 5.26 mm 7.16 mm Target compt - 3 -4.71 mm 432 mum -2.43 m 0 eV 88 keV 25.7 mum 7.18 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.71 mm 432 mum -2.43 m 216 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.71 mm 432 mum -2.43 m 8.33e-11 eV 216 keV 91.6 mum 91.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.68 mm 432 mum -2.43 m 77.9 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.68 mm 432 mum -2.43 m 0 eV 77.9 keV 18.4 mum 18.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -415 mum -1.01 mm -2.43 m 602 keV 0 eV 0 fm 0 fm Target initStep - 1 -433 mum -1.05 mm -2.43 m 173 keV 110 keV 91.7 mum 91.7 mum Target eBrem - 2 -433 mum -1.05 mm -2.43 m 0 eV 173 keV 65.4 mum 157 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -433 mum -1.05 mm -2.43 m 318 keV 0 eV 0 fm 0 fm Target initStep - 1 -783 mum -2.39 mm -2.43 m 0 eV 88 keV 1.42 mm 1.42 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 91 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -783 mum -2.39 mm -2.43 m 230 keV 0 eV 0 fm 0 fm Target initStep - 1 -785 mum -2.4 mm -2.43 m 0 eV 230 keV 101 mum 101 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 78, Parent ID = 44 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -613 mum 60.1 mum -2.44 m 1.11 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.45 cm -1.92 mm -2.43 m 1.08 MeV 0 eV 1.64 cm 1.64 cm Target compt - 2 -2.5 cm -3.76 mm -2.42 m 1.08 MeV 0 eV 1.4 cm 3.04 cm Target Transportation - 3 -4.57 cm -7.39 mm -2.4 m 1.08 MeV 0 eV 2.75 cm 5.78 cm World Transportation - 4 -2.4 m -41.9 cm -39 cm 1.08 MeV 0 eV 3.12 m 3.18 m Tracker Transportation - 5 -2.91 m -50.9 cm 4.59 cm 1.08 MeV 0 eV 67.7 cm 3.86 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 78 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.45 cm -1.92 mm -2.43 m 27.7 keV 0 eV 0 fm 0 fm World initStep - 1 -1.45 cm -1.92 mm -2.43 m 27.7 keV 0 eV -0 fm 0 fm World Transportation - 2 -1.45 cm -1.92 mm -2.43 m 27.2 keV 428 eV 137 nm 137 nm Target msc - 3 -1.45 cm -1.92 mm -2.43 m 0 eV 27.2 keV 3.33 mum 3.46 mum Target eIoni + 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 -1.07 mm -436 mum -2.44 m 4.43 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.58 mm 949 mum -2.42 m 0 eV 0 eV 2.04 cm 2.04 cm Target conv + 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 = 95, Parent ID = 21 +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 21 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.58 mm 949 mum -2.42 m 1.64 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.66 mm 885 mum -2.42 m 269 keV 1.37 MeV 367 mum 367 mum Target eBrem - 2 -3.66 mm 891 mum -2.42 m 0 eV 269 keV 123 mum 490 mum Target eIoni - 3 -3.66 mm 891 mum -2.42 m 0 eV 0 eV 0 fm 490 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 97, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.66 mm 891 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.93 mm 3.39 mm -2.41 m 0 eV 88 keV 6.99 mm 6.99 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 97 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.93 mm 3.39 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.95 mm 3.38 mm -2.41 m 85.2 keV 338 keV 235 mum 235 mum Target eIoni - 2 -8.95 mm 3.38 mm -2.41 m 2.78e-11 eV 85.2 keV 21.2 mum 256 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 96, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.66 mm 891 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -936 mum -396 mum -2.42 m 0 eV 88 keV 3.6 mm 3.6 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 96 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -936 mum -396 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -925 mum -401 mum -2.42 m 1.11e-10 eV 423 keV 235 mum 235 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 21 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.58 mm 949 mum -2.42 m 1.77 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.45 mm 837 mum -2.42 m 1.24 MeV 526 keV 570 mum 570 mum Target eIoni - 2 -3.47 mm 749 mum -2.42 m 735 keV 508 keV 470 mum 1.04 mm Target eIoni - 3 -3.47 mm 770 mum -2.42 m 225 keV 510 keV 354 mum 1.39 mm Target eIoni - 4 -3.47 mm 765 mum -2.42 m 2.78e-11 eV 225 keV 97.3 mum 1.49 mm Target eIoni + 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 -1.06 mm -431 mum -2.44 m 302 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.08 mm -439 mum -2.44 m 0 eV 88 keV 1.07 mm 1.07 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.08 mm -439 mum -2.44 m 214 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.08 mm -439 mum -2.44 m 0 eV 214 keV 90.4 mum 90.4 mum Target eIoni + 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 -1.01 mm -406 mum -2.44 m 288 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.14 mm -423 mum -2.44 m 0 eV 88 keV 1.74 mm 1.74 mm Target phot + 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 = 101, Parent ID = 19 +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 19 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.14 mm -423 mum -2.44 m 200 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.14 mm -423 mum -2.44 m 0 eV 200 keV 81.7 mum 81.7 mum Target eIoni + 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 -741 mum -374 mum -2.44 m 1.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.12 mm -48 mum -2.43 m 468 keV 0 eV 1.22 cm 1.22 cm Target compt - 2 16.1 mum -1.09 mm -2.43 m 0 eV 88 keV 2.65 mm 1.49 cm Target phot + 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 = 103, Parent ID = 18 +* G4Track Information: Particle = e+, Track ID = 65, Parent ID = 18 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 16.1 mum -1.09 mm -2.43 m 380 keV 0 eV 0 fm 0 fm Target initStep - 1 32 mum -1.08 mm -2.43 m 89 keV 291 keV 207 mum 207 mum Target eIoni - 2 31.7 mum -1.08 mm -2.43 m 0 eV 89 keV 22.8 mum 230 mum Target eIoni + 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 = e-, Track ID = 102, Parent ID = 18 +* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 65 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.12 mm -48 mum -2.43 m 736 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.18 mm -98.4 mum -2.43 m 341 keV 394 keV 355 mum 355 mum Target eIoni - 2 -2.18 mm -102 mum -2.43 m 0 eV 341 keV 178 mum 533 mum Target eIoni + 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 -730 mum -369 mum -2.44 m 1.99 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.17 mm -389 mum -2.43 m 840 keV 0 eV 5.89 mm 5.89 mm Target compt - 2 -1.24 mm -1.1 mm -2.43 m 0 eV 88 keV 927 mum 6.82 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 mm -1.1 mm -2.43 m 752 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.26 mm -1.14 mm -2.43 m 142 keV 70.9 keV 62 mum 62 mum Target eBrem - 2 -1.26 mm -1.14 mm -2.43 m 0 eV 142 keV 47.9 mum 110 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 106, Parent ID = 105 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.26 mm -1.14 mm -2.43 m 539 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.46 mm -8.08 mm -2.42 m 517 keV 0 eV 1.52 cm 1.52 cm Target compt - 2 -7.22 mm -8.58 mm -2.42 m 194 keV 0 eV 1.26 mm 1.64 cm Target compt - 3 -7.23 mm -8.57 mm -2.42 m 0 eV 88 keV 77.1 mum 1.65 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 106 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.23 mm -8.57 mm -2.42 m 106 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.23 mm -8.57 mm -2.42 m 0 eV 106 keV 30.4 mum 30.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 106 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.22 mm -8.58 mm -2.42 m 322 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.22 mm -8.59 mm -2.42 m 0 eV 322 keV 164 mum 164 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 106 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.46 mm -8.08 mm -2.42 m 22.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.46 mm -8.08 mm -2.42 m 1.04e-11 eV 22.6 keV 2.46 mum 2.46 mum Target eIoni + 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 -1.17 mm -389 mum -2.43 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.08 mm -431 mum -2.43 m 631 keV 517 keV 451 mum 451 mum Target eIoni - 2 -1.12 mm -466 mum -2.43 m 265 keV 366 keV 323 mum 774 mum Target eIoni - 3 -1.11 mm -468 mum -2.43 m 0 eV 265 keV 124 mum 898 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -557 mum -249 mum -2.44 m 5.94 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 mm -671 mum -2.43 m 0 eV 0 eV 7.63 mm 7.63 mm Target conv + 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 ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 111, Parent ID = 16 +* G4Track Information: Particle = e+, Track ID = 106, Parent ID = 16 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm -671 mum -2.43 m 4.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.13 mm -1.16 mm -2.43 m 2.54 MeV 1.77 MeV 1 mm 1 mm Target eIoni - 2 -833 mum -941 mum -2.43 m 1.09 MeV 1.44 MeV 713 mum 1.72 mm Target eIoni - 3 -668 mum -941 mum -2.43 m 687 keV 404 keV 443 mum 2.16 mm Target eIoni - 4 -729 mum -1 mm -2.43 m 341 keV 346 keV 342 mum 2.5 mm Target eIoni - 5 -737 mum -1.01 mm -2.43 m 0 eV 341 keV 175 mum 2.68 mm Target eIoni - 6 -737 mum -1.01 mm -2.43 m 0 eV 0 eV 0 fm 2.68 mm Target annihil + 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 = 113, Parent ID = 111 +* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 106 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -737 mum -1.01 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 40.8 mum -2.85 mm -2.44 m 333 keV 0 eV 3.54 mm 3.54 mm Target compt - 2 4.05 mm -709 mum -2.44 m 246 keV 0 eV 5.75 mm 9.29 mm Target compt - 3 4.68 mm -1.13 mm -2.44 m 0 eV 88 keV 766 mum 1.01 cm Target phot + 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 = 116, Parent ID = 113 +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 109 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.68 mm -1.13 mm -2.44 m 158 keV 0 eV 0 fm 0 fm Target initStep - 1 4.68 mm -1.13 mm -2.44 m 0 eV 158 keV 56.6 mum 56.6 mum Target eIoni + 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 = e-, Track ID = 115, Parent ID = 113 +* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 106 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.05 mm -709 mum -2.44 m 87.2 keV 0 eV 0 fm 0 fm Target initStep - 1 4.05 mm -708 mum -2.44 m 0 eV 87.2 keV 22 mum 22 mum Target eIoni + 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 = 114, Parent ID = 113 +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 108 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 40.8 mum -2.85 mm -2.44 m 178 keV 0 eV 0 fm 0 fm Target initStep - 1 39.9 mum -2.85 mm -2.44 m 5.55e-11 eV 178 keV 68.1 mum 68.1 mum Target eIoni + 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 = gamma, Track ID = 112, Parent ID = 111 +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 108 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -737 mum -1.01 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 mm 124 mum -2.43 m 375 keV 0 eV 2.2 mm 2.2 mm Target compt - 2 -1.18 mm 156 mum -2.43 m 0 eV 88 keV 74.2 mum 2.27 mm Target phot + 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 = 118, Parent ID = 112 +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 108 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 mm 156 mum -2.43 m 287 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.17 mm 159 mum -2.43 m 5.55e-11 eV 287 keV 139 mum 139 mum Target eIoni + 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 = e-, Track ID = 117, Parent ID = 112 +* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 106 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm 124 mum -2.43 m 136 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 mm 125 mum -2.43 m 0 eV 136 keV 44.8 mum 44.8 mum Target eIoni + 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 = 110, Parent ID = 16 +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 107 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm -671 mum -2.43 m 611 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 mm -707 mum -2.43 m 264 keV 347 keV 317 mum 317 mum Target eIoni - 2 -1.22 mm -709 mum -2.43 m 0 eV 264 keV 123 mum 440 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -531 mum -247 mum -2.44 m 1.82 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.51 mm 218 mum -2.42 m 255 keV 0 eV 2.57 cm 2.57 cm Target compt - 2 -4.1 mm 2.14 mm -2.42 m 0 eV 88 keV 3.08 mm 2.88 cm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.1 mm 2.14 mm -2.42 m 167 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.1 mm 2.14 mm -2.42 m 0 eV 167 keV 62 mum 62 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.51 mm 218 mum -2.42 m 1.56 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.53 mm 63.2 mum -2.42 m 939 keV 333 keV 342 mum 342 mum Target eBrem - 2 -3.48 mm -26.6 mum -2.42 m 444 keV 494 keV 405 mum 747 mum Target eIoni - 3 -3.48 mm -22.7 mum -2.42 m 111 keV 334 keV 247 mum 994 mum Target eIoni - 4 -3.48 mm -23.4 mum -2.42 m 1.39e-11 eV 111 keV 32.3 mum 1.03 mm Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 119 +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.53 mm 63.2 mum -2.42 m 288 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.01 mm -2.3 mm -2.42 m 0 eV 88 keV 2.72 mm 2.72 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 121 +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.01 mm -2.3 mm -2.42 m 200 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.01 mm -2.3 mm -2.42 m 0 eV 200 keV 81.1 mum 81.1 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -469 mum -52 mum -2.44 m 3.61 MeV 0 eV 0 fm 0 fm Target initStep - 1 -740 mum -325 mum -2.44 m 0 eV 88 keV 2.28 mm 2.28 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 14 +* G4Track Information: Particle = e+, Track ID = 120, Parent ID = 14 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -740 mum -325 mum -2.44 m 3.52 MeV 0 eV 0 fm 0 fm Target initStep - 1 -911 mum -721 mum -2.44 m 2.51 MeV 1.01 MeV 862 mum 862 mum Target eIoni - 2 -633 mum -467 mum -2.44 m 1.88 MeV 635 keV 698 mum 1.56 mm Target eIoni - 3 -540 mum -269 mum -2.44 m 1.27 MeV 607 keV 589 mum 2.15 mm Target eIoni - 4 -611 mum -246 mum -2.44 m 2.22e-10 eV 1.27 MeV 476 mum 2.62 mm Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 124, Parent ID = 120 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -389 mum -30.1 mum -2.44 m 48 MeV 0 eV 0 fm 0 fm Target initStep - 1 -893 mum -539 mum -2.44 m 0 eV 0 eV 6.47 mm 6.47 mm Target conv + 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 ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 125, Parent ID = 13 +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 124 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -893 mum -539 mum -2.44 m 39.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -894 mum -561 mum -2.44 m 36.6 MeV 837 keV 502 mum 502 mum Target eBrem - 2 -919 mum -571 mum -2.44 m 35.9 MeV 123 keV 96.8 mum 598 mum Target eBrem - 3 -1.1 mm -693 mum -2.44 m 3.59 MeV 862 keV 750 mum 1.35 mm Target eBrem - 4 -1.51 mm -482 mum -2.44 m 2.44 MeV 1.15 MeV 890 mum 2.24 mm Target eIoni - 5 -1.53 mm -456 mum -2.44 m 1.64 MeV 102 keV 141 mum 2.38 mm Target eBrem - 6 -1.53 mm -655 mum -2.44 m 811 keV 337 keV 358 mum 2.74 mm Target eBrem - 7 -1.45 mm -747 mum -2.44 m 412 keV 399 keV 377 mum 3.12 mm Target eIoni - 8 -1.47 mm -747 mum -2.44 m 0 eV 412 keV 227 mum 3.34 mm Target eIoni - 9 -1.47 mm -747 mum -2.44 m 0 eV 0 eV 0 fm 3.34 mm Target annihil + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 125 +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 120 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 mm -747 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -95.2 mum 1.92 mm -2.43 m 351 keV 0 eV 3.47 mm 3.47 mm Target compt - 2 -165 mum 2 mm -2.43 m 177 keV 0 eV 136 mum 3.61 mm Target compt - 3 384 mum 1.17 mm -2.43 m 0 eV 88 keV 1.07 mm 4.68 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 132 +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 123 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 384 mum 1.17 mm -2.43 m 89.1 keV 0 eV 0 fm 0 fm Target initStep - 1 384 mum 1.17 mm -2.43 m 2.78e-11 eV 89.1 keV 22.8 mum 22.8 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 132 +* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 120 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -165 mum 2 mm -2.43 m 173 keV 0 eV 0 fm 0 fm Target initStep - 1 -167 mum 2 mm -2.43 m 2.78e-11 eV 173 keV 65.5 mum 65.5 mum Target eIoni + 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 122 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 122 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 120 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 121 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 121 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, 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 + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 119 +********************************************************************************************************* + +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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 133, Parent ID = 132 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -95.2 mum 1.92 mm -2.43 m 160 keV 0 eV 0 fm 0 fm Target initStep - 1 -92.8 mum 1.92 mm -2.43 m 8.33e-11 eV 160 keV 58 mum 58 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 125 +* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 119 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 mm -747 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.61 mm -1.02 mm -2.44 m 510 keV 0 eV 359 mum 359 mum Target compt - 2 -3.28 mm -3.72 mm -2.44 m 0 eV 88 keV 3.66 mm 4.02 mm Target phot + 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 = 137, Parent ID = 131 +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 131 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.28 mm -3.72 mm -2.44 m 422 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.29 mm -3.73 mm -2.44 m 19.5 keV 402 keV 234 mum 234 mum Target eIoni - 2 -3.29 mm -3.73 mm -2.44 m 6.94e-12 eV 19.5 keV 1.95 mum 236 mum Target eIoni + 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 = 136, Parent ID = 131 +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 131 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.61 mm -1.02 mm -2.44 m 1.21 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.61 mm -1.02 mm -2.44 m 0 eV 1.21 keV 36.6 nm 36.6 nm Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 130, Parent ID = 125 +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.53 mm -655 mum -2.44 m 495 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.59 mm -3.07 mm -2.44 m 0 eV 88 keV 2.62 mm 2.62 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 130 +* G4Track Information: Particle = e+, Track ID = 137, Parent ID = 13 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.59 mm -3.07 mm -2.44 m 407 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.58 mm -3.08 mm -2.44 m 58.2 keV 348 keV 225 mum 225 mum Target eIoni - 2 -1.59 mm -3.08 mm -2.44 m 0 eV 58.2 keV 11.4 mum 236 mum Target eIoni + 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 = 129, Parent ID = 125 +* G4Track Information: Particle = gamma, Track ID = 139, Parent ID = 137 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.53 mm -456 mum -2.44 m 695 keV 0 eV 0 fm 0 fm Target initStep - 1 -651 mum -1.02 mm -2.44 m 0 eV 88 keV 2.08 mm 2.08 mm Target phot + 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 = 139, Parent ID = 129 +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 139 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -651 mum -1.02 mm -2.44 m 607 keV 0 eV 0 fm 0 fm Target initStep - 1 -640 mum -1.02 mm -2.44 m 1.11e-10 eV 607 keV 315 mum 315 mum Target eIoni + 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 = 128, Parent ID = 125 +* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 137 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.1 mm -693 mum -2.44 m 31.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.06 mm 5.13 mm -2.4 m 31.4 MeV 0 eV 3.75 cm 3.75 cm Target Transportation - 2 -13.7 cm 13.3 cm -1.6 m 31.4 MeV 0 eV 82 cm 85.8 cm Tracker Transportation - 3 -17 cm 16.4 cm -1.4 m 31.4 MeV 0 eV 20.5 cm 1.06 m Chamber Transportation - 4 -26.8 cm 26 cm -80 cm 31.4 MeV 0 eV 61.5 cm 1.68 m Tracker Transportation - 5 -30 cm 29.2 cm -60 cm 31.4 MeV 0 eV 20.5 cm 1.88 m Chamber Transportation - 6 -39.8 cm 38.7 cm 0 fm 31.4 MeV 0 eV 61.5 cm 2.5 m Tracker Transportation - 7 -43.1 cm 41.9 cm 20 cm 31.4 MeV 0 eV 20.5 cm 2.7 m Chamber Transportation - 8 -52.8 cm 51.5 cm 80 cm 31.4 MeV 0 eV 61.5 cm 3.32 m Tracker Transportation - 9 -56.1 cm 54.7 cm 1 m 31.4 MeV 0 eV 20.5 cm 3.52 m Chamber Transportation - 10 -65.9 cm 64.2 cm 1.6 m 31.4 MeV 0 eV 61.5 cm 4.14 m Tracker Transportation - 11 -69.1 cm 67.4 cm 1.8 m 31.4 MeV 0 eV 20.5 cm 4.35 m Chamber Transportation - 12 -78.9 cm 77 cm 2.4 m 31.4 MeV 0 eV 61.5 cm 4.96 m Tracker Transportation - 13 -87.2 cm 85.1 cm 2.91 m 31.4 MeV 0 eV 52.3 cm 5.48 m OutOfWorld Transportation + 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 = gamma, Track ID = 127, Parent ID = 125 +* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 138 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -919 mum -571 mum -2.44 m 585 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.61 mm -1.05 mm -2.43 m 516 keV 0 eV 5.03 mm 5.03 mm Target compt - 2 -2.29 mm -1.86 mm -2.43 m 336 keV 0 eV 2.89 mm 7.92 mm Target compt - 3 -1.6 mm -864 mum -2.43 m 0 eV 88 keV 1.55 mm 9.47 mm Target phot + 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 = 142, Parent ID = 127 +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 138 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.6 mm -864 mum -2.43 m 248 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.6 mm -860 mum -2.43 m 2.78e-11 eV 248 keV 112 mum 112 mum Target eIoni + 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 = 141, Parent ID = 127 +* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 13 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.29 mm -1.86 mm -2.43 m 180 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.29 mm -1.86 mm -2.43 m 5.55e-11 eV 180 keV 69.4 mum 69.4 mum Target eIoni + 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 = e-, Track ID = 140, Parent ID = 127 +* G4Track Information: Particle = gamma, Track ID = 143, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.61 mm -1.05 mm -2.43 m 69.4 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.61 mm -1.05 mm -2.43 m 5.55e-11 eV 69.4 keV 15.2 mum 15.2 mum Target eIoni + 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 = gamma, Track ID = 126, Parent ID = 125 +* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 143 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -894 mum -561 mum -2.44 m 1.94 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.2 cm -5.65 mm -2.4 m 1.94 MeV 0 eV 3.93 cm 3.93 cm Target Transportation - 2 -48.8 cm -22.3 cm -80 cm 1.94 MeV 0 eV 1.68 m 1.72 m Tracker Transportation - 3 -54.7 cm -25.1 cm -60 cm 1.94 MeV 0 eV 21 cm 1.93 m Chamber Transportation - 4 -72.5 cm -33.2 cm 0 fm 1.94 MeV 0 eV 63.1 cm 2.56 m Tracker Transportation - 5 -78.5 cm -36 cm 20 cm 1.94 MeV 0 eV 21 cm 2.77 m Chamber Transportation - 6 -96.3 cm -44.1 cm 80 cm 1.94 MeV 0 eV 63.1 cm 3.41 m Tracker Transportation - 7 -1.02 m -46.8 cm 1 m 1.94 MeV 0 eV 21 cm 3.62 m Chamber Transportation - 8 -1.2 m -55 cm 1.6 m 1.94 MeV 0 eV 63.1 cm 4.25 m Tracker Transportation - 9 -1.26 m -57.7 cm 1.8 m 1.94 MeV 0 eV 21 cm 4.46 m Chamber Transportation - 10 -1.44 m -65.9 cm 2.4 m 1.94 MeV 0 eV 63.1 cm 5.09 m Tracker Transportation - 11 -1.59 m -72.8 cm 2.91 m 1.94 MeV 0 eV 53.7 cm 5.63 m OutOfWorld Transportation + 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 = 124, Parent ID = 13 +* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 143 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -893 mum -539 mum -2.44 m 7.62 MeV 0 eV 0 fm 0 fm Target initStep - 1 -943 mum -263 mum -2.44 m 2.03 MeV 5.59 MeV 1.48 mm 1.48 mm Target eIoni - 2 -862 mum -410 mum -2.44 m 1.17 MeV 857 keV 616 mum 2.09 mm Target eIoni - 3 -760 mum -455 mum -2.44 m 786 keV 386 keV 456 mum 2.55 mm Target eIoni - 4 -759 mum -546 mum -2.44 m 471 keV 315 keV 368 mum 2.92 mm Target eIoni - 5 -785 mum -559 mum -2.44 m 141 keV 330 keV 260 mum 3.18 mm Target eIoni - 6 -785 mum -560 mum -2.44 m 0 eV 141 keV 47.5 mum 3.22 mm Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -385 mum -26.8 mum -2.44 m 541 keV 0 eV 0 fm 0 fm Target initStep - 1 -825 mum -255 mum -2.44 m 0 eV 88 keV 4.56 mm 4.56 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 12 +* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 12 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -825 mum -255 mum -2.44 m 453 keV 0 eV 0 fm 0 fm Target initStep - 1 -820 mum -278 mum -2.44 m 119 keV 334 keV 251 mum 251 mum Target eIoni - 2 -821 mum -279 mum -2.44 m 0 eV 119 keV 36.4 mum 288 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -374 mum -21.8 mum -2.44 m 16.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -526 mum -92.6 mum -2.44 m 0 eV 0 eV 2.29 mm 2.29 mm Target conv + 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 ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 145, Parent ID = 11 +* G4Track Information: Particle = e+, Track ID = 148, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -526 mum -92.6 mum -2.44 m 9.08 MeV 0 eV 0 fm 0 fm Target initStep - 1 -645 mum -65.5 mum -2.44 m 7.91 MeV 478 keV 343 mum 343 mum Target eBrem - 2 -561 mum -133 mum -2.44 m 7.11 MeV 369 keV 390 mum 732 mum Target eBrem - 3 -857 mum -299 mum -2.44 m 4.53 MeV 1.45 MeV 1.24 mm 1.97 mm Target eBrem - 4 -653 mum -361 mum -2.44 m 2.96 MeV 1.57 MeV 1.04 mm 3.01 mm Target eIoni - 5 -629 mum -418 mum -2.44 m 2.04 MeV 86.9 keV 99.8 mum 3.11 mm Target eBrem - 6 -483 mum -265 mum -2.44 m 1.39 MeV 646 keV 625 mum 3.74 mm Target eIoni - 7 -279 mum -374 mum -2.44 m 907 keV 483 keV 504 mum 4.24 mm Target eIoni - 8 -375 mum -467 mum -2.44 m 475 keV 432 keV 401 mum 4.64 mm Target eIoni - 9 -396 mum -450 mum -2.44 m 3.62 keV 471 keV 262 mum 4.9 mm Target eIoni - 10 -396 mum -450 mum -2.44 m 0 eV 3.62 keV 117 nm 4.9 mm Target eIoni - 11 -396 mum -450 mum -2.44 m 0 eV 0 eV 0 fm 4.9 mm Target annihil + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 145 +* G4Track Information: Particle = gamma, Track ID = 150, Parent ID = 148 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -396 mum -450 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 499 mum -195 mum -2.44 m 416 keV 0 eV 2.71 mm 2.71 mm Target compt - 2 5.51 mm 44.2 mum -2.45 m 0 eV 88 keV 5.86 mm 8.57 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 151 +* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 150 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.51 mm 44.2 mum -2.45 m 328 keV 0 eV 0 fm 0 fm Target initStep - 1 5.52 mm 44.6 mum -2.45 m 5.55e-11 eV 328 keV 168 mum 168 mum Target eIoni + 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 = 152, Parent ID = 151 +* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 150 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 499 mum -195 mum -2.44 m 95.2 keV 0 eV 0 fm 0 fm Target initStep - 1 499 mum -195 mum -2.44 m 5.55e-11 eV 95.2 keV 25.4 mum 25.4 mum Target eIoni + 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 = 150, Parent ID = 145 +* G4Track Information: Particle = gamma, Track ID = 149, Parent ID = 148 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -396 mum -450 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -437 mum -462 mum -2.44 m 276 keV 0 eV 124 mum 124 mum Target compt - 2 -4.09 mm -540 mum -2.44 m 0 eV 88 keV 3.73 mm 3.85 mm Target phot + 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 = 155, Parent ID = 150 +* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 149 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.09 mm -540 mum -2.44 m 188 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.1 mm -540 mum -2.44 m 8.33e-11 eV 188 keV 73.9 mum 73.9 mum Target eIoni + 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 = 154, Parent ID = 150 +* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 149 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -437 mum -462 mum -2.44 m 235 keV 0 eV 0 fm 0 fm Target initStep - 1 -436 mum -462 mum -2.44 m 0 eV 235 keV 104 mum 104 mum Target eIoni + 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 = gamma, Track ID = 149, Parent ID = 145 +* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -629 mum -418 mum -2.44 m 837 keV 0 eV 0 fm 0 fm Target initStep - 1 5.85 mm -4.38 mm -2.45 m 494 keV 0 eV 1.16 cm 1.16 cm Target compt - 2 6.14 mm -4.08 mm -2.45 m 0 eV 88 keV 535 mum 1.21 cm Target phot + 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 = e-, Track ID = 157, Parent ID = 149 +* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 147 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.14 mm -4.08 mm -2.45 m 406 keV 0 eV 0 fm 0 fm Target initStep - 1 6.15 mm -4.07 mm -2.45 m 0 eV 406 keV 224 mum 224 mum Target eIoni + 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 = 149 +* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 155 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.85 mm -4.38 mm -2.45 m 343 keV 0 eV 0 fm 0 fm Target initStep - 1 5.85 mm -4.39 mm -2.45 m 0 eV 343 keV 179 mum 179 mum Target eIoni + 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 = 148, Parent ID = 145 +* G4Track Information: Particle = gamma, Track ID = 157, Parent ID = 156 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -857 mum -299 mum -2.44 m 1.13 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.48 mm -1.22 cm -2.43 m 482 keV 0 eV 1.67 cm 1.67 cm Target compt - 2 3.87 mm -1.23 cm -2.43 m 180 keV 0 eV 2.57 mm 1.93 cm Target compt - 3 894 mum -1.25 cm -2.43 m 0 eV 88 keV 3.13 mm 2.24 cm Target phot + 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 = 148 +* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 157 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 894 mum -1.25 cm -2.43 m 91.7 keV 0 eV 0 fm 0 fm Target initStep - 1 893 mum -1.25 cm -2.43 m 0 eV 91.7 keV 23.9 mum 23.9 mum Target eIoni + 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 = 148 +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 157 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.87 mm -1.23 cm -2.43 m 303 keV 0 eV 0 fm 0 fm Target initStep - 1 3.88 mm -1.23 cm -2.43 m 0 eV 303 keV 150 mum 150 mum Target eIoni + 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 = 148 +* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 157 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.48 mm -1.22 cm -2.43 m 651 keV 0 eV 0 fm 0 fm Target initStep - 1 1.48 mm -1.22 cm -2.43 m 316 keV 335 keV 330 mum 330 mum Target eIoni - 2 1.47 mm -1.22 cm -2.43 m 1.11e-10 eV 316 keV 160 mum 489 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 147, Parent ID = 145 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -561 mum -133 mum -2.44 m 430 keV 0 eV 0 fm 0 fm Target initStep - 1 -320 mum -1.6 mm -2.44 m 0 eV 88 keV 3.13 mm 3.13 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 147 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -320 mum -1.6 mm -2.44 m 342 keV 0 eV 0 fm 0 fm Target initStep - 1 -320 mum -1.6 mm -2.44 m 0 eV 342 keV 179 mum 179 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 146, Parent ID = 145 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -645 mum -65.5 mum -2.44 m 698 keV 0 eV 0 fm 0 fm Target initStep - 1 -521 mum -532 mum -2.44 m 0 eV 88 keV 895 mum 895 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 146 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -521 mum -532 mum -2.44 m 610 keV 0 eV 0 fm 0 fm Target initStep - 1 -538 mum -597 mum -2.44 m 333 keV 277 keV 316 mum 316 mum Target eIoni - 2 -534 mum -602 mum -2.44 m 0 eV 333 keV 172 mum 488 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 11 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -526 mum -92.6 mum -2.44 m 6.63 MeV 0 eV 0 fm 0 fm Target initStep - 1 -70.5 mum -389 mum -2.44 m 4.27 MeV 1.85 MeV 1.18 mm 1.18 mm Target eBrem - 2 398 mum -668 mum -2.44 m 3.03 MeV 928 keV 665 mum 1.84 mm Target eBrem - 3 -14.8 mum -453 mum -2.44 m 2.32 MeV 701 keV 782 mum 2.62 mm Target eIoni - 4 145 mum -692 mum -2.44 m 1.21 MeV 296 keV 321 mum 2.95 mm Target eBrem - 5 160 mum -769 mum -2.44 m 783 keV 423 keV 463 mum 3.41 mm Target eIoni - 6 130 mum -772 mum -2.44 m 80.8 keV 703 keV 367 mum 3.78 mm Target eIoni - 7 131 mum -772 mum -2.44 m 0 eV 80.8 keV 19.5 mum 3.8 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 144 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 145 mum -692 mum -2.44 m 822 keV 0 eV 0 fm 0 fm Target initStep - 1 -209 mum -2.5 cm -2.44 m 822 keV 0 eV 2.45 cm 2.45 cm Target Transportation - 2 -4.12 mm -29.4 cm -2.4 m 822 keV 0 eV 27.1 cm 29.6 cm World Transportation - 3 -3.48 cm -2.4 m -2.1 m 822 keV 0 eV 2.13 m 2.42 m Tracker Transportation - 4 -4.22 cm -2.91 m -2.03 m 822 keV 0 eV 51.5 cm 2.94 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 144 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 398 mum -668 mum -2.44 m 319 keV 0 eV 0 fm 0 fm Target initStep - 1 209 mum -624 mum -2.44 m 0 eV 88 keV 331 mum 331 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 164 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 209 mum -624 mum -2.44 m 231 keV 0 eV 0 fm 0 fm Target initStep - 1 206 mum -623 mum -2.44 m 2.78e-11 eV 231 keV 101 mum 101 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 163, Parent ID = 144 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -70.5 mum -389 mum -2.44 m 508 keV 0 eV 0 fm 0 fm Target initStep - 1 555 mum -3.49 mm -2.44 m 0 eV 88 keV 3.16 mm 3.16 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 163 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 555 mum -3.49 mm -2.44 m 420 keV 0 eV 0 fm 0 fm Target initStep - 1 558 mum -3.5 mm -2.44 m 0 eV 420 keV 233 mum 233 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -235 mum 70.6 mum -2.45 m 29 MeV 0 eV 0 fm 0 fm Target initStep - 1 -521 mum -55.2 mum -2.44 m 0 eV 0 eV 6.19 mm 6.19 mm Target conv + 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 ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 169, Parent ID = 10 +* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -521 mum -55.2 mum -2.44 m 18.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -132 mum 21 mum -2.44 m 15.7 MeV 1.7 MeV 1.63 mm 1.63 mm Target eBrem - 2 281 mum 1.47 mm -2.44 m 12.2 MeV 3.5 MeV 2.67 mm 4.3 mm Target eIoni - 3 205 mum 1.61 mm -2.44 m 8.66 MeV 673 keV 598 mum 4.9 mm Target eBrem - 4 442 mum 1.63 mm -2.44 m 2.96 MeV 739 keV 696 mum 5.59 mm Target eBrem - 5 111 mum 1.78 mm -2.43 m 2.17 MeV 794 keV 785 mum 6.38 mm Target eIoni - 6 -112 mum 1.56 mm -2.43 m 1.58 MeV 590 keV 649 mum 7.03 mm Target eIoni - 7 -322 mum 1.46 mm -2.43 m 1.09 MeV 485 keV 541 mum 7.57 mm Target eIoni - 8 -334 mum 1.48 mm -2.43 m 0 eV 26.4 keV 34.8 mum 7.6 mm Target annihil + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 169 +* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -334 mum 1.48 mm -2.43 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.18 mm -1.65 mm -2.44 m 666 keV 0 eV 5.54 mm 5.54 mm Target compt - 2 -3.68 mm -3.4 mm -2.44 m 0 eV 88 keV 1.85 mm 7.39 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 174 +* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.68 mm -3.4 mm -2.44 m 578 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.69 mm -3.43 mm -2.44 m 1.11e-10 eV 578 keV 305 mum 305 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 174 +* G4Track Information: Particle = gamma, Track ID = 169, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.18 mm -1.65 mm -2.44 m 886 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.17 mm -1.58 mm -2.44 m 482 keV 404 keV 393 mum 393 mum Target eIoni - 2 -3.19 mm -1.56 mm -2.44 m 83.7 keV 399 keV 266 mum 659 mum Target eIoni - 3 -3.18 mm -1.56 mm -2.44 m 0 eV 83.7 keV 20.6 mum 679 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 173, Parent ID = 169 +* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -334 mum 1.48 mm -2.43 m 535 keV 0 eV 0 fm 0 fm Target initStep - 1 -168 mum 846 mum -2.43 m 219 keV 0 eV 1.12 mm 1.12 mm Target compt - 2 1.99 mum 437 mum -2.43 m 0 eV 88 keV 828 mum 1.95 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 173 +* G4Track Information: Particle = e-, Track ID = 174, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.99 mum 437 mum -2.43 m 131 keV 0 eV 0 fm 0 fm Target initStep - 1 2.37 mum 436 mum -2.43 m 0 eV 131 keV 42.1 mum 42.1 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 173 +* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -168 mum 846 mum -2.43 m 316 keV 0 eV 0 fm 0 fm Target initStep - 1 -167 mum 844 mum -2.43 m 1.67e-10 eV 316 keV 160 mum 160 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 172, Parent ID = 169 +* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 442 mum 1.63 mm -2.44 m 4.96 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.98 mm 6.17 mm -2.42 m 0 eV 0 eV 1.85 cm 1.85 cm Target conv + 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 ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 180, Parent ID = 172 +* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.98 mm 6.17 mm -2.42 m 270 keV 0 eV 0 fm 0 fm Target initStep - 1 3.98 mm 6.17 mm -2.42 m 0 eV 270 keV 124 mum 124 mum Target eIoni - 2 3.98 mm 6.17 mm -2.42 m 0 eV 0 eV 0 fm 124 mum Target annihil + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 182, Parent ID = 180 +* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.98 mm 6.17 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 7.69 mm 8.88 mm -2.42 m 0 eV 88 keV 8.24 mm 8.24 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 182 +* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.69 mm 8.88 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 7.7 mm 8.86 mm -2.42 m 140 keV 283 keV 235 mum 235 mum Target eIoni - 2 7.7 mm 8.86 mm -2.42 m 5.55e-11 eV 140 keV 46.9 mum 282 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 181, Parent ID = 180 +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 168 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.98 mm 6.17 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.98 mm 5.44 mm -2.42 m 0 eV 88 keV 2.22 mm 2.22 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 181 +* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 168 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.98 mm 5.44 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 2.97 mm 5.44 mm -2.42 m 6.77 keV 416 keV 235 mum 235 mum Target eIoni - 2 2.97 mm 5.44 mm -2.42 m 6.07e-12 eV 6.77 keV 393 nm 235 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 172 +* G4Track Information: Particle = gamma, Track ID = 167, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.98 mm 6.17 mm -2.42 m 3.67 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.92 mm 6.12 mm -2.42 m 784 keV 385 keV 320 mum 320 mum Target eBrem - 2 3.92 mm 6.2 mm -2.42 m 401 keV 383 keV 368 mum 687 mum Target eIoni - 3 3.92 mm 6.2 mm -2.42 m 1.67e-10 eV 401 keV 221 mum 908 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 185, Parent ID = 179 +* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 167 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.92 mm 6.12 mm -2.42 m 2.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.26 mm 8.54 mm -2.42 m 0 eV 0 eV 3.18 mm 3.18 mm Target conv + 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 ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 187, Parent ID = 185 +* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 167 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.26 mm 8.54 mm -2.42 m 594 keV 0 eV 0 fm 0 fm Target initStep - 1 4.25 mm 8.52 mm -2.42 m 256 keV 339 keV 312 mum 312 mum Target eIoni - 2 4.24 mm 8.51 mm -2.42 m 0 eV 256 keV 114 mum 426 mum Target eIoni - 3 4.24 mm 8.51 mm -2.42 m 0 eV 0 eV 0 fm 426 mum Target annihil + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 189, Parent ID = 187 +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 167 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.24 mm 8.51 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 8.56 mm 8.76 mm -2.42 m 0 eV 88 keV 4.32 mm 4.32 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 189 +* G4Track Information: Particle = gamma, Track ID = 166, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.56 mm 8.76 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 8.57 mm 8.76 mm -2.42 m 4.08 keV 419 keV 235 mum 235 mum Target eIoni - 2 8.57 mm 8.76 mm -2.42 m 8.67e-13 eV 4.08 keV 194 nm 235 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 188, Parent ID = 187 +* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 166 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.24 mm 8.51 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.18 mm 8.39 mm -2.42 m 0 eV 88 keV 2.07 mm 2.07 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 188 +* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.18 mm 8.39 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 2.16 mm 8.39 mm -2.42 m 0 eV 423 keV 235 mum 235 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 185 +* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 165 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.26 mm 8.54 mm -2.42 m 887 keV 0 eV 0 fm 0 fm Target initStep - 1 4.28 mm 8.54 mm -2.42 m 371 keV 515 keV 393 mum 393 mum Target eIoni - 2 4.28 mm 8.55 mm -2.42 m 1.11e-10 eV 371 keV 201 mum 594 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 171, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 205 mum 1.61 mm -2.44 m 2.88 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.41 mm 4.11 mm -2.43 m 571 keV 0 eV 7.47 mm 7.47 mm Target compt - 2 319 mum 4.42 mm -2.43 m 0 eV 88 keV 1.22 mm 8.68 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 171 +* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 164 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 319 mum 4.42 mm -2.43 m 483 keV 0 eV 0 fm 0 fm Target initStep - 1 303 mum 4.43 mm -2.43 m 1.11e-10 eV 483 keV 266 mum 266 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 192, Parent ID = 171 +* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 164 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.41 mm 4.11 mm -2.43 m 2.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.48 mm 4.17 mm -2.43 m 4.44e-10 eV 2.31 MeV 664 mum 664 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 170, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 185, Parent ID = 183 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -132 mum 21 mum -2.44 m 1.13 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.79 mm 1.35 cm -2.42 m 950 keV 0 eV 2.02 cm 2.02 cm Target compt - 2 -2.45 mm 2.5 cm -2.42 m 950 keV 0 eV 1.27 cm 3.29 cm Target Transportation - 3 -1.32 mm 6.32 cm -2.4 m 950 keV 0 eV 4.23 cm 7.52 cm World Transportation - 4 6.8 cm 2.4 m -1.29 m 950 keV 0 eV 2.59 m 2.66 m Tracker Transportation - 5 8.31 cm 2.91 m -1.05 m 950 keV 0 eV 56.5 cm 3.23 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 170 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.79 mm 1.35 cm -2.42 m 182 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.79 mm 1.35 cm -2.42 m 5.55e-11 eV 182 keV 70.4 mum 70.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 10 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -521 mum -55.2 mum -2.44 m 9.38 MeV 0 eV 0 fm 0 fm Target initStep - 1 -431 mum 613 mum -2.44 m 6.5 MeV 2.88 MeV 1.73 mm 1.73 mm Target eIoni - 2 -249 mum 704 mum -2.44 m 5.33 MeV 498 keV 477 mum 2.2 mm Target eBrem - 3 -387 mum -233 mum -2.44 m 4.01 MeV 1.32 MeV 1.14 mm 3.34 mm Target eIoni - 4 29.2 mum -682 mum -2.44 m 3.06 MeV 953 keV 938 mum 4.28 mm Target eIoni - 5 -18.4 mum -798 mum -2.44 m 2.28 MeV 780 keV 787 mum 5.07 mm Target eIoni - 6 117 mum -1.09 mm -2.44 m 1.62 MeV 661 keV 658 mum 5.73 mm Target eIoni - 7 277 mum -1.12 mm -2.44 m 600 keV 1.02 MeV 542 mum 6.27 mm Target eIoni - 8 233 mum -1.11 mm -2.44 m 211 keV 389 keV 313 mum 6.58 mm Target eIoni - 9 233 mum -1.12 mm -2.44 m 0 eV 211 keV 88.1 mum 6.67 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -249 mum 704 mum -2.44 m 676 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.22 mm -4.16 mm -2.43 m 290 keV 0 eV 6.63 mm 6.63 mm Target compt - 2 -4.6 mm -4.56 mm -2.44 m 0 eV 88 keV 2.94 mm 9.57 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 195 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.6 mm -4.56 mm -2.44 m 202 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.61 mm -4.56 mm -2.44 m 0 eV 202 keV 82.8 mum 82.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 195 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.22 mm -4.16 mm -2.43 m 386 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.22 mm -4.16 mm -2.43 m 7.31 keV 379 keV 211 mum 211 mum Target eIoni - 2 -2.22 mm -4.16 mm -2.43 m 0 eV 7.31 keV 440 nm 211 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -216 mum 86.5 mum -2.45 m 3.43 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.5 mm -576 mum -2.4 m 3.43 MeV 0 eV 4.67 cm 4.67 cm Target Transportation - 2 -2.36 cm -1.19 cm -1.6 m 3.43 MeV 0 eV 80 cm 84.7 cm Tracker Transportation - 3 -2.91 cm -1.48 cm -1.4 m 3.43 MeV 0 eV 20 cm 1.05 m Chamber Transportation - 4 -4.57 cm -2.33 cm -80 cm 3.43 MeV 0 eV 60 cm 1.65 m Tracker Transportation - 5 -5.12 cm -2.61 cm -60 cm 3.43 MeV 0 eV 20 cm 1.85 m Chamber Transportation - 6 -6.78 cm -3.47 cm 0 fm 3.43 MeV 0 eV 60 cm 2.45 m Tracker Transportation - 7 -7.33 cm -3.75 cm 20 cm 3.43 MeV 0 eV 20 cm 2.65 m Chamber Transportation - 8 -8.99 cm -4.6 cm 80 cm 3.43 MeV 0 eV 60 cm 3.25 m Tracker Transportation - 9 -9.54 cm -4.89 cm 1 m 3.43 MeV 0 eV 20 cm 3.45 m Chamber Transportation - 10 -11.2 cm -5.74 cm 1.6 m 3.43 MeV 0 eV 60 cm 4.05 m Tracker Transportation - 11 -11.8 cm -6.02 cm 1.8 m 3.43 MeV 0 eV 20 cm 4.25 m Chamber Transportation - 12 -13.4 cm -6.87 cm 2.4 m 3.43 MeV 0 eV 60 cm 4.85 m Tracker Transportation - 13 -14.8 cm -7.6 cm 2.91 m 3.43 MeV 0 eV 51 cm 5.36 m OutOfWorld Transportation + 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 187, 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -144 mum 106 mum -2.45 m 8.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 -203 mum -250 mum -2.42 m 0 eV 0 eV 2.87 cm 2.87 cm Target conv + 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 ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 199, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -203 mum -250 mum -2.42 m 5.75 MeV 0 eV 0 fm 0 fm Target initStep - 1 256 mum -159 mum -2.42 m 2.94 MeV 2.81 MeV 1.23 mm 1.23 mm Target eIoni - 2 769 mum -41.4 mum -2.42 m 2.19 MeV 742 keV 781 mum 2.01 mm Target eIoni - 3 1.09 mm -203 mum -2.42 m 1.41 MeV 782 keV 653 mum 2.66 mm Target eIoni - 4 1.06 mm -311 mum -2.42 m 686 keV 726 keV 509 mum 3.17 mm Target eIoni - 5 1.09 mm -244 mum -2.42 m 215 keV 471 keV 342 mum 3.52 mm Target eIoni - 6 1.09 mm -245 mum -2.42 m 0 eV 215 keV 87.5 mum 3.6 mm Target eIoni - 7 1.09 mm -245 mum -2.42 m 0 eV 0 eV 0 fm 3.6 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 201, Parent ID = 199 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.09 mm -245 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 5.53 mm -305 mum -2.41 m 475 keV 0 eV 6.31 mm 6.31 mm Target compt - 2 6.46 mm 189 mum -2.41 m 398 keV 0 eV 1.34 mm 7.65 mm Target compt - 3 1.5 cm 7.39 mm -2.41 m 0 eV 88 keV 1.12 cm 1.89 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 201 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.5 cm 7.39 mm -2.41 m 310 keV 0 eV 0 fm 0 fm Target initStep - 1 1.5 cm 7.39 mm -2.41 m 1.11e-10 eV 310 keV 156 mum 156 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 201 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.46 mm 189 mum -2.41 m 76.9 keV 0 eV 0 fm 0 fm Target initStep - 1 6.46 mm 188 mum -2.41 m 1.39e-11 eV 76.9 keV 18 mum 18 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 201 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.53 mm -305 mum -2.41 m 35.8 keV 0 eV 0 fm 0 fm Target initStep - 1 5.53 mm -305 mum -2.41 m 1.39e-11 eV 35.8 keV 5.17 mum 5.17 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 200, Parent ID = 199 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.09 mm -245 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -706 mum -221 mum -2.42 m 0 eV 88 keV 2.54 mm 2.54 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 200 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -706 mum -221 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -704 mum -235 mum -2.42 m 117 keV 306 keV 235 mum 235 mum Target eIoni - 2 -704 mum -236 mum -2.42 m 4.16e-11 eV 117 keV 35.2 mum 270 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -203 mum -250 mum -2.42 m 1.32 MeV 0 eV 0 fm 0 fm Target initStep - 1 -225 mum -111 mum -2.42 m 741 keV 581 keV 486 mum 486 mum Target eIoni - 2 -253 mum -159 mum -2.42 m 205 keV 536 keV 356 mum 842 mum Target eIoni - 3 -253 mum -155 mum -2.42 m 0 eV 205 keV 84.6 mum 926 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -141 mum 121 mum -2.45 m 2.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -132 mum 78.9 mum -2.45 m 453 keV 0 eV 1.12 mm 1.12 mm Target compt - 2 -1.38 mm -465 mum -2.45 m 419 keV 0 eV 1.37 mm 2.49 mm Target compt - 3 -4.73 mm -3.57 mm -2.45 m 0 eV 88 keV 4.66 mm 7.15 mm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 7 +* G4Track Information: Particle = e+, Track ID = 190, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.73 mm -3.57 mm -2.45 m 331 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.74 mm -3.58 mm -2.45 m 0 eV 331 keV 170 mum 170 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 7 +* G4Track Information: Particle = gamma, Track ID = 200, Parent ID = 190 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.38 mm -465 mum -2.45 m 34.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.38 mm -464 mum -2.45 m 3.47e-11 eV 34.6 keV 4.89 mum 4.89 mum Target eIoni + 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 = 206, Parent ID = 7 +* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 200 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -132 mum 78.9 mum -2.45 m 1.95 MeV 0 eV 0 fm 0 fm Target initStep - 1 113 mum 89.5 mum -2.45 m 1.32 MeV 623 keV 601 mum 601 mum Target eIoni - 2 111 mum 38.9 mum -2.45 m 766 keV 51.4 keV 78.7 mum 680 mum Target eBrem - 3 89.3 mum 66.7 mum -2.45 m 274 keV 161 keV 82.8 mum 763 mum Target eBrem - 4 95.3 mum 65.6 mum -2.45 m 0 eV 274 keV 130 mum 893 mum Target eIoni + 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 = 210, Parent ID = 206 +* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 190 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 89.3 mum 66.7 mum -2.45 m 331 keV 0 eV 0 fm 0 fm Target initStep - 1 457 mum 21.6 mum -2.45 m 0 eV 88 keV 407 mum 407 mum Target phot + 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 = e-, Track ID = 211, Parent ID = 210 +* G4Track Information: Particle = gamma, Track ID = 198, Parent ID = 190 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 457 mum 21.6 mum -2.45 m 243 keV 0 eV 0 fm 0 fm Target initStep - 1 462 mum 21 mum -2.45 m 0 eV 243 keV 109 mum 109 mum Target eIoni + 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 = gamma, Track ID = 209, Parent ID = 206 +* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 198 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 111 mum 38.9 mum -2.45 m 506 keV 0 eV 0 fm 0 fm Target initStep - 1 105 mum 17.4 mum -2.45 m 328 keV 0 eV 52 mum 52 mum Target compt - 2 2.96 mm -227 mum -2.45 m 321 keV 0 eV 3.51 mm 3.56 mm Target compt - 3 3.29 mm -307 mum -2.45 m 0 eV 88 keV 506 mum 4.07 mm Target phot + 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 = 214, Parent ID = 209 +* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 198 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.29 mm -307 mum -2.45 m 233 keV 0 eV 0 fm 0 fm Target initStep - 1 3.29 mm -308 mum -2.45 m 2.78e-11 eV 233 keV 102 mum 102 mum Target eIoni + 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 = e-, Track ID = 213, Parent ID = 209 +* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 190 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.96 mm -227 mum -2.45 m 6.3 keV 0 eV 0 fm 0 fm Target initStep - 1 2.96 mm -227 mum -2.45 m 4.34e-12 eV 6.3 keV 356 nm 356 nm Target eIoni + 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 = 212, Parent ID = 209 +* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 197 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 105 mum 17.4 mum -2.45 m 178 keV 0 eV 0 fm 0 fm Target initStep - 1 102 mum 16.1 mum -2.45 m 5.55e-11 eV 178 keV 68.5 mum 68.5 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -142 mum 121 mum -2.45 m 4.18 MeV 0 eV 0 fm 0 fm Target initStep - 1 -141 mum 121 mum -2.45 m 566 keV 0 eV 34.6 mum 34.6 mum Target compt - 2 1.46 cm 1.11 cm -2.44 m 267 keV 0 eV 1.89 cm 1.89 cm Target compt - 3 1.47 cm 1.12 cm -2.45 m 0 eV 88 keV 587 mum 1.95 cm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.47 cm 1.12 cm -2.45 m 179 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 cm 1.12 cm -2.45 m 0 eV 179 keV 68.7 mum 68.7 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.46 cm 1.11 cm -2.44 m 299 keV 0 eV 0 fm 0 fm Target initStep - 1 1.46 cm 1.11 cm -2.44 m 0 eV 299 keV 147 mum 147 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 215, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -141 mum 121 mum -2.45 m 3.61 MeV 0 eV 0 fm 0 fm Target initStep - 1 -456 mum 385 mum -2.45 m 2.77 MeV 845 keV 876 mum 876 mum Target eIoni - 2 -409 mum 232 mum -2.45 m 2.47 MeV 295 keV 296 mum 1.17 mm Target msc - 3 -546 mum 156 mum -2.45 m 67.4 keV 2.12 MeV 486 mum 1.66 mm Target eBrem - 4 -545 mum 156 mum -2.45 m 0 eV 67.4 keV 14.5 mum 1.67 mm Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 218, Parent ID = 215 +* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -546 mum 156 mum -2.45 m 288 keV 0 eV 0 fm 0 fm Target initStep - 1 -438 mum -1.43 mm -2.45 m 0 eV 88 keV 1.73 mm 1.73 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 219, Parent ID = 218 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -438 mum -1.43 mm -2.45 m 200 keV 0 eV 0 fm 0 fm Target initStep - 1 -438 mum -1.44 mm -2.45 m 0 eV 200 keV 81.2 mum 81.2 mum Target eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -145 mum 125 mum -2.45 m 2.34 MeV 0 eV 0 fm 0 fm Target initStep - 1 142 mum -335 mum -2.43 m 936 keV 0 eV 2.28 cm 2.28 cm Target compt - 2 1.17 cm -1.09 cm -2.41 m 0 eV 88 keV 2.08 cm 4.35 cm Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 5 +* G4Track Information: Particle = e+, Track ID = 237, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.17 cm -1.09 cm -2.41 m 848 keV 0 eV 0 fm 0 fm Target initStep - 1 1.18 cm -1.1 cm -2.41 m 511 keV 337 keV 384 mum 384 mum Target eIoni - 2 1.18 cm -1.1 cm -2.41 m 231 keV 280 keV 188 mum 572 mum Target eBrem - 3 1.18 cm -1.1 cm -2.41 m 0 eV 231 keV 101 mum 673 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 5 +* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 237 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 142 mum -335 mum -2.43 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 278 mum -320 mum -2.43 m 909 keV 495 keV 502 mum 502 mum Target eIoni - 2 353 mum -389 mum -2.43 m 542 keV 367 keV 399 mum 900 mum Target eIoni - 3 344 mum -398 mum -2.43 m 116 keV 426 keV 291 mum 1.19 mm Target eIoni - 4 345 mum -398 mum -2.43 m 0 eV 116 keV 34.9 mum 1.23 mm Target eIoni + 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 239 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 239 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 237 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 242, Parent ID = 238 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 5 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 244, Parent ID = 236 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 246, Parent ID = 244 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 244 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 243, Parent ID = 236 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 247, Parent ID = 243 +********************************************************************************************************* + +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 ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -146 mum 127 mum -2.45 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep - 1 -145 mum 127 mum -2.45 m 0 eV 88 keV 106 mum 106 mum Target phot + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -145 mum 127 mum -2.45 m 1.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 -141 mum -7.26 mum -2.45 m 721 keV 365 keV 438 mum 438 mum Target eIoni - 2 -145 mum -73.6 mum -2.45 m 280 keV 441 keV 350 mum 788 mum Target eIoni - 3 -151 mum -73.4 mum -2.45 m 5.55e-11 eV 280 keV 134 mum 922 mum Target eIoni + 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 ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 250, Parent ID = 249 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -124 mum 95.7 mum -2.51 m 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 -115 mum 78.9 mum -2.51 m 4.34e-13 eV 1.23 keV 77 mum 77 mum World eIoni + 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 251, Parent ID = 250 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 248, Parent ID = 4 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 254, 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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 3 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 3 +********************************************************************************************************* + +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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -32.2 mum -1.27 mum -2.86 m 10.5 keV 0 eV 0 fm 0 fm World initStep - 1 -673 mum -36.8 mum -2.86 m 9.23 keV 1.26 keV 798 mum 798 mum World eIoni - 2 -216 mum -18.9 mum -2.86 m 5.39 keV 3.84 keV 697 mum 1.49 mm World eIoni - 3 -242 mum -112 mum -2.86 m 2.08 keV 3.32 keV 435 mum 1.93 mm World eIoni - 4 -251 mum -104 mum -2.86 m 4.34e-13 eV 2.08 keV 166 mum 2.1 mm World eIoni + 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 >>> Event 0 0 trajectories stored in this event. ### Run 1 start. @@ -2176,807 +2383,1537 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm -2.91 m 1 TeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 0 fm -2.45 m 1e+03 GeV 116 keV 46 cm 46 cm World Transportation - 2 -0.0134 fm -0.00479 fm -2.4 m 1e+03 GeV 59.7 MeV 5 cm 51 cm Target Transportation - 3 16 mum -19.5 mum -1.88 m 1e+03 GeV 96.4 keV 51.8 cm 1.03 m Tracker MuIoni - 4 24.8 mum -30.1 mum -1.6 m 1e+03 GeV 58.4 keV 28.2 cm 1.31 m Tracker Transportation - 5 31 mum -37.6 mum -1.4 m 1e+03 GeV 156 keV 20 cm 1.51 m Chamber Transportation - 6 49.4 mum -60.8 mum -80 cm 1e+03 GeV 139 keV 60 cm 2.11 m Tracker Transportation - 7 55.5 mum -68.5 mum -60 cm 1e+03 GeV 140 keV 20 cm 2.31 m Chamber Transportation - 8 74.4 mum -90 mum -2.5 cm 1e+03 GeV 123 keV 57.5 cm 2.88 m Tracker MuIoni - 9 75.2 mum -90.9 mum 0 fm 1e+03 GeV 5.07 keV 2.5 cm 2.91 m Tracker Transportation - 10 75.9 mum -91.6 mum 1.85 cm 1e+03 GeV 14.8 keV 1.85 cm 2.93 m Chamber MuIoni - 11 81.9 mum -98.3 mum 20 cm 1e+03 GeV 114 keV 18.1 cm 3.11 m Chamber Transportation - 12 102 mum -120 mum 80 cm 1e+03 GeV 112 keV 60 cm 3.71 m Tracker Transportation - 13 109 mum -128 mum 1 m 1e+03 GeV 149 keV 20 cm 3.91 m Chamber Transportation - 14 129 mum -149 mum 1.6 m 1e+03 GeV 116 keV 60 cm 4.51 m Tracker Transportation - 15 136 mum -156 mum 1.8 m 1e+03 GeV 84.2 keV 20 cm 4.71 m Chamber Transportation - 16 136 mum -156 mum 1.8 m 1e+03 GeV 691 eV 2.54 mm 4.71 m Tracker MuIoni - 17 157 mum -178 mum 2.4 m 1e+03 GeV 119 keV 59.7 cm 5.31 m Tracker Transportation - 18 176 mum -197 mum 2.91 m 1e+03 GeV 98.2 keV 51 cm 5.82 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 161 mum -182 mum 2.52 m 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 190 mum -181 mum 2.52 m 2.17e-13 eV 1.58 keV 110 mum 110 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 164 mum -185 mum 2.59 m 2.08 keV 0 eV 0 fm 0 fm World initStep - 1 179 mum -228 mum 2.59 m 0 eV 2.08 keV 166 mum 166 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 168 mum -189 mum 2.7 m 2.79 keV 0 eV 0 fm 0 fm World initStep - 1 205 mum -109 mum 2.7 m 606 eV 2.19 keV 251 mum 251 mum World eIoni - 2 203 mum -114 mum 2.7 m 1.08e-13 eV 606 eV 32.2 mum 283 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 159 mum -180 mum 2.44 m 3.97 keV 0 eV 0 fm 0 fm World initStep - 1 280 mum -58.6 mum 2.44 m 1.95 keV 2.02 keV 344 mum 344 mum World eIoni - 2 284 mum -34.6 mum 2.44 m 4.34e-13 eV 1.95 keV 150 mum 494 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 140 mum -161 mum 1.92 m 1.1 keV 0 eV 0 fm 0 fm Tracker initStep - 1 124 mum -163 mum 1.92 m 0 eV 1.1 keV 65.9 mum 65.9 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 142 mum -162 mum 1.96 m 3.12 keV 0 eV 0 fm 0 fm Tracker initStep - 1 218 mum -262 mum 1.96 m 1.73 keV 1.39 keV 281 mum 281 mum Tracker eIoni - 2 241 mum -249 mum 1.96 m 2.17e-13 eV 1.73 keV 125 mum 407 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 150 mum -171 mum 2.2 m 4.41 keV 0 eV 0 fm 0 fm Tracker initStep - 1 120 mum -370 mum 2.2 m 3.39 keV 1.02 keV 374 mum 374 mum Tracker eIoni - 2 142 mum -306 mum 2.2 m 1.11 keV 2.29 keV 303 mum 678 mum Tracker eIoni - 3 141 mum -299 mum 2.2 m 0 eV 1.11 keV 66.5 mum 744 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 152 mum -173 mum 2.26 m 2.11 keV 0 eV 0 fm 0 fm Tracker initStep - 1 189 mum -201 mum 2.26 m 0 eV 2.11 keV 170 mum 170 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 151 mum -172 mum 2.22 m 1.95 keV 0 eV 0 fm 0 fm Tracker initStep - 1 176 mum -204 mum 2.22 m 0 eV 1.95 keV 150 mum 150 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 136 mum -156 mum 1.8 m 10.7 keV 0 eV 0 fm 0 fm Tracker initStep - 1 207 mum 535 mum 1.8 m 8.81 keV 1.91 keV 818 mum 818 mum Tracker eIoni - 2 500 mum 774 mum 1.8 m 6.64 keV 2.18 keV 665 mum 1.48 mm Tracker eIoni - 3 439 mum 458 mum 1.8 m 5.74 keV 898 eV 513 mum 2 mm Tracker eIoni - 4 677 mum 728 mum 1.8 m 2.04 keV 3.7 keV 456 mum 2.45 mm Tracker eIoni - 5 652 mum 738 mum 1.8 m 0 eV 2.04 keV 161 mum 2.61 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 133 mum -153 mum 1.7 m 8.95 keV 0 eV 0 fm 0 fm Chamber initStep - 1 124 mum -22.3 mum 1.7 m 5.35 keV 3.6 keV 470 mum 470 mum Chamber eIoni - 2 86.1 mum 17.2 mum 1.7 m 2.62 keV 2.73 keV 328 mum 798 mum Chamber eIoni - 3 87.5 mum 18.7 mum 1.7 m 8.67e-13 eV 2.62 keV 150 mum 948 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 131 mum -151 mum 1.66 m 3.08 keV 0 eV 0 fm 0 fm Chamber initStep - 1 128 mum -162 mum 1.66 m 4.34e-13 eV 3.08 keV 189 mum 189 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 132 mum -152 mum 1.67 m 39.1 keV 0 eV 0 fm 0 fm Chamber initStep - 1 463 mum -1.16 mm 1.67 m 33.8 keV 5.29 keV 2.38 mm 2.38 mm Chamber eIoni - 2 459 mum -781 mum 1.67 m 30.9 keV 2.94 keV 1.93 mm 4.31 mm Chamber eIoni - 3 -250 mum -522 mum 1.67 m 28.5 keV 2.41 keV 1.7 mm 6.01 mm Chamber eIoni - 4 -1.01 mm -478 mum 1.67 m 26.8 keV 1.62 keV 1.53 mm 7.54 mm Chamber eIoni - 5 -1.56 mm -898 mum 1.67 m 24.8 keV 2.04 keV 1.41 mm 8.95 mm Chamber eIoni - 6 -1.81 mm -1.18 mm 1.67 m 19.6 keV 5.21 keV 1.27 mm 1.02 cm Chamber eIoni - 7 -1.88 mm -746 mum 1.67 m 17.8 keV 1.75 keV 963 mum 1.12 cm Chamber eIoni - 8 -1.82 mm -815 mum 1.67 m 15.4 keV 2.43 keV 867 mum 1.21 cm Chamber eIoni - 9 -2.03 mm -716 mum 1.67 m 14.3 keV 1.06 keV 746 mum 1.28 cm Chamber eIoni - 10 -2.17 mm -865 mum 1.67 m 7.93 keV 6.41 keV 694 mum 1.35 cm Chamber eIoni - 11 -2.29 mm -846 mum 1.67 m 5.6 keV 2.33 keV 431 mum 1.39 cm Chamber eIoni - 12 -2.32 mm -817 mum 1.67 m 1.69 keV 3.91 keV 339 mum 1.43 cm Chamber eIoni - 13 -2.32 mm -817 mum 1.67 m 6.51e-13 eV 1.69 keV 81.9 mum 1.43 cm Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 133 mum -153 mum 1.71 m 1 keV 0 eV 0 fm 0 fm Chamber initStep - 1 130 mum -152 mum 1.71 m 0 eV 1 keV 40.9 mum 40.9 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 135 mum -155 mum 1.77 m 2.61 keV 0 eV 0 fm 0 fm Chamber initStep - 1 143 mum -159 mum 1.77 m 1.73e-12 eV 2.61 keV 149 mum 149 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 131 mum -151 mum 1.65 m 3.09 keV 0 eV 0 fm 0 fm Chamber initStep - 1 119 mum -152 mum 1.65 m 0 eV 3.09 keV 189 mum 189 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 134 mum -154 mum 1.74 m 7.24 keV 0 eV 0 fm 0 fm Chamber initStep - 1 218 mum -152 mum 1.74 m 4.89 keV 2.35 keV 405 mum 405 mum Chamber eIoni - 2 208 mum -166 mum 1.74 m 1.16 keV 3.73 keV 306 mum 711 mum Chamber eIoni - 3 208 mum -168 mum 1.74 m 0 eV 1.16 keV 49.4 mum 760 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 131 mum -151 mum 1.65 m 1.65 keV 0 eV 0 fm 0 fm Chamber initStep - 1 130 mum -156 mum 1.65 m 4.34e-13 eV 1.65 keV 79.2 mum 79.2 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 118 mum -138 mum 1.28 m 2.06 keV 0 eV 0 fm 0 fm Tracker initStep - 1 162 mum -146 mum 1.28 m 0 eV 2.06 keV 163 mum 163 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 112 mum -131 mum 1.09 m 4.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 42.9 mum -255 mum 1.09 m 3.16 keV 1.14 keV 367 mum 367 mum Tracker eIoni - 2 78.6 mum -358 mum 1.09 m 1.28 keV 1.88 keV 285 mum 652 mum Tracker eIoni - 3 72.2 mum -377 mum 1.09 m 0 eV 1.28 keV 81.5 mum 734 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 129 mum -149 mum 1.59 m 1.26 keV 0 eV 0 fm 0 fm Tracker initStep - 1 143 mum -135 mum 1.59 m 0 eV 1.26 keV 79.7 mum 79.7 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 110 mum -128 mum 1.02 m 6.06 keV 0 eV 0 fm 0 fm Tracker initStep - 1 7.71 mum 54.9 mum 1.02 m 4.11 keV 1.96 keV 477 mum 477 mum Tracker eIoni - 2 -58.9 mum 109 mum 1.02 m 1.36 keV 2.75 keV 354 mum 831 mum Tracker eIoni - 3 -63.5 mum 100 mum 1.02 m 0 eV 1.36 keV 88.2 mum 919 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 120 mum -140 mum 1.33 m 1.77 keV 0 eV 0 fm 0 fm Tracker initStep - 1 135 mum -108 mum 1.33 m 2.17e-13 eV 1.77 keV 130 mum 130 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 105 mum -123 mum 87.7 cm 1.12 keV 0 eV 0 fm 0 fm Chamber initStep - 1 106 mum -120 mum 87.7 cm 0 eV 1.12 keV 47.1 mum 47.1 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 106 mum -125 mum 91.3 cm 4.33 keV 0 eV 0 fm 0 fm Chamber initStep - 1 99.7 mum -97.9 mum 91.3 cm 682 eV 3.64 keV 277 mum 277 mum Chamber eIoni - 2 99.8 mum -97.3 mum 91.3 cm 0 eV 682 eV 25.7 mum 303 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 105 mum -123 mum 87.1 cm 1.43 keV 0 eV 0 fm 0 fm Chamber initStep - 1 108 mum -125 mum 87.1 cm 2.17e-13 eV 1.43 keV 64.7 mum 64.7 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 105 mum -124 mum 89 cm 1.11 keV 0 eV 0 fm 0 fm Chamber initStep - 1 104 mum -127 mum 89 cm 0 eV 1.11 keV 46.7 mum 46.7 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 103 mum -121 mum 82.2 cm 2.07 keV 0 eV 0 fm 0 fm Chamber initStep - 1 109 mum -124 mum 82.2 cm 0 eV 2.07 keV 108 mum 108 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 103 mum -121 mum 82 cm 1.84 keV 0 eV 0 fm 0 fm Chamber initStep - 1 98.8 mum -125 mum 82 cm 2.17e-13 eV 1.84 keV 91.5 mum 91.5 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 109 mum -128 mum 99.4 cm 1.04 keV 0 eV 0 fm 0 fm Chamber initStep - 1 111 mum -126 mum 99.4 cm 0 eV 1.04 keV 43 mum 43 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 106 mum -124 mum 89.9 cm 6.54 keV 0 eV 0 fm 0 fm Chamber initStep - 1 117 mum -49.1 mum 89.9 cm 4.85 keV 1.69 keV 377 mum 377 mum Chamber eIoni - 2 130 mum -42.8 mum 89.9 cm 0 eV 4.85 keV 304 mum 682 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 85.6 mum -102 mum 31.2 cm 1.33 keV 0 eV 0 fm 0 fm Tracker initStep - 1 65.9 mum -112 mum 31.2 cm 4.34e-13 eV 1.33 keV 85.7 mum 85.7 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 90.7 mum -108 mum 46.2 cm 6.78 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -133 mum -156 mum 46.2 cm 4.04 keV 2.75 keV 522 mum 522 mum Tracker eIoni - 2 -164 mum -234 mum 46.2 cm 2.67 keV 1.37 keV 349 mum 872 mum Tracker eIoni - 3 -216 mum -280 mum 46.2 cm 0 eV 2.67 keV 238 mum 1.11 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 93.4 mum -111 mum 54.2 cm 1.77 keV 0 eV 0 fm 0 fm Tracker initStep - 1 63.3 mum -93.4 mum 54.2 cm 0 eV 1.77 keV 130 mum 130 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 85.1 mum -102 mum 29.7 cm 3.73 keV 0 eV 0 fm 0 fm Tracker initStep - 1 12.3 mum -206 mum 29.7 cm 1.6 keV 2.13 keV 329 mum 329 mum Tracker eIoni - 2 33.8 mum -212 mum 29.7 cm 0 eV 1.6 keV 111 mum 440 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 96.2 mum -114 mum 62.3 cm 2.04 keV 0 eV 0 fm 0 fm Tracker initStep - 1 126 mum -81.2 mum 62.3 cm 0 eV 2.04 keV 161 mum 161 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 80.8 mum -97.2 mum 16.9 cm 1.44 keV 0 eV 0 fm 0 fm Chamber initStep - 1 84.7 mum -95.2 mum 16.9 cm 0 eV 1.44 keV 65.8 mum 65.8 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 79.3 mum -95.4 mum 12.2 cm 2.53 keV 0 eV 0 fm 0 fm Chamber initStep - 1 75.4 mum -103 mum 12.2 cm 0 eV 2.53 keV 143 mum 143 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 79.1 mum -95.2 mum 11.5 cm 3.83 keV 0 eV 0 fm 0 fm Chamber initStep - 1 73.3 mum -109 mum 11.5 cm 0 eV 3.83 keV 247 mum 247 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 80.3 mum -96.6 mum 15.2 cm 1.88 keV 0 eV 0 fm 0 fm Chamber initStep - 1 77.2 mum -102 mum 15.2 cm 0 eV 1.88 keV 94.8 mum 94.8 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 75.9 mum -91.6 mum 1.85 cm 103 keV 0 eV 0 fm 0 fm Chamber initStep - 1 -5.96 mm -1.19 mm 1.81 cm 96.6 keV 6.72 keV 1.07 cm 1.07 cm Chamber eIoni - 2 -9.02 mm 2.37 mm 1.91 cm 75.3 keV 21.2 keV 9.65 mm 2.04 cm Chamber eIoni - 3 -1.04 cm 4.52 mm 1.67 cm 67.8 keV 7.51 keV 6.47 mm 2.69 cm Chamber eIoni - 4 -9.87 mm 2.94 mm 1.44 cm 59.1 keV 8.68 keV 5.5 mm 3.24 cm Chamber eIoni - 5 -9.35 mm 4.06 mm 1.6 cm 44 keV 15.1 keV 4.44 mm 3.68 cm Chamber eIoni - 6 -9.67 mm 2.69 mm 1.6 cm 38.4 keV 5.61 keV 2.82 mm 3.96 cm Chamber eIoni - 7 -1.02 cm 1.99 mm 1.69 cm 36.1 keV 2.27 keV 2.32 mm 4.19 cm Chamber eIoni - 8 -1.01 cm 927 mum 1.68 cm 33.2 keV 2.93 keV 2.11 mm 4.41 cm Chamber eIoni - 9 -1.1 cm 879 mum 1.67 cm 30.2 keV 2.98 keV 1.88 mm 4.59 cm Chamber eIoni - 10 -1.11 cm 527 mum 1.72 cm 17.8 keV 12.4 keV 1.65 mm 4.76 cm Chamber eIoni - 11 -1.1 cm 775 mum 1.7 cm 16.9 keV 928 eV 868 mum 4.85 cm Chamber eIoni - 12 -1.13 cm 719 mum 1.67 cm 14.4 keV 2.55 keV 820 mum 4.93 cm Chamber eIoni - 13 -1.1 cm 887 mum 1.68 cm 12.6 keV 1.81 keV 696 mum 5 cm Chamber eIoni - 14 -1.08 cm 818 mum 1.69 cm 11.3 keV 1.29 keV 616 mum 5.06 cm Chamber eIoni - 15 -1.1 cm 792 mum 1.7 cm 9.02 keV 2.25 keV 562 mum 5.12 cm Chamber eIoni - 16 -1.1 cm 740 mum 1.71 cm 6.23 keV 2.79 keV 473 mum 5.16 cm Chamber eIoni - 17 -1.1 cm 666 mum 1.71 cm 2.88 keV 3.35 keV 365 mum 5.2 cm Chamber eIoni - 18 -1.1 cm 667 mum 1.71 cm 4.34e-13 eV 2.88 keV 171 mum 5.22 cm Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 74.4 mum -90 mum -2.5 cm 8.65 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -98.5 mum 448 mum -2.52 cm 7.74 keV 911 eV 653 mum 653 mum Tracker eIoni - 2 -207 mum 161 mum -2.56 cm 6.28 keV 1.46 keV 588 mum 1.24 mm Tracker eIoni - 3 -517 mum 16 mum -2.57 cm 4.38 keV 1.9 keV 491 mum 1.73 mm Tracker eIoni - 4 -456 mum -34.4 mum -2.55 cm 2.85 keV 1.53 keV 372 mum 2.1 mm Tracker eIoni - 5 -470 mum -24.2 mum -2.54 cm 0 eV 2.85 keV 257 mum 2.36 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 58.2 mum -71.7 mum -51.7 cm 1.25 keV 0 eV 0 fm 0 fm Tracker initStep - 1 76.9 mum -66 mum -51.7 cm 0 eV 1.25 keV 78.5 mum 78.5 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 60 mum -73.7 mum -46.1 cm 1.72 keV 0 eV 0 fm 0 fm Tracker initStep - 1 92.6 mum -79.9 mum -46.1 cm 0 eV 1.72 keV 124 mum 124 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 52.2 mum -64.4 mum -70.6 cm 1.02 keV 0 eV 0 fm 0 fm Chamber initStep - 1 49.6 mum -63.4 mum -70.6 cm 0 eV 1.02 keV 41.5 mum 41.5 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 50.2 mum -61.9 mum -77.2 cm 3.56 keV 0 eV 0 fm 0 fm Chamber initStep - 1 61.3 mum -53.9 mum -77.2 cm 8.67e-13 eV 3.56 keV 228 mum 228 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 49.8 mum -61.3 mum -78.7 cm 2.01 keV 0 eV 0 fm 0 fm Chamber initStep - 1 54.6 mum -65.5 mum -78.7 cm 0 eV 2.01 keV 104 mum 104 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 52.5 mum -64.8 mum -69.6 cm 1.62 keV 0 eV 0 fm 0 fm Chamber initStep - 1 50.8 mum -69.5 mum -69.6 cm 0 eV 1.62 keV 76.6 mum 76.6 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 51.9 mum -64 mum -71.7 cm 4.99 keV 0 eV 0 fm 0 fm Chamber initStep - 1 70.8 mum -101 mum -71.7 cm 2.62 keV 2.37 keV 311 mum 311 mum Chamber eIoni - 2 62.7 mum -105 mum -71.7 cm 0 eV 2.62 keV 150 mum 461 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 51.1 mum -63 mum -74.3 cm 2.87 keV 0 eV 0 fm 0 fm Chamber initStep - 1 40.8 mum -62.6 mum -74.3 cm 0 eV 2.87 keV 170 mum 170 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 54.3 mum -67.1 mum -63.7 cm 1.79 keV 0 eV 0 fm 0 fm Chamber initStep - 1 59.6 mum -68.8 mum -63.7 cm 2.17e-13 eV 1.79 keV 88.7 mum 88.7 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 52.8 mum -65.2 mum -68.6 cm 8.65 keV 0 eV 0 fm 0 fm Chamber initStep - 1 73.1 mum -100 mum -68.6 cm 4.9 keV 3.75 keV 458 mum 458 mum Chamber eIoni - 2 49.9 mum -55.9 mum -68.6 cm 2.74 keV 2.16 keV 307 mum 765 mum Chamber eIoni - 3 53.5 mum -62.5 mum -68.6 cm 0 eV 2.74 keV 159 mum 924 mum Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 41.1 mum -50.4 mum -1.07 m 1.17 keV 0 eV 0 fm 0 fm Tracker initStep - 1 29.8 mum -37 mum -1.07 m 2.17e-13 eV 1.17 keV 71.7 mum 71.7 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 44.6 mum -54.8 mum -95.5 cm 1.81 keV 0 eV 0 fm 0 fm Tracker initStep - 1 57.3 mum -88.9 mum -95.5 cm 0 eV 1.81 keV 135 mum 135 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 36.9 mum -45 mum -1.21 m 1.25 keV 0 eV 0 fm 0 fm Tracker initStep - 1 21.2 mum -33.2 mum -1.21 m 6.51e-13 eV 1.25 keV 79 mum 79 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 33 mum -40.1 mum -1.34 m 1.68 keV 0 eV 0 fm 0 fm Tracker initStep - 1 49.2 mum -67.5 mum -1.34 m 0 eV 1.68 keV 120 mum 120 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 34.1 mum -41.5 mum -1.3 m 2.27 keV 0 eV 0 fm 0 fm Tracker initStep - 1 67.4 mum -82.9 mum -1.3 m 0 eV 2.27 keV 190 mum 190 mum Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 28.2 mum -34.2 mum -1.49 m 2.14 keV 0 eV 0 fm 0 fm Chamber initStep - 1 34.4 mum -37.1 mum -1.49 m 0 eV 2.14 keV 113 mum 113 mum Chamber eIoni + 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 26.8 mum -32.5 mum -1.54 m 1.6 keV 0 eV 0 fm 0 fm Chamber initStep - 1 23.3 mum -35.9 mum -1.54 m 0 eV 1.6 keV 75.5 mum 75.5 mum Chamber eIoni + 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 29 mum -35.2 mum -1.46 m 2.1 keV 0 eV 0 fm 0 fm Chamber initStep - 1 24.3 mum -39.9 mum -1.46 m 0 eV 2.1 keV 111 mum 111 mum Chamber eIoni + 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 26.2 mum -31.9 mum -1.55 m 1.08 keV 0 eV 0 fm 0 fm Chamber initStep - 1 23.4 mum -33 mum -1.55 m 6.51e-13 eV 1.08 keV 45 mum 45 mum Chamber eIoni + 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 29.5 mum -35.8 mum -1.45 m 2.16 keV 0 eV 0 fm 0 fm Chamber initStep - 1 30.8 mum -29 mum -1.45 m 4.34e-13 eV 2.16 keV 115 mum 115 mum Chamber eIoni + 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 25.4 mum -30.9 mum -1.58 m 2.7 keV 0 eV 0 fm 0 fm Chamber initStep - 1 18.5 mum -37.4 mum -1.58 m 4.34e-13 eV 2.7 keV 156 mum 156 mum Chamber eIoni + 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 26.9 mum -32.6 mum -1.53 m 2.15 keV 0 eV 0 fm 0 fm Chamber initStep - 1 28.1 mum -25.9 mum -1.53 m 0 eV 2.15 keV 114 mum 114 mum Chamber eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 26.1 mum -31.6 mum -1.56 m 1.19 keV 0 eV 0 fm 0 fm Chamber initStep - 1 22.7 mum -31.2 mum -1.56 m 0 eV 1.19 keV 51.2 mum 51.2 mum Chamber eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 23.6 mum -28.7 mum -1.64 m 6.08 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -241 mum 34.6 mum -1.64 m 5.15 keV 936 eV 478 mum 478 mum Tracker eIoni - 2 -286 mum -35.5 mum -1.64 m 1.72 keV 3.43 keV 420 mum 899 mum Tracker eIoni - 3 -290 mum -7.04 mum -1.64 m 4.34e-13 eV 1.72 keV 124 mum 1.02 mm Tracker eIoni + 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 ********************************************************************************************************* -* 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 16 mum -19.5 mum -1.88 m 85 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.72 cm -8.94 mm -1.88 m 77.2 keV 7.76 keV 2.09 cm 2.09 cm Tracker eIoni - 2 -1.8 cm -2.53 cm -1.88 m 66.9 keV 10.4 keV 1.76 cm 3.85 cm Tracker eIoni - 3 -2.65 cm -2.19 cm -1.88 m 59.6 keV 7.25 keV 1.37 cm 5.22 cm Tracker eIoni - 4 -3.41 cm -2.75 cm -1.87 m 53.8 keV 5.84 keV 1.12 cm 6.34 cm Tracker eIoni - 5 -4.02 cm -2.51 cm -1.87 m 44.8 keV 8.99 keV 9.38 mm 7.28 cm Tracker eIoni - 6 -4.2 cm -2.8 cm -1.86 m 39.4 keV 5.46 keV 6.84 mm 7.96 cm Tracker eIoni - 7 -4.66 cm -2.9 cm -1.86 m 33.4 keV 5.9 keV 5.49 mm 8.51 cm Tracker eIoni - 8 -4.7 cm -2.87 cm -1.86 m 31 keV 2.42 keV 4.17 mm 8.93 cm Tracker eIoni - 9 -4.73 cm -2.95 cm -1.85 m 28.2 keV 2.79 keV 3.67 mm 9.3 cm Tracker eIoni - 10 -4.99 cm -2.9 cm -1.85 m 24.4 keV 3.88 keV 3.15 mm 9.61 cm Tracker eIoni - 11 -5.05 cm -2.79 cm -1.85 m 18.5 keV 5.85 keV 2.49 mm 9.86 cm Tracker eIoni - 12 -5.06 cm -2.72 cm -1.85 m 15.9 keV 2.59 keV 1.64 mm 10 cm Tracker eIoni - 13 -5.06 cm -2.61 cm -1.85 m 14.3 keV 1.6 keV 1.33 mm 10.2 cm Tracker eIoni - 14 -5.1 cm -2.55 cm -1.85 m 13.3 keV 985 eV 1.15 mm 10.3 cm Tracker eIoni - 15 -5.14 cm -2.51 cm -1.85 m 9.71 keV 3.62 keV 1.06 mm 10.4 cm Tracker eIoni - 16 -5.19 cm -2.53 cm -1.85 m 8.19 keV 1.52 keV 733 mum 10.5 cm Tracker eIoni - 17 -5.22 cm -2.48 cm -1.85 m 6.59 keV 1.61 keV 619 mum 10.5 cm Tracker eIoni - 18 -5.2 cm -2.48 cm -1.85 m 5.31 keV 1.27 keV 510 mum 10.6 cm Tracker eIoni - 19 -5.21 cm -2.51 cm -1.85 m 3.99 keV 1.32 keV 431 mum 10.6 cm Tracker eIoni - 20 -5.19 cm -2.51 cm -1.85 m 1.91 keV 2.08 keV 346 mum 10.6 cm Tracker eIoni - 21 -5.19 cm -2.51 cm -1.85 m 4.34e-13 eV 1.91 keV 146 mum 10.7 cm Tracker eIoni + 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 + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.07 mum -4.96 mum -2.27 m 4.5 keV 0 eV 0 fm 0 fm Tracker initStep - 1 168 mum -29.7 mum -2.27 m 662 eV 3.84 keV 380 mum 380 mum Tracker eIoni - 2 161 mum -31.6 mum -2.27 m 0 eV 662 eV 35.5 mum 415 mum Tracker eIoni + 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 ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 0 fm 0 fm -2.44 m 2.41 MeV 0 eV 0 fm 0 fm Target initStep - 1 249 mum -172 mum -2.44 m 1.79 MeV 617 keV 680 mum 680 mum Target eIoni - 2 104 mum -263 mum -2.44 m 1.29 MeV 498 keV 573 mum 1.25 mm Target eIoni - 3 176 mum -239 mum -2.44 m 704 keV 589 keV 480 mum 1.73 mm Target eIoni - 4 211 mum -295 mum -2.44 m 338 keV 366 keV 346 mum 2.08 mm Target eIoni - 5 211 mum -285 mum -2.44 m 0 eV 338 keV 175 mum 2.26 mm Target eIoni + 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 ********************************************************************************************************* * 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.42 m 9.41 MeV 0 eV 0 fm 0 fm Target initStep - 1 -444 mum 755 mum -2.42 m 4.67 MeV 1.47 MeV 1.34 mm 1.34 mm Target eBrem - 2 -908 mum 762 mum -2.42 m 3.4 MeV 556 keV 495 mum 1.84 mm Target eBrem - 3 -1.29 mm 436 mum -2.42 m 2.41 MeV 989 keV 843 mum 2.68 mm Target eIoni - 4 -1.57 mm 616 mum -2.42 m 1.63 MeV 778 keV 681 mum 3.36 mm Target eIoni - 5 -1.48 mm 701 mum -2.42 m 1.14 MeV 497 keV 545 mum 3.9 mm Target eIoni - 6 -1.49 mm 713 mum -2.42 m 673 keV 23.4 keV 23.7 mum 3.93 mm Target eBrem - 7 -1.54 mm 746 mum -2.42 m 252 keV 421 keV 336 mum 4.26 mm Target eIoni - 8 -1.53 mm 750 mum -2.42 m 0 eV 252 keV 115 mum 4.38 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.49 mm 713 mum -2.42 m 442 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.05 cm -5.84 mm -2.41 m 0 eV 88 keV 1.45 cm 1.45 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 74 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.05 cm -5.84 mm -2.41 m 354 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.05 cm -5.85 mm -2.41 m 0 eV 354 keV 187 mum 187 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -908 mum 762 mum -2.42 m 712 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.01 mm 728 mum -2.42 m 0 eV 88 keV 115 mum 115 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.01 mm 728 mum -2.42 m 624 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.03 mm 697 mum -2.42 m 138 keV 486 keV 321 mum 321 mum Target eIoni - 2 -1.03 mm 698 mum -2.42 m 0 eV 138 keV 46.1 mum 367 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -444 mum 755 mum -2.42 m 3.27 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.69 mm 2.03 mm -2.42 m 0 eV 0 eV 9.22 mm 9.22 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 78, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.69 mm 2.03 mm -2.42 m 514 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.72 mm 2.03 mm -2.42 m 0 eV 514 keV 280 mum 280 mum Target eIoni - 2 -8.72 mm 2.03 mm -2.42 m 0 eV 0 eV 0 fm 280 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 80, Parent ID = 78 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.72 mm 2.03 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.98 mm 2.88 mm -2.42 m 0 eV 88 keV 1.8 mm 1.8 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 80 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.98 mm 2.88 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.99 mm 2.89 mm -2.42 m 5.55e-11 eV 423 keV 235 mum 235 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 78 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.72 mm 2.03 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.37 mm 920 mum -2.42 m 484 keV 0 eV 2.35 mm 2.35 mm Target compt - 2 -7.56 mm 438 mum -2.42 m 407 keV 0 eV 2.2 mm 4.55 mm Target compt - 3 -6.01 mm 522 mum -2.42 m 0 eV 88 keV 1.88 mm 6.43 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.01 mm 522 mum -2.42 m 319 keV 0 eV 0 fm 0 fm Target initStep - 1 -6 mm 522 mum -2.42 m 0 eV 319 keV 162 mum 162 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.56 mm 438 mum -2.42 m 76.2 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.56 mm 437 mum -2.42 m 1.39e-11 eV 76.2 keV 17.7 mum 17.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.37 mm 920 mum -2.42 m 27.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.37 mm 920 mum -2.42 m 1.04e-11 eV 27.3 keV 3.35 mum 3.35 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.69 mm 2.03 mm -2.42 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.77 mm 2.01 mm -2.42 m 278 keV 530 keV 94.6 mum 94.6 mum Target eBrem - 2 -8.77 mm 2.01 mm -2.42 m 5.55e-11 eV 278 keV 133 mum 227 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 85, Parent ID = 77 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.77 mm 2.01 mm -2.42 m 926 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.13 cm 156 mum -2.42 m 591 keV 0 eV 1.33 cm 1.33 cm Target compt - 2 -2.5 cm -4.43 mm -2.42 m 591 keV 0 eV 5.91 mm 1.92 cm Target Transportation - 3 -32 cm -36.8 cm -2.4 m 591 keV 0 eV 46.9 cm 48.8 cm World Transportation - 4 -1.97 m -2.4 m -2.28 m 591 keV 0 eV 2.62 m 3.11 m Tracker Transportation - 5 -2.38 m -2.91 m -2.25 m 591 keV 0 eV 65.8 cm 3.77 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 85 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.13 cm 156 mum -2.42 m 335 keV 0 eV 0 fm 0 fm World initStep - 1 -2.13 cm 156 mum -2.42 m 335 keV 0 eV -0 fm 0 fm World Transportation - 2 -2.13 cm 162 mum -2.42 m 328 keV 7.07 keV 9.76 mum 9.76 mum Target msc - 3 -2.13 cm 172 mum -2.42 m 0 eV 328 keV 168 mum 178 mum Target eIoni + 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 >>> 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 3d5731f6df..bd3c017857 100644 --- a/examples/novice/N02/include/ExN02ChamberParameterisation.hh +++ b/examples/novice/N02/include/ExN02ChamberParameterisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02ChamberParameterisation.hh,v 1.5 2001/10/11 12:32:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02ChamberParameterisation.hh,v 1.6 2002/01/09 17:24:08 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // A parameterisation that describes a series of boxes along Z diff --git a/examples/novice/N02/include/ExN02DetectorConstruction.hh b/examples/novice/N02/include/ExN02DetectorConstruction.hh index 47160999a9..aba3cb86d7 100644 --- a/examples/novice/N02/include/ExN02DetectorConstruction.hh +++ b/examples/novice/N02/include/ExN02DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorConstruction.hh,v 1.6 2001/11/05 08:24:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02DetectorConstruction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02DetectorMessenger.hh b/examples/novice/N02/include/ExN02DetectorMessenger.hh index 3a627a041d..f7b0eca6b6 100644 --- a/examples/novice/N02/include/ExN02DetectorMessenger.hh +++ b/examples/novice/N02/include/ExN02DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorMessenger.hh,v 1.5 2001/10/11 12:32:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02DetectorMessenger.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02EventAction.hh b/examples/novice/N02/include/ExN02EventAction.hh index 24d072e2af..3fc469d372 100644 --- a/examples/novice/N02/include/ExN02EventAction.hh +++ b/examples/novice/N02/include/ExN02EventAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02EventAction.hh,v 1.6 2001/10/11 12:32:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02EventAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02MagneticField.hh b/examples/novice/N02/include/ExN02MagneticField.hh index 81521d4fb0..a6eaa891fa 100644 --- a/examples/novice/N02/include/ExN02MagneticField.hh +++ b/examples/novice/N02/include/ExN02MagneticField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02MagneticField.hh,v 1.5 2001/10/11 12:32:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02MagneticField.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/novice/N02/include/ExN02PhysicsList.hh b/examples/novice/N02/include/ExN02PhysicsList.hh index 1c7feabca6..1fed981377 100644 --- a/examples/novice/N02/include/ExN02PhysicsList.hh +++ b/examples/novice/N02/include/ExN02PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02PhysicsList.hh,v 1.9 2001/10/11 12:32:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02PhysicsList.hh,v 1.10 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh b/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh index d4fa762832..27d04accda 100644 --- a/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh +++ b/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02PrimaryGeneratorAction.hh,v 1.5 2001/10/11 12:32:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02PrimaryGeneratorAction.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02RunAction.hh b/examples/novice/N02/include/ExN02RunAction.hh index 5b4d80bdd4..422b1b2ba1 100644 --- a/examples/novice/N02/include/ExN02RunAction.hh +++ b/examples/novice/N02/include/ExN02RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02RunAction.hh,v 1.6 2001/10/11 12:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02RunAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02SteppingAction.hh b/examples/novice/N02/include/ExN02SteppingAction.hh index a66e3e775e..d4ccd2c604 100644 --- a/examples/novice/N02/include/ExN02SteppingAction.hh +++ b/examples/novice/N02/include/ExN02SteppingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02SteppingAction.hh,v 1.6 2001/10/11 12:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02SteppingAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02SteppingVerbose.hh b/examples/novice/N02/include/ExN02SteppingVerbose.hh index 16a00accc0..ac38a60e5f 100644 --- a/examples/novice/N02/include/ExN02SteppingVerbose.hh +++ b/examples/novice/N02/include/ExN02SteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02SteppingVerbose.hh,v 1.6 2001/10/11 12:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02SteppingVerbose.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/novice/N02/include/ExN02TrackerHit.hh b/examples/novice/N02/include/ExN02TrackerHit.hh index a1f0da2e05..9805a23c9c 100644 --- a/examples/novice/N02/include/ExN02TrackerHit.hh +++ b/examples/novice/N02/include/ExN02TrackerHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerHit.hh,v 1.5 2001/10/11 12:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02TrackerHit.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02TrackerSD.hh b/examples/novice/N02/include/ExN02TrackerSD.hh index c1e46c5426..540f1c8541 100644 --- a/examples/novice/N02/include/ExN02TrackerSD.hh +++ b/examples/novice/N02/include/ExN02TrackerSD.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerSD.hh,v 1.5 2001/10/11 12:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02TrackerSD.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02VisManager.hh b/examples/novice/N02/include/ExN02VisManager.hh index 6c271827c4..9432ded329 100644 --- a/examples/novice/N02/include/ExN02VisManager.hh +++ b/examples/novice/N02/include/ExN02VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02VisManager.hh,v 1.5 2001/10/11 12:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02VisManager.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N02/src/ExN02ChamberParameterisation.cc b/examples/novice/N02/src/ExN02ChamberParameterisation.cc index 6790c4a130..44d272f908 100644 --- a/examples/novice/N02/src/ExN02ChamberParameterisation.cc +++ b/examples/novice/N02/src/ExN02ChamberParameterisation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02ChamberParameterisation.cc,v 1.6 2001/10/11 12:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02ChamberParameterisation.cc,v 1.7 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02DetectorConstruction.cc b/examples/novice/N02/src/ExN02DetectorConstruction.cc index c229c8fab7..b5ed482e00 100644 --- a/examples/novice/N02/src/ExN02DetectorConstruction.cc +++ b/examples/novice/N02/src/ExN02DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorConstruction.cc,v 1.10 2001/11/05 08:24:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02DetectorConstruction.cc,v 1.11 2002/01/09 17:24:09 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 9447b22ad5..530347e62a 100644 --- a/examples/novice/N02/src/ExN02DetectorMessenger.cc +++ b/examples/novice/N02/src/ExN02DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorMessenger.cc,v 1.6 2001/10/11 12:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02DetectorMessenger.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02EventAction.cc b/examples/novice/N02/src/ExN02EventAction.cc index 375ea156db..ff9f603c3a 100644 --- a/examples/novice/N02/src/ExN02EventAction.cc +++ b/examples/novice/N02/src/ExN02EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02EventAction.cc,v 1.7 2001/10/11 12:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02EventAction.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02MagneticField.cc b/examples/novice/N02/src/ExN02MagneticField.cc index 11bec188ed..55a33d14a3 100644 --- a/examples/novice/N02/src/ExN02MagneticField.cc +++ b/examples/novice/N02/src/ExN02MagneticField.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02MagneticField.cc,v 1.6 2001/10/11 12:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02MagneticField.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // User Field class implementation. // diff --git a/examples/novice/N02/src/ExN02PhysicsList.cc b/examples/novice/N02/src/ExN02PhysicsList.cc index cba4ef26cc..068b2d0bfa 100644 --- a/examples/novice/N02/src/ExN02PhysicsList.cc +++ b/examples/novice/N02/src/ExN02PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02PhysicsList.cc,v 1.12 2001/10/11 12:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02PhysicsList.cc,v 1.13 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 8813a6240e..ffcb3f1c5b 100644 --- a/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc +++ b/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02PrimaryGeneratorAction.cc,v 1.5 2001/10/11 12:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02PrimaryGeneratorAction.cc,v 1.6 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02RunAction.cc b/examples/novice/N02/src/ExN02RunAction.cc index cbf4d2b575..fa4791b379 100644 --- a/examples/novice/N02/src/ExN02RunAction.cc +++ b/examples/novice/N02/src/ExN02RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02RunAction.cc,v 1.6 2001/10/11 12:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02RunAction.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02SteppingAction.cc b/examples/novice/N02/src/ExN02SteppingAction.cc index f148e0c524..f22ed474ba 100644 --- a/examples/novice/N02/src/ExN02SteppingAction.cc +++ b/examples/novice/N02/src/ExN02SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02SteppingAction.cc,v 1.7 2001/11/05 08:24:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02SteppingAction.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02SteppingVerbose.cc b/examples/novice/N02/src/ExN02SteppingVerbose.cc index 96d3130453..ac7007e832 100644 --- a/examples/novice/N02/src/ExN02SteppingVerbose.cc +++ b/examples/novice/N02/src/ExN02SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02SteppingVerbose.cc,v 1.8 2001/10/11 12:32:38 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02SteppingVerbose.cc,v 1.9 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02TrackerHit.cc b/examples/novice/N02/src/ExN02TrackerHit.cc index dd524ff5d6..0c311a5b36 100644 --- a/examples/novice/N02/src/ExN02TrackerHit.cc +++ b/examples/novice/N02/src/ExN02TrackerHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerHit.cc,v 1.6 2001/10/11 12:32:38 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02TrackerHit.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....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 caf7b9e6d2..1db2549118 100644 --- a/examples/novice/N02/src/ExN02TrackerSD.cc +++ b/examples/novice/N02/src/ExN02TrackerSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerSD.cc,v 1.5 2001/10/11 12:32:38 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02TrackerSD.cc,v 1.6 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02VisManager.cc b/examples/novice/N02/src/ExN02VisManager.cc index 6b2641bc7f..b86b9d215e 100644 --- a/examples/novice/N02/src/ExN02VisManager.cc +++ b/examples/novice/N02/src/ExN02VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02VisManager.cc,v 1.7 2001/11/15 13:09:54 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN02VisManager.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/novice/N03/History b/examples/novice/N03/History index f9066a5ad0..8a2411b6df 100644 --- a/examples/novice/N03/History +++ b/examples/novice/N03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.46 2001/11/27 11:10:31 maire Exp $ +$Id: History,v 1.50 2002/06/25 10:19:41 ribon Exp $ -------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +25-06-02 ribon (exampleN03-V04-00-02) +- fixed paths to macros in visTutor/gui.mac. + +07-03-02 mma (exampleN03-V04-00-01) +- remove cutForGamma, cutForElectron ..etc.. + +14-02-02 mma (exampleN03-V04-00-00) +- macros for em exercices 27-11-01 mma (exampleN03-V03-02-07) - DetectorConstruction: Vacuum is the default material. diff --git a/examples/novice/N03/exampleN03.cc b/examples/novice/N03/exampleN03.cc index 5dfc31c13a..61e2de7f1a 100644 --- a/examples/novice/N03/exampleN03.cc +++ b/examples/novice/N03/exampleN03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN03.cc,v 1.15 2001/10/24 11:45:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: exampleN03.cc,v 1.16 2002/01/09 17:24:10 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N03/exampleN03.large_N.in b/examples/novice/N03/exampleN03.large_N.in index ac0fa475ea..b0f759b2fb 100644 --- a/examples/novice/N03/exampleN03.large_N.in +++ b/examples/novice/N03/exampleN03.large_N.in @@ -22,6 +22,7 @@ /calor/setNbOfLayers 30 /calor/setSizeYZ 1.5 m /calor/update +# /gun/particle gamma /gun/energy 500 MeV /event/printModulo 500 diff --git a/examples/novice/N03/exampleN03.out b/examples/novice/N03/exampleN03.out index f4ac950625..c453744834 100644 --- a/examples/novice/N03/exampleN03.out +++ b/examples/novice/N03/exampleN03.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -70,6 +70,8 @@ Current available graphics systems are: ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of Lead + 5mm of liquidArgon ] ------------------------------------------------------------ + +phot: Total cross sections from Sandia parametrisation. ExN03PhysicsList::SetCuts:CutLength : 1 mm conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. @@ -78,11 +80,7 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me 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. + PhysicsTables from 1 keV to 100 GeV in 80 bins. msc: Tables of transport mean free paths. New model of MSC , computes the lateral @@ -168,10 +166,10 @@ Cut in energy Current couple of seeds = 9876, 54321 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 269.904 MeV total track length: 19.1751 cm - Gap: total energy: 14.6003 MeV total track length: 7.40188 cm + Absorber: total energy: 279.411 MeV total track length: 18.8834 cm + Gap: total energy: 12.3279 MeV total track length: 6.12525 cm - 9 hits are stored in ExN03CalorHitsCollection. + 8 hits are stored in ExN03CalorHitsCollection. Transportation, hIoni, msc, eIoni eBrem, annihil, conv, compt phot, MuIoni, MuBrems, MuPairProd @@ -182,11 +180,11 @@ Cut in energy --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1748430878, 543225391 + Current couple of seeds = 27996052, 1757575368 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 279.35 MeV total track length: 19.6094 cm - Gap: total energy: 15.0617 MeV total track length: 7.74823 cm + Absorber: total energy: 278.292 MeV total track length: 19.7119 cm + Gap: total energy: 15.6382 MeV total track length: 7.04943 cm 10 hits are stored in ExN03CalorHitsCollection. @@ -207,12 +205,12 @@ Cut in energy --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1715683464, 1760201142 + Current couple of seeds = 2129424520, 867017805 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 333.094 MeV total track length: 79.5857 cm - Gap: total energy: 68.1459 MeV total track length: 1.88635 m + Absorber: total energy: 387.241 MeV total track length: 92.4175 cm + Gap: total energy: 92.7356 MeV total track length: 2.58238 m - 23 hits are stored in ExN03CalorHitsCollection. + 26 hits are stored in ExN03CalorHitsCollection. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N03/exo1.mac b/examples/novice/N03/exo1.mac new file mode 100644 index 0000000000..a117627f26 --- /dev/null +++ b/examples/novice/N03/exo1.mac @@ -0,0 +1,35 @@ +# $Id: exo1.mac,v 1.1 2002/02/14 14:35:01 maire Exp $ +# +# Macro file for "exampleN03.cc" +# +# this macro can be executed +# during an interactive session: +# +# Idle> /control/execute exo1.mac +# +# +/calor/setNbOfLayers 1 +# +/calor/setAbsMat Aluminium +/calor/setAbsThick 10 cm +# +/calor/setGapMat Air +/calor/setGapThick 0 cm +# +/calor/setSizeYZ 10 cm +# +/calor/update +# +/vis/viewer/zoom 1.3 +# +/process/list +/process/inactivate msc +/process/inactivate eBrem +/process/inactivate compt +/process/inactivate conv +# +/run/particle/setCut 10 cm +/run/initialize +# +/gun/particle e+ +/gun/energy 30 MeV diff --git a/examples/novice/N03/exo2.mac b/examples/novice/N03/exo2.mac new file mode 100644 index 0000000000..68e6b2a49e --- /dev/null +++ b/examples/novice/N03/exo2.mac @@ -0,0 +1,35 @@ +# $Id: exo2.mac,v 1.1 2002/02/14 14:35:01 maire Exp $ +# +# Macro file for "exampleN03.cc" +# +# this macro can be executed +# during an interactive session: +# +# Idle> /control/execute exo2.mac +# +# +/calor/setNbOfLayers 1 +# +/calor/setAbsMat Aluminium +/calor/setAbsThick 10 cm +# +/calor/setGapMat Air +/calor/setGapThick 0 cm +# +/calor/setSizeYZ 10 cm +# +/calor/update +# +/vis/viewer/zoom 1.3 +# +/process/list +/process/inactivate msc +/process/inactivate eBrem +/process/inactivate phot +/process/inactivate conv +# +/run/particle/setCut 10 cm +/run/initialize +# +/gun/particle gamma +/gun/energy 10 MeV diff --git a/examples/novice/N03/include/ExN03CalorHit.hh b/examples/novice/N03/include/ExN03CalorHit.hh index 9849173cb4..c0ca4989ca 100644 --- a/examples/novice/N03/include/ExN03CalorHit.hh +++ b/examples/novice/N03/include/ExN03CalorHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03CalorHit.hh,v 1.4 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03CalorHit.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03CalorimeterSD.hh b/examples/novice/N03/include/ExN03CalorimeterSD.hh index 891e58aaf5..3e9425d5cd 100644 --- a/examples/novice/N03/include/ExN03CalorimeterSD.hh +++ b/examples/novice/N03/include/ExN03CalorimeterSD.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03CalorimeterSD.hh,v 1.3 2001/07/11 09:58:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03CalorimeterSD.hh,v 1.4 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03DetectorConstruction.hh b/examples/novice/N03/include/ExN03DetectorConstruction.hh index f83832a7cc..bfdb4b25a7 100644 --- a/examples/novice/N03/include/ExN03DetectorConstruction.hh +++ b/examples/novice/N03/include/ExN03DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorConstruction.hh,v 1.4 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03DetectorConstruction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03DetectorMessenger.hh b/examples/novice/N03/include/ExN03DetectorMessenger.hh index 9c503f4693..f1228d0e55 100644 --- a/examples/novice/N03/include/ExN03DetectorMessenger.hh +++ b/examples/novice/N03/include/ExN03DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorMessenger.hh,v 1.4 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03DetectorMessenger.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03EventAction.hh b/examples/novice/N03/include/ExN03EventAction.hh index 7fd62ee75d..9cf3f6d7a5 100644 --- a/examples/novice/N03/include/ExN03EventAction.hh +++ b/examples/novice/N03/include/ExN03EventAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventAction.hh,v 1.6 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03EventAction.hh,v 1.7 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03EventActionMessenger.hh b/examples/novice/N03/include/ExN03EventActionMessenger.hh index af3b944236..f1c57102f3 100644 --- a/examples/novice/N03/include/ExN03EventActionMessenger.hh +++ b/examples/novice/N03/include/ExN03EventActionMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventActionMessenger.hh,v 1.5 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03EventActionMessenger.hh,v 1.6 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03PhysicsList.hh b/examples/novice/N03/include/ExN03PhysicsList.hh index 9d7d3498e8..ee7cbcfa54 100644 --- a/examples/novice/N03/include/ExN03PhysicsList.hh +++ b/examples/novice/N03/include/ExN03PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PhysicsList.hh,v 1.8 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03PhysicsList.hh,v 1.10 2002/03/08 10:48:30 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -50,15 +50,7 @@ class ExN03PhysicsList: public G4VUserPhysicsList 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(); @@ -67,15 +59,9 @@ class ExN03PhysicsList: public G4VUserPhysicsList void ConstructBaryons(); protected: - // these methods Construct physics processes and register them + // these methods Construct physics processes and register them void ConstructGeneral(); void ConstructEM(); - - private: - G4double cutForGamma; - G4double cutForElectron; - G4double cutForProton; - G4double currentDefaultCut; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh index fa8bfb24b2..d0f3206e9d 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorAction.hh,v 1.4 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03PrimaryGeneratorAction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh index 2fc5f0ff50..d79f377768 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.4 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03RunAction.hh b/examples/novice/N03/include/ExN03RunAction.hh index e92111674c..8eabaa3f65 100644 --- a/examples/novice/N03/include/ExN03RunAction.hh +++ b/examples/novice/N03/include/ExN03RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03RunAction.hh,v 1.6 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03RunAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingAction.hh b/examples/novice/N03/include/ExN03SteppingAction.hh index 98060f0e4d..98acccc0ee 100644 --- a/examples/novice/N03/include/ExN03SteppingAction.hh +++ b/examples/novice/N03/include/ExN03SteppingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingAction.hh,v 1.6 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03SteppingAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingVerbose.hh b/examples/novice/N03/include/ExN03SteppingVerbose.hh index bf1c7ff3c4..4073fb2a61 100644 --- a/examples/novice/N03/include/ExN03SteppingVerbose.hh +++ b/examples/novice/N03/include/ExN03SteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingVerbose.hh,v 1.6 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03SteppingVerbose.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03VisManager.hh b/examples/novice/N03/include/ExN03VisManager.hh index b9bbfe69d1..243d000377 100644 --- a/examples/novice/N03/include/ExN03VisManager.hh +++ b/examples/novice/N03/include/ExN03VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03VisManager.hh,v 1.5 2001/10/10 14:58:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03VisManager.hh,v 1.6 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03CalorHit.cc b/examples/novice/N03/src/ExN03CalorHit.cc index 9007df9288..3f6b1de907 100644 --- a/examples/novice/N03/src/ExN03CalorHit.cc +++ b/examples/novice/N03/src/ExN03CalorHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03CalorHit.cc,v 1.4 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03CalorHit.cc,v 1.5 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03CalorimeterSD.cc b/examples/novice/N03/src/ExN03CalorimeterSD.cc index 8688d8158f..90789ffd50 100644 --- a/examples/novice/N03/src/ExN03CalorimeterSD.cc +++ b/examples/novice/N03/src/ExN03CalorimeterSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03CalorimeterSD.cc,v 1.5 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03CalorimeterSD.cc,v 1.6 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03DetectorConstruction.cc b/examples/novice/N03/src/ExN03DetectorConstruction.cc index 8b3a49d220..80ea50f6f1 100644 --- a/examples/novice/N03/src/ExN03DetectorConstruction.cc +++ b/examples/novice/N03/src/ExN03DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorConstruction.cc,v 1.10 2001/11/27 11:37:37 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03DetectorConstruction.cc,v 1.11 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03DetectorMessenger.cc b/examples/novice/N03/src/ExN03DetectorMessenger.cc index 5693c7ff15..b98bc1d832 100644 --- a/examples/novice/N03/src/ExN03DetectorMessenger.cc +++ b/examples/novice/N03/src/ExN03DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorMessenger.cc,v 1.5 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03DetectorMessenger.cc,v 1.6 2002/01/09 17:24:12 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03EventAction.cc b/examples/novice/N03/src/ExN03EventAction.cc index 1506bc5d55..087542df1a 100644 --- a/examples/novice/N03/src/ExN03EventAction.cc +++ b/examples/novice/N03/src/ExN03EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventAction.cc,v 1.15 2001/11/05 08:24:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03EventAction.cc,v 1.16 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03EventActionMessenger.cc b/examples/novice/N03/src/ExN03EventActionMessenger.cc index 565f1cb3a0..cfede798fb 100644 --- a/examples/novice/N03/src/ExN03EventActionMessenger.cc +++ b/examples/novice/N03/src/ExN03EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventActionMessenger.cc,v 1.6 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03EventActionMessenger.cc,v 1.7 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03PhysicsList.cc b/examples/novice/N03/src/ExN03PhysicsList.cc index b17e36dcc3..9e35a1148d 100644 --- a/examples/novice/N03/src/ExN03PhysicsList.cc +++ b/examples/novice/N03/src/ExN03PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PhysicsList.cc,v 1.11 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03PhysicsList.cc,v 1.13 2002/03/08 10:48:30 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -44,11 +44,7 @@ ExN03PhysicsList::ExN03PhysicsList(): G4VUserPhysicsList() { - currentDefaultCut = defaultCutValue = 1.0*mm; - cutForGamma = defaultCutValue; - cutForElectron = defaultCutValue; - cutForProton = defaultCutValue; - + defaultCutValue = 1.0*mm; SetVerboseLevel(1); } @@ -293,30 +289,23 @@ void ExN03PhysicsList::ConstructGeneral() void ExN03PhysicsList::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 << "ExN03PhysicsList::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+"); + // 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(cutForProton, "proton"); - SetCutValue(cutForProton, "anti_proton"); + // because some processes for hadrons need cut values for proton/anti_proton + // + SetCutValue(defaultCutValue, "proton"); + SetCutValue(defaultCutValue, "anti_proton"); SetCutValueForOthers(defaultCutValue); @@ -325,39 +314,3 @@ void ExN03PhysicsList::SetCuts() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03PhysicsList::SetCutForGamma(G4double cut) -{ - ResetCuts(); - cutForGamma = cut; -} - -void ExN03PhysicsList::SetCutForElectron(G4double cut) -{ - ResetCuts(); - cutForElectron = cut; -} - -void ExN03PhysicsList::SetCutForProton(G4double cut) -{ - ResetCuts(); - cutForProton = cut; -} - -G4double ExN03PhysicsList::GetCutForGamma() const -{ - return cutForGamma; -} - -G4double ExN03PhysicsList::GetCutForElectron() const -{ - return cutForElectron; -} - -G4double ExN03PhysicsList::GetCutForProton() const -{ - return cutForProton; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc index 3422dc713b..8acad9d022 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorAction.cc,v 1.5 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03PrimaryGeneratorAction.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc index 689d8ca44e..ab335d99ff 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.5 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03RunAction.cc b/examples/novice/N03/src/ExN03RunAction.cc index 5f2af67d30..4dc3a100f1 100644 --- a/examples/novice/N03/src/ExN03RunAction.cc +++ b/examples/novice/N03/src/ExN03RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03RunAction.cc,v 1.9 2001/10/10 14:58:12 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03RunAction.cc,v 1.10 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03SteppingAction.cc b/examples/novice/N03/src/ExN03SteppingAction.cc index 411f7eadc3..66d18b6eaf 100644 --- a/examples/novice/N03/src/ExN03SteppingAction.cc +++ b/examples/novice/N03/src/ExN03SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingAction.cc,v 1.5 2001/10/10 14:58:13 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03SteppingAction.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N03/src/ExN03SteppingVerbose.cc b/examples/novice/N03/src/ExN03SteppingVerbose.cc index d1c4e754a5..cd585a0197 100644 --- a/examples/novice/N03/src/ExN03SteppingVerbose.cc +++ b/examples/novice/N03/src/ExN03SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingVerbose.cc,v 1.8 2001/11/05 08:24:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03SteppingVerbose.cc,v 1.9 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03VisManager.cc b/examples/novice/N03/src/ExN03VisManager.cc index 9524d4146c..c174ee3cbd 100644 --- a/examples/novice/N03/src/ExN03VisManager.cc +++ b/examples/novice/N03/src/ExN03VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03VisManager.cc,v 1.8 2001/11/15 13:09:56 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN03VisManager.cc,v 1.9 2002/01/09 17:24:13 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/examples/novice/N03/visTutor/gui.mac b/examples/novice/N03/visTutor/gui.mac index 1d8cc47647..c155f79806 100644 --- a/examples/novice/N03/visTutor/gui.mac +++ b/examples/novice/N03/visTutor/gui.mac @@ -15,13 +15,13 @@ # # 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" +/gui/addButton vis Vis0 "/control/execute visTutor/exN03Vis0.mac" +/gui/addButton vis Vis1 "/control/execute visTutor/exN03Vis1.mac" +/gui/addButton vis Vis2 "/control/execute visTutor/exN03Vis2.mac" +/gui/addButton vis Vis3 "/control/execute visTutor/exN03Vis3.mac" +/gui/addButton vis Vis4 "/control/execute visTutor/exN03Vis4.mac" +/gui/addButton vis Vis5 "/control/execute visTutor/exN03Vis5.mac" +/gui/addButton vis Vis6 "/control/execute visTutor/exN03Vis6.mac" # # To limit the output flow in the "dump" widget : /event/printModulo 100 diff --git a/examples/novice/N04/GNUmakefile b/examples/novice/N04/GNUmakefile index cf07cb7c05..b1202f117f 100644 --- a/examples/novice/N04/GNUmakefile +++ b/examples/novice/N04/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2001/01/06 06:56:13 kurasige Exp $ +# $Id: GNUmakefile,v 1.6 2001/12/18 14:48:00 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -19,6 +19,8 @@ include $(G4INSTALL)/config/binmake.gmk 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) @@ -27,10 +29,3 @@ $(G4TMP)/$(G4SYSTEM)/$(name)/ExN04HadronPhysics.o: src/ExN04HadronPhysics.cc endif endif -ifeq ($(G4SYSTEM),Linux-g++) -COMPILER := $(shell g++ -v 2>&1 | grep version | grep egcs) -ifeq ($(findstring 1.1,$(COMPILER)),1.1) -$(G4TMP)/$(G4SYSTEM)/$(name)/ExN04HadronPhysics.o: src/ExN04HadronPhysics.cc - $(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/ExN04HadronPhysics.cc -endif -endif diff --git a/examples/novice/N04/History b/examples/novice/N04/History index 28b9484500..29d82e1ebc 100644 --- a/examples/novice/N04/History +++ b/examples/novice/N04/History @@ -1,4 +1,4 @@ -$Id: History,v 1.19 2001/10/19 05:27:13 stesting Exp $ +$Id: History,v 1.24 2002/06/19 10:44:13 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,8 +15,24 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -Oct 19, 2001 Steve O'Neale (examples-V03-02-00) -- Update reference output +Jun 19, 2002 Gabriele Cosmo (exampleN04-V04-00-02) +- Added protection for usage of G4UItcsh... in exampleN04.cc. + +May 30, 2002 Makoto Asai (exampleN04-V04-00-01) +- Fixed the size of the muon counter. + +May 02, 2002 Michel Maire +- Added tools for interactive session: + UItcsh, visualisation of tracks, saving random engine status. +- Drawing of hits (in EventAction) are temporarly deactivated. + +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 diff --git a/examples/novice/N04/README b/examples/novice/N04/README index bf7b02eca0..6629504173 100644 --- a/examples/novice/N04/README +++ b/examples/novice/N04/README @@ -1,4 +1,4 @@ -$Id: README,v 1.2 1999/05/31 09:16:40 asaim Exp $ +$Id: README,v 1.3 2002/05/02 14:18:50 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -45,6 +45,25 @@ 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. - + +5. How to start + +- compile and link to generate an executable + % cd N04 + % gmake + +- execute N04 in 'batch' mode from macro files + % exampleN04 exampleN04.in + +- execute N04 in 'interactive mode' with visualization + % exampleN04 + .... + Idle> type your commands. For instance: + Idle> /run/beamOn 3 + .... + Idle> exit + + + diff --git a/examples/novice/N04/exampleN04.EMtest.large_N.out b/examples/novice/N04/exampleN04.EMtest.large_N.out index 8f2c62d23d..077c0e469e 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-00 $ + Geant4 version $Name: geant4-04-01 $ (15-Dec-2000) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/novice/N04/exampleN04.EMtest.out b/examples/novice/N04/exampleN04.EMtest.out index 0dc9a1d2bc..944962bf22 100644 --- a/examples/novice/N04/exampleN04.EMtest.out +++ b/examples/novice/N04/exampleN04.EMtest.out @@ -1,17 +1,15 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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 @@ -71,20 +69,20 @@ 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. - 4 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.337948 (GeV) + 6 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.360266 (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 0 - 24 hits are stored in ExN04TrackerHitsCollection. - 21 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 20.4442 (GeV) + 5 hits are stored in ExN04TrackerHitsCollection. + 15 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 2.24056 (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 - 24 hits are stored in ExN04TrackerHitsCollection. - 34 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.76921 (GeV) + 18 hits are stored in ExN04TrackerHitsCollection. + 16 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 5.24496 (GeV) 1 hits are stored in ExN04MuonHitsCollection. diff --git a/examples/novice/N04/exampleN04.cc b/examples/novice/N04/exampleN04.cc index 26d63f84cd..980c4c79ba 100644 --- a/examples/novice/N04/exampleN04.cc +++ b/examples/novice/N04/exampleN04.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN04.cc,v 1.3 2001/07/11 09:58:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: exampleN04.cc,v 1.6 2002/06/19 10:44:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- @@ -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/novice/N04/exampleN04.in b/examples/novice/N04/exampleN04.in index e532c669c1..463df0e899 100644 --- a/examples/novice/N04/exampleN04.in +++ b/examples/novice/N04/exampleN04.in @@ -2,6 +2,7 @@ /mydet/RoIangle 10 deg /mydet/reqmuon 1 /mydet/isomuon 1 +# /run/beamOn 3 # exit diff --git a/examples/novice/N04/exampleN04.out b/examples/novice/N04/exampleN04.out index ef7cb80a7e..e5f9fd14e7 100644 --- a/examples/novice/N04/exampleN04.out +++ b/examples/novice/N04/exampleN04.out @@ -1,17 +1,28 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-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 +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. - 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 @@ -67,12 +78,13 @@ 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 - 130 hits are stored in ExN04TrackerHitsCollection. - 56 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.896933 (GeV) + 111 hits are stored in ExN04TrackerHitsCollection. + 49 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.67483 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 0 hits found in the muon chamber. ++++++++ event aborted @@ -85,7 +97,9 @@ Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 0 isolated muon found. ++++++++ event aborted >>> Event 2 - 84 hits are stored in ExN04TrackerHitsCollection. + 81 hits are stored in ExN04TrackerHitsCollection. 13 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.315841 (GeV) + Total energy deposition in calorimeter : 0.331409 (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 b4661a449d..cb2d6eae35 100644 --- a/examples/novice/N04/include/ExN04EMPhysics.hh +++ b/examples/novice/N04/include/ExN04EMPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.hh,v 1.2 2001/07/11 09:58:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04EMPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04GeneralPhysics.hh b/examples/novice/N04/include/ExN04GeneralPhysics.hh index 213406628f..d7e17d5868 100644 --- a/examples/novice/N04/include/ExN04GeneralPhysics.hh +++ b/examples/novice/N04/include/ExN04GeneralPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04GeneralPhysics.hh,v 1.2 2001/07/11 09:58:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04GeneralPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04HadronPhysics.hh b/examples/novice/N04/include/ExN04HadronPhysics.hh index 5715e6fc75..5e32d4b687 100644 --- a/examples/novice/N04/include/ExN04HadronPhysics.hh +++ b/examples/novice/N04/include/ExN04HadronPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04HadronPhysics.hh,v 1.2 2001/07/11 09:58:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04HadronPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04IonPhysics.hh b/examples/novice/N04/include/ExN04IonPhysics.hh index 977faef5e3..d3bfbc07b9 100644 --- a/examples/novice/N04/include/ExN04IonPhysics.hh +++ b/examples/novice/N04/include/ExN04IonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.hh,v 1.2 2001/07/11 09:58:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04IonPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04MuonPhysics.hh b/examples/novice/N04/include/ExN04MuonPhysics.hh index 517e4ef936..261c118bf0 100644 --- a/examples/novice/N04/include/ExN04MuonPhysics.hh +++ b/examples/novice/N04/include/ExN04MuonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.hh,v 1.3 2001/07/11 09:58:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04MuonPhysics.hh,v 1.4 2002/01/09 17:24:15 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04RunAction.hh b/examples/novice/N04/include/ExN04RunAction.hh new file mode 100644 index 0000000000..997ab380d6 --- /dev/null +++ b/examples/novice/N04/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/05/02 14:18:51 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....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/novice/N04/include/ExN04SteppingVerbose.hh b/examples/novice/N04/include/ExN04SteppingVerbose.hh new file mode 100644 index 0000000000..a077e5b98d --- /dev/null +++ b/examples/novice/N04/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/05/02 14:18:51 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose. +// It shows how to extract informations during the tracking of a particle. +// +//....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/novice/N04/include/ExN04VisManager.hh b/examples/novice/N04/include/ExN04VisManager.hh new file mode 100644 index 0000000000..3648b8917d --- /dev/null +++ b/examples/novice/N04/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/05/02 14:18:51 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Example Visualization Manager implementing virtual function +// RegisterGraphicsSystems. Exploits C-pre-processor variables +// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if +// environment variables of the same name are set. + +// So all you have to do is set environment variables and compile and +// instantiate this in your main(). + +// Alternatively, you can implement an empty function here and just +// register the systems you want in your main(), e.g.: +// G4VisManager* myVisManager = new MyVisManager; +// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN04VisManager_h +#define ExN04VisManager_h 1 + +#ifdef G4VIS_USE + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN04VisManager: public G4VisManager { + +public: + + ExN04VisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + +#endif diff --git a/examples/novice/N04/src/ExN04DetectorParameterDef.icc b/examples/novice/N04/src/ExN04DetectorParameterDef.icc index 6f7364f101..1d3dfe7a3a 100644 --- a/examples/novice/N04/src/ExN04DetectorParameterDef.icc +++ b/examples/novice/N04/src/ExN04DetectorParameterDef.icc @@ -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/novice/N04/src/ExN04EMPhysics.cc b/examples/novice/N04/src/ExN04EMPhysics.cc index 81bacb474e..17a580e09a 100644 --- a/examples/novice/N04/src/ExN04EMPhysics.cc +++ b/examples/novice/N04/src/ExN04EMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.cc,v 1.2 2001/07/11 09:58:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04EMPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N04/src/ExN04EventAction.cc b/examples/novice/N04/src/ExN04EventAction.cc index 5a1bdfbac9..45f1973924 100644 --- a/examples/novice/N04/src/ExN04EventAction.cc +++ b/examples/novice/N04/src/ExN04EventAction.cc @@ -58,17 +58,30 @@ void ExN04EventAction::BeginOfEventAction(const G4Event*) calorimeterCollID = SDman->GetCollectionID(colNam="calCollection"); muonCollID = SDman->GetCollectionID(colNam="muonCollection"); } - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if(pVVisManager) - { - G4UImanager::GetUIpointer()->ApplyCommand("/vis/draw/current"); - } } 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(); @@ -105,16 +118,5 @@ void ExN04EventAction::EndOfEventAction(const G4Event* evt) G4cout << " " << n_hit << " hits are stored in ExN04MuonHitsCollection." << G4endl; } - - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if(pVVisManager) - { - if(THC) THC->DrawAllHits(); - if(CHC) CHC->DrawAllHits(); - if(MHC) MHC->DrawAllHits(); - G4UImanager::GetUIpointer()->ApplyCommand("/vis/show/view"); - } } - - diff --git a/examples/novice/N04/src/ExN04GeneralPhysics.cc b/examples/novice/N04/src/ExN04GeneralPhysics.cc index 6a7d7137a3..a6eb6db30d 100644 --- a/examples/novice/N04/src/ExN04GeneralPhysics.cc +++ b/examples/novice/N04/src/ExN04GeneralPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04GeneralPhysics.cc,v 1.2 2001/07/11 09:58:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04GeneralPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N04/src/ExN04HadronPhysics.cc b/examples/novice/N04/src/ExN04HadronPhysics.cc index 4261a135e9..f5ecb42a07 100644 --- a/examples/novice/N04/src/ExN04HadronPhysics.cc +++ b/examples/novice/N04/src/ExN04HadronPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04HadronPhysics.cc,v 1.2 2001/07/11 09:58:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04HadronPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N04/src/ExN04IonPhysics.cc b/examples/novice/N04/src/ExN04IonPhysics.cc index 31d7f21d45..4ab6dbfda8 100644 --- a/examples/novice/N04/src/ExN04IonPhysics.cc +++ b/examples/novice/N04/src/ExN04IonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.cc,v 1.2 2001/07/11 09:58:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04IonPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N04/src/ExN04MuonPhysics.cc b/examples/novice/N04/src/ExN04MuonPhysics.cc index 3704b20be7..3b9a25e085 100644 --- a/examples/novice/N04/src/ExN04MuonPhysics.cc +++ b/examples/novice/N04/src/ExN04MuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.cc,v 1.3 2001/07/11 09:58:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04MuonPhysics.cc,v 1.4 2002/01/09 17:24:15 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N04/src/ExN04PhysicsList.cc b/examples/novice/N04/src/ExN04PhysicsList.cc index a0f1b1a6f0..11143892d9 100644 --- a/examples/novice/N04/src/ExN04PhysicsList.cc +++ b/examples/novice/N04/src/ExN04PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04PhysicsList.cc,v 1.10 2001/07/11 09:58:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN04PhysicsList.cc,v 1.12 2002/01/09 17:24:15 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N04/src/ExN04RunAction.cc b/examples/novice/N04/src/ExN04RunAction.cc new file mode 100644 index 0000000000..66d67afaa5 --- /dev/null +++ b/examples/novice/N04/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/05/02 14:18:51 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....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/novice/N04/src/ExN04SteppingVerbose.cc b/examples/novice/N04/src/ExN04SteppingVerbose.cc new file mode 100644 index 0000000000..b358018d52 --- /dev/null +++ b/examples/novice/N04/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/05/02 14:18:51 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +//....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/novice/N04/src/ExN04VisManager.cc b/examples/novice/N04/src/ExN04VisManager.cc new file mode 100644 index 0000000000..5faf3bacf3 --- /dev/null +++ b/examples/novice/N04/src/ExN04VisManager.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: ExN04VisManager.cc,v 1.1 2002/05/02 14:18:51 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// John Allison 24th January 1998. + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4VIS_USE + +#include "ExN04VisManager.hh" + +// Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "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 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/novice/N04/vis.mac b/examples/novice/N04/vis.mac new file mode 100644 index 0000000000..aacc1b037b --- /dev/null +++ b/examples/novice/N04/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/novice/N05/exampleN05.cc b/examples/novice/N05/exampleN05.cc index e76eb01b03..3f093a14c7 100644 --- a/examples/novice/N05/exampleN05.cc +++ b/examples/novice/N05/exampleN05.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN05.cc,v 1.9 2001/07/11 09:58:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: exampleN05.cc,v 1.10 2002/01/09 17:24:16 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/exampleN05.out b/examples/novice/N05/exampleN05.out index 9ef8b0521e..aae7817901 100644 --- a/examples/novice/N05/exampleN05.out +++ b/examples/novice/N05/exampleN05.out @@ -1,24 +1,22 @@ RunManager construction starting.... ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** ExN05DetectorConstruction.... +phot: Total cross sections from Sandia parametrisation. + conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. compt: Total cross sections 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. + PhysicsTables from 1 keV to 100 GeV in 80 bins. msc: Tables of transport mean free paths. New model of MSC , computes the lateral @@ -85,311 +83,311 @@ Current available graphics systems are: ExN05EMShowerModel::DoIt >>> Event 0 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.989909 (GeV) + Total energy deposition in EM calorimeter crytals : 0.989911 (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.999906 (GeV) + 10 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 - 12 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999435 (GeV) + 13 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.9999 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 11 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99992 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999903 (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.999908 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.989854 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 1 start. ExN05EMShowerModel::DoIt >>> Event 0 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. + 9 hits are stored in EM ExN05CalorimeterHitsCollection. Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999902 (GeV) + 8 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 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999921 (GeV) + 7 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999923 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999918 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999908 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999926 (GeV) + 9 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) number of event = 5 ### Run 2 start. ExN05EMShowerModel::DoIt >>> Event 0 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999911 (GeV) + 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 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999913 (GeV) + 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 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. + 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 3 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999927 (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 4 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999931 (GeV) + 8 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999736 (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 - 12 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.989909 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999602 (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.999768 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.989884 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 12 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999895 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999913 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999914 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.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.999912 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999921 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 4 start. ExN05PionShowerModel::DoIt >>> Event 0 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.219987 (GeV) + 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.399976 (GeV) + Total energy deposition in HAD calorimeter towers : 0.539974 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 16 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.419975 (GeV) - 9 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.759954 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 2 - 22 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.639962 (GeV) - 11 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.15993 (GeV) + 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 >>> Event 3 - 25 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.839951 (GeV) - 14 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.61991 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 4 - 28 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999941 (GeV) - 15 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.09988 (GeV) + 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) number of event = 5 ### Run 5 start. ExN05PionShowerModel::DoIt >>> Event 0 - 29 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.03994 (GeV) - 28 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.89983 (GeV) -ExN05PionShowerModel::DoIt ->>> Event 1 - 29 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.03994 (GeV) - 30 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 3.75977 (GeV) -ExN05PionShowerModel::DoIt ->>> Event 2 - 30 hits are stored in EM ExN05CalorimeterHitsCollection. + 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 : 4.61972 (GeV) + Total energy deposition in HAD calorimeter towers : 3.25981 (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) +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) ExN05PionShowerModel::DoIt >>> Event 3 - 33 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.15993 (GeV) - 33 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 5.41968 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 4 - 35 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.19993 (GeV) - 36 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 6.23958 (GeV) + 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) number of event = 5 ### Run 6 start. ExN05PionShowerModel::DoIt >>> Event 0 - 37 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.23993 (GeV) - 50 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 7.07954 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 1 - 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.27992 (GeV) + 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 : 7.97949 (GeV) + Total energy deposition in HAD calorimeter towers : 8.25873 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 43 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.35992 (GeV) - 55 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 8.77944 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 3 - 44 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.37992 (GeV) - 56 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 9.67939 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 4 - 47 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.43991 (GeV) - 56 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 10.5793 (GeV) + 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) number of event = 5 ### Run 7 start. ExN05PionShowerModel::DoIt >>> Event 0 - 52 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.5599 (GeV) - 64 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.0593 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 1 - 58 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.6799 (GeV) - 65 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.6793 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 2 - 62 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.83989 (GeV) - 66 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.1992 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 3 - 67 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.01988 (GeV) - 67 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.6992 (GeV) + 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) ExN05PionShowerModel::DoIt >>> Event 4 - 71 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.23986 (GeV) - 69 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 13.1392 (GeV) + 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) number of event = 5 ### Run 8 start. >>> Event 0 - 38 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.993957 (GeV) - 3 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0046007 (GeV) ->>> Event 1 - 45 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.994999 (GeV) - 3 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00182995 (GeV) ->>> Event 2 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.991808 (GeV) + 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.00358799 (GeV) ->>> Event 3 - 38 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.990201 (GeV) - 2 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00473796 (GeV) ->>> Event 4 - 27 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.990314 (GeV) + 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) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) +>>> Event 3 + 31 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.996269 (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) number of event = 5 ### Run 9 start. >>> Event 0 - 22 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999923 (GeV) - 0 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0 (GeV) + 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) >>> Event 1 - 28 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999917 (GeV) + 19 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.994401 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 2 - 21 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.994264 (GeV) - 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00351956 (GeV) ->>> Event 3 26 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99804 (GeV) - 2 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0018661 (GeV) + Total energy deposition in EM calorimeter crytals : 0.996132 (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) + 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.988098 (GeV) - 2 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00430555 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999873 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N05/include/ExN05CalorimeterHit.hh b/examples/novice/N05/include/ExN05CalorimeterHit.hh index bece4021cd..517576fdb5 100644 --- a/examples/novice/N05/include/ExN05CalorimeterHit.hh +++ b/examples/novice/N05/include/ExN05CalorimeterHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05CalorimeterHit.hh,v 1.4 2001/07/11 09:58:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05CalorimeterHit.hh,v 1.5 2002/01/09 17:24:17 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05CalorimeterHit_h diff --git a/examples/novice/N05/include/ExN05CalorimeterSD.hh b/examples/novice/N05/include/ExN05CalorimeterSD.hh index 112b224bb5..d0246fcf45 100644 --- a/examples/novice/N05/include/ExN05CalorimeterSD.hh +++ b/examples/novice/N05/include/ExN05CalorimeterSD.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05CalorimeterSD.hh,v 1.3 2001/07/11 09:58:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05CalorimeterSD.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05CalorimeterSD_h diff --git a/examples/novice/N05/include/ExN05DetectorConstruction.hh b/examples/novice/N05/include/ExN05DetectorConstruction.hh index 7dbb32c175..3100f598a8 100644 --- a/examples/novice/N05/include/ExN05DetectorConstruction.hh +++ b/examples/novice/N05/include/ExN05DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05DetectorConstruction.hh,v 1.3 2001/07/11 09:58:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05DetectorConstruction.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05DetectorConstruction_h #define ExN05DetectorConstruction_h 1 diff --git a/examples/novice/N05/include/ExN05DetectorMessenger.hh b/examples/novice/N05/include/ExN05DetectorMessenger.hh index 4687395668..bc329bf5e8 100644 --- a/examples/novice/N05/include/ExN05DetectorMessenger.hh +++ b/examples/novice/N05/include/ExN05DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05DetectorMessenger.hh,v 1.3 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05DetectorMessenger.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N05/include/ExN05EMShowerModel.hh b/examples/novice/N05/include/ExN05EMShowerModel.hh index ba3f60677b..065199519f 100644 --- a/examples/novice/N05/include/ExN05EMShowerModel.hh +++ b/examples/novice/N05/include/ExN05EMShowerModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EMShowerModel.hh,v 1.6 2001/11/08 10:16:03 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EMShowerModel.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05EnergySpot.hh b/examples/novice/N05/include/ExN05EnergySpot.hh index 1464208b0e..b633daf90f 100644 --- a/examples/novice/N05/include/ExN05EnergySpot.hh +++ b/examples/novice/N05/include/ExN05EnergySpot.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EnergySpot.hh,v 1.6 2001/11/05 08:24:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EnergySpot.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05EnergySpot_h #define ExN05EnergySpot_h diff --git a/examples/novice/N05/include/ExN05EventAction.hh b/examples/novice/N05/include/ExN05EventAction.hh index 21e06a5917..52d1663653 100644 --- a/examples/novice/N05/include/ExN05EventAction.hh +++ b/examples/novice/N05/include/ExN05EventAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EventAction.hh,v 1.4 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EventAction.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05EventAction_h diff --git a/examples/novice/N05/include/ExN05EventActionMessenger.hh b/examples/novice/N05/include/ExN05EventActionMessenger.hh index d115159537..589b05eea1 100644 --- a/examples/novice/N05/include/ExN05EventActionMessenger.hh +++ b/examples/novice/N05/include/ExN05EventActionMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EventActionMessenger.hh,v 1.3 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EventActionMessenger.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05EventActionMessenger_h diff --git a/examples/novice/N05/include/ExN05MaxTimeCuts.hh b/examples/novice/N05/include/ExN05MaxTimeCuts.hh index 000169cd92..fa9df16e30 100644 --- a/examples/novice/N05/include/ExN05MaxTimeCuts.hh +++ b/examples/novice/N05/include/ExN05MaxTimeCuts.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05MaxTimeCuts.hh,v 1.4 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05MaxTimeCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinEkineCuts.hh b/examples/novice/N05/include/ExN05MinEkineCuts.hh index 0b0d1421b7..a6c0fece4c 100644 --- a/examples/novice/N05/include/ExN05MinEkineCuts.hh +++ b/examples/novice/N05/include/ExN05MinEkineCuts.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05MinEkineCuts.hh,v 1.4 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05MinEkineCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinRangeCuts.hh b/examples/novice/N05/include/ExN05MinRangeCuts.hh index 69c62434ed..14b3110463 100644 --- a/examples/novice/N05/include/ExN05MinRangeCuts.hh +++ b/examples/novice/N05/include/ExN05MinRangeCuts.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05MinRangeCuts.hh,v 1.4 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05MinRangeCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05PhysicsList.hh b/examples/novice/N05/include/ExN05PhysicsList.hh index fe05efc879..f557186d9e 100644 --- a/examples/novice/N05/include/ExN05PhysicsList.hh +++ b/examples/novice/N05/include/ExN05PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PhysicsList.hh,v 1.6 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PhysicsList.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // #ifndef ExN05PhysicsList_h diff --git a/examples/novice/N05/include/ExN05PiModel.hh b/examples/novice/N05/include/ExN05PiModel.hh index b842a86674..55945b6620 100644 --- a/examples/novice/N05/include/ExN05PiModel.hh +++ b/examples/novice/N05/include/ExN05PiModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PiModel.hh,v 1.3 2001/07/11 09:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PiModel.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //---------------------------------------- diff --git a/examples/novice/N05/include/ExN05PionShowerModel.hh b/examples/novice/N05/include/ExN05PionShowerModel.hh index 64d047443a..2958cca9f9 100644 --- a/examples/novice/N05/include/ExN05PionShowerModel.hh +++ b/examples/novice/N05/include/ExN05PionShowerModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PionShowerModel.hh,v 1.6 2001/11/08 10:16:04 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PionShowerModel.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh index e0919c56cc..ca96324db4 100644 --- a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh +++ b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PrimaryGeneratorAction.hh,v 1.3 2001/07/11 09:58:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PrimaryGeneratorAction.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05PrimaryGeneratorAction_h diff --git a/examples/novice/N05/include/ExN05RunAction.hh b/examples/novice/N05/include/ExN05RunAction.hh index 78f8b2c797..9f0472eebc 100644 --- a/examples/novice/N05/include/ExN05RunAction.hh +++ b/examples/novice/N05/include/ExN05RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05RunAction.hh,v 1.7 2001/07/11 09:58:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05RunAction.hh,v 1.8 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05RunAction_h diff --git a/examples/novice/N05/include/ExN05SpecialCuts.hh b/examples/novice/N05/include/ExN05SpecialCuts.hh index 7388412a7f..7afabf68c5 100644 --- a/examples/novice/N05/include/ExN05SpecialCuts.hh +++ b/examples/novice/N05/include/ExN05SpecialCuts.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05SpecialCuts.hh,v 1.5 2001/11/05 08:24:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05SpecialCuts.hh,v 1.6 2002/01/09 17:24:18 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05SteppingAction.hh b/examples/novice/N05/include/ExN05SteppingAction.hh index dc75e3eb64..94ca54da0a 100644 --- a/examples/novice/N05/include/ExN05SteppingAction.hh +++ b/examples/novice/N05/include/ExN05SteppingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05SteppingAction.hh,v 1.4 2001/07/11 09:58:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05SteppingAction.hh,v 1.5 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05SteppingAction_h diff --git a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh index a9e091e117..03c5d7cf42 100644 --- a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh +++ b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05SteppingActionMessenger.hh,v 1.3 2001/07/11 09:58:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05SteppingActionMessenger.hh,v 1.4 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef ExN05SteppingActionMessenger_h diff --git a/examples/novice/N05/include/ExN05VisManager.hh b/examples/novice/N05/include/ExN05VisManager.hh index 240edadb3d..b7c3fd32ea 100644 --- a/examples/novice/N05/include/ExN05VisManager.hh +++ b/examples/novice/N05/include/ExN05VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05VisManager.hh,v 1.2 2001/07/11 09:58:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05VisManager.hh,v 1.3 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N05/src/ExN05CalorimeterHit.cc b/examples/novice/N05/src/ExN05CalorimeterHit.cc index 8f59338a60..e30599ff2d 100644 --- a/examples/novice/N05/src/ExN05CalorimeterHit.cc +++ b/examples/novice/N05/src/ExN05CalorimeterHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05CalorimeterHit.cc,v 1.3 2001/07/11 09:58:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05CalorimeterHit.cc,v 1.4 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05CalorimeterHit.hh" diff --git a/examples/novice/N05/src/ExN05CalorimeterSD.cc b/examples/novice/N05/src/ExN05CalorimeterSD.cc index 52103c2e3e..fc60acad02 100644 --- a/examples/novice/N05/src/ExN05CalorimeterSD.cc +++ b/examples/novice/N05/src/ExN05CalorimeterSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05CalorimeterSD.cc,v 1.3 2001/07/11 09:58:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05CalorimeterSD.cc,v 1.4 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorConstruction.cc b/examples/novice/N05/src/ExN05DetectorConstruction.cc index 06fbf33d1b..bd92f50984 100644 --- a/examples/novice/N05/src/ExN05DetectorConstruction.cc +++ b/examples/novice/N05/src/ExN05DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05DetectorConstruction.cc,v 1.4 2001/11/05 08:24:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05DetectorConstruction.cc,v 1.5 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05DetectorConstruction.hh" #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorMessenger.cc b/examples/novice/N05/src/ExN05DetectorMessenger.cc index b5b34c70e6..9a6a420907 100644 --- a/examples/novice/N05/src/ExN05DetectorMessenger.cc +++ b/examples/novice/N05/src/ExN05DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05DetectorMessenger.cc,v 1.3 2001/07/11 09:58:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05DetectorMessenger.cc,v 1.4 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N05/src/ExN05EMShowerModel.cc b/examples/novice/N05/src/ExN05EMShowerModel.cc index 49b12c1fed..0186306b25 100644 --- a/examples/novice/N05/src/ExN05EMShowerModel.cc +++ b/examples/novice/N05/src/ExN05EMShowerModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EMShowerModel.cc,v 1.6 2001/11/08 10:21:28 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EMShowerModel.cc,v 1.7 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05EMShowerModel.hh" #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05EnergySpot.cc b/examples/novice/N05/src/ExN05EnergySpot.cc index 10edb15e11..56d8198936 100644 --- a/examples/novice/N05/src/ExN05EnergySpot.cc +++ b/examples/novice/N05/src/ExN05EnergySpot.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EnergySpot.cc,v 1.5 2001/11/05 08:24:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EnergySpot.cc,v 1.6 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05EventAction.cc b/examples/novice/N05/src/ExN05EventAction.cc index 916e1bf985..77a299854b 100644 --- a/examples/novice/N05/src/ExN05EventAction.cc +++ b/examples/novice/N05/src/ExN05EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EventAction.cc,v 1.7 2001/11/05 08:24:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EventAction.cc,v 1.8 2002/01/09 17:24:19 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05EventAction.hh" diff --git a/examples/novice/N05/src/ExN05EventActionMessenger.cc b/examples/novice/N05/src/ExN05EventActionMessenger.cc index b6e5ac7efb..cd45a461da 100644 --- a/examples/novice/N05/src/ExN05EventActionMessenger.cc +++ b/examples/novice/N05/src/ExN05EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EventActionMessenger.cc,v 1.3 2001/07/11 09:58:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05EventActionMessenger.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05EventActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05MaxTimeCuts.cc b/examples/novice/N05/src/ExN05MaxTimeCuts.cc index 7f29b49afb..401bdd0ce1 100644 --- a/examples/novice/N05/src/ExN05MaxTimeCuts.cc +++ b/examples/novice/N05/src/ExN05MaxTimeCuts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05MaxTimeCuts.cc,v 1.4 2001/11/05 08:24:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05MaxTimeCuts.cc,v 1.5 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinEkineCuts.cc b/examples/novice/N05/src/ExN05MinEkineCuts.cc index 33ba47a324..d4b677abba 100644 --- a/examples/novice/N05/src/ExN05MinEkineCuts.cc +++ b/examples/novice/N05/src/ExN05MinEkineCuts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05MinEkineCuts.cc,v 1.3 2001/07/11 09:58:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05MinEkineCuts.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinRangeCuts.cc b/examples/novice/N05/src/ExN05MinRangeCuts.cc index ee531eb4aa..eb66959297 100644 --- a/examples/novice/N05/src/ExN05MinRangeCuts.cc +++ b/examples/novice/N05/src/ExN05MinRangeCuts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05MinRangeCuts.cc,v 1.3 2001/07/11 09:58:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05MinRangeCuts.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05PhysicsList.cc b/examples/novice/N05/src/ExN05PhysicsList.cc index 2819155b62..83a0caefe1 100644 --- a/examples/novice/N05/src/ExN05PhysicsList.cc +++ b/examples/novice/N05/src/ExN05PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PhysicsList.cc,v 1.6 2001/07/11 09:58:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PhysicsList.cc,v 1.7 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/examples/novice/N05/src/ExN05PiModel.cc b/examples/novice/N05/src/ExN05PiModel.cc index 8f0c63bfda..08da26f7ac 100644 --- a/examples/novice/N05/src/ExN05PiModel.cc +++ b/examples/novice/N05/src/ExN05PiModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PiModel.cc,v 1.3 2001/07/11 09:58:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PiModel.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05PiModel.hh" diff --git a/examples/novice/N05/src/ExN05PionShowerModel.cc b/examples/novice/N05/src/ExN05PionShowerModel.cc index 2e3c6c445f..e227f3f48c 100644 --- a/examples/novice/N05/src/ExN05PionShowerModel.cc +++ b/examples/novice/N05/src/ExN05PionShowerModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PionShowerModel.cc,v 1.7 2001/11/08 10:21:29 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PionShowerModel.cc,v 1.8 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05PionShowerModel.hh" #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc index 551017d5ef..2bc515bc17 100644 --- a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc +++ b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PrimaryGeneratorAction.cc,v 1.3 2001/07/11 09:58:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05PrimaryGeneratorAction.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05PrimaryGeneratorAction.hh" diff --git a/examples/novice/N05/src/ExN05RunAction.cc b/examples/novice/N05/src/ExN05RunAction.cc index 441bb2f31a..cdc2cf8512 100644 --- a/examples/novice/N05/src/ExN05RunAction.cc +++ b/examples/novice/N05/src/ExN05RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05RunAction.cc,v 1.6 2001/07/11 09:58:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05RunAction.cc,v 1.7 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Make this appear first! diff --git a/examples/novice/N05/src/ExN05SpecialCuts.cc b/examples/novice/N05/src/ExN05SpecialCuts.cc index 0ea2b9d7f8..3cc2ecc322 100644 --- a/examples/novice/N05/src/ExN05SpecialCuts.cc +++ b/examples/novice/N05/src/ExN05SpecialCuts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05SpecialCuts.cc,v 1.4 2001/07/11 09:58:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05SpecialCuts.cc,v 1.5 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/src/ExN05SteppingAction.cc b/examples/novice/N05/src/ExN05SteppingAction.cc index 80c786190e..e0cef153c4 100644 --- a/examples/novice/N05/src/ExN05SteppingAction.cc +++ b/examples/novice/N05/src/ExN05SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05SteppingAction.cc,v 1.5 2001/07/11 09:58:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05SteppingAction.cc,v 1.6 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05SteppingAction.hh" diff --git a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc index e2ae4c3048..5d3b56d04a 100644 --- a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc +++ b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05SteppingActionMessenger.cc,v 1.3 2001/07/11 09:58:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05SteppingActionMessenger.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "ExN05SteppingActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05VisManager.cc b/examples/novice/N05/src/ExN05VisManager.cc index f2501cfda6..e9f440acda 100644 --- a/examples/novice/N05/src/ExN05VisManager.cc +++ b/examples/novice/N05/src/ExN05VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05VisManager.cc,v 1.5 2001/11/15 13:09:59 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: ExN05VisManager.cc,v 1.6 2002/01/09 17:24:20 ranjard Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/novice/N06/History b/examples/novice/N06/History index 75fb0d5763..6a4ec927aa 100644 --- a/examples/novice/N06/History +++ b/examples/novice/N06/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2001/10/19 05:37:49 stesting Exp $ +$Id: History,v 1.8 2002/05/30 08:12:18 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 30, 2002 Gabriele Cosmo (exampleN06-V04-00-02) +- Renamed file ExN06PrimaryGeneratoraction.cc to ExN06PrimaryGeneratorAction.cc to + be consistent with class name. + +May 16, 2002 Peter Gumplinger (exampleN06-V04-00-01) +- Add G4Scintillation to the example and update reference output + Oct 19, 2001 Steve O'Neale (examples-V03-02-00) - Update reference output diff --git a/examples/novice/N06/README b/examples/novice/N06/README index 6065aed46b..a095d5f8ff 100644 --- a/examples/novice/N06/README +++ b/examples/novice/N06/README @@ -1,4 +1,4 @@ -$Id: README,v 1.1 1999/01/07 16:06:20 gunter Exp $ +$Id: README,v 1.2 2002/05/17 00:13:54 gum Exp $ ------------------------------------------------------------------- ========================================================= @@ -22,6 +22,7 @@ G4VUserPhysicsList ==> define particles; including *** G4OpticalPhoton *** define processes; including *** G4Cerenkov *** + *** G4Scintillation *** *** G4OpAbsorption *** *** G4OpRayleigh *** *** G4OpBoundaryProcess *** diff --git a/examples/novice/N06/exampleN06.cc b/examples/novice/N06/exampleN06.cc index 831a29c764..6732170784 100644 --- a/examples/novice/N06/exampleN06.cc +++ b/examples/novice/N06/exampleN06.cc @@ -29,7 +29,9 @@ // // File: exampleExN06.cc // Description: Test of Continuous Process G4Cerenkov +// and RestDiscrete Process G4Scintillation // -- Generation Cerenkov Photons -- +// -- Generation Scintillation Photons -- // -- Transport of optical Photons -- // Version: 5.0 // Created: 1996-04-30 diff --git a/examples/novice/N06/exampleN06.out b/examples/novice/N06/exampleN06.out index 6696f9a951..24545e688b 100644 --- a/examples/novice/N06/exampleN06.out +++ b/examples/novice/N06/exampleN06.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-00 $ - (14-Dec-2001) + Geant4 version $Name: geant4-04-01 $ + (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** /run/initialize @@ -73,235 +73,1273 @@ MuPairProd: theoretical cross sections !!!!!!! Now start processing an event !!!!!!! ### pop requested out of 1 stacked tracks. - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 290 + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 224 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 158 Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 291 stacked tracks. +### 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. + 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) + *** FresnelRefraction *** +Track (trackID 302, parentID 1) is processed with stopping code 2 +### pop requested out of 301 stacked tracks. + +** Photon absorbed! ** +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 *** +Track (trackID 300, parentID 1) is processed with stopping code 2 +### pop requested out of 299 stacked tracks. + +** Photon absorbed! ** +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 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 *** +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) + *** 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) + *** 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) + *** 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) + *** FresnelRefraction *** Track (trackID 291, parentID 1) is processed with stopping code 2 ### pop requested out of 290 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738029,-0.494232,-0.459399) - Old Polarization: (-0.674769,-0.540567,-0.502469) - New Momentum Direction: (0.40262,-0.670457,-0.623205) - New Polarization: (-0.915367,-0.294897,-0.274113) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.742698,0.445553,-0.499883) - Old Polarization: (-0.669627,0.494172,-0.554431) - New Momentum Direction: (0.43031,0.600621,-0.67386) - New Polarization: (-0.902681,0.286318,-0.321231) + 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) *** 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.7412,-0.65902,0.127732) - Old Polarization: (-0.671285,-0.727658,0.141035) - New Momentum Direction: (0.421679,-0.890179,0.172535) - New Polarization: (-0.906745,-0.413975,0.0802369) + 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) *** 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.741428,0.639049,0.204696) - Old Polarization: (-0.671033,0.706089,0.22617) - New Momentum Direction: (0.423008,0.862937,0.276411) - New Polarization: (-0.906126,0.402847,0.129037) + 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 *** 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.73665,0.208163,0.643439) - Old Polarization: (-0.676274,0.226748,0.700884) - New Momentum Direction: (0.393963,0.282916,0.874501) - New Polarization: (-0.919126,0.121266,0.374836) + 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) *** FresnelRefraction *** Track (trackID 286, parentID 1) is processed with stopping code 2 ### pop requested out of 285 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738608,-0.673925,-0.0168344) - Old Polarization: (-0.674135,-0.738377,-0.0184444) - New Momentum Direction: (0.406184,-0.913506,-0.022819) - New Polarization: (-0.913791,-0.406057,-0.0101431) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 285, parentID 1) is processed with stopping code 2 ### pop requested out of 284 stacked tracks. + 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 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 ### pop requested out of 283 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736043,-0.599846,0.31373) - Old Polarization: (-0.676935,-0.652222,0.341123) - New Momentum Direction: (0.390072,-0.815925,0.426743) - New Polarization: (-0.920784,-0.345651,0.180781) + 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) *** FresnelRefraction *** Track (trackID 283, parentID 1) is processed with stopping code 2 ### pop requested out of 282 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.73665,-0.160216,0.657022) -Old Polarization: (-0.676274,-0.17452,0.715679) -New Polarization: (-0.491045,-0.815428,0.306518) -Polarization Change: (-0.491045,-0.815428,0.306518) -New Momentum Direction: (-0.465987,0.54316,0.69845) -Momentum Change: (-0.465987,0.54316,0.69845) Photon at Boundary! - Old Momentum Direction: (-0.465987,0.54316,0.69845) - Old Polarization: (-0.491045,-0.815428,0.306518) - New Momentum Direction: (-0.633325,0.738211,0.232257) - New Polarization: (-0.697798,-0.414961,-0.583854) - *** FresnelRefraction *** + 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 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 ### pop requested out of 281 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 281, parentID 1) is processed with stopping code 2 ### pop requested out of 280 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 280, parentID 1) is processed with stopping code 2 ### pop requested out of 279 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736957,0.33394,0.587689) - Old Polarization: (-0.675939,0.364085,0.64074) - New Momentum Direction: (0.395912,0.45367,0.798397) - New Polarization: (-0.918289,0.195595,0.344221) + 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) *** FresnelRefraction *** Track (trackID 279, parentID 1) is processed with stopping code 2 ### pop requested out of 278 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.741047,0.671421,0.00654827) - Old Polarization: (-0.671453,0.741012,0.00722697) - New Momentum Direction: (0.420786,0.907117,0.00884697) - New Polarization: (-0.90716,0.420766,0.00410367) + 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) *** FresnelRefraction *** Track (trackID 278, parentID 1) is processed with stopping code 2 ### pop requested out of 277 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.735975,0.397463,-0.548055) -Old Polarization: (-0.677009,0.432082,-0.595789) -New Polarization: (-0.582514,-0.657611,-0.477729) -Polarization Change: (-0.582514,-0.657611,-0.477729) -New Momentum Direction: (-0.486536,0.752918,-0.443167) -Momentum Change: (-0.486536,0.752918,-0.443167) -Scattering Photon! -Old Momentum Direction: (-0.486536,0.752918,-0.443167) -Old Polarization: (-0.582514,-0.657611,-0.477729) -New Polarization: (-0.0797098,-0.57056,-0.817378) -Polarization Change: (-0.0797098,-0.57056,-0.817378) -New Momentum Direction: (-0.887392,-0.332907,0.318918) -Momentum Change: (-0.887392,-0.332907,0.318918) Photon at Boundary! - Old Momentum Direction: (-0.887392,-0.332907,0.318918) - Old Polarization: (-0.0797098,-0.57056,-0.817378) - New Momentum Direction: (-0.778904,-0.45287,0.433841) - New Polarization: (0.14843,-0.805239,-0.574072) + 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) *** FresnelRefraction *** Track (trackID 277, parentID 1) is processed with stopping code 2 ### pop requested out of 276 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.744692,-0.635011,0.205414) - Old Polarization: (-0.667408,-0.708543,0.2292) - New Momentum Direction: (0.44146,-0.853725,0.276164) - New Polarization: (-0.897281,-0.420031,0.135872) + 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) *** FresnelRefraction *** Track (trackID 276, parentID 1) is processed with stopping code 2 ### pop requested out of 275 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736984,0.65407,-0.170432) - Old Polarization: (-0.67591,0.713171,-0.185832) - New Momentum Direction: (0.396083,0.888545,-0.231529) - New Polarization: (-0.918215,0.383284,-0.0998728) - *** FresnelRefraction *** -Track (trackID 275, parentID 1) is processed with stopping code 2 -### pop requested out of 274 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743733,0.433839,0.508572) - Old Polarization: (-0.668477,0.48268,0.565826) - New Momentum Direction: (0.436144,0.584016,0.684619) - New Polarization: (-0.899877,0.283055,0.331815) - *** FresnelRefraction *** -Track (trackID 274, parentID 1) is processed with stopping code 2 -### pop requested out of 273 stacked tracks. ** Photon absorbed! ** +Track (trackID 275, parentID 1) is processed with stopping code 2 +### pop requested out of 274 stacked tracks. + +** Photon absorbed! ** +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 *** 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. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 271, parentID 1) is processed with stopping code 2 ### pop requested out of 270 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.741565,0.577907,-0.340742) - Old Polarization: (-0.670881,0.638795,-0.376642) - New Momentum Direction: (0.423805,0.78023,-0.460034) - New Polarization: (-0.905754,0.365072,-0.215251) + 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) *** FresnelRefraction *** Track (trackID 270, parentID 1) is processed with stopping code 2 ### pop requested out of 269 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739224,-0.158434,-0.654558) - Old Polarization: (-0.67346,-0.173906,-0.718477) - New Momentum Direction: (0.409936,-0.214579,-0.886515) - New Polarization: (-0.912114,-0.0964391,-0.39843) + 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) *** 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.737783,0.638914,0.217865) - Old Polarization: (-0.675038,0.698301,0.238116) - New Momentum Direction: (0.40109,0.867018,0.295647) - New Polarization: (-0.916039,0.379626,0.12945) + 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 *** 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.740909,0.44627,-0.501893) - Old Polarization: (-0.671605,0.492321,-0.553684) - New Momentum Direction: (0.419978,0.603041,-0.678204) - New Polarization: (-0.907534,0.279068,-0.313851) + 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) *** FresnelRefraction *** Track (trackID 267, parentID 1) is processed with stopping code 2 ### pop requested out of 266 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 266, parentID 1) is processed with stopping code 2 ### pop requested out of 265 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.73822,0.425054,-0.523795) - Old Polarization: (-0.674561,0.465167,-0.573226) - New Momentum Direction: (0.403797,0.576464,-0.710378) - New Polarization: (-0.914849,0.254441,-0.313547) + 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) *** FresnelRefraction *** Track (trackID 265, parentID 1) is processed with stopping code 2 ### pop requested out of 264 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737415,0.624248,0.25794) - Old Polarization: (-0.67544,0.681527,0.281608) - New Momentum Direction: (0.398796,0.847537,0.350203) - New Polarization: (-0.91704,0.368571,0.152294) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.739866,-0.355742,-0.571004) - Old Polarization: (-0.672754,-0.39123,-0.627965) - New Momentum Direction: (0.413799,-0.481389,-0.77268) - New Polarization: (-0.910368,-0.218811,-0.351214) + 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) *** FresnelRefraction *** Track (trackID 263, parentID 1) is processed with stopping code 2 ### pop requested out of 262 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739643,-0.64716,0.184693) - Old Polarization: (-0.672999,-0.711245,0.202983) - New Momentum Direction: (0.412462,-0.875999,0.250002) - New Polarization: (-0.910975,-0.396626,0.113193) + 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) *** FresnelRefraction *** Track (trackID 262, parentID 1) is processed with stopping code 2 ### pop requested out of 261 stacked tracks. @@ -309,211 +1347,208 @@ Track (trackID 262, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 261, parentID 1) is processed with stopping code 2 ### pop requested out of 260 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739438,-0.630328,0.236472) - Old Polarization: (-0.673225,-0.692321,0.25973) - New Momentum Direction: (0.411226,-0.853451,0.320179) - New Polarization: (-0.911533,-0.385023,0.144444) - *** FresnelRefraction *** + +** 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.737021,0.672231,-0.0700365) - Old Polarization: (-0.675869,0.733054,-0.0763734) - New Momentum Direction: (0.396316,0.913171,-0.095139) - New Polarization: (-0.918114,0.394183,-0.041068) + 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) + 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) *** 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.737118,0.0415728,0.674484) - Old Polarization: (-0.675764,0.0453472,0.735722) - New Momentum Direction: (0.396925,0.0564658,0.916113) - New Polarization: (-0.917851,0.0244187,0.396173) + 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.74127,-0.219014,-0.63447) - Old Polarization: (-0.671207,-0.241875,-0.700697) - New Momentum Direction: (0.422087,-0.295808,-0.856937) - New Polarization: (-0.906556,-0.137726,-0.398984) + 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 at Boundary! - Old Momentum Direction: (0.738359,-0.395089,-0.546563) - Old Polarization: (-0.674408,-0.432553,-0.59839) - New Momentum Direction: (0.404654,-0.535725,-0.741117) - New Polarization: (-0.91447,-0.237059,-0.327945) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.737091,-0.675774,0.00514197) - Old Polarization: (-0.675793,-0.73707,0.00560837) - New Momentum Direction: (0.396757,-0.917897,0.00698428) - New Polarization: (-0.917924,-0.396746,0.00301884) + 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 *** 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.738618,0.216358,0.638462) - Old Polarization: (-0.674125,0.237057,0.699543) - New Momentum Direction: (0.406244,0.29327,0.865424) - New Polarization: (-0.913765,0.130383,0.384753) + 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) *** FresnelRefraction *** Track (trackID 254, parentID 1) is processed with stopping code 2 ### pop requested out of 253 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738826,0.239914,0.629744) - Old Polarization: (-0.673897,0.263029,0.69042) - New Momentum Direction: (0.407516,0.325107,0.853368) - New Polarization: (-0.913198,0.145079,0.380816) + 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) *** FresnelRefraction *** Track (trackID 253, parentID 1) is processed with stopping code 2 ### pop requested out of 252 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739546,-0.67149,0.0466159) - Old Polarization: (-0.673106,-0.737771,0.0512172) - New Momentum Direction: (0.41188,-0.90905,0.0631077) - New Polarization: (-0.911238,-0.410891,0.0285247) + 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) *** 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.740525,0.0360738,0.67106) - Old Polarization: (-0.672029,0.0397505,0.739457) - New Momentum Direction: (0.417715,0.0487714,0.907268) - New Polarization: (-0.908578,0.0224225,0.417113) + 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 *** Track (trackID 251, parentID 1) is processed with stopping code 2 ### pop requested out of 250 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.742352,0.249983,-0.621629) - Old Polarization: (-0.67001,0.276974,-0.688746) - New Momentum Direction: (0.428336,0.337143,-0.838369) - New Polarization: (-0.90362,0.159813,-0.397405) + 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) *** FresnelRefraction *** Track (trackID 250, parentID 1) is processed with stopping code 2 ### pop requested out of 249 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.736886,-0.390388,-0.551902) -Old Polarization: (-0.676017,-0.425539,-0.601596) -New Polarization: (0.468269,0.410793,0.782287) -Polarization Change: (0.468269,0.410793,0.782287) -New Momentum Direction: (-0.825897,-0.111172,0.552752) -Momentum Change: (-0.825897,-0.111172,0.552752) -Scattering Photon! -Old Momentum Direction: (-0.825897,-0.111172,0.552752) -Old Polarization: (0.468269,0.410793,0.782287) -New Polarization: (0.173272,0.978566,0.111294) -Polarization Change: (0.173272,0.978566,0.111294) -New Momentum Direction: (0.449744,-0.179151,0.875006) -Momentum Change: (0.449744,-0.179151,0.875006) Photon at Boundary! - Old Momentum Direction: (0.449744,-0.179151,0.875006) - Old Polarization: (0.173272,0.978566,0.111294) - New Momentum Direction: (-0.449744,-0.179151,0.875006) - New Polarization: (0.173272,-0.978566,-0.111294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.449744,-0.179151,0.875006) - Old Polarization: (0.173272,-0.978566,-0.111294) - New Momentum Direction: (-0.611053,-0.243406,0.753238) - New Polarization: (0.133308,-0.969603,-0.20518) + 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) *** 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.743602,0.481016,-0.464412) - Old Polarization: (-0.668622,0.534958,-0.516492) - New Momentum Direction: (0.435414,0.647639,-0.625283) - New Polarization: (-0.900231,0.313243,-0.30243) + 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 *** Track (trackID 248, parentID 1) is processed with stopping code 2 ### pop requested out of 247 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 247, parentID 1) is processed with stopping code 2 ### pop requested out of 246 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743077,-0.229614,0.628581) - Old Polarization: (-0.669206,-0.25496,0.697967) - New Momentum Direction: (0.432457,-0.30937,0.846919) - New Polarization: (-0.901655,-0.148382,0.406204) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.74246,0.667012,0.0620305) - Old Polarization: (-0.66989,0.73927,0.0687504) - New Momentum Direction: (0.428956,0.899444,0.0836462) - New Polarization: (-0.903325,0.427113,0.0397205) + 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) *** FresnelRefraction *** Track (trackID 245, parentID 1) is processed with stopping code 2 ### pop requested out of 244 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736004,0.0967892,-0.670022) - Old Polarization: (-0.676977,0.105229,-0.728443) - New Momentum Direction: (0.389826,0.131662,-0.911428) - New Polarization: (-0.920889,0.0557344,-0.385821) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.73738,-0.0630044,-0.672534) - Old Polarization: (-0.675478,-0.0687782,-0.734165) - New Momentum Direction: (0.398572,-0.0855448,-0.913139) - New Polarization: (-0.917137,-0.0371763,-0.396835) + 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) *** FresnelRefraction *** Track (trackID 243, parentID 1) is processed with stopping code 2 ### pop requested out of 242 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737444,-0.247377,-0.628475) - Old Polarization: (-0.675408,-0.270099,-0.6862) - New Momentum Direction: (0.398976,-0.335849,-0.853243) - New Polarization: (-0.916961,-0.14613,-0.371252) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 242, parentID 1) is processed with stopping code 2 ### pop requested out of 241 stacked tracks. ** Photon absorbed! ** Track (trackID 241, parentID 1) is processed with stopping code 2 ### pop requested out of 240 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.740003,-0.111297,0.663332) - Old Polarization: (-0.672604,-0.12245,0.729802) - New Momentum Direction: (0.414616,-0.150579,0.897452) - New Polarization: (-0.909996,-0.0686073,0.4089) - *** FresnelRefraction *** -Track (trackID 240, parentID 1) is processed with stopping code 2 -### pop requested out of 239 stacked tracks. ** Photon absorbed! ** +Track (trackID 240, parentID 1) is processed with stopping code 2 +### pop requested out of 239 stacked tracks. + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 239, parentID 1) is processed with stopping code 2 ### pop requested out of 238 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.744653,-0.623471,-0.238276) - Old Polarization: (-0.667451,-0.695586,-0.265837) - New Momentum Direction: (0.441246,-0.838254,-0.320362) - New Polarization: (-0.897386,-0.412171,-0.157522) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 238, parentID 1) is processed with stopping code 2 ### pop requested out of 237 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.73648,0.63537,-0.23217) - Old Polarization: (-0.67646,0.691744,-0.252769) - New Momentum Direction: (0.392876,0.863733,-0.315615) - New Polarization: (-0.919591,0.369012,-0.13484) + 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) *** 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.741544,-0.632546,0.223602) - Old Polarization: (-0.670904,-0.699148,0.247145) - New Momentum Direction: (0.423685,-0.854021,0.301892) - New Polarization: (-0.905809,-0.399462,0.141208) + 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. @@ -522,240 +1557,694 @@ Track (trackID 236, parentID 1) is processed with stopping code 2 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.74257,0.101317,0.662061) - Old Polarization: (-0.669769,0.11233,0.734024) - New Momentum Direction: (0.42958,0.136602,0.892637) - New Polarization: (-0.903029,0.0649832,0.424637) + 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) *** FresnelRefraction *** Track (trackID 234, parentID 1) is processed with stopping code 2 ### pop requested out of 233 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 233, parentID 1) is processed with stopping code 2 ### pop requested out of 232 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737855,0.674089,-0.0342479) - Old Polarization: (-0.674959,0.736905,-0.0374393) - New Momentum Direction: (0.401542,0.914661,-0.0464704) - New Polarization: (-0.91584,0.401025,-0.0203746) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.739292,-0.397158,0.543794) - Old Polarization: (-0.673385,-0.43603,0.597018) - New Momentum Direction: (0.410349,-0.53785,0.736431) - New Polarization: (-0.911928,-0.242022,0.331379) + 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) *** FresnelRefraction *** Track (trackID 231, parentID 1) is processed with stopping code 2 ### pop requested out of 230 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743977,-0.393091,-0.540349) - Old Polarization: (-0.668205,-0.437666,-0.601623) - New Momentum Direction: (0.437507,-0.528989,-0.727158) - New Polarization: (-0.899215,-0.257376,-0.353793) + 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) *** FresnelRefraction *** Track (trackID 230, parentID 1) is processed with stopping code 2 ### pop requested out of 229 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 229, parentID 1) is processed with stopping code 2 ### pop requested out of 228 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737701,-0.579787,0.345897) - Old Polarization: (-0.675127,-0.633524,0.377956) - New Momentum Direction: (0.400583,-0.786867,0.469439) - New Polarization: (-0.916261,-0.344013,0.205236) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.737655,-0.46326,-0.491177) - Old Polarization: (-0.675178,-0.506128,-0.536628) - New Momentum Direction: (0.400294,-0.628761,-0.666652) - New Polarization: (-0.916387,-0.274654,-0.291205) + 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) *** 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 G4Scintillation::DoIt -- NumberOfSecondaries = 35 +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.735984,-0.404922,-0.542555) - Old Polarization: (-0.676999,-0.440201,-0.589826) - New Momentum Direction: (0.389693,-0.550829,-0.738056) - New Polarization: (-0.920945,-0.23308,-0.312304) + 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) + *** FresnelRefraction *** +Track (trackID 409, 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) + *** FresnelRefraction *** +Track (trackID 408, 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 +### 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) + *** FresnelRefraction *** +Track (trackID 406, 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 +### 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) + *** FresnelRefraction *** +Track (trackID 404, 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) + *** FresnelRefraction *** +Track (trackID 403, 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 +### 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 +### 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) + *** FresnelRefraction *** +Track (trackID 400, 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) + *** FresnelRefraction *** +Track (trackID 399, 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) + *** FresnelRefraction *** +Track (trackID 398, 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) + *** FresnelRefraction *** +Track (trackID 397, 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) + *** FresnelRefraction *** +Track (trackID 396, 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) + *** FresnelRefraction *** +Track (trackID 395, 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) + *** FresnelRefraction *** +Track (trackID 394, 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 +### 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) + *** FresnelRefraction *** +Track (trackID 392, 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 +### 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. + 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. + +** Photon absorbed! ** +Track (trackID 388, parentID 226) is processed with stopping code 2 +### pop requested out of 229 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) + *** FresnelRefraction *** +Track (trackID 387, 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) + *** FresnelRefraction *** +Track (trackID 386, 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) + *** FresnelRefraction *** +Track (trackID 385, parentID 226) is processed with stopping code 2 +### pop requested out of 226 stacked tracks. Track (trackID 226, parentID 1) is processed with stopping code 2 ### pop requested out of 225 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 225, parentID 1) is processed with stopping code 2 ### pop requested out of 224 stacked tracks. - -** Photon absorbed! ** + 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 *** Track (trackID 224, parentID 1) is processed with stopping code 2 ### pop requested out of 223 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.737973,0.385994,-0.553539) -Old Polarization: (-0.674831,0.42211,-0.605332) -New Polarization: (0.00369749,-0.910624,0.413219) -Polarization Change: (0.00369749,-0.910624,0.413219) -New Momentum Direction: (0.872378,0.204929,0.443802) -Momentum Change: (0.872378,0.204929,0.443802) - Photon at Boundary! - Old Momentum Direction: (0.872378,0.204929,0.443802) - Old Polarization: (0.00369749,-0.910624,0.413219) - New Momentum Direction: (0.748459,0.27802,0.602092) - New Polarization: (-0.00696456,-0.904539,0.426335) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 223, parentID 1) is processed with stopping code 2 ### pop requested out of 222 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.735928,0.203423,0.645778) -Old Polarization: (-0.67706,0.22111,0.701926) -New Polarization: (-0.0482308,0.159861,0.985961) -Polarization Change: (-0.0482308,0.159861,0.985961) -New Momentum Direction: (-0.985479,0.153274,-0.0730587) -Momentum Change: (-0.985479,0.153274,-0.0730587) Photon at Boundary! - Old Momentum Direction: (-0.985479,0.153274,-0.0730587) - Old Polarization: (-0.0482308,0.159861,0.985961) - New Momentum Direction: (-0.972955,0.20852,-0.0993918) - New Polarization: (0.0864955,0.727842,0.680268) + 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 *** Track (trackID 222, parentID 1) is processed with stopping code 2 ### pop requested out of 221 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 221, parentID 1) is processed with stopping code 2 ### pop requested out of 220 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.73758,0.203048,-0.644009) - Old Polarization: (-0.67526,0.221788,-0.703444) - New Momentum Direction: (0.399824,0.275616,-0.874172) - New Polarization: (-0.916592,0.120226,-0.38132) + 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) *** 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.74277,0.466967,0.479828) - Old Polarization: (-0.669547,0.518035,0.532303) - New Momentum Direction: (0.430719,0.629427,0.646763) - New Polarization: (-0.902486,0.300399,0.308673) + 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 *** Track (trackID 219, parentID 1) is processed with stopping code 2 ### pop requested out of 218 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 218, parentID 1) is processed with stopping code 2 ### pop requested out of 217 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736184,-0.38499,-0.556611) - Old Polarization: (-0.676781,-0.418781,-0.605466) - New Momentum Direction: (0.390983,-0.523572,-0.756971) - New Polarization: (-0.920398,-0.222412,-0.321559) + 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) *** FresnelRefraction *** Track (trackID 217, parentID 1) is processed with stopping code 2 ### pop requested out of 216 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736584,-0.673996,-0.0563321) - Old Polarization: (-0.676346,-0.734025,-0.0613493) - New Momentum Direction: (0.393544,-0.916112,-0.076568) - New Polarization: (-0.919306,-0.392177,-0.0327779) + 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) *** FresnelRefraction *** Track (trackID 216, parentID 1) is processed with stopping code 2 ### pop requested out of 215 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739805,0.0370281,-0.671802) - Old Polarization: (-0.672822,0.0407145,-0.738683) - New Momentum Direction: (0.413431,0.0501105,-0.909156) - New Polarization: (-0.910536,0.0227528,-0.412804) + 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) *** FresnelRefraction *** Track (trackID 215, parentID 1) is processed with stopping code 2 ### pop requested out of 214 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738319,0.0455993,0.672908) - Old Polarization: (-0.674451,0.0499174,0.73663) - New Momentum Direction: (0.404413,0.061834,0.912484) - New Polarization: (-0.914577,0.0273421,0.403487) + 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) *** FresnelRefraction *** Track (trackID 214, parentID 1) is processed with stopping code 2 ### pop requested out of 213 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736438,0.676364,0.0137998) - Old Polarization: (-0.676505,0.736285,0.0150224) - New Momentum Direction: (0.392612,0.919513,0.0187608) - New Polarization: (-0.919704,0.39253,0.00800878) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.738939,-0.480393,-0.472431) - Old Polarization: (-0.673772,-0.526857,-0.518125) - New Momentum Direction: (0.408207,-0.650881,-0.640094) - New Polarization: (-0.912889,-0.291048,-0.286224) + 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 *** Track (trackID 212, parentID 1) is processed with stopping code 2 ### pop requested out of 211 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742539,-0.10177,-0.662027) - Old Polarization: (-0.669803,-0.112821,-0.733918) - New Momentum Direction: (0.429403,-0.137219,-0.892628) - New Polarization: (-0.903113,-0.0652433,-0.424417) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 211, parentID 1) is processed with stopping code 2 ### pop requested out of 210 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742628,-0.0945272,0.662999) - Old Polarization: (-0.669704,-0.10482,0.735193) - New Momentum Direction: (0.429913,-0.127438,0.893831) - New Polarization: (-0.90287,-0.0606812,0.425609) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.738071,0.511231,-0.440334) - Old Polarization: (-0.674723,0.559229,-0.481676) - New Momentum Direction: (0.402881,0.693478,-0.597307) - New Polarization: (-0.915253,0.305259,-0.262926) + 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 at Boundary! - Old Momentum Direction: (0.740263,-0.626582,0.243734) - Old Polarization: (-0.672318,-0.689905,0.268366) - New Momentum Direction: (0.416162,-0.847434,0.329643) - New Polarization: (-0.909291,-0.387852,0.15087) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.743764,-0.647722,-0.165143) - Old Polarization: (-0.668442,-0.720708,-0.183752) - New Momentum Direction: (0.436316,-0.871901,-0.2223) - New Polarization: (-0.899793,-0.422791,-0.107795) + 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) *** FresnelRefraction *** Track (trackID 207, parentID 1) is processed with stopping code 2 ### pop requested out of 206 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737018,0.168835,0.654446) - Old Polarization: (-0.675873,0.18411,0.713652) - New Momentum Direction: (0.396294,0.22935,0.889016) - New Polarization: (-0.918124,0.0989957,0.38373) + 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) *** FresnelRefraction *** Track (trackID 206, parentID 1) is processed with stopping code 2 ### pop requested out of 205 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738793,0.214429,-0.638909) - Old Polarization: (-0.673932,0.235066,-0.700399) - New Momentum Direction: (0.407316,0.290586,-0.865825) - New Polarization: (-0.913287,0.129598,-0.386149) + 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) *** 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.742357,0.659544,-0.117931) - Old Polarization: (-0.670004,0.730767,-0.130667) - New Momentum Direction: (0.428367,0.889497,-0.159049) - New Polarization: (-0.903605,0.421679,-0.0753994) + 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. @@ -764,26 +2253,26 @@ Track (trackID 204, parentID 1) is processed with stopping code 2 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.74466,0.160589,0.647837) - Old Polarization: (-0.667444,0.179167,0.722785) - New Momentum Direction: (0.441283,0.215909,0.871007) - New Polarization: (-0.897368,0.106174,0.42832) + 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) *** FresnelRefraction *** Track (trackID 202, parentID 1) is processed with stopping code 2 ### pop requested out of 201 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739905,0.558542,-0.374928) - Old Polarization: (-0.672711,0.614332,-0.412378) - New Momentum Direction: (0.414032,0.755777,-0.507325) - New Polarization: (-0.910262,0.343764,-0.230756) + 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) *** FresnelRefraction *** Track (trackID 201, parentID 1) is processed with stopping code 2 ### pop requested out of 200 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738427,0.612208,-0.282715) - Old Polarization: (-0.674334,0.670396,-0.309586) - New Momentum Direction: (0.405073,0.830052,-0.383314) - New Polarization: (-0.914284,0.367754,-0.169827) + 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) *** FresnelRefraction *** Track (trackID 200, parentID 1) is processed with stopping code 2 ### pop requested out of 199 stacked tracks. @@ -791,237 +2280,223 @@ Track (trackID 200, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 199, parentID 1) is processed with stopping code 2 ### pop requested out of 198 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 198, parentID 1) is processed with stopping code 2 ### pop requested out of 197 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.74042,-0.671615,0.0266912) - Old Polarization: (-0.672145,-0.739836,0.0294024) - New Momentum Direction: (0.417093,-0.908147,0.0360915) - New Polarization: (-0.908864,-0.416764,0.016563) + 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) *** FresnelRefraction *** Track (trackID 197, parentID 1) is processed with stopping code 2 ### pop requested out of 196 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.7361,0.670472,0.0928636) - Old Polarization: (-0.676873,0.729139,0.100989) - New Momentum Direction: (0.390441,0.911922,0.126306) - New Polarization: (-0.920628,0.386749,0.0535666) - *** FresnelRefraction *** -Track (trackID 196, parentID 1) is processed with stopping code 2 -### pop requested out of 195 stacked tracks. ** Photon absorbed! ** +Track (trackID 196, parentID 1) is processed with stopping code 2 +### pop requested out of 195 stacked tracks. + 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) + *** 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.737445,0.177217,-0.651743) - Old Polarization: (-0.675408,0.193495,-0.711607) - New Momentum Direction: (0.398979,0.240597,-0.884832) - New Polarization: (-0.91696,0.104686,-0.385) + 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 *** 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.743406,0.322222,0.586105) - Old Polarization: (-0.66884,0.358146,0.651448) - New Momentum Direction: (0.434314,0.433954,0.789339) - New Polarization: (-0.900761,0.209237,0.38059) + 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) *** 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.736667,0.623629,-0.261552) - Old Polarization: (-0.676256,0.679338,-0.284917) - New Momentum Direction: (0.394069,0.847557,-0.355468) - New Polarization: (-0.919081,0.363402,-0.152412) + 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 *** Track (trackID 192, parentID 1) is processed with stopping code 2 ### pop requested out of 191 stacked tracks. - -** Photon absorbed! ** + 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) + *** 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.737517,-0.0345049,0.674447) - Old Polarization: (-0.675329,-0.0376823,0.736554) - New Momentum Direction: (0.399432,-0.0468406,0.915565) - New Polarization: (-0.916763,-0.0204084,0.398911) + 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 *** Track (trackID 190, parentID 1) is processed with stopping code 2 ### pop requested out of 189 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 189, parentID 1) is processed with stopping code 2 ### pop requested out of 188 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 188, parentID 1) is processed with stopping code 2 ### pop requested out of 187 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736719,0.618929,-0.272344) - Old Polarization: (-0.676199,0.674324,-0.296719) - New Momentum Direction: (0.394402,0.84111,-0.370109) - New Polarization: (-0.918938,0.360999,-0.158848) + 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) *** FresnelRefraction *** Track (trackID 187, parentID 1) is processed with stopping code 2 ### pop requested out of 186 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737332,0.446481,-0.506947) - Old Polarization: (-0.67553,0.487329,-0.553326) - New Momentum Direction: (0.398276,0.606253,-0.688356) - New Polarization: (-0.917266,0.263235,-0.298884) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 186, parentID 1) is processed with stopping code 2 ### pop requested out of 185 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743444,0.415689,0.523921) - Old Polarization: (-0.668798,0.462085,0.582397) - New Momentum Direction: (0.434526,0.559802,0.705556) - New Polarization: (-0.900659,0.270078,0.340397) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 185, parentID 1) is processed with stopping code 2 ### pop requested out of 184 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742967,-0.502636,-0.441993) - Old Polarization: (-0.669328,-0.557935,-0.49062) - New Momentum Direction: (0.431835,-0.677326,-0.595607) - New Polarization: (-0.901953,-0.324289,-0.285163) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 184, parentID 1) is processed with stopping code 2 ### pop requested out of 183 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.741496,0.663497,-0.0997765) - Old Polarization: (-0.670957,0.733251,-0.110266) - New Momentum Direction: (0.423404,0.895868,-0.13472) - New Polarization: (-0.905941,0.418696,-0.0629633) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.744447,-0.447247,0.49575) - Old Polarization: (-0.667681,-0.49867,0.552748) - New Momentum Direction: (0.440112,-0.601489,0.666718) - New Polarization: (-0.897943,-0.29481,0.326781) + 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) *** FresnelRefraction *** Track (trackID 182, parentID 1) is processed with stopping code 2 ### pop requested out of 181 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739155,0.646676,-0.188307) - Old Polarization: (-0.673535,0.709679,-0.206653) - New Momentum Direction: (0.409518,0.875922,-0.255062) - New Polarization: (-0.912302,0.393187,-0.114493) + 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) *** FresnelRefraction *** Track (trackID 181, parentID 1) is processed with stopping code 2 ### pop requested out of 180 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739936,-0.6716,0.0380585) - Old Polarization: (-0.672678,-0.73875,0.0418638) - New Momentum Direction: (0.414215,-0.908721,0.0514958) - New Polarization: (-0.910179,-0.413551,0.0234353) + 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) *** FresnelRefraction *** Track (trackID 180, parentID 1) is processed with stopping code 2 ### pop requested out of 179 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736546,-0.505038,0.44993) - Old Polarization: (-0.676387,-0.549956,0.489947) - New Momentum Direction: (0.393299,-0.686496,0.611587) - New Polarization: (-0.91941,-0.293665,0.261621) - *** FresnelRefraction *** + +** 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.742915,-0.0682557,0.665896) - Old Polarization: (-0.669385,-0.0757534,0.739043) - New Momentum Direction: (0.431545,-0.0919842,0.897389) - New Polarization: (-0.902091,-0.0440037,0.429296) + 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 *** 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.73912,0.0633263,-0.670591) - Old Polarization: (-0.673574,0.0694886,-0.735846) - New Momentum Direction: (0.409304,0.0857794,-0.908357) - New Polarization: (-0.912398,0.0384809,-0.407492) + 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) *** FresnelRefraction *** Track (trackID 177, parentID 1) is processed with stopping code 2 ### pop requested out of 176 stacked tracks. - -** Photon absorbed! ** + 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 *** Track (trackID 176, parentID 1) is processed with stopping code 2 ### pop requested out of 175 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 175, parentID 1) is processed with stopping code 2 ### pop requested out of 174 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.736526,0.510338,0.443942) -Old Polarization: (-0.676409,0.555695,0.483398) -New Polarization: (-0.294192,0.614211,0.732254) -Polarization Change: (-0.294192,0.614211,0.732254) -New Momentum Direction: (0.923597,-0.0143438,0.383097) -Momentum Change: (0.923597,-0.0143438,0.383097) Photon at Boundary! - Old Momentum Direction: (0.923597,-0.0143438,0.383097) - Old Polarization: (-0.294192,0.614211,0.732254) - New Momentum Direction: (0.853482,-0.019498,0.520757) - New Polarization: (-0.445414,0.49143,0.7484) + 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 *** 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.741157,0.306759,-0.597148) - Old Polarization: (-0.671332,0.338665,-0.659257) - New Momentum Direction: (0.42143,0.414382,-0.80665) - New Polarization: (-0.906861,0.192568,-0.37486) + 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 *** 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.740207,0.518195,0.428448) - Old Polarization: (-0.672379,0.570469,0.471669) - New Momentum Direction: (0.415834,0.700896,0.579506) - New Polarization: (-0.909441,0.320478,0.264974) + 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) *** FresnelRefraction *** Track (trackID 172, parentID 1) is processed with stopping code 2 ### pop requested out of 171 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738984,-0.313888,-0.596136) - Old Polarization: (-0.673723,-0.344292,-0.65388) - New Momentum Direction: (0.408478,-0.425259,-0.807651) - New Polarization: (-0.912768,-0.19031,-0.361437) + 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) *** FresnelRefraction *** Track (trackID 171, parentID 1) is processed with stopping code 2 ### pop requested out of 170 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.73746,0.337846,0.584818) -Old Polarization: (-0.67539,0.368895,0.638564) -New Polarization: (-0.863578,0.50392,-0.0172409) -Polarization Change: (-0.863578,0.50392,-0.0172409) -New Momentum Direction: (0.0317135,0.0201588,-0.999294) -Momentum Change: (0.0317135,0.0201588,-0.999294) - Photon at Boundary! - Old Momentum Direction: (0.0317135,0.0201588,-0.999294) - Old Polarization: (-0.863578,0.50392,-0.0172409) - New Momentum Direction: (0.0430546,0.0273678,-0.998698) - New Polarization: (0.0445733,0.998577,0.029286) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.742694,0.0630562,-0.666655) - Old Polarization: (-0.669631,0.0699363,-0.739394) - New Momentum Direction: (0.43029,0.0850025,-0.89868) - New Polarization: (-0.902691,0.0405185,-0.428378) + 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) *** FresnelRefraction *** Track (trackID 169, parentID 1) is processed with stopping code 2 ### pop requested out of 168 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736875,-0.454578,0.500374) - Old Polarization: (-0.676029,-0.495492,0.54541) - New Momentum Direction: (0.395392,-0.61763,0.679852) - New Polarization: (-0.918513,-0.265871,0.292656) + 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) *** FresnelRefraction *** Track (trackID 168, parentID 1) is processed with stopping code 2 ### pop requested out of 167 stacked tracks. @@ -1030,397 +2505,467 @@ Track (trackID 168, parentID 1) is processed with stopping code 2 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.745131,-0.520739,-0.416666) - Old Polarization: (-0.666918,-0.581809,-0.465531) - New Momentum Direction: (0.443864,-0.699683,-0.559847) - New Polarization: (-0.896094,-0.346575,-0.27731) + 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) *** FresnelRefraction *** Track (trackID 166, parentID 1) is processed with stopping code 2 ### pop requested out of 165 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.7386,0.1422,-0.658976) - Old Polarization: (-0.674144,0.155796,-0.721982) - New Momentum Direction: (0.406138,0.192754,-0.893251) - New Polarization: (-0.913812,0.0856683,-0.397) - *** FresnelRefraction *** -Track (trackID 165, parentID 1) is processed with stopping code 2 -### pop requested out of 164 stacked tracks. ** 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 *** 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.736248,-0.210635,-0.643095) - Old Polarization: (-0.676712,-0.229167,-0.699674) - New Momentum Direction: (0.391394,-0.286431,-0.87451) - New Polarization: (-0.920223,-0.121826,-0.371951) + 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) *** FresnelRefraction *** Track (trackID 163, parentID 1) is processed with stopping code 2 ### pop requested out of 162 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.74093,0.29532,0.603166) - Old Polarization: (-0.671582,0.325815,0.665448) - New Momentum Direction: (0.4201,0.399053,0.81503) - New Polarization: (-0.907478,0.184734,0.377303) + 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) *** FresnelRefraction *** Track (trackID 162, parentID 1) is processed with stopping code 2 ### pop requested out of 161 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 161, parentID 1) is processed with stopping code 2 ### pop requested out of 160 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736022,0.676787,0.0152323) - Old Polarization: (-0.676958,0.735835,0.0165613) - New Momentum Direction: (0.389936,0.920609,0.02072) - New Polarization: (-0.920842,0.389837,0.00877399) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.739737,0.241168,-0.628194) - Old Polarization: (-0.672896,0.265124,-0.690594) - New Momentum Direction: (0.413024,0.326404,-0.850218) - New Polarization: (-0.91072,0.148029,-0.385586) + 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) *** FresnelRefraction *** Track (trackID 159, parentID 1) is processed with stopping code 2 ### pop requested out of 158 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736045,-0.506945,-0.448604) - Old Polarization: (-0.676933,-0.551213,-0.487777) - New Momentum Direction: (0.390085,-0.689557,-0.6102) - New Polarization: (-0.920779,-0.292129,-0.258509) + 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) *** 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.742948,0.649433,-0.162064) - Old Polarization: (-0.66935,0.720842,-0.179884) - New Momentum Direction: (0.431727,0.875166,-0.218395) - New Polarization: (-0.902004,0.418882,-0.104531) + 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) *** FresnelRefraction *** Track (trackID 157, parentID 1) is processed with stopping code 2 ### pop requested out of 156 stacked tracks. - -** Photon absorbed! ** + 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 *** Track (trackID 156, parentID 1) is processed with stopping code 2 ### pop requested out of 155 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 155, parentID 1) is processed with stopping code 2 ### pop requested out of 154 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736282,-0.471045,0.485805) - Old Polarization: (-0.676675,-0.512538,0.528598) - New Momentum Direction: (0.391608,-0.640519,0.66059) - New Polarization: (-0.920132,-0.272605,0.281147) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 154, parentID 1) is processed with stopping code 2 ### pop requested out of 153 stacked tracks. - -** Photon absorbed! ** + 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 *** Track (trackID 153, parentID 1) is processed with stopping code 2 ### pop requested out of 152 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 152, parentID 1) is processed with stopping code 2 ### pop requested out of 151 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738198,0.233589,0.632851) - Old Polarization: (-0.674584,0.255617,0.692529) - New Momentum Direction: (0.403663,0.316806,0.858306) - New Polarization: (-0.914908,0.139777,0.37869) + 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) *** FresnelRefraction *** Track (trackID 151, parentID 1) is processed with stopping code 2 ### pop requested out of 150 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737051,-0.311929,-0.599547) - Old Polarization: (-0.675837,-0.340182,-0.65385) - New Momentum Direction: (0.396502,-0.423713,-0.814404) - New Polarization: (-0.918034,-0.183003,-0.351744) + 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) *** FresnelRefraction *** Track (trackID 150, parentID 1) is processed with stopping code 2 ### pop requested out of 149 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.741393,0.654094,0.149989) - Old Polarization: (-0.671071,0.722638,0.165707) - New Momentum Direction: (0.422808,0.883294,0.202547) - New Polarization: (-0.906219,0.412112,0.0945007) - *** FresnelRefraction *** -Track (trackID 149, parentID 1) is processed with stopping code 2 -### pop requested out of 148 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! ** +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) + *** 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.736954,-0.570544,-0.362462) - Old Polarization: (-0.675943,-0.622041,-0.395178) - New Momentum Direction: (0.395891,-0.775108,-0.49242) - New Polarization: (-0.918298,-0.33416,-0.212289) + 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 at Boundary! - Old Momentum Direction: (0.736563,-0.391762,-0.55136) - Old Polarization: (-0.676369,-0.426627,-0.600428) - New Momentum Direction: (0.393408,-0.532508,-0.749443) - New Polarization: (-0.919364,-0.227867,-0.320697) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.744091,-0.623542,0.239842) - Old Polarization: (-0.668078,-0.694487,0.267131) - New Momentum Direction: (0.438138,-0.838983,0.322711) - New Polarization: (-0.898908,-0.40893,0.157293) + 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) *** FresnelRefraction *** Track (trackID 145, parentID 1) is processed with stopping code 2 ### pop requested out of 144 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 144, parentID 1) is processed with stopping code 2 ### pop requested out of 143 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737055,-0.574672,-0.355672) - Old Polarization: (-0.675833,-0.62673,-0.387891) - New Momentum Direction: (0.396526,-0.780611,-0.483129) - New Polarization: (-0.918023,-0.337173,-0.20868) + 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) *** FresnelRefraction *** Track (trackID 143, parentID 1) is processed with stopping code 2 ### pop requested out of 142 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.74185,0.481904,-0.466292) - Old Polarization: (-0.670566,0.533132,-0.51586) - New Momentum Direction: (0.425451,0.650367,-0.629297) - New Polarization: (-0.904982,0.305751,-0.295846) + 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) *** FresnelRefraction *** Track (trackID 142, parentID 1) is processed with stopping code 2 ### pop requested out of 141 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738275,-0.446782,0.505308) - Old Polarization: (-0.6745,-0.489026,0.553086) - New Momentum Direction: (0.40414,-0.605886,0.685254) - New Polarization: (-0.914697,-0.267698,0.302765) + 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) *** FresnelRefraction *** Track (trackID 141, parentID 1) is processed with stopping code 2 ### pop requested out of 140 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739916,0.56929,-0.358377) - Old Polarization: (-0.6727,0.626173,-0.394186) - New Momentum Direction: (0.414095,0.770309,-0.484922) - New Polarization: (-0.910234,0.350439,-0.220607) + 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) *** FresnelRefraction *** Track (trackID 140, parentID 1) is processed with stopping code 2 ### pop requested out of 139 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.740143,0.224942,-0.63371) - Old Polarization: (-0.672449,0.247587,-0.697505) - New Momentum Direction: (0.415452,0.304277,-0.857214) - New Polarization: (-0.909615,0.138974,-0.391518) + 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) *** 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.742166,-0.638327,0.204274) - Old Polarization: (-0.670216,-0.706854,0.226204) - New Momentum Direction: (0.427271,-0.861105,0.275567) - New Polarization: (-0.904124,-0.406941,0.130227) + 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 *** Track (trackID 138, parentID 1) is processed with stopping code 2 ### pop requested out of 137 stacked tracks. - -** Photon absorbed! ** + 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 *** 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.737102,-0.656027,0.1622) - Old Polarization: (-0.675781,-0.715556,0.176918) - New Momentum Direction: (0.396828,-0.891061,0.220311) - New Polarization: (-0.917893,-0.385228,0.095246) + 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) *** 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.735812,0.612664,-0.288486) - Old Polarization: (-0.677186,0.665703,-0.313461) - New Momentum Direction: (0.388581,0.833622,-0.39253) - New Polarization: (-0.921415,0.351557,-0.165538) + 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 *** Track (trackID 135, parentID 1) is processed with stopping code 2 ### pop requested out of 134 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739847,-0.365311,0.564955) - Old Polarization: (-0.672775,-0.401731,0.621278) - New Momentum Direction: (0.413686,-0.49435,0.764514) - New Polarization: (-0.91042,-0.224628,0.347388) - *** FresnelRefraction *** -Track (trackID 134, parentID 1) is processed with stopping code 2 -### pop requested out of 133 stacked tracks. ** Photon absorbed! ** +Track (trackID 134, parentID 1) is processed with stopping code 2 +### pop requested out of 133 stacked tracks. + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 133, parentID 1) is processed with stopping code 2 ### pop requested out of 132 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739062,0.512961,0.436644) - Old Polarization: (-0.673637,0.562781,0.479052) - New Momentum Direction: (0.408956,0.694891,0.591508) - New Polarization: (-0.912554,0.311411,0.265081) + 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) *** FresnelRefraction *** Track (trackID 132, parentID 1) is processed with stopping code 2 ### pop requested out of 131 stacked tracks. - -** Photon absorbed! ** + 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 *** 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.739048,-0.451947,-0.499553) - Old Polarization: (-0.673653,-0.495819,-0.548046) - New Momentum Direction: (0.408865,-0.61225,-0.676741) - New Polarization: (-0.912595,-0.274303,-0.303197) + 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) *** FresnelRefraction *** Track (trackID 130, parentID 1) is processed with stopping code 2 ### pop requested out of 129 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738403,0.541417,-0.402031) - Old Polarization: (-0.67436,0.592835,-0.440211) - New Momentum Direction: (0.404928,0.734095,-0.545104) - New Polarization: (-0.914349,0.325101,-0.241405) + 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) *** FresnelRefraction *** Track (trackID 129, parentID 1) is processed with stopping code 2 ### pop requested out of 128 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 128, parentID 1) is processed with stopping code 2 ### pop requested out of 127 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.742504,-0.443079,-0.502363) - Old Polarization: (-0.669842,-0.491143,-0.556858) - New Momentum Direction: (0.429206,-0.597443,-0.677381) - New Polarization: (-0.903207,-0.283906,-0.321893) + 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) *** FresnelRefraction *** Track (trackID 127, parentID 1) is processed with stopping code 2 ### pop requested out of 126 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737223,0.590994,0.327458) - Old Polarization: (-0.67565,0.644852,0.3573) - New Momentum Direction: (0.397587,0.802598,0.444704) - New Polarization: (-0.917565,0.347771,0.192693) + 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) *** FresnelRefraction *** Track (trackID 126, parentID 1) is processed with stopping code 2 ### pop requested out of 125 stacked tracks. - -** Photon absorbed! ** + 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 *** 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.738533,0.0944575,-0.667568) - Old Polarization: (-0.674218,0.103468,-0.731249) - New Momentum Direction: (0.405724,0.12805,-0.904981) - New Polarization: (-0.913995,0.0568418,-0.401723) + 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) *** FresnelRefraction *** Track (trackID 124, parentID 1) is processed with stopping code 2 ### pop requested out of 123 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.741892,0.0325406,-0.669729) - Old Polarization: (-0.670519,0.0360044,-0.741018) - New Momentum Direction: (0.425697,0.0439136,-0.903799) - New Polarization: (-0.904866,0.0206593,-0.425196) + 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) *** FresnelRefraction *** Track (trackID 123, parentID 1) is processed with stopping code 2 ### pop requested out of 122 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743867,-0.10827,0.659499) - Old Polarization: (-0.668328,-0.120508,0.734041) - New Momentum Direction: (0.436891,-0.145723,0.887632) - New Polarization: (-0.899514,-0.0707773,0.43112) + 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) *** FresnelRefraction *** Track (trackID 122, parentID 1) is processed with stopping code 2 ### pop requested out of 121 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736028,-0.142693,-0.661741) - Old Polarization: (-0.676951,-0.155145,-0.719491) - New Momentum Direction: (0.389981,-0.194098,-0.900134) - New Polarization: (-0.920823,-0.082203,-0.381219) + 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) *** FresnelRefraction *** Track (trackID 121, parentID 1) is processed with stopping code 2 ### pop requested out of 120 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.736344,0.674834,-0.0489474) -Old Polarization: (-0.676607,0.734415,-0.0532689) -New Polarization: (0.489547,-0.864343,0.115129) -Polarization Change: (0.489547,-0.864343,0.115129) -New Momentum Direction: (-0.856354,-0.451686,0.250274) -Momentum Change: (-0.856354,-0.451686,0.250274) Photon at Boundary! - Old Momentum Direction: (-0.856354,-0.451686,0.250274) - Old Polarization: (0.489547,-0.864343,0.115129) - New Momentum Direction: (-0.712061,-0.614144,0.340289) - New Polarization: (0.682724,-0.718762,0.131413) + 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) *** FresnelRefraction *** Track (trackID 120, parentID 1) is processed with stopping code 2 ### pop requested out of 119 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739731,0.279708,0.612015) - Old Polarization: (-0.672903,0.307487,0.672795) - New Momentum Direction: (0.412987,0.378569,0.828328) - New Polarization: (-0.910737,0.171668,0.375618) + 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) *** FresnelRefraction *** Track (trackID 119, parentID 1) is processed with stopping code 2 ### pop requested out of 118 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.740414,-0.622009,0.254739) - Old Polarization: (-0.672151,-0.685179,0.28061) - New Momentum Direction: (0.417059,-0.841078,0.344457) - New Polarization: (-0.90888,-0.385946,0.158061) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 118, parentID 1) is processed with stopping code 2 ### pop requested out of 117 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738253,-0.458729,0.494519) - Old Polarization: (-0.674524,-0.502071,0.541242) - New Momentum Direction: (0.404006,-0.622107,0.670644) - New Polarization: (-0.914757,-0.274756,0.296192) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.737025,-0.618725,0.27198) - Old Polarization: (-0.675865,-0.674715,0.296591) - New Momentum Direction: (0.396341,-0.840484,0.36946) - New Polarization: (-0.918104,-0.362833,0.159494) + 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 *** 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.743324,0.666742,0.0540779) - Old Polarization: (-0.668931,0.740891,0.060092) - New Momentum Direction: (0.433852,0.898035,0.0728376) - New Polarization: (-0.900984,0.432432,0.0350736) + 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) *** FresnelRefraction *** Track (trackID 115, parentID 1) is processed with stopping code 2 ### pop requested out of 114 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.740661,-0.501578,0.447036) - Old Polarization: (-0.671879,-0.552926,0.4928) - New Momentum Direction: (0.418517,-0.678005,0.604278) - New Polarization: (-0.908209,-0.312436,0.278461) + 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) *** FresnelRefraction *** Track (trackID 114, parentID 1) is processed with stopping code 2 ### pop requested out of 113 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738668,-0.320881,0.592794) - Old Polarization: (-0.674069,-0.351633,0.649604) - New Momentum Direction: (0.406554,-0.434919,0.803467) - New Polarization: (-0.913627,-0.193534,0.357534) + 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) *** FresnelRefraction *** Track (trackID 113, parentID 1) is processed with stopping code 2 ### pop requested out of 112 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.744453,0.613461,0.263544) - Old Polarization: (-0.667675,0.684005,0.29385) - New Momentum Direction: (0.440144,0.825017,0.354429) - New Polarization: (-0.897927,0.404405,0.173733) + 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) *** FresnelRefraction *** Track (trackID 112, parentID 1) is processed with stopping code 2 ### pop requested out of 111 stacked tracks. @@ -1428,179 +2973,183 @@ Track (trackID 112, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 111, parentID 1) is processed with stopping code 2 ### pop requested out of 110 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 110, parentID 1) is processed with stopping code 2 ### pop requested out of 109 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743526,-0.475939,0.469735) - Old Polarization: (-0.668707,-0.52919,0.522292) - New Momentum Direction: (0.434987,-0.640868,0.632514) - New Polarization: (-0.900437,-0.309594,0.305558) + 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) *** FresnelRefraction *** Track (trackID 109, parentID 1) is processed with stopping code 2 ### pop requested out of 108 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737896,-0.580077,-0.344993) - Old Polarization: (-0.674915,-0.634209,-0.377186) - New Momentum Direction: (0.401793,-0.787055,-0.468089) - New Polarization: (-0.915731,-0.345334,-0.205382) + 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) *** FresnelRefraction *** Track (trackID 108, parentID 1) is processed with stopping code 2 ### pop requested out of 107 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738892,-0.584161,0.335849) - Old Polarization: (-0.673824,-0.640571,0.36828) - New Momentum Direction: (0.407921,-0.791526,0.455068) - New Polarization: (-0.913017,-0.353641,0.203317) + 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) *** FresnelRefraction *** Track (trackID 107, parentID 1) is processed with stopping code 2 ### pop requested out of 106 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736089,-0.281854,0.615411) - Old Polarization: (-0.676885,-0.306507,0.669239) - New Momentum Direction: (0.390372,-0.383361,0.837045) - New Polarization: (-0.920657,-0.162551,0.354919) + 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) *** FresnelRefraction *** Track (trackID 106, parentID 1) is processed with stopping code 2 ### pop requested out of 105 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739036,-0.54847,-0.391162) - Old Polarization: (-0.673666,-0.60169,-0.429118) - New Momentum Direction: (0.408793,-0.743021,-0.529914) - New Polarization: (-0.912627,-0.332821,-0.237364) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 105, parentID 1) is processed with stopping code 2 ### pop requested out of 104 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.74061,-0.565712,-0.362585) - Old Polarization: (-0.671936,-0.623529,-0.399642) - New Momentum Direction: (0.418215,-0.764751,-0.490155) - New Polarization: (-0.908348,-0.352101,-0.225674) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 104, parentID 1) is processed with stopping code 2 ### pop requested out of 103 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.74367,-0.505231,0.437831) - Old Polarization: (-0.668547,-0.562003,0.48703) - New Momentum Direction: (0.435792,-0.68018,0.589441) - New Polarization: (-0.900047,-0.329335,0.2854) + 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) *** FresnelRefraction *** Track (trackID 103, parentID 1) is processed with stopping code 2 ### pop requested out of 102 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736392,0.507652,-0.447233) - Old Polarization: (-0.676555,0.55255,-0.486787) - New Momentum Direction: (0.392315,0.690193,-0.608048) - New Polarization: (-0.919831,0.294372,-0.259337) + 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) *** FresnelRefraction *** Track (trackID 102, parentID 1) is processed with stopping code 2 ### pop requested out of 101 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737442,-0.631844,-0.238648) - Old Polarization: (-0.67541,-0.689874,-0.260566) - New Momentum Direction: (0.398964,-0.857819,-0.323999) - New Polarization: (-0.916967,-0.373229,-0.140969) + 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) *** 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.7431,-0.57495,0.342395) - Old Polarization: (-0.66918,-0.638461,0.380217) - New Momentum Direction: (0.43259,-0.774634,0.461311) - New Polarization: (-0.901591,-0.371675,0.221341) + 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) *** FresnelRefraction *** Track (trackID 100, parentID 1) is processed with stopping code 2 ### pop requested out of 99 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.74194,-0.588263,-0.32167) - Old Polarization: (-0.670467,-0.650973,-0.355961) - New Momentum Direction: (0.425971,-0.793811,-0.434066) - New Polarization: (-0.904737,-0.373744,-0.204368) + 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) *** FresnelRefraction *** Track (trackID 99, parentID 1) is processed with stopping code 2 ### pop requested out of 98 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 98, parentID 1) is processed with stopping code 2 ### pop requested out of 97 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 97, parentID 1) is processed with stopping code 2 ### pop requested out of 96 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.741038,0.559907,0.37063) - Old Polarization: (-0.671463,0.617923,0.409034) - New Momentum Direction: (0.420733,0.756466,0.500743) - New Polarization: (-0.907184,0.350833,0.232234) - *** FresnelRefraction *** + +** 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.736249,0.214775,-0.641723) - Old Polarization: (-0.676711,0.233672,-0.698184) - New Momentum Direction: (0.3914,0.292061,-0.872643) - New Polarization: (-0.920221,0.124223,-0.371164) + 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 *** 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.73592,-0.224821,-0.638652) - Old Polarization: (-0.677068,-0.244363,-0.694165) - New Momentum Direction: (0.389282,-0.305858,-0.868856) - New Polarization: (-0.921119,-0.129261,-0.367195) + 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 *** Track (trackID 94, parentID 1) is processed with stopping code 2 ### pop requested out of 93 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743372,-0.0148384,-0.668713) - Old Polarization: (-0.668878,-0.0164909,-0.743189) - New Momentum Direction: (0.434122,-0.0199845,-0.900633) - New Polarization: (-0.900854,-0.00963054,-0.434015) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 93, parentID 1) is processed with stopping code 2 ### pop requested out of 92 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736949,0.674732,-0.0405362) - Old Polarization: (-0.675949,0.735622,-0.0441944) - New Momentum Direction: (0.395858,0.916659,-0.0550706) - New Polarization: (-0.918312,0.395146,-0.0237394) + 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) *** FresnelRefraction *** Track (trackID 92, parentID 1) is processed with stopping code 2 ### pop requested out of 91 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 91, parentID 1) is processed with stopping code 2 ### pop requested out of 90 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743998,-0.468028,0.476882) - Old Polarization: (-0.668182,-0.521134,0.530992) - New Momentum Direction: (0.437621,-0.629817,0.641731) - New Polarization: (-0.899159,-0.306532,0.312331) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.73763,0.352581,0.575837) - Old Polarization: (-0.675205,0.385178,0.629076) - New Momentum Direction: (0.400141,0.478557,0.781582) - New Polarization: (-0.916454,0.208947,0.341253) + 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) *** FresnelRefraction *** Track (trackID 89, parentID 1) is processed with stopping code 2 ### pop requested out of 88 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.737724,-0.649241,0.185067) -Old Polarization: (-0.675103,-0.709463,0.202234) -New Polarization: (0.695701,0.711317,-0.10014) -Polarization Change: (0.695701,0.711317,-0.10014) -New Momentum Direction: (0.161727,-0.0192746,0.986647) -Momentum Change: (0.161727,-0.0192746,0.986647) - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 88, parentID 1) is processed with stopping code 2 ### pop requested out of 87 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 87, parentID 1) is processed with stopping code 2 ### pop requested out of 86 stacked tracks. @@ -1608,111 +3157,94 @@ Track (trackID 87, parentID 1) is processed with stopping code 2 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.74146,0.564691,-0.362438) - Old Polarization: (-0.670997,0.623991,-0.400499) - New Momentum Direction: (0.423197,0.762494,-0.489395) - New Polarization: (-0.906038,0.35615,-0.228589) + 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 *** Track (trackID 85, parentID 1) is processed with stopping code 2 ### pop requested out of 84 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 84, parentID 1) is processed with stopping code 2 ### pop requested out of 83 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738281,0.634065,0.230006) - Old Polarization: (-0.674493,0.694029,0.251758) - New Momentum Direction: (0.404176,0.859856,0.311911) - New Polarization: (-0.914681,0.37995,0.137826) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 83, parentID 1) is processed with stopping code 2 ### pop requested out of 82 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737111,0.154314,-0.657917) - Old Polarization: (-0.675772,0.168321,-0.717635) - New Momentum Direction: (0.396881,0.209598,-0.893618) - New Polarization: (-0.91787,0.090629,-0.386395) + 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) *** FresnelRefraction *** Track (trackID 82, parentID 1) is processed with stopping code 2 ### pop requested out of 81 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738537,0.192777,0.646065) - Old Polarization: (-0.674213,0.21117,0.707704) - New Momentum Direction: (0.405752,0.261335,0.875825) - New Polarization: (-0.913983,0.116017,0.388812) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 81, parentID 1) is processed with stopping code 2 ### pop requested out of 80 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.739717,-0.551573,-0.385468) -Old Polarization: (-0.672918,-0.606327,-0.423733) -New Polarization: (-0.734577,-0.649477,0.196409) -Polarization Change: (-0.734577,-0.649477,0.196409) -New Momentum Direction: (0.137625,0.140833,0.980421) -Momentum Change: (0.137625,0.140833,0.980421) Photon at Boundary! - Old Momentum Direction: (0.137625,0.140833,0.980421) - Old Polarization: (-0.734577,-0.649477,0.196409) - New Momentum Direction: (-0.137625,0.140833,0.980421) - New Polarization: (-0.734577,0.649477,-0.196409) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.137625,0.140833,0.980421) - Old Polarization: (-0.734577,0.649477,-0.196409) - New Momentum Direction: (-0.186271,0.190613,0.963831) - New Polarization: (-0.710399,0.651537,-0.266144) + 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) *** 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.739373,0.652514,0.165991) - Old Polarization: (-0.673296,0.716552,0.182281) - New Momentum Direction: (0.410837,0.883568,0.224768) - New Polarization: (-0.911709,0.398157,0.101286) + 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 *** 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.738344,-0.171073,0.652367) - Old Polarization: (-0.674425,-0.187286,0.714195) - New Momentum Direction: (0.404561,-0.231972,0.884601) - New Polarization: (-0.914511,-0.10262,0.39133) + 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) *** FresnelRefraction *** Track (trackID 78, parentID 1) is processed with stopping code 2 ### pop requested out of 77 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.744044,0.145801,0.652028) - Old Polarization: (-0.668131,0.162367,0.726112) - New Momentum Direction: (0.437877,0.19619,0.877367) - New Polarization: (-0.899035,0.0955545,0.427324) + 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) *** FresnelRefraction *** Track (trackID 77, parentID 1) is processed with stopping code 2 ### pop requested out of 76 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 76, parentID 1) is processed with stopping code 2 ### pop requested out of 75 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738131,-0.0911962,-0.668465) - Old Polarization: (-0.674657,-0.0997762,-0.731357) - New Momentum Direction: (0.403251,-0.123696,-0.90669) - New Polarization: (-0.915089,-0.0545091,-0.39955) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.739019,-0.673684,0.00105587) - Old Polarization: (-0.673685,-0.739018,0.00115827) - New Momentum Direction: (0.408692,-0.912671,0.00143044) - New Polarization: (-0.912673,-0.408691,0.000640547) + 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) *** FresnelRefraction *** Track (trackID 74, parentID 1) is processed with stopping code 2 ### pop requested out of 73 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739572,-0.669813,0.0662198) - Old Polarization: (-0.673078,-0.735984,0.0727616) - New Momentum Direction: (0.412033,-0.906749,0.089644) - New Polarization: (-0.911169,-0.410034,0.0405372) + 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) *** FresnelRefraction *** Track (trackID 73, parentID 1) is processed with stopping code 2 ### pop requested out of 72 stacked tracks. @@ -1721,103 +3253,113 @@ Track (trackID 73, parentID 1) is processed with stopping code 2 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.738271,0.033528,-0.673671) - Old Polarization: (-0.674504,0.0366977,-0.737358) - New Momentum Direction: (0.404113,0.0454681,-0.913578) - New Polarization: (-0.914709,0.0200875,-0.403614) + 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) *** FresnelRefraction *** Track (trackID 71, parentID 1) is processed with stopping code 2 ### pop requested out of 70 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737892,0.184077,0.649332) - Old Polarization: (-0.674919,0.201252,0.709917) - New Momentum Direction: (0.401768,0.249758,0.881024) - New Polarization: (-0.915742,0.109578,0.386536) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 70, parentID 1) is processed with stopping code 2 ### pop requested out of 69 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.740712,-0.591795,-0.318) - Old Polarization: (-0.671822,-0.652479,-0.350608) - New Momentum Direction: (0.418821,-0.7999,-0.429825) - New Polarization: (-0.908069,-0.368932,-0.198245) + 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) *** 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.744534,-0.667314,0.0189898) - Old Polarization: (-0.667584,-0.744233,0.0211787) - New Momentum Direction: (0.440591,-0.897345,0.0255358) - New Polarization: (-0.897708,-0.440413,0.0125329) + 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) *** 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.737012,0.580874,-0.34554) - Old Polarization: (-0.675879,0.633414,-0.376794) - New Momentum Direction: (0.396261,0.78908,-0.469394) - New Polarization: (-0.918138,0.34056,-0.202586) + 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 *** 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.739114,0.269034,0.61752) - Old Polarization: (-0.673581,0.295209,0.677599) - New Momentum Direction: (0.409267,0.364427,0.836477) - New Polarization: (-0.912415,0.163465,0.375205) + 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) *** FresnelRefraction *** Track (trackID 66, parentID 1) is processed with stopping code 2 ### pop requested out of 65 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736337,-0.675548,-0.0379931) - Old Polarization: (-0.676615,-0.735175,-0.0413466) - New Momentum Direction: (0.391963,-0.91853,-0.0516585) - New Polarization: (-0.919981,-0.391344,-0.0220094) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 65, parentID 1) is processed with stopping code 2 ### pop requested out of 64 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736608,-0.054423,-0.674127) - Old Polarization: (-0.67632,-0.0592744,-0.734219) - New Momentum Direction: (0.393694,-0.0739708,-0.916261) - New Polarization: (-0.919242,-0.0316803,-0.392417) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 64, parentID 1) is processed with stopping code 2 ### pop requested out of 63 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 63, parentID 1) is processed with stopping code 2 ### pop requested out of 62 stacked tracks. - -** Photon absorbed! ** +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) + *** FresnelRefraction *** Track (trackID 62, parentID 1) is processed with stopping code 2 ### pop requested out of 61 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743114,-0.563819,0.360402) - Old Polarization: (-0.669165,-0.626127,0.40023) - New Momentum Direction: (0.432668,-0.759623,0.485562) - New Polarization: (-0.901553,-0.364554,0.233028) + 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) *** FresnelRefraction *** Track (trackID 61, parentID 1) is processed with stopping code 2 ### pop requested out of 60 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 60, parentID 1) is processed with stopping code 2 ### pop requested out of 59 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739493,0.663795,0.111922) - Old Polarization: (-0.673164,0.7292,0.12295) - New Momentum Direction: (0.411559,0.898698,0.151529) - New Polarization: (-0.911383,0.405831,0.0684269) + 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) *** FresnelRefraction *** Track (trackID 59, parentID 1) is processed with stopping code 2 ### pop requested out of 58 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739458,0.283375,0.610656) - Old Polarization: (-0.673203,0.311264,0.670755) - New Momentum Direction: (0.411347,0.383674,0.826794) - New Polarization: (-0.911479,0.173151,0.373129) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 58, parentID 1) is processed with stopping code 2 ### pop requested out of 57 stacked tracks. @@ -1825,77 +3367,74 @@ Track (trackID 58, parentID 1) is processed with stopping code 2 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.74354,-0.136305,0.654652) - Old Polarization: (-0.668691,-0.151563,0.727929) - New Momentum Direction: (0.435065,-0.183537,0.881494) - New Polarization: (-0.900399,-0.0886833,0.425931) + 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 at Boundary! - Old Momentum Direction: (0.741525,0.530947,-0.410166) - Old Polarization: (-0.670925,0.586817,-0.453327) - New Momentum Direction: (0.423573,0.716868,-0.553793) - New Polarization: (-0.905862,0.335201,-0.258949) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 55, parentID 1) is processed with stopping code 2 ### pop requested out of 54 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.736963,-0.577996,-0.350437) -Old Polarization: (-0.675933,-0.630183,-0.382078) -New Polarization: (0.389373,0.905459,0.168917) -Polarization Change: (0.389373,0.905459,0.168917) -New Momentum Direction: (-0.742402,0.417065,-0.524306) -Momentum Change: (-0.742402,0.417065,-0.524306) - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 54, parentID 1) is processed with stopping code 2 ### pop requested out of 53 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 53, parentID 1) is processed with stopping code 2 ### pop requested out of 52 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.741328,-0.603503,0.293627) - Old Polarization: (-0.671143,-0.666615,0.324333) - New Momentum Direction: (0.422426,-0.815048,0.396551) - New Polarization: (-0.906398,-0.379852,0.184812) + 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) *** FresnelRefraction *** Track (trackID 52, parentID 1) is processed with stopping code 2 ### pop requested out of 51 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738959,-0.0646061,-0.670646) - Old Polarization: (-0.673751,-0.0708589,-0.735554) - New Momentum Direction: (0.408326,-0.0875321,-0.90863) - New Polarization: (-0.912836,-0.0391545,-0.406444) + 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) *** FresnelRefraction *** Track (trackID 51, parentID 1) is processed with stopping code 2 ### pop requested out of 50 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 50, parentID 1) is processed with stopping code 2 ### pop requested out of 49 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.740151,-0.178606,0.648288) - Old Polarization: (-0.672441,-0.19659,0.713565) - New Momentum Direction: (0.415496,-0.241596,0.876923) - New Polarization: (-0.909595,-0.110359,0.400572) - *** FresnelRefraction *** + +** Photon absorbed! ** 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.736649,0.384251,0.556506) - Old Polarization: (-0.676275,0.418555,0.606188) - New Momentum Direction: (0.393957,0.522238,0.75635) - New Polarization: (-0.919129,0.223841,0.324187) + 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 *** 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.737533,0.450323,-0.503244) - Old Polarization: (-0.675311,0.491814,-0.549612) - New Momentum Direction: (0.399532,0.611302,-0.683142) - New Polarization: (-0.916719,0.266423,-0.297733) + 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) *** FresnelRefraction *** Track (trackID 47, parentID 1) is processed with stopping code 2 ### pop requested out of 46 stacked tracks. @@ -1908,87 +3447,79 @@ Track (trackID 46, parentID 1) is processed with stopping code 2 Track (trackID 45, parentID 1) is processed with stopping code 2 ### pop requested out of 44 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737763,0.606432,-0.296556) - Old Polarization: (-0.67506,0.662761,-0.324102) - New Momentum Direction: (0.400968,0.822961,-0.402443) - New Polarization: (-0.916092,0.360205,-0.176147) + 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) *** FresnelRefraction *** Track (trackID 44, parentID 1) is processed with stopping code 2 ### pop requested out of 43 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 43, parentID 1) is processed with stopping code 2 ### pop requested out of 42 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.742798,-0.235461,-0.626745) - Old Polarization: (-0.669516,-0.261233,-0.695346) - New Momentum Direction: (0.430878,-0.317367,-0.844762) - New Polarization: (-0.90241,-0.151535,-0.403353) + 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) *** FresnelRefraction *** Track (trackID 42, parentID 1) is processed with stopping code 2 ### pop requested out of 41 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.738433,0.582009,-0.340563) - Old Polarization: (-0.674327,0.637338,-0.372939) - New Momentum Direction: (0.405108,0.789101,-0.461743) - New Polarization: (-0.914269,0.349647,-0.204596) + 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) *** FresnelRefraction *** Track (trackID 41, parentID 1) is processed with stopping code 2 ### pop requested out of 40 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.744096,-0.436987,0.505335) - Old Polarization: (-0.668073,-0.486714,0.562839) - New Momentum Direction: (0.438166,-0.587968,0.67993) - New Polarization: (-0.898894,-0.286605,0.331432) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 40, parentID 1) is processed with stopping code 2 ### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.74153,-0.584295,0.329747) - Old Polarization: (-0.67092,-0.645788,0.364451) - New Momentum Direction: (0.423599,-0.788892,0.445212) - New Polarization: (-0.90585,-0.368906,0.208193) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 39, parentID 1) is processed with stopping code 2 ### pop requested out of 38 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736363,-0.668493,-0.104344) - Old Polarization: (-0.676587,-0.727553,-0.113562) - New Momentum Direction: (0.392128,-0.908905,-0.141869) - New Polarization: (-0.919911,-0.387437,-0.0604742) + 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) *** FresnelRefraction *** Track (trackID 38, parentID 1) is processed with stopping code 2 ### pop requested out of 37 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737754,-0.169414,0.653467) - Old Polarization: (-0.67507,-0.185145,0.714144) - New Momentum Direction: (0.400909,-0.229907,0.8868) - New Polarization: (-0.916118,-0.100611,0.388079) + 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) *** FresnelRefraction *** Track (trackID 37, parentID 1) is processed with stopping code 2 ### pop requested out of 36 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743553,0.240366,-0.623982) - Old Polarization: (-0.668677,0.267281,-0.693853) - New Momentum Direction: (0.435137,0.32365,-0.840183) - New Polarization: (-0.900364,0.156416,-0.406051) + 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) *** FresnelRefraction *** Track (trackID 36, parentID 1) is processed with stopping code 2 ### pop requested out of 35 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.739144,0.659897,-0.134913) - Old Polarization: (-0.673547,0.724165,-0.148053) - New Momentum Direction: (0.409452,0.893843,-0.182742) - New Polarization: (-0.912332,0.401154,-0.0820143) + 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) *** FresnelRefraction *** Track (trackID 35, parentID 1) is processed with stopping code 2 ### pop requested out of 34 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.741175,0.388556,0.547435) - Old Polarization: (-0.671312,0.428992,0.604405) - New Momentum Direction: (0.421533,0.524864,0.739478) - New Polarization: (-0.906813,0.243983,0.343747) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 34, parentID 1) is processed with stopping code 2 ### pop requested out of 33 stacked tracks. @@ -1996,58 +3527,75 @@ Track (trackID 34, parentID 1) is processed with stopping code 2 Track (trackID 33, parentID 1) is processed with stopping code 2 ### pop requested out of 32 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743914,-0.478238,-0.466777) - Old Polarization: (-0.668276,-0.532367,-0.519609) - New Momentum Direction: (0.437151,-0.643629,-0.628204) - New Polarization: (-0.899388,-0.312839,-0.305342) + 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) *** FresnelRefraction *** Track (trackID 32, parentID 1) is processed with stopping code 2 ### pop requested out of 31 stacked tracks. - -** Photon absorbed! ** + 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 at Boundary! - Old Momentum Direction: (0.73645,-0.494815,0.461302) - Old Polarization: (-0.676492,-0.538671,0.502188) - New Momentum Direction: (0.392687,-0.672687,0.627128) - New Polarization: (-0.919672,-0.287228,0.267774) - *** FresnelRefraction *** -Track (trackID 30, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. ** Photon absorbed! ** +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) + *** FresnelRefraction *** Track (trackID 29, parentID 1) is processed with stopping code 2 ### pop requested out of 28 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.742509,-0.586943,0.322767) - Old Polarization: (-0.669836,-0.650622,0.357786) - New Momentum Direction: (0.429235,-0.791421,0.435213) - New Polarization: (-0.903193,-0.376116,0.206831) + 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) *** FresnelRefraction *** Track (trackID 28, parentID 1) is processed with stopping code 2 ### pop requested out of 27 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.740563,-0.248015,-0.624544) - Old Polarization: (-0.671987,-0.273324,-0.688278) - New Momentum Direction: (0.417939,-0.335297,-0.844336) - New Polarization: (-0.908475,-0.154252,-0.388432) + 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) *** 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.735753,-0.026329,0.676738) - Old Polarization: (-0.67725,-0.0286034,0.735197) - New Momentum Direction: (0.388201,-0.0358275,0.920878) - New Polarization: (-0.921575,-0.0150919,0.387908) + 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 *** 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.741329,0.655627,-0.143475) - Old Polarization: (-0.671142,0.724191,-0.15848) - New Momentum Direction: (0.422433,0.88544,-0.193767) - New Polarization: (-0.906394,0.412667,-0.0903067) + 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) *** FresnelRefraction *** Track (trackID 25, parentID 1) is processed with stopping code 2 ### pop requested out of 24 stacked tracks. @@ -2055,19 +3603,27 @@ Track (trackID 25, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 24, parentID 1) is processed with stopping code 2 ### pop requested out of 23 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 23, parentID 1) is processed with stopping code 2 ### pop requested out of 22 stacked tracks. - -** Photon absorbed! ** + 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 *** 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.740112,-0.663425,0.110009) - Old Polarization: (-0.672484,-0.730142,0.121072) - New Momentum Direction: (0.415264,-0.897446,0.148814) - New Polarization: (-0.909701,-0.40967,0.0679314) + 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) *** FresnelRefraction *** Track (trackID 21, parentID 1) is processed with stopping code 2 ### pop requested out of 20 stacked tracks. @@ -2076,121 +3632,140 @@ Track (trackID 21, parentID 1) is processed with stopping code 2 Track (trackID 20, parentID 1) is processed with stopping code 2 ### pop requested out of 19 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737098,-0.656396,0.160721) - Old Polarization: (-0.675786,-0.715949,0.175303) - New Momentum Direction: (0.396801,-0.891567,0.218304) - New Polarization: (-0.917905,-0.385415,0.0943706) + 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) *** FresnelRefraction *** Track (trackID 19, parentID 1) is processed with stopping code 2 ### pop requested out of 18 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.735941,-0.357029,-0.575257) - Old Polarization: (-0.677046,-0.388087,-0.625298) - New Momentum Direction: (0.389417,-0.485708,-0.782587) - New Polarization: (-0.921062,-0.205353,-0.330871) + 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) *** FresnelRefraction *** Track (trackID 18, parentID 1) is processed with stopping code 2 ### pop requested out of 17 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.736301,0.656111,0.165464) - Old Polarization: (-0.676654,0.713948,0.18005) - New Momentum Direction: (-0.736301,0.656111,0.165464) - New Polarization: (-0.676654,-0.713948,-0.18005) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.736301,0.656111,0.165464) - Old Polarization: (-0.676654,-0.713948,-0.18005) - New Momentum Direction: (-0.736301,-0.656111,0.165464) - New Polarization: (0.676654,-0.713948,0.18005) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 17, parentID 1) is processed with stopping code 2 ### pop requested out of 16 stacked tracks. - -** Photon absorbed! ** + 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 *** Track (trackID 16, parentID 1) is processed with stopping code 2 ### pop requested out of 15 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 15, parentID 1) is processed with stopping code 2 ### pop requested out of 14 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.737483,-0.655211,0.163758) - Old Polarization: (-0.675365,-0.715475,0.17882) - New Momentum Direction: (0.399221,-0.889494,0.222313) - New Polarization: (-0.916855,-0.387308,0.0968005) + 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) *** FresnelRefraction *** Track (trackID 14, parentID 1) is processed with stopping code 2 ### pop requested out of 13 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** 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.742637,0.643559,0.185262) - Old Polarization: (-0.669695,0.713655,0.205441) - New Momentum Direction: (0.429962,0.867613,0.249761) - New Polarization: (-0.902847,0.413182,0.118943) + 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 *** Track (trackID 12, parentID 1) is processed with stopping code 2 ### pop requested out of 11 stacked tracks. - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 11, parentID 1) is processed with stopping code 2 ### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736708,0.532546,-0.41672) - Old Polarization: (-0.676211,0.58019,-0.454002) - New Momentum Direction: (-0.736708,0.532546,-0.41672) - New Polarization: (-0.676211,-0.58019,0.454002) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.736708,0.532546,-0.41672) - Old Polarization: (-0.676211,-0.58019,0.454002) - New Momentum Direction: (-0.736708,-0.532546,-0.41672) - New Polarization: (0.676211,-0.58019,-0.454002) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.736708,-0.532546,-0.41672) - Old Polarization: (0.676211,-0.58019,-0.454002) - New Momentum Direction: (-0.736708,-0.532546,0.41672) - New Polarization: (-0.676211,0.58019,-0.454002) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.736708,-0.532546,0.41672) - Old Polarization: (-0.676211,0.58019,-0.454002) - New Momentum Direction: (-0.394331,-0.723729,0.566322) - New Polarization: (0.918969,-0.310553,0.243009) - *** FresnelRefraction *** -Track (trackID 10, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. ** Photon absorbed! ** +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) + *** 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! ** Track (trackID 8, parentID 1) is processed with stopping code 2 ### pop requested out of 7 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743564,0.392583,-0.541287) - Old Polarization: (-0.668665,0.436558,-0.601918) - New Momentum Direction: (0.435198,0.5286,-0.728824) - New Polarization: (-0.900335,0.255512,-0.352295) + 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) *** FresnelRefraction *** Track (trackID 7, parentID 1) is processed with stopping code 2 ### pop requested out of 6 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.744245,-0.0673402,0.664503) - Old Polarization: (-0.667907,-0.0750369,0.740453) - New Momentum Direction: (0.438993,-0.0905884,0.893912) - New Polarization: (-0.898491,-0.0442605,0.436756) + 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) *** FresnelRefraction *** Track (trackID 6, parentID 1) is processed with stopping code 2 ### pop requested out of 5 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + 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) + *** FresnelRefraction *** Track (trackID 5, parentID 1) is processed with stopping code 2 ### pop requested out of 4 stacked tracks. @@ -2198,14884 +3773,7081 @@ Track (trackID 5, parentID 1) is processed with stopping code 2 Track (trackID 4, parentID 1) is processed with stopping code 2 ### pop requested out of 3 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.740471,-0.432299,-0.514607) - Old Polarization: (-0.672088,-0.476284,-0.566966) - New Momentum Direction: (0.417397,-0.584508,-0.695795) - New Polarization: (-0.908724,-0.268477,-0.319594) + 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) *** FresnelRefraction *** Track (trackID 3, parentID 1) is processed with stopping code 2 ### pop requested out of 2 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.73882,0.57724,-0.347763) - Old Polarization: (-0.673903,0.632845,-0.381263) - New Momentum Direction: (0.407481,0.782224,-0.471258) - New Polarization: (-0.913214,0.349033,-0.210278) + 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) *** FresnelRefraction *** Track (trackID 2, parentID 1) is processed with stopping code 2 ### pop requested out of 1 stacked tracks. - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 170 + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 308 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 139 Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 172 stacked tracks. -Track (trackID 462, parentID 1) is processed with stopping code 2 -### pop requested out of 171 stacked tracks. +### 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 461, parentID 1) is processed with stopping code 2 -### pop requested out of 170 stacked tracks. +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.803478,-0.317694,0.503482) - Old Polarization: (-0.560247,-0.117447,0.819957) - New Momentum Direction: (0.594497,-0.429097,0.680036) - New Polarization: (-0.779258,-0.0988655,0.618855) + 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 460, parentID 1) is processed with stopping code 2 -### pop requested out of 169 stacked tracks. +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.875811,0.397547,0.273698) - Old Polarization: (-0.48095,0.671238,0.564027) - New Momentum Direction: (0.757275,0.537936,0.370351) - New Polarization: (-0.651889,0.588116,0.478707) + 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 459, parentID 1) is processed with stopping code 2 -### pop requested out of 168 stacked tracks. +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.603208,-0.775045,-0.188267) - Old Polarization: (-0.781427,-0.621559,0.0550966) - New Momentum Direction: (0.815577,-0.519653,-0.254549) - New Polarization: (0.454304,0.847491,-0.27453) + 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 458, parentID 1) is processed with stopping code 2 -### pop requested out of 167 stacked tracks. +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.663795,0.218118,-0.715403) - Old Polarization: (-0.713888,0.470012,-0.519088) - New Momentum Direction: (0.902226,0.296464,-0.313206) - New Polarization: (0.0981413,0.566054,0.818505) + 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 457, parentID 1) is processed with stopping code 2 -### pop requested out of 166 stacked tracks. +Track (trackID 871, parentID 1) is processed with stopping code 2 +### pop requested out of 441 stacked tracks. ** Photon absorbed! ** -Track (trackID 456, parentID 1) is processed with stopping code 2 -### pop requested out of 165 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.777876,-0.427129,0.460944) - Old Polarization: (-0.588598,-0.238263,0.772517) - New Momentum Direction: (0.528372,-0.577065,0.622751) - New Polarization: (-0.821398,-0.161893,0.546897) - *** FresnelRefraction *** -Track (trackID 455, parentID 1) is processed with stopping code 2 -### pop requested out of 164 stacked tracks. +Track (trackID 870, parentID 1) is processed with stopping code 2 +### pop requested out of 440 stacked tracks. ** Photon absorbed! ** -Track (trackID 454, parentID 1) is processed with stopping code 2 -### pop requested out of 163 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.564405,-0.411072,-0.715868) - Old Polarization: (-0.823386,-0.218334,-0.5238) - New Momentum Direction: (0.764848,-0.557061,-0.32356) - New Polarization: (-0.069321,-0.57051,0.81836) - *** FresnelRefraction *** -Track (trackID 453, parentID 1) is processed with stopping code 2 -### pop requested out of 162 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.787486,0.525316,-0.322349) - Old Polarization: (-0.578384,0.810554,-0.0920512) - New Momentum Direction: (0.550649,0.711467,-0.436577) - New Polarization: (-0.808326,0.585004,-0.0661803) - *** FresnelRefraction *** -Track (trackID 452, parentID 1) is processed with stopping code 2 -### pop requested out of 161 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.560457,-0.567656,-0.603037) - Old Polarization: (-0.828142,-0.391441,-0.401192) - New Momentum Direction: (0.560457,-0.567656,0.603037) - New Polarization: (0.828142,0.391441,-0.401192) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.560457,-0.567656,0.603037) - Old Polarization: (0.828142,0.391441,-0.401192) - New Momentum Direction: (0.560457,0.567656,0.603037) - New Polarization: (-0.828142,0.391441,0.401192) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.560457,0.567656,0.603037) - Old Polarization: (-0.828142,0.391441,0.401192) - New Momentum Direction: (-0.560457,0.567656,0.603037) - New Polarization: (-0.828142,-0.391441,-0.401192) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.560457,0.567656,0.603037) - Old Polarization: (-0.828142,-0.391441,-0.401192) - New Momentum Direction: (-0.560457,0.567656,-0.603037) - New Polarization: (0.828142,0.391441,-0.401192) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.560457,0.567656,-0.603037) - Old Polarization: (0.828142,0.391441,-0.401192) - New Momentum Direction: (-0.560457,-0.567656,-0.603037) - New Polarization: (-0.828142,0.391441,0.401192) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.560457,-0.567656,-0.603037) - Old Polarization: (-0.828142,0.391441,0.401192) - New Momentum Direction: (0.560457,-0.567656,-0.603037) - New Polarization: (-0.828142,-0.391441,-0.401192) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.560457,-0.567656,-0.603037) -Old Polarization: (-0.828142,-0.391441,-0.401192) -New Polarization: (0.196388,0.880258,0.431947) -Polarization Change: (0.196388,0.880258,0.431947) -New Momentum Direction: (0.947801,-0.283281,0.14637) -Momentum Change: (0.947801,-0.283281,0.14637) - Photon at Boundary! - Old Momentum Direction: (0.947801,-0.283281,0.14637) - Old Polarization: (0.196388,0.880258,0.431947) - New Momentum Direction: (0.902052,-0.383465,0.198134) - New Polarization: (-0.314817,-0.270482,0.909796) - *** FresnelRefraction *** -Track (trackID 451, parentID 1) is processed with stopping code 2 -### pop requested out of 160 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.590299,-0.14663,-0.793755) - Old Polarization: (-0.793895,0.0722371,-0.603748) - New Momentum Direction: (0.802734,-0.199398,-0.562013) - New Polarization: (0.52298,-0.217464,0.824137) - *** FresnelRefraction *** -Track (trackID 450, parentID 1) is processed with stopping code 2 -### pop requested out of 159 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.599148,-0.106174,-0.793567) - Old Polarization: (-0.785105,0.116381,-0.60833) - New Momentum Direction: (0.81232,-0.14395,-0.565168) - New Polarization: (0.553689,-0.114067,0.824874) - *** FresnelRefraction *** -Track (trackID 449, parentID 1) is processed with stopping code 2 -### pop requested out of 158 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.584974,-0.26871,-0.765245) - Old Polarization: (-0.803697,-0.0652707,-0.591448) - New Momentum Direction: (0.78595,-0.361029,-0.501937) - New Polarization: (0.316493,-0.462476,0.82822) - *** FresnelRefraction *** -Track (trackID 448, parentID 1) is processed with stopping code 2 -### pop requested out of 157 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.556391,-0.594395,-0.580623) - Old Polarization: (-0.830669,-0.415079,-0.371078) - New Momentum Direction: (0.556391,0.594395,-0.580623) - New Polarization: (0.830669,-0.415079,0.371078) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.556391,0.594395,-0.580623) - Old Polarization: (0.830669,-0.415079,0.371078) - New Momentum Direction: (0.556391,0.594395,0.580623) - New Polarization: (-0.830669,0.415079,0.371078) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.556391,0.594395,0.580623) - Old Polarization: (-0.830669,0.415079,0.371078) - New Momentum Direction: (-0.556391,0.594395,0.580623) - New Polarization: (-0.830669,-0.415079,-0.371078) - *** TotalInternalReflection *** +Track (trackID 869, parentID 1) is processed with stopping code 2 +### pop requested out of 439 stacked tracks. ** Photon absorbed! ** -Track (trackID 447, parentID 1) is processed with stopping code 2 -### pop requested out of 156 stacked tracks. +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.747197,0.442168,-0.496169) - Old Polarization: (-0.622273,0.727633,-0.288661) - New Momentum Direction: (0.446905,0.595175,-0.667864) - New Polarization: (-0.866067,0.474842,-0.156372) + 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 446, parentID 1) is processed with stopping code 2 -### pop requested out of 155 stacked tracks. +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.828446,-0.175245,0.531946) - Old Polarization: (-0.533751,0.0406915,0.844662) - New Momentum Direction: (0.650335,-0.237693,0.721503) - New Polarization: (-0.740964,0.0108692,0.671457) + 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 445, parentID 1) is processed with stopping code 2 -### pop requested out of 154 stacked tracks. +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.584981,-0.758059,-0.288345) - Old Polarization: (-0.800349,-0.597105,-0.0539216) - New Momentum Direction: (0.793839,-0.465521,-0.391294) - New Polarization: (0.272347,0.847453,-0.455686) + 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 444, parentID 1) is processed with stopping code 2 -### pop requested out of 153 stacked tracks. +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 443, parentID 1) is processed with stopping code 2 -### pop requested out of 152 stacked tracks. +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.668419,0.222447,-0.709741) - Old Polarization: (-0.709296,0.477841,-0.518235) - New Momentum Direction: (0.905054,0.301198,-0.30026) - New Polarization: (0.0812624,0.570524,0.817251) + 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 442, parentID 1) is processed with stopping code 2 -### pop requested out of 151 stacked tracks. - -** Photon absorbed! ** -Track (trackID 441, parentID 1) is processed with stopping code 2 -### pop requested out of 150 stacked tracks. +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.839804,-0.109599,0.531712) - Old Polarization: (-0.520996,0.112635,0.846095) - New Momentum Direction: (0.677447,-0.148497,0.720426) - New Polarization: (-0.719965,0.0668201,0.690786) + 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 440, parentID 1) is processed with stopping code 2 -### pop requested out of 149 stacked tracks. +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.59397,-0.142307,-0.7918) - Old Polarization: (-0.790915,0.076727,-0.607096) - New Momentum Direction: (0.804946,-0.192854,-0.561132) - New Polarization: (0.526101,-0.205327,0.825263) - *** FresnelRefraction *** -Track (trackID 439, parentID 1) is processed with stopping code 2 -### pop requested out of 148 stacked tracks. - -** Photon absorbed! ** -Track (trackID 438, parentID 1) is processed with stopping code 2 -### pop requested out of 147 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.620464,-0.779106,-0.0895431) - Old Polarization: (-0.762382,-0.625996,0.164022) - New Momentum Direction: (0.83893,-0.530602,-0.121071) - New Polarization: (0.530132,0.847029,-0.038749) - *** FresnelRefraction *** -Track (trackID 437, parentID 1) is processed with stopping code 2 -### pop requested out of 146 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.565509,-0.403057,-0.719545) - Old Polarization: (-0.822406,-0.209972,-0.528734) - New Momentum Direction: (0.765863,-0.545856,-0.339846) - New Polarization: (-0.0442627,-0.572029,0.819038) - *** FresnelRefraction *** -Track (trackID 436, parentID 1) is processed with stopping code 2 -### pop requested out of 145 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.68299,0.281099,-0.674172) - Old Polarization: (-0.693118,0.540632,-0.476765) - New Momentum Direction: (-0.68299,0.281099,-0.674172) - New Polarization: (-0.671027,-0.606054,0.427107) + 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.68299,0.281099,-0.674172) - Old Polarization: (-0.671027,-0.606054,0.427107) - New Momentum Direction: (-0.68299,0.281099,0.674172) - New Polarization: (0.671027,0.606054,0.427107) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.68299,0.281099,0.674172) -Old Polarization: (0.671027,0.606054,0.427107) -New Polarization: (0.118832,0.335096,0.93466) -Polarization Change: (0.118832,0.335096,0.93466) -New Momentum Direction: (-0.806725,-0.516199,0.287635) -Momentum Change: (-0.806725,-0.516199,0.287635) - Photon at Boundary! - Old Momentum Direction: (-0.806725,-0.516199,0.287635) - Old Polarization: (0.118832,0.335096,0.93466) - New Momentum Direction: (-0.597917,-0.700193,0.39016) - New Polarization: (0.224157,0.321268,0.920076) + 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 435, parentID 1) is processed with stopping code 2 -### pop requested out of 144 stacked tracks. +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.876288,0.397001,0.272965) - Old Polarization: (-0.480076,0.671784,0.564122) - New Momentum Direction: (0.758795,0.536706,0.369021) - New Polarization: (-0.650113,0.589482,0.479441) - *** FresnelRefraction *** -Track (trackID 434, parentID 1) is processed with stopping code 2 -### pop requested out of 143 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736063,-0.565259,0.372416) - Old Polarization: (-0.634999,-0.386006,0.669161) - New Momentum Direction: (0.395034,-0.767136,0.505421) - New Polarization: (-0.891587,-0.187555,0.412184) - *** FresnelRefraction *** -Track (trackID 433, parentID 1) is processed with stopping code 2 -### pop requested out of 142 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.604388,-0.100892,-0.790276) - Old Polarization: (-0.780761,0.12236,-0.612732) - New Momentum Direction: (0.815361,-0.13611,-0.562725) - New Polarization: (0.554123,-0.0981241,0.826631) - *** FresnelRefraction *** -Track (trackID 432, parentID 1) is processed with stopping code 2 -### pop requested out of 141 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.69164,-0.682856,0.23525) - Old Polarization: (-0.683568,-0.513748,0.518458) - New Momentum Direction: (0.194701,-0.927372,0.319488) - New Polarization: (-0.959584,-0.112612,0.25791) - *** FresnelRefraction *** -Track (trackID 431, parentID 1) is processed with stopping code 2 -### pop requested out of 140 stacked tracks. - -** Photon absorbed! ** -Track (trackID 430, parentID 1) is processed with stopping code 2 -### pop requested out of 139 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.556099,-0.511119,-0.655371) - Old Polarization: (-0.830907,-0.324243,-0.452172) - New Momentum Direction: (0.556099,-0.511119,0.655371) - New Polarization: (0.830907,0.324243,-0.452172) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.556099,-0.511119,0.655371) - Old Polarization: (0.830907,0.324243,-0.452172) - New Momentum Direction: (-0.556099,-0.511119,0.655371) - New Polarization: (0.830907,-0.324243,0.452172) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.556099,-0.511119,0.655371) - Old Polarization: (0.830907,-0.324243,0.452172) - New Momentum Direction: (-0.556099,0.511119,0.655371) - New Polarization: (-0.830907,-0.324243,-0.452172) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 429, parentID 1) is processed with stopping code 2 -### pop requested out of 138 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.793325,0.53637,-0.287997) - Old Polarization: (-0.57249,0.818184,-0.0531973) - New Momentum Direction: (0.562339,0.728531,-0.391174) - New Polarization: (-0.801668,0.5963,-0.0418902) - *** FresnelRefraction *** -Track (trackID 428, parentID 1) is processed with stopping code 2 -### pop requested out of 137 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.573559,-0.697529,-0.429516) -Old Polarization: (-0.814927,-0.53913,-0.212681) -New Polarization: (0.124807,-0.804393,-0.58084) -Polarization Change: (0.124807,-0.804393,-0.58084) -New Momentum Direction: (0.979263,0.194028,-0.0582883) -Momentum Change: (0.979263,0.194028,-0.0582883) - Photon at Boundary! - Old Momentum Direction: (0.979263,0.194028,-0.0582883) - Old Polarization: (0.124807,-0.804393,-0.58084) - New Momentum Direction: (0.961921,0.26177,-0.0786388) - New Polarization: (-0.198632,0.471853,-0.859011) - *** FresnelRefraction *** -Track (trackID 427, parentID 1) is processed with stopping code 2 -### pop requested out of 136 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739586,0.422523,-0.523915) - Old Polarization: (-0.630724,0.706798,-0.32035) - New Momentum Direction: (-0.739586,0.422523,-0.523915) - New Polarization: (-0.438201,-0.893108,-0.10168) - *** FresnelReflection *** - -** Photon absorbed! ** -Track (trackID 426, parentID 1) is processed with stopping code 2 -### pop requested out of 135 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.845625,-0.0953202,0.525197) - Old Polarization: (-0.512712,0.128634,0.84887) - New Momentum Direction: (0.695234,-0.128358,0.70723) - New Polarization: (-0.70359,0.0797034,0.706122) - *** FresnelRefraction *** -Track (trackID 425, parentID 1) is processed with stopping code 2 -### pop requested out of 134 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739992,-0.566142,0.363174) - Old Polarization: (-0.630331,-0.395274,0.668162) - New Momentum Direction: (0.423327,-0.762562,0.489176) - New Polarization: (-0.877869,-0.211809,0.429515) - *** FresnelRefraction *** -Track (trackID 424, parentID 1) is processed with stopping code 2 -### pop requested out of 133 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.661245,-0.743677,0.0984837) - Old Polarization: (-0.717561,-0.588742,0.372142) - New Momentum Direction: (0.893005,-0.429945,0.133001) - New Polarization: (0.348255,0.847349,0.400896) - *** FresnelRefraction *** -Track (trackID 423, parentID 1) is processed with stopping code 2 -### pop requested out of 132 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.768083,0.50369,-0.395404) - Old Polarization: (-0.600135,0.781596,-0.170135) - New Momentum Direction: (0.492547,0.684554,-0.537385) - New Polarization: (-0.843056,0.52856,-0.0994019) - *** FresnelRefraction *** -Track (trackID 422, parentID 1) is processed with stopping code 2 -### pop requested out of 131 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.86371,0.0950127,0.494952) - Old Polarization: (-0.495876,0.335711,0.800878) - New Momentum Direction: (0.72848,0.12915,0.672784) - New Polarization: (-0.679333,0.26299,0.685086) - *** FresnelRefraction *** -Track (trackID 421, parentID 1) is processed with stopping code 2 -### pop requested out of 130 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.659386,0.185585,-0.728538) - Old Polarization: (-0.719294,0.437618,-0.539542) - New Momentum Direction: (0.892434,0.251177,-0.374795) - New Polarization: (0.19354,0.537269,0.820905) - *** FresnelRefraction *** -Track (trackID 420, parentID 1) is processed with stopping code 2 -### pop requested out of 129 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.839952,0.540537,-0.0479689) - Old Polarization: (-0.520646,0.827644,0.209599) - New Momentum Direction: (0.678291,0.731917,-0.0649526) - New Polarization: (-0.719082,0.679371,0.146205) - *** FresnelRefraction *** -Track (trackID 419, parentID 1) is processed with stopping code 2 -### pop requested out of 128 stacked tracks. - -** Photon absorbed! ** -Track (trackID 418, parentID 1) is processed with stopping code 2 -### pop requested out of 127 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.713131,-0.628413,0.31071) - Old Polarization: (-0.660076,-0.452641,0.599513) - New Momentum Direction: (0.301975,-0.854565,0.422528) - New Polarization: (-0.928564,-0.163325,0.333307) - *** FresnelRefraction *** -Track (trackID 417, parentID 1) is processed with stopping code 2 -### pop requested out of 126 stacked tracks. - -** Photon absorbed! ** -Track (trackID 416, parentID 1) is processed with stopping code 2 -### pop requested out of 125 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.576244,-0.306083,-0.757797) - Old Polarization: (-0.811538,-0.104597,-0.574862) - New Momentum Direction: (0.778328,-0.413423,-0.472532) - New Polarization: (0.228112,-0.514979,0.826294) - *** FresnelRefraction *** -Track (trackID 415, parentID 1) is processed with stopping code 2 -### pop requested out of 124 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.563369,-0.388275,-0.729286) - Old Polarization: (-0.823413,-0.191341,-0.53421) - New Momentum Direction: (0.765738,-0.527748,-0.367597) - New Polarization: (0.000447819,-0.571117,0.820869) - *** FresnelRefraction *** -Track (trackID 414, parentID 1) is processed with stopping code 2 -### pop requested out of 123 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.583378,-0.749758,-0.312303) - Old Polarization: (-0.802706,-0.590855,-0.0809557) - New Momentum Direction: (0.790198,-0.443441,-0.423021) - New Polarization: (0.215884,0.847417,-0.485054) - *** FresnelRefraction *** -Track (trackID 413, parentID 1) is processed with stopping code 2 -### pop requested out of 122 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.842336,-0.105666,0.528493) - Old Polarization: (-0.51724,0.117038,0.8478) - New Momentum Direction: (0.685723,-0.142703,0.713736) - New Polarization: (-0.712287,0.0702073,0.698368) - *** FresnelRefraction *** -Track (trackID 412, parentID 1) is processed with stopping code 2 -### pop requested out of 121 stacked tracks. - -** Photon absorbed! ** -Track (trackID 411, parentID 1) is processed with stopping code 2 -### pop requested out of 120 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.797305,0.542204,-0.265178) -Old Polarization: (-0.568425,0.822266,-0.0278022) -New Polarization: (-0.591501,0.769191,-0.241808) -Polarization Change: (-0.591501,0.769191,-0.241808) -New Momentum Direction: (0.0387668,0.32668,0.94434) -Momentum Change: (0.0387668,0.32668,0.94434) - -** Photon absorbed! ** -Track (trackID 410, parentID 1) is processed with stopping code 2 -### pop requested out of 119 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.55843,-0.555963,-0.615679) - Old Polarization: (-0.829548,-0.376306,-0.412606) - New Momentum Direction: (0.55843,-0.555963,0.615679) - New Polarization: (0.829548,0.376306,-0.412606) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.55843,-0.555963,0.615679) - Old Polarization: (0.829548,0.376306,-0.412606) - New Momentum Direction: (-0.55843,-0.555963,0.615679) - New Polarization: (0.829548,-0.376306,0.412606) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.55843,-0.555963,0.615679) - Old Polarization: (0.829548,-0.376306,0.412606) - New Momentum Direction: (-0.55843,0.555963,0.615679) - New Polarization: (-0.829548,-0.376306,-0.412606) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 409, parentID 1) is processed with stopping code 2 -### pop requested out of 118 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.561602,-0.650202,-0.511703) - Old Polarization: (-0.825827,-0.478685,-0.298111) - New Momentum Direction: (0.561602,0.650202,-0.511703) - New Polarization: (0.825827,-0.478685,0.298111) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.561602,0.650202,-0.511703) - Old Polarization: (0.825827,-0.478685,0.298111) - New Momentum Direction: (-0.561602,0.650202,-0.511703) - New Polarization: (0.825827,0.478685,-0.298111) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.561602,0.650202,-0.511703) - Old Polarization: (0.825827,0.478685,-0.298111) - New Momentum Direction: (-0.561602,0.650202,0.511703) - New Polarization: (-0.825827,-0.478685,-0.298111) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.561602,0.650202,0.511703) - Old Polarization: (-0.825827,-0.478685,-0.298111) - New Momentum Direction: (-0.561602,0.650202,-0.511703) - New Polarization: (0.825827,0.478685,-0.298111) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.561602,0.650202,-0.511703) - Old Polarization: (0.825827,0.478685,-0.298111) - New Momentum Direction: (-0.561602,-0.650202,-0.511703) - New Polarization: (-0.825827,0.478685,0.298111) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.561602,-0.650202,-0.511703) - Old Polarization: (-0.825827,0.478685,0.298111) - New Momentum Direction: (0.561602,-0.650202,-0.511703) - New Polarization: (-0.825827,-0.478685,-0.298111) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.561602,-0.650202,-0.511703) - Old Polarization: (-0.825827,-0.478685,-0.298111) - New Momentum Direction: (0.561602,-0.650202,0.511703) - New Polarization: (0.825827,0.478685,-0.298111) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 408, parentID 1) is processed with stopping code 2 -### pop requested out of 117 stacked tracks. - -** Photon absorbed! ** -Track (trackID 407, parentID 1) is processed with stopping code 2 -### pop requested out of 116 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.872985,0.446775,0.195679) - Old Polarization: (-0.482399,0.731629,0.481674) - New Momentum Direction: (0.753838,0.601864,0.263605) - New Polarization: (-0.653228,0.643221,0.399449) - *** FresnelRefraction *** -Track (trackID 406, parentID 1) is processed with stopping code 2 -### pop requested out of 115 stacked tracks. - -** Photon absorbed! ** -Track (trackID 405, parentID 1) is processed with stopping code 2 -### pop requested out of 114 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.624363,0.0201436,-0.780875) - Old Polarization: (-0.758216,0.256005,-0.599642) - New Momentum Direction: (0.843713,0.0272204,-0.536103) - New Polarization: (0.518509,0.21712,0.827048) - *** FresnelRefraction *** -Track (trackID 404, parentID 1) is processed with stopping code 2 -### pop requested out of 113 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.858608,0.0426844,0.510853) - Old Polarization: (-0.501235,0.278877,0.819141) - New Momentum Direction: (0.717656,0.0579856,0.693979) - New Polarization: (-0.688321,0.210396,0.694225) - *** FresnelRefraction *** -Track (trackID 403, parentID 1) is processed with stopping code 2 -### pop requested out of 112 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.621189,-0.780519,-0.0701026) - Old Polarization: (-0.760779,-0.622093,0.184974) - New Momentum Direction: (0.84276,-0.529821,-0.0951074) - New Polarization: (0.532939,0.846106,0.00897672) - *** FresnelRefraction *** -Track (trackID 402, parentID 1) is processed with stopping code 2 -### pop requested out of 111 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.715765,0.390437,-0.578999) - Old Polarization: (-0.657206,0.656959,-0.369439) - New Momentum Direction: (0.312366,0.531116,-0.787619) - New Polarization: (-0.924918,0.359159,-0.124626) - *** FresnelRefraction *** -Track (trackID 401, parentID 1) is processed with stopping code 2 -### pop requested out of 110 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.571377,-0.354674,-0.740091) - Old Polarization: (-0.816805,-0.158148,-0.554814) - New Momentum Direction: (0.771996,-0.479205,-0.417595) - New Polarization: (0.0985681,-0.558779,0.823438) - *** FresnelRefraction *** -Track (trackID 400, parentID 1) is processed with stopping code 2 -### pop requested out of 109 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.570486,-0.400709,-0.716923) - Old Polarization: (-0.818931,-0.211165,-0.533631) - New Momentum Direction: (0.768443,-0.539754,-0.343747) - New Polarization: (-0.0365785,-0.573344,0.818498) - *** FresnelRefraction *** -Track (trackID 399, parentID 1) is processed with stopping code 2 -### pop requested out of 108 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.638302,-0.76971,0.0108596) - Old Polarization: (-0.742207,-0.61163,0.27393) - New Momentum Direction: (0.865222,-0.501172,0.0147202) - New Polarization: (0.487251,0.847386,0.211007) - *** FresnelRefraction *** -Track (trackID 398, parentID 1) is processed with stopping code 2 -### pop requested out of 107 stacked tracks. - -** Photon absorbed! ** -Track (trackID 397, parentID 1) is processed with stopping code 2 -### pop requested out of 106 stacked tracks. - -** Photon absorbed! ** -Track (trackID 396, parentID 1) is processed with stopping code 2 -### pop requested out of 105 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.679372,-0.712265,0.176443) - Old Polarization: (-0.697364,-0.551878,0.457291) - New Momentum Direction: (0.918814,-0.314382,0.23863) - New Polarization: (0.154766,0.843158,0.514909) - *** FresnelRefraction *** -Track (trackID 395, parentID 1) is processed with stopping code 2 -### pop requested out of 104 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.794534,-0.34779,0.497753) - Old Polarization: (-0.57087,-0.148475,0.807504) - New Momentum Direction: (0.567411,-0.471629,0.674989) - New Polarization: (-0.79806,-0.113046,0.591879) - *** FresnelRefraction *** -Track (trackID 394, parentID 1) is processed with stopping code 2 -### pop requested out of 103 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.710764,0.354994,-0.607284) - Old Polarization: (-0.662794,0.627154,-0.409124) - New Momentum Direction: (0.313629,0.479198,-0.81976) - New Polarization: (-0.924444,0.351285,-0.148333) - *** FresnelRefraction *** -Track (trackID 393, parentID 1) is processed with stopping code 2 -### pop requested out of 102 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.685184,0.265807,-0.678136) - Old Polarization: (-0.69132,0.530486,-0.490573) - New Momentum Direction: (0.193793,0.358015,-0.913383) - New Polarization: (-0.96035,0.259443,-0.102065) - *** FresnelRefraction *** -Track (trackID 392, parentID 1) is processed with stopping code 2 -### pop requested out of 101 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.648398,-0.760145,0.0419386) - Old Polarization: (-0.731792,-0.607129,0.309636) - New Momentum Direction: (0.875561,-0.479776,0.0566316) - New Polarization: (0.446456,0.848345,0.284585) - *** FresnelRefraction *** -Track (trackID 391, parentID 1) is processed with stopping code 2 -### pop requested out of 100 stacked tracks. - -** Photon absorbed! ** -Track (trackID 390, parentID 1) is processed with stopping code 2 -### pop requested out of 99 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.834503,0.544484,-0.0845115) - Old Polarization: (-0.526436,0.833149,0.169492) - New Momentum Direction: (0.66645,0.736728,-0.114351) - New Polarization: (-0.728006,0.676144,0.113297) - *** FresnelRefraction *** -Track (trackID 389, parentID 1) is processed with stopping code 2 -### pop requested out of 98 stacked tracks. - -** Photon absorbed! ** -Track (trackID 388, parentID 1) is processed with stopping code 2 -### pop requested out of 97 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.669008,-0.7328,0.124228) - Old Polarization: (-0.709199,-0.579361,0.401719) - New Momentum Direction: (0.901917,-0.398118,0.167477) - New Polarization: (0.290605,0.846225,0.446601) - *** FresnelRefraction *** -Track (trackID 387, parentID 1) is processed with stopping code 2 -### pop requested out of 96 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.695182,0.328541,-0.639361) - Old Polarization: (-0.67964,0.590094,-0.435751) - New Momentum Direction: (0.21159,0.446699,-0.869304) - New Polarization: (-0.955471,0.281721,-0.0877986) - *** FresnelRefraction *** -Track (trackID 386, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. - -** Photon absorbed! ** -Track (trackID 385, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.5998,-0.765667,-0.232365) - Old Polarization: (-0.786402,-0.617691,0.00542946) - New Momentum Direction: (0.807698,-0.499714,-0.312906) - New Polarization: (0.384884,0.848913,-0.36223) - *** FresnelRefraction *** -Track (trackID 384, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.665949,-0.735741,0.123277) - Old Polarization: (-0.712169,-0.577811,0.398686) - New Momentum Direction: (0.900633,-0.401329,0.166721) - New Polarization: (0.294998,0.846289,0.443589) - *** FresnelRefraction *** -Track (trackID 383, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.858223,0.502194,0.106089) - Old Polarization: (-0.502123,0.778589,0.376393) - New Momentum Direction: (0.715868,0.683158,0.144318) - New Polarization: (-0.690352,0.66153,0.292903) - *** FresnelRefraction *** -Track (trackID 382, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. - -** Photon absorbed! ** -Track (trackID 381, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.703023,0.320644,-0.63478) - Old Polarization: (-0.671543,0.593094,-0.44415) - New Momentum Direction: (0.291784,0.43125,-0.853748) - New Polarization: (-0.932259,0.32784,-0.153017) - *** FresnelRefraction *** -Track (trackID 380, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - -** Photon absorbed! ** -Track (trackID 379, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. - -** Photon absorbed! ** -Track (trackID 378, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.609391,-0.780405,-0.140036) - Old Polarization: (-0.774005,-0.623838,0.108364) - New Momentum Direction: (0.82579,-0.531093,-0.189764) - New Polarization: (0.506441,0.846367,-0.164865) - *** FresnelRefraction *** -Track (trackID 377, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. - -** Photon absorbed! ** -Track (trackID 376, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.65914,-0.748146,0.0762402) - Old Polarization: (-0.720433,-0.599125,0.349322) - New Momentum Direction: (0.887075,-0.450077,0.102605) - New Polarization: (0.388869,0.848346,0.359291) - *** FresnelRefraction *** -Track (trackID 375, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.565504,-0.691886,-0.448886) - Old Polarization: (-0.821187,-0.522861,-0.228621) - New Momentum Direction: (0.565504,0.691886,-0.448886) - New Polarization: (0.18997,0.420364,0.887246) + 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.565504,0.691886,-0.448886) - Old Polarization: (0.18997,0.420364,0.887246) - New Momentum Direction: (-0.565504,0.691886,-0.448886) - New Polarization: (0.18997,-0.420364,-0.887246) + 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.565504,0.691886,-0.448886) - Old Polarization: (0.18997,-0.420364,-0.887246) - New Momentum Direction: (-0.565504,0.691886,0.448886) - New Polarization: (-0.18997,0.420364,-0.887246) + 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 absorbed! ** -Track (trackID 374, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.864899,0.0973306,0.492419) - Old Polarization: (-0.493983,0.339096,0.800621) - New Momentum Direction: (0.732148,0.132079,0.668218) - New Polarization: (-0.675501,0.266823,0.687389) + 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 373, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. +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 372, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. +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.56065,-0.456189,-0.69106) - Old Polarization: (-0.82702,-0.266808,-0.494825) - New Momentum Direction: (0.56065,-0.456189,0.69106) - New Polarization: (0.243304,0.888476,0.389119) + 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.56065,-0.456189,0.69106) - Old Polarization: (0.243304,0.888476,0.389119) - New Momentum Direction: (-0.56065,-0.456189,0.69106) - New Polarization: (0.243304,-0.888476,-0.389119) + 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.56065,-0.456189,0.69106) - Old Polarization: (0.243304,-0.888476,-0.389119) - New Momentum Direction: (-0.56065,0.456189,0.69106) - New Polarization: (-0.243304,-0.888476,0.389119) + 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 371, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - -** Photon absorbed! ** -Track (trackID 370, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. +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.780969,-0.417236,0.46476) - Old Polarization: (-0.585024,-0.228107,0.778276) - New Momentum Direction: (0.538027,-0.563107,0.627246) - New Polarization: (-0.815361,-0.15892,0.556714) + 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 369, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. +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.797251,0.527113,-0.294181) - Old Polarization: (-0.566577,0.821567,-0.0633809) - New Momentum Direction: (0.582399,0.709838,-0.396159) - New Polarization: (-0.786611,0.615052,-0.0543577) + 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 368, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.794069,0.525176,-0.306014) - Old Polarization: (-0.570287,0.817909,-0.0761457) - New Momentum Direction: (0.573362,0.707894,-0.412483) - New Polarization: (-0.792784,0.606414,-0.061276) - *** FresnelRefraction *** -Track (trackID 367, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.874219,0.415905,0.250529) - Old Polarization: (-0.482876,0.690866,0.538084) - New Momentum Direction: (0.753637,0.563033,0.339155) - New Polarization: (-0.655408,0.604678,0.452553) - *** FresnelRefraction *** -Track (trackID 366, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.876484,0.326884,0.353444) - Old Polarization: (-0.481419,0.59002,0.64816) - New Momentum Direction: (0.756922,0.443719,0.479773) - New Polarization: (-0.653497,0.510268,0.559078) - *** FresnelRefraction *** -Track (trackID 365, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.865022,0.473449,0.16608) - Old Polarization: (-0.494466,0.748302,0.442207) - New Momentum Direction: (0.731313,0.643593,0.225765) - New Polarization: (-0.676909,0.644354,0.355812) - *** FresnelRefraction *** -Track (trackID 364, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - -** Photon absorbed! ** -Track (trackID 363, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. - -** Photon absorbed! ** -Track (trackID 362, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.611603,-0.0609803,-0.788811) - Old Polarization: (-0.772941,0.166705,-0.612185) - New Momentum Direction: (0.824549,-0.0822123,-0.559786) - New Polarization: (0.56217,0.00729743,0.826989) - *** FresnelRefraction *** -Track (trackID 361, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.842511,-0.07622,0.533259) - Old Polarization: (-0.519197,0.148922,0.84158) - New Momentum Direction: (0.680534,-0.103675,0.725345) - New Polarization: (-0.718929,0.0966603,0.68833) - *** FresnelRefraction *** -Track (trackID 360, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.863547,0.0668156,0.499823) - Old Polarization: (-0.494434,0.306995,0.813197) - New Momentum Direction: (0.731075,0.0904042,0.676281) - New Polarization: (-0.675283,0.237625,0.698232) - *** FresnelRefraction *** -Track (trackID 359, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.682686,-0.710214,0.171861) - Old Polarization: (-0.69419,-0.556943,0.455977) - New Momentum Direction: (0.918699,-0.320163,0.231276) - New Polarization: (0.16459,0.842644,0.5127) - *** FresnelRefraction *** -Track (trackID 358, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.570983,-0.335377,-0.749334) - Old Polarization: (-0.816369,-0.135538,-0.561401) - New Momentum Direction: (0.773318,-0.454222,-0.442336) - New Polarization: (0.151678,-0.544872,0.824686) - *** FresnelRefraction *** -Track (trackID 357, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.856912,0.508901,0.0819837) - Old Polarization: (-0.502672,0.7898,0.351479) - New Momentum Direction: (0.714753,0.690474,0.111235) - New Polarization: (-0.690289,0.670928,0.270844) - *** FresnelRefraction *** -Track (trackID 356, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.852811,-0.0358468,0.520987) - Old Polarization: (-0.505411,0.194418,0.840691) - New Momentum Direction: (0.709466,-0.0483756,0.703077) - New Polarization: (-0.692669,0.135988,0.70832) - *** FresnelRefraction *** -Track (trackID 355, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.624837,-0.778195,-0.0631796) - Old Polarization: (-0.757386,-0.623797,0.192987) - New Momentum Direction: (0.845467,-0.527141,-0.0854883) - New Polarization: (0.530897,0.84698,0.0278021) - *** FresnelRefraction *** -Track (trackID 354, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.847472,0.530584,0.0164915) - Old Polarization: (-0.513439,0.811405,0.279288) - New Momentum Direction: (0.692691,0.720886,0.0224064) - New Polarization: (-0.70889,0.674785,0.205281) - *** FresnelRefraction *** -Track (trackID 353, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. +Track (trackID 839, parentID 1) is processed with stopping code 2 +### pop requested out of 409 stacked tracks. Scattering Photon! -Old Momentum Direction: (0.825186,-0.221209,0.519745) -Old Polarization: (-0.535178,-0.0118231,0.844657) -New Polarization: (0.159447,0.690572,0.705469) -Polarization Change: (0.159447,0.690572,0.705469) -New Momentum Direction: (-0.711599,-0.414915,0.566985) -Momentum Change: (-0.711599,-0.414915,0.566985) +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 352, parentID 1) is processed with stopping code 2 -### pop requested out of 61 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.566115,-0.663018,-0.489817) - Old Polarization: (-0.822154,-0.49724,-0.277154) - New Momentum Direction: (0.566115,0.663018,-0.489817) - New Polarization: (0.822154,-0.49724,0.277154) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.566115,0.663018,-0.489817) - Old Polarization: (0.822154,-0.49724,0.277154) - New Momentum Direction: (-0.566115,0.663018,-0.489817) - New Polarization: (0.822154,0.49724,-0.277154) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.566115,0.663018,-0.489817) - Old Polarization: (0.822154,0.49724,-0.277154) - New Momentum Direction: (-0.566115,0.663018,0.489817) - New Polarization: (-0.822154,-0.49724,-0.277154) - *** TotalInternalReflection *** +Track (trackID 837, parentID 1) is processed with stopping code 2 +### pop requested out of 407 stacked tracks. ** Photon absorbed! ** -Track (trackID 351, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. +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.87625,0.382809,0.292647) - Old Polarization: (-0.48078,0.654011,0.584055) - New Momentum Direction: (0.757744,0.518418,0.396316) - New Polarization: (-0.65179,0.571943,0.498047) + 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 350, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.612388,-0.0533078,-0.788758) - Old Polarization: (-0.771906,0.17513,-0.611139) - New Momentum Direction: (0.826108,-0.0719119,-0.558905) - New Polarization: (0.561779,0.0273777,0.826834) - *** FresnelRefraction *** -Track (trackID 349, parentID 1) is processed with stopping code 2 -### pop requested out of 58 stacked tracks. +Track (trackID 835, parentID 1) is processed with stopping code 2 +### pop requested out of 405 stacked tracks. ** Photon absorbed! ** -Track (trackID 348, parentID 1) is processed with stopping code 2 -### pop requested out of 57 stacked tracks. +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 347, parentID 1) is processed with stopping code 2 -### pop requested out of 56 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.630521,-0.776022,-0.0152945) - Old Polarization: (-0.750192,-0.614353,0.244503) - New Momentum Direction: (0.856941,-0.514994,-0.0207868) - New Polarization: (0.512169,0.846337,0.146276) - *** FresnelRefraction *** -Track (trackID 346, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.565898,-0.650949,-0.50599) - Old Polarization: (-0.822776,-0.485263,-0.295906) - New Momentum Direction: (0.565898,0.650949,-0.50599) - New Polarization: (0.822776,-0.485263,0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565898,0.650949,-0.50599) - Old Polarization: (0.822776,-0.485263,0.295906) - New Momentum Direction: (-0.565898,0.650949,-0.50599) - New Polarization: (0.822776,0.485263,-0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565898,0.650949,-0.50599) - Old Polarization: (0.822776,0.485263,-0.295906) - New Momentum Direction: (-0.565898,0.650949,0.50599) - New Polarization: (-0.822776,-0.485263,-0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565898,0.650949,0.50599) - Old Polarization: (-0.822776,-0.485263,-0.295906) - New Momentum Direction: (-0.565898,-0.650949,0.50599) - New Polarization: (0.822776,-0.485263,0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565898,-0.650949,0.50599) - Old Polarization: (0.822776,-0.485263,0.295906) - New Momentum Direction: (0.565898,-0.650949,0.50599) - New Polarization: (0.822776,0.485263,-0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565898,-0.650949,0.50599) - Old Polarization: (0.822776,0.485263,-0.295906) - New Momentum Direction: (0.565898,-0.650949,-0.50599) - New Polarization: (-0.822776,-0.485263,-0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565898,-0.650949,-0.50599) - Old Polarization: (-0.822776,-0.485263,-0.295906) - New Momentum Direction: (0.565898,0.650949,-0.50599) - New Polarization: (0.822776,-0.485263,0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565898,0.650949,-0.50599) - Old Polarization: (0.822776,-0.485263,0.295906) - New Momentum Direction: (-0.565898,0.650949,-0.50599) - New Polarization: (0.822776,0.485263,-0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565898,0.650949,-0.50599) - Old Polarization: (0.822776,0.485263,-0.295906) - New Momentum Direction: (-0.565898,0.650949,0.50599) - New Polarization: (-0.822776,-0.485263,-0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565898,0.650949,0.50599) - Old Polarization: (-0.822776,-0.485263,-0.295906) - New Momentum Direction: (-0.565898,-0.650949,0.50599) - New Polarization: (0.822776,-0.485263,0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565898,-0.650949,0.50599) - Old Polarization: (0.822776,-0.485263,0.295906) - New Momentum Direction: (0.565898,-0.650949,0.50599) - New Polarization: (0.822776,0.485263,-0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565898,-0.650949,0.50599) - Old Polarization: (0.822776,0.485263,-0.295906) - New Momentum Direction: (0.565898,0.650949,0.50599) - New Polarization: (-0.822776,0.485263,0.295906) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565898,0.650949,0.50599) - Old Polarization: (-0.822776,0.485263,0.295906) - New Momentum Direction: (0.565898,0.650949,-0.50599) - New Polarization: (0.822776,-0.485263,0.295906) - *** TotalInternalReflection *** +Track (trackID 827, parentID 1) is processed with stopping code 2 +### pop requested out of 397 stacked tracks. ** Photon absorbed! ** -Track (trackID 345, parentID 1) is processed with stopping code 2 -### pop requested out of 54 stacked tracks. +Track (trackID 826, parentID 1) is processed with stopping code 2 +### pop requested out of 396 stacked tracks. ** Photon absorbed! ** -Track (trackID 344, parentID 1) is processed with stopping code 2 -### pop requested out of 53 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.567811,-0.414925,-0.710935) - Old Polarization: (-0.821173,-0.225563,-0.52421) - New Momentum Direction: (0.766309,-0.559977,-0.314955) - New Polarization: (-0.0811119,-0.570624,0.817196) - *** FresnelRefraction *** -Track (trackID 343, parentID 1) is processed with stopping code 2 -### pop requested out of 52 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.875078,0.399675,0.272944) - Old Polarization: (-0.482226,0.672034,0.561986) - New Momentum Direction: (0.755019,0.541483,0.369786) - New Polarization: (-0.65446,0.587614,0.475808) - *** FresnelRefraction *** -Track (trackID 342, parentID 1) is processed with stopping code 2 -### pop requested out of 51 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.665741,-0.733333,0.137883) - Old Polarization: (-0.711855,-0.568774,0.412019) - New Momentum Direction: (0.904206,-0.38385,0.187272) - New Polarization: (0.262817,0.845698,0.464459) - *** FresnelRefraction *** -Track (trackID 341, parentID 1) is processed with stopping code 2 -### pop requested out of 50 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.601737,-0.767104,-0.222404) - Old Polarization: (-0.784388,-0.620054,0.0164127) - New Momentum Direction: (0.809926,-0.504389,-0.299351) - New Polarization: (0.401929,0.848988,-0.343035) - *** FresnelRefraction *** -Track (trackID 340, parentID 1) is processed with stopping code 2 -### pop requested out of 49 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.567256,-0.662182,-0.489627) - Old Polarization: (-0.821373,-0.498022,-0.278064) - New Momentum Direction: (0.567256,0.662182,-0.489627) - New Polarization: (0.821373,-0.498022,0.278064) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.567256,0.662182,-0.489627) - Old Polarization: (0.821373,-0.498022,0.278064) - New Momentum Direction: (-0.567256,0.662182,-0.489627) - New Polarization: (0.821373,0.498022,-0.278064) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.567256,0.662182,-0.489627) - Old Polarization: (0.821373,0.498022,-0.278064) - New Momentum Direction: (-0.567256,0.662182,0.489627) - New Polarization: (-0.821373,-0.498022,-0.278064) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.567256,0.662182,0.489627) - Old Polarization: (-0.821373,-0.498022,-0.278064) - New Momentum Direction: (-0.567256,-0.662182,0.489627) - New Polarization: (0.821373,-0.498022,0.278064) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.567256,-0.662182,0.489627) - Old Polarization: (0.821373,-0.498022,0.278064) - New Momentum Direction: (0.567256,-0.662182,0.489627) - New Polarization: (0.821373,0.498022,-0.278064) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.567256,-0.662182,0.489627) - Old Polarization: (0.821373,0.498022,-0.278064) - New Momentum Direction: (0.567256,-0.662182,-0.489627) - New Polarization: (-0.821373,-0.498022,-0.278064) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.567256,-0.662182,-0.489627) - Old Polarization: (-0.821373,-0.498022,-0.278064) - New Momentum Direction: (0.567256,0.662182,-0.489627) - New Polarization: (0.821373,-0.498022,0.278064) - *** TotalInternalReflection *** +Track (trackID 825, parentID 1) is processed with stopping code 2 +### pop requested out of 395 stacked tracks. ** Photon absorbed! ** -Track (trackID 339, parentID 1) is processed with stopping code 2 -### pop requested out of 48 stacked tracks. +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.807828,0.546519,-0.220753) - Old Polarization: (-0.556462,0.830631,0.0200658) - New Momentum Direction: (0.600134,0.741679,-0.299584) - New Polarization: (-0.776727,0.629829,0.00330614) + 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 338, parentID 1) is processed with stopping code 2 -### pop requested out of 47 stacked tracks. +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.565754,-0.362613,-0.740563) - Old Polarization: (-0.820949,-0.16358,-0.547069) - New Momentum Direction: (0.768685,-0.492679,-0.407909) - New Polarization: (0.0757344,-0.563138,0.822885) + 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 337, parentID 1) is processed with stopping code 2 -### pop requested out of 46 stacked tracks. +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.617743,-0.0198848,-0.786129) - Old Polarization: (-0.765794,0.212033,-0.607126) - New Momentum Direction: (0.833897,-0.0268427,-0.551267) - New Polarization: (0.550372,0.115205,0.826933) + 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 336, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. +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.871743,0.424751,0.244235) - Old Polarization: (-0.48695,0.695863,0.527877) - New Momentum Direction: (0.746215,0.577102,0.331838) - New Polarization: (-0.663579,0.605029,0.440003) + 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 335, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. +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.77909,-0.419086,0.466247) - Old Polarization: (-0.587455,-0.228355,0.77637) - New Momentum Direction: (0.529765,-0.566978,0.630782) - New Polarization: (-0.820829,-0.15551,0.549596) + 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 334, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. +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.696774,-0.675283,0.241864) - Old Polarization: (-0.678142,-0.510293,0.528891) - New Momentum Direction: (-0.696774,-0.675283,0.241864) - New Polarization: (-0.625026,0.406158,-0.666617) + 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.696774,-0.675283,0.241864) - Old Polarization: (-0.625026,0.406158,-0.666617) - New Momentum Direction: (-0.696774,0.675283,0.241864) - New Polarization: (0.606347,0.374368,0.701564) + 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.696774,0.675283,0.241864) -Old Polarization: (0.606347,0.374368,0.701564) -New Polarization: (0.321735,0.94506,-0.0578586) -Polarization Change: (0.321735,0.94506,-0.0578586) -New Momentum Direction: (0.514189,-0.123085,0.848799) -Momentum Change: (0.514189,-0.123085,0.848799) +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.514189,-0.123085,0.848799) - Old Polarization: (0.321735,0.94506,-0.0578586) - New Momentum Direction: (0.695825,-0.166564,0.69863) - New Polarization: (0.333121,0.936623,-0.108478) + 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 333, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. - -** Photon absorbed! ** -Track (trackID 332, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. - -** Photon absorbed! ** -Track (trackID 331, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. - -** Photon absorbed! ** -Track (trackID 330, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. +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.874886,0.39065,0.2863) - Old Polarization: (-0.483016,0.660252,0.575119) - New Momentum Direction: (0.753736,0.530065,0.388474) - New Polarization: (-0.65625,0.575706,0.487749) + 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 329, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. +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.701776,0.346456,-0.622478) - Old Polarization: (-0.672482,0.610544,-0.418336) - New Momentum Direction: (0.251736,0.470663,-0.845639) - New Polarization: (-0.944614,0.309594,-0.108886) + 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 328, parentID 1) is processed with stopping code 2 -### pop requested out of 37 stacked tracks. - -** Photon absorbed! ** -Track (trackID 327, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. +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.622727,0.00856593,-0.782392) - Old Polarization: (-0.760183,0.24342,-0.602386) - New Momentum Direction: (0.840942,0.0115676,-0.541002) - New Polarization: (0.529524,0.188317,0.827128) + 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 326, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. +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.829298,0.550493,-0.0960349) - Old Polarization: (-0.533615,0.831149,0.156355) - New Momentum Direction: (0.649711,0.748871,-0.130643) - New Polarization: (-0.742394,0.662027,0.102813) + 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 325, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. +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.709605,0.364659,-0.602897) - Old Polarization: (-0.663966,0.632446,-0.398951) - New Momentum Direction: (0.294917,0.494522,-0.817602) - New Polarization: (-0.930978,0.341404,-0.129317) + 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 324, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. +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.738959,0.448111,-0.503126) - Old Polarization: (-0.631948,0.719929,-0.286957) - New Momentum Direction: (0.400293,0.609489,-0.684316) - New Polarization: (-0.889398,0.438293,-0.129889) - *** FresnelRefraction *** -Track (trackID 323, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.68362,-0.700014,0.206503) - Old Polarization: (-0.692327,-0.532443,0.487019) - New Momentum Direction: (0.928445,-0.243585,0.280458) - New Polarization: (0.0599255,0.843318,0.534063) - *** FresnelRefraction *** -Track (trackID 322, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.56298,-0.658867,-0.498946) - Old Polarization: (-0.824545,-0.488953,-0.284695) - New Momentum Direction: (0.56298,0.658867,-0.498946) - New Polarization: (0.824545,-0.488953,0.284695) + 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.56298,0.658867,-0.498946) - Old Polarization: (0.824545,-0.488953,0.284695) - New Momentum Direction: (-0.56298,0.658867,-0.498946) - New Polarization: (0.824545,0.488953,-0.284695) + 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.56298,0.658867,-0.498946) - Old Polarization: (0.824545,0.488953,-0.284695) - New Momentum Direction: (-0.56298,0.658867,0.498946) - New Polarization: (-0.824545,-0.488953,-0.284695) + 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.56298,0.658867,0.498946) - Old Polarization: (-0.824545,-0.488953,-0.284695) - New Momentum Direction: (-0.56298,-0.658867,0.498946) - New Polarization: (0.824545,-0.488953,0.284695) + 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.56298,-0.658867,0.498946) - Old Polarization: (0.824545,-0.488953,0.284695) - New Momentum Direction: (0.56298,-0.658867,0.498946) - New Polarization: (0.824545,0.488953,-0.284695) + 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.56298,-0.658867,0.498946) - Old Polarization: (0.824545,0.488953,-0.284695) - New Momentum Direction: (0.56298,-0.658867,-0.498946) - New Polarization: (-0.824545,-0.488953,-0.284695) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.56298,-0.658867,-0.498946) - Old Polarization: (-0.824545,-0.488953,-0.284695) - New Momentum Direction: (0.56298,0.658867,-0.498946) - New Polarization: (0.824545,-0.488953,0.284695) + 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 321, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.816,0.552131,-0.17116) -Old Polarization: (-0.548065,0.833106,0.0745633) -New Polarization: (-0.49527,0.497826,0.711953) -Polarization Change: (-0.49527,0.497826,0.711953) -New Momentum Direction: (0.270159,-0.690631,0.670852) -Momentum Change: (0.270159,-0.690631,0.670852) +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 320, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. +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.87629,0.279114,0.392697) - Old Polarization: (-0.481436,0.538256,0.691737) - New Momentum Direction: (0.756798,0.378681,0.532783) - New Polarization: (-0.653404,0.4606,0.600759) + 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 319, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. +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.851264,0.522878,0.044127) - Old Polarization: (-0.509292,0.803028,0.309464) - New Momentum Direction: (0.70124,0.7104,0.0599525) - New Polarization: (-0.701971,0.673335,0.232072) + 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 318, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.688086,-0.698259,0.197413) - Old Polarization: (-0.688036,-0.541397,0.483214) - New Momentum Direction: (0.927383,-0.263,0.266067) - New Polarization: (0.0855123,0.841384,0.533629) - *** FresnelRefraction *** -Track (trackID 317, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. +Track (trackID 798, parentID 1) is processed with stopping code 2 +### pop requested out of 368 stacked tracks. ** Photon absorbed! ** -Track (trackID 316, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. +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.586005,-0.245494,-0.772225) - Old Polarization: (-0.801889,-0.038681,-0.596219) - New Momentum Direction: (0.788825,-0.33046,-0.518219) - New Polarization: (0.366247,-0.424375,0.828112) + 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) *** FresnelRefraction *** -Track (trackID 315, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. +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.754468,0.473158,-0.454861) - Old Polarization: (-0.614738,0.752229,-0.237166) - New Momentum Direction: (0.456868,0.641272,-0.616475) - New Polarization: (-0.86169,0.49109,-0.127753) + 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 314, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. +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.753903,0.467076,-0.462029) - Old Polarization: (-0.615169,0.748754,-0.24685) - New Momentum Direction: (0.459053,0.631604,-0.624778) - New Polarization: (-0.860283,0.491579,-0.13514) + 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 313, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. +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 312, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.846774,0.530899,-0.0334687) - Old Polarization: (-0.510818,0.829079,0.227361) - New Momentum Direction: (0.699226,0.713484,-0.0449791) - New Polarization: (-0.699601,0.695853,0.162316) - *** FresnelRefraction *** -Track (trackID 311, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.717876,0.392707,-0.574834) - Old Polarization: (-0.654902,0.661011,-0.366288) - New Momentum Direction: (0.324818,0.533509,-0.780936) - New Polarization: (-0.92036,0.368441,-0.131103) - *** FresnelRefraction *** -Track (trackID 310, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. +Track (trackID 790, parentID 1) is processed with stopping code 2 +### pop requested out of 360 stacked tracks. ** Photon absorbed! ** -Track (trackID 309, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. +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.873142,0.410793,0.262436) - Old Polarization: (-0.485251,0.681202,0.548174) - New Momentum Direction: (0.749496,0.557881,0.356404) - New Polarization: (-0.660447,0.593155,0.46041) + 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 308, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. +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.872273,0.446014,0.200527) - Old Polarization: (-0.483906,0.728104,0.485488) - New Momentum Direction: (0.75123,0.601995,0.270656) - New Polarization: (-0.656389,0.638307,0.402141) + 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 307, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. +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.87735,0.303107,0.372) - Old Polarization: (-0.479798,0.565787,0.670582) - New Momentum Direction: (0.759746,0.410723,0.504076) - New Polarization: (-0.650181,0.488297,0.582091) + 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 306, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.615032,-0.0153277,-0.788353) - Old Polarization: (-0.767775,0.216096,-0.603179) - New Momentum Direction: (0.833558,-0.0207737,-0.552041) - New Polarization: (0.549968,0.125474,0.825707) - *** FresnelRefraction *** -Track (trackID 305, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. +Track (trackID 786, parentID 1) is processed with stopping code 2 +### pop requested out of 356 stacked tracks. ** Photon absorbed! ** -Track (trackID 304, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. +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 303, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.615081,-0.782799,-0.0943512) - Old Polarization: (-0.767039,-0.621774,0.158268) - New Momentum Direction: (0.835942,-0.533627,-0.128231) - New Polarization: (0.531481,0.845391,-0.0533104) - *** FresnelRefraction *** -Track (trackID 302, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. +Track (trackID 777, parentID 1) is processed with stopping code 2 +### pop requested out of 347 stacked tracks. ** Photon absorbed! ** -Track (trackID 301, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. +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.574322,-0.313624,-0.756171) - Old Polarization: (-0.813195,-0.112302,-0.571054) - New Momentum Direction: (0.77675,-0.424165,-0.465558) - New Polarization: (0.20899,-0.523731,0.825851) + 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 300, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. +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.868959,0.460285,0.181793) - Old Polarization: (-0.488635,0.739809,0.462513) - New Momentum Direction: (0.742452,0.623064,0.246083) - New Polarization: (-0.665456,0.643721,0.377878) + 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 299, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. +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.570065,-0.350323,-0.743169) - Old Polarization: (-0.817557,-0.152248,-0.555357) - New Momentum Direction: (0.771695,-0.474231,-0.423783) - New Polarization: (0.110662,-0.556045,0.823752) + 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 298, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. +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.855209,0.515907,0.049564) - Old Polarization: (-0.503207,0.803632,0.31774) - New Momentum Direction: (0.713763,0.697177,0.0669789) - New Polarization: (-0.689592,0.682815,0.241301) + 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 297, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. +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.639399,-0.76843,0.026158) - Old Polarization: (-0.740538,-0.606326,0.28978) - New Momentum Direction: (0.639399,0.76843,0.026158) - New Polarization: (-0.339728,0.312876,-0.886957) + 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.639399,0.76843,0.026158) - Old Polarization: (-0.339728,0.312876,-0.886957) - New Momentum Direction: (-0.639399,0.76843,0.026158) - New Polarization: (-0.339728,-0.312876,0.886957) + 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.639399,0.76843,0.026158) - Old Polarization: (-0.339728,-0.312876,0.886957) - New Momentum Direction: (-0.868866,0.493769,0.0355456) - New Polarization: (-0.279696,-0.548877,0.787721) + 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 *** - Photon at Boundary! - Old Momentum Direction: (-0.868866,0.493769,0.0355456) - Old Polarization: (-0.279696,-0.548877,0.787721) - New Momentum Direction: (-0.93128,0.363364,0.026158) - New Polarization: (0.165321,0.357539,0.919149) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (-0.93128,0.363364,0.026158) - Old Polarization: (0.165321,0.357539,0.919149) - New Momentum Direction: (-0.868866,0.493769,0.0355456) - New Polarization: (0.283715,0.437827,0.85312) - *** FresnelRefraction *** -Track (trackID 296, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.624064,-0.778941,-0.0616045) - Old Polarization: (-0.757953,-0.622632,0.194515) - New Momentum Direction: (0.845462,-0.527474,-0.0834598) - New Polarization: (0.531279,0.846621,0.0312311) - *** FresnelRefraction *** -Track (trackID 295, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.871131,0.161608,0.463696) - Old Polarization: (-0.486641,0.410393,0.771206) - New Momentum Direction: (0.746467,0.218995,0.628354) - New Polarization: (-0.662296,0.335949,0.669703) - *** FresnelRefraction *** -Track (trackID 294, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. +Track (trackID 756, parentID 1) is processed with stopping code 2 +### pop requested out of 326 stacked tracks. Scattering Photon! -Old Momentum Direction: (0.557827,-0.558733,-0.613715) -Old Polarization: (-0.82995,-0.378622,-0.409669) -New Polarization: (-0.331083,-0.842652,-0.424644) -Polarization Change: (-0.331083,-0.842652,-0.424644) -New Momentum Direction: (0.898623,-0.418854,0.130531) -Momentum Change: (0.898623,-0.418854,0.130531) +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.898623,-0.418854,0.130531) - Old Polarization: (-0.331083,-0.842652,-0.424644) - New Momentum Direction: (-0.898623,-0.418854,0.130531) - New Polarization: (0.208114,-0.145049,0.96729) + 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.898623,-0.418854,0.130531) - Old Polarization: (0.208114,-0.145049,0.96729) - New Momentum Direction: (-0.898623,0.418854,0.130531) - New Polarization: (-0.208114,-0.145049,-0.96729) + 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.898623,0.418854,0.130531) - Old Polarization: (-0.208114,-0.145049,-0.96729) - New Momentum Direction: (-0.803323,0.568573,0.17719) - New Polarization: (0.355484,0.696503,-0.62331) + 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 293, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. +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.570599,-0.392794,-0.7212) - Old Polarization: (-0.818613,-0.202012,-0.537647) - New Momentum Direction: (0.768985,-0.52936,-0.358385) - New Polarization: (-0.0124818,-0.572945,0.819499) + 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 292, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 279 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 280 stacked tracks. +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 279 stacked tracks. +### 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.820503,0.555716,-0.133992) - Old Polarization: (-0.541772,0.830744,0.127858) - New Momentum Direction: (0.628669,0.756008,-0.182285) - New Polarization: (-0.756605,0.648788,0.0813812) + 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 278 stacked tracks. +### pop requested out of 310 stacked tracks. ** Photon absorbed! ** Track (trackID 739, parentID 1) is processed with stopping code 2 -### pop requested out of 277 stacked tracks. +### pop requested out of 309 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.584487,-0.147515,-0.797881) - Old Polarization: (-0.799345,0.0642154,-0.597432) - New Momentum Direction: (0.794278,-0.200463,-0.57353) - New Polarization: (0.530691,-0.230664,0.815574) - *** FresnelRefraction *** + 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 276 stacked tracks. - -** Photon absorbed! ** -Track (trackID 737, parentID 1) is processed with stopping code 2 -### pop requested out of 275 stacked tracks. - -** Photon absorbed! ** -Track (trackID 736, parentID 1) is processed with stopping code 2 -### pop requested out of 274 stacked tracks. +### pop requested out of 308 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.741215,-0.562935,0.365656) - Old Polarization: (-0.628126,-0.389514,0.6736) - New Momentum Direction: (0.409515,-0.765072,0.496954) - New Polarization: (-0.884219,-0.198734,0.422684) + 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 735, parentID 1) is processed with stopping code 2 -### pop requested out of 273 stacked tracks. +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.879197,0.260521,0.398924) - Old Polarization: (-0.476097,0.512937,0.714302) - New Momentum Direction: (0.763878,0.352875,0.540342) - New Polarization: (-0.645105,0.441062,0.623942) + 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 272 stacked tracks. +### pop requested out of 304 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.876327,0.382532,0.29278) - Old Polarization: (-0.480137,0.644444,0.595113) - New Momentum Direction: (0.756509,0.51933,0.397481) - New Polarization: (-0.652869,0.564246,0.505361) - *** FresnelRefraction *** -Track (trackID 733, parentID 1) is processed with stopping code 2 -### pop requested out of 271 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.618963,0.0405849,-0.784371) -Old Polarization: (-0.762434,0.270887,-0.587635) -New Polarization: (-0.319043,0.286212,-0.90349) -Polarization Change: (-0.319043,0.286212,-0.90349) -New Momentum Direction: (0.936413,-0.0517517,-0.347063) -Momentum Change: (0.936413,-0.0517517,-0.347063) + 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.936413,-0.0517517,-0.347063) - Old Polarization: (-0.319043,0.286212,-0.90349) - New Momentum Direction: (0.879803,-0.0701041,-0.47014) - New Polarization: (-0.450737,0.191027,-0.871978) - *** FresnelRefraction *** -Track (trackID 732, parentID 1) is processed with stopping code 2 -### pop requested out of 270 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.871474,0.107424,0.478533) -Old Polarization: (-0.484065,0.345237,0.804047) -New Polarization: (-0.257367,0.385126,0.88625) -Polarization Change: (-0.257367,0.385126,0.88625) -New Momentum Direction: (0.966194,0.117011,0.229734) -Momentum Change: (0.966194,0.117011,0.229734) + 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.966194,0.117011,0.229734) - Old Polarization: (-0.257367,0.385126,0.88625) - New Momentum Direction: (0.937229,0.158266,0.310731) - New Polarization: (-0.348384,0.386206,0.854092) - *** FresnelRefraction *** -Track (trackID 731, parentID 1) is processed with stopping code 2 -### pop requested out of 269 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.838147,-0.13852,0.527562) -Old Polarization: (-0.522435,0.0740887,0.849454) -New Polarization: (-0.0275487,-0.662108,0.748902) -Polarization Change: (-0.0275487,-0.662108,0.748902) -New Momentum Direction: (0.633221,-0.59126,-0.499443) -Momentum Change: (0.633221,-0.59126,-0.499443) -Scattering Photon! -Old Momentum Direction: (0.633221,-0.59126,-0.499443) -Old Polarization: (-0.0275487,-0.662108,0.748902) -New Polarization: (-0.121358,-0.340995,0.932199) -Polarization Change: (-0.121358,-0.340995,0.932199) -New Momentum Direction: (0.226942,-0.923797,-0.308378) -Momentum Change: (0.226942,-0.923797,-0.308378) + 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 268 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.758395,-0.506788,0.409882) - Old Polarization: (-0.60937,-0.328118,0.721808) - New Momentum Direction: (0.463864,-0.688816,0.557102) - New Polarization: (-0.857501,-0.191138,0.477659) - *** FresnelRefraction *** +### pop requested out of 300 stacked tracks. + +** Photon absorbed! ** Track (trackID 729, parentID 1) is processed with stopping code 2 -### pop requested out of 267 stacked tracks. +### pop requested out of 299 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.592709,-0.122284,-0.79608) - Old Polarization: (-0.791928,0.0916583,-0.603696) - New Momentum Direction: (0.801313,-0.165323,-0.574949) - New Polarization: (0.552381,-0.164582,0.817183) - *** FresnelRefraction *** + 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 266 stacked tracks. +### pop requested out of 298 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.875911,0.383111,0.293268) - Old Polarization: (-0.480895,0.644139,0.594832) - New Momentum Direction: (0.75517,0.520527,0.398458) - New Polarization: (-0.654416,0.563234,0.504487) + 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 265 stacked tracks. - -** Photon absorbed! ** +### 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 264 stacked tracks. +### 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 263 stacked tracks. +### pop requested out of 295 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.769168,-0.486695,0.414136) - Old Polarization: (-0.596515,-0.314337,0.738486) - New Momentum Direction: (0.508844,-0.655626,0.557881) - New Polarization: (-0.831391,-0.206163,0.516028) + 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 262 stacked tracks. +### pop requested out of 294 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.877548,0.26185,0.401676) - Old Polarization: (-0.479123,0.511569,0.713259) - New Momentum Direction: (0.758648,0.355787,0.545774) - New Polarization: (-0.651244,0.437687,0.619929) + 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 261 stacked tracks. - -** Photon absorbed! ** +### 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 260 stacked tracks. +### pop requested out of 292 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.558772,-0.570463,-0.601952) - Old Polarization: (-0.829058,-0.402523,-0.388122) - New Momentum Direction: (0.558772,-0.570463,0.601952) - New Polarization: (0.829058,0.402523,-0.388122) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.558772,-0.570463,0.601952) - Old Polarization: (0.829058,0.402523,-0.388122) - New Momentum Direction: (0.558772,0.570463,0.601952) - New Polarization: (-0.829058,0.402523,0.388122) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.558772,0.570463,0.601952) - Old Polarization: (-0.829058,0.402523,0.388122) - New Momentum Direction: (-0.558772,0.570463,0.601952) - New Polarization: (-0.829058,-0.402523,-0.388122) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.558772,0.570463,0.601952) - Old Polarization: (-0.829058,-0.402523,-0.388122) - New Momentum Direction: (-0.558772,0.570463,-0.601952) - New Polarization: (0.829058,0.402523,-0.388122) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.558772,0.570463,-0.601952) - Old Polarization: (0.829058,0.402523,-0.388122) - New Momentum Direction: (-0.558772,-0.570463,-0.601952) - New Polarization: (-0.829058,0.402523,0.388122) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.558772,-0.570463,-0.601952) - Old Polarization: (-0.829058,0.402523,0.388122) - New Momentum Direction: (0.558772,-0.570463,-0.601952) - New Polarization: (-0.829058,-0.402523,-0.388122) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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 259 stacked tracks. +### pop requested out of 291 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.55751,-0.570955,-0.602654) - Old Polarization: (-0.829909,-0.401528,-0.387334) - New Momentum Direction: (0.55751,-0.570955,0.602654) - New Polarization: (0.829909,0.401528,-0.387334) - *** TotalInternalReflection *** + 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.55751,-0.570955,0.602654) - Old Polarization: (0.829909,0.401528,-0.387334) - New Momentum Direction: (0.55751,0.570955,0.602654) - New Polarization: (-0.829909,0.401528,0.387334) + 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.55751,0.570955,0.602654) - Old Polarization: (-0.829909,0.401528,0.387334) - New Momentum Direction: (-0.55751,0.570955,0.602654) - New Polarization: (-0.829909,-0.401528,-0.387334) + 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 258 stacked tracks. +### pop requested out of 290 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.835066,-0.177395,0.520765) - Old Polarization: (-0.524188,0.0307969,0.851046) - New Momentum Direction: (0.668248,-0.239882,0.704203) - New Polarization: (-0.725339,0.000254232,0.688391) + 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 257 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.55494,-0.592038,-0.584409) - Old Polarization: (-0.831327,-0.420534,-0.363383) - New Momentum Direction: (0.55494,0.592038,-0.584409) - New Polarization: (0.831327,-0.420534,0.363383) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.55494,0.592038,-0.584409) - Old Polarization: (0.831327,-0.420534,0.363383) - New Momentum Direction: (0.55494,0.592038,0.584409) - New Polarization: (-0.831327,0.420534,0.363383) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.55494,0.592038,0.584409) - Old Polarization: (-0.831327,0.420534,0.363383) - New Momentum Direction: (-0.55494,0.592038,0.584409) - New Polarization: (-0.831327,-0.420534,-0.363383) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.55494,0.592038,0.584409) - Old Polarization: (-0.831327,-0.420534,-0.363383) - New Momentum Direction: (-0.55494,-0.592038,0.584409) - New Polarization: (0.831327,-0.420534,0.363383) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.55494,-0.592038,0.584409) - Old Polarization: (0.831327,-0.420534,0.363383) - New Momentum Direction: (-0.55494,-0.592038,-0.584409) - New Polarization: (-0.831327,0.420534,0.363383) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.55494,-0.592038,-0.584409) - Old Polarization: (-0.831327,0.420534,0.363383) - New Momentum Direction: (0.55494,-0.592038,-0.584409) - New Polarization: (-0.831327,-0.420534,-0.363383) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.55494,-0.592038,-0.584409) -Old Polarization: (-0.831327,-0.420534,-0.363383) -New Polarization: (-0.7925,-0.210108,-0.572536) -Polarization Change: (-0.7925,-0.210108,-0.572536) -New Momentum Direction: (0.251151,0.743049,-0.620324) -Momentum Change: (0.251151,0.743049,-0.620324) - Photon at Boundary! - Old Momentum Direction: (0.251151,0.743049,-0.620324) - Old Polarization: (-0.7925,-0.210108,-0.572536) - New Momentum Direction: (0.341562,0.414271,-0.843632) - New Polarization: (-0.763752,-0.400776,-0.506025) - *** FresnelRefraction *** +### pop requested out of 289 stacked tracks. + +** Photon absorbed! ** Track (trackID 718, parentID 1) is processed with stopping code 2 -### pop requested out of 256 stacked tracks. +### pop requested out of 288 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.839761,0.541794,-0.0354963) - Old Polarization: (-0.51975,0.821059,0.236055) - New Momentum Direction: (0.6769,0.7345,-0.0481217) - New Polarization: (-0.719518,0.674047,0.167197) + 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 255 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.557103,-0.539961,-0.630934) - Old Polarization: (-0.830422,-0.36763,-0.418625) - New Momentum Direction: (0.557103,-0.539961,0.630934) - New Polarization: (0.830422,0.36763,-0.418625) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557103,-0.539961,0.630934) - Old Polarization: (0.830422,0.36763,-0.418625) - New Momentum Direction: (-0.557103,-0.539961,0.630934) - New Polarization: (0.830422,-0.36763,0.418625) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557103,-0.539961,0.630934) - Old Polarization: (0.830422,-0.36763,0.418625) - New Momentum Direction: (-0.557103,0.539961,0.630934) - New Polarization: (-0.830422,-0.36763,-0.418625) - *** TotalInternalReflection *** +### pop requested out of 287 stacked tracks. ** Photon absorbed! ** Track (trackID 716, parentID 1) is processed with stopping code 2 -### pop requested out of 254 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.559337,-0.486868,-0.670896) - Old Polarization: (-0.82875,-0.311077,-0.465194) - New Momentum Direction: (0.559337,-0.486868,0.670896) - New Polarization: (0.82875,0.311077,-0.465194) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.559337,-0.486868,0.670896) - Old Polarization: (0.82875,0.311077,-0.465194) - New Momentum Direction: (-0.559337,-0.486868,0.670896) - New Polarization: (0.82875,-0.311077,0.465194) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.559337,-0.486868,0.670896) - Old Polarization: (0.82875,-0.311077,0.465194) - New Momentum Direction: (-0.559337,0.486868,0.670896) - New Polarization: (-0.82875,-0.311077,-0.465194) - *** TotalInternalReflection *** +### pop requested out of 286 stacked tracks. ** Photon absorbed! ** Track (trackID 715, parentID 1) is processed with stopping code 2 -### pop requested out of 253 stacked tracks. - -** Photon absorbed! ** +### 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 252 stacked tracks. +### pop requested out of 284 stacked tracks. ** Photon absorbed! ** Track (trackID 713, parentID 1) is processed with stopping code 2 -### pop requested out of 251 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.604387,-0.0804987,-0.792613) - Old Polarization: (-0.780729,0.138305,-0.609372) - New Momentum Direction: (0.812349,-0.108197,-0.573046) - New Polarization: (0.571053,-0.0516958,0.819284) - *** FresnelRefraction *** +### pop requested out of 283 stacked tracks. + +** Photon absorbed! ** Track (trackID 712, parentID 1) is processed with stopping code 2 -### pop requested out of 250 stacked tracks. +### pop requested out of 282 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.747325,0.478437,-0.46109) - Old Polarization: (-0.621397,0.748979,-0.229991) - New Momentum Direction: (0.430955,0.649744,-0.626187) - New Polarization: (-0.873974,0.473263,-0.11042) - *** FresnelRefraction *** + 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 249 stacked tracks. +### pop requested out of 281 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.860664,0.497445,0.108656) - Old Polarization: (-0.49663,0.77305,0.394654) - New Momentum Direction: (0.723856,0.674058,0.147233) - New Polarization: (-0.681005,0.663761,0.30928) - *** FresnelRefraction *** + 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 248 stacked tracks. +### pop requested out of 280 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.558605,-0.596586,-0.576234) - Old Polarization: (-0.828742,-0.429817,-0.35839) - New Momentum Direction: (0.558605,0.596586,-0.576234) - New Polarization: (0.828742,-0.429817,0.35839) + 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.558605,0.596586,-0.576234) - Old Polarization: (0.828742,-0.429817,0.35839) - New Momentum Direction: (0.558605,0.596586,0.576234) - New Polarization: (-0.828742,0.429817,0.35839) + 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.558605,0.596586,0.576234) - Old Polarization: (-0.828742,0.429817,0.35839) - New Momentum Direction: (-0.558605,0.596586,0.576234) - New Polarization: (-0.828742,-0.429817,-0.35839) + 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 247 stacked tracks. +### 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.867501,0.0698673,0.492505) - Old Polarization: (-0.488807,0.303341,0.817956) - New Momentum Direction: (0.739208,0.0945932,0.666801) - New Polarization: (-0.667327,0.236382,0.706257) + 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 246 stacked tracks. +### 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 707, parentID 1) is processed with stopping code 2 -### pop requested out of 245 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.630506,0.0788734,-0.772167) - Old Polarization: (-0.750658,0.314992,-0.580769) - New Momentum Direction: (0.850512,0.106395,-0.515082) - New Polarization: (0.451395,0.35498,0.818677) - *** FresnelRefraction *** Track (trackID 706, parentID 1) is processed with stopping code 2 -### pop requested out of 244 stacked tracks. +### pop requested out of 276 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.620041,0.0475076,-0.783129) - Old Polarization: (-0.761171,0.278379,-0.585768) - New Momentum Direction: (0.840191,0.0643755,-0.538456) - New Polarization: (0.502567,0.280591,0.817738) + 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 243 stacked tracks. +### pop requested out of 275 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.57891,-0.224284,-0.783939) - Old Polarization: (-0.807118,-0.0210043,-0.590017) - New Momentum Direction: (0.782788,-0.303271,-0.543387) - New Polarization: (0.413109,-0.399784,0.818238) + 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 242 stacked tracks. +### pop requested out of 274 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.557098,-0.530248,-0.639124) - Old Polarization: (-0.830446,-0.356993,-0.427687) - New Momentum Direction: (0.557098,-0.530248,0.639124) - New Polarization: (0.830446,0.356993,-0.427687) + 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.557098,-0.530248,0.639124) - Old Polarization: (0.830446,0.356993,-0.427687) - New Momentum Direction: (-0.557098,-0.530248,0.639124) - New Polarization: (0.830446,-0.356993,0.427687) + 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.557098,-0.530248,0.639124) - Old Polarization: (0.830446,-0.356993,0.427687) - New Momentum Direction: (-0.557098,0.530248,0.639124) - New Polarization: (-0.830446,-0.356993,-0.427687) + 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.557098,0.530248,0.639124) - Old Polarization: (-0.830446,-0.356993,-0.427687) - New Momentum Direction: (-0.557098,0.530248,-0.639124) - New Polarization: (0.830446,0.356993,-0.427687) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557098,0.530248,-0.639124) - Old Polarization: (0.830446,0.356993,-0.427687) - New Momentum Direction: (0.557098,0.530248,-0.639124) - New Polarization: (0.830446,-0.356993,0.427687) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557098,0.530248,-0.639124) - Old Polarization: (0.830446,-0.356993,0.427687) - New Momentum Direction: (0.557098,-0.530248,-0.639124) - New Polarization: (-0.830446,-0.356993,-0.427687) + 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 703, parentID 1) is processed with stopping code 2 -### pop requested out of 241 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.842011,-0.122923,0.525269) - Old Polarization: (-0.517483,0.0910389,0.850837) - New Momentum Direction: (0.681484,-0.166758,0.712581) - New Polarization: (-0.71617,0.0484083,0.696245) - *** FresnelRefraction *** -Track (trackID 702, parentID 1) is processed with stopping code 2 -### pop requested out of 240 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.723148,-0.627575,0.288456) - Old Polarization: (-0.647776,-0.471316,0.598539) - New Momentum Direction: (-0.723148,-0.627575,0.288456) - New Polarization: (-0.516053,0.213346,-0.829562) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.723148,-0.627575,0.288456) - Old Polarization: (-0.516053,0.213346,-0.829562) - New Momentum Direction: (-0.723148,0.627575,0.288456) - New Polarization: (0.516053,0.213346,0.829562) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.723148,0.627575,0.288456) - Old Polarization: (0.516053,0.213346,0.829562) - New Momentum Direction: (-0.723148,0.627575,-0.288456) - New Polarization: (-0.516053,-0.213346,0.829562) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.723148,0.627575,-0.288456) - Old Polarization: (-0.516053,-0.213346,0.829562) - New Momentum Direction: (-0.366569,0.845368,-0.388562) - New Polarization: (0.798,0.5004,0.335852) - *** FresnelRefraction *** Track (trackID 701, parentID 1) is processed with stopping code 2 -### pop requested out of 239 stacked tracks. +### pop requested out of 271 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.769196,-0.484255,0.416934) - Old Polarization: (-0.596619,-0.310548,0.740004) - New Momentum Direction: (0.507231,-0.653094,0.562302) - New Polarization: (-0.832512,-0.202643,0.515615) + 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 238 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.689103,-0.695217,0.204476) -Old Polarization: (-0.684992,-0.532829,0.49687) -New Polarization: (0.591932,-0.27032,-0.759305) -Polarization Change: (0.591932,-0.27032,-0.759305) -New Momentum Direction: (0.398882,0.916872,-0.0154585) -Momentum Change: (0.398882,0.916872,-0.0154585) +### pop requested out of 270 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.398882,0.916872,-0.0154585) - Old Polarization: (0.591932,-0.27032,-0.759305) - New Momentum Direction: (-0.398882,0.916872,-0.0154585) - New Polarization: (0.591932,0.27032,0.759305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.398882,0.916872,-0.0154585) - Old Polarization: (0.591932,0.27032,0.759305) - New Momentum Direction: (-0.542566,0.83975,-0.0210269) - New Polarization: (-0.682994,-0.426437,0.593019) + 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 237 stacked tracks. +### pop requested out of 269 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.645106,0.175628,-0.743635) - Old Polarization: (-0.733034,0.416907,-0.537447) - New Momentum Direction: (0.87709,0.238785,-0.416766) - New Polarization: (0.242384,0.529066,0.813228) + 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 236 stacked tracks. +### pop requested out of 268 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.602184,-0.0803223,-0.794307) - Old Polarization: (-0.782442,0.138296,-0.607173) - New Momentum Direction: (0.811403,-0.108229,-0.574379) - New Polarization: (0.572323,-0.0523211,0.818357) + 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 235 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.870976,0.137888,0.47158) - Old Polarization: (-0.486538,0.375726,0.78874) - New Momentum Direction: (0.744157,0.187472,0.641158) - New Polarization: (-0.664623,0.304234,0.682435) - *** FresnelRefraction *** +### pop requested out of 267 stacked tracks. + +** Photon absorbed! ** Track (trackID 696, parentID 1) is processed with stopping code 2 -### pop requested out of 234 stacked tracks. +### pop requested out of 266 stacked tracks. ** Photon absorbed! ** Track (trackID 695, parentID 1) is processed with stopping code 2 -### pop requested out of 233 stacked tracks. +### pop requested out of 265 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.555899,-0.607502,-0.567378) - Old Polarization: (-0.830348,-0.43761,-0.344992) - New Momentum Direction: (0.555899,0.607502,-0.567378) - New Polarization: (0.830348,-0.43761,0.344992) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.555899,0.607502,-0.567378) - Old Polarization: (0.830348,-0.43761,0.344992) - New Momentum Direction: (0.555899,0.607502,0.567378) - New Polarization: (-0.830348,0.43761,0.344992) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.555899,0.607502,0.567378) - Old Polarization: (-0.830348,0.43761,0.344992) - New Momentum Direction: (-0.555899,0.607502,0.567378) - New Polarization: (-0.830348,-0.43761,-0.344992) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.555899,0.607502,0.567378) - Old Polarization: (-0.830348,-0.43761,-0.344992) - New Momentum Direction: (-0.555899,-0.607502,0.567378) - New Polarization: (0.830348,-0.43761,0.344992) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.555899,-0.607502,0.567378) - Old Polarization: (0.830348,-0.43761,0.344992) - New Momentum Direction: (-0.555899,-0.607502,-0.567378) - New Polarization: (-0.830348,0.43761,0.344992) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.555899,-0.607502,-0.567378) - Old Polarization: (-0.830348,0.43761,0.344992) - New Momentum Direction: (0.555899,-0.607502,-0.567378) - New Polarization: (-0.830348,-0.43761,-0.344992) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.555899,-0.607502,-0.567378) - Old Polarization: (-0.830348,-0.43761,-0.344992) - New Momentum Direction: (0.555899,0.607502,-0.567378) - New Polarization: (0.830348,-0.43761,0.344992) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 694, parentID 1) is processed with stopping code 2 -### pop requested out of 232 stacked tracks. +### pop requested out of 264 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.587581,-0.177009,-0.789567) - Old Polarization: (-0.798544,0.0307321,-0.601151) - New Momentum Direction: (0.792091,-0.238617,-0.561831) - New Polarization: (0.49109,-0.297531,0.818723) + 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) *** FresnelRefraction *** Track (trackID 693, parentID 1) is processed with stopping code 2 -### pop requested out of 231 stacked tracks. +### pop requested out of 263 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.733494,0.452101,-0.507535) - Old Polarization: (-0.636575,0.718663,-0.279815) - New Momentum Direction: (0.382171,0.614661,-0.690027) - New Polarization: (-0.896487,0.427757,-0.115482) - *** FresnelRefraction *** -Track (trackID 692, parentID 1) is processed with stopping code 2 -### pop requested out of 230 stacked tracks. - -** Photon absorbed! ** -Track (trackID 691, parentID 1) is processed with stopping code 2 -### pop requested out of 229 stacked tracks. + 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 *** Photon at Boundary! - Old Momentum Direction: (0.871138,0.131379,0.473136) - Old Polarization: (-0.485927,0.369303,0.792143) - New Momentum Direction: (0.745206,0.178414,0.642524) - New Polarization: (-0.663218,0.298516,0.686317) - *** FresnelRefraction *** -Track (trackID 690, parentID 1) is processed with stopping code 2 -### pop requested out of 228 stacked tracks. - -** Photon absorbed! ** -Track (trackID 689, parentID 1) is processed with stopping code 2 -### pop requested out of 227 stacked tracks. + 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 *** Photon at Boundary! - Old Momentum Direction: (0.573487,-0.264255,-0.775423) - Old Polarization: (-0.812742,-0.0647761,-0.579012) - New Momentum Direction: (0.77625,-0.357685,-0.519131) - New Polarization: (0.329935,-0.471189,0.818) - *** FresnelRefraction *** -Track (trackID 688, parentID 1) is processed with stopping code 2 -### pop requested out of 226 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.72545,-0.613535,0.311924) - Old Polarization: (-0.645282,-0.448618,0.618347) - New Momentum Direction: (0.361287,-0.8312,0.422585) - New Polarization: (-0.905129,-0.203708,0.373155) - *** FresnelRefraction *** -Track (trackID 687, parentID 1) is processed with stopping code 2 -### pop requested out of 225 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.570934,-0.249094,-0.782295) - Old Polarization: (-0.813875,-0.0464984,-0.579176) - New Momentum Direction: (0.776478,-0.338771,-0.531334) - New Polarization: (0.363731,-0.447589,0.816923) - *** FresnelRefraction *** -Track (trackID 686, parentID 1) is processed with stopping code 2 -### pop requested out of 224 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.554285,-0.541108,-0.632433) - Old Polarization: (-0.832307,-0.365692,-0.416575) - New Momentum Direction: (0.554285,-0.541108,0.632433) - New Polarization: (0.832307,0.365692,-0.416575) + 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 *** ** Photon absorbed! ** -Track (trackID 685, parentID 1) is processed with stopping code 2 -### pop requested out of 223 stacked tracks. +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.589801,-0.749662,-0.300236) - Old Polarization: (-0.7955,-0.603338,-0.0562441) - New Momentum Direction: (0.79649,-0.448568,-0.405451) - New Polarization: (0.247635,0.853734,-0.458055) + 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 684, parentID 1) is processed with stopping code 2 -### pop requested out of 222 stacked tracks. +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.730875,-0.59378,0.336522) - Old Polarization: (-0.639417,-0.423281,0.641855) - New Momentum Direction: (0.373767,-0.806938,0.457329) - New Polarization: (-0.900059,-0.196451,0.388974) + 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 683, parentID 1) is processed with stopping code 2 -### pop requested out of 221 stacked tracks. +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.832611,-0.172442,0.526329) - Old Polarization: (-0.528467,0.0370844,0.848143) - New Momentum Direction: (0.657806,-0.234503,0.715751) - New Polarization: (-0.735198,0.00653664,0.677821) + 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 682, parentID 1) is processed with stopping code 2 -### pop requested out of 220 stacked tracks. +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.704974,0.378945,-0.59951) - Old Polarization: (-0.667718,0.63958,-0.380908) - New Momentum Direction: (0.267241,0.51487,-0.814549) - New Polarization: (-0.939158,0.328449,-0.100514) + 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 681, parentID 1) is processed with stopping code 2 -### pop requested out of 219 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.83998,-0.147816,0.522096) - Old Polarization: (-0.518752,0.063462,0.852566) - New Momentum Direction: (0.67944,-0.199878,0.705981) - New Polarization: (-0.71662,0.0258076,0.696986) - *** FresnelRefraction *** -Track (trackID 680, parentID 1) is processed with stopping code 2 -### pop requested out of 218 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859607,0.00703048,0.510908) - Old Polarization: (-0.498203,0.233536,0.835018) - New Momentum Direction: (0.720749,0.009538,0.69313) - New Polarization: (-0.684119,0.17107,0.709025) - *** FresnelRefraction *** -Track (trackID 679, parentID 1) is processed with stopping code 2 -### pop requested out of 217 stacked tracks. +Track (trackID 688, parentID 1) is processed with stopping code 2 +### pop requested out of 258 stacked tracks. ** Photon absorbed! ** +Track (trackID 687, parentID 1) is processed with stopping code 2 +### pop requested out of 257 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! ** +Track (trackID 686, parentID 1) is processed with stopping code 2 +### pop requested out of 256 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) + *** FresnelRefraction *** +Track (trackID 685, parentID 1) is processed with stopping code 2 +### pop requested out of 255 stacked tracks. + +** Photon absorbed! ** +Track (trackID 684, parentID 1) is processed with stopping code 2 +### pop requested out of 254 stacked tracks. + +** Photon absorbed! ** +Track (trackID 683, parentID 1) is processed with stopping code 2 +### pop requested out of 253 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) + *** 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. + 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) + *** FresnelRefraction *** Track (trackID 678, parentID 1) is processed with stopping code 2 -### pop requested out of 216 stacked tracks. +### pop requested out of 248 stacked tracks. + 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! ** Track (trackID 677, parentID 1) is processed with stopping code 2 -### pop requested out of 215 stacked tracks. +### pop requested out of 247 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.641758,0.164725,-0.749007) - Old Polarization: (-0.736546,0.404473,-0.542127) - New Momentum Direction: (0.873245,0.224142,-0.432671) - New Polarization: (0.271624,0.513272,0.814108) + 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) *** FresnelRefraction *** Track (trackID 676, parentID 1) is processed with stopping code 2 -### pop requested out of 214 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.580138,-0.709184,-0.400623) - Old Polarization: (-0.807653,-0.564582,-0.170129) - New Momentum Direction: (0.780238,-0.317678,-0.538804) - New Polarization: (-0.0188379,0.849095,-0.527904) - *** FresnelRefraction *** -Track (trackID 675, parentID 1) is processed with stopping code 2 -### pop requested out of 213 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.606316,-0.778613,-0.161685) - Old Polarization: (-0.775291,-0.624009,0.0976579) - New Momentum Direction: (0.824588,-0.521251,-0.21989) - New Polarization: (0.483448,0.851116,-0.204647) - *** FresnelRefraction *** -Track (trackID 674, parentID 1) is processed with stopping code 2 -### pop requested out of 212 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.688389,-0.69697,0.200881) - Old Polarization: (-0.685791,-0.535194,0.493212) - New Momentum Direction: (0.936054,-0.221788,0.273153) - New Polarization: (0.048899,0.850787,0.523231) - *** FresnelRefraction *** -Track (trackID 673, parentID 1) is processed with stopping code 2 -### pop requested out of 211 stacked tracks. +### pop requested out of 246 stacked tracks. ** Photon absorbed! ** -Track (trackID 672, parentID 1) is processed with stopping code 2 -### pop requested out of 210 stacked tracks. +Track (trackID 675, parentID 1) is processed with stopping code 2 +### pop requested out of 245 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.729266,-0.600572,0.327849) - Old Polarization: (-0.641131,-0.432414,0.63401) - New Momentum Direction: (0.371323,-0.814979,0.444892) - New Polarization: (-0.90101,-0.200536,0.384663) + 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) + *** FresnelRefraction *** +Track (trackID 674, parentID 1) is processed with stopping code 2 +### pop requested out of 244 stacked tracks. + +** Photon absorbed! ** +Track (trackID 673, parentID 1) is processed with stopping code 2 +### pop requested out of 243 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) + *** 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 *** Track (trackID 671, parentID 1) is processed with stopping code 2 -### pop requested out of 209 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.869931,0.451374,0.1987) - Old Polarization: (-0.486773,0.721169,0.492917) - New Momentum Direction: (0.743377,0.612182,0.269489) - New Polarization: (-0.66433,0.628874,0.40396) - *** FresnelRefraction *** +### pop requested out of 241 stacked tracks. + +** Photon absorbed! ** Track (trackID 670, parentID 1) is processed with stopping code 2 -### pop requested out of 208 stacked tracks. +### pop requested out of 240 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! ** Track (trackID 669, parentID 1) is processed with stopping code 2 -### pop requested out of 207 stacked tracks. +### pop requested out of 239 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.607657,-0.772865,-0.182844) - Old Polarization: (-0.775394,-0.627135,0.0739271) - New Momentum Direction: (0.821568,-0.513724,-0.24721) - New Polarization: (0.458307,0.853037,-0.249566) + 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) *** FresnelRefraction *** Track (trackID 668, parentID 1) is processed with stopping code 2 -### pop requested out of 206 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.69685,0.348469,-0.626873) - Old Polarization: (-0.676717,0.609006,-0.413722) - New Momentum Direction: (-0.69685,0.348469,-0.626873) - New Polarization: (-0.624105,-0.725292,0.290595) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.69685,0.348469,-0.626873) - Old Polarization: (-0.624105,-0.725292,0.290595) - New Momentum Direction: (-0.69685,0.348469,0.626873) - New Polarization: (0.624105,0.725292,0.290595) - *** TotalInternalReflection *** +### pop requested out of 238 stacked tracks. ** Photon absorbed! ** Track (trackID 667, parentID 1) is processed with stopping code 2 -### pop requested out of 205 stacked tracks. +### pop requested out of 237 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) + *** FresnelRefraction *** +Track (trackID 666, parentID 1) is processed with stopping code 2 +### pop requested out of 236 stacked tracks. ** Photon absorbed! ** -Track (trackID 666, parentID 1) is processed with stopping code 2 -### pop requested out of 204 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.577967,-0.244365,-0.778614) - Old Polarization: (-0.808704,-0.0436889,-0.586591) - New Momentum Direction: (0.780298,-0.32991,-0.531314) - New Polarization: (0.372808,-0.436742,0.818701) - *** FresnelRefraction *** Track (trackID 665, parentID 1) is processed with stopping code 2 -### pop requested out of 203 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.584256,-0.194251,-0.78798) - Old Polarization: (-0.801831,0.0117999,-0.597435) - New Momentum Direction: (0.788561,-0.262178,-0.556268) - New Polarization: (0.465423,-0.336781,0.818511) - *** FresnelRefraction *** +### pop requested out of 235 stacked tracks. + +** Photon absorbed! ** Track (trackID 664, parentID 1) is processed with stopping code 2 -### pop requested out of 202 stacked tracks. +### pop requested out of 234 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.562716,-0.364416,-0.741992) - Old Polarization: (-0.823894,-0.173998,-0.539374) - New Momentum Direction: (0.76312,-0.494197,-0.416434) - New Polarization: (0.0695645,-0.577818,0.813196) + 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) *** FresnelRefraction *** Track (trackID 663, parentID 1) is processed with stopping code 2 -### pop requested out of 201 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.691899,0.312106,-0.65105) - Old Polarization: (-0.682654,0.576396,-0.449167) - New Momentum Direction: (0.23613,0.420059,-0.876238) - New Polarization: (-0.948766,0.294509,-0.114491) - *** FresnelRefraction *** +### pop requested out of 233 stacked tracks. + +** Photon absorbed! ** Track (trackID 662, parentID 1) is processed with stopping code 2 -### pop requested out of 200 stacked tracks. +### pop requested out of 232 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.658388,0.2255,-0.718105) - Old Polarization: (-0.718648,0.471967,-0.510678) - New Momentum Direction: (0.894447,0.306351,-0.325751) - New Polarization: (0.0950515,0.581569,0.807925) - *** FresnelRefraction *** + 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 199 stacked tracks. +### pop requested out of 231 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.849685,0.527104,0.01402) - Old Polarization: (-0.507688,0.810626,0.291785) - New Momentum Direction: (0.70194,0.711984,0.0189375) - New Polarization: (-0.69815,0.682553,0.216119) - *** FresnelRefraction *** + 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 198 stacked tracks. - -** Photon absorbed! ** +### 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) + *** FresnelRefraction *** Track (trackID 659, parentID 1) is processed with stopping code 2 -### pop requested out of 197 stacked tracks. +### pop requested out of 229 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.559651,-0.622565,-0.546995) - Old Polarization: (-0.827361,-0.457637,-0.325642) - New Momentum Direction: (0.559651,0.622565,-0.546995) - New Polarization: (0.827361,-0.457637,0.325642) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.559651,0.622565,-0.546995) - Old Polarization: (0.827361,-0.457637,0.325642) - New Momentum Direction: (-0.559651,0.622565,-0.546995) - New Polarization: (0.827361,0.457637,-0.325642) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.559651,0.622565,-0.546995) - Old Polarization: (0.827361,0.457637,-0.325642) - New Momentum Direction: (-0.559651,0.622565,0.546995) - New Polarization: (-0.827361,-0.457637,-0.325642) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 658, parentID 1) is processed with stopping code 2 -### pop requested out of 196 stacked tracks. +### pop requested out of 228 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.871189,0.0669866,0.486356) - Old Polarization: (-0.482167,0.303265,0.821916) - New Momentum Direction: (0.751183,0.0900656,0.653921) - New Polarization: (-0.653762,0.2384,0.718165) + 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) *** FresnelRefraction *** Track (trackID 657, parentID 1) is processed with stopping code 2 -### pop requested out of 195 stacked tracks. +### pop requested out of 227 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.574201,-0.221175,-0.788273) - Old Polarization: (-0.810326,-0.016061,-0.585759) - New Momentum Direction: (0.780889,-0.300789,-0.547484) - New Polarization: (0.420015,-0.395923,0.816598) + 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) + *** 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) + *** 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) + *** 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 194 stacked tracks. +### pop requested out of 226 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.557027,-0.490216,-0.67038) - Old Polarization: (-0.830327,-0.312502,-0.461411) - New Momentum Direction: (0.557027,-0.490216,0.67038) - New Polarization: (0.830327,0.312502,-0.461411) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557027,-0.490216,0.67038) - Old Polarization: (0.830327,0.312502,-0.461411) - New Momentum Direction: (-0.557027,-0.490216,0.67038) - New Polarization: (0.830327,-0.312502,0.461411) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557027,-0.490216,0.67038) - Old Polarization: (0.830327,-0.312502,0.461411) - New Momentum Direction: (-0.557027,0.490216,0.67038) - New Polarization: (-0.830327,-0.312502,-0.461411) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557027,0.490216,0.67038) - Old Polarization: (-0.830327,-0.312502,-0.461411) - New Momentum Direction: (-0.557027,0.490216,-0.67038) - New Polarization: (0.830327,0.312502,-0.461411) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557027,0.490216,-0.67038) - Old Polarization: (0.830327,0.312502,-0.461411) - New Momentum Direction: (0.557027,0.490216,-0.67038) - New Polarization: (0.830327,-0.312502,0.461411) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557027,0.490216,-0.67038) - Old Polarization: (0.830327,-0.312502,0.461411) - New Momentum Direction: (0.557027,-0.490216,-0.67038) - New Polarization: (-0.830327,-0.312502,-0.461411) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557027,-0.490216,-0.67038) - Old Polarization: (-0.830327,-0.312502,-0.461411) - New Momentum Direction: (0.557027,-0.490216,0.67038) - New Polarization: (0.830327,0.312502,-0.461411) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557027,-0.490216,0.67038) - Old Polarization: (0.830327,0.312502,-0.461411) - New Momentum Direction: (-0.557027,-0.490216,0.67038) - New Polarization: (0.830327,-0.312502,0.461411) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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 193 stacked tracks. +### pop requested out of 225 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.574047,-0.256893,-0.777481) - Old Polarization: (-0.812032,-0.056569,-0.580866) - New Momentum Direction: (0.777213,-0.347812,-0.524372) - New Polarization: (0.346343,-0.459289,0.817985) + 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 192 stacked tracks. +### pop requested out of 224 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.800207,0.545931,-0.248252) - Old Polarization: (-0.563093,0.82639,0.0022595) - New Momentum Direction: (0.582775,0.739742,-0.336384) - New Polarization: (-0.786873,0.617084,-0.00620256) + 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 191 stacked tracks. - -** Photon absorbed! ** -Track (trackID 652, parentID 1) is processed with stopping code 2 -### pop requested out of 190 stacked tracks. +### pop requested out of 223 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.631935,0.0740512,-0.771476) - Old Polarization: (-0.749676,0.310889,-0.584238) - New Momentum Direction: (0.850159,0.0996232,-0.517015) - New Polarization: (0.457815,0.345142,0.819319) + 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 189 stacked tracks. - -** Photon absorbed! ** -Track (trackID 650, parentID 1) is processed with stopping code 2 -### pop requested out of 188 stacked tracks. +### pop requested out of 221 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.780909,-0.430635,0.452476) - Old Polarization: (-0.584286,-0.24743,0.772909) - New Momentum Direction: (0.532756,-0.583424,0.613015) - New Polarization: (-0.818317,-0.17052,0.54889) + 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 187 stacked tracks. +### pop requested out of 219 stacked tracks. ** Photon absorbed! ** Track (trackID 648, parentID 1) is processed with stopping code 2 -### pop requested out of 186 stacked tracks. +### pop requested out of 218 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.877689,0.365806,0.309593) - Old Polarization: (-0.478251,0.62731,0.61462) - New Momentum Direction: (0.759981,0.496116,0.419879) - New Polarization: (-0.649253,0.549679,0.525664) - *** FresnelRefraction *** + 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 *** + +** Photon absorbed! ** Track (trackID 647, parentID 1) is processed with stopping code 2 -### pop requested out of 185 stacked tracks. +### pop requested out of 217 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.593934,-0.103268,-0.797858) - Old Polarization: (-0.790006,0.112628,-0.602666) - New Momentum Direction: (0.804461,-0.139873,-0.577302) - New Polarization: (0.565749,-0.115769,0.816411) + 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) *** FresnelRefraction *** Track (trackID 646, parentID 1) is processed with stopping code 2 -### pop requested out of 184 stacked tracks. +### pop requested out of 216 stacked tracks. ** Photon absorbed! ** Track (trackID 645, parentID 1) is processed with stopping code 2 -### pop requested out of 183 stacked tracks. +### pop requested out of 215 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) + *** 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 *** ** Photon absorbed! ** -Track (trackID 644, parentID 1) is processed with stopping code 2 -### pop requested out of 182 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739739,-0.568662,0.359735) - Old Polarization: (-0.629697,-0.396563,0.667996) - New Momentum Direction: (0.406048,-0.772295,0.488554) - New Polarization: (-0.885752,-0.201047,0.418358) - *** FresnelRefraction *** Track (trackID 643, parentID 1) is processed with stopping code 2 -### pop requested out of 181 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.786254,0.532609,-0.31326) -Old Polarization: (-0.578318,0.812845,-0.0695156) -New Polarization: (0.206995,-0.787065,0.581103) -Polarization Change: (0.206995,-0.787065,0.581103) -New Momentum Direction: (0.687711,-0.305405,-0.658621) -Momentum Change: (0.687711,-0.305405,-0.658621) +### pop requested out of 213 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.687711,-0.305405,-0.658621) - Old Polarization: (0.206995,-0.787065,0.581103) - New Momentum Direction: (0.183456,-0.413537,-0.891813) - New Polarization: (-0.42511,-0.851368,0.307333) + 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) *** FresnelRefraction *** Track (trackID 642, parentID 1) is processed with stopping code 2 -### pop requested out of 180 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.566744,-0.397548,-0.721635) - Old Polarization: (-0.822109,-0.215249,-0.527072) - New Momentum Direction: (0.763231,-0.535375,-0.361735) - New Polarization: (-0.0286287,-0.587324,0.808846) - *** FresnelRefraction *** +### pop requested out of 212 stacked tracks. + +** Photon absorbed! ** Track (trackID 641, parentID 1) is processed with stopping code 2 -### pop requested out of 179 stacked tracks. +### pop requested out of 211 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.556133,-0.587458,-0.587885) - Old Polarization: (-0.8306,-0.417246,-0.368796) - New Momentum Direction: (0.556133,-0.587458,0.587885) - New Polarization: (0.8306,0.417246,-0.368796) + 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.556133,-0.587458,0.587885) - Old Polarization: (0.8306,0.417246,-0.368796) - New Momentum Direction: (0.556133,0.587458,0.587885) - New Polarization: (-0.8306,0.417246,0.368796) + 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.556133,0.587458,0.587885) - Old Polarization: (-0.8306,0.417246,0.368796) - New Momentum Direction: (-0.556133,0.587458,0.587885) - New Polarization: (-0.8306,-0.417246,-0.368796) + 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.556133,0.587458,0.587885) - Old Polarization: (-0.8306,-0.417246,-0.368796) - New Momentum Direction: (-0.556133,0.587458,-0.587885) - New Polarization: (0.8306,0.417246,-0.368796) + 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.556133,0.587458,-0.587885) - Old Polarization: (0.8306,0.417246,-0.368796) - New Momentum Direction: (-0.556133,-0.587458,-0.587885) - New Polarization: (-0.8306,0.417246,0.368796) + 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.556133,-0.587458,-0.587885) - Old Polarization: (-0.8306,0.417246,0.368796) - New Momentum Direction: (0.556133,-0.587458,-0.587885) - New Polarization: (-0.8306,-0.417246,-0.368796) + 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! ** Track (trackID 640, parentID 1) is processed with stopping code 2 -### pop requested out of 178 stacked tracks. +### pop requested out of 210 stacked tracks. ** Photon absorbed! ** Track (trackID 639, parentID 1) is processed with stopping code 2 -### pop requested out of 177 stacked tracks. +### pop requested out of 209 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.678283,0.295259,-0.672871) - Old Polarization: (-0.69694,0.548655,-0.461793) - New Momentum Direction: (0.0659956,0.400945,-0.913722) - New Polarization: (-0.980033,0.198178,0.0161763) - *** FresnelRefraction *** -Track (trackID 638, parentID 1) is processed with stopping code 2 -### pop requested out of 176 stacked tracks. + 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.844301,-0.128519,0.52023) - Old Polarization: (-0.51332,0.0846932,0.854008) - New Momentum Direction: (0.690805,-0.173409,0.701939) - New Polarization: (-0.706805,0.0426259,0.706124) - *** FresnelRefraction *** -Track (trackID 637, parentID 1) is processed with stopping code 2 -### pop requested out of 175 stacked tracks. + 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 absorbed! ** -Track (trackID 636, parentID 1) is processed with stopping code 2 -### pop requested out of 174 stacked tracks. +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. Photon at Boundary! - Old Momentum Direction: (0.794552,-0.373188,0.478976) - Old Polarization: (-0.569382,-0.183902,0.801239) - New Momentum Direction: (0.567929,-0.50587,0.64927) - New Polarization: (-0.796612,-0.139405,0.588197) + 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) + *** FresnelRefraction *** +Track (trackID 636, parentID 1) is processed with stopping code 2 +### pop requested out of 206 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) *** FresnelRefraction *** Track (trackID 635, parentID 1) is processed with stopping code 2 -### pop requested out of 173 stacked tracks. - -** Photon absorbed! ** -Track (trackID 634, parentID 1) is processed with stopping code 2 -### pop requested out of 172 stacked tracks. +### pop requested out of 205 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.560021,-0.581342,-0.590269) - Old Polarization: (-0.828052,-0.415611,-0.376294) - New Momentum Direction: (0.560021,-0.581342,0.590269) - New Polarization: (0.828052,0.415611,-0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.560021,-0.581342,0.590269) - Old Polarization: (0.828052,0.415611,-0.376294) - New Momentum Direction: (0.560021,0.581342,0.590269) - New Polarization: (-0.828052,0.415611,0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.560021,0.581342,0.590269) - Old Polarization: (-0.828052,0.415611,0.376294) - New Momentum Direction: (-0.560021,0.581342,0.590269) - New Polarization: (-0.828052,-0.415611,-0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.560021,0.581342,0.590269) - Old Polarization: (-0.828052,-0.415611,-0.376294) - New Momentum Direction: (-0.560021,0.581342,-0.590269) - New Polarization: (0.828052,0.415611,-0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.560021,0.581342,-0.590269) - Old Polarization: (0.828052,0.415611,-0.376294) - New Momentum Direction: (-0.560021,-0.581342,-0.590269) - New Polarization: (-0.828052,0.415611,0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.560021,-0.581342,-0.590269) - Old Polarization: (-0.828052,0.415611,0.376294) - New Momentum Direction: (0.560021,-0.581342,-0.590269) - New Polarization: (-0.828052,-0.415611,-0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.560021,-0.581342,-0.590269) - Old Polarization: (-0.828052,-0.415611,-0.376294) - New Momentum Direction: (0.560021,-0.581342,0.590269) - New Polarization: (0.828052,0.415611,-0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.560021,-0.581342,0.590269) - Old Polarization: (0.828052,0.415611,-0.376294) - New Momentum Direction: (0.560021,0.581342,0.590269) - New Polarization: (-0.828052,0.415611,0.376294) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.560021,0.581342,0.590269) - Old Polarization: (-0.828052,0.415611,0.376294) - New Momentum Direction: (-0.560021,0.581342,0.590269) - New Polarization: (-0.828052,-0.415611,-0.376294) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 633, parentID 1) is processed with stopping code 2 -### pop requested out of 171 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.871634,0.141941,0.469156) - Old Polarization: (-0.485581,0.380537,0.787021) - New Momentum Direction: (0.745961,0.192858,0.637454) - New Polarization: (-0.662755,0.309183,0.682027) + 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) *** FresnelRefraction *** -Track (trackID 632, parentID 1) is processed with stopping code 2 -### pop requested out of 170 stacked tracks. +Track (trackID 634, parentID 1) is processed with stopping code 2 +### pop requested out of 204 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.828971,0.547936,-0.112129) - Old Polarization: (-0.530594,0.833864,0.152122) - New Momentum Direction: (0.655285,0.740045,-0.151442) - New Polarization: (-0.734802,0.670969,0.0993257) + 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) + *** 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. + 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) *** FresnelRefraction *** Track (trackID 631, parentID 1) is processed with stopping code 2 -### pop requested out of 169 stacked tracks. +### pop requested out of 201 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.8747,0.167291,0.454877) - Old Polarization: (-0.481323,0.409852,0.774822) - New Momentum Direction: (0.753929,0.226761,0.616579) - New Polarization: (-0.654587,0.338923,0.675757) + 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) *** FresnelRefraction *** Track (trackID 630, parentID 1) is processed with stopping code 2 -### pop requested out of 168 stacked tracks. +### pop requested out of 200 stacked tracks. ** Photon absorbed! ** Track (trackID 629, parentID 1) is processed with stopping code 2 -### pop requested out of 167 stacked tracks. +### pop requested out of 199 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.761361,0.497938,-0.415196) - Old Polarization: (-0.605732,0.774633,-0.181749) - New Momentum Direction: (0.478852,0.674253,-0.562213) - New Polarization: (-0.849,0.518624,-0.101138) - *** FresnelRefraction *** + 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! ** Track (trackID 628, parentID 1) is processed with stopping code 2 -### pop requested out of 166 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.695715,0.34421,-0.630476) - Old Polarization: (-0.67798,0.604646,-0.418026) - New Momentum Direction: (-0.695715,0.34421,-0.630476) - New Polarization: (-0.627451,-0.718498,0.30011) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.695715,0.34421,-0.630476) - Old Polarization: (-0.627451,-0.718498,0.30011) - New Momentum Direction: (-0.695715,0.34421,0.630476) - New Polarization: (0.627451,0.718498,0.30011) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.695715,0.34421,0.630476) - Old Polarization: (0.627451,0.718498,0.30011) - New Momentum Direction: (-0.695715,-0.34421,0.630476) - New Polarization: (-0.627451,0.718498,-0.30011) - *** TotalInternalReflection *** +### pop requested out of 198 stacked tracks. ** Photon absorbed! ** Track (trackID 627, parentID 1) is processed with stopping code 2 -### pop requested out of 165 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 197 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) + *** FresnelRefraction *** Track (trackID 626, parentID 1) is processed with stopping code 2 -### pop requested out of 164 stacked tracks. +### pop requested out of 196 stacked tracks. ** Photon absorbed! ** Track (trackID 625, parentID 1) is processed with stopping code 2 -### pop requested out of 163 stacked tracks. +### pop requested out of 195 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.883296,0.321451,0.341257) - Old Polarization: (-0.468676,0.58778,0.659437) - New Momentum Direction: (0.776254,0.432259,0.458892) - New Polarization: (-0.630321,0.519259,0.577118) + 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) *** FresnelRefraction *** Track (trackID 624, parentID 1) is processed with stopping code 2 -### pop requested out of 162 stacked tracks. +### pop requested out of 194 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.791375,-0.378878,0.479768) - Old Polarization: (-0.573448,-0.188097,0.797356) - New Momentum Direction: (0.555759,-0.515232,0.652432) - New Polarization: (-0.80507,-0.13781,0.576949) + 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) *** FresnelRefraction *** Track (trackID 623, parentID 1) is processed with stopping code 2 -### pop requested out of 161 stacked tracks. +### pop requested out of 193 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! ** Track (trackID 622, parentID 1) is processed with stopping code 2 -### pop requested out of 160 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.571465,-0.665456,-0.480203) - Old Polarization: (-0.817175,-0.515069,-0.258707) - New Momentum Direction: (0.571465,0.665456,-0.480203) - New Polarization: (0.817175,-0.515069,0.258707) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.571465,0.665456,-0.480203) - Old Polarization: (0.817175,-0.515069,0.258707) - New Momentum Direction: (-0.571465,0.665456,-0.480203) - New Polarization: (0.817175,0.515069,-0.258707) - *** TotalInternalReflection *** +### pop requested out of 192 stacked tracks. ** Photon absorbed! ** Track (trackID 621, parentID 1) is processed with stopping code 2 -### pop requested out of 159 stacked tracks. +### pop requested out of 191 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.881301,0.282545,0.378782) - Old Polarization: (-0.472488,0.540337,0.696269) - New Momentum Direction: (0.770047,0.381459,0.511387) - New Polarization: (-0.637939,0.470166,0.609899) + 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) *** FresnelRefraction *** Track (trackID 620, parentID 1) is processed with stopping code 2 -### pop requested out of 158 stacked tracks. +### pop requested out of 190 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.641365,-0.7671,-0.0144436) - Old Polarization: (-0.738326,-0.622208,0.260255) - New Momentum Direction: (0.866365,-0.49903,-0.0195107) - New Polarization: (0.495346,0.853681,0.160811) - *** FresnelRefraction *** + 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 *** + +** Photon absorbed! ** Track (trackID 619, parentID 1) is processed with stopping code 2 -### pop requested out of 157 stacked tracks. +### pop requested out of 189 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.608183,-0.0549789,-0.791891) - Old Polarization: (-0.77635,0.166809,-0.607828) - New Momentum Direction: (0.817815,-0.0739294,-0.570713) - New Polarization: (0.573221,0.0168493,0.819227) + 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 156 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.877396,0.240544,0.415109) -Old Polarization: (-0.478972,0.488982,0.729028) -New Polarization: (-0.557317,0.277787,0.782453) -Polarization Change: (-0.557317,0.277787,0.782453) -New Momentum Direction: (0.275755,0.950809,-0.141145) -Momentum Change: (0.275755,0.950809,-0.141145) - -** Photon absorbed! ** +### pop requested out of 188 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) + *** FresnelRefraction *** Track (trackID 617, parentID 1) is processed with stopping code 2 -### pop requested out of 155 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.658945,-0.747034,0.0879299) - Old Polarization: (-0.717906,-0.589707,0.369942) - New Momentum Direction: (0.89608,-0.427484,0.119573) - New Polarization: (0.355723,0.852681,0.382618) - *** FresnelRefraction *** -Track (trackID 616, parentID 1) is processed with stopping code 2 -### pop requested out of 154 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.5636,-0.402075,-0.721589) - Old Polarization: (-0.824363,-0.218007,-0.522397) - New Momentum Direction: (0.761423,-0.543203,-0.353787) - New Polarization: (-0.0428197,-0.586706,0.808667) - *** FresnelRefraction *** -Track (trackID 615, parentID 1) is processed with stopping code 2 -### pop requested out of 153 stacked tracks. +### pop requested out of 187 stacked tracks. ** Photon absorbed! ** -Track (trackID 614, parentID 1) is processed with stopping code 2 -### pop requested out of 152 stacked tracks. +Track (trackID 616, parentID 1) is processed with stopping code 2 +### pop requested out of 186 stacked tracks. + +** Photon absorbed! ** +Track (trackID 615, parentID 1) is processed with stopping code 2 +### pop requested out of 185 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.849181,0.527997,0.0105515) - Old Polarization: (-0.50824,0.81165,0.287953) - New Momentum Direction: (0.700842,0.713175,0.0142521) - New Polarization: (-0.699043,0.682703,0.212731) + 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 *** +Track (trackID 614, parentID 1) is processed with stopping code 2 +### pop requested out of 184 stacked tracks. + +** Photon absorbed! ** Track (trackID 613, parentID 1) is processed with stopping code 2 -### pop requested out of 151 stacked tracks. +### 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) Photon at Boundary! - Old Momentum Direction: (0.870493,0.452773,0.192972) - Old Polarization: (-0.48546,0.72529,0.488142) - New Momentum Direction: (0.74571,0.612924,0.261229) - New Polarization: (-0.661484,0.634165,0.400342) + 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) *** FresnelRefraction *** Track (trackID 612, parentID 1) is processed with stopping code 2 -### pop requested out of 150 stacked tracks. +### pop requested out of 182 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.856707,0.512447,0.0587375) - Old Polarization: (-0.499566,0.795996,0.341796) - New Momentum Direction: (0.718043,0.691472,0.0792576) - New Polarization: (-0.684318,0.680624,0.261646) + 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 *** Track (trackID 611, parentID 1) is processed with stopping code 2 -### pop requested out of 149 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.88136,0.361872,0.303731) - Old Polarization: (-0.471418,0.631253,0.615861) - New Momentum Direction: (0.771504,0.487321,0.409024) - New Polarization: (-0.635491,0.559378,0.53221) - *** FresnelRefraction *** -Track (trackID 610, parentID 1) is processed with stopping code 2 -### pop requested out of 148 stacked tracks. +### pop requested out of 181 stacked tracks. ** Photon absorbed! ** -Track (trackID 609, parentID 1) is processed with stopping code 2 -### pop requested out of 147 stacked tracks. +Track (trackID 610, parentID 1) is processed with stopping code 2 +### pop requested out of 180 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.850938,-0.0538179,0.522501) - Old Polarization: (-0.508278,0.166566,0.844931) - New Momentum Direction: (0.70028,-0.0731418,0.710111) - New Polarization: (-0.701802,0.11158,0.703579) + 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) + *** FresnelRefraction *** +Track (trackID 609, parentID 1) is processed with stopping code 2 +### pop requested out of 179 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) *** FresnelRefraction *** Track (trackID 608, parentID 1) is processed with stopping code 2 -### pop requested out of 146 stacked tracks. +### pop requested out of 178 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.873636,0.416631,0.251354) - Old Polarization: (-0.483151,0.681551,0.549594) - New Momentum Direction: (0.750646,0.565723,0.341302) - New Polarization: (-0.65828,0.596165,0.459625) - *** FresnelRefraction *** + 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) + *** 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) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 607, parentID 1) is processed with stopping code 2 -### pop requested out of 145 stacked tracks. +### pop requested out of 177 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.855251,-0.0354806,0.516999) - Old Polarization: (-0.502479,0.187202,0.844079) - New Momentum Direction: (0.71219,-0.048063,0.70034) - New Polarization: (-0.690747,0.129838,0.711345) + 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 144 stacked tracks. +### pop requested out of 176 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.84578,-0.105403,0.523017) - Old Polarization: (-0.512761,0.110285,0.851419) - New Momentum Direction: (0.691461,-0.142718,0.708176) - New Polarization: (-0.707554,0.0640131,0.703754) + 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 143 stacked tracks. +### pop requested out of 175 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.87524,0.383787,0.294383) - Old Polarization: (-0.482125,0.643333,0.594709) - New Momentum Direction: (0.752986,0.522125,0.400496) - New Polarization: (-0.656936,0.561288,0.503379) + 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) *** FresnelRefraction *** Track (trackID 604, parentID 1) is processed with stopping code 2 -### pop requested out of 142 stacked tracks. +### pop requested out of 174 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! ** Track (trackID 603, parentID 1) is processed with stopping code 2 -### pop requested out of 141 stacked tracks. +### pop requested out of 173 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.700807,-0.675812,0.228358) - Old Polarization: (-0.672448,-0.519019,0.527668) - New Momentum Direction: (0.261922,-0.914303,0.308945) - New Polarization: (-0.9409,-0.170698,0.292521) + 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) *** FresnelRefraction *** Track (trackID 602, parentID 1) is processed with stopping code 2 -### pop requested out of 140 stacked tracks. +### pop requested out of 172 stacked tracks. ** Photon absorbed! ** Track (trackID 601, parentID 1) is processed with stopping code 2 -### pop requested out of 139 stacked tracks. +### pop requested out of 171 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.855583,-0.0404521,0.516083) - Old Polarization: (-0.501551,0.18203,0.845761) - New Momentum Direction: (0.714083,-0.0547051,0.697921) - New Polarization: (-0.688514,0.125443,0.714291) + 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) *** FresnelRefraction *** Track (trackID 600, parentID 1) is processed with stopping code 2 -### pop requested out of 138 stacked tracks. +### pop requested out of 170 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.863009,0.0381334,0.503748) - Old Polarization: (-0.494523,0.267589,0.826948) - New Momentum Direction: (0.728102,0.0517415,0.683513) - New Polarization: (-0.677885,0.202263,0.706796) + 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) *** FresnelRefraction *** Track (trackID 599, parentID 1) is processed with stopping code 2 -### pop requested out of 137 stacked tracks. +### pop requested out of 169 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.856537,0.508304,0.0892877) - Old Polarization: (-0.502111,0.780786,0.37183) - New Momentum Direction: (0.712883,0.690708,0.121329) - New Polarization: (-0.69136,0.663197,0.286689) + 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 *** Track (trackID 598, parentID 1) is processed with stopping code 2 -### pop requested out of 136 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.879026,0.37543,0.29388) - Old Polarization: (-0.475337,0.642282,0.601273) - New Momentum Direction: (0.764838,0.507286,0.397094) - New Polarization: (-0.6432,0.5666,0.515032) - *** FresnelRefraction *** -Track (trackID 597, parentID 1) is processed with stopping code 2 -### pop requested out of 135 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.662017,-0.744569,0.0857373) - Old Polarization: (-0.715096,-0.593237,0.36974) - New Momentum Direction: (0.896593,-0.427362,0.116117) - New Polarization: (0.357333,0.85302,0.380356) - *** FresnelRefraction *** -Track (trackID 596, parentID 1) is processed with stopping code 2 -### pop requested out of 134 stacked tracks. +### 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! ** -Track (trackID 595, parentID 1) is processed with stopping code 2 -### pop requested out of 133 stacked tracks. +Track (trackID 597, parentID 1) is processed with stopping code 2 +### pop requested out of 167 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.828741,0.549904,-0.103893) - Old Polarization: (-0.531587,0.831558,0.161017) - New Momentum Direction: (0.652334,0.744756,-0.140707) - New Polarization: (-0.737926,0.666447,0.106365) + 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! ** +Track (trackID 596, parentID 1) is processed with stopping code 2 +### pop requested out of 166 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) + *** FresnelRefraction *** +Track (trackID 595, parentID 1) is processed with stopping code 2 +### pop requested out of 165 stacked tracks. + 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) *** FresnelRefraction *** Track (trackID 594, parentID 1) is processed with stopping code 2 -### pop requested out of 132 stacked tracks. +### pop requested out of 164 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.863209,0.494985,0.0992949) - Old Polarization: (-0.491661,0.779587,0.387961) - New Momentum Direction: (0.733323,0.6666,0.133721) - New Polarization: (-0.670373,0.67617,0.305604) + 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 *** Track (trackID 593, parentID 1) is processed with stopping code 2 -### pop requested out of 131 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.833754,-0.19239,0.517533) - Old Polarization: (-0.525033,0.0138109,0.85097) - New Momentum Direction: (0.667053,-0.259597,0.698319) - New Polarization: (-0.725519,-0.013349,0.688073) - *** FresnelRefraction *** +### pop requested out of 163 stacked tracks. + +** Photon absorbed! ** Track (trackID 592, parentID 1) is processed with stopping code 2 -### pop requested out of 130 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.845538,-0.123988,0.51932) - Old Polarization: (-0.511665,0.0896977,0.85449) - New Momentum Direction: (0.694238,-0.167142,0.70007) - New Polarization: (-0.703697,0.0466323,0.708968) - *** FresnelRefraction *** +### pop requested out of 162 stacked tracks. + +** Photon absorbed! ** Track (trackID 591, parentID 1) is processed with stopping code 2 -### pop requested out of 129 stacked tracks. +### pop requested out of 161 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.847075,0.531249,0.0154692) - Old Polarization: (-0.512028,0.807935,0.291664) - New Momentum Direction: (0.692702,0.720918,0.0209922) - New Polarization: (-0.70737,0.673432,0.214749) + 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) + *** 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) + *** 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) + *** 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) + *** 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) + *** 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) + 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) *** FresnelRefraction *** Track (trackID 590, parentID 1) is processed with stopping code 2 -### pop requested out of 128 stacked tracks. +### pop requested out of 160 stacked tracks. ** Photon absorbed! ** Track (trackID 589, parentID 1) is processed with stopping code 2 -### pop requested out of 127 stacked tracks. +### pop requested out of 159 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.692657,-0.693417,0.19849) - Old Polarization: (-0.681466,-0.539013,0.495045) - New Momentum Direction: (0.22041,-0.937745,0.268429) - New Polarization: (-0.952722,-0.147965,0.265381) + 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) *** FresnelRefraction *** Track (trackID 588, parentID 1) is processed with stopping code 2 -### pop requested out of 126 stacked tracks. +### pop requested out of 158 stacked tracks. ** Photon absorbed! ** Track (trackID 587, parentID 1) is processed with stopping code 2 -### pop requested out of 125 stacked tracks. +### pop requested out of 157 stacked tracks. ** Photon absorbed! ** Track (trackID 586, parentID 1) is processed with stopping code 2 -### pop requested out of 124 stacked tracks. +### pop requested out of 156 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.783938,0.529609,-0.323968) - Old Polarization: (-0.580828,0.809944,-0.0814243) - New Momentum Direction: (0.541907,0.716939,-0.438561) - New Polarization: (-0.812602,0.580154,-0.0556797) + 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) *** FresnelRefraction *** Track (trackID 585, parentID 1) is processed with stopping code 2 -### pop requested out of 123 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.597556,-0.0762162,-0.798197) - Old Polarization: (-0.785807,0.142333,-0.601871) - New Momentum Direction: (0.809955,-0.103307,-0.577322) - New Polarization: (0.576151,-0.0438782,0.816165) - *** FresnelRefraction *** -Track (trackID 584, parentID 1) is processed with stopping code 2 -### pop requested out of 122 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.618087,0.0314967,-0.785479) - Old Polarization: (-0.763642,0.261239,-0.590428) - New Momentum Direction: (0.836442,0.0426237,-0.546396) - New Polarization: (0.522008,0.241743,0.817966) - *** FresnelRefraction *** -Track (trackID 583, parentID 1) is processed with stopping code 2 -### pop requested out of 121 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.861041,0.493427,0.123035) - Old Polarization: (-0.497006,0.765296,0.409032) - New Momentum Direction: (0.723181,0.67014,0.167098) - New Polarization: (-0.682473,0.65624,0.321839) - *** FresnelRefraction *** -Track (trackID 582, parentID 1) is processed with stopping code 2 -### pop requested out of 120 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.557351,-0.556949,-0.615766) - Old Polarization: (-0.830159,-0.386337,-0.401971) - New Momentum Direction: (0.557351,-0.556949,0.615766) - New Polarization: (0.830159,0.386337,-0.401971) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557351,-0.556949,0.615766) - Old Polarization: (0.830159,0.386337,-0.401971) - New Momentum Direction: (-0.557351,-0.556949,0.615766) - New Polarization: (0.830159,-0.386337,0.401971) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557351,-0.556949,0.615766) - Old Polarization: (0.830159,-0.386337,0.401971) - New Momentum Direction: (-0.557351,0.556949,0.615766) - New Polarization: (-0.830159,-0.386337,-0.401971) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.557351,0.556949,0.615766) -Old Polarization: (-0.830159,-0.386337,-0.401971) -New Polarization: (-0.827724,-0.436559,-0.352547) -Polarization Change: (-0.827724,-0.436559,-0.352547) -New Momentum Direction: (-0.0637524,0.697368,-0.713872) -Momentum Change: (-0.0637524,0.697368,-0.713872) - Photon at Boundary! - Old Momentum Direction: (-0.0637524,0.697368,-0.713872) - Old Polarization: (-0.827724,-0.436559,-0.352547) - New Momentum Direction: (-0.0637524,-0.697368,-0.713872) - New Polarization: (0.927448,-0.305521,0.215632) - *** FresnelReflection *** +### pop requested out of 155 stacked tracks. ** Photon absorbed! ** -Track (trackID 581, parentID 1) is processed with stopping code 2 -### pop requested out of 119 stacked tracks. +Track (trackID 584, parentID 1) is processed with stopping code 2 +### pop requested out of 154 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.690929,-0.697276,0.190846) - Old Polarization: (-0.683405,-0.543903,0.486958) - New Momentum Direction: (0.933971,-0.247276,0.257979) - New Polarization: (0.080395,0.848814,0.522544) + 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! ** +Track (trackID 583, parentID 1) is processed with stopping code 2 +### pop requested out of 153 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) *** FresnelRefraction *** +Track (trackID 582, parentID 1) is processed with stopping code 2 +### pop requested out of 152 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) + *** FresnelRefraction *** +Track (trackID 581, parentID 1) is processed with stopping code 2 +### pop requested out of 151 stacked tracks. + +** Photon absorbed! ** Track (trackID 580, parentID 1) is processed with stopping code 2 -### pop requested out of 118 stacked tracks. +### pop requested out of 150 stacked tracks. ** Photon absorbed! ** Track (trackID 579, parentID 1) is processed with stopping code 2 -### pop requested out of 117 stacked tracks. +### pop requested out of 149 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.610981,-0.002349,-0.791642) - Old Polarization: (-0.771261,0.2237,-0.595915) - New Momentum Direction: (0.827504,-0.00318146,-0.561452) - New Polarization: (0.555106,0.154658,0.817275) + 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) *** FresnelRefraction *** Track (trackID 578, parentID 1) is processed with stopping code 2 -### pop requested out of 116 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.879915,0.302341,0.366522) - Old Polarization: (-0.47513,0.559411,0.679199) - New Momentum Direction: (0.765637,0.409336,0.49623) - New Polarization: (-0.643273,0.486832,0.590927) - *** FresnelRefraction *** +### pop requested out of 148 stacked tracks. + +** Photon absorbed! ** Track (trackID 577, parentID 1) is processed with stopping code 2 -### pop requested out of 115 stacked tracks. +### pop requested out of 147 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.813162,0.555426,-0.173981) - Old Polarization: (-0.549671,0.831123,0.0842359) - New Momentum Direction: (0.611207,0.755284,-0.236584) - New Polarization: (-0.768697,0.637669,0.0498246) + 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) *** FresnelRefraction *** Track (trackID 576, parentID 1) is processed with stopping code 2 -### pop requested out of 114 stacked tracks. +### pop requested out of 146 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.817926,-0.2534,0.516513) - Old Polarization: (-0.544526,-0.0511698,0.837182) - New Momentum Direction: (0.622643,-0.344653,0.702517) - New Polarization: (-0.760797,-0.0566293,0.646514) + 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) *** FresnelRefraction *** Track (trackID 575, parentID 1) is processed with stopping code 2 -### pop requested out of 113 stacked tracks. +### pop requested out of 145 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.668194,-0.735059,0.114911) - Old Polarization: (-0.708157,-0.581029,0.401146) - New Momentum Direction: (0.906002,-0.393554,0.155807) - New Polarization: (0.295939,0.852146,0.431587) + 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 *** Track (trackID 574, parentID 1) is processed with stopping code 2 -### pop requested out of 112 stacked tracks. +### pop requested out of 144 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) + *** FresnelRefraction *** +Track (trackID 573, parentID 1) is processed with stopping code 2 +### pop requested out of 143 stacked tracks. ** Photon absorbed! ** -Track (trackID 573, parentID 1) is processed with stopping code 2 -### pop requested out of 111 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.876877,0.401134,0.264914) - Old Polarization: (-0.478045,0.669638,0.568382) - New Momentum Direction: (0.759844,0.542481,0.358261) - New Polarization: (-0.648206,0.590105,0.481254) - *** FresnelRefraction *** Track (trackID 572, parentID 1) is processed with stopping code 2 -### pop requested out of 110 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.731018,0.429165,-0.530501) - Old Polarization: (-0.639056,0.703135,-0.311782) - New Momentum Direction: (0.389461,0.579284,-0.716066) - New Polarization: (-0.892859,0.428308,-0.139123) - *** FresnelRefraction *** +### pop requested out of 142 stacked tracks. + +** Photon absorbed! ** Track (trackID 571, parentID 1) is processed with stopping code 2 -### pop requested out of 109 stacked tracks. +### pop requested out of 141 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.564791,-0.684343,-0.461178) - Old Polarization: (-0.820971,-0.522677,-0.229817) - New Momentum Direction: (0.564791,0.684343,-0.461178) - New Polarization: (0.166724,0.452696,0.875939) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.564791,0.684343,-0.461178) - Old Polarization: (0.166724,0.452696,0.875939) - New Momentum Direction: (-0.564791,0.684343,-0.461178) - New Polarization: (0.166724,-0.452696,-0.875939) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.564791,0.684343,-0.461178) - Old Polarization: (0.166724,-0.452696,-0.875939) - New Momentum Direction: (-0.564791,0.684343,0.461178) - New Polarization: (-0.166724,0.452696,-0.875939) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.564791,0.684343,0.461178) - Old Polarization: (-0.166724,0.452696,-0.875939) - New Momentum Direction: (-0.767284,0.136914,0.626522) - New Polarization: (-0.466696,-0.789264,-0.399071) + 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 108 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 140 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 *** Track (trackID 569, parentID 1) is processed with stopping code 2 -### pop requested out of 107 stacked tracks. +### pop requested out of 139 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.559515,-0.655107,-0.507718) - Old Polarization: (-0.826255,-0.489036,-0.279547) - New Momentum Direction: (0.559515,0.655107,-0.507718) - New Polarization: (0.826255,-0.489036,0.279547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.559515,0.655107,-0.507718) - Old Polarization: (0.826255,-0.489036,0.279547) - New Momentum Direction: (-0.559515,0.655107,-0.507718) - New Polarization: (0.826255,0.489036,-0.279547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.559515,0.655107,-0.507718) - Old Polarization: (0.826255,0.489036,-0.279547) - New Momentum Direction: (-0.559515,0.655107,0.507718) - New Polarization: (-0.826255,-0.489036,-0.279547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.559515,0.655107,0.507718) - Old Polarization: (-0.826255,-0.489036,-0.279547) - New Momentum Direction: (-0.559515,0.655107,-0.507718) - New Polarization: (0.826255,0.489036,-0.279547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.559515,0.655107,-0.507718) - Old Polarization: (0.826255,0.489036,-0.279547) - New Momentum Direction: (-0.559515,-0.655107,-0.507718) - New Polarization: (-0.826255,0.489036,0.279547) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 568, parentID 1) is processed with stopping code 2 -### pop requested out of 106 stacked tracks. +### pop requested out of 138 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.575964,-0.240245,-0.781375) - Old Polarization: (-0.809943,-0.0382535,-0.58526) - New Momentum Direction: (0.779758,-0.325251,-0.534968) - New Polarization: (0.381712,-0.430317,0.818) - *** FresnelRefraction *** -Track (trackID 567, parentID 1) is processed with stopping code 2 -### pop requested out of 105 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.557617,-0.55882,-0.613827) - Old Polarization: (-0.829963,-0.388664,-0.400127) - New Momentum Direction: (0.557617,-0.55882,0.613827) - New Polarization: (0.829963,0.388664,-0.400127) + 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) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.557617,-0.55882,0.613827) - Old Polarization: (0.829963,0.388664,-0.400127) - New Momentum Direction: (-0.557617,-0.55882,0.613827) - New Polarization: (0.829963,-0.388664,0.400127) + 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) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.557617,-0.55882,0.613827) - Old Polarization: (0.829963,-0.388664,0.400127) - New Momentum Direction: (-0.557617,0.55882,0.613827) - New Polarization: (-0.829963,-0.388664,-0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557617,0.55882,0.613827) - Old Polarization: (-0.829963,-0.388664,-0.400127) - New Momentum Direction: (-0.557617,0.55882,-0.613827) - New Polarization: (0.829963,0.388664,-0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557617,0.55882,-0.613827) - Old Polarization: (0.829963,0.388664,-0.400127) - New Momentum Direction: (-0.557617,-0.55882,-0.613827) - New Polarization: (-0.829963,0.388664,0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557617,-0.55882,-0.613827) - Old Polarization: (-0.829963,0.388664,0.400127) - New Momentum Direction: (0.557617,-0.55882,-0.613827) - New Polarization: (-0.829963,-0.388664,-0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557617,-0.55882,-0.613827) - Old Polarization: (-0.829963,-0.388664,-0.400127) - New Momentum Direction: (0.557617,-0.55882,0.613827) - New Polarization: (0.829963,0.388664,-0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557617,-0.55882,0.613827) - Old Polarization: (0.829963,0.388664,-0.400127) - New Momentum Direction: (0.557617,0.55882,0.613827) - New Polarization: (-0.829963,0.388664,0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.557617,0.55882,0.613827) - Old Polarization: (-0.829963,0.388664,0.400127) - New Momentum Direction: (-0.557617,0.55882,0.613827) - New Polarization: (-0.829963,-0.388664,-0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557617,0.55882,0.613827) - Old Polarization: (-0.829963,-0.388664,-0.400127) - New Momentum Direction: (-0.557617,0.55882,-0.613827) - New Polarization: (0.829963,0.388664,-0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557617,0.55882,-0.613827) - Old Polarization: (0.829963,0.388664,-0.400127) - New Momentum Direction: (-0.557617,-0.55882,-0.613827) - New Polarization: (-0.829963,0.388664,0.400127) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.557617,-0.55882,-0.613827) - Old Polarization: (-0.829963,0.388664,0.400127) - New Momentum Direction: (0.557617,-0.55882,-0.613827) - New Polarization: (-0.829963,-0.388664,-0.400127) + 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) *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 566, parentID 1) is processed with stopping code 2 -### pop requested out of 104 stacked tracks. +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.594809,-0.771415,-0.226099) - Old Polarization: (-0.787708,-0.615434,0.0275042) - New Momentum Direction: (0.809311,-0.500376,-0.307636) - New Polarization: (0.396974,0.851969,-0.341409) + 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. + 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) + *** 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) + *** 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) + *** 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 *** +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! ** Track (trackID 565, parentID 1) is processed with stopping code 2 -### pop requested out of 103 stacked tracks. +### pop requested out of 135 stacked tracks. ** Photon absorbed! ** Track (trackID 564, parentID 1) is processed with stopping code 2 -### pop requested out of 102 stacked tracks. +### pop requested out of 134 stacked tracks. ** Photon absorbed! ** Track (trackID 563, parentID 1) is processed with stopping code 2 -### pop requested out of 101 stacked tracks. +### pop requested out of 133 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.786766,-0.412431,0.459239) - Old Polarization: (-0.577474,-0.229052,0.783619) - New Momentum Direction: (0.551194,-0.557508,0.620782) - New Polarization: (-0.806551,-0.16547,0.567535) + 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) *** FresnelRefraction *** Track (trackID 562, parentID 1) is processed with stopping code 2 -### pop requested out of 100 stacked tracks. +### pop requested out of 132 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.57825,-0.213124,-0.787531) - Old Polarization: (-0.807071,-0.00812295,-0.590399) - New Momentum Direction: (0.783665,-0.288833,-0.54995) - New Polarization: (0.43422,-0.378389,0.817481) - *** FresnelRefraction *** -Track (trackID 561, parentID 1) is processed with stopping code 2 -### pop requested out of 99 stacked tracks. + 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.746478,0.46311,-0.477808) - Old Polarization: (-0.621905,0.740944,-0.253448) - New Momentum Direction: (0.43987,0.625029,-0.644867) - New Polarization: (-0.868937,0.477596,-0.129807) - *** FresnelRefraction *** -Track (trackID 560, parentID 1) is processed with stopping code 2 -### pop requested out of 98 stacked tracks. + 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 absorbed! ** -Track (trackID 559, parentID 1) is processed with stopping code 2 -### pop requested out of 97 stacked tracks. +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.611197,-0.77278,-0.171028) - Old Polarization: (-0.771932,-0.629746,0.0868443) - New Momentum Direction: (0.824979,-0.515866,-0.23085) - New Polarization: (0.471397,0.853407,-0.222443) + 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 96 stacked tracks. +### pop requested out of 128 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.818233,0.556236,-0.145242) - Old Polarization: (-0.544313,0.830879,0.115602) - New Momentum Direction: (0.622902,0.756921,-0.197645) - New Polarization: (-0.760767,0.644973,0.0724077) + 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 95 stacked tracks. +### 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 *** ** Photon absorbed! ** Track (trackID 556, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.583158,-0.7534,-0.303832) -Old Polarization: (-0.800549,-0.596515,-0.0573731) -New Polarization: (-0.690279,-0.0524788,0.721638) -Polarization Change: (-0.690279,-0.0524788,0.721638) -New Momentum Direction: (0.507194,0.676201,0.534328) -Momentum Change: (0.507194,0.676201,0.534328) +### pop requested out of 126 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.507194,0.676201,0.534328) - Old Polarization: (-0.690279,-0.0524788,0.721638) - New Momentum Direction: (0.507194,-0.676201,0.534328) - New Polarization: (0.690279,-0.0524788,-0.721638) + 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.507194,-0.676201,0.534328) - Old Polarization: (0.690279,-0.0524788,-0.721638) - New Momentum Direction: (0.507194,-0.676201,-0.534328) - New Polarization: (-0.690279,0.0524788,-0.721638) + 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.507194,-0.676201,-0.534328) - Old Polarization: (-0.690279,0.0524788,-0.721638) - New Momentum Direction: (-0.507194,-0.676201,-0.534328) - New Polarization: (-0.690279,-0.0524788,0.721638) + 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.507194,-0.676201,-0.534328) - Old Polarization: (-0.690279,-0.0524788,0.721638) - New Momentum Direction: (-0.507194,0.676201,-0.534328) - New Polarization: (0.690279,-0.0524788,-0.721638) + 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.507194,0.676201,-0.534328) - Old Polarization: (0.690279,-0.0524788,-0.721638) - New Momentum Direction: (-0.507194,0.676201,0.534328) - New Polarization: (-0.690279,0.0524788,-0.721638) + 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.507194,0.676201,0.534328) - Old Polarization: (-0.690279,0.0524788,-0.721638) - New Momentum Direction: (0.507194,0.676201,0.534328) - New Polarization: (-0.690279,-0.0524788,0.721638) + 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.507194,0.676201,0.534328) - Old Polarization: (-0.690279,-0.0524788,0.721638) - New Momentum Direction: (0.507194,-0.676201,0.534328) - New Polarization: (0.690279,-0.0524788,-0.721638) + 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 absorbed! ** Track (trackID 555, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.729877,0.442832,-0.52075) - Old Polarization: (-0.640507,0.70917,-0.294668) - New Momentum Direction: (0.370241,0.601777,-0.707662) - New Polarization: (-0.901545,0.416402,-0.117581) - *** FresnelRefraction *** +### pop requested out of 125 stacked tracks. + +** Photon absorbed! ** Track (trackID 554, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. +### pop requested out of 124 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.7989,-0.35914,0.482469) - Old Polarization: (-0.564226,-0.169636,0.808005) - New Momentum Direction: (-0.7989,-0.35914,0.482469) - New Polarization: (-0.042703,-0.766266,-0.641103) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.7989,-0.35914,0.482469) - Old Polarization: (-0.042703,-0.766266,-0.641103) - New Momentum Direction: (-0.7989,-0.35914,-0.482469) - New Polarization: (0.042703,0.766266,-0.641103) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.7989,-0.35914,-0.482469) - Old Polarization: (0.042703,0.766266,-0.641103) - New Momentum Direction: (-0.7989,0.35914,-0.482469) - New Polarization: (-0.042703,0.766266,0.641103) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.7989,0.35914,-0.482469) - Old Polarization: (-0.042703,0.766266,0.641103) - New Momentum Direction: (-0.581248,0.485885,-0.652738) - New Polarization: (0.0817413,0.832965,0.547254) + 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) *** FresnelRefraction *** Track (trackID 553, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. +### pop requested out of 123 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.770974,-0.460971,0.439438) - Old Polarization: (-0.595674,-0.277819,0.75365) - New Momentum Direction: (0.500236,-0.626739,0.597463) - New Polarization: (-0.837878,-0.17628,0.516609) + 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) *** FresnelRefraction *** Track (trackID 552, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. +### pop requested out of 122 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.856055,-0.0264194,0.51621) - Old Polarization: (-0.501799,0.197043,0.842242) - New Momentum Direction: (0.71354,-0.0358102,0.699699) - New Polarization: (-0.689851,0.13847,0.710585) - *** FresnelRefraction *** -Track (trackID 551, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.554763,-0.509322,-0.657897) - Old Polarization: (-0.831964,-0.331416,-0.444971) - New Momentum Direction: (0.554763,-0.509322,0.657897) - New Polarization: (0.831964,0.331416,-0.444971) + 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) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.554763,-0.509322,0.657897) - Old Polarization: (0.831964,0.331416,-0.444971) - New Momentum Direction: (-0.554763,-0.509322,0.657897) - New Polarization: (0.831964,-0.331416,0.444971) + 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) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.554763,-0.509322,0.657897) - Old Polarization: (0.831964,-0.331416,0.444971) - New Momentum Direction: (-0.554763,0.509322,0.657897) - New Polarization: (-0.831964,-0.331416,-0.444971) + 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) *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 550, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. +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.628671,0.0846215,-0.773053) - Old Polarization: (-0.751939,0.319743,-0.5765) - New Momentum Direction: (0.85089,0.114533,-0.512706) - New Polarization: (0.443511,0.366477,0.81792) + 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. + 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) *** FresnelRefraction *** Track (trackID 549, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. +### pop requested out of 119 stacked tracks. ** Photon absorbed! ** Track (trackID 548, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. +### pop requested out of 118 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.567102,-0.692937,-0.445234) - Old Polarization: (-0.818736,-0.533204,-0.212989) - New Momentum Direction: (0.769798,-0.205294,-0.604372) - New Polarization: (-0.164833,0.850808,-0.498955) + 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) *** FresnelRefraction *** Track (trackID 547, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.679506,0.295744,-0.671422) - Old Polarization: (-0.695705,0.550312,-0.461683) - New Momentum Direction: (-0.679506,0.295744,-0.671422) - New Polarization: (-0.680638,-0.595727,0.42643) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.679506,0.295744,-0.671422) - Old Polarization: (-0.680638,-0.595727,0.42643) - New Momentum Direction: (-0.679506,0.295744,0.671422) - New Polarization: (0.680638,0.595727,0.42643) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.679506,0.295744,0.671422) -Old Polarization: (0.680638,0.595727,0.42643) -New Polarization: (-0.483784,-0.865128,0.132311) -Polarization Change: (-0.483784,-0.865128,0.132311) -New Momentum Direction: (-0.486375,0.140082,-0.862448) -Momentum Change: (-0.486375,0.140082,-0.862448) - Photon at Boundary! - Old Momentum Direction: (-0.486375,0.140082,-0.862448) - Old Polarization: (-0.483784,-0.865128,0.132311) - New Momentum Direction: (-0.659716,0.190006,-0.727099) - New Polarization: (-0.505412,-0.828206,0.242146) - *** FresnelRefraction *** +### pop requested out of 117 stacked tracks. + +** Photon absorbed! ** Track (trackID 546, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. +### pop requested out of 116 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.872424,0.140561,0.468102) - Old Polarization: (-0.484124,0.379996,0.78818) - New Momentum Direction: (0.748598,0.190682,0.635013) - New Polarization: (-0.659746,0.309357,0.684861) + 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 83 stacked tracks. +### pop requested out of 115 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.87777,0.334494,0.342977) - Old Polarization: (-0.478865,0.591001,0.649158) - New Momentum Direction: (0.759143,0.454474,0.466) - New Polarization: (-0.65077,0.514369,0.5585) + 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 82 stacked tracks. - -** Photon absorbed! ** -Track (trackID 543, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. +### pop requested out of 114 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.780711,0.532994,-0.326202) - Old Polarization: (-0.585053,0.806851,-0.0818835) - New Momentum Direction: (0.52737,0.724686,-0.443521) - New Polarization: (-0.822261,0.566761,-0.0516596) + 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 80 stacked tracks. +### pop requested out of 112 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.728614,-0.599668,0.330939) - Old Polarization: (-0.641899,-0.429294,0.635352) - New Momentum Direction: (0.364665,-0.815234,0.449903) - New Polarization: (-0.903894,-0.193907,0.381281) + 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 79 stacked tracks. +### pop requested out of 111 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.803475,0.54822,-0.232128) - Old Polarization: (-0.559545,0.828557,0.0200376) - New Momentum Direction: (0.590732,0.743007,-0.314605) - New Polarization: (-0.781654,0.62369,0.0052702) + 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 78 stacked tracks. +### 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. ** Photon absorbed! ** -Track (trackID 539, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.873049,0.149216,0.464242) - Old Polarization: (-0.483436,0.389491,0.783956) - New Momentum Direction: (0.749941,0.202421,0.629773) - New Polarization: (-0.658531,0.318615,0.681778) - *** FresnelRefraction *** Track (trackID 538, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. +### pop requested out of 108 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.873114,0.438184,0.213697) - Old Polarization: (-0.482101,0.710902,0.512051) - New Momentum Direction: (0.75203,0.592431,0.288922) - New Polarization: (-0.655268,0.624601,0.424849) + 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) *** FresnelRefraction *** Track (trackID 537, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. +### pop requested out of 107 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.721883,0.404561,-0.56144) - Old Polarization: (-0.649184,0.676896,-0.346946) - New Momentum Direction: (0.359055,0.545629,-0.757211) - New Polarization: (-0.905927,0.398855,-0.142167) + 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 74 stacked tracks. +### pop requested out of 106 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.834029,0.544731,-0.0875417) - Old Polarization: (-0.524674,0.832166,0.179492) - New Momentum Direction: (0.667838,0.734878,-0.1181) - New Polarization: (-0.724849,0.678183,0.121085) + 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) + *** 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) + *** 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) *** FresnelRefraction *** Track (trackID 535, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.579664,-0.212815,-0.786575) - Old Polarization: (-0.806042,-0.00816223,-0.591802) - New Momentum Direction: (0.784363,-0.287967,-0.549409) - New Polarization: (0.434463,-0.377134,0.817932) - *** FresnelRefraction *** +### pop requested out of 105 stacked tracks. + +** Photon absorbed! ** Track (trackID 534, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. +### pop requested out of 104 stacked tracks. ** Photon absorbed! ** Track (trackID 533, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. +### pop requested out of 103 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! ** Track (trackID 532, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - -** Photon absorbed! ** -Track (trackID 531, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. +### pop requested out of 102 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.845048,-0.11063,0.52312) - Old Polarization: (-0.513539,0.104529,0.851676) - New Momentum Direction: (0.689887,-0.149781,0.708252) - New Polarization: (-0.708783,0.0592481,0.702934) + 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) + *** 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 *** Track (trackID 530, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. +### pop requested out of 100 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.694349,0.332099,-0.638428) - Old Polarization: (-0.679645,0.594248,-0.430059) - New Momentum Direction: (0.233032,0.448775,-0.862726) - New Polarization: (-0.94937,0.297197,-0.101839) + 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) *** FresnelRefraction *** Track (trackID 529, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. +### pop requested out of 99 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.841222,-0.13842,0.522671) - Old Polarization: (-0.517512,0.0738684,0.852482) - New Momentum Direction: (0.681897,-0.187256,0.707073) - New Polarization: (-0.714844,0.0341995,0.698448) + 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) *** FresnelRefraction *** Track (trackID 528, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.85625,0.511182,0.0743543) - Old Polarization: (-0.501494,0.788104,0.356926) - New Momentum Direction: (0.714157,0.692696,0.100756) - New Polarization: (-0.68923,0.670726,0.274024) - *** FresnelRefraction *** +### pop requested out of 98 stacked tracks. + +** Photon absorbed! ** Track (trackID 527, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. +### pop requested out of 97 stacked tracks. ** Photon absorbed! ** Track (trackID 526, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.844321,-0.112903,0.523808) - Old Polarization: (-0.514541,0.102026,0.851374) - New Momentum Direction: (0.687749,-0.15296,0.709651) - New Polarization: (-0.71073,0.0572395,0.701133) - *** FresnelRefraction *** +### pop requested out of 96 stacked tracks. + +** Photon absorbed! ** Track (trackID 525, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. +### 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 *** ** Photon absorbed! ** Track (trackID 524, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. +### pop requested out of 94 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.568611,-0.630763,-0.528034) - Old Polarization: (-0.820785,-0.477731,-0.313186) - New Momentum Direction: (0.568611,0.630763,-0.528034) - New Polarization: (0.820785,-0.477731,0.313186) + 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 61 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.777402,-0.438493,0.450965) - Old Polarization: (-0.588522,-0.254017,0.76754) - New Momentum Direction: (0.519611,-0.595624,0.612565) - New Polarization: (-0.826621,-0.169116,0.536747) - *** FresnelRefraction *** +### pop requested out of 93 stacked tracks. + +** Photon absorbed! ** Track (trackID 522, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. +### pop requested out of 92 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.770327,-0.467214,0.433943) - Old Polarization: (-0.596144,-0.28618,0.750142) - New Momentum Direction: (0.501119,-0.634075,0.588922) - New Polarization: (-0.837059,-0.182491,0.51578) + 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) *** FresnelRefraction *** Track (trackID 521, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. +### pop requested out of 91 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.84503,-0.135511,0.517263) - Old Polarization: (-0.511555,0.0767597,0.855815) - New Momentum Direction: (0.694761,-0.182274,0.695761) - New Polarization: (-0.702466,0.0357416,0.710819) + 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) *** FresnelRefraction *** Track (trackID 520, parentID 1) is processed with stopping code 2 -### pop requested out of 58 stacked tracks. - -** Photon absorbed! ** -Track (trackID 519, parentID 1) is processed with stopping code 2 -### pop requested out of 57 stacked tracks. +### pop requested out of 90 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.876256,0.428107,0.221134) - Old Polarization: (-0.476974,0.705557,0.524105) - New Momentum Direction: (0.761079,0.576316,0.297689) - New Polarization: (-0.645162,0.624961,0.439533) + 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 *** +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 *** Track (trackID 518, parentID 1) is processed with stopping code 2 -### pop requested out of 56 stacked tracks. +### pop requested out of 88 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.684556,-0.706817,0.178303) - Old Polarization: (-0.690177,-0.549729,0.470588) - New Momentum Direction: (0.928376,-0.282215,0.24181) - New Polarization: (0.124811,0.849624,0.512408) + 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 *** Track (trackID 517, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. +### pop requested out of 87 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.680766,-0.717241,0.148739) - Old Polarization: (-0.694766,-0.567912,0.441335) - New Momentum Direction: (0.919033,-0.339204,0.200797) - New Polarization: (0.208196,0.850261,0.483436) - *** FresnelRefraction *** -Track (trackID 516, parentID 1) is processed with stopping code 2 -### pop requested out of 54 stacked tracks. - -** Photon absorbed! ** -Track (trackID 515, parentID 1) is processed with stopping code 2 -### pop requested out of 53 stacked tracks. + 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.67226,-0.730647,0.119252) - Old Polarization: (-0.704074,-0.581219,0.408) - New Momentum Direction: (0.908477,-0.385616,0.161154) - New Polarization: (0.283523,0.851939,0.440244) - *** FresnelRefraction *** -Track (trackID 514, parentID 1) is processed with stopping code 2 -### pop requested out of 52 stacked tracks. + 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.574139,-0.303462,-0.760444) - Old Polarization: (-0.81389,-0.110408,-0.570432) - New Momentum Direction: (0.773139,-0.408643,-0.485043) - New Polarization: (0.235644,-0.524944,0.817866) - *** FresnelRefraction *** -Track (trackID 513, parentID 1) is processed with stopping code 2 -### pop requested out of 51 stacked tracks. + 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.656711,0.223625,-0.720224) - Old Polarization: (-0.720299,0.468881,-0.511195) - New Momentum Direction: (0.893319,0.304195,-0.330826) - New Polarization: (0.10197,0.579726,0.808406) - *** FresnelRefraction *** -Track (trackID 512, parentID 1) is processed with stopping code 2 -### pop requested out of 50 stacked tracks. + 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.789005,0.541439,-0.290371) - Old Polarization: (-0.575971,0.816346,-0.0428496) - New Momentum Direction: (-0.789005,0.541439,-0.290371) - New Polarization: (-0.13506,-0.61391,-0.777736) - *** FresnelReflection *** + 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.789005,0.541439,-0.290371) - Old Polarization: (-0.13506,-0.61391,-0.777736) - New Momentum Direction: (-0.789005,-0.541439,-0.290371) - New Polarization: (0.13506,-0.61391,0.777736) + 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) + *** 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 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) + 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) + *** FresnelRefraction *** +Track (trackID 515, parentID 1) is processed with stopping code 2 +### pop requested out of 85 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) + *** FresnelRefraction *** +Track (trackID 514, parentID 1) is processed with stopping code 2 +### pop requested out of 84 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 *** +Track (trackID 513, parentID 1) is processed with stopping code 2 +### pop requested out of 83 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 *** +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 *** Track (trackID 511, parentID 1) is processed with stopping code 2 -### pop requested out of 49 stacked tracks. +### pop requested out of 81 stacked tracks. ** Photon absorbed! ** Track (trackID 510, parentID 1) is processed with stopping code 2 -### pop requested out of 48 stacked tracks. +### pop requested out of 80 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.852981,-0.0397315,0.520427) - Old Polarization: (-0.505947,0.182005,0.843144) - New Momentum Direction: (0.705073,-0.0539811,0.707077) - New Polarization: (-0.69777,0.124986,0.705334) + 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 *** Track (trackID 509, parentID 1) is processed with stopping code 2 -### pop requested out of 47 stacked tracks. +### pop requested out of 79 stacked tracks. ** Photon absorbed! ** Track (trackID 508, parentID 1) is processed with stopping code 2 -### pop requested out of 46 stacked tracks. +### 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.832926,0.545492,-0.0931288) - Old Polarization: (-0.525955,0.832676,0.173266) - New Momentum Direction: (0.665155,0.736055,-0.125663) - New Polarization: (-0.726984,0.676774,0.11607) + 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 *** Track (trackID 507, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.842591,0.538152,-0.0208043) - Old Polarization: (-0.516405,0.818299,0.252413) - New Momentum Direction: (0.683945,0.728989,-0.0281818) - New Polarization: (-0.713704,0.676608,0.181186) - *** FresnelRefraction *** -Track (trackID 506, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.574214,-0.729576,-0.37148) - Old Polarization: (-0.810404,-0.570966,-0.131317) - New Momentum Direction: (0.780696,-0.368002,-0.505062) - New Polarization: (0.064795,0.851528,-0.52029) - *** FresnelRefraction *** -Track (trackID 505, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. +### pop requested out of 77 stacked tracks. ** Photon absorbed! ** -Track (trackID 504, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. +Track (trackID 506, parentID 1) is processed with stopping code 2 +### pop requested out of 76 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.569972,-0.706038,-0.420289) - Old Polarization: (-0.81567,-0.547863,-0.185818) - New Momentum Direction: (0.773526,-0.276257,-0.570386) - New Polarization: (-0.0807188,0.849722,-0.521015) + 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 41 stacked tracks. +### pop requested out of 73 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.845581,-0.110238,0.522342) - Old Polarization: (-0.512701,0.104966,0.852127) - New Momentum Direction: (0.691696,-0.14913,0.706624) - New Polarization: (-0.707036,0.0595481,0.704666) + 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 40 stacked tracks. +### pop requested out of 72 stacked tracks. ** Photon absorbed! ** Track (trackID 501, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - -** Photon absorbed! ** -Track (trackID 500, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. +### pop requested out of 71 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.872252,0.121982,0.4736) - Old Polarization: (-0.483482,0.360885,0.797501) - New Momentum Direction: (0.749531,0.165111,0.641048) - New Polarization: (-0.658002,0.291703,0.694221) + 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 37 stacked tracks. +### pop requested out of 69 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.743731,0.473631,-0.471739) - Old Polarization: (-0.625399,0.742226,-0.240784) - New Momentum Direction: (0.417233,0.643904,-0.64133) - New Polarization: (-0.880649,0.460743,-0.110335) + 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) + *** 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) + *** 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) *** FresnelRefraction *** Track (trackID 498, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. +### pop requested out of 68 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.807325,0.549281,-0.215678) - Old Polarization: (-0.555159,0.830877,0.0379778) - New Momentum Direction: (0.601061,0.74391,-0.292101) - New Polarization: (-0.774494,0.632359,0.0167768) + 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) *** FresnelRefraction *** Track (trackID 497, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. +### pop requested out of 67 stacked tracks. ** Photon absorbed! ** Track (trackID 496, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. +### pop requested out of 66 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.809608,-0.301289,0.503746) - Old Polarization: (-0.553118,-0.104357,0.826541) - New Momentum Direction: (0.604449,-0.408912,0.68369) - New Polarization: (-0.772778,-0.0924725,0.627904) + 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) *** FresnelRefraction *** Track (trackID 495, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.685898,-0.707912,0.168539) - Old Polarization: (-0.689065,-0.557365,0.463178) - New Momentum Direction: (0.92609,-0.300956,0.227559) - New Polarization: (0.151642,0.849153,0.505909) - *** FresnelRefraction *** -Track (trackID 494, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.88181,0.264835,0.390223) - Old Polarization: (-0.471352,0.522056,0.710834) - New Momentum Direction: (0.771862,0.357034,0.526075) - New Polarization: (-0.635609,0.453062,0.625089) - *** FresnelRefraction *** -Track (trackID 493, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.630511,-0.772578,-0.0746883) - Old Polarization: (-0.75078,-0.631463,0.193865) - New Momentum Direction: (0.85004,-0.517003,-0.100693) - New Polarization: (0.520638,0.853695,0.0119188) - *** FresnelRefraction *** -Track (trackID 492, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.707492,-0.662314,0.246567) - Old Polarization: (-0.665116,-0.506062,0.549109) - New Momentum Direction: (0.297411,-0.894757,0.333101) - New Polarization: (-0.929359,-0.191385,0.315696) - *** FresnelRefraction *** -Track (trackID 491, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.776983,0.52289,-0.350549) - Old Polarization: (-0.588646,0.800852,-0.110143) - New Momentum Direction: (0.521709,0.708616,-0.475061) - New Polarization: (-0.824941,0.560969,-0.0691843) - *** FresnelRefraction *** -Track (trackID 490, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. - -** Photon absorbed! ** -Track (trackID 489, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.870373,0.46312,0.167244) - Old Polarization: (-0.484062,0.742567,0.462902) - New Momentum Direction: (0.747909,0.624339,0.225464) - New Polarization: (-0.657822,0.651621,0.377704) - *** FresnelRefraction *** -Track (trackID 488, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.563455,-0.355573,-0.745712) - Old Polarization: (-0.823113,-0.164341,-0.543578) - New Momentum Direction: (0.563455,-0.355573,0.745712) - New Polarization: (0.239684,0.934174,0.264331) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.563455,-0.355573,0.745712) - Old Polarization: (0.239684,0.934174,0.264331) - New Momentum Direction: (-0.563455,-0.355573,0.745712) - New Polarization: (0.239684,-0.934174,-0.264331) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.563455,-0.355573,0.745712) - Old Polarization: (0.239684,-0.934174,-0.264331) - New Momentum Direction: (-0.563455,0.355573,0.745712) - New Polarization: (-0.239684,-0.934174,0.264331) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.563455,0.355573,0.745712) - Old Polarization: (-0.239684,-0.934174,0.264331) - New Momentum Direction: (-0.764059,0.482165,0.428637) - New Polarization: (-0.644851,-0.590858,-0.484823) - *** FresnelRefraction *** -Track (trackID 487, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - -** Photon absorbed! ** -Track (trackID 486, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.822741,0.545425,-0.160028) - Old Polarization: (-0.536414,0.838147,0.0988375) - New Momentum Direction: (0.644735,0.733487,-0.215206) - New Polarization: (-0.741316,0.668643,0.0580329) - *** FresnelRefraction *** -Track (trackID 485, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.667333,-0.734859,0.121034) -Old Polarization: (-0.708781,-0.57675,0.406187) -New Polarization: (-0.0206581,-0.999484,-0.0245961) -Polarization Change: (-0.0206581,-0.999484,-0.0245961) -New Momentum Direction: (0.856171,-0.00498143,-0.516669) -Momentum Change: (0.856171,-0.00498143,-0.516669) -Scattering Photon! -Old Momentum Direction: (0.856171,-0.00498143,-0.516669) -Old Polarization: (-0.0206581,-0.999484,-0.0245961) -New Polarization: (-0.384052,0.911969,-0.144282) -Polarization Change: (-0.384052,0.911969,-0.144282) -New Momentum Direction: (-0.840436,-0.409992,-0.354364) -Momentum Change: (-0.840436,-0.409992,-0.354364) - Photon at Boundary! - Old Momentum Direction: (-0.840436,-0.409992,-0.354364) - Old Polarization: (-0.384052,0.911969,-0.144282) - New Momentum Direction: (-0.676146,-0.557415,-0.481784) - New Polarization: (0.601193,-0.0394091,-0.798131) - *** FresnelRefraction *** -Track (trackID 484, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.877689,0.306833,0.368124) - Old Polarization: (-0.479229,0.560054,0.67578) - New Momentum Direction: (0.758572,0.417187,0.500522) - New Polarization: (-0.651588,0.484321,0.583838) - *** FresnelRefraction *** -Track (trackID 483, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.575797,-0.708333,-0.408316) - Old Polarization: (-0.811074,-0.557811,-0.176084) - New Momentum Direction: (0.777445,-0.302717,-0.55131) - New Polarization: (-0.0425991,0.849197,-0.526355) - *** FresnelRefraction *** -Track (trackID 482, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.741062,0.443517,-0.504104) -Old Polarization: (-0.62775,0.72405,-0.2858) -New Polarization: (0.285202,-0.444881,0.848964) -Polarization Change: (0.285202,-0.444881,0.848964) -New Momentum Direction: (0.621797,-0.588186,-0.517113) -Momentum Change: (0.621797,-0.588186,-0.517113) - -** Photon absorbed! ** -Track (trackID 481, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.595241,-0.0834759,-0.799199) - Old Polarization: (-0.787967,0.134267,-0.6009) - New Momentum Direction: (0.807863,-0.113294,-0.578379) - New Polarization: (0.57499,-0.0639551,0.815657) - *** FresnelRefraction *** -Track (trackID 480, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - -** Photon absorbed! ** -Track (trackID 479, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.569047,-0.328113,-0.754008) - Old Polarization: (-0.818353,-0.136178,-0.558349) - New Momentum Direction: (0.768744,-0.443259,-0.461036) - New Polarization: (0.171239,-0.551895,0.816143) - *** FresnelRefraction *** -Track (trackID 478, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.566912,-0.324542,-0.757155) - Old Polarization: (-0.819692,-0.130803,-0.55767) - New Momentum Direction: (0.767965,-0.439639,-0.465777) - New Polarization: (0.180772,-0.548872,0.816125) - *** FresnelRefraction *** -Track (trackID 477, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - -** Photon absorbed! ** -Track (trackID 476, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.823796,0.54939,-0.139753) - Old Polarization: (-0.53637,0.835187,0.121531) - New Momentum Direction: (0.643111,0.742138,-0.188784) - New Polarization: (-0.74393,0.663945,0.0757972) - *** FresnelRefraction *** -Track (trackID 475, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - -** Photon absorbed! ** -Track (trackID 474, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.641134,-0.767354,-0.0107257) - Old Polarization: (-0.738353,-0.620593,0.264005) - New Momentum Direction: (0.867074,-0.497968,-0.0145055) - New Polarization: (0.492962,0.853427,0.169267) - *** FresnelRefraction *** -Track (trackID 473, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.867998,0.464342,0.175974) - Old Polarization: (-0.488719,0.736073,0.468348) - New Momentum Direction: (0.739505,0.629465,0.238551) - New Polarization: (-0.66757,0.64024,0.380057) - *** FresnelRefraction *** -Track (trackID 472, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.793194,-0.393129,0.465073) - Old Polarization: (-0.569835,-0.209792,0.794529) - New Momentum Direction: (0.571329,-0.529829,0.626789) - New Polarization: (-0.793038,-0.159711,0.587863) - *** FresnelRefraction *** -Track (trackID 471, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.562024,-0.63058,-0.535256) - Old Polarization: (-0.825449,-0.468735,-0.314517) - New Momentum Direction: (0.562024,0.63058,-0.535256) - New Polarization: (0.825449,-0.468735,0.314517) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.562024,0.63058,-0.535256) - Old Polarization: (0.825449,-0.468735,0.314517) - New Momentum Direction: (-0.562024,0.63058,-0.535256) - New Polarization: (0.825449,0.468735,-0.314517) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.562024,0.63058,-0.535256) - Old Polarization: (0.825449,0.468735,-0.314517) - New Momentum Direction: (-0.562024,0.63058,0.535256) - New Polarization: (-0.825449,-0.468735,-0.314517) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 470, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.881106,0.316724,0.351195) - Old Polarization: (-0.472855,0.577817,0.665233) - New Momentum Direction: (0.769438,0.427765,0.474323) - New Polarization: (-0.638676,0.50642,0.579337) - *** FresnelRefraction *** -Track (trackID 469, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.871845,0.10759,0.477819) - Old Polarization: (-0.48342,0.345762,0.80421) - New Momentum Direction: (0.749464,0.145431,0.645874) - New Polarization: (-0.657504,0.277571,0.700459) - *** FresnelRefraction *** -Track (trackID 468, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.874385,0.445351,0.192649) - Old Polarization: (-0.478637,0.726363,0.493257) - New Momentum Direction: (0.757798,0.59886,0.259054) - New Polarization: (-0.64774,0.642636,0.40921) - *** FresnelRefraction *** -Track (trackID 467, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - -** Photon absorbed! ** -Track (trackID 466, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - -** Photon absorbed! ** -Track (trackID 465, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.85528,-0.0352912,0.516962) - Old Polarization: (-0.502443,0.187413,0.844054) - New Momentum Direction: (0.712262,-0.0478059,0.700284) - New Polarization: (-0.690682,0.130024,0.711373) - *** FresnelRefraction *** -Track (trackID 464, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.681791,-0.711696,0.169261) - Old Polarization: (-0.693181,-0.554558,0.460397) - New Momentum Direction: (0.924962,-0.302846,0.22963) - New Polarization: (0.153124,0.849937,0.504142) - *** FresnelRefraction *** -Track (trackID 463, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 191 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 193 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 7 -Track (trackID 933, parentID 1) is processed with stopping code 4 -### pop requested out of 200 stacked tracks. - -** Photon absorbed! ** -Track (trackID 940, parentID 933) is processed with stopping code 2 -### pop requested out of 199 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.84413,-0.53373,0.0507637) - Old Polarization: (0.470932,0.783389,0.405617) - New Momentum Direction: (0.687917,-0.722528,0.0687205) - New Polarization: (-0.676224,-0.603669,0.422262) - *** FresnelRefraction *** -Track (trackID 939, parentID 933) is processed with stopping code 2 -### pop requested out of 198 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.266813,-0.91634,0.298548) - Old Polarization: (-0.546434,0.111334,0.830069) - New Momentum Direction: (0.362907,-0.838692,0.406072) - New Polarization: (-0.485365,0.201861,0.85069) - *** FresnelRefraction *** -Track (trackID 938, parentID 933) is processed with stopping code 2 -### pop requested out of 197 stacked tracks. - -** Photon absorbed! ** -Track (trackID 937, parentID 933) is processed with stopping code 2 -### pop requested out of 196 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.837257,-0.480938,-0.260189) - Old Polarization: (0.458446,0.876751,-0.145378) - New Momentum Direction: (0.672264,-0.65113,-0.352264) - New Polarization: (-0.671374,-0.33571,-0.660724) - *** FresnelRefraction *** -Track (trackID 936, parentID 933) is processed with stopping code 2 -### pop requested out of 195 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.450051,-0.650197,-0.612126) - Old Polarization: (-0.227185,0.579551,-0.782629) - New Momentum Direction: (0.450051,0.650197,-0.612126) - New Polarization: (0.227185,0.579551,0.782629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.450051,0.650197,-0.612126) - Old Polarization: (0.227185,0.579551,0.782629) - New Momentum Direction: (0.450051,0.650197,0.612126) - New Polarization: (-0.227185,-0.579551,0.782629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.450051,0.650197,0.612126) - Old Polarization: (-0.227185,-0.579551,0.782629) - New Momentum Direction: (-0.450051,0.650197,0.612126) - New Polarization: (-0.227185,0.579551,-0.782629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.450051,0.650197,0.612126) - Old Polarization: (-0.227185,0.579551,-0.782629) - New Momentum Direction: (-0.450051,-0.650197,0.612126) - New Polarization: (0.227185,0.579551,0.782629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.450051,-0.650197,0.612126) - Old Polarization: (0.227185,0.579551,0.782629) - New Momentum Direction: (-0.450051,-0.650197,-0.612126) - New Polarization: (-0.227185,-0.579551,0.782629) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 935, parentID 933) is processed with stopping code 2 -### pop requested out of 194 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0427131,-0.999068,0.0061936) - Old Polarization: (-0.944923,-0.0383832,0.325033) - New Momentum Direction: (0.0579119,-0.998286,0.0083975) - New Polarization: (0.872893,0.054716,0.484834) - *** FresnelRefraction *** -Track (trackID 934, parentID 933) is processed with stopping code 2 -### pop requested out of 193 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 6 -Track (trackID 933, parentID 1) is processed with stopping code 4 -### pop requested out of 199 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.489957,-0.242748,0.837267) - Old Polarization: (0.0789088,0.968854,0.234722) - New Momentum Direction: (0.662448,-0.328208,0.673381) - New Polarization: (0.70358,0.581201,-0.408877) - *** FresnelRefraction *** -Track (trackID 946, parentID 933) is processed with stopping code 2 -### pop requested out of 198 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.46312,-0.757719,0.459764) - Old Polarization: (-0.000228802,-0.51885,-0.854866) - New Momentum Direction: (0.626761,-0.469056,0.622219) - New Polarization: (0.622292,0.781891,-0.0374109) - *** FresnelRefraction *** -Track (trackID 945, parentID 933) is processed with stopping code 2 -### pop requested out of 197 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.701592,-0.380977,0.602184) - Old Polarization: (0.691676,0.567285,-0.446959) - New Momentum Direction: (0.267378,-0.51518,0.814309) - New Polarization: (-0.951469,-0.00752864,0.307651) - *** FresnelRefraction *** -Track (trackID 944, parentID 933) is processed with stopping code 2 -### pop requested out of 196 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.475976,-0.241129,0.845756) - Old Polarization: (0.0366914,0.966286,0.254843) - New Momentum Direction: (0.475976,-0.241129,-0.845756) - New Polarization: (-0.365202,-0.929035,0.0593428) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.475976,-0.241129,-0.845756) - Old Polarization: (-0.365202,-0.929035,0.0593428) - New Momentum Direction: (-0.475976,-0.241129,-0.845756) - New Polarization: (-0.365202,0.929035,-0.0593428) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.475976,-0.241129,-0.845756) - Old Polarization: (-0.365202,0.929035,-0.0593428) - New Momentum Direction: (-0.644178,-0.32634,-0.691764) - New Polarization: (-0.541678,0.833177,0.111365) - *** FresnelRefraction *** -Track (trackID 943, parentID 933) is processed with stopping code 2 -### pop requested out of 195 stacked tracks. - -** Photon absorbed! ** -Track (trackID 942, parentID 933) is processed with stopping code 2 -### pop requested out of 194 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.206759,-0.395516,0.894884) - Old Polarization: (-0.74626,0.527755,0.405674) - New Momentum Direction: (0.279373,-0.534422,0.797712) - New Polarization: (0.0700983,-0.817223,-0.572043) - *** FresnelRefraction *** -Track (trackID 941, parentID 933) is processed with stopping code 2 -### pop requested out of 193 stacked tracks. -Track (trackID 933, parentID 1) is processed with stopping code 2 -### pop requested out of 192 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.537177,0.218192,-0.814759) - Old Polarization: (-0.703504,0.648796,-0.290079) - New Momentum Direction: (0.729739,0.296407,-0.616136) - New Polarization: (0.0704699,0.86374,0.498986) - *** FresnelRefraction *** -Track (trackID 932, parentID 1) is processed with stopping code 2 -### pop requested out of 191 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.326286,-0.686728,-0.649571) - Old Polarization: (-0.93366,-0.341505,-0.107946) - New Momentum Direction: (0.443821,-0.149474,-0.883561) - New Polarization: (-0.626045,0.653749,-0.425065) - *** FresnelRefraction *** -Track (trackID 931, parentID 1) is processed with stopping code 2 -### pop requested out of 190 stacked tracks. - -** Photon absorbed! ** -Track (trackID 930, parentID 1) is processed with stopping code 2 -### pop requested out of 189 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.975928,0.0948899,0.196368) - Old Polarization: (-0.21683,0.518918,0.826867) - New Momentum Direction: (0.955757,0.127985,0.264857) - New Polarization: (-0.293224,0.486225,0.823168) - *** FresnelRefraction *** -Track (trackID 929, parentID 1) is processed with stopping code 2 -### pop requested out of 188 stacked tracks. - -** Photon absorbed! ** -Track (trackID 928, parentID 1) is processed with stopping code 2 -### pop requested out of 187 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.563827,-0.823815,-0.0585465) - Old Polarization: (-0.675265,-0.500651,0.541632) - New Momentum Direction: (0.762201,-0.642484,-0.0791452) - New Polarization: (0.634225,0.716671,0.290071) - *** FresnelRefraction *** -Track (trackID 927, parentID 1) is processed with stopping code 2 -### pop requested out of 186 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.455842,-0.84692,-0.273742) - Old Polarization: (-0.794764,-0.525765,0.303184) - New Momentum Direction: (0.616411,-0.694991,-0.370167) - New Polarization: (0.536878,0.714833,-0.448081) - *** FresnelRefraction *** -Track (trackID 926, parentID 1) is processed with stopping code 2 -### pop requested out of 185 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.334941,-0.700426,-0.630253) - Old Polarization: (-0.927719,-0.362122,-0.0905849) - New Momentum Direction: (0.453461,-0.257493,-0.85327) - New Polarization: (-0.569456,0.652765,-0.499617) - *** FresnelRefraction *** -Track (trackID 925, parentID 1) is processed with stopping code 2 -### pop requested out of 184 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.450397,-0.847244,-0.281637) - Old Polarization: (-0.799859,-0.523053,0.294349) - New Momentum Direction: (0.610237,-0.694264,-0.381586) - New Polarization: (0.517197,0.71399,-0.471938) - *** FresnelRefraction *** -Track (trackID 924, parentID 1) is processed with stopping code 2 -### pop requested out of 183 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.710336,0.40502,-0.575658) - Old Polarization: (-0.513272,0.857705,-0.0298927) - New Momentum Direction: (0.30139,0.548667,-0.779826) - New Polarization: (-0.812853,0.575369,0.0906613) - *** FresnelRefraction *** -Track (trackID 923, parentID 1) is processed with stopping code 2 -### pop requested out of 182 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.947919,-0.118328,0.295716) - Old Polarization: (-0.25391,0.279803,0.925872) - New Momentum Direction: (0.901379,-0.160872,0.402039) - New Polarization: (-0.378979,0.15611,0.912143) - *** FresnelRefraction *** -Track (trackID 922, parentID 1) is processed with stopping code 2 -### pop requested out of 181 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.431972,-0.835413,-0.339832) - Old Polarization: (-0.823277,-0.519113,0.229645) - New Momentum Direction: (0.581868,-0.672227,-0.457756) - New Polarization: (0.362522,0.718222,-0.593914) - *** FresnelRefraction *** -Track (trackID 921, parentID 1) is processed with stopping code 2 -### pop requested out of 180 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.841976,0.432907,-0.321975) - Old Polarization: (-0.365583,0.896685,0.249612) - New Momentum Direction: (0.686569,0.583397,-0.433903) - New Polarization: (-0.572888,0.80155,0.171225) - *** FresnelRefraction *** -Track (trackID 920, parentID 1) is processed with stopping code 2 -### pop requested out of 179 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.313571,-0.576312,-0.754677) -Old Polarization: (-0.948791,-0.222227,-0.224522) -New Polarization: (-0.933702,-0.272757,0.231956) -Polarization Change: (-0.933702,-0.272757,0.231956) -New Momentum Direction: (-0.254161,0.0485951,-0.96594) -Momentum Change: (-0.254161,0.0485951,-0.96594) - Photon at Boundary! - Old Momentum Direction: (-0.254161,0.0485951,-0.96594) - Old Polarization: (-0.933702,-0.272757,0.231956) - New Momentum Direction: (-0.345177,0.0659973,-0.936214) - New Polarization: (-0.928525,-0.169331,0.330406) - *** FresnelRefraction *** -Track (trackID 919, parentID 1) is processed with stopping code 2 -### pop requested out of 178 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.90746,0.394524,-0.144454) - Old Polarization: (-0.296429,0.84488,0.445317) - New Momentum Direction: (0.821898,0.534906,-0.195855) - New Polarization: (-0.460127,0.826109,0.32531) - *** FresnelRefraction *** -Track (trackID 918, parentID 1) is processed with stopping code 2 -### pop requested out of 177 stacked tracks. - -** Photon absorbed! ** -Track (trackID 917, parentID 1) is processed with stopping code 2 -### pop requested out of 176 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.884708,0.416156,-0.210014) - Old Polarization: (-0.3208,0.870432,0.373409) - New Momentum Direction: (0.775549,0.563588,-0.284416) - New Polarization: (-0.501832,0.823732,0.263874) - *** FresnelRefraction *** -Track (trackID 916, parentID 1) is processed with stopping code 2 -### pop requested out of 175 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.321277,-0.644461,-0.693867) - Old Polarization: (-0.941205,-0.298142,-0.158887) - New Momentum Direction: (0.435846,-0.874279,-0.213716) - New Polarization: (-0.809651,-0.484574,0.33114) - *** FresnelRefraction *** -Track (trackID 915, parentID 1) is processed with stopping code 2 -### pop requested out of 174 stacked tracks. - -** Photon absorbed! ** -Track (trackID 914, parentID 1) is processed with stopping code 2 -### pop requested out of 173 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.314812,-0.584715,-0.747664) - Old Polarization: (-0.948024,-0.23213,-0.217638) - New Momentum Direction: (0.42723,-0.793512,-0.433374) - New Polarization: (-0.690891,-0.595703,0.409644) - *** FresnelRefraction *** -Track (trackID 913, parentID 1) is processed with stopping code 2 -### pop requested out of 172 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.618325,0.316494,-0.719379) - Old Polarization: (-0.614995,0.764763,-0.192143) - New Momentum Direction: (0.834577,0.427185,-0.347841) - New Polarization: (-0.295879,0.880204,0.371076) - *** FresnelRefraction *** -Track (trackID 912, parentID 1) is processed with stopping code 2 -### pop requested out of 171 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.349637,-0.269907,-0.897165) - Old Polarization: (-0.913853,0.112776,-0.390069) - New Momentum Direction: (0.471834,-0.364239,-0.802933) - New Polarization: (0.372041,-0.743382,0.55585) - *** FresnelRefraction *** -Track (trackID 911, parentID 1) is processed with stopping code 2 -### pop requested out of 170 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.974674,0.161486,0.154705) - Old Polarization: (-0.221012,0.589963,0.776593) - New Momentum Direction: (0.953096,0.218558,0.209381) - New Polarization: (-0.300729,0.605642,0.736723) - *** FresnelRefraction *** -Track (trackID 910, parentID 1) is processed with stopping code 2 -### pop requested out of 169 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.321496,-0.410354,-0.853376) - Old Polarization: (-0.941356,-0.041031,-0.334911) - New Momentum Direction: (0.435925,-0.55641,-0.707374) - New Polarization: (-0.180058,-0.824014,0.537196) - *** FresnelRefraction *** -Track (trackID 909, parentID 1) is processed with stopping code 2 -### pop requested out of 168 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.491536,-0.8469,-0.202863) - Old Polarization: (-0.756431,-0.530631,0.382417) - New Momentum Direction: (0.662642,-0.697218,-0.273481) - New Polarization: (0.661648,0.716072,-0.222402) - *** FresnelRefraction *** -Track (trackID 908, parentID 1) is processed with stopping code 2 -### pop requested out of 167 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.320574,-0.635527,-0.70238) -Old Polarization: (-0.942382,-0.28886,-0.168747) -New Polarization: (0.516369,0.85129,-0.0930988) -Polarization Change: (0.516369,0.85129,-0.0930988) -New Momentum Direction: (-0.820694,0.460876,-0.33772) -Momentum Change: (-0.820694,0.460876,-0.33772) - -** Photon absorbed! ** -Track (trackID 907, parentID 1) is processed with stopping code 2 -### pop requested out of 166 stacked tracks. - -** Photon absorbed! ** -Track (trackID 906, parentID 1) is processed with stopping code 2 -### pop requested out of 165 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.959364,0.280457,0.0310581) - Old Polarization: (-0.233694,0.728033,0.64448) - New Momentum Direction: (0.925063,0.377506,0.0418055) - New Polarization: (-0.339712,0.773138,0.535587) - *** FresnelRefraction *** -Track (trackID 905, parentID 1) is processed with stopping code 2 -### pop requested out of 164 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.975122,0.174766,0.13636) - Old Polarization: (-0.215938,0.609951,0.76245) - New Momentum Direction: (0.954463,0.235205,0.183517) - New Polarization: (-0.294023,0.637506,0.712136) - *** FresnelRefraction *** -Track (trackID 904, parentID 1) is processed with stopping code 2 -### pop requested out of 163 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.460167,-0.845154,-0.271957) - Old Polarization: (-0.791575,-0.529272,0.305419) - New Momentum Direction: (0.620126,-0.693634,-0.366492) - New Polarization: (0.542568,0.716627,-0.438254) - *** FresnelRefraction *** -Track (trackID 903, parentID 1) is processed with stopping code 2 -### pop requested out of 162 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.868097,-0.388093,0.309502) - Old Polarization: (-0.341714,-0.0149608,0.939685) - New Momentum Direction: (0.737397,-0.52809,0.421149) - New Polarization: (-0.538989,-0.0842444,0.838089) - *** FresnelRefraction *** -Track (trackID 902, parentID 1) is processed with stopping code 2 -### pop requested out of 161 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.824561,0.440965,-0.354469) - Old Polarization: (-0.387492,0.896669,0.214093) - New Momentum Direction: (0.641929,0.597619,-0.480395) - New Polarization: (-0.611626,0.776943,0.149243) - *** FresnelRefraction *** -Track (trackID 901, parentID 1) is processed with stopping code 2 -### pop requested out of 160 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.336155,-0.304157,-0.891341) - Old Polarization: (-0.924085,0.0762126,-0.37451) - New Momentum Direction: (0.456496,-0.413044,-0.788039) - New Polarization: (0.227452,-0.802103,0.552174) - *** FresnelRefraction *** -Track (trackID 900, parentID 1) is processed with stopping code 2 -### pop requested out of 159 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.481397,-0.848781,-0.218694) - Old Polarization: (-0.76669,-0.528688,0.364245) - New Momentum Direction: (0.650616,-0.699528,-0.295568) - New Polarization: (0.64117,0.714567,-0.279813) - *** FresnelRefraction *** -Track (trackID 899, parentID 1) is processed with stopping code 2 -### pop requested out of 158 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.780687,-0.577376,0.239091) - Old Polarization: (-0.435044,-0.227471,0.871202) - New Momentum Direction: (0.534897,-0.780633,0.32326) - New Polarization: (-0.685283,-0.177028,0.706433) - *** FresnelRefraction *** -Track (trackID 898, parentID 1) is processed with stopping code 2 -### pop requested out of 157 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.956425,0.290203,0.03214) - Old Polarization: (-0.242848,0.729549,0.639361) - New Momentum Direction: (0.918235,0.393629,0.0435945) - New Polarization: (-0.355766,0.771492,0.527475) - *** FresnelRefraction *** -Track (trackID 897, parentID 1) is processed with stopping code 2 -### pop requested out of 156 stacked tracks. - -** Photon absorbed! ** -Track (trackID 896, parentID 1) is processed with stopping code 2 -### pop requested out of 155 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.408351,-0.0447653,-0.911727) - Old Polarization: (-0.844548,0.36049,-0.395962) - New Momentum Direction: (0.55488,-0.0608285,-0.829704) - New Polarization: (0.830094,0.106705,0.547318) - *** FresnelRefraction *** -Track (trackID 895, parentID 1) is processed with stopping code 2 -### pop requested out of 154 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.323043,-0.425314,-0.84543) - Old Polarization: (-0.942052,-0.0591364,-0.330213) - New Momentum Direction: (0.436696,-0.574948,-0.691905) - New Polarization: (-0.227723,-0.814716,0.533272) - *** FresnelRefraction *** -Track (trackID 894, parentID 1) is processed with stopping code 2 -### pop requested out of 153 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.325987,-0.455146,-0.828598) - Old Polarization: (-0.943078,-0.0955099,-0.318563) - New Momentum Direction: (0.438337,-0.612009,-0.65826) - New Polarization: (-0.320022,-0.790643,0.521987) - *** FresnelRefraction *** -Track (trackID 893, parentID 1) is processed with stopping code 2 -### pop requested out of 152 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.640475,-0.764539,0.0726005) - Old Polarization: (-0.590296,-0.429616,0.68336) - New Momentum Direction: (0.869213,-0.484522,0.0985288) - New Polarization: (0.312736,0.693106,0.649462) - *** FresnelRefraction *** -Track (trackID 892, parentID 1) is processed with stopping code 2 -### pop requested out of 151 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.564488,-0.823216,-0.060574) - Old Polarization: (-0.674873,-0.50253,0.540379) - New Momentum Direction: (0.761828,-0.6426,-0.0817502) - New Polarization: (0.635662,0.717307,0.285314) - *** FresnelRefraction *** -Track (trackID 891, parentID 1) is processed with stopping code 2 -### pop requested out of 150 stacked tracks. - -** Photon absorbed! ** -Track (trackID 890, parentID 1) is processed with stopping code 2 -### pop requested out of 149 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.964859,-0.0145916,0.262364) - Old Polarization: (-0.235729,0.393094,0.888768) - New Momentum Direction: (0.933948,-0.019847,0.356858) - New Polarization: (-0.336249,0.289665,0.89612) - *** FresnelRefraction *** -Track (trackID 889, parentID 1) is processed with stopping code 2 -### pop requested out of 148 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.39877,-0.819486,-0.411613) - Old Polarization: (-0.856924,-0.49283,0.150994) - New Momentum Direction: (0.540153,-0.630377,-0.557548) - New Polarization: (0.12537,0.715393,-0.687383) - *** FresnelRefraction *** -Track (trackID 888, parentID 1) is processed with stopping code 2 -### pop requested out of 147 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.674784,0.381303,-0.631882) - Old Polarization: (-0.552634,0.82853,-0.0901889) - New Momentum Direction: (-0.674784,0.381303,-0.631882) - New Polarization: (-0.552634,-0.82853,0.0901889) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.674784,0.381303,-0.631882) - Old Polarization: (-0.552634,-0.82853,0.0901889) - New Momentum Direction: (-0.674784,0.381303,0.631882) - New Polarization: (0.552634,0.82853,0.0901889) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.674784,0.381303,0.631882) - Old Polarization: (0.552634,0.82853,0.0901889) - New Momentum Direction: (-0.674784,-0.381303,0.631882) - New Polarization: (-0.552634,0.82853,-0.0901889) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.674784,-0.381303,0.631882) - Old Polarization: (-0.552634,0.82853,-0.0901889) - New Momentum Direction: (0.674784,-0.381303,0.631882) - New Polarization: (-0.552634,-0.82853,0.0901889) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.674784,-0.381303,0.631882) - Old Polarization: (-0.552634,-0.82853,0.0901889) - New Momentum Direction: (0.674784,-0.381303,-0.631882) - New Polarization: (0.552634,0.82853,0.0901889) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.674784,-0.381303,-0.631882) -Old Polarization: (0.552634,0.82853,0.0901889) -New Polarization: (-0.00217877,-0.665847,-0.746085) -Polarization Change: (-0.00217877,-0.665847,-0.746085) -New Momentum Direction: (-0.702746,-0.529776,0.474853) -Momentum Change: (-0.702746,-0.529776,0.474853) - Photon at Boundary! - Old Momentum Direction: (-0.702746,-0.529776,0.474853) - Old Polarization: (-0.00217877,-0.665847,-0.746085) - New Momentum Direction: (-0.702746,0.529776,0.474853) - New Polarization: (0.00217877,-0.665847,0.746085) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.702746,0.529776,0.474853) - Old Polarization: (0.00217877,-0.665847,0.746085) - New Momentum Direction: (0.702746,0.529776,0.474853) - New Polarization: (0.00126555,0.666521,-0.745485) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.702746,0.529776,0.474853) - Old Polarization: (0.00126555,0.666521,-0.745485) - New Momentum Direction: (0.702746,0.529776,-0.474853) - New Polarization: (-0.00126555,-0.666521,-0.745485) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 887, parentID 1) is processed with stopping code 2 -### pop requested out of 146 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.543085,-0.834484,-0.093248) - Old Polarization: (-0.697899,-0.510343,0.502481) - New Momentum Direction: (0.73517,-0.666026,-0.126229) - New Polarization: (0.677563,0.716253,0.167004) - *** FresnelRefraction *** -Track (trackID 886, parentID 1) is processed with stopping code 2 -### pop requested out of 145 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.388753,-0.803296,-0.451205) - Old Polarization: (-0.870454,-0.480728,0.105883) - New Momentum Direction: (0.524535,-0.595169,-0.6088) - New Polarization: (-0.00389394,0.713382,-0.700764) - *** FresnelRefraction *** -Track (trackID 885, parentID 1) is processed with stopping code 2 -### pop requested out of 144 stacked tracks. - -** Photon absorbed! ** -Track (trackID 884, parentID 1) is processed with stopping code 2 -### pop requested out of 143 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.942408,-0.144725,0.301531) - Old Polarization: (-0.259817,0.250947,0.932481) - New Momentum Direction: (0.890674,-0.196727,0.409876) - New Polarization: (-0.391353,0.127091,0.911422) - *** FresnelRefraction *** -Track (trackID 883, parentID 1) is processed with stopping code 2 -### pop requested out of 142 stacked tracks. - -** Photon absorbed! ** -Track (trackID 882, parentID 1) is processed with stopping code 2 -### pop requested out of 141 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.923488,0.372014,-0.0936723) - Old Polarization: (-0.279208,0.819232,0.500901) - New Momentum Direction: (0.853889,0.504701,-0.127082) - New Polarization: (-0.429109,0.820885,0.376846) - *** FresnelRefraction *** -Track (trackID 881, parentID 1) is processed with stopping code 2 -### pop requested out of 140 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.77557,0.434,-0.458406) - Old Polarization: (-0.440829,0.892136,0.0988066) - New Momentum Direction: (0.520598,0.586999,-0.620008) - New Polarization: (-0.694721,0.713364,0.0920535) - *** FresnelRefraction *** -Track (trackID 880, parentID 1) is processed with stopping code 2 -### pop requested out of 139 stacked tracks. - -** Photon absorbed! ** -Track (trackID 879, parentID 1) is processed with stopping code 2 -### pop requested out of 138 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.404892,-0.0809779,-0.910772) - Old Polarization: (-0.853615,0.323534,-0.408249) - New Momentum Direction: (0.545308,-0.109061,-0.83111) - New Polarization: (0.831634,-0.0537987,0.552712) - *** FresnelRefraction *** -Track (trackID 878, parentID 1) is processed with stopping code 2 -### pop requested out of 137 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.922853,0.371463,-0.101775) - Old Polarization: (-0.277257,0.824131,0.4939) - New Momentum Direction: (0.853867,0.501991,-0.137537) - New Polarization: (-0.425345,0.825276,0.371485) - *** FresnelRefraction *** -Track (trackID 877, parentID 1) is processed with stopping code 2 -### pop requested out of 136 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.31549,-0.59974,-0.735376) - Old Polarization: (-0.947006,-0.248304,-0.203777) - New Momentum Direction: (0.428297,-0.814183,-0.392005) - New Polarization: (-0.723554,-0.568865,0.390976) - *** FresnelRefraction *** -Track (trackID 876, parentID 1) is processed with stopping code 2 -### pop requested out of 135 stacked tracks. - -** Photon absorbed! ** -Track (trackID 875, parentID 1) is processed with stopping code 2 -### pop requested out of 134 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.565038,-0.823634,-0.04856) - Old Polarization: (-0.673115,-0.494214,0.550153) - New Momentum Direction: (0.766993,-0.638261,-0.0659162) - New Polarization: (0.622368,0.715004,0.318476) - *** FresnelRefraction *** -Track (trackID 874, parentID 1) is processed with stopping code 2 -### pop requested out of 133 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.426346,-0.84173,-0.331239) - Old Polarization: (-0.82472,-0.512136,0.239901) - New Momentum Direction: (0.579461,-0.679373,-0.450197) - New Polarization: (0.380083,0.713907,-0.58811) - *** FresnelRefraction *** -Track (trackID 873, parentID 1) is processed with stopping code 2 -### pop requested out of 132 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.92676,-0.219485,0.304865) - Old Polarization: (-0.271687,0.168844,0.947459) - New Momentum Direction: (0.862093,-0.29608,0.411257) - New Polarization: (-0.41509,0.0529372,0.908239) - *** FresnelRefraction *** -Track (trackID 872, parentID 1) is processed with stopping code 2 -### pop requested out of 131 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.480699,-0.845655,-0.231941) - Old Polarization: (-0.76967,-0.533636,0.350488) - New Momentum Direction: (0.646267,-0.696492,-0.311829) - New Polarization: (0.621321,0.717498,-0.314892) - *** FresnelRefraction *** -Track (trackID 871, parentID 1) is processed with stopping code 2 -### pop requested out of 130 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.969669,0.0279554,0.242817) - Old Polarization: (-0.230061,0.439889,0.868084) - New Momentum Direction: (0.943181,0.0380041,0.330099) - New Polarization: (-0.321366,0.356847,0.877145) - *** FresnelRefraction *** -Track (trackID 870, parentID 1) is processed with stopping code 2 -### pop requested out of 129 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.802523,-0.540007,0.253672) - Old Polarization: (-0.409421,-0.189191,0.892514) - New Momentum Direction: (0.595104,-0.727389,0.341695) - New Polarization: (-0.641957,-0.174477,0.746625) - *** FresnelRefraction *** -Track (trackID 869, parentID 1) is processed with stopping code 2 -### pop requested out of 128 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.971881,0.20024,0.1239) - Old Polarization: (-0.22476,0.631967,0.741687) - New Momentum Direction: (0.947769,0.271233,0.167827) - New Polarization: (-0.310857,0.66767,0.676451) - *** FresnelRefraction *** -Track (trackID 868, parentID 1) is processed with stopping code 2 -### pop requested out of 127 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.343219,-0.281533,-0.896069) - Old Polarization: (-0.918145,0.100564,-0.383271) - New Momentum Direction: (0.46494,-0.381377,-0.798988) - New Polarization: (0.321166,-0.768336,0.553636) - *** FresnelRefraction *** -Track (trackID 867, parentID 1) is processed with stopping code 2 -### pop requested out of 126 stacked tracks. - -** Photon absorbed! ** -Track (trackID 866, parentID 1) is processed with stopping code 2 -### pop requested out of 125 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.338689,-0.711411,-0.61578) - Old Polarization: (-0.924003,-0.374951,-0.0750354) - New Momentum Direction: (0.458278,-0.309429,-0.833208) - New Polarization: (-0.528536,0.658811,-0.535367) - *** FresnelRefraction *** -Track (trackID 865, parentID 1) is processed with stopping code 2 -### pop requested out of 124 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.503191,0.156072,-0.849965) - Old Polarization: (-0.741613,0.582906,-0.332011) - New Momentum Direction: (0.681855,0.211487,-0.700248) - New Polarization: (0.305213,0.787724,0.535103) - *** FresnelRefraction *** -Track (trackID 864, parentID 1) is processed with stopping code 2 -### pop requested out of 123 stacked tracks. - -** Photon absorbed! ** -Track (trackID 863, parentID 1) is processed with stopping code 2 -### pop requested out of 122 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.446525,-0.847483,-0.287034) - Old Polarization: (-0.803402,-0.52096,0.288349) - New Momentum Direction: (0.605901,-0.693675,-0.389485) - New Polarization: (0.503036,0.713352,-0.487938) - *** FresnelRefraction *** -Track (trackID 862, parentID 1) is processed with stopping code 2 -### pop requested out of 121 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.615765,-0.787076,0.0366719) - Old Polarization: (-0.617373,-0.453035,0.643125) - New Momentum Direction: (0.836469,-0.545745,0.0498159) - New Polarization: (0.425868,0.70455,0.567667) - *** FresnelRefraction *** -Track (trackID 861, parentID 1) is processed with stopping code 2 -### pop requested out of 120 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.964034,-0.0232345,0.264761) - Old Polarization: (-0.235904,0.384056,0.892665) - New Momentum Direction: (0.932503,-0.0315731,0.35978) - New Polarization: (-0.337613,0.277629,0.899411) - *** FresnelRefraction *** -Track (trackID 860, parentID 1) is processed with stopping code 2 -### pop requested out of 119 stacked tracks. - -** Photon absorbed! ** -Track (trackID 859, parentID 1) is processed with stopping code 2 -### pop requested out of 118 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.895121,0.407259,-0.181383) - Old Polarization: (-0.3094,0.860394,0.404962) - New Momentum Direction: (0.797094,0.551619,-0.245677) - New Polarization: (-0.482459,0.826429,0.290255) - *** FresnelRefraction *** -Track (trackID 858, parentID 1) is processed with stopping code 2 -### pop requested out of 117 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.863395,-0.402475,0.304241) - Old Polarization: (-0.345402,-0.0319709,0.93791) - New Momentum Direction: (0.728865,-0.546169,0.412863) - New Polarization: (-0.543845,-0.0955255,0.833731) - *** FresnelRefraction *** -Track (trackID 857, parentID 1) is processed with stopping code 2 -### pop requested out of 116 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.729272,-0.657666,0.188776) - Old Polarization: (-0.49259,-0.313156,0.811966) - New Momentum Direction: (0.373071,-0.891792,0.25598) - New Polarization: (-0.779769,-0.151869,0.607368) - *** FresnelRefraction *** -Track (trackID 856, parentID 1) is processed with stopping code 2 -### pop requested out of 115 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.806738,0.438857,-0.3957) - Old Polarization: (-0.406162,0.898206,0.1681) - New Momentum Direction: (0.601498,0.593308,-0.534963) - New Polarization: (-0.639635,0.758864,0.12244) - *** FresnelRefraction *** -Track (trackID 855, parentID 1) is processed with stopping code 2 -### pop requested out of 114 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.387254,-0.800582,-0.457277) - Old Polarization: (-0.872482,-0.47853,0.098913) - New Momentum Direction: (0.522222,-0.589089,-0.616651) - New Polarization: (-0.0237786,0.712743,-0.701022) - *** FresnelRefraction *** -Track (trackID 854, parentID 1) is processed with stopping code 2 -### pop requested out of 113 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.43484,0.0224286,-0.900229) - Old Polarization: (-0.815428,0.433978,-0.383066) - New Momentum Direction: (0.590997,0.030483,-0.806098) - New Polarization: (0.731004,0.402319,0.551155) - *** FresnelRefraction *** -Track (trackID 853, parentID 1) is processed with stopping code 2 -### pop requested out of 112 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.81063,0.442961,-0.382968) -Old Polarization: (-0.403443,0.89652,0.182993) -New Polarization: (-0.425691,-0.901872,0.0735746) -Polarization Change: (-0.425691,-0.901872,0.0735746) -New Momentum Direction: (-0.855289,0.42758,0.292672) -Momentum Change: (-0.855289,0.42758,0.292672) -Scattering Photon! -Old Momentum Direction: (-0.855289,0.42758,0.292672) -Old Polarization: (-0.425691,-0.901872,0.0735746) -New Polarization: (-0.632811,0.75762,0.159883) -Polarization Change: (-0.632811,0.75762,0.159883) -New Momentum Direction: (-0.742876,-0.652273,0.15058) -Momentum Change: (-0.742876,-0.652273,0.15058) - Photon at Boundary! - Old Momentum Direction: (-0.742876,-0.652273,0.15058) - Old Polarization: (-0.632811,0.75762,0.159883) - New Momentum Direction: (-0.41767,-0.885314,0.204378) - New Polarization: (0.884793,-0.345151,0.31307) - *** FresnelRefraction *** -Track (trackID 852, parentID 1) is processed with stopping code 2 -### pop requested out of 111 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.847947,0.438987,-0.297114) - Old Polarization: (-0.363324,0.889451,0.277259) - New Momentum Direction: (0.693225,0.596865,-0.403969) - New Polarization: (-0.574419,0.796087,0.190497) - *** FresnelRefraction *** -Track (trackID 851, parentID 1) is processed with stopping code 2 -### pop requested out of 110 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.950589,0.310298,0.00981948) - Old Polarization: (-0.250835,0.74902,0.61323) - New Momentum Direction: (0.906601,0.421777,0.0133473) - New Polarization: (-0.372445,0.784892,0.495205) - *** FresnelRefraction *** -Track (trackID 850, parentID 1) is processed with stopping code 2 -### pop requested out of 109 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.840639,-0.457273,0.29022) - Old Polarization: (-0.369752,-0.0930081,0.924464) - New Momentum Direction: (0.679193,-0.619686,0.3933) - New Polarization: (-0.582981,-0.129935,0.802029) - *** FresnelRefraction *** -Track (trackID 849, parentID 1) is processed with stopping code 2 -### pop requested out of 108 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.956547,0.290822,0.0210037) - Old Polarization: (-0.238121,0.737572,0.631891) - New Momentum Direction: (0.919485,0.392105,0.0283185) - New Polarization: (-0.348634,0.780016,0.519644) - *** FresnelRefraction *** -Track (trackID 848, parentID 1) is processed with stopping code 2 -### pop requested out of 107 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.830084,0.443384,-0.338187) - Old Polarization: (-0.382914,0.894089,0.232338) - New Momentum Direction: (0.651938,0.602911,-0.459864) - New Polarization: (-0.606461,0.778629,0.161065) - *** FresnelRefraction *** -Track (trackID 847, parentID 1) is processed with stopping code 2 -### pop requested out of 106 stacked tracks. - -** Photon absorbed! ** -Track (trackID 846, parentID 1) is processed with stopping code 2 -### pop requested out of 105 stacked tracks. - -** Photon absorbed! ** -Track (trackID 845, parentID 1) is processed with stopping code 2 -### pop requested out of 104 stacked tracks. - -** Photon absorbed! ** -Track (trackID 844, parentID 1) is processed with stopping code 2 -### pop requested out of 103 stacked tracks. - -** Photon absorbed! ** -Track (trackID 843, parentID 1) is processed with stopping code 2 -### pop requested out of 102 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.4569,-0.846898,-0.272041) - Old Polarization: (-0.793733,-0.526219,0.30509) - New Momentum Direction: (0.617656,-0.695167,-0.367755) - New Polarization: (0.540922,0.714958,-0.442987) - *** FresnelRefraction *** -Track (trackID 842, parentID 1) is processed with stopping code 2 -### pop requested out of 101 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.961314,0.2713,0.0476739) - Old Polarization: (-0.234168,0.713747,0.660099) - New Momentum Direction: (0.928218,0.366422,0.0643891) - New Polarization: (-0.33847,0.759888,0.554985) - *** FresnelRefraction *** -Track (trackID 841, parentID 1) is processed with stopping code 2 -### pop requested out of 100 stacked tracks. - -** Photon absorbed! ** -Track (trackID 840, parentID 1) is processed with stopping code 2 -### pop requested out of 99 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.650062,0.356708,-0.670953) - Old Polarization: (-0.57975,0.803624,-0.134457) - New Momentum Direction: (0.650062,0.356708,0.670953) - New Polarization: (0.57975,-0.803624,-0.134457) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650062,0.356708,0.670953) - Old Polarization: (0.57975,-0.803624,-0.134457) - New Momentum Direction: (-0.650062,0.356708,0.670953) - New Polarization: (0.57975,0.803624,0.134457) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650062,0.356708,0.670953) - Old Polarization: (0.57975,0.803624,0.134457) - New Momentum Direction: (-0.650062,-0.356708,0.670953) - New Polarization: (-0.57975,0.803624,-0.134457) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650062,-0.356708,0.670953) - Old Polarization: (-0.57975,0.803624,-0.134457) - New Momentum Direction: (-0.650062,-0.356708,-0.670953) - New Polarization: (0.57975,-0.803624,-0.134457) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650062,-0.356708,-0.670953) - Old Polarization: (0.57975,-0.803624,-0.134457) - New Momentum Direction: (0.650062,-0.356708,-0.670953) - New Polarization: (0.57975,0.803624,0.134457) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 839, parentID 1) is processed with stopping code 2 -### pop requested out of 98 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.896204,0.407656,-0.175031) - Old Polarization: (-0.30965,0.857318,0.411246) - New Momentum Direction: (0.798254,0.553462,-0.237635) - New Polarization: (-0.483575,0.824105,0.29497) - *** FresnelRefraction *** -Track (trackID 838, parentID 1) is processed with stopping code 2 -### pop requested out of 97 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.973926,0.154634,0.166002) - Old Polarization: (-0.225462,0.578443,0.783945) - New Momentum Direction: (0.951245,0.210233,0.22569) - New Polarization: (-0.307408,0.586467,0.749371) - *** FresnelRefraction *** -Track (trackID 837, parentID 1) is processed with stopping code 2 -### pop requested out of 96 stacked tracks. - -** Photon absorbed! ** -Track (trackID 836, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.975474,0.158108,0.153139) - Old Polarization: (-0.217646,0.588971,0.778295) - New Momentum Direction: (0.954879,0.213334,0.206629) - New Polarization: (-0.295166,0.604542,0.739869) - *** FresnelRefraction *** -Track (trackID 835, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.549973,0.227028,-0.803734) - Old Polarization: (-0.690809,0.664497,-0.285003) - New Momentum Direction: (0.742872,0.306656,-0.595065) - New Polarization: (0.0335179,0.870756,0.490572) - *** FresnelRefraction *** -Track (trackID 834, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.418619,-0.833984,-0.359485) - Old Polarization: (-0.835112,-0.509046,0.208471) - New Momentum Direction: (0.566955,-0.664471,-0.486868) - New Polarization: (0.296682,0.716087,-0.631822) - *** FresnelRefraction *** -Track (trackID 833, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.513716,0.181025,-0.838645) - Old Polarization: (-0.729022,0.607475,-0.315439) - New Momentum Direction: (0.698307,0.246072,-0.672172) - New Polarization: (0.212794,0.825233,0.523173) - *** FresnelRefraction *** -Track (trackID 832, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.904035,0.397247,-0.157844) - Old Polarization: (-0.298742,0.851269,0.431386) - New Momentum Direction: (-0.904035,0.397247,-0.157844) - New Polarization: (0.187039,0.035578,-0.981708) - *** FresnelReflection *** - -** Photon absorbed! ** -Track (trackID 831, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.486841,-0.851316,-0.195569) - Old Polarization: (-0.758594,-0.523066,0.388506) - New Momentum Direction: (0.661497,-0.701291,-0.26573) - New Polarization: (0.670478,0.711771,-0.209383) - *** FresnelRefraction *** -Track (trackID 830, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - -** Photon absorbed! ** -Track (trackID 829, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.860973,-0.411773,0.298611) - Old Polarization: (-0.346109,-0.0440637,0.937159) - New Momentum Direction: (0.725996,-0.55672,0.403723) - New Polarization: (-0.543165,-0.10414,0.833142) - *** FresnelRefraction *** -Track (trackID 828, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. - -** Photon absorbed! ** -Track (trackID 827, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.63416,-0.770515,0.0643999) - Old Polarization: (-0.597217,-0.435218,0.673733) - New Momentum Direction: (0.861245,-0.500607,0.0874608) - New Polarization: (0.340569,0.696298,0.631808) - *** FresnelRefraction *** -Track (trackID 826, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.633901,-0.771859,0.049029) - Old Polarization: (-0.597766,-0.448727,0.664319) - New Momentum Direction: (0.853511,-0.516876,0.0660147) - New Polarization: (0.377193,0.700263,0.6061) - *** FresnelRefraction *** -Track (trackID 825, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. - -** Photon absorbed! ** -Track (trackID 824, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.971437,0.0136865,0.236901) - Old Polarization: (-0.219615,0.429999,0.875711) - New Momentum Direction: (0.947692,0.0184096,0.318654) - New Polarization: (-0.305457,0.34195,0.888688) - *** FresnelRefraction *** -Track (trackID 823, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.912559,-0.271453,0.305859) - Old Polarization: (-0.286096,0.110644,0.951792) - New Momentum Direction: (0.83484,-0.36541,0.411725) - New Polarization: (-0.440637,0.00474221,0.897673) - *** FresnelRefraction *** -Track (trackID 822, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. - -** Photon absorbed! ** -Track (trackID 821, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.972768,0.0644693,0.222633) - Old Polarization: (-0.225788,0.480563,0.847396) - New Momentum Direction: (0.949176,0.087546,0.302324) - New Polarization: (-0.310286,0.421374,0.852154) - *** FresnelRefraction *** -Track (trackID 820, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.515963,0.178601,-0.837785) - Old Polarization: (-0.727517,0.607678,-0.318506) - New Momentum Direction: (0.699206,0.242031,-0.672705) - New Polarization: (0.220204,0.822295,0.52473) - *** FresnelRefraction *** -Track (trackID 819, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.539436,0.211734,-0.814971) - Old Polarization: (-0.702365,0.646982,-0.296812) - New Momentum Direction: (0.729021,0.286147,-0.62181) - New Polarization: (0.0921192,0.859148,0.503368) - *** FresnelRefraction *** -Track (trackID 818, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.418473,-0.838491,-0.349017) - Old Polarization: (-0.832955,-0.507501,0.220521) - New Momentum Direction: (0.569167,-0.671349,-0.474699) - New Polarization: (0.32523,0.714075,-0.619937) - *** FresnelRefraction *** -Track (trackID 817, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.547114,-0.831985,-0.0920177) - Old Polarization: (-0.694216,-0.512421,0.505458) - New Momentum Direction: (0.738315,-0.662927,-0.124175) - New Polarization: (0.673901,0.717628,0.175691) - *** FresnelRefraction *** -Track (trackID 816, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - -** Photon absorbed! ** -Track (trackID 815, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.387862,-0.80729,-0.4448) - Old Polarization: (-0.869483,-0.480606,0.114094) - New Momentum Direction: (0.524939,-0.601693,-0.602) - New Polarization: (0.0139411,0.71327,-0.70075) - *** FresnelRefraction *** -Track (trackID 814, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.840545,0.43116,-0.328002) - Old Polarization: (-0.366092,0.898361,0.242745) - New Momentum Direction: (0.685132,0.579732,-0.441027) - New Polarization: (-0.572325,0.802966,0.166399) - *** FresnelRefraction *** -Track (trackID 813, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.942953,0.331384,-0.0320009) - Old Polarization: (-0.254753,0.780085,0.571461) - New Momentum Direction: (0.89314,0.447696,-0.0432329) - New Polarization: (-0.382655,0.806848,0.45008) - *** FresnelRefraction *** -Track (trackID 812, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.858495,0.433626,-0.273778) - Old Polarization: (-0.350953,0.886053,0.302888) - New Momentum Direction: (0.717909,0.588631,-0.371644) - New Polarization: (-0.553186,0.806479,0.208751) - *** FresnelRefraction *** -Track (trackID 811, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - -** Photon absorbed! ** -Track (trackID 810, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.94784,-0.124827,0.293288) - Old Polarization: (-0.251296,0.273399,0.928495) - New Momentum Direction: (0.901986,-0.169087,0.397279) - New Polarization: (-0.374823,0.150064,0.914871) - *** FresnelRefraction *** -Track (trackID 809, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. - -** Photon absorbed! ** -Track (trackID 808, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.831025,-0.4791,0.282598) - Old Polarization: (-0.379886,-0.117739,0.91751) - New Momentum Direction: (0.657979,-0.648609,0.382583) - New Polarization: (-0.598701,-0.142424,0.788208) - *** FresnelRefraction *** -Track (trackID 807, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - -** Photon absorbed! ** -Track (trackID 806, parentID 1) is processed with stopping code 2 ### pop requested out of 65 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.758009,0.434516,-0.486434) - Old Polarization: (-0.461772,0.884211,0.0702585) - New Momentum Direction: (0.46173,0.590921,-0.661527) - New Polarization: (-0.733124,0.674059,0.0904118) + 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) *** FresnelRefraction *** -Track (trackID 805, parentID 1) is processed with stopping code 2 +Track (trackID 494, parentID 1) is processed with stopping code 2 ### pop requested out of 64 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.387583,-0.795317,-0.466101) - Old Polarization: (-0.874251,-0.477477,0.0877502) - New Momentum Direction: (0.520973,-0.579713,-0.626514) - New Polarization: (-0.0495156,0.712229,-0.700199) + 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) *** FresnelRefraction *** -Track (trackID 804, parentID 1) is processed with stopping code 2 +Track (trackID 493, parentID 1) is processed with stopping code 2 ### pop requested out of 63 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.335298,-0.318587,-0.88661) - Old Polarization: (-0.926359,0.0598917,-0.37185) - New Momentum Direction: (0.454523,-0.431871,-0.779035) - New Polarization: (0.172962,-0.81516,0.55281) + 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 *** -Track (trackID 803, parentID 1) is processed with stopping code 2 +Track (trackID 492, parentID 1) is processed with stopping code 2 ### pop requested out of 62 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.692734,0.397172,-0.601975) - Old Polarization: (-0.533076,0.84418,-0.0564741) - New Momentum Direction: (-0.692734,0.397172,-0.601975) - New Polarization: (-0.429409,-0.897758,-0.0981722) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.692734,0.397172,-0.601975) - Old Polarization: (-0.429409,-0.897758,-0.0981722) - New Momentum Direction: (-0.692734,0.397172,0.601975) - New Polarization: (0.429409,0.897758,-0.0981722) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.692734,0.397172,0.601975) - Old Polarization: (0.429409,0.897758,-0.0981722) - New Momentum Direction: (-0.692734,-0.397172,0.601975) - New Polarization: (-0.429409,0.897758,0.0981722) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.692734,-0.397172,0.601975) - Old Polarization: (-0.429409,0.897758,0.0981722) - New Momentum Direction: (-0.19779,-0.539835,0.818204) - New Polarization: (0.751377,0.452563,0.480228) + 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) *** FresnelRefraction *** -Track (trackID 802, parentID 1) is processed with stopping code 2 +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) + 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! ** -Track (trackID 801, parentID 1) is processed with stopping code 2 +Track (trackID 490, parentID 1) is processed with stopping code 2 ### pop requested out of 60 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.456822,0.0474701,-0.888291) - Old Polarization: (-0.796006,0.46758,-0.384375) - New Momentum Direction: (0.614728,0.0638787,-0.786148) - New Polarization: (0.661135,0.501812,0.557749) + 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) *** FresnelRefraction *** -Track (trackID 800, parentID 1) is processed with stopping code 2 +Track (trackID 489, parentID 1) is processed with stopping code 2 ### pop requested out of 59 stacked tracks. ** Photon absorbed! ** -Track (trackID 799, parentID 1) is processed with stopping code 2 +Track (trackID 488, parentID 1) is processed with stopping code 2 ### pop requested out of 58 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.867625,-0.398856,0.296885) - Old Polarization: (-0.336585,-0.0316526,0.941121) - New Momentum Direction: (0.742721,-0.537136,0.399813) - New Polarization: (-0.525653,-0.097833,0.845055) + 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) *** FresnelRefraction *** -Track (trackID 798, parentID 1) is processed with stopping code 2 +Track (trackID 487, parentID 1) is processed with stopping code 2 ### pop requested out of 57 stacked tracks. - -** Photon absorbed! ** -Track (trackID 797, parentID 1) is processed with stopping code 2 + 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 *** +Track (trackID 486, parentID 1) is processed with stopping code 2 ### pop requested out of 56 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.347881,-0.743188,-0.571534) - Old Polarization: (-0.91266,-0.407951,-0.0250435) - New Momentum Direction: (0.471478,-0.421563,-0.774592) - New Polarization: (-0.400864,0.679909,-0.614029) + 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) *** FresnelRefraction *** -Track (trackID 796, parentID 1) is processed with stopping code 2 +Track (trackID 485, parentID 1) is processed with stopping code 2 ### pop requested out of 55 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.873491,-0.381588,0.302332) - Old Polarization: (-0.331446,-0.0112497,0.943407) - New Momentum Direction: (0.75365,-0.515176,0.408174) - New Polarization: (-0.518366,-0.0840561,0.851017) + 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) *** FresnelRefraction *** -Track (trackID 795, parentID 1) is processed with stopping code 2 +Track (trackID 484, parentID 1) is processed with stopping code 2 ### pop requested out of 54 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) + *** FresnelRefraction *** +Track (trackID 483, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. ** Photon absorbed! ** -Track (trackID 794, parentID 1) is processed with stopping code 2 -### pop requested out of 53 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.430989,-0.837869,-0.334999) - Old Polarization: (-0.822817,-0.517316,0.235279) - New Momentum Direction: (0.582219,-0.675443,-0.452546) - New Polarization: (0.374346,0.716811,-0.588257) - *** FresnelRefraction *** -Track (trackID 793, parentID 1) is processed with stopping code 2 +Track (trackID 482, parentID 1) is processed with stopping code 2 ### pop requested out of 52 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.371944,-0.166967,-0.913115) - Old Polarization: (-0.886748,0.226953,-0.402703) - New Momentum Direction: (0.503639,-0.226085,-0.833807) - New Polarization: (0.708845,-0.443575,0.548434) + 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) *** FresnelRefraction *** -Track (trackID 792, parentID 1) is processed with stopping code 2 +Track (trackID 481, parentID 1) is processed with stopping code 2 ### pop requested out of 51 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.974663,0.139301,0.175006) - Old Polarization: (-0.223339,0.563033,0.795685) - New Momentum Direction: (0.952799,0.189076,0.237539) - New Polarization: (-0.303355,0.561268,0.770035) - *** FresnelRefraction *** -Track (trackID 791, parentID 1) is processed with stopping code 2 -### pop requested out of 50 stacked tracks. ** Photon absorbed! ** -Track (trackID 790, parentID 1) is processed with stopping code 2 +Track (trackID 480, parentID 1) is processed with stopping code 2 +### pop requested out of 50 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) + *** FresnelRefraction *** +Track (trackID 479, parentID 1) is processed with stopping code 2 ### pop requested out of 49 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.963987,-0.0248484,0.264787) - Old Polarization: (-0.235544,0.382518,0.89342) - New Momentum Direction: (0.932487,-0.0337482,0.359624) - New Polarization: (-0.337191,0.275629,0.900184) - *** FresnelRefraction *** -Track (trackID 789, parentID 1) is processed with stopping code 2 + 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! ** +Track (trackID 478, parentID 1) is processed with stopping code 2 ### pop requested out of 48 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.96442,0.252144,0.0794843) - Old Polarization: (-0.23591,0.68506,0.689231) - New Momentum Direction: (0.933162,0.342825,0.10807) - New Polarization: (-0.3371,0.730266,0.594202) + 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) *** FresnelRefraction *** -Track (trackID 788, parentID 1) is processed with stopping code 2 +Track (trackID 477, parentID 1) is processed with stopping code 2 ### pop requested out of 47 stacked tracks. ** Photon absorbed! ** -Track (trackID 787, parentID 1) is processed with stopping code 2 +Track (trackID 476, parentID 1) is processed with stopping code 2 ### pop requested out of 46 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.974565,0.0760187,0.210818) - Old Polarization: (-0.220367,0.496169,0.839795) - New Momentum Direction: (0.952984,0.102788,0.285055) - New Polarization: (-0.300243,0.447379,0.84244) + 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) *** FresnelRefraction *** -Track (trackID 786, parentID 1) is processed with stopping code 2 +Track (trackID 475, parentID 1) is processed with stopping code 2 ### pop requested out of 45 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.441539,0.0265206,-0.89685) - Old Polarization: (-0.810317,0.440987,-0.385897) - New Momentum Direction: (0.597406,0.0358826,-0.801136) - New Polarization: (0.718051,0.420894,0.554302) + 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) *** FresnelRefraction *** -Track (trackID 785, parentID 1) is processed with stopping code 2 +Track (trackID 474, parentID 1) is processed with stopping code 2 ### pop requested out of 44 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.953126,-0.0971438,0.286554) -Old Polarization: (-0.245773,0.303825,0.920481) -New Polarization: (-0.123547,-0.00937529,0.992294) -Polarization Change: (-0.123547,-0.00937529,0.992294) -New Momentum Direction: (0.382457,-0.923154,0.0388962) -Momentum Change: (0.382457,-0.923154,0.0388962) Photon at Boundary! - Old Momentum Direction: (0.382457,-0.923154,0.0388962) - Old Polarization: (-0.123547,-0.00937529,0.992294) - New Momentum Direction: (0.518276,-0.853587,0.0527092) - New Polarization: (-0.0727319,0.0174164,0.997199) + 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) *** FresnelRefraction *** -Track (trackID 784, parentID 1) is processed with stopping code 2 +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.433479,0.00550945,-0.901147) - Old Polarization: (-0.819603,0.41812,-0.391697) - New Momentum Direction: (0.586084,0.00744904,-0.810216) - New Polarization: (0.761653,0.336036,0.554044) + 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 *** -Track (trackID 783, parentID 1) is processed with stopping code 2 +Track (trackID 472, parentID 1) is processed with stopping code 2 ### pop requested out of 42 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.314377,-0.586991,-0.746062) - Old Polarization: (-0.948069,-0.234126,-0.215291) - New Momentum Direction: (0.314377,-0.586991,0.746062) - New Polarization: (0.839873,0.538299,0.0696196) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.314377,-0.586991,0.746062) - Old Polarization: (0.839873,0.538299,0.0696196) - New Momentum Direction: (0.314377,0.586991,0.746062) - New Polarization: (-0.839873,0.538299,-0.0696196) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.314377,0.586991,0.746062) - Old Polarization: (-0.839873,0.538299,-0.0696196) - New Momentum Direction: (-0.314377,0.586991,0.746062) - New Polarization: (-0.839873,-0.538299,0.0696196) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 782, parentID 1) is processed with stopping code 2 + 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 *** +Track (trackID 471, parentID 1) is processed with stopping code 2 ### pop requested out of 41 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.473347,0.105756,-0.874505) - Old Polarization: (-0.773312,0.525289,-0.355049) - New Momentum Direction: (0.643264,0.143719,-0.752035) - New Polarization: (0.488651,0.679105,0.547756) + 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) *** FresnelRefraction *** -Track (trackID 781, parentID 1) is processed with stopping code 2 +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.499642,0.136229,-0.855453) - Old Polarization: (-0.747794,0.566292,-0.346581) - New Momentum Direction: (0.67285,0.183455,-0.71667) - New Polarization: (0.374322,0.751166,0.54372) + 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 *** -Track (trackID 780, parentID 1) is processed with stopping code 2 +Track (trackID 469, parentID 1) is processed with stopping code 2 ### pop requested out of 39 stacked tracks. - -** Photon absorbed! ** -Track (trackID 779, parentID 1) is processed with stopping code 2 + 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 *** +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.508706,-0.847095,-0.153778) - Old Polarization: (-0.735036,-0.520328,0.434718) - New Momentum Direction: (0.690368,-0.692704,-0.208693) - New Polarization: (0.698386,0.713397,-0.0576414) + 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 *** -Track (trackID 778, parentID 1) is processed with stopping code 2 +Track (trackID 467, parentID 1) is processed with stopping code 2 ### pop requested out of 37 stacked tracks. - -** Photon absorbed! ** -Track (trackID 777, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 466, parentID 1) is processed with stopping code 2 ### pop requested out of 36 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.91531,-0.250723,0.315192) - Old Polarization: (-0.289377,0.134914,0.94766) - New Momentum Direction: (0.836883,-0.34076,0.428381) - New Polarization: (-0.447883,0.0236309,0.89378) + 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) *** FresnelRefraction *** -Track (trackID 776, parentID 1) is processed with stopping code 2 +Track (trackID 465, parentID 1) is processed with stopping code 2 ### pop requested out of 35 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.474456,0.0945864,-0.875183) - Old Polarization: (-0.77453,0.517322,-0.36398) - New Momentum Direction: (0.641016,0.127792,-0.756814) - New Polarization: (0.522072,0.650199,0.551981) - *** FresnelRefraction *** -Track (trackID 775, parentID 1) is processed with stopping code 2 + 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! ** +Track (trackID 464, parentID 1) is processed with stopping code 2 ### pop requested out of 34 stacked tracks. ** Photon absorbed! ** -Track (trackID 774, parentID 1) is processed with stopping code 2 +Track (trackID 463, parentID 1) is processed with stopping code 2 ### pop requested out of 33 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.967179,-0.0136899,0.253726) - Old Polarization: (-0.227586,0.397399,0.888976) - New Momentum Direction: (0.939279,-0.0184882,0.342657) - New Polarization: (-0.322244,0.295727,0.89928) + 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) *** FresnelRefraction *** -Track (trackID 773, parentID 1) is processed with stopping code 2 +Track (trackID 462, parentID 1) is processed with stopping code 2 ### pop requested out of 32 stacked tracks. - -** Photon absorbed! ** -Track (trackID 772, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 461, parentID 1) is processed with stopping code 2 ### pop requested out of 31 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.691883,0.395852,-0.603821) - Old Polarization: (-0.53395,0.843465,-0.0588638) - New Momentum Direction: (0.194712,0.537771,-0.820299) - New Polarization: (-0.854073,0.504204,0.127816) + 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) *** FresnelRefraction *** -Track (trackID 771, parentID 1) is processed with stopping code 2 +Track (trackID 460, parentID 1) is processed with stopping code 2 ### pop requested out of 30 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.930651,0.360099,-0.064942) - Old Polarization: (-0.273348,0.802182,0.530834) - New Momentum Direction: (0.867256,0.489958,-0.0883613) - New Polarization: (-0.417997,0.812989,0.405373) - *** FresnelRefraction *** -Track (trackID 770, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.93421,-0.178999,0.308563) - Old Polarization: (-0.269297,0.21339,0.939118) - New Momentum Direction: (0.874375,-0.243493,0.419738) - New Polarization: (-0.410158,0.0913766,0.907425) - *** FresnelRefraction *** -Track (trackID 769, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.732963,-0.653382,0.18936) - Old Polarization: (-0.48801,-0.3111,0.815514) - New Momentum Direction: (-0.732963,-0.653382,0.18936) - New Polarization: (-0.243018,-0.00849903,-0.969985) + 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.732963,-0.653382,0.18936) - Old Polarization: (-0.243018,-0.00849903,-0.969985) - New Momentum Direction: (-0.732963,0.653382,0.18936) - New Polarization: (0.243018,-0.00849903,0.969985) + 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.732963,0.653382,0.18936) - Old Polarization: (0.243018,-0.00849903,0.969985) - New Momentum Direction: (-0.391427,0.883839,0.25615) - New Polarization: (0.453726,-0.056799,0.889329) + 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! ** +Track (trackID 459, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + +** 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 *** -Track (trackID 768, parentID 1) is processed with stopping code 2 +Track (trackID 457, parentID 1) is processed with stopping code 2 ### pop requested out of 27 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.946892,-0.139558,0.289689) - Old Polarization: (-0.247637,0.258181,0.933819) - New Momentum Direction: (0.901482,-0.187849,0.389928) - New Polarization: (-0.369347,0.135787,0.919317) + 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 *** -Track (trackID 767, parentID 1) is processed with stopping code 2 +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.950913,-0.109971,0.28926) - Old Polarization: (-0.247694,0.289851,0.924464) - New Momentum Direction: (0.907957,-0.14892,0.391711) - New Polarization: (-0.367311,0.167163,0.914953) - *** FresnelRefraction *** -Track (trackID 766, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - -** Photon absorbed! ** -Track (trackID 765, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - -** Photon absorbed! ** -Track (trackID 764, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. + 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.970129,0.210772,0.120106) - Old Polarization: (-0.229784,0.639651,0.733516) - New Momentum Direction: (0.944021,0.286618,0.163326) - New Polarization: (-0.320196,0.676986,0.662695) - *** FresnelRefraction *** -Track (trackID 763, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.751201,-0.625932,0.209537) - Old Polarization: (-0.467794,-0.28088,0.838018) - New Momentum Direction: (0.450529,-0.846585,0.283403) - New Polarization: (-0.737275,-0.173808,0.652852) - *** FresnelRefraction *** -Track (trackID 762, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - -** Photon absorbed! ** -Track (trackID 761, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.322806,-0.627556,-0.708498) - Old Polarization: (-0.942305,-0.283205,-0.178483) - New Momentum Direction: (0.436381,-0.848353,-0.299782) - New Polarization: (-0.775112,-0.523642,0.353554) - *** FresnelRefraction *** -Track (trackID 760, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.336873,-0.308445,-0.889595) - Old Polarization: (-0.924406,0.071133,-0.374719) - New Momentum Direction: (0.456792,-0.418245,-0.78512) - New Polarization: (0.21289,-0.805536,0.552983) - *** FresnelRefraction *** -Track (trackID 759, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.645595,0.356132,-0.675557) - Old Polarization: (-0.58468,0.799572,-0.137239) - New Momentum Direction: (0.645595,0.356132,0.675557) - New Polarization: (0.58468,-0.799572,-0.137239) + 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.645595,0.356132,0.675557) - Old Polarization: (0.58468,-0.799572,-0.137239) - New Momentum Direction: (-0.645595,0.356132,0.675557) - New Polarization: (0.58468,0.799572,0.137239) + 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.645595,0.356132,0.675557) -Old Polarization: (0.58468,0.799572,0.137239) -New Polarization: (-0.0385989,0.998138,0.047239) -Polarization Change: (-0.0385989,0.998138,0.047239) -New Momentum Direction: (0.986495,0.0305328,0.16092) -Momentum Change: (0.986495,0.0305328,0.16092) +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.986495,0.0305328,0.16092) - Old Polarization: (-0.0385989,0.998138,0.047239) - New Momentum Direction: (0.974916,0.0414904,0.21867) - New Polarization: (-0.0697692,0.989922,0.123231) + 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 *** -Track (trackID 758, parentID 1) is processed with stopping code 2 +Track (trackID 455, parentID 1) is processed with stopping code 2 +### pop requested out of 25 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) + *** FresnelRefraction *** +Track (trackID 454, parentID 1) is processed with stopping code 2 +### pop requested out of 24 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! ** +Track (trackID 453, parentID 1) is processed with stopping code 2 +### pop requested out of 23 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) + *** FresnelRefraction *** +Track (trackID 452, parentID 1) is processed with stopping code 2 +### pop requested out of 22 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) + *** FresnelRefraction *** +Track (trackID 451, parentID 1) is processed with stopping code 2 +### pop requested out of 21 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) + *** 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.950106,0.311853,0.00676235) - Old Polarization: (-0.25097,0.751383,0.610277) - New Momentum Direction: (0.905772,0.423665,0.00918692) - New Polarization: (-0.372973,0.78673,0.491882) + 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 757, parentID 1) is processed with stopping code 2 +Track (trackID 446, parentID 1) is processed with stopping code 2 ### pop requested out of 16 stacked tracks. ** Photon absorbed! ** -Track (trackID 756, parentID 1) is processed with stopping code 2 +Track (trackID 445, parentID 1) is processed with stopping code 2 ### pop requested out of 15 stacked tracks. - -** Photon absorbed! ** -Track (trackID 755, parentID 1) is processed with stopping code 2 + 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 absorbed! ** -Track (trackID 754, parentID 1) is processed with stopping code 2 + 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.319944,-0.43246,-0.842979) - Old Polarization: (-0.943628,-0.0657564,-0.32441) - New Momentum Direction: (0.433512,-0.585968,-0.684624) - New Polarization: (-0.256761,-0.808551,0.529452) + 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 753, parentID 1) is processed with stopping code 2 +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.722253,0.405935,-0.559971) - Old Polarization: (-0.499187,0.86635,-0.0158187) - New Momentum Direction: (0.361931,0.547135,-0.754751) - New Polarization: (-0.783488,0.617251,0.0717473) + 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 752, parentID 1) is processed with stopping code 2 +Track (trackID 441, parentID 1) is processed with stopping code 2 ### pop requested out of 11 stacked tracks. - -** Photon absorbed! ** -Track (trackID 751, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.323889,-0.424791,-0.845369) - Old Polarization: (-0.941725,-0.0589723,-0.331173) - New Momentum Direction: (0.437505,-0.573801,-0.692345) - New Polarization: (-0.22451,-0.815262,0.533801) - *** FresnelRefraction *** -Track (trackID 750, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.603341,-0.797396,0.011815) - Old Polarization: (-0.631279,-0.468492,0.618063) - New Momentum Direction: (0.817236,-0.57608,0.0160037) - New Polarization: (0.490467,0.709829,0.505554) - *** FresnelRefraction *** -Track (trackID 749, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.52371,0.199363,-0.82824) -Old Polarization: (-0.717855,0.626777,-0.303042) -New Polarization: (-0.270332,0.18037,-0.945721) -Polarization Change: (-0.270332,0.18037,-0.945721) -New Momentum Direction: (-0.692643,0.645832,0.321165) -Momentum Change: (-0.692643,0.645832,0.321165) - Photon at Boundary! - Old Momentum Direction: (-0.692643,0.645832,0.321165) - Old Polarization: (-0.270332,0.18037,-0.945721) - New Momentum Direction: (-0.692643,-0.645832,0.321165) - New Polarization: (0.270332,0.18037,0.945721) + 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.692643,-0.645832,0.321165) - Old Polarization: (0.270332,0.18037,0.945721) - New Momentum Direction: (-0.192813,-0.878595,0.436915) - New Polarization: (0.5369,0.278236,0.796444) - *** FresnelRefraction *** -Track (trackID 748, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. + 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.836831,-0.463279,0.291696) - Old Polarization: (-0.375375,-0.0977092,0.921708) - New Momentum Direction: (0.667981,-0.629747,0.39651) - New Polarization: (-0.593986,-0.130202,0.793869) + 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 747, parentID 1) is processed with stopping code 2 +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 746, parentID 1) is processed with stopping code 2 +Track (trackID 435, parentID 1) is processed with stopping code 2 ### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.358933,-0.77379,-0.521934) - Old Polarization: (-0.898541,-0.437785,0.0311096) - New Momentum Direction: (0.487827,-0.508753,-0.709362) - New Polarization: (-0.24888,0.697828,-0.671636) - *** FresnelRefraction *** -Track (trackID 745, parentID 1) is processed with stopping code 2 + +** 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.590136,0.284084,-0.755669) - Old Polarization: (-0.646172,0.727331,-0.231194) - New Momentum Direction: (0.797449,0.383882,-0.465522) - New Polarization: (-0.179092,0.887333,0.424931) + 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 744, parentID 1) is processed with stopping code 2 +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.506979,-0.847262,-0.158491) - Old Polarization: (-0.737139,-0.521476,0.429754) - New Momentum Direction: (0.6876,-0.693542,-0.214956) - New Polarization: (0.69665,0.713592,-0.0739214) + 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 743, parentID 1) is processed with stopping code 2 +Track (trackID 432, parentID 1) is processed with stopping code 2 ### pop requested out of 2 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.516716,0.179556,-0.837117) -Old Polarization: (-0.726739,0.608882,-0.317983) -New Polarization: (-0.811705,0.55716,-0.175235) -Polarization Change: (-0.811705,0.55716,-0.175235) -New Momentum Direction: (0.419326,0.347061,-0.838877) -Momentum Change: (0.419326,0.347061,-0.838877) - -** Photon absorbed! ** -Track (trackID 742, parentID 1) is processed with stopping code 2 + 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 = 141 + 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 142 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859257,-0.332787,0.388498) - Old Polarization: (-0.504714,-0.427836,0.749813) - New Momentum Direction: (0.723404,-0.449158,0.524351) - New Polarization: (-0.68557,-0.377398,0.622547) - *** FresnelRefraction *** -Track (trackID 1087, parentID 1) is processed with stopping code 2 -### pop requested out of 141 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.616278,0.512455,-0.597989) - Old Polarization: (-0.776993,0.519446,-0.35561) - New Momentum Direction: (-0.616278,0.512455,-0.597989) - New Polarization: (-0.776993,-0.519446,0.35561) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.616278,0.512455,-0.597989) - Old Polarization: (-0.776993,-0.519446,0.35561) - New Momentum Direction: (-0.616278,0.512455,0.597989) - New Polarization: (0.776993,0.519446,0.35561) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.616278,0.512455,0.597989) - Old Polarization: (0.776993,0.519446,0.35561) - New Momentum Direction: (-0.616278,-0.512455,0.597989) - New Polarization: (-0.776993,0.519446,-0.35561) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.616278,-0.512455,0.597989) - Old Polarization: (-0.776993,0.519446,-0.35561) - New Momentum Direction: (0.616278,-0.512455,0.597989) - New Polarization: (-0.776993,-0.519446,0.35561) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.616278,-0.512455,0.597989) - Old Polarization: (-0.776993,-0.519446,0.35561) - New Momentum Direction: (0.616278,-0.512455,-0.597989) - New Polarization: (0.776993,0.519446,0.35561) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.616278,-0.512455,-0.597989) - Old Polarization: (0.776993,0.519446,0.35561) - New Momentum Direction: (0.616278,0.512455,-0.597989) - New Polarization: (-0.776993,0.519446,-0.35561) - *** TotalInternalReflection *** +### pop requested out of 12 stacked tracks. ** Photon absorbed! ** -Track (trackID 1086, parentID 1) is processed with stopping code 2 -### pop requested out of 140 stacked tracks. +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.868596,-0.165398,0.467103) - Old Polarization: (-0.494826,-0.239576,0.835315) - New Momentum Direction: (0.742467,-0.223597,0.631464) - New Polarization: (-0.669391,-0.211531,0.712159) + 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 1085, parentID 1) is processed with stopping code 2 -### pop requested out of 139 stacked tracks. +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.591385,0.342403,-0.730085) -Old Polarization: (-0.803582,0.32572,-0.49816) -New Polarization: (0.140243,-0.15424,0.97803) -Polarization Change: (0.140243,-0.15424,0.97803) -New Momentum Direction: (0.937612,-0.296708,-0.18124) -Momentum Change: (0.937612,-0.296708,-0.18124) +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.937612,-0.296708,-0.18124) - Old Polarization: (0.140243,-0.15424,0.97803) - New Momentum Direction: (0.882214,-0.401816,-0.245443) - New Polarization: (-0.24298,-0.835023,0.493658) + 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 1084, parentID 1) is processed with stopping code 2 -### pop requested out of 138 stacked tracks. +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.615391,-0.291484,-0.732346) - Old Polarization: (-0.777145,-0.379592,-0.501952) - New Momentum Direction: (0.832648,-0.39439,-0.388786) - New Polarization: (0.0738819,-0.616647,0.783766) + 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 1083, parentID 1) is processed with stopping code 2 -### pop requested out of 137 stacked tracks. +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.596167,-0.110328,-0.795244) - Old Polarization: (-0.799019,-0.178309,-0.57426) - New Momentum Direction: (0.805502,-0.149068,-0.573537) - New Polarization: (0.506277,-0.329887,0.79678) + 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 1082, parentID 1) is processed with stopping code 2 -### pop requested out of 136 stacked tracks. +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.587079,-0.00847634,-0.809485) - Old Polarization: (-0.808161,-0.0642509,-0.585446) - New Momentum Direction: (0.795525,-0.0114859,-0.605811) - New Polarization: (0.604098,-0.0624468,0.794459) + 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 1081, parentID 1) is processed with stopping code 2 -### pop requested out of 135 stacked tracks. +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.868498,0.0462942,0.493526) - Old Polarization: (-0.493924,-0.00320339,0.869499) - New Momentum Direction: (0.743985,0.0624048,0.665275) - New Polarization: (-0.666939,0.00832649,0.745065) + 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 1080, parentID 1) is processed with stopping code 2 -### pop requested out of 134 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.61041,0.509481,-0.606489) - Old Polarization: (-0.78198,0.509537,-0.358999) - New Momentum Direction: (-0.61041,0.509481,-0.606489) - New Polarization: (-0.78198,-0.509537,0.358999) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61041,0.509481,-0.606489) - Old Polarization: (-0.78198,-0.509537,0.358999) - New Momentum Direction: (-0.61041,0.509481,0.606489) - New Polarization: (0.78198,0.509537,0.358999) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61041,0.509481,0.606489) - Old Polarization: (0.78198,0.509537,0.358999) - New Momentum Direction: (-0.61041,-0.509481,0.606489) - New Polarization: (-0.78198,0.509537,-0.358999) - *** TotalInternalReflection *** +Track (trackID 878, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. -** Photon absorbed! ** -Track (trackID 1079, parentID 1) is processed with stopping code 2 -### pop requested out of 133 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.685853,0.689931,-0.231519) - Old Polarization: (-0.698653,0.713275,0.0558843) - New Momentum Direction: (0.173755,0.933625,-0.313295) - New Polarization: (-0.969199,0.218503,0.113622) - *** FresnelRefraction *** -Track (trackID 1078, parentID 1) is processed with stopping code 2 -### pop requested out of 132 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.585278,0.0614127,-0.808504) - Old Polarization: (-0.810443,0.0133995,-0.585664) - New Momentum Direction: (0.792445,0.0831505,-0.604249) - New Polarization: (0.592259,0.131923,0.794874) - *** FresnelRefraction *** -Track (trackID 1077, parentID 1) is processed with stopping code 2 -### pop requested out of 131 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.673672,-0.553192,-0.490046) - Old Polarization: (-0.711641,-0.664431,-0.228253) - New Momentum Direction: (-0.673672,-0.553192,-0.490046) - New Polarization: (-0.711641,0.664431,0.228253) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.673672,-0.553192,-0.490046) - Old Polarization: (-0.711641,0.664431,0.228253) - New Momentum Direction: (-0.673672,0.553192,-0.490046) - New Polarization: (0.711641,0.664431,-0.228253) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.673672,0.553192,-0.490046) - Old Polarization: (0.711641,0.664431,-0.228253) - New Momentum Direction: (-0.673672,0.553192,0.490046) - New Polarization: (-0.711641,-0.664431,-0.228253) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.673672,0.553192,0.490046) -Old Polarization: (-0.711641,-0.664431,-0.228253) -New Polarization: (-0.882334,0.207925,-0.4222) -Polarization Change: (-0.882334,0.207925,-0.4222) -New Momentum Direction: (0.240039,0.970474,-0.0237067) -Momentum Change: (0.240039,0.970474,-0.0237067) - Photon at Boundary! - Old Momentum Direction: (0.240039,0.970474,-0.0237067) - Old Polarization: (-0.882334,0.207925,-0.4222) - New Momentum Direction: (0.326293,0.944719,-0.0322253) - New Polarization: (0.824544,-0.301126,-0.479009) - *** FresnelRefraction *** -Track (trackID 1076, parentID 1) is processed with stopping code 2 -### pop requested out of 130 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.866871,0.0452513,0.496475) - Old Polarization: (-0.496801,-0.0045105,0.867853) - New Momentum Direction: (0.738685,0.061183,0.671269) - New Polarization: (-0.672827,0.0069471,0.739767) - *** FresnelRefraction *** -Track (trackID 1075, parentID 1) is processed with stopping code 2 -### pop requested out of 129 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.74666,0.661956,0.0656699) - Old Polarization: (-0.631225,0.67391,0.383928) - New Momentum Direction: (0.425607,0.900488,0.0893336) - New Polarization: (-0.882873,0.391561,0.259258) - *** FresnelRefraction *** -Track (trackID 1074, parentID 1) is processed with stopping code 2 -### pop requested out of 128 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.866562,-0.197321,0.458404) - Old Polarization: (-0.497719,-0.274194,0.822857) - New Momentum Direction: (0.737003,-0.267233,0.620816) - New Polarization: (-0.674938,-0.242279,0.696964) - *** FresnelRefraction *** -Track (trackID 1073, parentID 1) is processed with stopping code 2 -### pop requested out of 127 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.694603,-0.594243,-0.405465) - Old Polarization: (-0.688687,-0.712185,-0.136024) - New Momentum Direction: (-0.694603,-0.594243,-0.405465) - New Polarization: (-0.651963,0.75823,0.00562783) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.694603,-0.594243,-0.405465) - Old Polarization: (-0.651963,0.75823,0.00562783) - New Momentum Direction: (-0.694603,0.594243,-0.405465) - New Polarization: (0.651963,0.75823,-0.00562783) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.694603,0.594243,-0.405465) - Old Polarization: (0.651963,0.75823,-0.00562783) - New Momentum Direction: (-0.694603,0.594243,0.405465) - New Polarization: (-0.651963,-0.75823,-0.00562783) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.694603,0.594243,0.405465) - Old Polarization: (-0.651963,-0.75823,-0.00562783) - New Momentum Direction: (-0.216472,0.806447,0.550257) - New Polarization: (0.936884,0.0130848,0.349395) - *** FresnelRefraction *** -Track (trackID 1072, parentID 1) is processed with stopping code 2 -### pop requested out of 126 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1071, parentID 1) is processed with stopping code 2 -### pop requested out of 125 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.857822,0.167544,0.485871) - Old Polarization: (-0.507831,0.130916,0.851451) - New Momentum Direction: (0.717182,0.227181,0.658816) - New Polarization: (-0.692576,0.12737,0.710011) - *** FresnelRefraction *** -Track (trackID 1070, parentID 1) is processed with stopping code 2 -### pop requested out of 124 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1069, parentID 1) is processed with stopping code 2 -### pop requested out of 123 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.753453,-0.640327,-0.149299) -Old Polarization: (-0.623383,-0.767892,0.147432) -New Polarization: (-0.318744,-0.762199,0.563432) -Polarization Change: (-0.318744,-0.762199,0.563432) -New Momentum Direction: (0.696516,0.214816,0.684631) -Momentum Change: (0.696516,0.214816,0.684631) - Photon at Boundary! - Old Momentum Direction: (0.696516,0.214816,0.684631) - Old Polarization: (-0.318744,-0.762199,0.563432) - New Momentum Direction: (0.239089,0.290696,0.926462) - New Polarization: (-0.595879,-0.709418,0.37637) - *** FresnelRefraction *** -Track (trackID 1068, parentID 1) is processed with stopping code 2 + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 120 +Track (trackID 1, parentID 0) is processed with stopping code 2 ### pop requested out of 122 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.715694,0.69416,-0.0769645) - Old Polarization: (-0.665326,0.711152,0.227168) - New Momentum Direction: (0.315178,0.943253,-0.104582) - New Polarization: (-0.929009,0.329166,0.169092) - *** FresnelRefraction *** -Track (trackID 1067, parentID 1) is processed with stopping code 2 +Track (trackID 1010, parentID 1) is processed with stopping code 2 ### pop requested out of 121 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.860588,0.108703,0.497566) - Old Polarization: (-0.505625,0.0651791,0.860288) - New Momentum Direction: (-0.860588,0.108703,0.497566) - New Polarization: (0.466457,0.560439,0.684344) - *** FresnelReflection *** +Track (trackID 1009, parentID 1) is processed with stopping code 2 +### pop requested out of 120 stacked tracks. ** Photon absorbed! ** -Track (trackID 1066, parentID 1) is processed with stopping code 2 -### pop requested out of 120 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.867723,-0.0377587,0.495611) - Old Polarization: (-0.496811,-0.0966715,0.862458) - New Momentum Direction: (0.738838,-0.0511922,0.671936) - New Polarization: (-0.673717,-0.0782811,0.734832) - *** FresnelRefraction *** -Track (trackID 1065, parentID 1) is processed with stopping code 2 +Track (trackID 1008, parentID 1) is processed with stopping code 2 ### pop requested out of 119 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.673124,0.67219,-0.308327) - Old Polarization: (-0.713388,0.700075,-0.0311844) - New Momentum Direction: (-0.673124,0.67219,-0.308327) - New Polarization: (-0.704986,-0.709186,-0.00702034) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.673124,0.67219,-0.308327) - Old Polarization: (-0.704986,-0.709186,-0.00702034) - New Momentum Direction: (-0.673124,-0.67219,-0.308327) - New Polarization: (0.712266,-0.701436,-0.0257689) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.673124,-0.67219,-0.308327) - Old Polarization: (0.712266,-0.701436,-0.0257689) - New Momentum Direction: (-0.673124,-0.67219,0.308327) - New Polarization: (-0.712266,0.701436,-0.0257689) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1064, parentID 1) is processed with stopping code 2 -### pop requested out of 118 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1063, parentID 1) is processed with stopping code 2 -### pop requested out of 117 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.787449,-0.616198,0.0149787) - Old Polarization: (-0.585597,-0.740319,0.330156) - New Momentum Direction: (0.551052,-0.834225,0.0202786) - New Polarization: (-0.813225,-0.531414,0.237202) - *** FresnelRefraction *** -Track (trackID 1062, parentID 1) is processed with stopping code 2 -### pop requested out of 116 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1061, parentID 1) is processed with stopping code 2 -### pop requested out of 115 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1060, parentID 1) is processed with stopping code 2 -### pop requested out of 114 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (-0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,-0.62204,0.219731) - New Momentum Direction: (-0.639037,-0.603683,-0.476653) - New Polarization: (0.751522,-0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,-0.476653) - Old Polarization: (0.751522,-0.62204,-0.219731) - New Momentum Direction: (-0.639037,-0.603683,0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (0.639037,-0.603683,0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,-0.603683,0.476653) - Old Polarization: (-0.751522,-0.62204,0.219731) - New Momentum Direction: (0.639037,0.603683,0.476653) - New Polarization: (0.751522,-0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,0.476653) - Old Polarization: (0.751522,-0.62204,-0.219731) - New Momentum Direction: (0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (-0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,-0.62204,0.219731) - New Momentum Direction: (-0.639037,-0.603683,-0.476653) - New Polarization: (0.751522,-0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,-0.476653) - Old Polarization: (0.751522,-0.62204,-0.219731) - New Momentum Direction: (-0.639037,-0.603683,0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (0.639037,-0.603683,0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,-0.603683,0.476653) - Old Polarization: (-0.751522,-0.62204,0.219731) - New Momentum Direction: (0.639037,0.603683,0.476653) - New Polarization: (0.751522,-0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,0.476653) - Old Polarization: (0.751522,-0.62204,-0.219731) - New Momentum Direction: (-0.639037,0.603683,0.476653) - New Polarization: (0.751522,0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,0.603683,0.476653) - Old Polarization: (0.751522,0.62204,0.219731) - New Momentum Direction: (-0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,-0.62204,0.219731) - New Momentum Direction: (-0.639037,-0.603683,-0.476653) - New Polarization: (0.751522,-0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,-0.476653) - Old Polarization: (0.751522,-0.62204,-0.219731) - New Momentum Direction: (0.639037,-0.603683,-0.476653) - New Polarization: (0.751522,0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,-0.603683,-0.476653) - Old Polarization: (0.751522,0.62204,0.219731) - New Momentum Direction: (0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (0.639037,0.603683,0.476653) - New Polarization: (0.751522,-0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,0.476653) - Old Polarization: (0.751522,-0.62204,-0.219731) - New Momentum Direction: (-0.639037,0.603683,0.476653) - New Polarization: (0.751522,0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,0.603683,0.476653) - Old Polarization: (0.751522,0.62204,0.219731) - New Momentum Direction: (-0.639037,-0.603683,0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (-0.639037,-0.603683,-0.476653) - New Polarization: (0.751522,-0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,-0.476653) - Old Polarization: (0.751522,-0.62204,-0.219731) - New Momentum Direction: (0.639037,-0.603683,-0.476653) - New Polarization: (0.751522,0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,-0.603683,-0.476653) - Old Polarization: (0.751522,0.62204,0.219731) - New Momentum Direction: (0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (-0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,-0.62204,0.219731) - New Momentum Direction: (-0.639037,0.603683,0.476653) - New Polarization: (0.751522,0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,0.603683,0.476653) - Old Polarization: (0.751522,0.62204,0.219731) - New Momentum Direction: (-0.639037,-0.603683,0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639037,-0.603683,0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (0.639037,-0.603683,0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,-0.603683,0.476653) - Old Polarization: (-0.751522,-0.62204,0.219731) - New Momentum Direction: (0.639037,-0.603683,-0.476653) - New Polarization: (0.751522,0.62204,0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,-0.603683,-0.476653) - Old Polarization: (0.751522,0.62204,0.219731) - New Momentum Direction: (0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,0.62204,-0.219731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639037,0.603683,-0.476653) - Old Polarization: (-0.751522,0.62204,-0.219731) - New Momentum Direction: (-0.639037,0.603683,-0.476653) - New Polarization: (-0.751522,-0.62204,0.219731) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.639037,0.603683,-0.476653) -Old Polarization: (-0.751522,-0.62204,0.219731) -New Polarization: (-0.0396295,0.998576,0.0357252) -Polarization Change: (-0.0396295,0.998576,0.0357252) -New Momentum Direction: (0.953883,0.0484542,-0.296242) -Momentum Change: (0.953883,0.0484542,-0.296242) - -** Photon absorbed! ** -Track (trackID 1059, parentID 1) is processed with stopping code 2 -### pop requested out of 113 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.828372,-0.519501,0.209568) - Old Polarization: (-0.539147,-0.63783,0.549995) - New Momentum Direction: (0.655047,-0.700721,0.282673) - New Polarization: (-0.740635,-0.5214,0.423794) - *** FresnelRefraction *** -Track (trackID 1058, parentID 1) is processed with stopping code 2 -### pop requested out of 112 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.60258,0.431787,-0.671161) - Old Polarization: (-0.791921,0.427616,-0.435896) - New Momentum Direction: (0.60258,0.431787,0.671161) - New Polarization: (0.791921,-0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,0.431787,0.671161) - Old Polarization: (0.791921,-0.427616,-0.435896) - New Momentum Direction: (-0.60258,0.431787,0.671161) - New Polarization: (0.791921,0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,0.431787,0.671161) - Old Polarization: (0.791921,0.427616,0.435896) - New Momentum Direction: (-0.60258,-0.431787,0.671161) - New Polarization: (-0.791921,0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,-0.431787,0.671161) - Old Polarization: (-0.791921,0.427616,-0.435896) - New Momentum Direction: (-0.60258,-0.431787,-0.671161) - New Polarization: (0.791921,-0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,-0.431787,-0.671161) - Old Polarization: (0.791921,-0.427616,-0.435896) - New Momentum Direction: (0.60258,-0.431787,-0.671161) - New Polarization: (0.791921,0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,-0.431787,-0.671161) - Old Polarization: (0.791921,0.427616,0.435896) - New Momentum Direction: (0.60258,0.431787,-0.671161) - New Polarization: (-0.791921,0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,0.431787,-0.671161) - Old Polarization: (-0.791921,0.427616,-0.435896) - New Momentum Direction: (0.60258,0.431787,0.671161) - New Polarization: (0.791921,-0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,0.431787,0.671161) - Old Polarization: (0.791921,-0.427616,-0.435896) - New Momentum Direction: (-0.60258,0.431787,0.671161) - New Polarization: (0.791921,0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,0.431787,0.671161) - Old Polarization: (0.791921,0.427616,0.435896) - New Momentum Direction: (-0.60258,0.431787,-0.671161) - New Polarization: (-0.791921,-0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,0.431787,-0.671161) - Old Polarization: (-0.791921,-0.427616,0.435896) - New Momentum Direction: (-0.60258,-0.431787,-0.671161) - New Polarization: (0.791921,-0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,-0.431787,-0.671161) - Old Polarization: (0.791921,-0.427616,-0.435896) - New Momentum Direction: (0.60258,-0.431787,-0.671161) - New Polarization: (0.791921,0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,-0.431787,-0.671161) - Old Polarization: (0.791921,0.427616,0.435896) - New Momentum Direction: (0.60258,-0.431787,0.671161) - New Polarization: (-0.791921,-0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,-0.431787,0.671161) - Old Polarization: (-0.791921,-0.427616,0.435896) - New Momentum Direction: (-0.60258,-0.431787,0.671161) - New Polarization: (-0.791921,0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,-0.431787,0.671161) - Old Polarization: (-0.791921,0.427616,-0.435896) - New Momentum Direction: (-0.60258,0.431787,0.671161) - New Polarization: (0.791921,0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,0.431787,0.671161) - Old Polarization: (0.791921,0.427616,0.435896) - New Momentum Direction: (-0.60258,0.431787,-0.671161) - New Polarization: (-0.791921,-0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60258,0.431787,-0.671161) - Old Polarization: (-0.791921,-0.427616,0.435896) - New Momentum Direction: (0.60258,0.431787,-0.671161) - New Polarization: (-0.791921,0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,0.431787,-0.671161) - Old Polarization: (-0.791921,0.427616,-0.435896) - New Momentum Direction: (0.60258,0.431787,0.671161) - New Polarization: (0.791921,-0.427616,-0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,0.431787,0.671161) - Old Polarization: (0.791921,-0.427616,-0.435896) - New Momentum Direction: (0.60258,-0.431787,0.671161) - New Polarization: (-0.791921,-0.427616,0.435896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60258,-0.431787,0.671161) - Old Polarization: (-0.791921,-0.427616,0.435896) - New Momentum Direction: (-0.60258,-0.431787,0.671161) - New Polarization: (-0.791921,0.427616,-0.435896) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.60258,-0.431787,0.671161) -Old Polarization: (-0.791921,0.427616,-0.435896) -New Polarization: (0.871362,-0.432746,0.231211) -Polarization Change: (0.871362,-0.432746,0.231211) -New Momentum Direction: (-0.267653,-0.0243054,0.963209) -Momentum Change: (-0.267653,-0.0243054,0.963209) - Photon at Boundary! - Old Momentum Direction: (-0.267653,-0.0243054,0.963209) - Old Polarization: (0.871362,-0.432746,0.231211) - New Momentum Direction: (-0.361558,-0.0328329,0.931771) - New Polarization: (-0.814289,-0.475629,-0.332731) - *** FresnelRefraction *** -Track (trackID 1057, parentID 1) is processed with stopping code 2 -### pop requested out of 111 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.68378,-0.575977,-0.44799) - Old Polarization: (-0.700527,-0.689998,-0.182111) - New Momentum Direction: (0.129468,-0.782704,-0.60878) - New Polarization: (-0.976871,-0.206048,0.0571656) - *** FresnelRefraction *** -Track (trackID 1056, parentID 1) is processed with stopping code 2 -### pop requested out of 110 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.820075,0.45372,0.348733) - Old Polarization: (-0.548933,0.451501,0.703434) - New Momentum Direction: (0.633811,0.613269,0.471364) - New Polarization: (-0.757014,0.36672,0.540783) - *** FresnelRefraction *** -Track (trackID 1055, parentID 1) is processed with stopping code 2 -### pop requested out of 109 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1054, parentID 1) is processed with stopping code 2 -### pop requested out of 108 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.835618,-0.474926,0.276023) - Old Polarization: (-0.53292,-0.579067,0.616991) - New Momentum Direction: (0.665787,-0.645102,0.374928) - New Polarization: (-0.734623,-0.478791,0.480716) - *** FresnelRefraction *** -Track (trackID 1053, parentID 1) is processed with stopping code 2 -### pop requested out of 107 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.765516,-0.636889,-0.0914243) - Old Polarization: (-0.609981,-0.76358,0.211825) - New Momentum Direction: (-0.765516,-0.636889,-0.0914243) - New Polarization: (-0.325349,0.505749,-0.798978) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.765516,-0.636889,-0.0914243) - Old Polarization: (-0.325349,0.505749,-0.798978) - New Momentum Direction: (-0.765516,0.636889,-0.0914243) - New Polarization: (0.325349,0.505749,0.798978) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.765516,0.636889,-0.0914243) - Old Polarization: (0.325349,0.505749,0.798978) - New Momentum Direction: (-0.491378,0.862109,-0.123754) - New Polarization: (0.56296,0.422812,0.710145) - *** FresnelRefraction *** -Track (trackID 1052, parentID 1) is processed with stopping code 2 -### pop requested out of 106 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.829111,-0.50899,0.231309) - Old Polarization: (-0.539495,-0.619819,0.569885) - New Momentum Direction: (0.652704,-0.689731,0.313446) - New Polarization: (-0.743804,-0.50476,0.438146) - *** FresnelRefraction *** -Track (trackID 1051, parentID 1) is processed with stopping code 2 -### pop requested out of 105 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.584707,0.256868,-0.769504) - Old Polarization: (-0.810346,0.229569,-0.539108) - New Momentum Direction: (0.793334,0.34852,-0.499155) - New Polarization: (0.25686,0.551741,0.793477) - *** FresnelRefraction *** -Track (trackID 1050, parentID 1) is processed with stopping code 2 -### pop requested out of 104 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.591491,0.040553,-0.805291) - Old Polarization: (-0.805686,-0.00959151,-0.592265) - New Momentum Direction: (0.7959,0.0545674,-0.602964) - New Polarization: (0.599015,0.0736026,0.797348) - *** FresnelRefraction *** -Track (trackID 1049, parentID 1) is processed with stopping code 2 -### pop requested out of 103 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.807303,0.497564,0.317319) - Old Polarization: (-0.564356,0.493733,0.661612) - New Momentum Direction: (0.596957,0.676423,0.431386) - New Polarization: (-0.784376,0.379147,0.490919) - *** FresnelRefraction *** -Track (trackID 1048, parentID 1) is processed with stopping code 2 -### pop requested out of 102 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1047, parentID 1) is processed with stopping code 2 -### pop requested out of 101 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1046, parentID 1) is processed with stopping code 2 -### pop requested out of 100 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.830026,0.394702,0.39404) - Old Polarization: (-0.538494,0.383229,0.750439) - New Momentum Direction: (0.654786,0.53489,0.533993) - New Polarization: (-0.742257,0.321861,0.587759) - *** FresnelRefraction *** -Track (trackID 1045, parentID 1) is processed with stopping code 2 -### pop requested out of 99 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.798273,-0.598428,0.0681425) - Old Polarization: (-0.573537,-0.720734,0.389357) - New Momentum Direction: (0.579027,-0.810074,0.0922424) - New Polarization: (-0.795289,-0.536264,0.282732) - *** FresnelRefraction *** -Track (trackID 1044, parentID 1) is processed with stopping code 2 -### pop requested out of 98 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.590529,-0.110296,-0.799444) - Old Polarization: (-0.803232,-0.176152,-0.569024) - New Momentum Direction: (0.80287,-0.149956,-0.576986) - New Polarization: (0.509548,-0.329776,0.794738) - *** FresnelRefraction *** -Track (trackID 1043, parentID 1) is processed with stopping code 2 -### pop requested out of 97 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.827939,-0.509689,0.233953) - Old Polarization: (-0.541385,-0.617519,0.570589) - New Momentum Direction: (0.647892,-0.692286,0.317767) - New Polarization: (-0.748098,-0.499712,0.43662) - *** FresnelRefraction *** -Track (trackID 1042, parentID 1) is processed with stopping code 2 -### pop requested out of 96 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1041, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1040, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.867044,0.0646425,0.494021) - Old Polarization: (-0.495955,0.0172972,0.868176) - New Momentum Direction: (0.740201,0.0872378,0.666702) - New Polarization: (-0.670771,0.0271261,0.741169) - *** FresnelRefraction *** -Track (trackID 1039, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1038, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.834986,-0.486917,0.256339) - Old Polarization: (-0.532501,-0.597563,0.599468) - New Momentum Direction: (0.667774,-0.658664,0.346755) - New Polarization: (-0.731779,-0.495607,0.467838) - *** FresnelRefraction *** -Track (trackID 1037, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.640844,0.624741,-0.446114) - Old Polarization: (-0.74837,0.637907,-0.181706) - New Momentum Direction: (-0.640844,0.624741,-0.446114) - New Polarization: (-0.74837,-0.637907,0.181706) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.640844,0.624741,-0.446114) - Old Polarization: (-0.74837,-0.637907,0.181706) - New Momentum Direction: (-0.640844,-0.624741,-0.446114) - New Polarization: (0.74837,-0.637907,-0.181706) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.640844,-0.624741,-0.446114) - Old Polarization: (0.74837,-0.637907,-0.181706) - New Momentum Direction: (-0.640844,-0.624741,0.446114) - New Polarization: (-0.74837,0.637907,-0.181706) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.640844,-0.624741,0.446114) - Old Polarization: (-0.74837,0.637907,-0.181706) - New Momentum Direction: (0.640844,-0.624741,0.446114) - New Polarization: (-0.74837,-0.637907,0.181706) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.640844,-0.624741,0.446114) - Old Polarization: (-0.74837,-0.637907,0.181706) - New Momentum Direction: (0.640844,0.624741,0.446114) - New Polarization: (0.74837,-0.637907,-0.181706) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1036, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1035, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.717131,-0.611107,-0.335068) - Old Polarization: (-0.664009,-0.745138,-0.0621451) - New Momentum Direction: (0.348189,-0.821977,-0.450687) - New Polarization: (-0.916662,-0.399171,0.0198306) - *** FresnelRefraction *** -Track (trackID 1034, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.825895,0.435533,0.358062) - Old Polarization: (-0.541432,0.43544,0.719196) - New Momentum Direction: (0.651126,0.586276,0.481991) - New Polarization: (-0.742999,0.362797,0.562432) - *** FresnelRefraction *** -Track (trackID 1033, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.864986,0.0698207,0.496916) - Old Polarization: (-0.499382,0.0227511,0.866083) - New Momentum Direction: (0.733761,0.0945337,0.672798) - New Polarization: (-0.677704,0.0317652,0.734648) - *** FresnelRefraction *** -Track (trackID 1032, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.867784,0.000558766,0.496941) - Old Polarization: (-0.496182,-0.0542922,0.866519) - New Momentum Direction: (0.739948,0.000756351,0.672664) - New Polarization: (-0.672129,-0.0390629,0.739403) - *** FresnelRefraction *** -Track (trackID 1031, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.695312,-0.593579,-0.405223) - Old Polarization: (-0.687969,-0.712825,-0.136309) - New Momentum Direction: (0.224465,-0.804822,-0.549433) - New Polarization: (-0.957193,-0.287831,0.0305701) - *** FresnelRefraction *** -Track (trackID 1030, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.613929,0.531109,-0.583964) - Old Polarization: (-0.777901,0.532676,-0.333354) - New Momentum Direction: (-0.613929,0.531109,-0.583964) - New Polarization: (-0.777901,-0.532676,0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613929,0.531109,-0.583964) - Old Polarization: (-0.777901,-0.532676,0.333354) - New Momentum Direction: (-0.613929,0.531109,0.583964) - New Polarization: (0.777901,0.532676,0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613929,0.531109,0.583964) - Old Polarization: (0.777901,0.532676,0.333354) - New Momentum Direction: (-0.613929,-0.531109,0.583964) - New Polarization: (-0.777901,0.532676,-0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613929,-0.531109,0.583964) - Old Polarization: (-0.777901,0.532676,-0.333354) - New Momentum Direction: (0.613929,-0.531109,0.583964) - New Polarization: (-0.777901,-0.532676,0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.613929,-0.531109,0.583964) - Old Polarization: (-0.777901,-0.532676,0.333354) - New Momentum Direction: (0.613929,-0.531109,-0.583964) - New Polarization: (0.777901,0.532676,0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.613929,-0.531109,-0.583964) - Old Polarization: (0.777901,0.532676,0.333354) - New Momentum Direction: (0.613929,0.531109,-0.583964) - New Polarization: (-0.777901,0.532676,-0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.613929,0.531109,-0.583964) - Old Polarization: (-0.777901,0.532676,-0.333354) - New Momentum Direction: (-0.613929,0.531109,-0.583964) - New Polarization: (-0.777901,-0.532676,0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613929,0.531109,-0.583964) - Old Polarization: (-0.777901,-0.532676,0.333354) - New Momentum Direction: (-0.613929,0.531109,0.583964) - New Polarization: (0.777901,0.532676,0.333354) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613929,0.531109,0.583964) - Old Polarization: (0.777901,0.532676,0.333354) - New Momentum Direction: (-0.613929,-0.531109,0.583964) - New Polarization: (-0.777901,0.532676,-0.333354) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1029, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.828202,0.424028,0.366444) -Old Polarization: (-0.538807,0.422579,0.728776) -New Polarization: (0.140169,-0.00369016,0.990121) -Polarization Change: (0.140169,-0.00369016,0.990121) -New Momentum Direction: (0.82283,-0.555783,-0.118557) -Momentum Change: (0.82283,-0.555783,-0.118557) - Photon at Boundary! - Old Momentum Direction: (0.82283,-0.555783,-0.118557) - Old Polarization: (0.140169,-0.00369016,0.990121) - New Momentum Direction: (0.64415,-0.748069,-0.159575) - New Polarization: (-0.255958,-0.407404,0.876646) - *** FresnelRefraction *** -Track (trackID 1028, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.648586,0.642834,-0.407556) - Old Polarization: (-0.739824,0.658269,-0.139076) - New Momentum Direction: (-0.648586,0.642834,-0.407556) - New Polarization: (-0.739824,-0.658269,0.139076) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648586,0.642834,-0.407556) - Old Polarization: (-0.739824,-0.658269,0.139076) - New Momentum Direction: (-0.648586,-0.642834,-0.407556) - New Polarization: (0.739824,-0.658269,-0.139076) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648586,-0.642834,-0.407556) - Old Polarization: (0.739824,-0.658269,-0.139076) - New Momentum Direction: (-0.648586,-0.642834,0.407556) - New Polarization: (-0.739824,0.658269,-0.139076) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1027, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1026, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.713096,0.694949,-0.0924086) - Old Polarization: (-0.668218,0.713629,0.210282) - New Momentum Direction: (0.307025,0.943398,-0.125445) - New Polarization: (-0.931911,0.324759,0.161472) - *** FresnelRefraction *** -Track (trackID 1025, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.604427,-0.168687,-0.778597) - Old Polarization: (-0.790824,-0.245137,-0.560808) - New Momentum Direction: (0.813997,-0.227176,-0.534602) - New Polarization: (0.396121,-0.456047,0.796937) - *** FresnelRefraction *** -Track (trackID 1024, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.614673,0.520397,-0.59276) - Old Polarization: (-0.777886,0.524407,-0.346254) - New Momentum Direction: (-0.614673,0.520397,-0.59276) - New Polarization: (-0.777886,-0.524407,0.346254) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.614673,0.520397,-0.59276) - Old Polarization: (-0.777886,-0.524407,0.346254) - New Momentum Direction: (-0.614673,0.520397,0.59276) - New Polarization: (0.777886,0.524407,0.346254) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.614673,0.520397,0.59276) - Old Polarization: (0.777886,0.524407,0.346254) - New Momentum Direction: (-0.614673,-0.520397,0.59276) - New Polarization: (-0.777886,0.524407,-0.346254) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.614673,-0.520397,0.59276) - Old Polarization: (-0.777886,0.524407,-0.346254) - New Momentum Direction: (0.614673,-0.520397,0.59276) - New Polarization: (-0.777886,-0.524407,0.346254) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.614673,-0.520397,0.59276) - Old Polarization: (-0.777886,-0.524407,0.346254) - New Momentum Direction: (0.614673,-0.520397,-0.59276) - New Polarization: (0.777886,0.524407,0.346254) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.614673,-0.520397,-0.59276) - Old Polarization: (0.777886,0.524407,0.346254) - New Momentum Direction: (0.614673,0.520397,-0.59276) - New Polarization: (-0.777886,0.524407,-0.346254) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1023, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859015,0.139926,0.492457) - Old Polarization: (-0.507055,0.0998436,0.856111) - New Momentum Direction: (0.718692,0.190047,0.668853) - New Polarization: (-0.691891,0.0999215,0.715054) - *** FresnelRefraction *** -Track (trackID 1022, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.865599,-0.164628,0.472901) - Old Polarization: (-0.500087,-0.236087,0.833172) - New Momentum Direction: (0.732568,-0.223793,0.642854) - New Polarization: (-0.680238,-0.206147,0.703405) - *** FresnelRefraction *** -Track (trackID 1021, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.779504,-0.626299,-0.01112) - Old Polarization: (-0.594915,-0.745767,0.299846) - New Momentum Direction: (0.525032,-0.850949,-0.0151086) - New Polarization: (-0.829678,-0.515703,0.21374) - *** FresnelRefraction *** -Track (trackID 1020, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.650075,-0.461699,-0.603521) - Old Polarization: (-0.738681,-0.570227,-0.359432) - New Momentum Direction: (-0.650075,-0.461699,-0.603521) - New Polarization: (-0.738681,0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,-0.461699,-0.603521) - Old Polarization: (-0.738681,0.570227,0.359432) - New Momentum Direction: (-0.650075,-0.461699,0.603521) - New Polarization: (0.738681,-0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,-0.461699,0.603521) - Old Polarization: (0.738681,-0.570227,0.359432) - New Momentum Direction: (-0.650075,0.461699,0.603521) - New Polarization: (-0.738681,-0.570227,-0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,0.461699,0.603521) - Old Polarization: (-0.738681,-0.570227,-0.359432) - New Momentum Direction: (0.650075,0.461699,0.603521) - New Polarization: (-0.738681,0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,0.461699,0.603521) - Old Polarization: (-0.738681,0.570227,0.359432) - New Momentum Direction: (0.650075,0.461699,-0.603521) - New Polarization: (0.738681,-0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,0.461699,-0.603521) - Old Polarization: (0.738681,-0.570227,0.359432) - New Momentum Direction: (0.650075,-0.461699,-0.603521) - New Polarization: (-0.738681,-0.570227,-0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,-0.461699,-0.603521) - Old Polarization: (-0.738681,-0.570227,-0.359432) - New Momentum Direction: (-0.650075,-0.461699,-0.603521) - New Polarization: (-0.738681,0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,-0.461699,-0.603521) - Old Polarization: (-0.738681,0.570227,0.359432) - New Momentum Direction: (-0.650075,-0.461699,0.603521) - New Polarization: (0.738681,-0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,-0.461699,0.603521) - Old Polarization: (0.738681,-0.570227,0.359432) - New Momentum Direction: (0.650075,-0.461699,0.603521) - New Polarization: (0.738681,0.570227,-0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,-0.461699,0.603521) - Old Polarization: (0.738681,0.570227,-0.359432) - New Momentum Direction: (0.650075,0.461699,0.603521) - New Polarization: (-0.738681,0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,0.461699,0.603521) - Old Polarization: (-0.738681,0.570227,0.359432) - New Momentum Direction: (0.650075,0.461699,-0.603521) - New Polarization: (0.738681,-0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,0.461699,-0.603521) - Old Polarization: (0.738681,-0.570227,0.359432) - New Momentum Direction: (-0.650075,0.461699,-0.603521) - New Polarization: (0.738681,0.570227,-0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,0.461699,-0.603521) - Old Polarization: (0.738681,0.570227,-0.359432) - New Momentum Direction: (-0.650075,0.461699,0.603521) - New Polarization: (-0.738681,-0.570227,-0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,0.461699,0.603521) - Old Polarization: (-0.738681,-0.570227,-0.359432) - New Momentum Direction: (-0.650075,-0.461699,0.603521) - New Polarization: (0.738681,-0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650075,-0.461699,0.603521) - Old Polarization: (0.738681,-0.570227,0.359432) - New Momentum Direction: (0.650075,-0.461699,0.603521) - New Polarization: (0.738681,0.570227,-0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,-0.461699,0.603521) - Old Polarization: (0.738681,0.570227,-0.359432) - New Momentum Direction: (0.650075,-0.461699,-0.603521) - New Polarization: (-0.738681,-0.570227,-0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,-0.461699,-0.603521) - Old Polarization: (-0.738681,-0.570227,-0.359432) - New Momentum Direction: (0.650075,0.461699,-0.603521) - New Polarization: (0.738681,-0.570227,0.359432) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.650075,0.461699,-0.603521) - Old Polarization: (0.738681,-0.570227,0.359432) - New Momentum Direction: (-0.650075,0.461699,-0.603521) - New Polarization: (0.738681,0.570227,-0.359432) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1019, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.659908,-0.502947,-0.558181) -Old Polarization: (-0.727391,-0.613752,-0.306937) -New Polarization: (0.534435,0.843431,0.0548099) -Polarization Change: (0.534435,0.843431,0.0548099) -New Momentum Direction: (-0.608928,0.429194,-0.667083) -Momentum Change: (-0.608928,0.429194,-0.667083) - Photon at Boundary! - Old Momentum Direction: (-0.608928,0.429194,-0.667083) - Old Polarization: (0.534435,0.843431,0.0548099) - New Momentum Direction: (-0.608928,0.429194,0.667083) - New Polarization: (-0.534435,-0.843431,0.0548099) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1018, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1017, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.745032,-0.64337,-0.176073) - Old Polarization: (-0.632935,-0.765189,0.117807) - New Momentum Direction: (0.423353,-0.873832,-0.239144) - New Polarization: (-0.883825,-0.456358,0.102913) - *** FresnelRefraction *** -Track (trackID 1016, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.704068,-0.608154,-0.366656) - Old Polarization: (-0.678257,-0.72885,-0.0935107) - New Momentum Direction: (0.269732,-0.824654,-0.497183) - New Polarization: (-0.944263,-0.327703,0.031263) - *** FresnelRefraction *** -Track (trackID 1015, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.815679,-0.557106,0.155889) - Old Polarization: (-0.554132,-0.675017,0.487124) - New Momentum Direction: (0.622065,-0.754003,0.210985) - New Polarization: (-0.765824,-0.529862,0.364361) - *** FresnelRefraction *** -Track (trackID 1014, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.67992,-0.550099,-0.484871) - Old Polarization: (-0.705546,-0.67092,-0.228191) - New Momentum Direction: (0.141662,-0.742618,-0.654562) - New Polarization: (-0.975514,-0.217103,0.0351865) - *** FresnelRefraction *** -Track (trackID 1013, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1012, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.581332,0.201389,-0.78835) - Old Polarization: (-0.813427,0.167362,-0.55707) - New Momentum Direction: (0.790228,0.273756,-0.548267) - New Polarization: (0.3909,0.463843,0.795014) - *** FresnelRefraction *** -Track (trackID 1011, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.64507,0.64328,-0.412403) - Old Polarization: (-0.743091,0.653862,-0.142408) - New Momentum Direction: (-0.64507,0.64328,-0.412403) - New Polarization: (-0.743091,-0.653862,0.142408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64507,0.64328,-0.412403) - Old Polarization: (-0.743091,-0.653862,0.142408) - New Momentum Direction: (-0.64507,-0.64328,-0.412403) - New Polarization: (0.743091,-0.653862,-0.142408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64507,-0.64328,-0.412403) - Old Polarization: (0.743091,-0.653862,-0.142408) - New Momentum Direction: (-0.64507,-0.64328,0.412403) - New Polarization: (-0.743091,0.653862,-0.142408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64507,-0.64328,0.412403) - Old Polarization: (-0.743091,0.653862,-0.142408) - New Momentum Direction: (0.64507,-0.64328,0.412403) - New Polarization: (-0.743091,-0.653862,0.142408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64507,-0.64328,0.412403) - Old Polarization: (-0.743091,-0.653862,0.142408) - New Momentum Direction: (0.64507,0.64328,0.412403) - New Polarization: (0.743091,-0.653862,-0.142408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64507,0.64328,0.412403) - Old Polarization: (0.743091,-0.653862,-0.142408) - New Momentum Direction: (0.64507,0.64328,-0.412403) - New Polarization: (-0.743091,0.653862,-0.142408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64507,0.64328,-0.412403) - Old Polarization: (-0.743091,0.653862,-0.142408) - New Momentum Direction: (-0.64507,0.64328,-0.412403) - New Polarization: (-0.743091,-0.653862,0.142408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64507,0.64328,-0.412403) - Old Polarization: (-0.743091,-0.653862,0.142408) - New Momentum Direction: (-0.64507,-0.64328,-0.412403) - New Polarization: (0.743091,-0.653862,-0.142408) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1010, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.584867,0.122001,-0.801902) - Old Polarization: (-0.811109,0.0809171,-0.579271) - New Momentum Direction: (0.791422,0.165087,-0.588556) - New Polarization: (0.53139,0.290075,0.795915) - *** FresnelRefraction *** -Track (trackID 1009, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.644231,-0.451837,-0.617098) -Old Polarization: (-0.744515,-0.555213,-0.370724) -New Polarization: (0.221893,0.850341,-0.477163) -Polarization Change: (0.221893,0.850341,-0.477163) -New Momentum Direction: (0.723613,0.184402,0.665117) -Momentum Change: (0.723613,0.184402,0.665117) - Photon at Boundary! - Old Momentum Direction: (0.723613,0.184402,0.665117) - Old Polarization: (0.221893,0.850341,-0.477163) - New Momentum Direction: (0.351419,0.250129,0.902186) - New Polarization: (-0.426289,0.900709,-0.0836717) - *** FresnelRefraction *** -Track (trackID 1008, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.827794,0.403685,0.389609) - Old Polarization: (-0.541285,0.392044,0.74385) - New Momentum Direction: (0.64847,0.547743,0.528644) - New Polarization: (-0.74736,0.32608,0.5789) + 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) *** FresnelRefraction *** Track (trackID 1007, parentID 1) is processed with stopping code 2 -### pop requested out of 61 stacked tracks. +### pop requested out of 118 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.814182,-0.561605,0.147336) - Old Polarization: (-0.555749,-0.680351,0.477772) - New Momentum Direction: (0.618685,-0.759923,0.199365) - New Polarization: (-0.76816,-0.531888,0.356405) + 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) *** FresnelRefraction *** Track (trackID 1006, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.585277,-0.026375,-0.810404) -Old Polarization: (-0.809131,-0.0837241,-0.581633) -New Polarization: (-0.461781,-0.819773,0.338718) -Polarization Change: (-0.461781,-0.819773,0.338718) -New Momentum Direction: (-0.717797,0.121036,-0.685652) -Momentum Change: (-0.717797,0.121036,-0.685652) - Photon at Boundary! - Old Momentum Direction: (-0.717797,0.121036,-0.685652) - Old Polarization: (-0.461781,-0.819773,0.338718) - New Momentum Direction: (-0.975577,0.164503,-0.145563) - New Polarization: (-0.219656,-0.727545,0.649946) - *** FresnelRefraction *** +### pop requested out of 117 stacked tracks. + +** Photon absorbed! ** Track (trackID 1005, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.581175,0.206205,-0.78722) -Old Polarization: (-0.8135,0.172545,-0.55538) -New Polarization: (-0.68226,0.679702,0.269308) -Polarization Change: (-0.68226,0.679702,0.269308) -New Momentum Direction: (-0.53591,-0.214376,-0.816605) -Momentum Change: (-0.53591,-0.214376,-0.816605) +### pop requested out of 116 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.53591,-0.214376,-0.816605) - Old Polarization: (-0.68226,0.679702,0.269308) - New Momentum Direction: (-0.728694,-0.291494,-0.619707) - New Polarization: (-0.642035,0.605672,0.470056) - *** FresnelRefraction *** + 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 -### pop requested out of 58 stacked tracks. +### pop requested out of 115 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.835057,-0.482252,0.264787) - Old Polarization: (-0.532977,-0.589758,0.60673) - New Momentum Direction: (0.666225,-0.653697,0.358921) - New Polarization: (-0.733627,-0.488064,0.472847) - *** FresnelRefraction *** + 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 -### pop requested out of 57 stacked tracks. - -** Photon absorbed! ** +### 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 -### pop requested out of 56 stacked tracks. - -** Photon absorbed! ** +### 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) + *** FresnelRefraction *** Track (trackID 1001, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. +### pop requested out of 112 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.658508,0.661142,-0.359525) - Old Polarization: (-0.728884,0.679214,-0.0860009) - New Momentum Direction: (-0.658508,0.661142,-0.359525) - New Polarization: (-0.728884,-0.679214,0.0860009) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.658508,0.661142,-0.359525) - Old Polarization: (-0.728884,-0.679214,0.0860009) - New Momentum Direction: (-0.658508,-0.661142,-0.359525) - New Polarization: (0.728884,-0.679214,-0.0860009) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.658508,-0.661142,-0.359525) -Old Polarization: (0.728884,-0.679214,-0.0860009) -New Polarization: (-0.968384,-0.192977,-0.15809) -Polarization Change: (-0.968384,-0.192977,-0.15809) -New Momentum Direction: (0.224061,-0.951441,-0.211087) -Momentum Change: (0.224061,-0.951441,-0.211087) - Photon at Boundary! - Old Momentum Direction: (0.224061,-0.951441,-0.211087) - Old Polarization: (-0.968384,-0.192977,-0.15809) - New Momentum Direction: (0.224061,-0.951441,0.211087) - New Polarization: (0.968384,0.192977,-0.15809) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.224061,-0.951441,0.211087) - Old Polarization: (0.968384,0.192977,-0.15809) - New Momentum Direction: (0.303588,-0.908863,0.28601) - New Polarization: (0.950821,0.30834,-0.029437) + 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 -### pop requested out of 54 stacked tracks. +### 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 -### pop requested out of 53 stacked tracks. +### pop requested out of 110 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.863175,-0.272644,0.424964) - Old Polarization: (-0.501057,-0.35885,0.787507) - New Momentum Direction: (0.73048,-0.368778,0.574806) - New Polarization: (-0.680214,-0.317826,0.660527) + 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 52 stacked tracks. - -** Photon absorbed! ** +### 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 51 stacked tracks. +### 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.639778,0.631918,-0.437452) - Old Polarization: (-0.748827,0.640677,-0.169682) - New Momentum Direction: (-0.639778,0.631918,-0.437452) - New Polarization: (-0.748827,-0.640677,0.169682) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639778,0.631918,-0.437452) - Old Polarization: (-0.748827,-0.640677,0.169682) - New Momentum Direction: (-0.639778,-0.631918,-0.437452) - New Polarization: (0.748827,-0.640677,-0.169682) + 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 -### pop requested out of 50 stacked tracks. +### 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 -### pop requested out of 49 stacked tracks. +### pop requested out of 106 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.684058,-0.564357,-0.462131) - Old Polarization: (-0.700729,-0.684396,-0.201448) - New Momentum Direction: (0.164638,-0.763141,-0.624908) - New Polarization: (-0.971106,-0.236382,0.0328244) + 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) *** FresnelRefraction *** Track (trackID 994, parentID 1) is processed with stopping code 2 -### pop requested out of 48 stacked tracks. +### pop requested out of 105 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.797758,-0.599272,0.0667471) - Old Polarization: (-0.574168,-0.721165,0.387624) - New Momentum Direction: (0.577347,-0.811481,0.090383) - New Polarization: (-0.796463,-0.535347,0.281158) - *** FresnelRefraction *** -Track (trackID 993, parentID 1) is processed with stopping code 2 -### pop requested out of 47 stacked tracks. + 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.829303,-0.51127,0.225522) - Old Polarization: (-0.53883,-0.624721,0.565142) - New Momentum Direction: (0.6547,-0.691595,0.305064) - New Polarization: (-0.741763,-0.510163,0.43534) - *** FresnelRefraction *** -Track (trackID 992, parentID 1) is processed with stopping code 2 -### pop requested out of 46 stacked tracks. + 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 991, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. +Track (trackID 993, 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 +### pop requested out of 103 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.67114,0.679879,-0.295526) - Old Polarization: (-0.714789,0.699184,-0.0147649) - New Momentum Direction: (0.909822,0.10827,-0.400626) - New Polarization: (0.0232179,-0.977136,-0.211346) + 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) + *** FresnelRefraction *** +Track (trackID 991, 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) *** FresnelRefraction *** Track (trackID 990, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. +### pop requested out of 101 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.630176,-0.400666,-0.66509) - Old Polarization: (-0.759521,-0.495996,-0.420851) - New Momentum Direction: (0.630176,-0.400666,0.66509) - New Polarization: (0.759521,0.495996,-0.420851) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.630176,-0.400666,0.66509) - Old Polarization: (0.759521,0.495996,-0.420851) - New Momentum Direction: (-0.630176,-0.400666,0.66509) - New Polarization: (0.759521,-0.495996,0.420851) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.630176,-0.400666,0.66509) - Old Polarization: (0.759521,-0.495996,0.420851) - New Momentum Direction: (-0.630176,0.400666,0.66509) - New Polarization: (-0.759521,-0.495996,-0.420851) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 989, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. +### pop requested out of 100 stacked tracks. ** Photon absorbed! ** Track (trackID 988, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.768974,0.625601,0.131539) -Old Polarization: (-0.605721,0.647226,0.462817) -New Polarization: (0.281604,-0.947939,0.148695) -Polarization Change: (0.281604,-0.947939,0.148695) -New Momentum Direction: (0.578529,0.0441046,-0.814469) -Momentum Change: (0.578529,0.0441046,-0.814469) +### pop requested out of 99 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.578529,0.0441046,-0.814469) - Old Polarization: (0.281604,-0.947939,0.148695) - New Momentum Direction: (-0.578529,0.0441046,-0.814469) - New Polarization: (0.281604,0.947939,-0.148695) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.578529,0.0441046,-0.814469) - Old Polarization: (0.281604,0.947939,-0.148695) - New Momentum Direction: (-0.779977,0.0594621,-0.622977) - New Polarization: (-0.145258,0.951086,0.272645) + 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) *** FresnelRefraction *** Track (trackID 987, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. +### pop requested out of 98 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.662176,-0.493116,-0.564233) - Old Polarization: (-0.725727,-0.609581,-0.318955) - New Momentum Direction: (-0.662176,-0.493116,-0.564233) - New Polarization: (-0.725727,0.609581,0.318955) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.662176,-0.493116,-0.564233) - Old Polarization: (-0.725727,0.609581,0.318955) - New Momentum Direction: (-0.662176,-0.493116,0.564233) - New Polarization: (0.725727,-0.609581,0.318955) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.662176,-0.493116,0.564233) - Old Polarization: (0.725727,-0.609581,0.318955) - New Momentum Direction: (-0.662176,0.493116,0.564233) - New Polarization: (-0.725727,-0.609581,-0.318955) - *** TotalInternalReflection *** + 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 +### pop requested out of 97 stacked tracks. ** Photon absorbed! ** -Track (trackID 986, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.68805,0.690902,-0.221903) - Old Polarization: (-0.696227,0.714729,0.0665534) - New Momentum Direction: (0.190145,0.934728,-0.300215) - New Polarization: (-0.965693,0.233164,0.11433) - *** FresnelRefraction *** Track (trackID 985, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.590714,0.34626,-0.728808) - Old Polarization: (-0.803975,0.329176,-0.495246) - New Momentum Direction: (0.800814,0.469414,-0.371951) - New Polarization: (-0.00170044,0.622823,0.782361) - *** FresnelRefraction *** +### pop requested out of 96 stacked tracks. + +** Photon absorbed! ** Track (trackID 984, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. +### pop requested out of 95 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.718638,-0.623238,-0.308437) - Old Polarization: (-0.662146,-0.748784,-0.0297382) - New Momentum Direction: (0.338236,-0.843426,-0.417407) - New Polarization: (-0.920461,-0.388807,0.0397612) + 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 -### pop requested out of 37 stacked tracks. - -** Photon absorbed! ** +### 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 -### pop requested out of 36 stacked tracks. +### pop requested out of 93 stacked tracks. ** Photon absorbed! ** Track (trackID 981, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.690302,0.696761,-0.194956) - Old Polarization: (-0.69334,0.714053,0.0969965) - New Momentum Direction: (0.937991,0.223599,-0.264909) - New Polarization: (0.198488,-0.972925,-0.118402) - *** FresnelRefraction *** -Track (trackID 980, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.589483,-0.0821904,-0.803589) - Old Polarization: (-0.804775,-0.1455,-0.575471) - New Momentum Direction: (0.800499,-0.111612,-0.58885) - New Polarization: (0.548239,-0.260594,0.794685) - *** FresnelRefraction *** -Track (trackID 979, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.771296,-0.63346,-0.0619026) -Old Polarization: (-0.603611,-0.758849,0.244543) -New Polarization: (-0.827249,-0.552574,0.101587) -Polarization Change: (-0.827249,-0.552574,0.101587) -New Momentum Direction: (-0.533837,0.716702,-0.448728) -Momentum Change: (-0.533837,0.716702,-0.448728) - Photon at Boundary! - Old Momentum Direction: (-0.533837,0.716702,-0.448728) - Old Polarization: (-0.827249,-0.552574,0.101587) - New Momentum Direction: (-0.723017,0.328464,-0.607747) - New Polarization: (-0.515692,-0.841998,0.158434) - *** FresnelRefraction *** -Track (trackID 978, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.607222,-0.234185,-0.759236) - Old Polarization: (-0.786146,-0.31556,-0.53141) - New Momentum Direction: (0.821863,-0.316965,-0.473365) - New Polarization: (0.239439,-0.561776,0.791882) - *** FresnelRefraction *** -Track (trackID 977, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.821358,-0.537635,0.190576) - Old Polarization: (-0.548129,-0.651447,0.524568) - New Momentum Direction: (0.634336,-0.728635,0.25828) - New Polarization: (-0.757391,-0.518847,0.39643) - *** FresnelRefraction *** -Track (trackID 976, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. +### pop requested out of 92 stacked tracks. ** Photon absorbed! ** -Track (trackID 975, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. +Track (trackID 980, parentID 1) is processed with stopping code 2 +### pop requested out of 91 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.786965,0.577842,0.216297) - Old Polarization: (-0.585903,0.589995,0.55554) - New Momentum Direction: (0.551758,0.781077,0.292372) - New Polarization: (-0.812481,0.424279,0.399827) + 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 +### pop requested out of 90 stacked tracks. + 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. + +** Photon absorbed! ** +Track (trackID 977, parentID 1) is processed with stopping code 2 +### pop requested out of 88 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) + *** FresnelRefraction *** +Track (trackID 976, 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) + *** FresnelRefraction *** +Track (trackID 975, 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 -### pop requested out of 28 stacked tracks. +### pop requested out of 85 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.867187,-0.181279,0.463815) - Old Polarization: (-0.496994,-0.256409,0.829006) - New Momentum Direction: (0.738404,-0.245484,0.62809) - New Polarization: (-0.673662,-0.226208,0.703569) + 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) *** FresnelRefraction *** Track (trackID 973, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. +### 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 -### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859224,0.177737,0.479733) - Old Polarization: (-0.504934,0.143743,0.851105) - New Momentum Direction: (0.722966,0.240023,0.64785) - New Polarization: (-0.686151,0.139876,0.713885) - *** FresnelRefraction *** -Track (trackID 971, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.778997,-0.626388,-0.0283273) - Old Polarization: (-0.594922,-0.752626,0.282175) - New Momentum Direction: (0.529387,-0.847514,-0.0383273) - New Polarization: (-0.826363,-0.525347,0.202818) - *** FresnelRefraction *** -Track (trackID 970, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.778225,-0.626906,-0.0367953) - Old Polarization: (-0.59561,-0.755407,0.273145) - New Momentum Direction: (0.529142,-0.847076,-0.0497178) - New Polarization: (-0.826284,-0.527711,0.196915) - *** FresnelRefraction *** -Track (trackID 969, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.620823,-0.329086,-0.711534) - Old Polarization: (-0.77094,-0.420954,-0.477963) - New Momentum Direction: (0.840489,-0.445527,-0.308359) - New Polarization: (-0.0477873,-0.627842,0.776873) - *** FresnelRefraction *** -Track (trackID 968, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.841493,-0.449416,0.299858) - Old Polarization: (-0.525782,-0.553561,0.64585) - New Momentum Direction: (0.681095,-0.609069,0.406381) - New Polarization: (-0.721966,-0.466193,0.511302) - *** FresnelRefraction *** -Track (trackID 967, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859861,-0.28405,0.424212) - Old Polarization: (-0.506316,-0.367937,0.779914) - New Momentum Direction: (0.720164,-0.386021,0.5765) - New Polarization: (-0.690849,-0.322367,0.647153) - *** FresnelRefraction *** -Track (trackID 966, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.772064,0.620001,0.139701) - Old Polarization: (-0.602095,0.643166,0.473095) - New Momentum Direction: (0.517666,0.834657,0.188068) - New Polarization: (-0.832554,0.440757,0.335541) - *** FresnelRefraction *** -Track (trackID 965, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.587634,-0.0573411,-0.807092) - Old Polarization: (-0.806745,-0.118002,-0.578998) - New Momentum Direction: (0.798161,-0.0778841,-0.597389) - New Polarization: (0.575274,-0.195905,0.794154) - *** FresnelRefraction *** -Track (trackID 964, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. +### pop requested out of 83 stacked tracks. ** Photon absorbed! ** -Track (trackID 963, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. +Track (trackID 971, parentID 1) is processed with stopping code 2 +### pop requested out of 82 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.8597,-0.288442,0.421564) - Old Polarization: (-0.506387,-0.373029,0.777446) - New Momentum Direction: (0.720024,-0.391865,0.572719) - New Polarization: (-0.690852,-0.326888,0.644878) + 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. + 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. + +** Photon absorbed! ** +Track (trackID 968, 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) + *** FresnelRefraction *** +Track (trackID 967, 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) + *** FresnelRefraction *** +Track (trackID 966, 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 +### pop requested out of 76 stacked tracks. + +** Photon absorbed! ** +Track (trackID 964, 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 +### 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 -### pop requested out of 16 stacked tracks. +### pop requested out of 73 stacked tracks. ** Photon absorbed! ** Track (trackID 961, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. +### pop requested out of 72 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.710078,-0.607776,-0.355524) - Old Polarization: (-0.671801,-0.736005,-0.083552) - New Momentum Direction: (0.311519,-0.820216,-0.479793) - New Polarization: (-0.930497,-0.365697,0.021014) + 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 -### pop requested out of 14 stacked tracks. +### pop requested out of 71 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.791871,0.553387,0.258269) - Old Polarization: (-0.581511,0.554122,0.595646) - New Momentum Direction: (0.556354,0.752977,0.351419) - New Polarization: (-0.810945,0.399785,0.427248) + 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 -### pop requested out of 13 stacked tracks. +### pop requested out of 70 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.870998,0.012603,0.491124) - Old Polarization: (-0.490296,-0.0411309,0.870585) - New Momentum Direction: (0.750612,0.0169501,0.660526) - New Polarization: (-0.660038,-0.0269522,0.750749) + 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) *** FresnelRefraction *** Track (trackID 958, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. +### pop requested out of 69 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.700454,-0.588156,-0.404273) - Old Polarization: (-0.682735,-0.717234,-0.139456) - New Momentum Direction: (0.275902,-0.792111,-0.544462) - New Polarization: (-0.94273,-0.333473,0.00743184) + 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) *** FresnelRefraction *** Track (trackID 957, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. +### pop requested out of 68 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.711983,-0.618631,-0.332229) - Old Polarization: (-0.669491,-0.740749,-0.0554319) - New Momentum Direction: (0.306083,-0.83871,-0.450421) - New Polarization: (-0.932269,-0.359904,0.0366408) + 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) *** FresnelRefraction *** Track (trackID 956, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. +### pop requested out of 67 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.809121,0.491551,0.322026) - Old Polarization: (-0.562192,0.487978,0.667696) - New Momentum Direction: (0.602303,0.667736,0.437448) - New Polarization: (-0.780556,0.377839,0.497966) + 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 -### pop requested out of 9 stacked tracks. - -** Photon absorbed! ** -Track (trackID 954, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. +### pop requested out of 66 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.63049,-0.361998,-0.686615) - Old Polarization: (-0.76118,-0.46152,-0.455636) - New Momentum Direction: (0.85013,-0.488105,-0.197568) - New Polarization: (-0.171846,-0.611824,0.772101) + 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) + *** FresnelRefraction *** +Track (trackID 954, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. + 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) *** FresnelRefraction *** Track (trackID 953, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. +### pop requested out of 64 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.60115,0.460172,-0.653346) - Old Polarization: (-0.791811,0.453433,-0.409186) - New Momentum Direction: (0.60115,0.460172,0.653346) - New Polarization: (0.791811,-0.453433,-0.409186) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60115,0.460172,0.653346) - Old Polarization: (0.791811,-0.453433,-0.409186) - New Momentum Direction: (-0.60115,0.460172,0.653346) - New Polarization: (0.791811,0.453433,0.409186) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60115,0.460172,0.653346) - Old Polarization: (0.791811,0.453433,0.409186) - New Momentum Direction: (-0.60115,-0.460172,0.653346) - New Polarization: (-0.791811,0.453433,-0.409186) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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 6 stacked tracks. +### pop requested out of 63 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.617662,0.535396,-0.57606) - Old Polarization: (-0.774548,0.541054,-0.327622) - New Momentum Direction: (-0.617662,0.535396,-0.57606) - New Polarization: (-0.774548,-0.541054,0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617662,0.535396,-0.57606) - Old Polarization: (-0.774548,-0.541054,0.327622) - New Momentum Direction: (-0.617662,0.535396,0.57606) - New Polarization: (0.774548,0.541054,0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617662,0.535396,0.57606) - Old Polarization: (0.774548,0.541054,0.327622) - New Momentum Direction: (-0.617662,-0.535396,0.57606) - New Polarization: (-0.774548,0.541054,-0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617662,-0.535396,0.57606) - Old Polarization: (-0.774548,0.541054,-0.327622) - New Momentum Direction: (0.617662,-0.535396,0.57606) - New Polarization: (-0.774548,-0.541054,0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.617662,-0.535396,0.57606) - Old Polarization: (-0.774548,-0.541054,0.327622) - New Momentum Direction: (0.617662,-0.535396,-0.57606) - New Polarization: (0.774548,0.541054,0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.617662,-0.535396,-0.57606) - Old Polarization: (0.774548,0.541054,0.327622) - New Momentum Direction: (0.617662,0.535396,-0.57606) - New Polarization: (-0.774548,0.541054,-0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.617662,0.535396,-0.57606) - Old Polarization: (-0.774548,0.541054,-0.327622) - New Momentum Direction: (-0.617662,0.535396,-0.57606) - New Polarization: (-0.774548,-0.541054,0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617662,0.535396,-0.57606) - Old Polarization: (-0.774548,-0.541054,0.327622) - New Momentum Direction: (-0.617662,0.535396,0.57606) - New Polarization: (0.774548,0.541054,0.327622) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617662,0.535396,0.57606) - Old Polarization: (0.774548,0.541054,0.327622) - New Momentum Direction: (-0.617662,-0.535396,0.57606) - New Polarization: (-0.774548,0.541054,-0.327622) - *** TotalInternalReflection *** - -** Photon absorbed! ** + 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 -### pop requested out of 5 stacked tracks. +### pop requested out of 62 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.659427,0.667346,-0.346129) - Old Polarization: (-0.727496,0.682525,-0.0700626) - New Momentum Direction: (0.659427,-0.667346,-0.346129) - New Polarization: (0.727496,0.682525,0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659427,-0.667346,-0.346129) - Old Polarization: (0.727496,0.682525,0.0700626) - New Momentum Direction: (-0.659427,-0.667346,-0.346129) - New Polarization: (0.727496,-0.682525,-0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659427,-0.667346,-0.346129) - Old Polarization: (0.727496,-0.682525,-0.0700626) - New Momentum Direction: (-0.659427,-0.667346,0.346129) - New Polarization: (-0.727496,0.682525,-0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659427,-0.667346,0.346129) - Old Polarization: (-0.727496,0.682525,-0.0700626) - New Momentum Direction: (-0.659427,0.667346,0.346129) - New Polarization: (0.727496,0.682525,0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659427,0.667346,0.346129) - Old Polarization: (0.727496,0.682525,0.0700626) - New Momentum Direction: (0.659427,0.667346,0.346129) - New Polarization: (0.727496,-0.682525,-0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659427,0.667346,0.346129) - Old Polarization: (0.727496,-0.682525,-0.0700626) - New Momentum Direction: (0.659427,-0.667346,0.346129) - New Polarization: (-0.727496,-0.682525,0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659427,-0.667346,0.346129) - Old Polarization: (-0.727496,-0.682525,0.0700626) - New Momentum Direction: (-0.659427,-0.667346,0.346129) - New Polarization: (-0.727496,0.682525,-0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659427,-0.667346,0.346129) - Old Polarization: (-0.727496,0.682525,-0.0700626) - New Momentum Direction: (-0.659427,-0.667346,-0.346129) - New Polarization: (0.727496,-0.682525,-0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659427,-0.667346,-0.346129) - Old Polarization: (0.727496,-0.682525,-0.0700626) - New Momentum Direction: (-0.659427,0.667346,-0.346129) - New Polarization: (-0.727496,-0.682525,0.0700626) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659427,0.667346,-0.346129) - Old Polarization: (-0.727496,-0.682525,0.0700626) - New Momentum Direction: (0.659427,0.667346,-0.346129) - New Polarization: (-0.727496,0.682525,-0.0700626) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.659427,0.667346,-0.346129) -Old Polarization: (-0.727496,0.682525,-0.0700626) -New Polarization: (0.347703,-0.847,-0.40211) -Polarization Change: (0.347703,-0.847,-0.40211) -New Momentum Direction: (-0.752056,0.0041704,-0.659085) -Momentum Change: (-0.752056,0.0041704,-0.659085) - -** Photon absorbed! ** + 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) + *** FresnelRefraction *** Track (trackID 950, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.654741,-0.478442,-0.585155) - Old Polarization: (-0.733497,-0.589075,-0.339077) - New Momentum Direction: (-0.654741,-0.478442,-0.585155) - New Polarization: (-0.733497,0.589075,0.339077) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.654741,-0.478442,-0.585155) - Old Polarization: (-0.733497,0.589075,0.339077) - New Momentum Direction: (-0.654741,-0.478442,0.585155) - New Polarization: (0.733497,-0.589075,0.339077) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.654741,-0.478442,0.585155) - Old Polarization: (0.733497,-0.589075,0.339077) - New Momentum Direction: (-0.654741,0.478442,0.585155) - New Polarization: (-0.733497,-0.589075,-0.339077) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.654741,0.478442,0.585155) - Old Polarization: (-0.733497,-0.589075,-0.339077) - New Momentum Direction: (0.654741,0.478442,0.585155) - New Polarization: (-0.733497,0.589075,0.339077) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.654741,0.478442,0.585155) - Old Polarization: (-0.733497,0.589075,0.339077) - New Momentum Direction: (0.654741,0.478442,-0.585155) - New Polarization: (0.733497,-0.589075,0.339077) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.654741,0.478442,-0.585155) - Old Polarization: (0.733497,-0.589075,0.339077) - New Momentum Direction: (0.654741,-0.478442,-0.585155) - New Polarization: (-0.733497,-0.589075,-0.339077) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.654741,-0.478442,-0.585155) - Old Polarization: (-0.733497,-0.589075,-0.339077) - New Momentum Direction: (-0.654741,-0.478442,-0.585155) - New Polarization: (-0.733497,0.589075,0.339077) - *** TotalInternalReflection *** +### pop requested out of 61 stacked tracks. ** Photon absorbed! ** Track (trackID 949, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.595659,0.387682,-0.703487) - Old Polarization: (-0.798947,0.376367,-0.469076) - New Momentum Direction: (0.595659,0.387682,0.703487) - New Polarization: (0.2281,-0.921399,0.314633) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.595659,0.387682,0.703487) - Old Polarization: (0.2281,-0.921399,0.314633) - New Momentum Direction: (-0.595659,0.387682,0.703487) - New Polarization: (0.2281,0.921399,-0.314633) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.595659,0.387682,0.703487) - Old Polarization: (0.2281,0.921399,-0.314633) - New Momentum Direction: (-0.595659,-0.387682,0.703487) - New Polarization: (-0.2281,0.921399,0.314633) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.595659,-0.387682,0.703487) - Old Polarization: (-0.2281,0.921399,0.314633) - New Momentum Direction: (-0.595659,-0.387682,-0.703487) - New Polarization: (0.683265,-0.705014,-0.190013) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.595659,-0.387682,-0.703487) - Old Polarization: (0.683265,-0.705014,-0.190013) - New Momentum Direction: (0.595659,-0.387682,-0.703487) - New Polarization: (0.683265,0.705014,0.190013) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.595659,-0.387682,-0.703487) - Old Polarization: (0.683265,0.705014,0.190013) - New Momentum Direction: (0.595659,-0.387682,0.703487) - New Polarization: (-0.62981,-0.768993,0.109493) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.595659,-0.387682,0.703487) - Old Polarization: (-0.62981,-0.768993,0.109493) - New Momentum Direction: (0.595659,0.387682,0.703487) - New Polarization: (0.62981,-0.768993,-0.109493) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.595659,0.387682,0.703487) - Old Polarization: (0.62981,-0.768993,-0.109493) - New Momentum Direction: (-0.595659,0.387682,0.703487) - New Polarization: (0.62981,0.768993,0.109493) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.595659,0.387682,0.703487) - Old Polarization: (0.62981,0.768993,0.109493) - New Momentum Direction: (-0.806382,0.52483,0.272582) - New Polarization: (0.476749,0.849624,-0.225497) - *** FresnelRefraction *** +### pop requested out of 60 stacked tracks. + +** Photon absorbed! ** Track (trackID 948, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.609459,-0.242006,-0.754979) - Old Polarization: (-0.784055,-0.325175,-0.528696) - New Momentum Direction: (0.823776,-0.327108,-0.463026) - New Polarization: (0.217658,-0.571662,0.791093) - *** FresnelRefraction *** +### pop requested out of 59 stacked tracks. + +** Photon absorbed! ** Track (trackID 947, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 146 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 147 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.841897,0.0374902,-0.538335) - Old Polarization: (-0.501573,0.422391,-0.75499) - New Momentum Direction: (0.680824,0.0508851,-0.730677) - New Polarization: (-0.704731,0.317338,-0.634548) - *** FresnelRefraction *** -Track (trackID 1233, parentID 1) is processed with stopping code 2 -### pop requested out of 146 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.53433,-0.771478,0.345417) - Old Polarization: (-0.845198,-0.482063,0.230774) - New Momentum Direction: (0.723436,-0.507869,0.467664) - New Polarization: (0.0874212,0.739325,0.66765) - *** FresnelRefraction *** -Track (trackID 1232, parentID 1) is processed with stopping code 2 -### pop requested out of 145 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.662741,-0.601607,-0.445919) - Old Polarization: (-0.701049,-0.289107,-0.65188) - New Momentum Direction: (-0.662741,-0.601607,-0.445919) - New Polarization: (-0.701049,0.289107,0.65188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.662741,-0.601607,-0.445919) - Old Polarization: (-0.701049,0.289107,0.65188) - New Momentum Direction: (-0.662741,0.601607,-0.445919) - New Polarization: (0.701049,0.289107,-0.65188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.662741,0.601607,-0.445919) - Old Polarization: (0.701049,0.289107,-0.65188) - New Momentum Direction: (-0.662741,0.601607,0.445919) - New Polarization: (-0.701049,-0.289107,-0.65188) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1231, parentID 1) is processed with stopping code 2 -### pop requested out of 144 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1230, parentID 1) is processed with stopping code 2 -### pop requested out of 143 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.543144,-0.828218,0.138022) - Old Polarization: (-0.83613,-0.548531,-0.00118751) - New Momentum Direction: (0.734038,-0.652988,0.186531) - New Polarization: (0.589527,0.749052,0.302289) - *** FresnelRefraction *** -Track (trackID 1229, parentID 1) is processed with stopping code 2 -### pop requested out of 142 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1228, parentID 1) is processed with stopping code 2 -### pop requested out of 141 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1227, parentID 1) is processed with stopping code 2 -### pop requested out of 140 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.893952,0.312187,-0.321541) - Old Polarization: (-0.441982,0.732879,-0.517243) - New Momentum Direction: (0.795409,0.422187,-0.434837) - New Polarization: (-0.601617,0.636851,-0.48216) - *** FresnelRefraction *** -Track (trackID 1226, parentID 1) is processed with stopping code 2 -### pop requested out of 139 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.533028,-0.79222,0.297101) - Old Polarization: (-0.846037,-0.503259,0.17593) - New Momentum Direction: (0.72264,-0.561742,0.402788) - New Polarization: (0.231405,0.745696,0.624811) - *** FresnelRefraction *** -Track (trackID 1225, parentID 1) is processed with stopping code 2 -### pop requested out of 138 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1224, parentID 1) is processed with stopping code 2 -### pop requested out of 137 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.67825,-0.555729,-0.480773) - Old Polarization: (-0.683739,-0.237573,-0.689971) - New Momentum Direction: (-0.67825,-0.555729,-0.480773) - New Polarization: (-0.672085,0.204597,0.711647) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.67825,-0.555729,-0.480773) - Old Polarization: (-0.672085,0.204597,0.711647) - New Momentum Direction: (-0.67825,0.555729,-0.480773) - New Polarization: (0.672085,0.204597,-0.711647) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.67825,0.555729,-0.480773) - Old Polarization: (0.672085,0.204597,-0.711647) - New Momentum Direction: (-0.67825,0.555729,0.480773) - New Polarization: (-0.672085,-0.204597,-0.711647) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.67825,0.555729,0.480773) - Old Polarization: (-0.672085,-0.204597,-0.711647) - New Momentum Direction: (0.67825,0.555729,0.480773) - New Polarization: (0.65821,-0.750339,-0.0612454) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.67825,0.555729,0.480773) - Old Polarization: (0.65821,-0.750339,-0.0612454) - New Momentum Direction: (0.67825,-0.555729,0.480773) - New Polarization: (-0.65821,-0.750339,0.0612454) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.67825,-0.555729,0.480773) - Old Polarization: (-0.65821,-0.750339,0.0612454) - New Momentum Direction: (0.67825,-0.555729,-0.480773) - New Polarization: (0.65821,0.750339,0.0612454) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.67825,-0.555729,-0.480773) - Old Polarization: (0.65821,0.750339,0.0612454) - New Momentum Direction: (-0.67825,-0.555729,-0.480773) - New Polarization: (-0.641884,0.12956,0.755777) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.67825,-0.555729,-0.480773) - Old Polarization: (-0.641884,0.12956,0.755777) - New Momentum Direction: (-0.67825,0.555729,-0.480773) - New Polarization: (0.641884,0.12956,-0.755777) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.67825,0.555729,-0.480773) - Old Polarization: (0.641884,0.12956,-0.755777) - New Momentum Direction: (-0.0625363,0.754787,-0.652983) - New Polarization: (0.95102,-0.153393,-0.268388) - *** FresnelRefraction *** -Track (trackID 1223, parentID 1) is processed with stopping code 2 -### pop requested out of 136 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.645583,-0.198035,0.737567) - Old Polarization: (-0.721081,0.16002,0.674118) - New Momentum Direction: (0.871864,-0.267448,0.410273) - New Polarization: (0.380248,-0.158283,-0.91124) - *** FresnelRefraction *** -Track (trackID 1222, parentID 1) is processed with stopping code 2 -### pop requested out of 135 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.838554,0.0138038,-0.544644) - Old Polarization: (-0.504409,0.397492,-0.766532) - New Momentum Direction: (0.675518,0.0186817,-0.737107) - New Polarization: (-0.70778,0.296663,-0.641123) - *** FresnelRefraction *** -Track (trackID 1221, parentID 1) is processed with stopping code 2 -### pop requested out of 134 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.55784,-0.609327,0.563503) - Old Polarization: (-0.821093,-0.30626,0.481675) - New Momentum Direction: (0.55784,0.609327,0.563503) - New Polarization: (0.821093,-0.30626,-0.481675) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.55784,0.609327,0.563503) - Old Polarization: (0.821093,-0.30626,-0.481675) - New Momentum Direction: (0.55784,0.609327,-0.563503) - New Polarization: (-0.821093,0.30626,-0.481675) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.55784,0.609327,-0.563503) - Old Polarization: (-0.821093,0.30626,-0.481675) - New Momentum Direction: (-0.55784,0.609327,-0.563503) - New Polarization: (-0.821093,-0.30626,0.481675) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1220, parentID 1) is processed with stopping code 2 -### pop requested out of 133 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.530685,-0.804598,0.266449) - Old Polarization: (-0.847239,-0.512361,0.14026) - New Momentum Direction: (0.721682,-0.589814,0.362346) - New Polarization: (0.316939,0.746903,0.584539) - *** FresnelRefraction *** -Track (trackID 1219, parentID 1) is processed with stopping code 2 -### pop requested out of 132 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.618087,-0.717072,-0.322142) - Old Polarization: (-0.750527,-0.41639,-0.513156) - New Momentum Direction: (0.839851,-0.321011,-0.437724) - New Polarization: (-0.0914906,0.711144,-0.697068) - *** FresnelRefraction *** -Track (trackID 1218, parentID 1) is processed with stopping code 2 -### pop requested out of 131 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.75182,-0.31567,-0.578894) - Old Polarization: (-0.602001,0.0295602,-0.797948) - New Momentum Direction: (0.443719,-0.429037,-0.786792) - New Polarization: (-0.857433,0.0520731,-0.511954) - *** FresnelRefraction *** -Track (trackID 1217, parentID 1) is processed with stopping code 2 -### pop requested out of 130 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.654453,-0.622639,-0.428966) - Old Polarization: (-0.710102,-0.311275,-0.631557) - New Momentum Direction: (-0.654453,-0.622639,-0.428966) - New Polarization: (-0.710102,0.311275,0.631557) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.654453,-0.622639,-0.428966) - Old Polarization: (-0.710102,0.311275,0.631557) - New Momentum Direction: (-0.654453,0.622639,-0.428966) - New Polarization: (0.710102,0.311275,-0.631557) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.654453,0.622639,-0.428966) - Old Polarization: (0.710102,0.311275,-0.631557) - New Momentum Direction: (-0.654453,0.622639,0.428966) - New Polarization: (-0.710102,-0.311275,-0.631557) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1216, parentID 1) is processed with stopping code 2 -### pop requested out of 129 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1215, parentID 1) is processed with stopping code 2 -### pop requested out of 128 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.883293,0.254587,-0.393674) - Old Polarization: (-0.45569,0.663574,-0.593309) - New Momentum Direction: (0.771151,0.345725,-0.534602) - New Polarization: (-0.627182,0.556824,-0.544601) - *** FresnelRefraction *** -Track (trackID 1214, parentID 1) is processed with stopping code 2 -### pop requested out of 127 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.632649,-0.682499,-0.365991) - Old Polarization: (-0.734531,-0.379063,-0.562829) - New Momentum Direction: (0.632649,0.682499,-0.365991) - New Polarization: (0.196047,0.316055,0.928264) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.632649,0.682499,-0.365991) - Old Polarization: (0.196047,0.316055,0.928264) - New Momentum Direction: (-0.632649,0.682499,-0.365991) - New Polarization: (0.196047,-0.316055,-0.928264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.632649,0.682499,-0.365991) - Old Polarization: (0.196047,-0.316055,-0.928264) - New Momentum Direction: (-0.632649,0.682499,0.365991) - New Polarization: (-0.196047,0.316055,-0.928264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.632649,0.682499,0.365991) - Old Polarization: (-0.196047,0.316055,-0.928264) - New Momentum Direction: (-0.632649,-0.682499,0.365991) - New Polarization: (0.677672,-0.259128,0.688196) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.632649,-0.682499,0.365991) - Old Polarization: (0.677672,-0.259128,0.688196) - New Momentum Direction: (0.632649,-0.682499,0.365991) - New Polarization: (0.677672,0.259128,-0.688196) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1213, parentID 1) is processed with stopping code 2 -### pop requested out of 126 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.884175,0.248074,-0.395845) - Old Polarization: (-0.453419,0.659686,-0.599354) - New Momentum Direction: (0.774602,0.335851,-0.535907) - New Polarization: (-0.622491,0.554636,-0.552163) - *** FresnelRefraction *** -Track (trackID 1212, parentID 1) is processed with stopping code 2 -### pop requested out of 125 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.617584,-0.302924,0.725828) - Old Polarization: (-0.752111,0.0424587,0.657667) - New Momentum Direction: (0.835689,-0.409905,0.365517) - New Polarization: (0.232967,-0.338116,-0.911814) - *** FresnelRefraction *** -Track (trackID 1211, parentID 1) is processed with stopping code 2 -### pop requested out of 124 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.685666,-0.531496,-0.497367) - Old Polarization: (-0.67542,-0.209764,-0.706971) - New Momentum Direction: (0.143457,-0.722609,-0.676208) - New Polarization: (-0.961891,0.0589075,-0.267014) - *** FresnelRefraction *** -Track (trackID 1210, parentID 1) is processed with stopping code 2 -### pop requested out of 123 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.69022,-0.519293,-0.503916) - Old Polarization: (-0.670416,-0.196881,-0.715388) - New Momentum Direction: (0.18359,-0.705454,-0.684565) - New Polarization: (-0.953532,0.0414409,-0.298429) - *** FresnelRefraction *** -Track (trackID 1209, parentID 1) is processed with stopping code 2 -### pop requested out of 122 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.899317,0.363475,-0.243134) - Old Polarization: (-0.435796,0.790955,-0.429502) - New Momentum Direction: (0.806547,0.491373,-0.328686) - New Polarization: (-0.590093,0.702715,-0.397468) - *** FresnelRefraction *** -Track (trackID 1208, parentID 1) is processed with stopping code 2 -### pop requested out of 121 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.700842,1.889e-05,0.713316) - Old Polarization: (-0.658864,0.383222,0.647332) - New Momentum Direction: (0.946187,2.55028e-05,0.32362) - New Polarization: (0.312049,0.264937,-0.912378) - *** FresnelRefraction *** -Track (trackID 1207, parentID 1) is processed with stopping code 2 -### pop requested out of 120 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.62607,-0.701611,-0.340263) - Old Polarization: (-0.742218,-0.402413,-0.535889) - New Momentum Direction: (0.848574,-0.259277,-0.461192) - New Polarization: (-0.160564,0.704378,-0.691426) - *** FresnelRefraction *** -Track (trackID 1206, parentID 1) is processed with stopping code 2 -### pop requested out of 119 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1205, parentID 1) is processed with stopping code 2 -### pop requested out of 118 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.535637,-0.712093,0.45389) - Old Polarization: (-0.842174,-0.411041,0.348982) - New Momentum Direction: (0.727717,-0.300275,0.616655) - New Polarization: (-0.262375,0.708816,0.654782) - *** FresnelRefraction *** -Track (trackID 1204, parentID 1) is processed with stopping code 2 -### pop requested out of 117 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.564528,-0.823449,-0.0569245) - Old Polarization: (-0.811611,-0.541206,-0.219965) - New Momentum Direction: (0.763869,-0.640758,-0.0770253) - New Polarization: (0.600155,0.749161,-0.280306) - *** FresnelRefraction *** -Track (trackID 1203, parentID 1) is processed with stopping code 2 -### pop requested out of 116 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.840798,0.00847782,-0.541282) - Old Polarization: (-0.500288,0.394149,-0.770946) - New Momentum Direction: (0.684647,0.0114146,-0.728785) - New Polarization: (-0.698541,0.295728,-0.651603) - *** FresnelRefraction *** -Track (trackID 1202, parentID 1) is processed with stopping code 2 -### pop requested out of 115 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.543072,-0.665754,0.511708) - Old Polarization: (-0.834704,-0.361743,0.415223) - New Momentum Direction: (0.543072,0.665754,0.511708) - New Polarization: (0.834704,-0.361743,-0.415223) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1201, parentID 1) is processed with stopping code 2 -### pop requested out of 114 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.72857,0.101529,0.677406) - Old Polarization: (-0.627721,0.494766,0.600977) - New Momentum Direction: (0.371717,0.137602,0.918091) - New Polarization: (-0.891091,0.330236,0.31129) - *** FresnelRefraction *** -Track (trackID 1200, parentID 1) is processed with stopping code 2 -### pop requested out of 113 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.558192,-0.606113,0.566611) - Old Polarization: (-0.820606,-0.302395,0.484936) - New Momentum Direction: (0.558192,0.606113,0.566611) - New Polarization: (0.820606,-0.302395,-0.484936) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.558192,0.606113,0.566611) - Old Polarization: (0.820606,-0.302395,-0.484936) - New Momentum Direction: (0.558192,0.606113,-0.566611) - New Polarization: (-0.820606,0.302395,-0.484936) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.558192,0.606113,-0.566611) - Old Polarization: (-0.820606,0.302395,-0.484936) - New Momentum Direction: (-0.558192,0.606113,-0.566611) - New Polarization: (-0.820606,-0.302395,0.484936) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1199, parentID 1) is processed with stopping code 2 -### pop requested out of 112 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1198, parentID 1) is processed with stopping code 2 -### pop requested out of 111 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.90035,0.421949,-0.106437) - Old Polarization: (-0.434433,0.857338,-0.276114) - New Momentum Direction: (0.808836,0.570173,-0.143827) - New Polarization: (-0.587507,0.773222,-0.238668) - *** FresnelRefraction *** -Track (trackID 1197, parentID 1) is processed with stopping code 2 -### pop requested out of 110 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1196, parentID 1) is processed with stopping code 2 -### pop requested out of 109 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.777798,-0.225606,-0.586628) - Old Polarization: (-0.572895,0.129393,-0.809351) - New Momentum Direction: (0.522277,-0.306105,-0.795944) - New Polarization: (-0.813764,0.100181,-0.572497) - *** FresnelRefraction *** -Track (trackID 1195, parentID 1) is processed with stopping code 2 -### pop requested out of 108 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.643346,-0.187843,0.742173) - Old Polarization: (-0.72254,0.171473,0.669727) - New Momentum Direction: (0.873827,-0.255138,0.413922) - New Polarization: (0.390023,-0.14056,-0.910014) - *** FresnelRefraction *** -Track (trackID 1194, parentID 1) is processed with stopping code 2 -### pop requested out of 107 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.880733,0.454585,0.1329) - Old Polarization: (-0.457764,0.889043,-0.00735761) - New Momentum Direction: (0.766744,0.616161,0.180137) - New Polarization: (-0.630465,0.775617,0.0305332) - *** FresnelRefraction *** -Track (trackID 1193, parentID 1) is processed with stopping code 2 -### pop requested out of 106 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.830538,0.375711,0.411154) - Old Polarization: (-0.513555,0.802307,0.304244) - New Momentum Direction: (0.65664,0.508766,0.556759) - New Polarization: (-0.722544,0.635998,0.270992) - *** FresnelRefraction *** -Track (trackID 1192, parentID 1) is processed with stopping code 2 -### pop requested out of 105 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.532961,-0.742091,0.406514) - Old Polarization: (-0.845228,-0.444618,0.296487) - New Momentum Direction: (0.723951,-0.413495,0.552192) - New Polarization: (-0.105962,0.724299,0.681296) - *** FresnelRefraction *** -Track (trackID 1191, parentID 1) is processed with stopping code 2 -### pop requested out of 104 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.546623,-0.702231,0.456153) - Old Polarization: (-0.834834,-0.414565,0.362199) - New Momentum Direction: (0.734451,-0.29145,0.612894) - New Polarization: (-0.269232,0.703862,0.657337) - *** FresnelRefraction *** -Track (trackID 1190, parentID 1) is processed with stopping code 2 -### pop requested out of 103 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.544302,-0.646838,0.534168) - Old Polarization: (-0.83259,-0.338653,0.438302) - New Momentum Direction: (0.544302,0.646838,0.534168) - New Polarization: (0.83259,-0.338653,-0.438302) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.544302,0.646838,0.534168) - Old Polarization: (0.83259,-0.338653,-0.438302) - New Momentum Direction: (-0.544302,0.646838,0.534168) - New Polarization: (0.83259,0.338653,0.438302) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.544302,0.646838,0.534168) - Old Polarization: (0.83259,0.338653,0.438302) - New Momentum Direction: (-0.544302,0.646838,-0.534168) - New Polarization: (-0.83259,-0.338653,0.438302) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.544302,0.646838,-0.534168) - Old Polarization: (-0.83259,-0.338653,0.438302) - New Momentum Direction: (-0.544302,-0.646838,-0.534168) - New Polarization: (0.83259,-0.338653,-0.438302) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.544302,-0.646838,-0.534168) - Old Polarization: (0.83259,-0.338653,-0.438302) - New Momentum Direction: (0.544302,-0.646838,-0.534168) - New Polarization: (0.83259,0.338653,0.438302) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.544302,-0.646838,-0.534168) - Old Polarization: (0.83259,0.338653,0.438302) - New Momentum Direction: (0.544302,-0.646838,0.534168) - New Polarization: (-0.83259,-0.338653,0.438302) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.544302,-0.646838,0.534168) - Old Polarization: (-0.83259,-0.338653,0.438302) - New Momentum Direction: (0.544302,0.646838,0.534168) - New Polarization: (0.83259,-0.338653,-0.438302) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1189, parentID 1) is processed with stopping code 2 -### pop requested out of 102 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738185,0.137306,0.660477) - Old Polarization: (-0.6171,0.532967,0.578907) - New Momentum Direction: (0.400559,0.186495,0.897091) - New Polarization: (-0.878323,0.357,0.317963) - *** FresnelRefraction *** -Track (trackID 1188, parentID 1) is processed with stopping code 2 -### pop requested out of 101 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.658209,-0.62516,-0.419447) - Old Polarization: (-0.706973,-0.321791,-0.629794) - New Momentum Direction: (-0.658209,-0.62516,-0.419447) - New Polarization: (-0.706973,0.321791,0.629794) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1187, parentID 1) is processed with stopping code 2 -### pop requested out of 100 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.597423,-0.375724,0.708462) -Old Polarization: (-0.773645,-0.0374854,0.63251) -New Polarization: (0.775672,0.594239,0.212636) -Polarization Change: (0.775672,0.594239,0.212636) -New Momentum Direction: (0.452753,-0.289179,-0.843439) -Momentum Change: (0.452753,-0.289179,-0.843439) - Photon at Boundary! - Old Momentum Direction: (0.452753,-0.289179,-0.843439) - Old Polarization: (0.775672,0.594239,0.212636) - New Momentum Direction: (-0.452753,-0.289179,-0.843439) - New Polarization: (0.775672,-0.594239,-0.212636) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.452753,-0.289179,-0.843439) - Old Polarization: (0.775672,-0.594239,-0.212636) - New Momentum Direction: (-0.452753,0.289179,-0.843439) - New Polarization: (-0.775672,-0.594239,0.212636) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.452753,0.289179,-0.843439) - Old Polarization: (-0.775672,-0.594239,0.212636) - New Momentum Direction: (-0.61485,0.392713,-0.683912) - New Polarization: (-0.758781,-0.530957,0.377274) - *** FresnelRefraction *** -Track (trackID 1186, parentID 1) is processed with stopping code 2 -### pop requested out of 99 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1185, parentID 1) is processed with stopping code 2 -### pop requested out of 98 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1184, parentID 1) is processed with stopping code 2 -### pop requested out of 97 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1183, parentID 1) is processed with stopping code 2 -### pop requested out of 96 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.885033,0.458517,0.0804892) - Old Polarization: (-0.454275,0.888419,-0.0659225) - New Momentum Direction: (0.774186,0.623425,0.109438) - New Polarization: (-0.624872,0.780334,-0.0247826) - *** FresnelRefraction *** -Track (trackID 1182, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.856463,0.422099,0.297159) - Old Polarization: (-0.483931,0.856895,0.177598) - New Momentum Direction: (0.716275,0.570599,0.401704) - New Polarization: (-0.67413,0.714526,0.187088) - *** FresnelRefraction *** -Track (trackID 1181, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1180, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.574661,-0.488672,0.656479) - Old Polarization: (-0.799641,-0.16455,0.577492) - New Momentum Direction: (0.574661,-0.488672,-0.656479) - New Polarization: (0.799641,0.16455,0.577492) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.574661,-0.488672,-0.656479) - Old Polarization: (0.799641,0.16455,0.577492) - New Momentum Direction: (-0.574661,-0.488672,-0.656479) - New Polarization: (0.799641,-0.16455,-0.577492) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.574661,-0.488672,-0.656479) - Old Polarization: (0.799641,-0.16455,-0.577492) - New Momentum Direction: (-0.574661,0.488672,-0.656479) - New Polarization: (-0.799641,-0.16455,0.577492) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1179, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1178, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.806784,-0.10553,-0.581346) - Old Polarization: (-0.541245,0.262616,-0.798803) - New Momentum Direction: (0.594686,-0.143593,-0.791031) - New Polarization: (-0.768508,0.18742,-0.611775) - *** FresnelRefraction *** -Track (trackID 1177, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.735794,-0.386318,-0.556207) - Old Polarization: (-0.619477,-0.0521371,-0.783281) - New Momentum Direction: (0.404903,-0.521605,-0.750987) - New Polarization: (-0.875798,0.0147675,-0.482453) - *** FresnelRefraction *** -Track (trackID 1176, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1175, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.538863,-0.824015,0.175002) - Old Polarization: (-0.840128,-0.540915,0.039948) - New Momentum Direction: (0.729563,-0.641561,0.236934) - New Polarization: (0.528871,0.748889,0.399325) - *** FresnelRefraction *** -Track (trackID 1174, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1173, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.559721,-0.828201,-0.0281898) - Old Polarization: (-0.816772,-0.545612,-0.187592) - New Momentum Direction: (0.757799,-0.651371,-0.0381658) - New Polarization: (0.633346,0.748372,-0.19701) - *** FresnelRefraction *** -Track (trackID 1172, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.879913,0.232743,-0.414227) - Old Polarization: (-0.459356,0.639518,-0.616449) - New Momentum Direction: (0.764118,0.315988,-0.562384) - New Polarization: (-0.63367,0.530904,-0.562675) - *** FresnelRefraction *** -Track (trackID 1171, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.58299,-0.791017,-0.185511) - Old Polarization: (-0.789188,-0.497041,-0.360738) - New Momentum Direction: (0.792952,-0.554582,-0.252322) - New Polarization: (0.33704,0.744254,-0.57662) - *** FresnelRefraction *** -Track (trackID 1170, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1169, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1168, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.799487,0.31111,0.513839) - Old Polarization: (-0.549087,0.725365,0.415148) - New Momentum Direction: (0.577452,0.422849,0.69839) - New Polarization: (-0.779655,0.539437,0.318035) - *** FresnelRefraction *** -Track (trackID 1167, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.546264,-0.836603,0.0411107) - Old Polarization: (-0.829799,-0.547204,-0.109549) - New Momentum Direction: (0.743167,-0.666765,0.0559292) - New Polarization: (0.667018,0.744853,0.0167333) - *** FresnelRefraction *** -Track (trackID 1166, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.86629,0.12741,-0.483021) - Old Polarization: (-0.471221,0.529369,-0.705492) - New Momentum Direction: (0.740277,0.171473,-0.650066) - New Polarization: (-0.651381,0.422273,-0.630388) - *** FresnelRefraction *** -Track (trackID 1165, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.79322,-0.173918,-0.583571) - Old Polarization: (-0.555191,0.1871,-0.810405) - New Momentum Direction: (0.566595,-0.235341,-0.789674) - New Polarization: (-0.785545,0.135065,-0.603885) - *** FresnelRefraction *** -Track (trackID 1164, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.898364,0.430607,-0.0867145) - Old Polarization: (-0.43793,0.862738,-0.252783) - New Momentum Direction: (0.803582,0.583481,-0.1175) - New Polarization: (-0.59425,0.775399,-0.213595) - *** FresnelRefraction *** -Track (trackID 1163, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.817406,-0.0795699,-0.57054) - Old Polarization: (-0.527867,0.29311,-0.797147) - New Momentum Direction: (0.627183,-0.107584,-0.771406) - New Polarization: (-0.7438,0.211126,-0.634182) - *** FresnelRefraction *** -Track (trackID 1162, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.714479,-0.447921,-0.537482) - Old Polarization: (-0.643462,-0.119025,-0.756167) - New Momentum Direction: (0.317295,-0.607119,-0.728512) - New Polarization: (-0.913107,0.0118272,-0.407549) - *** FresnelRefraction *** -Track (trackID 1161, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.726035,0.0814042,0.682823) - Old Polarization: (-0.630464,0.475274,0.613702) - New Momentum Direction: (0.372712,0.109849,0.921422) - New Polarization: (-0.890444,0.321778,0.32182) - *** FresnelRefraction *** -Track (trackID 1160, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1159, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.564731,-0.823287,-0.0572506) - Old Polarization: (-0.811445,-0.541283,-0.220385) - New Momentum Direction: (0.764021,-0.640525,-0.077454) - New Polarization: (0.599618,0.749237,-0.281251) - *** FresnelRefraction *** -Track (trackID 1158, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.897003,0.441464,-0.0222454) - Old Polarization: (-0.437852,0.880512,-0.181616) - New Momentum Direction: (0.802356,0.59609,-0.0300371) - New Polarization: (-0.593837,0.792252,-0.140337) - *** FresnelRefraction *** -Track (trackID 1157, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.649015,-0.655049,-0.386899) - Old Polarization: (-0.717872,-0.358935,-0.596511) - New Momentum Direction: (0.649015,0.655049,-0.386899) - New Polarization: (0.717872,-0.358935,0.596511) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.649015,0.655049,-0.386899) - Old Polarization: (0.717872,-0.358935,0.596511) - New Momentum Direction: (-0.649015,0.655049,-0.386899) - New Polarization: (0.717872,0.358935,-0.596511) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1156, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.824449,0.349015,0.445502) - Old Polarization: (-0.51875,0.780734,0.348359) - New Momentum Direction: (0.647864,0.469778,0.59965) - New Polarization: (-0.72703,0.616295,0.302668) - *** FresnelRefraction *** -Track (trackID 1155, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.653528,-0.173002,0.736866) - Old Polarization: (-0.712405,0.188284,0.676038) - New Momentum Direction: (0.881181,-0.233266,0.411227) - New Polarization: (0.397483,-0.105429,-0.911533) - *** FresnelRefraction *** -Track (trackID 1154, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1153, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.672886,-0.569042,-0.472668) - Old Polarization: (-0.689574,-0.251198,-0.679255) - New Momentum Direction: (-0.672886,-0.569042,-0.472668) - New Polarization: (-0.689574,0.251198,0.679255) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.672886,-0.569042,-0.472668) - Old Polarization: (-0.689574,0.251198,0.679255) - New Momentum Direction: (-0.672886,0.569042,-0.472668) - New Polarization: (0.689574,0.251198,-0.679255) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.672886,0.569042,-0.472668) - Old Polarization: (0.689574,0.251198,-0.679255) - New Momentum Direction: (-0.672886,0.569042,0.472668) - New Polarization: (-0.689574,-0.251198,-0.679255) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1152, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.807792,0.325356,0.491545) - Old Polarization: (-0.539235,0.744707,0.393239) - New Momentum Direction: (0.601354,0.440997,0.666255) - New Polarization: (-0.762788,0.56502,0.314495) - *** FresnelRefraction *** -Track (trackID 1151, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.543702,-0.823467,0.162146) - Old Polarization: (-0.836606,-0.547166,0.0264673) - New Momentum Direction: (0.732992,-0.644157,0.218597) - New Polarization: (0.550733,0.750588,0.365117) - *** FresnelRefraction *** -Track (trackID 1150, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.887951,0.258909,-0.380144) - Old Polarization: (-0.447744,0.675653,-0.585678) - New Momentum Direction: (0.784132,0.349345,-0.512928) - New Polarization: (-0.611719,0.574371,-0.543965) - *** FresnelRefraction *** -Track (trackID 1149, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1148, parentID 1) is processed with stopping code 2 -### pop requested out of 61 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1147, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1146, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.53652,-0.827694,0.164525) - Old Polarization: (-0.841298,-0.53987,0.0275108) - New Momentum Direction: (0.728742,-0.6473,0.22347) - New Polarization: (0.548844,0.747251,0.374681) - *** FresnelRefraction *** -Track (trackID 1145, parentID 1) is processed with stopping code 2 ### pop requested out of 58 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1144, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 946, parentID 1) is processed with stopping code 2 ### pop requested out of 57 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.899048,0.381516,-0.214848) - Old Polarization: (-0.437274,0.807534,-0.39583) - New Momentum Direction: (0.804881,0.517082,-0.291191) - New Polarization: (-0.593023,0.719128,-0.362186) - *** FresnelRefraction *** -Track (trackID 1143, parentID 1) is processed with stopping code 2 -### pop requested out of 56 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.583418,-0.790956,-0.184426) - Old Polarization: (-0.788936,-0.497992,-0.359979) - New Momentum Direction: (0.792991,-0.555273,-0.250675) - New Polarization: (0.339585,0.744474,-0.57484) - *** FresnelRefraction *** -Track (trackID 1142, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.862042,0.431071,0.266574) - Old Polarization: (-0.47771,0.866774,0.143167) - New Momentum Direction: (0.728319,0.582804,0.360405) - New Polarization: (-0.663882,0.730425,0.16044) - *** FresnelRefraction *** -Track (trackID 1141, parentID 1) is processed with stopping code 2 -### pop requested out of 54 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.539334,-0.683855,0.491387) - Old Polarization: (-0.838224,-0.38011,0.39102) - New Momentum Direction: (0.539334,0.683855,0.491387) - New Polarization: (0.392986,0.311692,-0.865107) + 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.539334,0.683855,0.491387) - Old Polarization: (0.392986,0.311692,-0.865107) - New Momentum Direction: (-0.539334,0.683855,0.491387) - New Polarization: (0.392986,-0.311692,0.865107) + 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) + *** FresnelRefraction *** +Track (trackID 945, 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) + *** FresnelRefraction *** +Track (trackID 944, 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) + *** FresnelRefraction *** +Track (trackID 943, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. ** Photon absorbed! ** -Track (trackID 1140, parentID 1) is processed with stopping code 2 +Track (trackID 942, parentID 1) is processed with stopping code 2 ### pop requested out of 53 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.532045,-0.779705,0.330134) - Old Polarization: (-0.846705,-0.487908,0.212218) - New Momentum Direction: (0.721981,-0.527304,0.447989) - New Polarization: (0.133816,0.741653,0.657301) + 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) *** FresnelRefraction *** -Track (trackID 1139, parentID 1) is processed with stopping code 2 +Track (trackID 941, parentID 1) is processed with stopping code 2 ### pop requested out of 52 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.882098,0.243651,-0.403158) - Old Polarization: (-0.456657,0.65235,-0.6049) - New Momentum Direction: (0.769089,0.330586,-0.547005) - New Polarization: (-0.628726,0.545192,-0.554499) + 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) *** FresnelRefraction *** -Track (trackID 1138, parentID 1) is processed with stopping code 2 +Track (trackID 940, parentID 1) is processed with stopping code 2 ### pop requested out of 51 stacked tracks. ** Photon absorbed! ** -Track (trackID 1137, parentID 1) is processed with stopping code 2 -### pop requested out of 50 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1136, parentID 1) is processed with stopping code 2 -### pop requested out of 49 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.867862,0.441285,0.228218) - Old Polarization: (-0.471674,0.876133,0.0995729) - New Momentum Direction: (0.740039,0.597402,0.308956) - New Polarization: (-0.654207,0.745987,0.124565) - *** FresnelRefraction *** -Track (trackID 1135, parentID 1) is processed with stopping code 2 -### pop requested out of 48 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.858785,0.100384,-0.502405) - Old Polarization: (-0.480862,0.496332,-0.72279) - New Momentum Direction: (0.722193,0.135526,-0.678285) - New Polarization: (-0.668544,0.388331,-0.63423) - *** FresnelRefraction *** -Track (trackID 1134, parentID 1) is processed with stopping code 2 -### pop requested out of 47 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.545531,-0.836555,0.0507068) - Old Polarization: (-0.830768,-0.547755,-0.0989438) - New Momentum Direction: (0.74189,-0.666967,0.0689582) - New Polarization: (0.665448,0.745,0.046417) - *** FresnelRefraction *** -Track (trackID 1133, parentID 1) is processed with stopping code 2 -### pop requested out of 46 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.681274,-0.553784,-0.478738) - Old Polarization: (-0.680685,-0.238629,-0.692621) - New Momentum Direction: (-0.681274,-0.553784,-0.478738) - New Polarization: (-0.651762,0.161128,0.74111) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.681274,-0.553784,-0.478738) - Old Polarization: (-0.651762,0.161128,0.74111) - New Momentum Direction: (-0.681274,0.553784,-0.478738) - New Polarization: (0.651762,0.161128,-0.74111) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.681274,0.553784,-0.478738) - Old Polarization: (0.651762,0.161128,-0.74111) - New Momentum Direction: (-0.681274,0.553784,0.478738) - New Polarization: (-0.651762,-0.161128,-0.74111) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1132, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.755972,0.177341,0.630124) - Old Polarization: (-0.596826,0.582142,0.552186) - New Momentum Direction: (0.466287,0.23966,0.851551) - New Polarization: (-0.844825,0.406152,0.348297) - *** FresnelRefraction *** -Track (trackID 1131, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.74309,0.152455,0.651594) - Old Polarization: (-0.611652,0.549742,0.568915) - New Momentum Direction: (0.416797,0.207089,0.885096) - New Polarization: (-0.870674,0.370706,0.32327) - *** FresnelRefraction *** -Track (trackID 1130, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.628025,-0.254733,0.73532) -Old Polarization: (-0.740034,0.0967621,0.665572) -New Polarization: (0.55141,0.152589,-0.820161) -Polarization Change: (0.55141,0.152589,-0.820161) -New Momentum Direction: (0.646875,-0.69901,0.304858) -Momentum Change: (0.646875,-0.69901,0.304858) - Photon at Boundary! - Old Momentum Direction: (0.646875,-0.69901,0.304858) - Old Polarization: (0.55141,0.152589,-0.820161) - New Momentum Direction: (-0.646875,-0.69901,0.304858) - New Polarization: (0.55141,-0.152589,0.820161) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646875,-0.69901,0.304858) - Old Polarization: (0.55141,-0.152589,0.820161) - New Momentum Direction: (-0.646875,-0.69901,-0.304858) - New Polarization: (-0.55141,0.152589,0.820161) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1129, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.565144,-0.540925,0.622907) - Old Polarization: (-0.810604,-0.223688,0.541188) - New Momentum Direction: (0.565144,-0.540925,-0.622907) - New Polarization: (0.810604,0.223688,0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565144,-0.540925,-0.622907) - Old Polarization: (0.810604,0.223688,0.541188) - New Momentum Direction: (-0.565144,-0.540925,-0.622907) - New Polarization: (0.810604,-0.223688,-0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565144,-0.540925,-0.622907) - Old Polarization: (0.810604,-0.223688,-0.541188) - New Momentum Direction: (-0.565144,0.540925,-0.622907) - New Polarization: (-0.810604,-0.223688,0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565144,0.540925,-0.622907) - Old Polarization: (-0.810604,-0.223688,0.541188) - New Momentum Direction: (-0.565144,0.540925,0.622907) - New Polarization: (0.810604,0.223688,0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565144,0.540925,0.622907) - Old Polarization: (0.810604,0.223688,0.541188) - New Momentum Direction: (0.565144,0.540925,0.622907) - New Polarization: (0.810604,-0.223688,-0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565144,0.540925,0.622907) - Old Polarization: (0.810604,-0.223688,-0.541188) - New Momentum Direction: (0.565144,-0.540925,0.622907) - New Polarization: (-0.810604,-0.223688,0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565144,-0.540925,0.622907) - Old Polarization: (-0.810604,-0.223688,0.541188) - New Momentum Direction: (0.565144,-0.540925,-0.622907) - New Polarization: (0.810604,0.223688,0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565144,-0.540925,-0.622907) - Old Polarization: (0.810604,0.223688,0.541188) - New Momentum Direction: (-0.565144,-0.540925,-0.622907) - New Polarization: (0.810604,-0.223688,-0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565144,-0.540925,-0.622907) - Old Polarization: (0.810604,-0.223688,-0.541188) - New Momentum Direction: (-0.565144,0.540925,-0.622907) - New Polarization: (-0.810604,-0.223688,0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565144,0.540925,-0.622907) - Old Polarization: (-0.810604,-0.223688,0.541188) - New Momentum Direction: (-0.565144,0.540925,0.622907) - New Polarization: (0.810604,0.223688,0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.565144,0.540925,0.622907) - Old Polarization: (0.810604,0.223688,0.541188) - New Momentum Direction: (0.565144,0.540925,0.622907) - New Polarization: (0.810604,-0.223688,-0.541188) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.565144,0.540925,0.622907) - Old Polarization: (0.810604,-0.223688,-0.541188) - New Momentum Direction: (0.565144,-0.540925,0.622907) - New Polarization: (-0.810604,-0.223688,0.541188) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1128, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.732293,-0.398763,-0.552028) - Old Polarization: (-0.623411,-0.0663258,-0.779076) - New Momentum Direction: (0.393834,-0.53824,-0.745113) - New Polarization: (-0.88095,0.0103348,-0.473097) - *** FresnelRefraction *** -Track (trackID 1127, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.819009,-0.0579062,-0.570851) - Old Polarization: (-0.52745,0.315671,-0.788763) - New Momentum Direction: (0.625823,-0.0787145,-0.775983) - New Polarization: (-0.746564,0.227575,-0.625182) - *** FresnelRefraction *** -Track (trackID 1126, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.571831,-0.533748,0.622995) - Old Polarization: (-0.805446,-0.221077,0.549892) - New Momentum Direction: (0.571831,-0.533748,-0.622995) - New Polarization: (0.805446,0.221077,0.549892) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.571831,-0.533748,-0.622995) - Old Polarization: (0.805446,0.221077,0.549892) - New Momentum Direction: (-0.571831,-0.533748,-0.622995) - New Polarization: (0.805446,-0.221077,-0.549892) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.571831,-0.533748,-0.622995) - Old Polarization: (0.805446,-0.221077,-0.549892) - New Momentum Direction: (-0.571831,0.533748,-0.622995) - New Polarization: (-0.805446,-0.221077,0.549892) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1125, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.538487,-0.776056,0.328282) - Old Polarization: (-0.842623,-0.493949,0.214478) - New Momentum Direction: (0.725775,-0.526764,0.44246) - New Polarization: (0.139887,0.742743,0.654801) - *** FresnelRefraction *** -Track (trackID 1124, parentID 1) is processed with stopping code 2 -### pop requested out of 37 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.705242,-0.470172,-0.530633) - Old Polarization: (-0.653696,-0.141518,-0.743407) - New Momentum Direction: (0.265199,-0.639434,-0.721661) - New Polarization: (-0.931153,0.0244085,-0.363811) - *** FresnelRefraction *** -Track (trackID 1123, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.896843,0.441756,-0.0229035) - Old Polarization: (-0.438213,0.8802,-0.182256) - New Momentum Direction: (0.801852,0.596721,-0.0309379) - New Polarization: (-0.594542,0.791615,-0.140947) - *** FresnelRefraction *** -Track (trackID 1122, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.754637,0.16503,0.635049) - Old Polarization: (-0.598043,0.571174,0.562232) - New Momentum Direction: (-0.754637,0.16503,0.635049) - New Polarization: (-0.311448,-0.941965,-0.125309) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.754637,0.16503,0.635049) - Old Polarization: (-0.311448,-0.941965,-0.125309) - New Momentum Direction: (-0.754637,0.16503,-0.635049) - New Polarization: (0.311448,0.941965,-0.125309) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.754637,0.16503,-0.635049) - Old Polarization: (0.311448,0.941965,-0.125309) - New Momentum Direction: (-0.467639,0.22232,-0.855505) - New Polarization: (0.54311,0.835875,-0.0796574) - *** FresnelRefraction *** -Track (trackID 1121, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.813358,-0.0799808,-0.576239) - Old Polarization: (-0.533848,0.291036,-0.793917) - New Momentum Direction: (0.61153,-0.108777,-0.783708) - New Polarization: (-0.75681,0.208519,-0.619483) - *** FresnelRefraction *** -Track (trackID 1120, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.895068,0.444493,-0.0357655) - Old Polarization: (-0.442462,0.875263,-0.195301) - New Momentum Direction: (0.795931,0.603437,-0.0485546) - New Polarization: (-0.602908,0.782868,-0.153689) - *** FresnelRefraction *** -Track (trackID 1119, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1118, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1117, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.85312,0.0920393,-0.513532) - Old Polarization: (-0.489309,0.482658,-0.726373) - New Momentum Direction: (0.70561,0.125009,-0.697486) - New Polarization: (-0.685019,0.372158,-0.626296) - *** FresnelRefraction *** -Track (trackID 1116, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1115, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1114, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.810685,-0.0998297,-0.576909) - Old Polarization: (-0.53604,0.269753,-0.799934) - New Momentum Direction: (0.608302,-0.135333,-0.782083) - New Polarization: (-0.75803,0.193038,-0.622998) - *** FresnelRefraction *** -Track (trackID 1113, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.652401,-0.165308,0.739626) - Old Polarization: (-0.713055,0.196746,0.672937) - New Momentum Direction: (0.882907,-0.223715,0.412828) - New Polarization: (0.402755,-0.091147,-0.910758) - *** FresnelRefraction *** -Track (trackID 1112, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.547179,-0.833505,0.0765807) - Old Polarization: (-0.83092,-0.551938,-0.0702666) - New Momentum Direction: (0.740642,-0.663856,0.103657) - New Polarization: (0.652586,0.747464,0.124215) - *** FresnelRefraction *** -Track (trackID 1111, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.863866,0.435687,0.252811) - Old Polarization: (-0.476082,0.870153,0.1272) - New Momentum Direction: (0.731536,0.589715,0.342187) - New Polarization: (-0.661587,0.735279,0.147199) - *** FresnelRefraction *** -Track (trackID 1110, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1109, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.640995,-0.205806,0.739438) - Old Polarization: (-0.725662,0.15139,0.671189) - New Momentum Direction: (0.86827,-0.278778,0.410353) - New Polarization: (0.374054,-0.175452,-0.910659) - *** FresnelRefraction *** -Track (trackID 1108, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.886136,0.458472,0.0675736) - Old Polarization: (-0.453207,0.887787,-0.08024) - New Momentum Direction: (0.776329,0.62359,0.0919103) - New Polarization: (-0.622996,0.781274,-0.0385679) - *** FresnelRefraction *** -Track (trackID 1107, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.783604,0.263792,0.562475) - Old Polarization: (-0.566303,0.675595,0.472094) - New Momentum Direction: (0.538958,0.35766,0.762629) - New Polarization: (-0.803499,0.490027,0.338028) - *** FresnelRefraction *** -Track (trackID 1106, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.533095,-0.775963,0.337182) - Old Polarization: (-0.84602,-0.485298,0.220761) - New Momentum Direction: (0.722639,-0.518539,0.457068) - New Polarization: (0.112518,0.740666,0.662385) - *** FresnelRefraction *** -Track (trackID 1105, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1104, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.608466,-0.338725,0.71766) - Old Polarization: (-0.762146,0.00257751,0.6474) - New Momentum Direction: (0.823915,-0.458662,0.332857) - New Polarization: (0.157993,-0.378157,-0.91216) - *** FresnelRefraction *** -Track (trackID 1103, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.865399,0.442225,0.23563) - Old Polarization: (-0.475356,0.873276,0.106895) - New Momentum Direction: (0.733183,0.600153,0.319778) - New Polarization: (-0.661312,0.738823,0.12964) - *** FresnelRefraction *** -Track (trackID 1102, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1101, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.737402,-0.371911,-0.563845) -Old Polarization: (-0.61786,-0.0341034,-0.785548) -New Polarization: (-0.308225,0.691585,-0.653228) -Polarization Change: (-0.308225,0.691585,-0.653228) -New Momentum Direction: (-0.556819,-0.687901,-0.465559) -Momentum Change: (-0.556819,-0.687901,-0.465559) - -** Photon absorbed! ** -Track (trackID 1100, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.684706,-0.0451211,0.727421) - Old Polarization: (-0.676759,0.331085,0.657556) - New Momentum Direction: (0.927588,-0.0611266,0.368571) - New Polarization: (0.37353,0.171457,-0.911635) - *** FresnelRefraction *** -Track (trackID 1099, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.534535,-0.793717,0.29032) - Old Polarization: (-0.845047,-0.507226,0.169168) - New Momentum Direction: (0.72359,-0.567422,0.393001) - New Polarization: (0.250807,0.746605,0.61618) - *** FresnelRefraction *** -Track (trackID 1098, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.588005,-0.445378,0.675195) - Old Polarization: (-0.786403,-0.119462,0.606052) - New Momentum Direction: (0.588005,-0.445378,-0.675195) - New Polarization: (-0.0248528,0.82441,-0.565448) - *** FresnelReflection *** - -** Photon absorbed! ** -Track (trackID 1097, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.721359,-0.420377,-0.550386) - Old Polarization: (-0.635811,-0.0869168,-0.766935) - New Momentum Direction: (0.338697,-0.571113,-0.747739) - New Polarization: (-0.904915,0.0199429,-0.425124) - *** FresnelRefraction *** -Track (trackID 1096, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1095, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1094, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.685605,-0.537699,-0.490739) - Old Polarization: (-0.675707,-0.219223,-0.703819) - New Momentum Direction: (0.161932,-0.728876,-0.66522) - New Polarization: (-0.958397,0.0444126,-0.281962) - *** FresnelRefraction *** -Track (trackID 1093, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.54984,-0.833902,0.0477906) -Old Polarization: (-0.82775,-0.551657,-0.102491) -New Polarization: (0.882729,0.468503,0.0359723) -Polarization Change: (0.882729,0.468503,0.0359723) -New Momentum Direction: (0.406603,-0.723241,-0.558209) -Momentum Change: (0.406603,-0.723241,-0.558209) - Photon at Boundary! - Old Momentum Direction: (0.406603,-0.723241,-0.558209) - Old Polarization: (0.882729,0.468503,0.0359723) - New Momentum Direction: (0.406603,0.723241,-0.558209) - New Polarization: (-0.908547,0.255893,-0.330244) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.406603,0.723241,-0.558209) - Old Polarization: (-0.908547,0.255893,-0.330244) - New Momentum Direction: (-0.406603,0.723241,-0.558209) - New Polarization: (-0.908547,-0.255893,0.330244) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.406603,0.723241,-0.558209) - Old Polarization: (-0.908547,-0.255893,0.330244) - New Momentum Direction: (-0.406603,0.723241,0.558209) - New Polarization: (0.908547,0.255893,0.330244) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.406603,0.723241,0.558209) -Old Polarization: (0.908547,0.255893,0.330244) -New Polarization: (0.979056,0.152782,0.134566) -Polarization Change: (0.979056,0.152782,0.134566) -New Momentum Direction: (0.19137,-0.465034,-0.864361) -Momentum Change: (0.19137,-0.465034,-0.864361) - Photon at Boundary! - Old Momentum Direction: (0.19137,-0.465034,-0.864361) - Old Polarization: (0.979056,0.152782,0.134566) - New Momentum Direction: (0.259148,-0.629735,-0.732309) - New Polarization: (0.963101,0.111454,0.244977) - *** FresnelRefraction *** -Track (trackID 1092, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.897447,0.43687,-0.0610997) - Old Polarization: (-0.438842,0.870135,-0.22424) - New Momentum Direction: (0.801809,0.59182,-0.0827707) - New Polarization: (-0.595947,0.781676,-0.18393) - *** FresnelRefraction *** -Track (trackID 1091, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.707415,-0.467977,-0.529681) - Old Polarization: (-0.651327,-0.140602,-0.745656) - New Momentum Direction: (0.282931,-0.635054,-0.718788) - New Polarization: (-0.925356,0.0164152,-0.378744) - *** FresnelRefraction *** -Track (trackID 1090, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.899743,0.347411,-0.264137) - Old Polarization: (-0.43389,0.777161,-0.455807) - New Momentum Direction: (0.808742,0.468206,-0.355978) - New Polarization: (-0.586338,0.689456,-0.425274) - *** FresnelRefraction *** -Track (trackID 1089, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.89273,0.450114,0.0207372) -Old Polarization: (-0.443759,0.886247,-0.132833) -New Polarization: (0.417116,-0.878493,0.232946) -Polarization Change: (0.417116,-0.878493,0.232946) -New Momentum Direction: (-0.278498,0.120431,0.952856) -Momentum Change: (-0.278498,0.120431,0.952856) - Photon at Boundary! - Old Momentum Direction: (-0.278498,0.120431,0.952856) - Old Polarization: (0.417116,-0.878493,0.232946) - New Momentum Direction: (-0.376973,0.163014,0.911766) - New Polarization: (-0.920954,-0.170834,-0.350228) - *** FresnelRefraction *** -Track (trackID 1088, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 99 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 100 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1332, parentID 1) is processed with stopping code 2 -### pop requested out of 99 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.755189,-0.0888758,-0.649454) - Old Polarization: (-0.537691,0.482709,-0.691289) - New Momentum Direction: (0.455497,-0.120701,-0.882017) - New Polarization: (-0.803743,0.370245,-0.465742) - *** FresnelRefraction *** -Track (trackID 1331, parentID 1) is processed with stopping code 2 -### pop requested out of 98 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.523441,-0.716524,0.461089) -Old Polarization: (-0.798884,-0.224524,0.558009) -New Polarization: (-0.283961,-0.613913,0.73653) -Polarization Change: (-0.283961,-0.613913,0.73653) -New Momentum Direction: (-0.916807,0.398774,-0.0210788) -Momentum Change: (-0.916807,0.398774,-0.0210788) - Photon at Boundary! - Old Momentum Direction: (-0.916807,0.398774,-0.0210788) - Old Polarization: (-0.283961,-0.613913,0.73653) - New Momentum Direction: (-0.84119,0.539986,-0.0285431) - New Polarization: (0.438663,0.71231,0.547895) - *** FresnelRefraction *** -Track (trackID 1330, parentID 1) is processed with stopping code 2 -### pop requested out of 97 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.46478,-0.800572,-0.378238) - Old Polarization: (-0.864585,-0.318209,-0.38889) - New Momentum Direction: (0.629954,-0.583388,-0.512656) - New Polarization: (-0.170428,0.540169,-0.824119) - *** FresnelRefraction *** -Track (trackID 1329, parentID 1) is processed with stopping code 2 -### pop requested out of 96 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.518194,-0.674194,-0.526249) - Old Polarization: (-0.806732,-0.180983,-0.562521) - New Momentum Direction: (0.518194,0.674194,-0.526249) - New Polarization: (0.597949,0.154346,0.786533) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.518194,0.674194,-0.526249) - Old Polarization: (0.597949,0.154346,0.786533) - New Momentum Direction: (0.518194,0.674194,0.526249) - New Polarization: (-0.597949,-0.154346,0.786533) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.518194,0.674194,0.526249) - Old Polarization: (-0.597949,-0.154346,0.786533) - New Momentum Direction: (-0.518194,0.674194,0.526249) - New Polarization: (-0.597949,0.154346,-0.786533) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1328, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.820453,-0.00814879,0.571656) - Old Polarization: (-0.465108,0.571947,0.675686) - New Momentum Direction: (0.628411,-0.0110874,0.777803) - New Polarization: (-0.694503,0.442385,0.567416) - *** FresnelRefraction *** -Track (trackID 1327, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.451355,-0.863949,0.223318) - Old Polarization: (-0.877538,-0.384341,0.28672) - New Momentum Direction: (0.613979,-0.728524,0.30378) - New Polarization: (0.32839,0.585738,0.740994) - *** FresnelRefraction *** -Track (trackID 1326, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1325, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.945209,0.324409,-0.0365811) -Old Polarization: (-0.324756,0.94579,-0.00380505) -New Polarization: (0.167361,-0.827602,-0.535785) -Polarization Change: (0.167361,-0.827602,-0.535785) -New Momentum Direction: (-0.33626,0.462946,-0.820128) -Momentum Change: (-0.33626,0.462946,-0.820128) - Photon at Boundary! - Old Momentum Direction: (-0.33626,0.462946,-0.820128) - Old Polarization: (0.167361,-0.827602,-0.535785) - New Momentum Direction: (-0.45682,0.628928,-0.629098) - New Polarization: (-0.564658,0.341447,0.751382) - *** FresnelRefraction *** -Track (trackID 1324, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.767703,-0.148218,0.623428) - Old Polarization: (-0.522847,0.417602,0.743129) - New Momentum Direction: (0.498695,-0.200485,0.843273) - New Polarization: (-0.777885,0.325646,0.537448) - *** FresnelRefraction *** -Track (trackID 1323, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.945602,0.323335,-0.0359451) - Old Polarization: (-0.323649,0.946172,-0.00313745) - New Momentum Direction: (0.897254,0.438812,-0.0487828) - New Polarization: (-0.440295,0.897505,-0.0249984) - *** FresnelRefraction *** -Track (trackID 1322, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.893755,0.174133,0.413376) - Old Polarization: (-0.382653,0.776849,0.500083) - New Momentum Direction: (0.79268,0.236667,0.561825) - New Polarization: (-0.557619,0.653962,0.511268) - *** FresnelRefraction *** -Track (trackID 1321, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.475592,-0.764874,-0.434488) -Old Polarization: (-0.850612,-0.27398,-0.448769) -New Polarization: (0.9941,-0.104189,0.0301681) -Polarization Change: (0.9941,-0.104189,0.0301681) -New Momentum Direction: (0.0447602,0.647377,0.760854) -Momentum Change: (0.0447602,0.647377,0.760854) - Photon at Boundary! - Old Momentum Direction: (0.0447602,0.647377,0.760854) - Old Polarization: (0.9941,-0.104189,0.0301681) - New Momentum Direction: (0.0608688,0.88036,0.470384) - New Polarization: (0.997521,-0.0369747,-0.0598804) - *** FresnelRefraction *** -Track (trackID 1320, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.834513,0.0746039,-0.545914) - Old Polarization: (-0.445157,0.675147,-0.588227) - New Momentum Direction: (0.671322,0.100354,-0.734341) - New Polarization: (-0.656173,0.541164,-0.525908) - *** FresnelRefraction *** -Track (trackID 1319, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.582475,-0.574862,0.574679) -Old Polarization: (-0.731029,-0.0613421,0.679584) -New Polarization: (-0.105267,0.00714667,-0.994418) -Polarization Change: (-0.105267,0.00714667,-0.994418) -New Momentum Direction: (-0.991968,-0.0712758,0.104496) -Momentum Change: (-0.991968,-0.0712758,0.104496) - Photon at Boundary! - Old Momentum Direction: (-0.991968,-0.0712758,0.104496) - Old Polarization: (-0.105267,0.00714667,-0.994418) - New Momentum Direction: (-0.985089,-0.0969449,0.142129) - New Polarization: (0.154536,-0.861689,0.483332) - *** FresnelRefraction *** -Track (trackID 1318, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.432924,-0.898955,-0.0667574) - Old Polarization: (-0.901414,-0.431279,-0.0380898) - New Momentum Direction: (0.585947,-0.805297,-0.0903537) - New Polarization: (0.769804,0.587986,-0.248344) - *** FresnelRefraction *** -Track (trackID 1317, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1316, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.618156,-0.418523,-0.665373) - Old Polarization: (-0.691855,0.112115,-0.713279) - New Momentum Direction: (0.618156,-0.418523,0.665373) - New Polarization: (0.691855,-0.112115,-0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.618156,-0.418523,0.665373) - Old Polarization: (0.691855,-0.112115,-0.713279) - New Momentum Direction: (-0.618156,-0.418523,0.665373) - New Polarization: (0.691855,0.112115,0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618156,-0.418523,0.665373) - Old Polarization: (0.691855,0.112115,0.713279) - New Momentum Direction: (-0.618156,0.418523,0.665373) - New Polarization: (-0.691855,0.112115,-0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618156,0.418523,0.665373) - Old Polarization: (-0.691855,0.112115,-0.713279) - New Momentum Direction: (-0.618156,0.418523,-0.665373) - New Polarization: (0.691855,-0.112115,-0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618156,0.418523,-0.665373) - Old Polarization: (0.691855,-0.112115,-0.713279) - New Momentum Direction: (0.618156,0.418523,-0.665373) - New Polarization: (0.691855,0.112115,0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.618156,0.418523,-0.665373) - Old Polarization: (0.691855,0.112115,0.713279) - New Momentum Direction: (0.618156,-0.418523,-0.665373) - New Polarization: (-0.691855,0.112115,-0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.618156,-0.418523,-0.665373) - Old Polarization: (-0.691855,0.112115,-0.713279) - New Momentum Direction: (0.618156,-0.418523,0.665373) - New Polarization: (0.691855,-0.112115,-0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.618156,-0.418523,0.665373) - Old Polarization: (0.691855,-0.112115,-0.713279) - New Momentum Direction: (-0.618156,-0.418523,0.665373) - New Polarization: (0.691855,0.112115,0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618156,-0.418523,0.665373) - Old Polarization: (0.691855,0.112115,0.713279) - New Momentum Direction: (-0.618156,-0.418523,-0.665373) - New Polarization: (-0.691855,-0.112115,0.713279) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618156,-0.418523,-0.665373) - Old Polarization: (-0.691855,-0.112115,0.713279) - New Momentum Direction: (0.618156,-0.418523,-0.665373) - New Polarization: (-0.691855,0.112115,-0.713279) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1315, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1314, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.655101,-0.339051,-0.675194) - Old Polarization: (-0.650612,0.201185,-0.732276) - New Momentum Direction: (0.883341,-0.457177,-0.103432) - New Polarization: (0.0584933,-0.111424,0.99205) - *** FresnelRefraction *** -Track (trackID 1313, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.439645,-0.892415,0.101522) - Old Polarization: (-0.893379,-0.422836,0.151929) - New Momentum Direction: (0.439645,0.892415,0.101522) - New Polarization: (0.808373,-0.34389,-0.477779) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.439645,0.892415,0.101522) - Old Polarization: (0.808373,-0.34389,-0.477779) - New Momentum Direction: (-0.439645,0.892415,0.101522) - New Polarization: (0.808373,0.34389,0.477779) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.439645,0.892415,0.101522) - Old Polarization: (0.808373,0.34389,0.477779) - New Momentum Direction: (-0.439645,-0.892415,0.101522) - New Polarization: (-0.598769,0.206962,-0.77372) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.439645,-0.892415,0.101522) - Old Polarization: (-0.598769,0.206962,-0.77372) - New Momentum Direction: (-0.595447,-0.79154,0.1375) - New Polarization: (-0.630554,0.354393,-0.690513) - *** FresnelRefraction *** -Track (trackID 1312, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.46415,-0.853177,0.238019) - Old Polarization: (-0.868868,-0.38633,0.309542) - New Momentum Direction: (0.625299,-0.711463,0.320657) - New Polarization: (0.279258,0.587686,0.759368) - *** FresnelRefraction *** -Track (trackID 1311, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.727796,-0.169464,-0.664526) - Old Polarization: (-0.567608,0.394968,-0.722372) - New Momentum Direction: (0.383601,-0.228203,-0.894859) - New Polarization: (-0.839152,0.318443,-0.440929) - *** FresnelRefraction *** -Track (trackID 1310, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.813506,-0.0430717,0.579959) - Old Polarization: (-0.469928,0.538806,0.699182) - New Momentum Direction: (0.620781,-0.058064,0.781831) - New Polarization: (-0.695654,0.419067,0.583479) - *** FresnelRefraction *** -Track (trackID 1309, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.60921,-0.440458,-0.659439) - Old Polarization: (-0.701977,0.0873135,-0.706827) - New Momentum Direction: (0.60921,-0.440458,0.659439) - New Polarization: (0.701977,-0.0873135,-0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60921,-0.440458,0.659439) - Old Polarization: (0.701977,-0.0873135,-0.706827) - New Momentum Direction: (-0.60921,-0.440458,0.659439) - New Polarization: (0.701977,0.0873135,0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60921,-0.440458,0.659439) - Old Polarization: (0.701977,0.0873135,0.706827) - New Momentum Direction: (-0.60921,0.440458,0.659439) - New Polarization: (-0.701977,0.0873135,-0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60921,0.440458,0.659439) - Old Polarization: (-0.701977,0.0873135,-0.706827) - New Momentum Direction: (-0.60921,0.440458,-0.659439) - New Polarization: (0.701977,-0.0873135,-0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60921,0.440458,-0.659439) - Old Polarization: (0.701977,-0.0873135,-0.706827) - New Momentum Direction: (0.60921,0.440458,-0.659439) - New Polarization: (0.701977,0.0873135,0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60921,0.440458,-0.659439) - Old Polarization: (0.701977,0.0873135,0.706827) - New Momentum Direction: (0.60921,-0.440458,-0.659439) - New Polarization: (-0.701977,0.0873135,-0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60921,-0.440458,-0.659439) - Old Polarization: (-0.701977,0.0873135,-0.706827) - New Momentum Direction: (0.60921,-0.440458,0.659439) - New Polarization: (0.701977,-0.0873135,-0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.60921,-0.440458,0.659439) - Old Polarization: (0.701977,-0.0873135,-0.706827) - New Momentum Direction: (-0.60921,-0.440458,0.659439) - New Polarization: (0.701977,0.0873135,0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60921,-0.440458,0.659439) - Old Polarization: (0.701977,0.0873135,0.706827) - New Momentum Direction: (-0.60921,-0.440458,-0.659439) - New Polarization: (-0.701977,-0.0873135,0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60921,-0.440458,-0.659439) - Old Polarization: (-0.701977,-0.0873135,0.706827) - New Momentum Direction: (-0.60921,0.440458,-0.659439) - New Polarization: (0.701977,-0.0873135,-0.706827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.60921,0.440458,-0.659439) - Old Polarization: (0.701977,-0.0873135,-0.706827) - New Momentum Direction: (0.60921,0.440458,-0.659439) - New Polarization: (0.701977,0.0873135,0.706827) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1308, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1307, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1306, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.61892,-0.428799,-0.65808) - Old Polarization: (-0.692129,0.0983683,-0.715039) - New Momentum Direction: (0.61892,-0.428799,0.65808) - New Polarization: (0.692129,-0.0983683,-0.715039) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61892,-0.428799,0.65808) - Old Polarization: (0.692129,-0.0983683,-0.715039) - New Momentum Direction: (-0.61892,-0.428799,0.65808) - New Polarization: (0.692129,0.0983683,0.715039) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61892,-0.428799,0.65808) - Old Polarization: (0.692129,0.0983683,0.715039) - New Momentum Direction: (-0.61892,0.428799,0.65808) - New Polarization: (-0.692129,0.0983683,-0.715039) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61892,0.428799,0.65808) - Old Polarization: (-0.692129,0.0983683,-0.715039) - New Momentum Direction: (-0.61892,0.428799,-0.65808) - New Polarization: (0.692129,-0.0983683,-0.715039) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61892,0.428799,-0.65808) - Old Polarization: (0.692129,-0.0983683,-0.715039) - New Momentum Direction: (0.61892,0.428799,-0.65808) - New Polarization: (0.692129,0.0983683,0.715039) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61892,0.428799,-0.65808) - Old Polarization: (0.692129,0.0983683,0.715039) - New Momentum Direction: (0.61892,-0.428799,-0.65808) - New Polarization: (-0.692129,0.0983683,-0.715039) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61892,-0.428799,-0.65808) - Old Polarization: (-0.692129,0.0983683,-0.715039) - New Momentum Direction: (0.61892,-0.428799,0.65808) - New Polarization: (0.692129,-0.0983683,-0.715039) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61892,-0.428799,0.65808) - Old Polarization: (0.692129,-0.0983683,-0.715039) - New Momentum Direction: (-0.61892,-0.428799,0.65808) - New Polarization: (0.692129,0.0983683,0.715039) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1305, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1304, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.697754,-0.234968,-0.676705) - Old Polarization: (-0.602,0.319661,-0.731719) - New Momentum Direction: (0.254044,-0.317252,-0.913681) - New Polarization: (-0.893129,0.2856,-0.347496) - *** FresnelRefraction *** -Track (trackID 1303, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.881868,0.144839,0.448698) - Old Polarization: (-0.396276,0.743348,0.538887) - New Momentum Direction: (0.767354,0.196978,0.610219) - New Polarization: (-0.58163,0.614456,0.533058) - *** FresnelRefraction *** -Track (trackID 1302, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.571028,-0.526525,-0.62984) - Old Polarization: (-0.74404,-0.00774439,-0.668091) - New Momentum Direction: (0.571028,-0.526525,0.62984) - New Polarization: (0.74404,0.00774439,-0.668091) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.571028,-0.526525,0.62984) - Old Polarization: (0.74404,0.00774439,-0.668091) - New Momentum Direction: (-0.571028,-0.526525,0.62984) - New Polarization: (0.74404,-0.00774439,0.668091) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.571028,-0.526525,0.62984) - Old Polarization: (0.74404,-0.00774439,0.668091) - New Momentum Direction: (-0.571028,0.526525,0.62984) - New Polarization: (-0.74404,-0.00774439,-0.668091) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.571028,0.526525,0.62984) -Old Polarization: (-0.74404,-0.00774439,-0.668091) -New Polarization: (0.400241,0.267835,0.876397) -Polarization Change: (0.400241,0.267835,0.876397) -New Momentum Direction: (0.838252,-0.493459,-0.232015) -Momentum Change: (0.838252,-0.493459,-0.232015) - Photon at Boundary! - Old Momentum Direction: (0.838252,-0.493459,-0.232015) - Old Polarization: (0.400241,0.267835,0.876397) - New Momentum Direction: (0.671377,-0.670681,-0.315341) - New Polarization: (-0.619046,-0.741438,0.258945) - *** FresnelRefraction *** -Track (trackID 1301, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.819218,0.060292,-0.570303) - Old Polarization: (-0.466212,0.649124,-0.60107) - New Momentum Direction: (0.626226,0.0819662,-0.775321) - New Polarization: (-0.695684,0.507663,-0.508234) - *** FresnelRefraction *** -Track (trackID 1300, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1299, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.682553,-0.345747,0.643879) - Old Polarization: (-0.61918,0.194459,0.76079) - New Momentum Direction: (-0.682553,-0.345747,0.643879) - New Polarization: (-0.570934,-0.297738,-0.765105) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.682553,-0.345747,0.643879) - Old Polarization: (-0.570934,-0.297738,-0.765105) - New Momentum Direction: (-0.682553,-0.345747,-0.643879) - New Polarization: (0.570934,0.297738,-0.765105) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.682553,-0.345747,-0.643879) - Old Polarization: (0.570934,0.297738,-0.765105) - New Momentum Direction: (-0.682553,0.345747,-0.643879) - New Polarization: (-0.570934,0.297738,0.765105) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.682553,0.345747,-0.643879) - Old Polarization: (-0.570934,0.297738,0.765105) - New Momentum Direction: (0.682553,0.345747,-0.643879) - New Polarization: (0.512045,-0.854865,0.0837596) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.682553,0.345747,-0.643879) - Old Polarization: (0.512045,-0.854865,0.0837596) - New Momentum Direction: (0.682553,0.345747,0.643879) - New Polarization: (-0.512045,0.854865,0.0837596) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.682553,0.345747,0.643879) -Old Polarization: (-0.512045,0.854865,0.0837596) -New Polarization: (0.150788,0.923405,0.352968) -Polarization Change: (0.150788,0.923405,0.352968) -New Momentum Direction: (0.930226,-0.253379,0.265476) -Momentum Change: (0.930226,-0.253379,0.265476) - -** Photon absorbed! ** -Track (trackID 1298, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.436585,-0.893719,0.103247) -Old Polarization: (-0.894808,-0.419453,0.152898) -New Polarization: (-0.947179,-0.119135,-0.297756) -Polarization Change: (-0.947179,-0.119135,-0.297756) -New Momentum Direction: (0.16774,0.607287,-0.776573) -Momentum Change: (0.16774,0.607287,-0.776573) -Scattering Photon! -Old Momentum Direction: (0.16774,0.607287,-0.776573) -Old Polarization: (-0.947179,-0.119135,-0.297756) -New Polarization: (0.688305,-0.0133073,0.725299) -Polarization Change: (0.688305,-0.0133073,0.725299) -New Momentum Direction: (0.702496,0.261599,-0.661865) -Momentum Change: (0.702496,0.261599,-0.661865) - Photon at Boundary! - Old Momentum Direction: (0.702496,0.261599,-0.661865) - Old Polarization: (0.688305,-0.0133073,0.725299) - New Momentum Direction: (-0.702496,0.261599,-0.661865) - New Polarization: (-0.649521,-0.615795,0.446003) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.702496,0.261599,-0.661865) - Old Polarization: (-0.649521,-0.615795,0.446003) - New Momentum Direction: (-0.702496,0.261599,0.661865) - New Polarization: (0.649521,0.615795,0.446003) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.702496,0.261599,0.661865) - Old Polarization: (0.649521,0.615795,0.446003) - New Momentum Direction: (-0.702496,-0.261599,0.661865) - New Polarization: (-0.649521,0.615795,-0.446003) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.702496,-0.261599,0.661865) - Old Polarization: (-0.649521,0.615795,-0.446003) - New Momentum Direction: (0.702496,-0.261599,0.661865) - New Polarization: (0.565779,-0.358885,-0.742358) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.702496,-0.261599,0.661865) - Old Polarization: (0.565779,-0.358885,-0.742358) - New Momentum Direction: (0.702496,-0.261599,-0.661865) - New Polarization: (-0.565779,0.358885,-0.742358) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.702496,-0.261599,-0.661865) - Old Polarization: (-0.565779,0.358885,-0.742358) - New Momentum Direction: (0.254991,-0.355425,-0.899251) - New Polarization: (-0.869297,0.322996,-0.37416) - *** FresnelRefraction *** -Track (trackID 1297, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.945175,0.309063,0.105473) - Old Polarization: (-0.322697,0.933485,0.156435) - New Momentum Direction: (0.896903,0.418528,0.142829) - New Polarization: (-0.439394,0.879903,0.180842) - *** FresnelRefraction *** -Track (trackID 1296, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.697563,-0.23741,-0.676049) - Old Polarization: (-0.602203,0.317027,-0.732698) - New Momentum Direction: (0.256767,-0.320227,-0.91188) - New Polarization: (-0.892138,0.284337,-0.351059) - *** FresnelRefraction *** -Track (trackID 1295, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.864094,0.143465,-0.482452) -Old Polarization: (-0.41184,0.752568,-0.513837) -New Polarization: (0.124129,-0.888482,-0.441805) -Polarization Change: (0.124129,-0.888482,-0.441805) -New Momentum Direction: (0.402996,-0.361733,0.84068) -Momentum Change: (0.402996,-0.361733,0.84068) - -** Photon absorbed! ** -Track (trackID 1294, parentID 1) is processed with stopping code 2 -### pop requested out of 61 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.523535,-0.641604,-0.560584) - Old Polarization: (-0.796735,-0.135557,-0.58893) - New Momentum Direction: (0.523535,0.641604,-0.560584) - New Polarization: (0.796735,-0.135557,0.58893) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.523535,0.641604,-0.560584) - Old Polarization: (0.796735,-0.135557,0.58893) - New Momentum Direction: (0.523535,0.641604,0.560584) - New Polarization: (-0.796735,0.135557,0.58893) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.523535,0.641604,0.560584) - Old Polarization: (-0.796735,0.135557,0.58893) - New Momentum Direction: (-0.523535,0.641604,0.560584) - New Polarization: (-0.796735,-0.135557,-0.58893) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.523535,0.641604,0.560584) -Old Polarization: (-0.796735,-0.135557,-0.58893) -New Polarization: (-0.436215,-0.512919,-0.739345) -Polarization Change: (-0.436215,-0.512919,-0.739345) -New Momentum Direction: (-0.812778,0.577176,0.0791253) -Momentum Change: (-0.812778,0.577176,0.0791253) - Photon at Boundary! - Old Momentum Direction: (-0.812778,0.577176,0.0791253) - Old Polarization: (-0.436215,-0.512919,-0.739345) - New Momentum Direction: (-0.609564,0.785391,0.10767) - New Polarization: (0.672922,0.584436,-0.453443) - *** FresnelRefraction *** -Track (trackID 1293, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.938734,0.290863,0.184872) - Old Polarization: (-0.330694,0.911249,0.245492) - New Momentum Direction: (0.884131,0.394329,0.250635) - New Polarization: (-0.456844,0.842088,0.286673) - *** FresnelRefraction *** -Track (trackID 1292, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.707649,-0.282864,0.647472) - Old Polarization: (-0.591069,0.265093,0.761816) - New Momentum Direction: (0.278163,-0.384538,0.880202) - New Polarization: (-0.88502,0.253547,0.390453) - *** FresnelRefraction *** -Track (trackID 1291, parentID 1) is processed with stopping code 2 -### pop requested out of 58 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.858708,0.150553,-0.489852) - Old Polarization: (-0.422357,0.74927,-0.510106) - New Momentum Direction: (0.71684,0.204836,-0.66647) - New Polarization: (-0.625775,0.610553,-0.485419) - *** FresnelRefraction *** -Track (trackID 1290, parentID 1) is processed with stopping code 2 -### pop requested out of 57 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.865047,0.0832112,0.494742) - Old Polarization: (-0.410732,0.683739,0.603158) - New Momentum Direction: (0.737157,0.112076,0.666363) - New Polarization: (-0.602297,0.556041,0.572763) - *** FresnelRefraction *** -Track (trackID 1289, parentID 1) is processed with stopping code 2 -### pop requested out of 56 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.482741,-0.805868,0.342838) - Old Polarization: (-0.844877,-0.325497,0.424541) - New Momentum Direction: (0.653645,-0.597709,0.464212) - New Polarization: (-0.0914304,0.546526,0.832436) - *** FresnelRefraction *** -Track (trackID 1288, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.432544,-0.895766,-0.102513) - Old Polarization: (-0.901225,-0.426218,-0.0783075) - New Momentum Direction: (0.585981,-0.798335,-0.138878) - New Polarization: (0.711022,0.58877,-0.384443) - *** FresnelRefraction *** -Track (trackID 1287, parentID 1) is processed with stopping code 2 -### pop requested out of 54 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.468085,-0.785592,-0.404651) - Old Polarization: (-0.859284,-0.297775,-0.415886) - New Momentum Direction: (0.636225,-0.541028,-0.550005) - New Polarization: (-0.259753,0.521064,-0.813032) - *** FresnelRefraction *** -Track (trackID 1286, parentID 1) is processed with stopping code 2 -### pop requested out of 53 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1285, parentID 1) is processed with stopping code 2 -### pop requested out of 52 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1284, parentID 1) is processed with stopping code 2 -### pop requested out of 51 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.439448,-0.87019,-0.222834) - Old Polarization: (-0.892949,-0.396235,-0.213634) - New Momentum Direction: (0.595788,-0.744155,-0.30211) - New Polarization: (0.373281,0.589634,-0.716236) - *** FresnelRefraction *** -Track (trackID 1283, parentID 1) is processed with stopping code 2 -### pop requested out of 50 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.692443,-0.317783,0.647717) -Old Polarization: (-0.608097,0.226059,0.760996) -New Polarization: (0.555934,-0.534577,-0.636526) -Polarization Change: (0.555934,-0.534577,-0.636526) -New Momentum Direction: (-0.252106,-0.838134,0.483708) -Momentum Change: (-0.252106,-0.838134,0.483708) - -** Photon absorbed! ** -Track (trackID 1282, parentID 1) is processed with stopping code 2 -### pop requested out of 49 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.427883,-0.900756,-0.0745238) - Old Polarization: (-0.90378,-0.425501,-0.0461529) - New Momentum Direction: (0.582042,-0.806815,-0.101373) - New Polarization: (0.76117,0.58444,-0.28116) - *** FresnelRefraction *** -Track (trackID 1281, parentID 1) is processed with stopping code 2 -### pop requested out of 48 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.529081,-0.705601,0.471382) - Old Polarization: (-0.792908,-0.213202,0.570826) - New Momentum Direction: (0.71576,-0.284649,0.637702) - New Polarization: (-0.50582,0.418284,0.754443) - *** FresnelRefraction *** -Track (trackID 1280, parentID 1) is processed with stopping code 2 -### pop requested out of 47 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.435753,-0.90006,0.00340618) - Old Polarization: (-0.899358,-0.435256,0.0413237) - New Momentum Direction: (0.588755,-0.808298,0.00460217) - New Polarization: (0.807496,0.588408,0.0415496) - *** FresnelRefraction *** -Track (trackID 1279, parentID 1) is processed with stopping code 2 -### pop requested out of 46 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.82175,-0.0292637,0.569097) - Old Polarization: (-0.459397,0.556879,0.691983) - New Momentum Direction: (0.643267,-0.0393184,0.764631) - New Polarization: (-0.677317,0.436438,0.592254) - *** FresnelRefraction *** -Track (trackID 1278, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.799334,-0.0821981,0.595238) - Old Polarization: (-0.485457,0.495439,0.720327) - New Momentum Direction: (0.588923,-0.110556,0.800592) - New Polarization: (-0.717426,0.384589,0.580854) - *** FresnelRefraction *** -Track (trackID 1277, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.933866,0.283066,0.218558) - Old Polarization: (-0.338095,0.898001,0.281578) - New Momentum Direction: (0.873775,0.384941,0.297217) - New Polarization: (-0.471703,0.819569,0.325274) - *** FresnelRefraction *** -Track (trackID 1276, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.537722,-0.617385,-0.574187) - Old Polarization: (-0.782954,-0.113,-0.611731) - New Momentum Direction: (0.537722,0.617385,-0.574187) - New Polarization: (0.782954,-0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.537722,0.617385,-0.574187) - Old Polarization: (0.782954,-0.113,0.611731) - New Momentum Direction: (0.537722,0.617385,0.574187) - New Polarization: (-0.782954,0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.537722,0.617385,0.574187) - Old Polarization: (-0.782954,0.113,0.611731) - New Momentum Direction: (-0.537722,0.617385,0.574187) - New Polarization: (-0.782954,-0.113,-0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.537722,0.617385,0.574187) - Old Polarization: (-0.782954,-0.113,-0.611731) - New Momentum Direction: (-0.537722,-0.617385,0.574187) - New Polarization: (0.782954,-0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.537722,-0.617385,0.574187) - Old Polarization: (0.782954,-0.113,0.611731) - New Momentum Direction: (-0.537722,-0.617385,-0.574187) - New Polarization: (-0.782954,0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.537722,-0.617385,-0.574187) - Old Polarization: (-0.782954,0.113,0.611731) - New Momentum Direction: (0.537722,-0.617385,-0.574187) - New Polarization: (-0.782954,-0.113,-0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.537722,-0.617385,-0.574187) - Old Polarization: (-0.782954,-0.113,-0.611731) - New Momentum Direction: (0.537722,0.617385,-0.574187) - New Polarization: (0.782954,-0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.537722,0.617385,-0.574187) - Old Polarization: (0.782954,-0.113,0.611731) - New Momentum Direction: (0.537722,0.617385,0.574187) - New Polarization: (-0.782954,0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.537722,0.617385,0.574187) - Old Polarization: (-0.782954,0.113,0.611731) - New Momentum Direction: (-0.537722,0.617385,0.574187) - New Polarization: (-0.782954,-0.113,-0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.537722,0.617385,0.574187) - Old Polarization: (-0.782954,-0.113,-0.611731) - New Momentum Direction: (-0.537722,-0.617385,0.574187) - New Polarization: (0.782954,-0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.537722,-0.617385,0.574187) - Old Polarization: (0.782954,-0.113,0.611731) - New Momentum Direction: (-0.537722,-0.617385,-0.574187) - New Polarization: (-0.782954,0.113,0.611731) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.537722,-0.617385,-0.574187) - Old Polarization: (-0.782954,0.113,0.611731) - New Momentum Direction: (0.537722,-0.617385,-0.574187) - New Polarization: (-0.782954,-0.113,-0.611731) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1275, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.44995,-0.869149,0.205243) - Old Polarization: (-0.880047,-0.392446,0.267403) - New Momentum Direction: (0.61111,-0.740837,0.278756) - New Polarization: (0.39001,0.588267,0.708403) - *** FresnelRefraction *** -Track (trackID 1274, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.719669,-0.182531,-0.669895) - Old Polarization: (-0.577118,0.379156,-0.723309) - New Momentum Direction: (-0.719669,-0.182531,-0.669895) - New Polarization: (-0.384882,-0.698143,0.603707) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.719669,-0.182531,-0.669895) - Old Polarization: (-0.384882,-0.698143,0.603707) - New Momentum Direction: (-0.719669,-0.182531,0.669895) - New Polarization: (0.384882,0.698143,0.603707) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.719669,-0.182531,0.669895) - Old Polarization: (0.384882,0.698143,0.603707) - New Momentum Direction: (-0.347091,-0.246549,0.904843) - New Polarization: (0.662659,0.618261,0.422653) - *** FresnelRefraction *** -Track (trackID 1273, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.499804,-0.704252,-0.504207) -Old Polarization: (-0.823879,-0.206945,-0.527634) -New Polarization: (0.315963,0.688228,0.653077) -Polarization Change: (0.315963,0.688228,0.653077) -New Momentum Direction: (-0.884558,0.462612,-0.0595567) -Momentum Change: (-0.884558,0.462612,-0.0595567) - Photon at Boundary! - Old Momentum Direction: (-0.884558,0.462612,-0.0595567) - Old Polarization: (0.315963,0.688228,0.653077) - New Momentum Direction: (-0.773472,0.628642,-0.0809314) - New Polarization: (0.499053,0.682733,0.533687) - *** FresnelRefraction *** -Track (trackID 1272, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.548997,-0.664528,0.506957) - Old Polarization: (-0.771135,-0.16873,0.613907) - New Momentum Direction: (0.548997,0.664528,0.506957) - New Polarization: (0.771135,-0.16873,-0.613907) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.548997,0.664528,0.506957) - Old Polarization: (0.771135,-0.16873,-0.613907) - New Momentum Direction: (-0.548997,0.664528,0.506957) - New Polarization: (0.771135,0.16873,0.613907) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.548997,0.664528,0.506957) - Old Polarization: (0.771135,0.16873,0.613907) - New Momentum Direction: (-0.548997,0.664528,-0.506957) - New Polarization: (-0.771135,-0.16873,0.613907) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.548997,0.664528,-0.506957) - Old Polarization: (-0.771135,-0.16873,0.613907) - New Momentum Direction: (-0.548997,0.664528,0.506957) - New Polarization: (0.771135,0.16873,0.613907) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.548997,0.664528,0.506957) - Old Polarization: (0.771135,0.16873,0.613907) - New Momentum Direction: (-0.548997,-0.664528,0.506957) - New Polarization: (-0.771135,0.16873,-0.613907) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1271, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.848229,0.123677,-0.514987) -Old Polarization: (-0.433311,0.721175,-0.540507) -New Polarization: (0.565525,-0.822814,0.0562029) -Polarization Change: (0.565525,-0.822814,0.0562029) -New Momentum Direction: (0.117197,0.0127204,-0.993027) -Momentum Change: (0.117197,0.0127204,-0.993027) - -** Photon absorbed! ** -Track (trackID 1270, parentID 1) is processed with stopping code 2 -### pop requested out of 37 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.612674,-0.429518,-0.663434) - Old Polarization: (-0.69782,0.100112,-0.709243) - New Momentum Direction: (0.612674,-0.429518,0.663434) - New Polarization: (0.69782,-0.100112,-0.709243) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.612674,-0.429518,0.663434) - Old Polarization: (0.69782,-0.100112,-0.709243) - New Momentum Direction: (-0.612674,-0.429518,0.663434) - New Polarization: (0.69782,0.100112,0.709243) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1269, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1268, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.764742,-0.163121,0.623346) - Old Polarization: (-0.525429,0.402086,0.749834) - New Momentum Direction: (0.496526,-0.21975,0.839745) - New Polarization: (-0.778007,0.316339,0.542803) - *** FresnelRefraction *** -Track (trackID 1267, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1266, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1265, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.571917,-0.526186,-0.629317) - Old Polarization: (-0.743309,-0.00790633,-0.668902) - New Momentum Direction: (0.571917,-0.526186,0.629317) - New Polarization: (0.743309,0.00790633,-0.668902) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.571917,-0.526186,0.629317) - Old Polarization: (0.743309,0.00790633,-0.668902) - New Momentum Direction: (-0.571917,-0.526186,0.629317) - New Polarization: (0.743309,-0.00790633,0.668902) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.571917,-0.526186,0.629317) - Old Polarization: (0.743309,-0.00790633,0.668902) - New Momentum Direction: (-0.571917,0.526186,0.629317) - New Polarization: (-0.743309,-0.00790633,-0.668902) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.571917,0.526186,0.629317) - Old Polarization: (-0.743309,-0.00790633,-0.668902) - New Momentum Direction: (-0.571917,0.526186,-0.629317) - New Polarization: (0.743309,0.00790633,-0.668902) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.571917,0.526186,-0.629317) - Old Polarization: (0.743309,0.00790633,-0.668902) - New Momentum Direction: (0.571917,0.526186,-0.629317) - New Polarization: (0.743309,-0.00790633,0.668902) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.571917,0.526186,-0.629317) - Old Polarization: (0.743309,-0.00790633,0.668902) - New Momentum Direction: (0.571917,-0.526186,-0.629317) - New Polarization: (-0.743309,-0.00790633,-0.668902) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1264, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1263, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.937277,0.278588,0.209523) -Old Polarization: (-0.329951,0.902916,0.275454) -New Polarization: (0.492814,-0.778011,-0.389657) -Polarization Change: (0.492814,-0.778011,-0.389657) -New Momentum Direction: (0.639944,0.627496,-0.443531) -Momentum Change: (0.639944,0.627496,-0.443531) - Photon at Boundary! - Old Momentum Direction: (0.639944,0.627496,-0.443531) - Old Polarization: (0.492814,-0.778011,-0.389657) - New Momentum Direction: (-0.639944,0.627496,-0.443531) - New Polarization: (0.492814,0.778011,0.389657) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639944,0.627496,-0.443531) - Old Polarization: (0.492814,0.778011,0.389657) - New Momentum Direction: (-0.639944,-0.627496,-0.443531) - New Polarization: (-0.492814,0.778011,-0.389657) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639944,-0.627496,-0.443531) - Old Polarization: (-0.492814,0.778011,-0.389657) - New Momentum Direction: (-0.639944,-0.627496,0.443531) - New Polarization: (0.492814,-0.778011,-0.389657) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639944,-0.627496,0.443531) - Old Polarization: (0.492814,-0.778011,-0.389657) - New Momentum Direction: (0.639944,-0.627496,0.443531) - New Polarization: (0.492814,0.778011,0.389657) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.639944,-0.627496,0.443531) - Old Polarization: (0.492814,0.778011,0.389657) - New Momentum Direction: (0.639944,0.627496,0.443531) - New Polarization: (-0.492814,0.778011,-0.389657) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1262, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.893647,0.172191,0.414421) - Old Polarization: (-0.382335,0.775655,0.502174) - New Momentum Direction: (0.792851,0.233829,0.562771) - New Polarization: (-0.556892,0.653043,0.513231) - *** FresnelRefraction *** -Track (trackID 1261, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.57903,-0.595934,0.556405) -Old Polarization: (-0.736935,-0.0905996,0.669864) -New Polarization: (-0.302284,-0.0461697,0.952099) -Polarization Change: (-0.302284,-0.0461697,0.952099) -New Momentum Direction: (0.94683,0.100897,0.305504) -Momentum Change: (0.94683,0.100897,0.305504) - Photon at Boundary! - Old Momentum Direction: (0.94683,0.100897,0.305504) - Old Polarization: (-0.302284,-0.0461697,0.952099) - New Momentum Direction: (0.900706,0.136239,0.412514) - New Polarization: (-0.419631,0.0271131,0.90729) - *** FresnelRefraction *** -Track (trackID 1260, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.439988,-0.886406,0.143857) - Old Polarization: (-0.890405,-0.409836,0.198021) - New Momentum Direction: (0.598359,-0.776976,0.195637) - New Polarization: (0.580691,0.588773,0.562267) - *** FresnelRefraction *** -Track (trackID 1259, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.941239,0.321135,-0.104603) -Old Polarization: (-0.329812,0.940664,-0.0798446) -New Polarization: (0.104758,-0.835674,0.539143) -Polarization Change: (0.104758,-0.835674,0.539143) -New Momentum Direction: (-0.474841,0.434307,0.765443) -Momentum Change: (-0.474841,0.434307,0.765443) - Photon at Boundary! - Old Momentum Direction: (-0.474841,0.434307,0.765443) - Old Polarization: (0.104758,-0.835674,0.539143) - New Momentum Direction: (-0.645697,0.590579,0.484036) - New Polarization: (-0.601645,-0.00313736,-0.798758) - *** FresnelRefraction *** -Track (trackID 1258, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.944545,0.316097,0.0889745) - Old Polarization: (-0.325935,0.93545,0.136747) - New Momentum Direction: (0.894826,0.429717,0.120956) - New Polarization: (-0.444636,0.882087,0.155632) - *** FresnelRefraction *** -Track (trackID 1257, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1256, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.577887,-0.527745,-0.62252) - Old Polarization: (-0.738919,-0.0145129,-0.673637) - New Momentum Direction: (0.577887,-0.527745,0.62252) - New Polarization: (0.738919,0.0145129,-0.673637) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.577887,-0.527745,0.62252) - Old Polarization: (0.738919,0.0145129,-0.673637) - New Momentum Direction: (-0.577887,-0.527745,0.62252) - New Polarization: (0.738919,-0.0145129,0.673637) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.577887,-0.527745,0.62252) - Old Polarization: (0.738919,-0.0145129,0.673637) - New Momentum Direction: (-0.577887,0.527745,0.62252) - New Polarization: (-0.738919,-0.0145129,-0.673637) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1255, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1254, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.667316,-0.303427,-0.680162) - Old Polarization: (-0.63648,0.241907,-0.732376) - New Momentum Direction: (0.667316,-0.303427,0.680162) - New Polarization: (-0.595431,0.331228,0.731949) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.667316,-0.303427,0.680162) - Old Polarization: (-0.595431,0.331228,0.731949) - New Momentum Direction: (-0.667316,-0.303427,0.680162) - New Polarization: (-0.595431,-0.331228,-0.731949) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.667316,-0.303427,0.680162) - Old Polarization: (-0.595431,-0.331228,-0.731949) - New Momentum Direction: (-0.667316,0.303427,0.680162) - New Polarization: (0.595431,-0.331228,0.731949) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.667316,0.303427,0.680162) - Old Polarization: (0.595431,-0.331228,0.731949) - New Momentum Direction: (-0.902726,0.410467,0.128853) - New Polarization: (-0.13097,0.023093,-0.991117) - *** FresnelRefraction *** -Track (trackID 1253, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.443929,-0.893053,0.0733688) - Old Polarization: (-0.892758,-0.433783,0.121715) - New Momentum Direction: (0.597346,-0.795884,0.0987241) - New Polarization: (0.737598,0.593537,0.321966) - *** FresnelRefraction *** -Track (trackID 1252, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.666001,-0.386167,0.638215) - Old Polarization: (-0.637823,0.148857,0.755661) - New Momentum Direction: (-0.666001,-0.386167,0.638215) - New Polarization: (-0.637823,-0.148857,-0.755661) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666001,-0.386167,0.638215) - Old Polarization: (-0.637823,-0.148857,-0.755661) - New Momentum Direction: (-0.666001,-0.386167,-0.638215) - New Polarization: (0.637823,0.148857,-0.755661) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1251, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1250, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.452786,-0.862316,0.226707) - Old Polarization: (-0.876415,-0.383682,0.291006) - New Momentum Direction: (0.615429,-0.725463,0.308141) - New Polarization: (0.316853,0.585678,0.746046) - *** FresnelRefraction *** -Track (trackID 1249, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.728766,-0.161972,-0.665331) - Old Polarization: (-0.566748,0.402638,-0.718804) - New Momentum Direction: (-0.728766,-0.161972,-0.665331) - New Polarization: (-0.341533,-0.756167,0.558182) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.728766,-0.161972,-0.665331) - Old Polarization: (-0.341533,-0.756167,0.558182) - New Momentum Direction: (-0.728766,-0.161972,0.665331) - New Polarization: (0.341533,0.756167,0.558182) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.728766,-0.161972,0.665331) - Old Polarization: (0.341533,0.756167,0.558182) - New Momentum Direction: (0.728766,-0.161972,0.665331) - New Polarization: (0.150025,-0.91025,-0.385925) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.728766,-0.161972,0.665331) - Old Polarization: (0.150025,-0.91025,-0.385925) - New Momentum Direction: (0.728766,-0.161972,-0.665331) - New Polarization: (-0.150025,0.91025,-0.385925) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.728766,-0.161972,-0.665331) - Old Polarization: (-0.150025,0.91025,-0.385925) - New Momentum Direction: (0.728766,0.161972,-0.665331) - New Polarization: (0.150025,0.91025,0.385925) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.728766,0.161972,-0.665331) - Old Polarization: (0.150025,0.91025,0.385925) - New Momentum Direction: (0.381051,0.218692,-0.898317) - New Polarization: (-0.292003,0.950357,0.107498) - *** FresnelRefraction *** -Track (trackID 1248, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.493636,-0.778504,0.387627) - Old Polarization: (-0.831453,-0.291797,0.4728) - New Momentum Direction: (0.669896,-0.523954,0.526034) - New Polarization: (-0.244097,0.513694,0.822518) - *** FresnelRefraction *** -Track (trackID 1247, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.72542,-0.170944,-0.666742) - Old Polarization: (-0.570502,0.392619,-0.721373) - New Momentum Direction: (0.37056,-0.230674,-0.899708) - New Polarization: (-0.845648,0.316838,-0.429528) - *** FresnelRefraction *** -Track (trackID 1246, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.495993,-0.716679,-0.490267) - Old Polarization: (-0.828773,-0.222257,-0.513554) - New Momentum Direction: (0.495993,0.716679,-0.490267) - New Polarization: (0.612598,0.111342,0.782513) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.495993,0.716679,-0.490267) - Old Polarization: (0.612598,0.111342,0.782513) - New Momentum Direction: (-0.495993,0.716679,-0.490267) - New Polarization: (0.612598,-0.111342,-0.782513) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.495993,0.716679,-0.490267) - Old Polarization: (0.612598,-0.111342,-0.782513) - New Momentum Direction: (-0.495993,0.716679,0.490267) - New Polarization: (-0.612598,0.111342,-0.782513) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1245, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.886626,0.19161,-0.420929) - Old Polarization: (-0.385694,0.808583,-0.444335) - New Momentum Direction: (0.782646,0.257889,-0.566531) - New Polarization: (-0.560577,0.687654,-0.461396) - *** FresnelRefraction *** -Track (trackID 1244, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.92462,0.29172,-0.244902) - Old Polarization: (-0.348753,0.906902,-0.236433) - New Momentum Direction: (0.855231,0.39692,-0.333219) - New Polarization: (-0.493751,0.819393,-0.291213) - *** FresnelRefraction *** -Track (trackID 1243, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.588464,-0.580544,0.562743) - Old Polarization: (-0.727152,-0.0757042,0.682289) - New Momentum Direction: (-0.588464,-0.580544,0.562743) - New Polarization: (-0.727152,0.0757042,-0.682289) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.588464,-0.580544,0.562743) - Old Polarization: (-0.727152,0.0757042,-0.682289) - New Momentum Direction: (-0.588464,0.580544,0.562743) - New Polarization: (0.727152,0.0757042,0.682289) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.588464,0.580544,0.562743) - Old Polarization: (0.727152,0.0757042,0.682289) - New Momentum Direction: (-0.588464,0.580544,-0.562743) - New Polarization: (-0.727152,-0.0757042,0.682289) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1242, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.945972,0.31441,0.0792725) - Old Polarization: (-0.322403,0.938095,0.126623) - New Momentum Direction: (0.898244,0.42616,0.107448) - New Polarization: (-0.438151,0.88744,0.143088) - *** FresnelRefraction *** -Track (trackID 1241, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.746879,-0.114082,-0.655101) - Old Polarization: (-0.546568,0.455784,-0.702513) - New Momentum Direction: (0.435145,-0.154468,-0.887011) - New Polarization: (-0.813996,0.353538,-0.460892) - *** FresnelRefraction *** -Track (trackID 1240, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1239, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.6215,-0.421301,-0.660487) - Old Polarization: (-0.68906,0.107158,-0.716738) - New Momentum Direction: (0.6215,-0.421301,0.660487) - New Polarization: (0.68906,-0.107158,-0.716738) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6215,-0.421301,0.660487) - Old Polarization: (0.68906,-0.107158,-0.716738) - New Momentum Direction: (-0.6215,-0.421301,0.660487) - New Polarization: (0.68906,0.107158,0.716738) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6215,-0.421301,0.660487) - Old Polarization: (0.68906,0.107158,0.716738) - New Momentum Direction: (-0.6215,0.421301,0.660487) - New Polarization: (-0.68906,0.107158,-0.716738) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6215,0.421301,0.660487) - Old Polarization: (-0.68906,0.107158,-0.716738) - New Momentum Direction: (-0.6215,0.421301,-0.660487) - New Polarization: (0.68906,-0.107158,-0.716738) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6215,0.421301,-0.660487) - Old Polarization: (0.68906,-0.107158,-0.716738) - New Momentum Direction: (0.6215,0.421301,-0.660487) - New Polarization: (0.68906,0.107158,0.716738) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1238, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1237, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.452302,-0.868867,0.201228) - Old Polarization: (-0.879149,-0.396392,0.264517) - New Momentum Direction: (0.612534,-0.741983,0.272515) - New Polarization: (0.403636,0.590033,0.699241) - *** FresnelRefraction *** -Track (trackID 1236, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.934749,0.277251,0.222208) - Old Polarization: (-0.334611,0.897238,0.288097) - New Momentum Direction: (0.876577,0.375533,0.300978) - New Polarization: (-0.465648,0.819817,0.333274) - *** FresnelRefraction *** -Track (trackID 1235, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.593658,-0.56079,0.577135) - Old Polarization: (-0.720088,-0.0500462,0.692075) - New Momentum Direction: (-0.593658,-0.56079,0.577135) - New Polarization: (-0.720088,0.0500462,-0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.593658,-0.56079,0.577135) - Old Polarization: (-0.720088,0.0500462,-0.692075) - New Momentum Direction: (-0.593658,-0.56079,-0.577135) - New Polarization: (0.720088,-0.0500462,-0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.593658,-0.56079,-0.577135) - Old Polarization: (0.720088,-0.0500462,-0.692075) - New Momentum Direction: (-0.593658,0.56079,-0.577135) - New Polarization: (-0.720088,-0.0500462,0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.593658,0.56079,-0.577135) - Old Polarization: (-0.720088,-0.0500462,0.692075) - New Momentum Direction: (0.593658,0.56079,-0.577135) - New Polarization: (-0.720088,0.0500462,-0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.593658,0.56079,-0.577135) - Old Polarization: (-0.720088,0.0500462,-0.692075) - New Momentum Direction: (0.593658,0.56079,0.577135) - New Polarization: (0.720088,-0.0500462,-0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.593658,0.56079,0.577135) - Old Polarization: (0.720088,-0.0500462,-0.692075) - New Momentum Direction: (0.593658,-0.56079,0.577135) - New Polarization: (-0.720088,-0.0500462,0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.593658,-0.56079,0.577135) - Old Polarization: (-0.720088,-0.0500462,0.692075) - New Momentum Direction: (-0.593658,-0.56079,0.577135) - New Polarization: (-0.720088,0.0500462,-0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.593658,-0.56079,0.577135) - Old Polarization: (-0.720088,0.0500462,-0.692075) - New Momentum Direction: (-0.593658,-0.56079,-0.577135) - New Polarization: (0.720088,-0.0500462,-0.692075) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.593658,-0.56079,-0.577135) - Old Polarization: (0.720088,-0.0500462,-0.692075) - New Momentum Direction: (-0.593658,0.56079,-0.577135) - New Polarization: (-0.720088,-0.0500462,0.692075) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1234, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 95 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 96 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1427, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.344131,-0.290413,0.89288) - Old Polarization: (-0.930749,-0.230715,0.283685) - New Momentum Direction: (0.467668,-0.394666,0.790901) - New Polarization: (0.0224884,-0.88918,-0.457005) - *** FresnelRefraction *** -Track (trackID 1426, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.628378,-0.705282,0.328204) - Old Polarization: (-0.609368,-0.708533,-0.355881) - New Momentum Direction: (0.849866,-0.284063,0.443888) - New Polarization: (0.261774,0.95858,0.112247) - *** FresnelRefraction *** -Track (trackID 1425, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.357389,-0.35532,0.863725) - Old Polarization: (-0.917569,-0.306059,0.253762) - New Momentum Direction: (0.484542,-0.481736,0.730171) - New Polarization: (-0.221738,-0.87508,-0.430195) - *** FresnelRefraction *** -Track (trackID 1424, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.747322,-0.654956,0.111994) - Old Polarization: (-0.474304,-0.643858,-0.600402) - New Momentum Direction: (0.430287,-0.889778,0.152147) - New Polarization: (-0.751525,-0.446475,-0.485665) - *** FresnelRefraction *** -Track (trackID 1423, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.372926,-0.382475,0.845363) - Old Polarization: (-0.906482,-0.344636,0.243962) - New Momentum Direction: (0.501266,-0.514101,0.696012) - New Polarization: (-0.302543,-0.857727,-0.415658) - *** FresnelRefraction *** -Track (trackID 1422, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.864191,0.498431,0.0688602) - Old Polarization: (-0.337178,0.675239,-0.656021) - New Momentum Direction: (0.735401,0.671257,0.0927369) - New Polarization: (-0.528333,0.653675,-0.541824) - *** FresnelRefraction *** -Track (trackID 1421, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.445807,0.389243,0.806068) - Old Polarization: (-0.817854,0.543134,0.190051) - New Momentum Direction: (0.445807,0.389243,-0.806068) - New Polarization: (0.659506,-0.751698,0.00176029) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.445807,0.389243,-0.806068) - Old Polarization: (0.659506,-0.751698,0.00176029) - New Momentum Direction: (-0.445807,0.389243,-0.806068) - New Polarization: (0.659506,0.751698,-0.00176029) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.445807,0.389243,-0.806068) - Old Polarization: (0.659506,0.751698,-0.00176029) - New Momentum Direction: (-0.445807,-0.389243,-0.806068) - New Polarization: (-0.659506,0.751698,0.00176029) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.445807,-0.389243,-0.806068) - Old Polarization: (-0.659506,0.751698,0.00176029) - New Momentum Direction: (-0.603431,-0.526868,-0.598566) - New Polarization: (-0.659594,0.751614,0.0033715) - *** FresnelRefraction *** -Track (trackID 1420, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.347598,-0.273905,0.896745) - Old Polarization: (-0.930934,-0.215023,0.295173) - New Momentum Direction: (0.469984,-0.370344,0.801224) - New Polarization: (0.0981963,-0.880151,-0.464426) - *** FresnelRefraction *** -Track (trackID 1419, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.430828,-0.562932,0.705333) - Old Polarization: (-0.835126,-0.544891,0.0752253) - New Momentum Direction: (0.430828,-0.562932,-0.705333) - New Polarization: (0.767802,0.639355,-0.0412896) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.430828,-0.562932,-0.705333) - Old Polarization: (0.767802,0.639355,-0.0412896) - New Momentum Direction: (0.430828,0.562932,-0.705333) - New Polarization: (-0.767802,0.639355,0.0412896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.430828,0.562932,-0.705333) - Old Polarization: (-0.767802,0.639355,0.0412896) - New Momentum Direction: (-0.430828,0.562932,-0.705333) - New Polarization: (-0.767802,-0.639355,-0.0412896) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.430828,0.562932,-0.705333) - Old Polarization: (-0.767802,-0.639355,-0.0412896) - New Momentum Direction: (-0.430828,0.562932,0.705333) - New Polarization: (0.807382,0.589595,0.0226003) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.430828,0.562932,0.705333) - Old Polarization: (0.807382,0.589595,0.0226003) - New Momentum Direction: (-0.430828,-0.562932,0.705333) - New Polarization: (-0.807382,0.589595,-0.0226003) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.430828,-0.562932,0.705333) - Old Polarization: (-0.807382,0.589595,-0.0226003) - New Momentum Direction: (0.430828,-0.562932,0.705333) - New Polarization: (-0.807382,-0.589595,0.0226003) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.430828,-0.562932,0.705333) - Old Polarization: (-0.807382,-0.589595,0.0226003) - New Momentum Direction: (0.582999,-0.761763,0.28254) - New Polarization: (-0.784744,-0.618032,-0.0470341) - *** FresnelRefraction *** -Track (trackID 1418, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.978414,0.0518544,-0.200043) - Old Polarization: (-0.205844,0.158881,-0.965601) - New Momentum Direction: (0.960427,0.0698901,-0.269621) - New Polarization: (-0.277932,0.176979,-0.944157) - *** FresnelRefraction *** -Track (trackID 1417, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1416, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.380271,0.218844,0.898611) - Old Polarization: (-0.891087,0.346914,0.292601) - New Momentum Direction: (0.515882,0.296887,0.803569) - New Polarization: (0.227345,0.856943,-0.46256) - *** FresnelRefraction *** -Track (trackID 1415, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.922969,-0.346713,-0.167089) - Old Polarization: (-0.276065,-0.293891,-0.915104) - New Momentum Direction: (0.85208,-0.471514,-0.227233) - New Polarization: (-0.427658,-0.376864,-0.821634) - *** FresnelRefraction *** -Track (trackID 1414, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1413, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.337182,-0.227706,0.913487) - Old Polarization: (-0.938368,-0.1596,0.306583) - New Momentum Direction: (0.458362,-0.309542,0.833119) - New Polarization: (0.284113,-0.837171,-0.467359) - *** FresnelRefraction *** -Track (trackID 1412, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1411, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.978689,0.0261665,-0.203672) - Old Polarization: (-0.205344,0.12929,-0.970112) - New Momentum Direction: (-0.978689,0.0261665,-0.203672) - New Polarization: (0.205343,0.11954,-0.971362) - *** FresnelReflection *** - -** Photon absorbed! ** -Track (trackID 1410, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1409, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1408, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.97553,-0.0441935,-0.21538) - Old Polarization: (-0.213267,0.0480164,-0.975813) - New Momentum Direction: (0.954632,-0.0598555,-0.29171) - New Polarization: (-0.292845,-0.0109627,-0.956097) - *** FresnelRefraction *** -Track (trackID 1407, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.898961,-0.420121,-0.123969) - Old Polarization: (-0.299379,-0.382694,-0.874024) - New Momentum Direction: (0.805851,-0.567909,-0.167579) - New Polarization: (-0.467496,-0.436543,-0.768686) - *** FresnelRefraction *** -Track (trackID 1406, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1405, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.955614,-0.210047,-0.206598) - Old Polarization: (-0.2385,-0.139816,-0.961025) - New Momentum Direction: (0.916373,-0.285406,-0.280719) - New Polarization: (-0.353661,-0.248603,-0.901732) - *** FresnelRefraction *** -Track (trackID 1404, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.852334,-0.520136,-0.0546361) - Old Polarization: (-0.353415,-0.495805,-0.793269) - New Momentum Direction: (0.706393,-0.703947,-0.073944) - New Polarization: (-0.557129,-0.488526,-0.671528) - *** FresnelRefraction *** -Track (trackID 1403, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.492169,0.469766,0.732864) - Old Polarization: (-0.764935,0.635238,0.10652) - New Momentum Direction: (0.666125,0.635803,0.389914) - New Polarization: (-0.607545,0.7658,-0.210807) - *** FresnelRefraction *** -Track (trackID 1402, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1401, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.453777,-0.593385,0.664816) - Old Polarization: (-0.81073,-0.584566,0.0316146) - New Momentum Direction: (0.453777,-0.593385,-0.664816) - New Polarization: (0.81073,0.584566,0.0316146) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.453777,-0.593385,-0.664816) - Old Polarization: (0.81073,0.584566,0.0316146) - New Momentum Direction: (0.453777,0.593385,-0.664816) - New Polarization: (-0.81073,0.584566,-0.0316146) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.453777,0.593385,-0.664816) - Old Polarization: (-0.81073,0.584566,-0.0316146) - New Momentum Direction: (-0.453777,0.593385,-0.664816) - New Polarization: (-0.81073,-0.584566,0.0316146) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.453777,0.593385,-0.664816) - Old Polarization: (-0.81073,-0.584566,0.0316146) - New Momentum Direction: (-0.453777,0.593385,0.664816) - New Polarization: (0.81073,0.584566,0.0316146) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.453777,0.593385,0.664816) - Old Polarization: (0.81073,0.584566,0.0316146) - New Momentum Direction: (-0.453777,-0.593385,0.664816) - New Polarization: (-0.81073,0.584566,-0.0316146) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1400, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1399, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.38121,0.230703,0.89524) - Old Polarization: (-0.888531,0.358874,0.285872) - New Momentum Direction: (0.518241,0.313632,0.795652) - New Polarization: (0.176662,0.871009,-0.458403) - *** FresnelRefraction *** -Track (trackID 1398, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.970883,0.162312,-0.176182) - Old Polarization: (-0.217026,0.284615,-0.933753) - New Momentum Direction: (0.946111,0.219425,-0.238175) - New Polarization: (-0.3062,0.366677,-0.878515) - *** FresnelRefraction *** -Track (trackID 1397, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.505394,-0.664364,0.550634) - Old Polarization: (-0.748478,-0.655054,-0.103368) - New Momentum Direction: (0.505394,0.664364,0.550634) - New Polarization: (0.748478,-0.655054,0.103368) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.505394,0.664364,0.550634) - Old Polarization: (0.748478,-0.655054,0.103368) - New Momentum Direction: (0.505394,0.664364,-0.550634) - New Polarization: (-0.748478,0.655054,0.103368) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.505394,0.664364,-0.550634) - Old Polarization: (-0.748478,0.655054,0.103368) - New Momentum Direction: (-0.505394,0.664364,-0.550634) - New Polarization: (-0.748478,-0.655054,-0.103368) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1396, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1395, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1394, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.894407,0.447212,-0.00609367) - Old Polarization: (-0.307509,0.605,-0.734447) - New Momentum Direction: (0.794376,0.60737,-0.00827597) - New Polarization: (-0.482733,0.622977,-0.615523) - *** FresnelRefraction *** -Track (trackID 1393, parentID 1) is processed with stopping code 2 -### pop requested out of 61 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1392, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.362885,0.118216,0.924305) - Old Polarization: (-0.914665,0.234724,0.32908) - New Momentum Direction: (0.489882,0.159588,0.857057) - New Polarization: (0.626134,0.619653,-0.473272) - *** FresnelRefraction *** -Track (trackID 1391, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.375546,-0.435838,0.81793) - Old Polarization: (-0.895986,-0.39642,0.20015) - New Momentum Direction: (0.5098,-0.591647,0.624546) - New Polarization: (-0.481443,-0.79785,-0.362833) - *** FresnelRefraction *** -Track (trackID 1390, parentID 1) is processed with stopping code 2 -### pop requested out of 58 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1389, parentID 1) is processed with stopping code 2 -### pop requested out of 57 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.827595,0.546485,0.128219) - Old Polarization: (-0.38336,0.71712,-0.582043) - New Momentum Direction: (0.646927,0.742392,0.174183) - New Polarization: (-0.607545,0.639842,-0.470629) - *** FresnelRefraction *** -Track (trackID 1388, parentID 1) is processed with stopping code 2 -### pop requested out of 56 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.380634,-0.425727,0.820899) - Old Polarization: (-0.895293,-0.391847,0.211913) - New Momentum Direction: (0.513137,-0.573928,0.638199) - New Polarization: (-0.443107,-0.813945,-0.3757) - *** FresnelRefraction *** -Track (trackID 1387, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1386, parentID 1) is processed with stopping code 2 -### pop requested out of 54 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.716907,0.611014,0.335718) - Old Polarization: (-0.508979,0.787786,-0.34689) - New Momentum Direction: (0.316928,0.831242,0.456721) - New Polarization: (-0.80923,0.488146,-0.326894) - *** FresnelRefraction *** -Track (trackID 1385, parentID 1) is processed with stopping code 2 -### pop requested out of 53 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1384, parentID 1) is processed with stopping code 2 -### pop requested out of 52 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.42286,-0.555754,0.71577) -Old Polarization: (-0.842273,-0.532437,0.0841882) -New Polarization: (-0.967766,-0.0572138,0.245265) -Polarization Change: (-0.967766,-0.0572138,0.245265) -New Momentum Direction: (0.0079262,0.966452,0.256723) -Momentum Change: (0.0079262,0.966452,0.256723) - Photon at Boundary! - Old Momentum Direction: (0.0079262,0.966452,0.256723) - Old Polarization: (-0.967766,-0.0572138,0.245265) - New Momentum Direction: (0.0079262,0.966452,-0.256723) - New Polarization: (0.967766,0.0572138,0.245265) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.0079262,0.966452,-0.256723) - Old Polarization: (0.967766,0.0572138,0.245265) - New Momentum Direction: (0.0107602,0.937242,-0.348514) - New Polarization: (0.962863,-0.103743,-0.249262) - *** FresnelRefraction *** -Track (trackID 1383, parentID 1) is processed with stopping code 2 -### pop requested out of 51 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.618658,-0.704113,0.348549) - Old Polarization: (-0.620665,-0.71001,-0.332659) - New Momentum Direction: (0.835366,-0.284006,0.470641) - New Polarization: (0.242678,0.958778,0.147827) - *** FresnelRefraction *** -Track (trackID 1382, parentID 1) is processed with stopping code 2 +Track (trackID 939, parentID 1) is processed with stopping code 2 ### pop requested out of 50 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.852118,-0.519752,-0.0612662) - Old Polarization: (-0.355976,-0.4898,-0.79585) - New Momentum Direction: (0.702669,-0.706625,-0.083294) - New Polarization: (-0.563808,-0.481558,-0.670986) + 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 1381, parentID 1) is processed with stopping code 2 -### pop requested out of 49 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1380, parentID 1) is processed with stopping code 2 -### pop requested out of 48 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1379, parentID 1) is processed with stopping code 2 -### pop requested out of 47 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.566622,-0.7012,0.432734) - Old Polarization: (-0.678814,-0.694935,-0.237229) - New Momentum Direction: (0.77037,-0.245742,0.588337) - New Polarization: (0.105815,0.959221,0.262103) - *** FresnelRefraction *** -Track (trackID 1378, parentID 1) is processed with stopping code 2 -### pop requested out of 46 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.690601,-0.690463,0.215246) - Old Polarization: (-0.538267,-0.689466,-0.48467) - New Momentum Direction: (0.202032,-0.934999,0.291478) - New Polarization: (-0.853829,-0.313938,-0.415233) - *** FresnelRefraction *** -Track (trackID 1377, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1376, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.343607,-0.26037,0.902298) - Old Polarization: (-0.933643,-0.198269,0.29833) - New Momentum Direction: (0.343607,-0.26037,-0.902298) - New Polarization: (0.851825,0.490925,0.182723) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.343607,-0.26037,-0.902298) - Old Polarization: (0.851825,0.490925,0.182723) - New Momentum Direction: (-0.343607,-0.26037,-0.902298) - New Polarization: (0.851825,-0.490925,-0.182723) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.343607,-0.26037,-0.902298) - Old Polarization: (0.851825,-0.490925,-0.182723) - New Momentum Direction: (-0.465635,-0.352838,-0.811597) - New Polarization: (0.157321,-0.935478,0.316435) - *** FresnelRefraction *** -Track (trackID 1375, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.357387,-0.365151,0.859615) - Old Polarization: (-0.916183,-0.315777,0.246768) - New Momentum Direction: (0.485407,-0.495952,0.720008) - New Polarization: (-0.259242,-0.868147,-0.423219) - *** FresnelRefraction *** -Track (trackID 1374, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1373, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.527203,-0.680529,0.508858) - Old Polarization: (-0.723757,-0.673393,-0.150722) - New Momentum Direction: (0.715973,-0.0990913,0.69106) - New Polarization: (-0.10029,0.965009,0.242279) - *** FresnelRefraction *** -Track (trackID 1372, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.935934,-0.302826,-0.179787) - Old Polarization: (-0.259113,-0.246383,-0.933893) - New Momentum Direction: (0.878671,-0.410528,-0.24373) - New Polarization: (-0.396164,-0.34204,-0.852093) - *** FresnelRefraction *** -Track (trackID 1371, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.862348,0.502785,0.0596848) - Old Polarization: (-0.343827,0.66805,-0.659918) - New Momentum Direction: (0.726078,0.682818,0.0810563) - New Polarization: (-0.543369,0.642005,-0.540907) - *** FresnelRefraction *** -Track (trackID 1370, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.644712,0.604599,0.467767) - Old Polarization: (-0.590528,0.782485,-0.197469) - New Momentum Direction: (-0.644712,0.604599,0.467767) - New Polarization: (-0.590528,-0.782485,0.197469) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.644712,0.604599,0.467767) - Old Polarization: (-0.590528,-0.782485,0.197469) - New Momentum Direction: (-0.644712,-0.604599,0.467767) - New Polarization: (0.590528,-0.782485,-0.197469) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.644712,-0.604599,0.467767) - Old Polarization: (0.590528,-0.782485,-0.197469) - New Momentum Direction: (-0.644712,-0.604599,-0.467767) - New Polarization: (-0.590528,0.782485,-0.197469) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.644712,-0.604599,-0.467767) - Old Polarization: (-0.590528,0.782485,-0.197469) - New Momentum Direction: (0.644712,-0.604599,-0.467767) - New Polarization: (-0.590528,-0.782485,0.197469) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.644712,-0.604599,-0.467767) - Old Polarization: (-0.590528,-0.782485,0.197469) - New Momentum Direction: (0.644712,0.604599,-0.467767) - New Polarization: (0.590528,-0.782485,-0.197469) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.644712,0.604599,-0.467767) - Old Polarization: (0.590528,-0.782485,-0.197469) - New Momentum Direction: (0.644712,0.604599,0.467767) - New Polarization: (-0.590528,0.782485,-0.197469) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.644712,0.604599,0.467767) - Old Polarization: (-0.590528,0.782485,-0.197469) - New Momentum Direction: (-0.644712,0.604599,0.467767) - New Polarization: (-0.590528,-0.782485,0.197469) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.644712,0.604599,0.467767) - Old Polarization: (-0.590528,-0.782485,0.197469) - New Momentum Direction: (-0.644712,-0.604599,0.467767) - New Polarization: (0.590528,-0.782485,-0.197469) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1369, parentID 1) is processed with stopping code 2 -### pop requested out of 37 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.466077,0.437835,0.768813) - Old Polarization: (-0.79248,0.592959,0.142737) - New Momentum Direction: (0.633702,0.595303,0.494) - New Polarization: (-0.536002,0.798349,-0.274482) - *** FresnelRefraction *** -Track (trackID 1368, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.975323,-0.0267024,-0.219162) - Old Polarization: (-0.216971,0.0677295,-0.973826) - New Momentum Direction: (0.953851,-0.0363171,-0.298075) - New Polarization: (-0.297463,0.0213731,-0.954494) - *** FresnelRefraction *** -Track (trackID 1367, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.51741,-0.663448,0.540484) - Old Polarization: (-0.737595,-0.665991,-0.111402) - New Momentum Direction: (0.51741,0.663448,0.540484) - New Polarization: (0.737595,-0.665991,0.111402) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.51741,0.663448,0.540484) - Old Polarization: (0.737595,-0.665991,0.111402) - New Momentum Direction: (0.51741,0.663448,-0.540484) - New Polarization: (-0.737595,0.665991,0.111402) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.51741,0.663448,-0.540484) - Old Polarization: (-0.737595,0.665991,0.111402) - New Momentum Direction: (-0.51741,0.663448,-0.540484) - New Polarization: (-0.737595,-0.665991,-0.111402) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.51741,0.663448,-0.540484) - Old Polarization: (-0.737595,-0.665991,-0.111402) - New Momentum Direction: (0.51741,0.663448,-0.540484) - New Polarization: (-0.737595,0.665991,0.111402) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1366, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.589698,-0.707842,0.388864) - Old Polarization: (-0.652606,-0.701286,-0.286884) - New Momentum Direction: (0.802292,-0.276456,0.529055) - New Polarization: (0.187542,0.95815,0.216278) - *** FresnelRefraction *** -Track (trackID 1365, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1364, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.438232,0.386301,0.811618) - Old Polarization: (-0.82367,0.534106,0.190523) - New Momentum Direction: (0.596156,0.525511,0.606989) - New Polarization: (-0.393192,0.850256,-0.349949) - *** FresnelRefraction *** -Track (trackID 1363, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.754879,0.599025,0.267071) - Old Polarization: (-0.465784,0.776321,-0.4247) - New Momentum Direction: (0.453707,0.813921,0.362881) - New Polarization: (-0.738184,0.571379,-0.358624) - *** FresnelRefraction *** -Track (trackID 1362, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.963055,-0.16395,-0.213648) - Old Polarization: (-0.229947,-0.0876683,-0.969247) - New Momentum Direction: (0.930668,-0.222735,-0.290253) - New Polarization: (-0.33409,-0.193992,-0.922362) - *** FresnelRefraction *** -Track (trackID 1361, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.887855,-0.445634,-0.114561) - Old Polarization: (-0.314939,-0.407051,-0.857393) - New Momentum Direction: (0.780698,-0.605229,-0.155589) - New Polarization: (-0.495346,-0.447557,-0.74453) - *** FresnelRefraction *** -Track (trackID 1360, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1359, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.653111,-0.701748,0.284597) - Old Polarization: (-0.581071,-0.705411,-0.405896) - New Momentum Direction: (0.882845,-0.269421,0.384705) - New Polarization: (0.282372,0.959014,0.0236227) - *** FresnelRefraction *** -Track (trackID 1358, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.589911,0.57963,0.562169) - Old Polarization: (-0.65238,0.752387,-0.0911826) - New Momentum Direction: (-0.589911,0.57963,0.562169) - New Polarization: (-0.65238,-0.752387,0.0911826) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.589911,0.57963,0.562169) - Old Polarization: (-0.65238,-0.752387,0.0911826) - New Momentum Direction: (-0.589911,-0.57963,0.562169) - New Polarization: (0.65238,-0.752387,-0.0911826) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.589911,-0.57963,0.562169) - Old Polarization: (0.65238,-0.752387,-0.0911826) - New Momentum Direction: (-0.589911,-0.57963,-0.562169) - New Polarization: (-0.65238,0.752387,-0.0911826) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1357, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.888387,0.458901,0.0133331) - Old Polarization: (-0.311649,0.624138,-0.716468) - New Momentum Direction: (0.784007,0.620491,0.018028) - New Polarization: (-0.488234,0.634312,-0.599397) - *** FresnelRefraction *** -Track (trackID 1356, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1355, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.622214,0.593908,0.510022) - Old Polarization: (-0.616156,0.773416,-0.148928) - New Momentum Direction: (-0.622214,0.593908,0.510022) - New Polarization: (-0.616156,-0.773416,0.148928) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.622214,0.593908,0.510022) - Old Polarization: (-0.616156,-0.773416,0.148928) - New Momentum Direction: (-0.622214,-0.593908,0.510022) - New Polarization: (0.616156,-0.773416,-0.148928) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.622214,-0.593908,0.510022) - Old Polarization: (0.616156,-0.773416,-0.148928) - New Momentum Direction: (-0.622214,-0.593908,-0.510022) - New Polarization: (-0.616156,0.773416,-0.148928) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1354, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.898515,0.438831,-0.00990662) - Old Polarization: (-0.30092,0.599395,-0.741737) - New Momentum Direction: (0.804231,0.594165,-0.0134133) - New Polarization: (-0.470585,0.62285,-0.624986) - *** FresnelRefraction *** -Track (trackID 1353, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.524596,0.520242,0.673905) - Old Polarization: (-0.726375,0.686378,0.0355696) - New Momentum Direction: (0.524596,0.520242,-0.673905) - New Polarization: (0.726375,-0.686378,0.0355696) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1352, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.419165,-0.550257,0.722162) -Old Polarization: (-0.846048,-0.525316,0.0908035) -New Polarization: (-0.654166,-0.598692,-0.462206) -Polarization Change: (-0.654166,-0.598692,-0.462206) -New Momentum Direction: (0.542348,0.054646,-0.838375) -Momentum Change: (0.542348,0.054646,-0.838375) - Photon at Boundary! - Old Momentum Direction: (0.542348,0.054646,-0.838375) - Old Polarization: (-0.654166,-0.598692,-0.462206) - New Momentum Direction: (-0.542348,0.054646,-0.838375) - New Polarization: (-0.654166,0.598692,0.462206) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.542348,0.054646,-0.838375) - Old Polarization: (-0.654166,0.598692,0.462206) - New Momentum Direction: (-0.736765,0.074235,-0.672062) - New Polarization: (-0.570147,0.4661,0.676523) - *** FresnelRefraction *** -Track (trackID 1351, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.449512,0.393968,0.801703) - Old Polarization: (-0.81423,0.549822,0.186345) - New Momentum Direction: (0.607774,0.532675,0.588954) - New Polarization: (-0.411228,0.845583,-0.340413) - *** FresnelRefraction *** -Track (trackID 1350, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.803039,0.569363,0.175936) - Old Polarization: (-0.411169,0.743074,-0.527998) - New Momentum Direction: (0.587067,0.773454,0.239001) - New Polarization: (-0.651786,0.626698,-0.427112) - *** FresnelRefraction *** -Track (trackID 1349, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.830498,0.543691,0.121132) -Old Polarization: (-0.380489,0.712543,-0.5895) -New Polarization: (-0.611525,0.789621,0.050363) -Polarization Change: (-0.611525,0.789621,0.050363) -New Momentum Direction: (0.13635,0.167868,-0.976334) -Momentum Change: (0.13635,0.167868,-0.976334) -Scattering Photon! -Old Momentum Direction: (0.13635,0.167868,-0.976334) -Old Polarization: (-0.611525,0.789621,0.050363) -New Polarization: (0.460021,-0.257062,0.849883) -Polarization Change: (0.460021,-0.257062,0.849883) -New Momentum Direction: (-0.455194,0.753545,0.474308) -Momentum Change: (-0.455194,0.753545,0.474308) - Photon at Boundary! - Old Momentum Direction: (-0.455194,0.753545,0.474308) - Old Polarization: (0.460021,-0.257062,0.849883) - New Momentum Direction: (-0.618945,0.448291,0.644936) - New Polarization: (0.447667,-0.473343,0.758644) - *** FresnelRefraction *** -Track (trackID 1348, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1347, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1346, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.764254,0.589718,0.261052) - Old Polarization: (-0.452969,0.778977,-0.433606) - New Momentum Direction: (0.494059,0.795016,0.351931) - New Polarization: (-0.710471,0.602493,-0.363639) - *** FresnelRefraction *** -Track (trackID 1345, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.398903,-0.490693,0.774659) - Old Polarization: (-0.87232,-0.463521,0.155584) - New Momentum Direction: (0.539244,-0.663327,0.518858) - New Polarization: (-0.617168,-0.730467,-0.29244) - *** FresnelRefraction *** -Track (trackID 1344, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1343, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.491082,-0.653286,0.576243) - Old Polarization: (-0.764192,-0.640613,-0.0750086) - New Momentum Direction: (0.491082,0.653286,0.576243) - New Polarization: (0.764192,-0.640613,0.0750086) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.491082,0.653286,0.576243) - Old Polarization: (0.764192,-0.640613,0.0750086) - New Momentum Direction: (0.491082,0.653286,-0.576243) - New Polarization: (-0.764192,0.640613,0.0750086) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.491082,0.653286,-0.576243) - Old Polarization: (-0.764192,0.640613,0.0750086) - New Momentum Direction: (-0.491082,0.653286,-0.576243) - New Polarization: (-0.764192,-0.640613,-0.0750086) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1342, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.37199,0.144386,0.916938) - Old Polarization: (-0.906992,0.266673,0.325963) - New Momentum Direction: (0.500373,0.194217,0.843746) - New Polarization: (0.531711,0.70017,-0.476493) - *** FresnelRefraction *** -Track (trackID 1341, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.800636,0.56775,0.19142) - Old Polarization: (-0.411163,0.75302,-0.513718) - New Momentum Direction: (0.58913,0.76569,0.258156) - New Polarization: (-0.646057,0.638233,-0.418651) - *** FresnelRefraction *** -Track (trackID 1340, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.439243,-0.589328,0.678055) - Old Polarization: (-0.822455,-0.567451,0.0395877) - New Momentum Direction: (0.439243,-0.589328,-0.678055) - New Polarization: (0.822455,0.567451,0.0395877) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.439243,-0.589328,-0.678055) - Old Polarization: (0.822455,0.567451,0.0395877) - New Momentum Direction: (0.439243,0.589328,-0.678055) - New Polarization: (-0.822455,0.567451,-0.0395877) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.439243,0.589328,-0.678055) - Old Polarization: (-0.822455,0.567451,-0.0395877) - New Momentum Direction: (-0.439243,0.589328,-0.678055) - New Polarization: (-0.822455,-0.567451,0.0395877) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1339, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.448969,0.396292,0.800862) - Old Polarization: (-0.814097,0.550876,0.183798) - New Momentum Direction: (0.607872,0.536551,0.585324) - New Polarization: (-0.419192,0.842904,-0.337329) - *** FresnelRefraction *** -Track (trackID 1338, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1337, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.557991,-0.690785,0.45985) - Old Polarization: (-0.690238,-0.69396,-0.204917) - New Momentum Direction: (0.753774,-0.21433,0.621198) - New Polarization: (0.0469122,0.960454,0.274458) - *** FresnelRefraction *** -Track (trackID 1336, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.631092,0.595398,0.497217) - Old Polarization: (-0.6062,0.778476,-0.162778) - New Momentum Direction: (-0.631092,0.595398,0.497217) - New Polarization: (-0.6062,-0.778476,0.162778) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.631092,0.595398,0.497217) - Old Polarization: (-0.6062,-0.778476,0.162778) - New Momentum Direction: (-0.631092,-0.595398,0.497217) - New Polarization: (0.6062,-0.778476,-0.162778) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.631092,-0.595398,0.497217) - Old Polarization: (0.6062,-0.778476,-0.162778) - New Momentum Direction: (-0.631092,-0.595398,-0.497217) - New Polarization: (-0.6062,0.778476,-0.162778) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.631092,-0.595398,-0.497217) - Old Polarization: (-0.6062,0.778476,-0.162778) - New Momentum Direction: (0.631092,-0.595398,-0.497217) - New Polarization: (-0.6062,-0.778476,0.162778) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.631092,-0.595398,-0.497217) - Old Polarization: (-0.6062,-0.778476,0.162778) - New Momentum Direction: (0.631092,0.595398,-0.497217) - New Polarization: (0.6062,-0.778476,-0.162778) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1335, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.827331,-0.561598,-0.0114421) - Old Polarization: (-0.38102,-0.546109,-0.746049) - New Momentum Direction: (0.651577,-0.758425,-0.0154523) - New Polarization: (-0.599834,-0.502646,-0.622532) - *** FresnelRefraction *** -Track (trackID 1334, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.760729,-0.641519,0.0987136) - Old Polarization: (-0.457507,-0.637855,-0.619538) - New Momentum Direction: (0.481276,-0.866372,0.133313) - New Polarization: (-0.719198,-0.477225,-0.504986) - *** FresnelRefraction *** -Track (trackID 1333, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 84 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.801244,-0.590791,0.0947302) - Old Polarization: (-0.551475,-0.790597,-0.266143) - New Momentum Direction: (0.582948,-0.802262,0.128638) - New Polarization: (-0.779207,-0.596866,-0.19128) - *** FresnelRefraction *** -Track (trackID 1511, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.678745,-0.478707,0.556907) - Old Polarization: (-0.693351,-0.667639,0.27115) - New Momentum Direction: (0.118796,-0.647241,0.752972) - New Polarization: (-0.971907,-0.230982,-0.0452107) - *** FresnelRefraction *** -Track (trackID 1510, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.894588,0.0127462,-0.44671) - Old Polarization: (-0.443657,-0.0947215,-0.891177) - New Momentum Direction: (0.795007,0.0173014,-0.606353) - New Polarization: (-0.604289,-0.0645892,-0.794143) - *** FresnelRefraction *** -Track (trackID 1509, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1508, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.815615,0.511555,-0.270339) - Old Polarization: (-0.533972,0.485569,-0.692168) - New Momentum Direction: (0.622666,0.691824,-0.365605) - New Polarization: (-0.750229,0.39505,-0.530181) - *** FresnelRefraction *** -Track (trackID 1507, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.636712,-0.35837,0.682765) - Old Polarization: (-0.741948,-0.525894,0.415871) - New Momentum Direction: (0.636712,-0.35837,-0.682765) - New Polarization: (0.1582,0.927316,-0.339201) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.636712,-0.35837,-0.682765) - Old Polarization: (0.1582,0.927316,-0.339201) - New Momentum Direction: (-0.636712,-0.35837,-0.682765) - New Polarization: (0.1582,-0.927316,0.339201) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.636712,-0.35837,-0.682765) - Old Polarization: (0.1582,-0.927316,0.339201) - New Momentum Direction: (-0.636712,0.35837,-0.682765) - New Polarization: (-0.1582,-0.927316,-0.339201) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.636712,0.35837,-0.682765) - Old Polarization: (-0.1582,-0.927316,-0.339201) - New Momentum Direction: (-0.862071,0.485212,-0.146295) - New Polarization: (-0.454667,-0.612975,0.646174) - *** FresnelRefraction *** -Track (trackID 1506, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.856059,-0.502754,-0.120008) - Old Polarization: (-0.485393,-0.702148,-0.520942) - New Momentum Direction: (0.718118,-0.676904,-0.161578) - New Polarization: (-0.672722,-0.615761,-0.410224) - *** FresnelRefraction *** -Track (trackID 1505, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.651938,-0.394215,0.647744) - Old Polarization: (-0.725326,-0.573274,0.381129) - New Momentum Direction: (-0.651938,-0.394215,0.647744) - New Polarization: (-0.725326,0.573274,-0.381129) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.651938,-0.394215,0.647744) - Old Polarization: (-0.725326,0.573274,-0.381129) - New Momentum Direction: (-0.651938,-0.394215,-0.647744) - New Polarization: (0.725326,-0.573274,-0.381129) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.651938,-0.394215,-0.647744) - Old Polarization: (0.725326,-0.573274,-0.381129) - New Momentum Direction: (-0.651938,0.394215,-0.647744) - New Polarization: (-0.725326,-0.573274,0.381129) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1504, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.882917,-0.384201,-0.269903) - Old Polarization: (-0.455094,-0.558805,-0.693272) - New Momentum Direction: (0.77319,-0.518925,-0.364547) - New Polarization: (-0.623674,-0.518024,-0.58539) - *** FresnelRefraction *** -Track (trackID 1503, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.767452,0.627825,-0.12982) - Old Polarization: (-0.590515,0.613403,-0.524432) - New Momentum Direction: (0.490858,0.85319,-0.176421) - New Polarization: (-0.836557,0.404989,-0.368993) - *** FresnelRefraction *** -Track (trackID 1502, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.804097,-0.585692,0.101943) - Old Polarization: (-0.546924,-0.796008,-0.259317) - New Momentum Direction: (0.597195,-0.790215,0.137541) - New Polarization: (-0.767796,-0.612799,-0.186994) - *** FresnelRefraction *** -Track (trackID 1501, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.667999,-0.469035,0.57774) - Old Polarization: (-0.704835,-0.647824,0.289018) - New Momentum Direction: (-0.667999,-0.469035,0.57774) - New Polarization: (-0.704835,0.647824,-0.289018) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.667999,-0.469035,0.57774) - Old Polarization: (-0.704835,0.647824,-0.289018) - New Momentum Direction: (-0.667999,-0.469035,-0.57774) - New Polarization: (0.704835,-0.647824,-0.289018) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.667999,-0.469035,-0.57774) - Old Polarization: (0.704835,-0.647824,-0.289018) - New Momentum Direction: (-0.667999,0.469035,-0.57774) - New Polarization: (-0.704835,-0.647824,0.289018) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1500, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1499, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.816213,-0.575616,0.0496155) -Old Polarization: (-0.532869,-0.783212,-0.320359) -New Polarization: (-0.290131,-0.764562,-0.57556) -Polarization Change: (-0.290131,-0.764562,-0.57556) -New Momentum Direction: (0.751165,0.190697,-0.631969) -Momentum Change: (0.751165,0.190697,-0.631969) - Photon at Boundary! - Old Momentum Direction: (0.751165,0.190697,-0.631969) - Old Polarization: (-0.290131,-0.764562,-0.57556) - New Momentum Direction: (0.453738,0.257436,-0.85314) - New Polarization: (-0.516369,-0.704305,-0.487153) - *** FresnelRefraction *** -Track (trackID 1498, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.620948,-0.300189,0.724093) - Old Polarization: (-0.75989,-0.457191,0.462108) - New Momentum Direction: (0.841733,-0.406924,0.354822) - New Polarization: (-0.00108302,-0.658477,-0.7526) - *** FresnelRefraction *** -Track (trackID 1497, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.83417,0.443731,-0.327511) - Old Polarization: (-0.512731,0.405226,-0.7569) - New Momentum Direction: (0.665019,0.60088,-0.443501) - New Polarization: (-0.71864,0.353255,-0.598972) - *** FresnelRefraction *** -Track (trackID 1496, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.884477,0.16158,-0.437712) - Old Polarization: (-0.453627,0.0782595,-0.887749) - New Momentum Direction: (0.775997,0.218428,-0.591708) - New Polarization: (-0.621336,0.103364,-0.776696) - *** FresnelRefraction *** -Track (trackID 1495, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.854348,-0.499424,-0.143751) - Old Polarization: (-0.490582,-0.683728,-0.540227) - New Momentum Direction: (0.707767,-0.678884,-0.195406) - New Polarization: (-0.685362,-0.592779,-0.422956) - *** FresnelRefraction *** -Track (trackID 1494, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.564922,0.370987,0.737042) - Old Polarization: (-0.823069,0.316666,0.471467) - New Momentum Direction: (0.768708,0.504814,0.392748) - New Polarization: (-0.0405172,0.651254,-0.757778) - *** FresnelRefraction *** -Track (trackID 1493, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.818091,0.500678,-0.282929) - Old Polarization: (-0.531547,0.470523,-0.704319) - New Momentum Direction: (0.626687,0.678441,-0.383382) - New Polarization: (-0.747867,0.385353,-0.540554) - *** FresnelRefraction *** -Track (trackID 1492, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.878958,0.186278,-0.439014) - Old Polarization: (-0.46211,0.105203,-0.880561) - New Momentum Direction: (0.761641,0.253111,-0.596522) - New Polarization: (-0.637342,0.126336,-0.760154) - *** FresnelRefraction *** -Track (trackID 1491, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.822684,-0.568493,0.00262198) - Old Polarization: (-0.526862,-0.764154,-0.372135) - New Momentum Direction: (0.635223,-0.772321,0.00356206) - New Polarization: (-0.742375,-0.611852,-0.272979) - *** FresnelRefraction *** -Track (trackID 1490, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.801688,0.551054,-0.231593) - Old Polarization: (-0.550459,0.52958,-0.645399) - New Momentum Direction: (0.587037,0.746328,-0.313661) - New Polarization: (-0.775775,0.407838,-0.481499) - *** FresnelRefraction *** -Track (trackID 1489, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.846309,-0.522633,-0.10303) - Old Polarization: (-0.49959,-0.711614,-0.493978) - New Momentum Direction: (0.690273,-0.709886,-0.139944) - New Polarization: (-0.699558,-0.605391,-0.379631) - *** FresnelRefraction *** -Track (trackID 1488, parentID 1) is processed with stopping code 2 -### pop requested out of 61 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.818567,-0.574059,0.0201224) - Old Polarization: (-0.531627,-0.770399,-0.351933) - New Momentum Direction: (0.625235,-0.779958,0.0273398) - New Polarization: (-0.749726,-0.609993,-0.256554) - *** FresnelRefraction *** -Track (trackID 1487, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.764111,-0.599315,0.238654) - Old Polarization: (-0.594427,-0.797858,-0.100397) - New Momentum Direction: (0.479987,-0.815032,0.324555) - New Polarization: (-0.842761,-0.531137,-0.0874418) - *** FresnelRefraction *** -Track (trackID 1486, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1485, parentID 1) is processed with stopping code 2 -### pop requested out of 58 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1484, parentID 1) is processed with stopping code 2 -### pop requested out of 57 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.663554,-0.456367,0.592812) - Old Polarization: (-0.710015,-0.633847,0.306785) - New Momentum Direction: (-0.663554,-0.456367,0.592812) - New Polarization: (-0.710015,0.633847,-0.306785) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.663554,-0.456367,0.592812) - Old Polarization: (-0.710015,0.633847,-0.306785) - New Momentum Direction: (-0.663554,-0.456367,-0.592812) - New Polarization: (0.710015,-0.633847,-0.306785) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.663554,-0.456367,-0.592812) - Old Polarization: (0.710015,-0.633847,-0.306785) - New Momentum Direction: (-0.663554,0.456367,-0.592812) - New Polarization: (-0.710015,-0.633847,0.306785) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.663554,0.456367,-0.592812) -Old Polarization: (-0.710015,-0.633847,0.306785) -New Polarization: (0.54107,0.716599,-0.440147) -Polarization Change: (0.54107,0.716599,-0.440147) -New Momentum Direction: (-0.800359,0.278088,-0.531123) -Momentum Change: (-0.800359,0.278088,-0.531123) - -** Photon absorbed! ** -Track (trackID 1483, parentID 1) is processed with stopping code 2 -### pop requested out of 56 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1482, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.69527,0.70619,0.133772) - Old Polarization: (-0.673684,0.705157,-0.221144) - New Momentum Direction: (0.69527,-0.70619,0.133772) - New Polarization: (-0.714794,-0.69886,0.0257629) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.69527,-0.70619,0.133772) - Old Polarization: (-0.714794,-0.69886,0.0257629) - New Momentum Direction: (0.218276,-0.958836,0.18163) - New Polarization: (-0.973756,-0.226286,-0.0243562) - *** FresnelRefraction *** -Track (trackID 1481, parentID 1) is processed with stopping code 2 -### pop requested out of 54 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.819618,-0.5722,0.0285195) - Old Polarization: (-0.529403,-0.775464,-0.344075) - New Momentum Direction: (0.631841,-0.774137,0.0385844) - New Polarization: (-0.743602,-0.619461,-0.251643) - *** FresnelRefraction *** -Track (trackID 1480, parentID 1) is processed with stopping code 2 -### pop requested out of 53 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.562339,0.270865,0.781285) - Old Polarization: (-0.826748,0.202695,0.524789) - New Momentum Direction: (0.763967,0.367985,0.530039) - New Polarization: (0.258795,0.577735,-0.77411) - *** FresnelRefraction *** -Track (trackID 1479, parentID 1) is processed with stopping code 2 -### pop requested out of 52 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.889078,0.119508,-0.441879) - Old Polarization: (-0.448036,0.0293269,-0.893534) - New Momentum Direction: (0.785808,0.161467,-0.597021) - New Polarization: (-0.611432,0.0576002,-0.789198) - *** FresnelRefraction *** -Track (trackID 1478, parentID 1) is processed with stopping code 2 -### pop requested out of 51 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1477, parentID 1) is processed with stopping code 2 -### pop requested out of 50 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.686678,0.7019,0.189235) - Old Polarization: (-0.68443,0.711947,-0.157121) - New Momentum Direction: (0.92618,0.277571,0.255236) - New Polarization: (0.262284,-0.960517,0.0928129) - *** FresnelRefraction *** -Track (trackID 1476, parentID 1) is processed with stopping code 2 +Track (trackID 938, parentID 1) is processed with stopping code 2 ### pop requested out of 49 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.713845,0.697545,0.0621004) - Old Polarization: (-0.652242,0.694519,-0.303685) - New Momentum Direction: (0.308544,0.947463,0.0843498) - New Polarization: (-0.921693,0.319711,-0.219696) + 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) *** FresnelRefraction *** -Track (trackID 1475, parentID 1) is processed with stopping code 2 +Track (trackID 937, parentID 1) is processed with stopping code 2 ### pop requested out of 48 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.82592,0.471368,-0.309303) -Old Polarization: (-0.522818,0.435038,-0.733078) -New Polarization: (-0.72586,0.621017,-0.295745) -Polarization Change: (-0.72586,0.621017,-0.295745) -New Momentum Direction: (0.212549,-0.206412,-0.955101) -Momentum Change: (0.212549,-0.206412,-0.955101) Photon at Boundary! - Old Momentum Direction: (0.212549,-0.206412,-0.955101) - Old Polarization: (-0.72586,0.621017,-0.295745) - New Momentum Direction: (0.212549,-0.206412,0.955101) - New Polarization: (0.738106,-0.606601,-0.295355) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.212549,-0.206412,0.955101) - Old Polarization: (0.738106,-0.606601,-0.295355) - New Momentum Direction: (-0.212549,-0.206412,0.955101) - New Polarization: (0.738106,0.606601,0.295355) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.212549,-0.206412,0.955101) - Old Polarization: (0.738106,0.606601,0.295355) - New Momentum Direction: (-0.288401,-0.280074,0.915633) - New Polarization: (-0.615369,-0.678415,-0.40134) + 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) *** FresnelRefraction *** -Track (trackID 1474, parentID 1) is processed with stopping code 2 +Track (trackID 936, parentID 1) is processed with stopping code 2 ### pop requested out of 47 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.583233,0.508529,0.633433) - Old Polarization: (-0.803133,0.47785,0.35586) - New Momentum Direction: (0.583233,0.508529,-0.633433) - New Polarization: (0.803133,-0.47785,0.35586) + 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.583233,0.508529,-0.633433) - Old Polarization: (0.803133,-0.47785,0.35586) - New Momentum Direction: (-0.583233,0.508529,-0.633433) - New Polarization: (0.803133,0.47785,-0.35586) + 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 absorbed! ** -Track (trackID 1473, parentID 1) is processed with stopping code 2 + 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 ### pop requested out of 46 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.619403,0.633222,0.464079) - Old Polarization: (-0.762265,0.626533,0.162506) - New Momentum Direction: (0.619403,-0.633222,0.464079) - New Polarization: (0.762265,0.626533,-0.162506) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.619403,-0.633222,0.464079) - Old Polarization: (0.762265,0.626533,-0.162506) - New Momentum Direction: (-0.619403,-0.633222,0.464079) - New Polarization: (0.762265,-0.626533,0.162506) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1472, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.576487,0.437447,0.690147) - Old Polarization: (-0.812226,0.398963,0.42558) - New Momentum Direction: (0.576487,0.437447,-0.690147) - New Polarization: (0.30327,-0.898842,-0.316403) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.576487,0.437447,-0.690147) - Old Polarization: (0.30327,-0.898842,-0.316403) - New Momentum Direction: (-0.576487,0.437447,-0.690147) - New Polarization: (0.30327,0.898842,0.316403) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.576487,0.437447,-0.690147) - Old Polarization: (0.30327,0.898842,0.316403) - New Momentum Direction: (-0.576487,-0.437447,-0.690147) - New Polarization: (-0.30327,0.898842,-0.316403) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.576487,-0.437447,-0.690147) - Old Polarization: (-0.30327,0.898842,-0.316403) - New Momentum Direction: (-0.576487,-0.437447,0.690147) - New Polarization: (0.744829,-0.628639,0.223702) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.576487,-0.437447,0.690147) - Old Polarization: (0.744829,-0.628639,0.223702) - New Momentum Direction: (0.576487,-0.437447,0.690147) - New Polarization: (0.744829,0.628639,-0.223702) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.576487,-0.437447,0.690147) - Old Polarization: (0.744829,0.628639,-0.223702) - New Momentum Direction: (0.576487,0.437447,0.690147) - New Polarization: (-0.744829,0.628639,0.223702) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.576487,0.437447,0.690147) - Old Polarization: (-0.744829,0.628639,0.223702) - New Momentum Direction: (0.779885,0.591788,0.203879) - New Polarization: (-0.462103,0.764071,-0.450174) + 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 1471, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1470, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.802475,-0.589285,0.0936813) - Old Polarization: (-0.549789,-0.791247,-0.267695) - New Momentum Direction: (0.5876,-0.799116,0.127039) - New Polarization: (-0.775705,-0.600999,-0.192569) - *** FresnelRefraction *** -Track (trackID 1469, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.829793,-0.557957,-0.0112745) - Old Polarization: (-0.517194,-0.761268,-0.391127) - New Momentum Direction: (0.656923,-0.753804,-0.0152319) - New Polarization: (-0.724161,-0.62521,-0.291039) - *** FresnelRefraction *** -Track (trackID 1468, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.662919,0.690294,0.289885) - Old Polarization: (-0.71252,0.700576,-0.0388427) - New Momentum Direction: (0.893012,0.223694,0.390501) - New Polarization: (0.137128,-0.961706,0.237314) - *** FresnelRefraction *** -Track (trackID 1467, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.895311,-0.275247,-0.350225) - Old Polarization: (-0.440602,-0.431618,-0.787132) - New Momentum Direction: (0.798786,-0.371749,-0.473014) - New Polarization: (-0.598124,-0.406142,-0.690867) - *** FresnelRefraction *** -Track (trackID 1466, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.567197,0.230429,0.790689) - Old Polarization: (-0.823582,0.158716,0.544538) - New Momentum Direction: (0.766395,0.311355,0.561869) - New Polarization: (0.361571,0.513875,-0.777945) - *** FresnelRefraction *** -Track (trackID 1465, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.59104,0.55762,0.582865) - Old Polarization: (-0.793439,0.532093,0.29552) - New Momentum Direction: (-0.59104,0.55762,0.582865) - New Polarization: (-0.793439,-0.532093,-0.29552) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.59104,0.55762,0.582865) - Old Polarization: (-0.793439,-0.532093,-0.29552) - New Momentum Direction: (-0.59104,0.55762,-0.582865) - New Polarization: (0.793439,0.532093,-0.29552) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1464, parentID 1) is processed with stopping code 2 -### pop requested out of 37 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.879189,-0.41057,-0.241784) - Old Polarization: (-0.458698,-0.592009,-0.662662) - New Momentum Direction: (0.766411,-0.553504,-0.325957) - New Polarization: (-0.629351,-0.545466,-0.55352) - *** FresnelRefraction *** -Track (trackID 1463, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.796607,-0.593722,0.11363) - Old Polarization: (-0.556832,-0.793874,-0.244339) - New Momentum Direction: (0.57104,-0.806289,0.154313) - New Polarization: (-0.787177,-0.591146,-0.175781) - *** FresnelRefraction *** -Track (trackID 1462, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.891861,-0.29944,-0.338999) -Old Polarization: (-0.445953,-0.456923,-0.769641) -New Polarization: (0.663551,0.0958778,-0.741962) -Polarization Change: (0.663551,0.0958778,-0.741962) -New Momentum Direction: (-0.61616,-0.492458,-0.61468) -Momentum Change: (-0.61616,-0.492458,-0.61468) - Photon at Boundary! - Old Momentum Direction: (-0.61616,-0.492458,-0.61468) - Old Polarization: (0.663551,0.0958778,-0.741962) - New Momentum Direction: (-0.61616,-0.492458,0.61468) - New Polarization: (-0.663551,-0.0958778,-0.741962) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61616,-0.492458,0.61468) - Old Polarization: (-0.663551,-0.0958778,-0.741962) - New Momentum Direction: (-0.61616,0.492458,0.61468) - New Polarization: (0.663551,-0.0958778,0.741962) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61616,0.492458,0.61468) - Old Polarization: (0.663551,-0.0958778,0.741962) - New Momentum Direction: (0.61616,0.492458,0.61468) - New Polarization: (0.663551,0.0958778,-0.741962) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61616,0.492458,0.61468) - Old Polarization: (0.663551,0.0958778,-0.741962) - New Momentum Direction: (0.61616,0.492458,-0.61468) - New Polarization: (-0.663551,-0.0958778,-0.741962) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1461, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.897317,-0.167359,-0.408427) - Old Polarization: (-0.441013,-0.301928,-0.84519) - New Momentum Direction: (0.800148,-0.227426,-0.555014) - New Polarization: (-0.599538,-0.275751,-0.751342) - *** FresnelRefraction *** -Track (trackID 1460, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1459, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.565423,0.268309,0.77994) - Old Polarization: (-0.824656,0.201638,0.528474) - New Momentum Direction: (0.765656,0.363325,0.530817) - New Polarization: (0.265086,0.573659,-0.775012) - *** FresnelRefraction *** -Track (trackID 1458, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.810581,-0.581919,0.0657982) - Old Polarization: (-0.539988,-0.786163,-0.3006) - New Momentum Direction: (0.60977,-0.78756,0.0890502) - New Polarization: (-0.759727,-0.612807,-0.217448) - *** FresnelRefraction *** -Track (trackID 1457, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.663113,0.703721,0.255066) - Old Polarization: (-0.710437,0.699015,-0.0815902) - New Momentum Direction: (0.902054,0.256723,0.346975) - New Polarization: (0.196669,-0.960055,0.199038) - *** FresnelRefraction *** -Track (trackID 1456, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1455, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.565396,0.165178,0.808111) - Old Polarization: (-0.824395,0.0817398,0.560081) - New Momentum Direction: (0.766112,0.223816,0.602477) - New Polarization: (0.500735,0.379797,-0.777829) - *** FresnelRefraction *** -Track (trackID 1454, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.830452,-0.55623,-0.0309531) - Old Polarization: (-0.517868,-0.75031,-0.410911) - New Momentum Direction: (0.653763,-0.75553,-0.0420437) - New Polarization: (-0.728382,-0.613269,-0.305549) - *** FresnelRefraction *** -Track (trackID 1453, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1452, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.721732,-0.557654,0.410031) - Old Polarization: (-0.643268,-0.759099,0.0998764) - New Momentum Direction: (-0.721732,-0.557654,0.410031) - New Polarization: (-0.512234,0.828724,0.225459) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.721732,-0.557654,0.410031) - Old Polarization: (-0.512234,0.828724,0.225459) - New Momentum Direction: (-0.721732,0.557654,0.410031) - New Polarization: (0.512234,0.828724,-0.225459) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.721732,0.557654,0.410031) - Old Polarization: (0.512234,0.828724,-0.225459) - New Momentum Direction: (-0.721732,0.557654,-0.410031) - New Polarization: (-0.512234,-0.828724,-0.225459) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.721732,0.557654,-0.410031) - Old Polarization: (-0.512234,-0.828724,-0.225459) - New Momentum Direction: (0.721732,0.557654,-0.410031) - New Polarization: (0.300027,0.281797,0.911358) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.721732,0.557654,-0.410031) - Old Polarization: (0.300027,0.281797,0.911358) - New Momentum Direction: (0.721732,-0.557654,-0.410031) - New Polarization: (-0.300027,0.281797,-0.911358) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.721732,-0.557654,-0.410031) - Old Polarization: (-0.300027,0.281797,-0.911358) - New Momentum Direction: (0.351628,-0.754208,-0.554552) - New Polarization: (-0.547692,0.314678,-0.775249) - *** FresnelRefraction *** -Track (trackID 1451, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.834018,-0.549314,-0.0516509) - Old Polarization: (-0.514182,-0.739889,-0.433798) - New Momentum Direction: (0.660794,-0.747271,-0.0702644) - New Polarization: (-0.723499,-0.609252,-0.324593) - *** FresnelRefraction *** -Track (trackID 1450, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.772792,-0.599883,0.207203) - Old Polarization: (-0.584357,-0.799936,-0.136492) - New Momentum Direction: (0.506238,-0.815139,0.281553) - New Polarization: (-0.82767,-0.550941,-0.106893) - *** FresnelRefraction *** -Track (trackID 1449, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1448, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.895144,-0.236635,-0.377785) - Old Polarization: (-0.443239,-0.382162,-0.810858) - New Momentum Direction: (0.795927,-0.321364,-0.513055) - New Polarization: (-0.603582,-0.355743,-0.713538) - *** FresnelRefraction *** -Track (trackID 1447, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.607599,-0.232402,0.759482) - Old Polarization: (-0.775639,-0.379382,0.504434) - New Momentum Direction: (0.822922,-0.314761,0.472995) - New Polarization: (0.210663,-0.604127,-0.768539) - *** FresnelRefraction *** -Track (trackID 1446, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1445, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1444, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.712314,0.698738,0.0661394) -Old Polarization: (-0.653981,0.694976,-0.298861) -New Polarization: (-0.110388,-0.992305,0.0560771) -Polarization Change: (-0.110388,-0.992305,0.0560771) -New Momentum Direction: (-0.936387,0.0849224,-0.340541) -Momentum Change: (-0.936387,0.0849224,-0.340541) - Photon at Boundary! - Old Momentum Direction: (-0.936387,0.0849224,-0.340541) - Old Polarization: (-0.110388,-0.992305,0.0560771) - New Momentum Direction: (-0.87892,0.11541,-0.462796) - New Polarization: (0.197408,-0.795262,-0.573226) - *** FresnelRefraction *** -Track (trackID 1443, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1442, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.897024,-0.270926,-0.349208) - Old Polarization: (-0.437289,-0.429208,-0.79029) - New Momentum Direction: (0.803576,-0.364848,-0.470269) - New Polarization: (-0.591805,-0.405464,-0.696682) - *** FresnelRefraction *** -Track (trackID 1441, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.563227,0.22926,0.793861) - Old Polarization: (-0.826302,0.155374,0.541372) - New Momentum Direction: (0.764192,0.311062,0.565023) - New Polarization: (0.365499,0.512941,-0.776725) - *** FresnelRefraction *** -Track (trackID 1440, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.655591,0.697346,0.289669) - Old Polarization: (-0.719279,0.693477,-0.0415658) - New Momentum Direction: (0.890898,0.226607,0.393637) - New Polarization: (0.138916,-0.961066,0.238861) - *** FresnelRefraction *** -Track (trackID 1439, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1438, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.896301,0.0150245,-0.443192) - Old Polarization: (-0.440097,-0.0924697,-0.893176) - New Momentum Direction: (0.800155,0.0203216,-0.599448) - New Polarization: (-0.597386,-0.0624379,-0.799519) - *** FresnelRefraction *** -Track (trackID 1437, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.886791,-0.356418,-0.294225) - Old Polarization: (-0.450706,-0.525995,-0.721244) - New Momentum Direction: (0.781074,-0.481555,-0.397527) - New Polarization: (-0.616122,-0.49078,-0.616058) - *** FresnelRefraction *** -Track (trackID 1436, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1435, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.886001,0.144598,-0.44056) - Old Polarization: (-0.452097,0.0583238,-0.89006) - New Momentum Direction: (0.778872,0.195585,-0.595907) - New Polarization: (-0.618794,0.0847526,-0.780968) - *** FresnelRefraction *** -Track (trackID 1434, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1433, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.693609,-0.516647,0.501978) - Old Polarization: (-0.675776,-0.708012,0.205052) - New Momentum Direction: (0.216184,-0.700255,0.680372) - New Polarization: (-0.951009,-0.308769,-0.0156146) - *** FresnelRefraction *** -Track (trackID 1432, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1431, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1430, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.629924,0.662422,0.405453) - Old Polarization: (-0.749241,0.655789,0.0926264) - New Momentum Direction: (0.629924,-0.662422,0.405453) - New Polarization: (0.749241,0.655789,-0.0926264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.629924,-0.662422,0.405453) - Old Polarization: (0.749241,0.655789,-0.0926264) - New Momentum Direction: (-0.629924,-0.662422,0.405453) - New Polarization: (0.749241,-0.655789,0.0926264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629924,-0.662422,0.405453) - Old Polarization: (0.749241,-0.655789,0.0926264) - New Momentum Direction: (-0.629924,-0.662422,-0.405453) - New Polarization: (-0.749241,0.655789,0.0926264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629924,-0.662422,-0.405453) - Old Polarization: (-0.749241,0.655789,0.0926264) - New Momentum Direction: (-0.629924,0.662422,-0.405453) - New Polarization: (0.749241,0.655789,-0.0926264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629924,0.662422,-0.405453) - Old Polarization: (0.749241,0.655789,-0.0926264) - New Momentum Direction: (0.629924,0.662422,-0.405453) - New Polarization: (0.749241,-0.655789,0.0926264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.629924,0.662422,-0.405453) - Old Polarization: (0.749241,-0.655789,0.0926264) - New Momentum Direction: (0.629924,0.662422,0.405453) - New Polarization: (-0.749241,0.655789,0.0926264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.629924,0.662422,0.405453) - Old Polarization: (-0.749241,0.655789,0.0926264) - New Momentum Direction: (0.629924,-0.662422,0.405453) - New Polarization: (0.749241,0.655789,-0.0926264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.629924,-0.662422,0.405453) - Old Polarization: (0.749241,0.655789,-0.0926264) - New Momentum Direction: (-0.629924,-0.662422,0.405453) - New Polarization: (0.749241,-0.655789,0.0926264) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1429, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.683988,0.705006,0.18742) - Old Polarization: (-0.687071,0.708923,-0.159254) - New Momentum Direction: (0.925989,0.279579,0.253731) - New Polarization: (0.264799,-0.959965,0.0913766) - *** FresnelRefraction *** -Track (trackID 1428, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 43 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 44 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.919273,0.161824,-0.358818) - Old Polarization: (-0.362717,0.702321,-0.61252) - New Momentum Direction: (0.846677,0.218758,-0.485059) - New Polarization: (-0.508534,0.600983,-0.616614) - *** FresnelRefraction *** -Track (trackID 1554, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.498762,-0.740682,0.450141) - Old Polarization: (-0.861808,-0.368481,0.34858) - New Momentum Direction: (0.678044,-0.407159,0.611946) - New Polarization: (-0.268966,0.637369,0.722092) - *** FresnelRefraction *** -Track (trackID 1553, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.511984,-0.702657,0.494111) - Old Polarization: (-0.8502,-0.332409,0.408246) - New Momentum Direction: (0.691338,-0.277292,0.667204) - New Polarization: (-0.413253,0.605724,0.679942) - *** FresnelRefraction *** -Track (trackID 1552, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.940069,0.315128,-0.130251) - Old Polarization: (-0.340883,0.877883,-0.336335) - New Momentum Direction: (0.886285,0.428021,-0.176912) - New Polarization: (-0.463067,0.825777,-0.321964) - *** FresnelRefraction *** -Track (trackID 1551, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.907146,0.351601,0.231219) - Old Polarization: (-0.379919,0.920563,0.0906986) - New Momentum Direction: (0.820456,0.477677,0.314128) - New Polarization: (-0.540402,0.827302,0.153416) - *** FresnelRefraction *** -Track (trackID 1550, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.497054,-0.814296,0.299766) - Old Polarization: (-0.867715,-0.46525,0.174968) - New Momentum Direction: (0.497054,0.814296,0.299766) - New Polarization: (0.563741,-0.0404207,-0.824962) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.497054,0.814296,0.299766) - Old Polarization: (0.563741,-0.0404207,-0.824962) - New Momentum Direction: (-0.497054,0.814296,0.299766) - New Polarization: (0.563741,0.0404207,0.824962) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.497054,0.814296,0.299766) - Old Polarization: (0.563741,0.0404207,0.824962) - New Momentum Direction: (-0.497054,0.814296,-0.299766) - New Polarization: (-0.563741,-0.0404207,0.824962) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.497054,0.814296,-0.299766) - Old Polarization: (-0.563741,-0.0404207,0.824962) - New Momentum Direction: (-0.671569,0.620451,-0.405013) - New Polarization: (-0.565889,-0.076644,0.820911) - *** FresnelRefraction *** -Track (trackID 1549, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.942057,0.301783,-0.14648) - Old Polarization: (-0.334907,0.87104,-0.359341) - New Momentum Direction: (0.891475,0.407593,-0.197838) - New Polarization: (-0.452671,0.819604,-0.351195) - *** FresnelRefraction *** -Track (trackID 1548, parentID 1) is processed with stopping code 2 -### pop requested out of 37 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1547, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.727715,-0.00216709,0.685877) - Old Polarization: (-0.591784,0.503542,0.629474) - New Momentum Direction: (0.365516,-0.00294095,0.930801) - New Polarization: (-0.867051,0.362646,0.341628) - *** FresnelRefraction *** -Track (trackID 1546, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.538456,-0.835577,-0.108979) - Old Polarization: (-0.816541,-0.485443,-0.312418) - New Momentum Direction: (0.729782,-0.667534,-0.147701) - New Polarization: (0.541877,0.696489,-0.470395) - *** FresnelRefraction *** -Track (trackID 1545, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.938117,0.274218,-0.211519) - Old Polarization: (-0.341577,0.833356,-0.434561) - New Momentum Direction: (0.883101,0.371505,-0.286561) - New Polarization: (-0.465714,0.768214,-0.439269) - *** FresnelRefraction *** -Track (trackID 1544, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1543, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.806975,0.183424,0.561379) - Old Polarization: (-0.498255,0.72177,0.480405) - New Momentum Direction: (0.596685,0.249233,0.762791) - New Polarization: (-0.732489,0.557395,0.390859) - *** FresnelRefraction *** -Track (trackID 1542, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.561584,-0.485811,0.669785) - Old Polarization: (-0.788632,-0.0693304,0.610945) - New Momentum Direction: (0.561584,-0.485811,-0.669785) - New Polarization: (0.788632,0.0693304,0.610945) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.561584,-0.485811,-0.669785) - Old Polarization: (0.788632,0.0693304,0.610945) - New Momentum Direction: (-0.561584,-0.485811,-0.669785) - New Polarization: (0.788632,-0.0693304,-0.610945) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.561584,-0.485811,-0.669785) - Old Polarization: (0.788632,-0.0693304,-0.610945) - New Momentum Direction: (-0.561584,0.485811,-0.669785) - New Polarization: (-0.788632,-0.0693304,0.610945) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.561584,0.485811,-0.669785) - Old Polarization: (-0.788632,-0.0693304,0.610945) - New Momentum Direction: (-0.561584,0.485811,0.669785) - New Polarization: (0.788632,0.0693304,0.610945) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.561584,0.485811,0.669785) - Old Polarization: (0.788632,0.0693304,0.610945) - New Momentum Direction: (0.561584,0.485811,0.669785) - New Polarization: (0.788632,-0.0693304,-0.610945) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.561584,0.485811,0.669785) - Old Polarization: (0.788632,-0.0693304,-0.610945) - New Momentum Direction: (0.561584,-0.485811,0.669785) - New Polarization: (-0.788632,-0.0693304,0.610945) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.561584,-0.485811,0.669785) - Old Polarization: (-0.788632,-0.0693304,0.610945) - New Momentum Direction: (0.561584,-0.485811,-0.669785) - New Polarization: (0.788632,0.0693304,0.610945) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1541, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1540, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.831037,0.219577,0.511041) - Old Polarization: (-0.467799,0.772957,0.428604) - New Momentum Direction: (0.660274,0.296482,0.690027) - New Polarization: (-0.682196,0.621004,0.385956) - *** FresnelRefraction *** -Track (trackID 1539, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.940969,0.319041,-0.11309) - Old Polarization: (-0.33849,0.885873,-0.31726) - New Momentum Direction: (0.88854,0.432435,-0.153285) - New Polarization: (-0.458797,0.836733,-0.29897) - *** FresnelRefraction *** -Track (trackID 1538, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.924016,0.354179,0.144057) - Old Polarization: (-0.356355,0.934282,-0.0112839) - New Momentum Direction: (0.856423,0.47823,0.194513) - New Polarization: (-0.496532,0.866169,0.0566226) - *** FresnelRefraction *** -Track (trackID 1537, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.874458,0.306095,0.376337) - Old Polarization: (-0.417755,0.86952,0.263468) - New Momentum Direction: (0.753086,0.415144,0.510409) - New Polarization: (-0.605395,0.741005,0.290533) - *** FresnelRefraction *** -Track (trackID 1536, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.519622,-0.643529,0.562018) - Old Polarization: (-0.837954,-0.255416,0.482283) - New Momentum Direction: (0.519622,0.643529,0.562018) - New Polarization: (0.837954,-0.255416,-0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.519622,0.643529,0.562018) - Old Polarization: (0.837954,-0.255416,-0.482283) - New Momentum Direction: (0.519622,0.643529,-0.562018) - New Polarization: (-0.837954,0.255416,-0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.519622,0.643529,-0.562018) - Old Polarization: (-0.837954,0.255416,-0.482283) - New Momentum Direction: (-0.519622,0.643529,-0.562018) - New Polarization: (-0.837954,-0.255416,0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.519622,0.643529,-0.562018) - Old Polarization: (-0.837954,-0.255416,0.482283) - New Momentum Direction: (-0.519622,-0.643529,-0.562018) - New Polarization: (0.837954,-0.255416,-0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.519622,-0.643529,-0.562018) - Old Polarization: (0.837954,-0.255416,-0.482283) - New Momentum Direction: (-0.519622,-0.643529,0.562018) - New Polarization: (-0.837954,0.255416,-0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.519622,-0.643529,0.562018) - Old Polarization: (-0.837954,0.255416,-0.482283) - New Momentum Direction: (0.519622,-0.643529,0.562018) - New Polarization: (-0.837954,-0.255416,0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.519622,-0.643529,0.562018) - Old Polarization: (-0.837954,-0.255416,0.482283) - New Momentum Direction: (0.519622,0.643529,0.562018) - New Polarization: (0.837954,-0.255416,-0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.519622,0.643529,0.562018) - Old Polarization: (0.837954,-0.255416,-0.482283) - New Momentum Direction: (0.519622,0.643529,-0.562018) - New Polarization: (-0.837954,0.255416,-0.482283) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.519622,0.643529,-0.562018) - Old Polarization: (-0.837954,0.255416,-0.482283) - New Momentum Direction: (0.519622,-0.643529,-0.562018) - New Polarization: (0.837954,0.255416,0.482283) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1535, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.512195,-0.858691,0.0175025) - Old Polarization: (-0.846082,-0.507967,-0.161599) - New Momentum Direction: (0.696169,-0.717484,0.0237892) - New Polarization: (0.717055,0.693401,-0.0709019) - *** FresnelRefraction *** -Track (trackID 1534, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.530987,-0.61319,0.584851) - Old Polarization: (-0.826922,-0.224218,0.51568) - New Momentum Direction: (0.530987,0.61319,0.584851) - New Polarization: (0.826922,-0.224218,-0.51568) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.530987,0.61319,0.584851) - Old Polarization: (0.826922,-0.224218,-0.51568) - New Momentum Direction: (0.530987,0.61319,-0.584851) - New Polarization: (-0.826922,0.224218,-0.51568) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.530987,0.61319,-0.584851) - Old Polarization: (-0.826922,0.224218,-0.51568) - New Momentum Direction: (-0.530987,0.61319,-0.584851) - New Polarization: (-0.826922,-0.224218,0.51568) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.530987,0.61319,-0.584851) - Old Polarization: (-0.826922,-0.224218,0.51568) - New Momentum Direction: (-0.530987,-0.61319,-0.584851) - New Polarization: (0.826922,-0.224218,-0.51568) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.530987,-0.61319,-0.584851) - Old Polarization: (0.826922,-0.224218,-0.51568) - New Momentum Direction: (-0.530987,-0.61319,0.584851) - New Polarization: (-0.826922,0.224218,-0.51568) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.530987,-0.61319,0.584851) - Old Polarization: (-0.826922,0.224218,-0.51568) - New Momentum Direction: (0.530987,-0.61319,0.584851) - New Polarization: (-0.826922,-0.224218,0.51568) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1533, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.740484,-0.413235,-0.530019) - Old Polarization: (-0.576416,0.0150247,-0.817018) - New Momentum Direction: (0.41769,-0.55866,-0.716543) - New Polarization: (-0.841274,0.0601019,-0.537258) - *** FresnelRefraction *** -Track (trackID 1532, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.534241,-0.61417,0.580847) - Old Polarization: (-0.825096,-0.229411,0.51632) - New Momentum Direction: (0.534241,0.61417,0.580847) - New Polarization: (0.825096,-0.229411,-0.51632) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.534241,0.61417,0.580847) - Old Polarization: (0.825096,-0.229411,-0.51632) - New Momentum Direction: (0.534241,0.61417,-0.580847) - New Polarization: (-0.825096,0.229411,-0.51632) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.534241,0.61417,-0.580847) - Old Polarization: (-0.825096,0.229411,-0.51632) - New Momentum Direction: (-0.534241,0.61417,-0.580847) - New Polarization: (-0.825096,-0.229411,0.51632) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.534241,0.61417,-0.580847) -Old Polarization: (-0.825096,-0.229411,0.51632) -New Polarization: (-0.480076,-0.766936,0.425835) -Polarization Change: (-0.480076,-0.766936,0.425835) -New Momentum Direction: (0.728621,-0.618942,-0.293295) -Momentum Change: (0.728621,-0.618942,-0.293295) - Photon at Boundary! - Old Momentum Direction: (0.728621,-0.618942,-0.293295) - Old Polarization: (-0.480076,-0.766936,0.425835) - New Momentum Direction: (0.386685,-0.83338,-0.394909) - New Polarization: (-0.758958,-0.53084,0.377083) - *** FresnelRefraction *** -Track (trackID 1531, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1530, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.938665,0.343901,0.0252838) - Old Polarization: (-0.336215,0.929038,-0.154426) - New Momentum Direction: (0.885974,0.462487,0.0340023) - New Polarization: (-0.457328,0.883528,-0.101143) - *** FresnelRefraction *** -Track (trackID 1529, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.650864,-0.621541,-0.435962) - Old Polarization: (-0.682297,-0.227054,-0.694922) - New Momentum Direction: (-0.650864,-0.621541,-0.435962) - New Polarization: (-0.682297,0.227054,0.694922) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.650864,-0.621541,-0.435962) - Old Polarization: (-0.682297,0.227054,0.694922) - New Momentum Direction: (-0.650864,0.621541,-0.435962) - New Polarization: (0.682297,0.227054,-0.694922) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1528, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.830311,0.218342,0.512748) - Old Polarization: (-0.468702,0.77134,0.430527) - New Momentum Direction: (0.658519,0.294843,0.692402) - New Polarization: (-0.683632,0.619038,0.386575) - *** FresnelRefraction *** -Track (trackID 1527, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.940685,0.284887,-0.184261) - Old Polarization: (-0.336736,0.850351,-0.404366) - New Momentum Direction: (0.88876,0.384884,-0.248938) - New Polarization: (-0.456511,0.792146,-0.405095) - *** FresnelRefraction *** -Track (trackID 1526, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.870523,-0.0344159,-0.490924) - Old Polarization: (-0.419385,0.470079,-0.776622) - New Momentum Direction: (0.748749,-0.0463552,-0.66123) - New Polarization: (-0.605411,0.358375,-0.710665) - *** FresnelRefraction *** -Track (trackID 1525, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.762568,-0.356227,-0.539993) - Old Polarization: (-0.549875,0.0827827,-0.831135) - New Momentum Direction: (0.486788,-0.481013,-0.729153) - New Polarization: (-0.802558,0.0832811,-0.590733) - *** FresnelRefraction *** -Track (trackID 1524, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.494283,-0.775864,0.392072) - Old Polarization: (-0.867454,-0.410832,0.280606) - New Momentum Direction: (0.671563,-0.515015,0.532693) - New Polarization: (-0.0761199,0.667177,0.741) - *** FresnelRefraction *** -Track (trackID 1523, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1522, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1521, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1520, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.589922,-0.399008,0.701986) - Old Polarization: (-0.756022,0.0323953,0.653745) - New Momentum Direction: (0.589922,-0.399008,-0.701986) - New Polarization: (-0.125344,0.813585,-0.567775) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.589922,-0.399008,-0.701986) - Old Polarization: (-0.125344,0.813585,-0.567775) - New Momentum Direction: (-0.589922,-0.399008,-0.701986) - New Polarization: (-0.125344,-0.813585,0.567775) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.589922,-0.399008,-0.701986) - Old Polarization: (-0.125344,-0.813585,0.567775) - New Momentum Direction: (-0.589922,0.399008,-0.701986) - New Polarization: (0.125344,-0.813585,-0.567775) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1519, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.703655,-0.0754556,0.706524) - Old Polarization: (-0.620481,0.419263,0.662738) - New Momentum Direction: (-0.703655,-0.0754556,0.706524) - New Polarization: (-0.498548,-0.656069,-0.56659) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.703655,-0.0754556,0.706524) - Old Polarization: (-0.498548,-0.656069,-0.56659) - New Momentum Direction: (-0.950198,-0.101893,0.29452) - New Polarization: (-0.216029,-0.465799,-0.858116) - *** FresnelRefraction *** -Track (trackID 1518, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.803266,-0.240874,-0.544741) - Old Polarization: (-0.501117,0.221032,-0.836676) - New Momentum Direction: (0.594181,-0.325279,-0.735624) - New Polarization: (-0.732117,0.160035,-0.662113) - *** FresnelRefraction *** -Track (trackID 1517, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.918166,0.35939,0.166765) - Old Polarization: (-0.36676,0.930201,0.0146374) - New Momentum Direction: (0.842864,0.488135,0.226506) - New Polarization: (-0.515862,0.852751,0.0818657) - *** FresnelRefraction *** -Track (trackID 1516, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.754792,0.0643026,0.652805) - Old Polarization: (-0.559753,0.582,0.589875) - New Momentum Direction: (0.455078,0.0872888,0.886163) - New Polarization: (-0.821711,0.424584,0.380157) - *** FresnelRefraction *** -Track (trackID 1515, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.833211,-0.140122,-0.534907) - Old Polarization: (-0.466818,0.340247,-0.81628) - New Momentum Direction: (0.661105,-0.190128,-0.725804) - New Polarization: (-0.683731,0.245672,-0.687137) - *** FresnelRefraction *** -Track (trackID 1514, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1513, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.555002,-0.813027,-0.175957) - Old Polarization: (-0.797047,-0.459205,-0.392233) - New Momentum Direction: (0.751952,-0.614601,-0.238398) - New Polarization: (0.366983,0.690694,-0.623109) - *** FresnelRefraction *** -Track (trackID 1512, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 44 -Track (trackID 1, parentID 0) is processed with stopping code 4 +Track (trackID 934, parentID 1) is processed with stopping code 2 ### pop requested out of 45 stacked tracks. Scattering Photon! -Old Momentum Direction: (0.58186,-0.547178,-0.601693) -Old Polarization: (-0.389185,0.462287,-0.796759) -New Polarization: (-0.179599,0.710491,-0.680402) -Polarization Change: (-0.179599,0.710491,-0.680402) -New Momentum Direction: (-0.648085,-0.605796,-0.461517) -Momentum Change: (-0.648085,-0.605796,-0.461517) +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.648085,-0.605796,-0.461517) - Old Polarization: (-0.179599,0.710491,-0.680402) - New Momentum Direction: (-0.648085,0.605796,-0.461517) - New Polarization: (0.179599,0.710491,0.680402) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1598, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 933, parentID 1) is processed with stopping code 2 ### pop requested out of 44 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.98845,-0.122512,-0.0892017) - Old Polarization: (0.105612,0.979011,-0.174306) - New Momentum Direction: (0.978547,-0.166554,-0.121269) - New Polarization: (-0.164361,-0.276187,-0.946946) + 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) *** FresnelRefraction *** -Track (trackID 1597, parentID 1) is processed with stopping code 2 +Track (trackID 932, parentID 1) is processed with stopping code 2 ### pop requested out of 43 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.695418,-0.445804,-0.563607) - Old Polarization: (-0.246224,0.589008,-0.769704) - New Momentum Direction: (0.253316,-0.600139,-0.758726) - New Polarization: (-0.474904,0.606146,-0.638007) + 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 1596, parentID 1) is processed with stopping code 2 +Track (trackID 931, parentID 1) is processed with stopping code 2 ### pop requested out of 42 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.280693,-0.841439,-0.461727) -Old Polarization: (-0.762137,0.0970095,-0.640106) -New Polarization: (0.322806,0.635415,0.701458) -Polarization Change: (0.322806,0.635415,0.701458) -New Momentum Direction: (0.720666,-0.645455,0.253039) -Momentum Change: (0.720666,-0.645455,0.253039) Photon at Boundary! - Old Momentum Direction: (0.720666,-0.645455,0.253039) - Old Polarization: (0.322806,0.635415,0.701458) - New Momentum Direction: (0.720666,0.645455,0.253039) - New Polarization: (-0.322806,0.635415,-0.701458) - *** TotalInternalReflection *** + 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.720666,0.645455,0.253039) - Old Polarization: (-0.322806,0.635415,-0.701458) - New Momentum Direction: (0.355173,0.870311,0.34119) - New Polarization: (-0.577089,0.49127,-0.652397) + 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) *** FresnelRefraction *** -Track (trackID 1595, parentID 1) is processed with stopping code 2 +Track (trackID 930, parentID 1) is processed with stopping code 2 ### pop requested out of 41 stacked tracks. ** Photon absorbed! ** -Track (trackID 1594, parentID 1) is processed with stopping code 2 +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.190437,-0.871544,0.451824) - Old Polarization: (-0.869792,0.0636094,0.489302) - New Momentum Direction: (0.257824,-0.747892,0.611706) - New Polarization: (-0.854916,0.118387,0.505078) + 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) *** FresnelRefraction *** -Track (trackID 1593, parentID 1) is processed with stopping code 2 +Track (trackID 928, parentID 1) is processed with stopping code 2 ### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.251119,-0.808344,0.532465) - Old Polarization: (-0.795614,0.140935,0.589182) - New Momentum Direction: (0.339818,-0.604442,0.720537) - New Polarization: (-0.769264,0.262123,0.582687) - *** FresnelRefraction *** -Track (trackID 1592, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 927, parentID 1) is processed with stopping code 2 ### pop requested out of 38 stacked tracks. ** Photon absorbed! ** -Track (trackID 1591, parentID 1) is processed with stopping code 2 +Track (trackID 926, parentID 1) is processed with stopping code 2 ### pop requested out of 37 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.65384,-0.407347,0.637622) -Old Polarization: (-0.300946,0.633176,0.713106) -New Polarization: (0.141311,-0.973365,-0.180532) -Polarization Change: (0.141311,-0.973365,-0.180532) -New Momentum Direction: (-0.307769,-0.21652,0.926497) -Momentum Change: (-0.307769,-0.21652,0.926497) - -** Photon absorbed! ** -Track (trackID 1590, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 925, parentID 1) is processed with stopping code 2 ### pop requested out of 36 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.481205,-0.578258,0.658832) - Old Polarization: (-0.512582,0.424082,0.746602) - New Momentum Direction: (0.481205,-0.578258,-0.658832) - New Polarization: (0.512582,-0.424082,0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.481205,-0.578258,-0.658832) - Old Polarization: (0.512582,-0.424082,0.746602) - New Momentum Direction: (0.481205,0.578258,-0.658832) - New Polarization: (-0.512582,-0.424082,-0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.481205,0.578258,-0.658832) - Old Polarization: (-0.512582,-0.424082,-0.746602) - New Momentum Direction: (-0.481205,0.578258,-0.658832) - New Polarization: (-0.512582,0.424082,0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.481205,0.578258,-0.658832) - Old Polarization: (-0.512582,0.424082,0.746602) - New Momentum Direction: (-0.481205,0.578258,0.658832) - New Polarization: (0.512582,-0.424082,0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.481205,0.578258,0.658832) - Old Polarization: (0.512582,-0.424082,0.746602) - New Momentum Direction: (-0.481205,-0.578258,0.658832) - New Polarization: (-0.512582,-0.424082,-0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.481205,-0.578258,0.658832) - Old Polarization: (-0.512582,-0.424082,-0.746602) - New Momentum Direction: (0.481205,-0.578258,0.658832) - New Polarization: (-0.512582,0.424082,0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.481205,-0.578258,0.658832) - Old Polarization: (-0.512582,0.424082,0.746602) - New Momentum Direction: (0.481205,-0.578258,-0.658832) - New Polarization: (0.512582,-0.424082,0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.481205,-0.578258,-0.658832) - Old Polarization: (0.512582,-0.424082,0.746602) - New Momentum Direction: (0.481205,0.578258,-0.658832) - New Polarization: (-0.512582,-0.424082,-0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.481205,0.578258,-0.658832) - Old Polarization: (-0.512582,-0.424082,-0.746602) - New Momentum Direction: (-0.481205,0.578258,-0.658832) - New Polarization: (-0.512582,0.424082,0.746602) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.481205,0.578258,-0.658832) - Old Polarization: (-0.512582,0.424082,0.746602) - New Momentum Direction: (-0.481205,0.578258,0.658832) - New Polarization: (0.512582,-0.424082,0.746602) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1589, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 924, parentID 1) is processed with stopping code 2 ### pop requested out of 35 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1588, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1587, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.437742,-0.696755,-0.568256) - Old Polarization: (-0.567631,0.275981,-0.775648) - New Momentum Direction: (0.589241,-0.260163,-0.764925) - New Polarization: (-0.580844,0.521685,-0.624872) - *** FresnelRefraction *** -Track (trackID 1586, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.136035,-0.965981,-0.219942) - Old Polarization: (-0.939417,-0.0552691,-0.338291) - New Momentum Direction: (0.183771,-0.936988,-0.297122) - New Polarization: (-0.675026,0.0994304,-0.731063) - *** FresnelRefraction *** -Track (trackID 1585, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.95825,-0.136149,0.251438) - Old Polarization: (0.073746,0.96729,0.242719) - New Momentum Direction: (0.921979,-0.184388,0.340524) - New Polarization: (-0.132335,0.676392,0.724556) - *** FresnelRefraction *** -Track (trackID 1584, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.50378,-0.549739,0.666328) - Old Polarization: (-0.484103,0.459182,0.744846) - New Momentum Direction: (0.50378,-0.549739,-0.666328) - New Polarization: (0.484103,-0.459182,0.744846) + 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.50378,-0.549739,-0.666328) - Old Polarization: (0.484103,-0.459182,0.744846) - New Momentum Direction: (0.50378,0.549739,-0.666328) - New Polarization: (-0.484103,-0.459182,-0.744846) + 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.50378,0.549739,-0.666328) - Old Polarization: (-0.484103,-0.459182,-0.744846) - New Momentum Direction: (-0.50378,0.549739,-0.666328) - New Polarization: (-0.484103,0.459182,0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.50378,0.549739,-0.666328) - Old Polarization: (-0.484103,0.459182,0.744846) - New Momentum Direction: (-0.50378,0.549739,0.666328) - New Polarization: (0.484103,-0.459182,0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.50378,0.549739,0.666328) - Old Polarization: (0.484103,-0.459182,0.744846) - New Momentum Direction: (-0.50378,-0.549739,0.666328) - New Polarization: (-0.484103,-0.459182,-0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.50378,-0.549739,0.666328) - Old Polarization: (-0.484103,-0.459182,-0.744846) - New Momentum Direction: (0.50378,-0.549739,0.666328) - New Polarization: (-0.484103,0.459182,0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.50378,-0.549739,0.666328) - Old Polarization: (-0.484103,0.459182,0.744846) - New Momentum Direction: (0.50378,-0.549739,-0.666328) - New Polarization: (0.484103,-0.459182,0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.50378,-0.549739,-0.666328) - Old Polarization: (0.484103,-0.459182,0.744846) - New Momentum Direction: (0.50378,0.549739,-0.666328) - New Polarization: (-0.484103,-0.459182,-0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.50378,0.549739,-0.666328) - Old Polarization: (-0.484103,-0.459182,-0.744846) - New Momentum Direction: (-0.50378,0.549739,-0.666328) - New Polarization: (-0.484103,0.459182,0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.50378,0.549739,-0.666328) - Old Polarization: (-0.484103,0.459182,0.744846) - New Momentum Direction: (-0.50378,0.549739,0.666328) - New Polarization: (0.484103,-0.459182,0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.50378,0.549739,0.666328) - Old Polarization: (0.484103,-0.459182,0.744846) - New Momentum Direction: (-0.50378,0.549739,-0.666328) - New Polarization: (-0.484103,0.459182,0.744846) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.50378,0.549739,-0.666328) - Old Polarization: (-0.484103,0.459182,0.744846) - New Momentum Direction: (-0.50378,-0.549739,-0.666328) - New Polarization: (0.484103,0.459182,-0.744846) + 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 1583, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.987583,-0.111544,0.110626) - Old Polarization: (0.104354,0.992158,0.0687994) - New Momentum Direction: (0.97692,-0.151665,0.150418) - New Polarization: (-0.164668,-0.086178,0.982577) - *** FresnelRefraction *** -Track (trackID 1582, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.131357,-0.938211,0.320164) -Old Polarization: (-0.944222,-0.02003,0.328699) -New Polarization: (-0.886091,-0.461868,-0.0389974) -Polarization Change: (-0.886091,-0.461868,-0.0389974) -New Momentum Direction: (-0.372467,0.659441,0.652998) -Momentum Change: (-0.372467,0.659441,0.652998) - Photon at Boundary! - Old Momentum Direction: (-0.372467,0.659441,0.652998) - Old Polarization: (-0.886091,-0.461868,-0.0389974) - New Momentum Direction: (-0.372467,0.659441,-0.652998) - New Polarization: (0.886091,0.461868,-0.0389974) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1581, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.403057,-0.72255,-0.561664) - Old Polarization: (-0.607884,0.247405,-0.754498) - New Momentum Direction: (0.403057,0.72255,-0.561664) - New Polarization: (0.731201,0.114821,0.672429) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.403057,0.72255,-0.561664) - Old Polarization: (0.731201,0.114821,0.672429) - New Momentum Direction: (0.403057,0.72255,0.561664) - New Polarization: (-0.731201,-0.114821,0.672429) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.403057,0.72255,0.561664) - Old Polarization: (-0.731201,-0.114821,0.672429) - New Momentum Direction: (-0.403057,0.72255,0.561664) - New Polarization: (-0.731201,0.114821,-0.672429) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.403057,0.72255,0.561664) - Old Polarization: (-0.731201,0.114821,-0.672429) - New Momentum Direction: (-0.546339,0.349128,0.76133) - New Polarization: (-0.83756,-0.230392,-0.495391) - *** FresnelRefraction *** -Track (trackID 1580, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1579, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.339438,-0.78057,-0.524873) - Old Polarization: (-0.684899,0.177379,-0.706718) - New Momentum Direction: (0.460831,-0.529016,-0.712585) - New Polarization: (-0.659992,0.332519,-0.673678) - *** FresnelRefraction *** -Track (trackID 1578, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.204109,-0.852708,0.480863) - Old Polarization: (-0.849335,0.0900091,0.520124) - New Momentum Direction: (0.277319,-0.704443,0.65334) - New Polarization: (-0.828733,0.168664,0.533624) - *** FresnelRefraction *** -Track (trackID 1577, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.506763,-0.623964,-0.594862) - Old Polarization: (-0.480801,0.368178,-0.795786) - New Momentum Direction: (0.506763,0.623964,-0.594862) - New Polarization: (0.480801,0.368178,0.795786) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.506763,0.623964,-0.594862) - Old Polarization: (0.480801,0.368178,0.795786) - New Momentum Direction: (0.506763,0.623964,0.594862) - New Polarization: (-0.480801,-0.368178,0.795786) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.506763,0.623964,0.594862) - Old Polarization: (-0.480801,-0.368178,0.795786) - New Momentum Direction: (-0.506763,0.623964,0.594862) - New Polarization: (-0.480801,0.368178,-0.795786) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.506763,0.623964,0.594862) - Old Polarization: (-0.480801,0.368178,-0.795786) - New Momentum Direction: (-0.506763,-0.623964,0.594862) - New Polarization: (0.480801,0.368178,0.795786) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.506763,-0.623964,0.594862) - Old Polarization: (0.480801,0.368178,0.795786) - New Momentum Direction: (-0.506763,-0.623964,-0.594862) - New Polarization: (-0.480801,-0.368178,0.795786) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.506763,-0.623964,-0.594862) -Old Polarization: (-0.480801,-0.368178,0.795786) -New Polarization: (0.556054,0.295594,-0.776807) -Polarization Change: (0.556054,0.295594,-0.776807) -New Momentum Direction: (0.679592,-0.699766,0.220187) -Momentum Change: (0.679592,-0.699766,0.220187) - Photon at Boundary! - Old Momentum Direction: (0.679592,-0.699766,0.220187) - Old Polarization: (0.556054,0.295594,-0.776807) - New Momentum Direction: (0.679592,-0.699766,-0.220187) - New Polarization: (-0.556054,-0.295594,-0.776807) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.679592,-0.699766,-0.220187) - Old Polarization: (-0.556054,-0.295594,-0.776807) - New Momentum Direction: (0.679592,0.699766,-0.220187) - New Polarization: (0.123721,0.186521,0.97463) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.679592,0.699766,-0.220187) - Old Polarization: (0.123721,0.186521,0.97463) - New Momentum Direction: (0.108767,0.948233,-0.298369) - New Polarization: (-0.27571,0.317151,0.907414) - *** FresnelRefraction *** -Track (trackID 1576, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738734,-0.327324,0.589179) - Old Polarization: (-0.197384,0.730764,0.65347) - New Momentum Direction: (0.403422,-0.444372,0.799865) - New Polarization: (-0.37865,0.714721,0.588046) - *** FresnelRefraction *** -Track (trackID 1575, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.448936,-0.603991,0.658523) - Old Polarization: (-0.550938,0.393118,0.736156) - New Momentum Direction: (0.448936,-0.603991,-0.658523) - New Polarization: (0.550938,-0.393118,0.736156) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.448936,-0.603991,-0.658523) - Old Polarization: (0.550938,-0.393118,0.736156) - New Momentum Direction: (0.448936,0.603991,-0.658523) - New Polarization: (-0.550938,-0.393118,-0.736156) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.448936,0.603991,-0.658523) - Old Polarization: (-0.550938,-0.393118,-0.736156) - New Momentum Direction: (-0.448936,0.603991,-0.658523) - New Polarization: (-0.550938,0.393118,0.736156) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1574, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.171317,-0.941444,-0.290403) - Old Polarization: (-0.90194,-0.0312641,-0.430728) - New Momentum Direction: (0.230232,-0.89145,-0.39027) - New Polarization: (-0.797829,0.056715,-0.600211) - *** FresnelRefraction *** -Track (trackID 1573, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.301592,-0.818711,-0.488625) - Old Polarization: (-0.733433,0.128235,-0.667556) - New Momentum Direction: (0.408148,-0.629403,-0.661262) - New Polarization: (-0.70843,0.238494,-0.664265) - *** FresnelRefraction *** -Track (trackID 1572, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.875377,-0.253095,-0.411896) - Old Polarization: (-0.0302656,0.821646,-0.569194) - New Momentum Direction: (0.754642,-0.343506,-0.559034) - New Polarization: (-0.0569133,0.814528,-0.577326) - *** FresnelRefraction *** -Track (trackID 1571, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.10743,-0.984264,-0.140297) - Old Polarization: (-0.968742,-0.0718935,-0.237425) - New Momentum Direction: (0.145786,-0.970824,-0.190386) - New Polarization: (-0.373346,0.124225,-0.919337) - *** FresnelRefraction *** -Track (trackID 1570, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0864579,-0.992964,0.0809129) - Old Polarization: (-0.995914,-0.0840165,0.0331132) - New Momentum Direction: (0.117195,-0.987034,0.109679) - New Polarization: (0.177885,0.129517,0.975491) - *** FresnelRefraction *** -Track (trackID 1569, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.137357,-0.931046,0.338062) - Old Polarization: (-0.936488,-0.0108825,0.350531) - New Momentum Direction: (0.185748,-0.869771,0.45716) - New Polarization: (-0.912345,0.0200971,0.408928) - *** FresnelRefraction *** -Track (trackID 1568, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.921773,-0.201267,-0.331399) - Old Polarization: (0.0242567,0.882978,-0.468786) - New Momentum Direction: (0.849731,-0.273674,-0.450622) - New Polarization: (-0.0453292,0.813629,-0.579614) - *** FresnelRefraction *** -Track (trackID 1567, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1566, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.129867,-0.932222,0.337783) - Old Polarization: (-0.938624,-0.00578996,0.344894) - New Momentum Direction: (0.176617,-0.870505,0.459378) - New Polarization: (-0.926298,0.01082,0.376637) - *** FresnelRefraction *** -Track (trackID 1565, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.137711,-0.959499,-0.245758) - Old Polarization: (-0.930079,-0.0399541,-0.36518) - New Momentum Direction: (0.187131,-0.923828,-0.333953) - New Polarization: (-0.769333,0.0735632,-0.634598) - *** FresnelRefraction *** -Track (trackID 1564, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.977689,-0.137073,-0.159173) - Old Polarization: (0.0925371,0.961312,-0.259452) - New Momentum Direction: (0.958358,-0.186347,-0.216391) - New Polarization: (-0.158811,0.281987,-0.946183) - *** FresnelRefraction *** -Track (trackID 1563, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.088217,-0.99604,-0.0110914) - Old Polarization: (-0.993019,-0.0870633,-0.0795806) - New Momentum Direction: (0.119644,-0.992703,-0.0150426) - New Polarization: (0.954844,0.119205,-0.272144) - *** FresnelRefraction *** -Track (trackID 1562, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1561, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.794406,-0.344901,-0.499963) - Old Polarization: (-0.123442,0.71428,-0.688888) - New Momentum Direction: (0.574711,-0.464698,-0.673619) - New Polarization: (-0.230296,0.698033,-0.678022) - *** FresnelRefraction *** -Track (trackID 1560, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.866144,-0.211901,0.452651) - Old Polarization: (-0.0413328,0.872202,0.487396) - New Momentum Direction: (0.734889,-0.287535,0.614216) - New Polarization: (-0.0777696,0.86397,0.497501) - *** FresnelRefraction *** -Track (trackID 1559, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.212092,-0.845805,0.489521) - Old Polarization: (-0.840862,0.0972997,0.532431) - New Momentum Direction: (0.287802,-0.689872,0.664264) - New Polarization: (-0.819239,0.181884,0.543843) - *** FresnelRefraction *** -Track (trackID 1558, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.788345,-0.286236,0.544593) - Old Polarization: (-0.13359,0.78442,0.605672) - New Momentum Direction: (0.55519,-0.386958,0.736225) - New Polarization: (-0.251151,0.765861,0.591928) - *** FresnelRefraction *** -Track (trackID 1557, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1556, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.816441,-0.318264,-0.4818) - Old Polarization: (-0.0993068,0.744565,-0.660122) - New Momentum Direction: (0.624571,-0.43045,-0.651631) - New Polarization: (-0.186366,0.728134,-0.659613) - *** FresnelRefraction *** -Track (trackID 1555, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 33 -Track (trackID 1, parentID 0) is processed with stopping code 4 +Track (trackID 923, parentID 1) is processed with stopping code 2 ### pop requested out of 34 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.175773,0.959607,0.219676) - Old Polarization: (0.747016,-0.275353,0.605101) - New Momentum Direction: (0.236341,0.925688,0.295373) - New Polarization: (0.6912,-0.373817,0.618469) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.236341,0.925688,0.295373) - Old Polarization: (0.6912,-0.373817,0.618469) - New Momentum Direction: (0.175773,0.688457,0.703656) - New Polarization: (0.890144,0.194105,-0.41227) + 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) *** FresnelRefraction *** +Track (trackID 922, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. ** Photon absorbed! ** -Track (trackID 1631, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0363095,0.933144,0.357664) - Old Polarization: (0.555767,-0.316303,0.768814) - New Momentum Direction: (0.0492811,0.87288,0.485439) - New Polarization: (0.446718,-0.45397,0.770944) - *** FresnelRefraction *** -Track (trackID 1630, parentID 1) is processed with stopping code 2 +Track (trackID 921, parentID 1) is processed with stopping code 2 ### pop requested out of 32 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.00251128,0.697859,-0.71623) - Old Polarization: (0.507835,-0.616111,-0.602089) - New Momentum Direction: (-0.00340222,0.945445,-0.325765) - New Polarization: (0.359285,0.30517,0.881921) - *** FresnelRefraction *** -Track (trackID 1629, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. + 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.768176,0.621522,0.153677) - Old Polarization: (-0.475503,-0.714573,0.513111) - New Momentum Direction: (-0.500783,0.840268,0.207764) - New Polarization: (0.733631,0.284658,0.617053) - *** FresnelRefraction *** -Track (trackID 1628, parentID 1) is processed with stopping code 2 + 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 +### pop requested out of 31 stacked tracks. + +** Photon absorbed! ** +Track (trackID 919, parentID 1) is processed with stopping code 2 ### pop requested out of 30 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.642534,0.697533,0.317171) - Old Polarization: (-0.312918,-0.616694,0.722337) - New Momentum Direction: (-0.869283,0.245399,0.429099) - New Polarization: (-0.0490478,-0.906605,0.419119) + 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) *** FresnelRefraction *** -Track (trackID 1627, parentID 1) is processed with stopping code 2 +Track (trackID 918, parentID 1) is processed with stopping code 2 ### pop requested out of 29 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.410028,0.799545,0.438869) - Old Polarization: (-0.0129944,-0.486249,0.873724) - New Momentum Direction: (-0.556087,0.580089,0.595201) - New Polarization: (-0.0211434,-0.725782,0.6876) + 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 1626, parentID 1) is processed with stopping code 2 +Track (trackID 917, parentID 1) is processed with stopping code 2 ### pop requested out of 28 stacked tracks. ** Photon absorbed! ** -Track (trackID 1625, parentID 1) is processed with stopping code 2 +Track (trackID 916, parentID 1) is processed with stopping code 2 ### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.339398,0.919659,-0.197576) - Old Polarization: (0.940599,-0.333832,0.0618804) - New Momentum Direction: (0.460909,0.845915,-0.268313) - New Polarization: (0.873193,-0.486253,-0.0330441) - *** FresnelRefraction *** -Track (trackID 1624, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. ** Photon absorbed! ** -Track (trackID 1623, parentID 1) is processed with stopping code 2 +Track (trackID 915, 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) + *** FresnelRefraction *** +Track (trackID 914, parentID 1) is processed with stopping code 2 ### pop requested out of 25 stacked tracks. ** Photon absorbed! ** -Track (trackID 1622, parentID 1) is processed with stopping code 2 +Track (trackID 913, parentID 1) is processed with stopping code 2 ### pop requested out of 24 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.0413861,0.715216,-0.697677) - Old Polarization: (0.562426,-0.593814,-0.57538) - New Momentum Direction: (0.05616,0.317089,-0.946732) - New Polarization: (0.393643,-0.87845,-0.270869) + 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) *** FresnelRefraction *** -Track (trackID 1621, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0851265,0.909212,0.407538) - Old Polarization: (0.405608,-0.341975,0.847664) - New Momentum Direction: (-0.114616,0.828112,0.54872) - New Polarization: (0.292879,-0.49964,0.815219) - *** FresnelRefraction *** -Track (trackID 1620, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.169448,0.955298,0.242265) - Old Polarization: (0.727117,-0.287118,0.62359) - New Momentum Direction: (0.229685,0.916191,0.328388) - New Polarization: (0.661965,-0.394404,0.637376) - *** FresnelRefraction *** -Track (trackID 1619, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.277434,0.959322,0.052259) - Old Polarization: (0.880083,-0.275581,0.386664) - New Momentum Direction: (0.372964,0.925182,0.0702537) - New Polarization: (0.867077,-0.374488,0.328536) - *** FresnelRefraction *** -Track (trackID 1618, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1617, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1616, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.828637,0.523302,-0.198784) - Old Polarization: (-0.543307,-0.837355,0.0604423) - New Momentum Direction: (-0.649128,0.711102,-0.270123) - New Polarization: (0.749166,0.536087,-0.389051) - *** FresnelRefraction *** -Track (trackID 1615, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.699164,0.663501,0.266337) - Old Polarization: (-0.37802,-0.659252,0.64999) - New Momentum Direction: (0.699164,0.663501,0.266337) - New Polarization: (0.257027,0.114358,-0.959614) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.699164,0.663501,0.266337) - Old Polarization: (0.257027,0.114358,-0.959614) - New Momentum Direction: (0.699164,-0.663501,0.266337) - New Polarization: (-0.257027,0.114358,0.959614) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.699164,-0.663501,0.266337) - Old Polarization: (-0.257027,0.114358,0.959614) - New Momentum Direction: (0.699164,-0.663501,-0.266337) - New Polarization: (0.257027,-0.114358,0.959614) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1614, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.80388,0.510093,-0.30591) - Old Polarization: (-0.513457,-0.854745,-0.0759764) - New Momentum Direction: (-0.589787,0.692563,-0.41534) - New Polarization: (0.74692,0.272288,-0.606605) - *** FresnelRefraction *** -Track (trackID 1613, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.704496,0.504669,-0.498993) - Old Polarization: (-0.389068,-0.862662,-0.323173) - New Momentum Direction: (0.704496,0.504669,-0.498993) - New Polarization: (0.245238,0.486681,0.838451) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.704496,0.504669,-0.498993) - Old Polarization: (0.245238,0.486681,0.838451) - New Momentum Direction: (0.704496,-0.504669,-0.498993) - New Polarization: (-0.245238,0.486681,-0.838451) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.704496,-0.504669,-0.498993) - Old Polarization: (-0.245238,0.486681,-0.838451) - New Momentum Direction: (0.704496,-0.504669,0.498993) - New Polarization: (0.245238,-0.486681,-0.838451) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.704496,-0.504669,0.498993) - Old Polarization: (0.245238,-0.486681,-0.838451) - New Momentum Direction: (0.272017,-0.68428,0.676585) - New Polarization: (-0.477087,-0.706502,-0.522727) - *** FresnelRefraction *** -Track (trackID 1612, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.772281,0.617847,0.147805) - Old Polarization: (-0.478556,-0.71881,0.504278) - New Momentum Direction: (-0.51039,0.836344,0.200075) - New Polarization: (0.735253,0.303746,0.605923) - *** FresnelRefraction *** -Track (trackID 1611, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.15591,0.884496,0.439726) - Old Polarization: (0.310771,-0.37864,0.87181) - New Momentum Direction: (-0.21177,0.773576,0.597272) - New Polarization: (0.204972,-0.562386,0.801067) - *** FresnelRefraction *** -Track (trackID 1610, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.300834,0.867657,-0.395816) - Old Polarization: (0.896671,-0.398683,-0.192441) - New Momentum Direction: (0.407406,0.739382,-0.536037) - New Polarization: (0.770848,-0.593154,-0.232296) - *** FresnelRefraction *** -Track (trackID 1609, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1608, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.480639,0.771549,0.416771) - Old Polarization: (-0.103569,-0.521886,0.846705) - New Momentum Direction: (-0.65145,0.506477,0.564884) - New Polarization: (-0.0595811,-0.776403,0.627414) - *** FresnelRefraction *** -Track (trackID 1607, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1606, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.250267,0.854849,0.454533) - Old Polarization: (0.190869,-0.416697,0.888782) - New Momentum Direction: (-0.340246,0.708779,0.617952) - New Polarization: (0.108496,-0.623181,0.774515) - *** FresnelRefraction *** -Track (trackID 1605, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.332606,0.914995,-0.22838) - Old Polarization: (0.941326,-0.336814,0.0214906) - New Momentum Direction: (0.449533,0.83824,-0.308666) - New Polarization: (0.868194,-0.491293,-0.0697821) - *** FresnelRefraction *** -Track (trackID 1604, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.132097,0.768091,-0.626567) - Old Polarization: (0.689271,-0.525445,-0.498812) - New Momentum Direction: (0.177711,0.507835,-0.842925) - New Polarization: (0.522978,-0.774326,-0.356249) - *** FresnelRefraction *** -Track (trackID 1603, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.72457,0.653453,0.219086) - Old Polarization: (-0.426238,-0.674668,0.602615) - New Momentum Direction: (-0.372821,0.879773,0.294965) - New Polarization: (0.704047,0.061142,0.707516) - *** FresnelRefraction *** -Track (trackID 1602, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.834299,0.541876,-0.101567) - Old Polarization: (-0.551051,-0.813956,0.183896) - New Momentum Direction: (-0.662625,0.736132,-0.137977) - New Polarization: (0.748771,0.655162,-0.100521) - *** FresnelRefraction *** -Track (trackID 1601, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1600, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.825711,0.521995,-0.213831) - Old Polarization: (-0.541492,-0.839699,0.0411401) - New Momentum Direction: (-0.643107,0.708626,-0.290282) - New Polarization: (0.749867,0.505877,-0.426367) - *** FresnelRefraction *** -Track (trackID 1599, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 26 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 27 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0366211,0.998051,0.050522) - Old Polarization: (0.827032,0.0586473,-0.559087) - New Momentum Direction: (-0.0366211,-0.998051,0.050522) - New Polarization: (-0.828945,0.0585741,0.556254) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.0366211,-0.998051,0.050522) - Old Polarization: (-0.828945,0.0585741,0.556254) - New Momentum Direction: (-0.0496234,-0.996419,0.0684599) - New Polarization: (-0.77617,0.0816109,0.62522) - *** FresnelRefraction *** -Track (trackID 1657, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.54734,0.797212,-0.254699) - Old Polarization: (0.137656,-0.214431,-0.96699) - New Momentum Direction: (-0.743349,0.572519,-0.34591) - New Polarization: (0.123367,-0.390916,-0.912121) - *** FresnelRefraction *** -Track (trackID 1656, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0245554,0.997235,0.0701357) - Old Polarization: (0.8441,0.0582714,-0.53301) - New Momentum Direction: (-0.0332572,0.994923,0.09499) - New Polarization: (0.192138,-0.0869052,0.977512) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (-0.0332572,0.994923,0.09499) - Old Polarization: (0.192138,-0.0869052,0.977512) - New Momentum Direction: (-0.0245554,0.997235,0.0701357) - New Polarization: (0.326965,-0.0582871,0.943237) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (-0.0245554,0.997235,0.0701357) - Old Polarization: (0.326965,-0.0582871,0.943237) - New Momentum Direction: (-0.0332572,0.994923,0.09499) - New Polarization: (0.19184,-0.0869207,0.97757) - *** FresnelRefraction *** -Track (trackID 1655, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.00585415,0.991131,0.132759) - Old Polarization: (0.89107,0.0550816,-0.450511) - New Momentum Direction: (0.00790093,0.983785,0.179176) - New Polarization: (0.873544,-0.0939972,0.477582) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.00790093,0.983785,0.179176) - Old Polarization: (0.873544,-0.0939972,0.477582) - New Momentum Direction: (0.00585415,0.991131,0.132759) - New Polarization: (0.926953,-0.0551826,0.371098) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.00585415,0.991131,0.132759) - Old Polarization: (0.926953,-0.0551826,0.371098) - New Momentum Direction: (0.00790093,0.983785,0.179176) - New Polarization: (0.873063,-0.0941481,0.478432) - *** FresnelRefraction *** -Track (trackID 1654, parentID 1) is processed with stopping code 2 +Track (trackID 912, parentID 1) is processed with stopping code 2 ### pop requested out of 23 stacked tracks. ** Photon absorbed! ** -Track (trackID 1653, parentID 1) is processed with stopping code 2 +Track (trackID 911, parentID 1) is processed with stopping code 2 ### pop requested out of 22 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.284815,0.440394,0.85143) - Old Polarization: (0.491584,-0.695427,0.524144) - New Momentum Direction: (-0.385861,0.596637,0.703659) - New Polarization: (-0.36084,0.60436,-0.710312) + 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 1652, parentID 1) is processed with stopping code 2 +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.833224,0.245596,0.495399) - Old Polarization: (-0.257268,-0.965253,0.0458217) - New Momentum Direction: (-0.666118,0.331281,0.668237) - New Polarization: (0.440896,-0.547746,0.711045) - *** FresnelRefraction *** -Track (trackID 1651, parentID 1) is processed with stopping code 2 + 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) + *** 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 absorbed! ** +Track (trackID 909, parentID 1) is processed with stopping code 2 ### pop requested out of 20 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.0437255,0.97907,0.198773) - Old Polarization: (0.933163,0.0310292,-0.358112) - New Momentum Direction: (0.0593344,0.961106,0.269729) - New Polarization: (0.998237,-0.056738,-0.0174194) + 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 *** - Photon at Boundary! - Old Momentum Direction: (0.0593344,0.961106,0.269729) - Old Polarization: (0.998237,-0.056738,-0.0174194) - New Momentum Direction: (0.0437255,0.708272,0.704584) - New Polarization: (0.998646,-0.0508762,-0.0108321) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.0437255,0.708272,0.704584) - Old Polarization: (0.998646,-0.0508762,-0.0108321) - New Momentum Direction: (0.0593344,0.286963,0.956102) - New Polarization: (0.993904,-0.106138,-0.0298242) - *** FresnelRefraction *** -Track (trackID 1650, parentID 1) is processed with stopping code 2 +Track (trackID 908, parentID 1) is processed with stopping code 2 ### pop requested out of 19 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.893421,0.275899,0.35451) - Old Polarization: (-0.344524,-0.927258,-0.146612) - New Momentum Direction: (-0.796685,0.371204,0.47697) - New Polarization: (0.515629,0.00573594,0.856793) + 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) *** FresnelRefraction *** -Track (trackID 1649, parentID 1) is processed with stopping code 2 +Track (trackID 907, parentID 1) is processed with stopping code 2 ### pop requested out of 18 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.803467,0.577504,-0.144672) - Old Polarization: (-0.217324,-0.510738,-0.831816) - New Momentum Direction: (0.803467,0.577504,-0.144672) - New Polarization: (-0.000344145,0.243455,0.969912) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.803467,0.577504,-0.144672) - Old Polarization: (-0.000344145,0.243455,0.969912) - New Momentum Direction: (0.803467,-0.577504,-0.144672) - New Polarization: (0.000344145,0.243455,-0.969912) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1648, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 906, parentID 1) is processed with stopping code 2 ### pop requested out of 17 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.660484,0.713047,-0.235212) - Old Polarization: (-0.0162262,-0.326746,-0.944973) - New Momentum Direction: (-0.895173,0.311509,-0.318789) - New Polarization: (0.0776784,-0.595248,-0.799779) + 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 1647, parentID 1) is processed with stopping code 2 +Track (trackID 905, parentID 1) is processed with stopping code 2 ### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.120908,0.581452,0.804547) - Old Polarization: (0.721063,-0.505591,0.473757) - New Momentum Direction: (-0.162724,0.782544,0.600954) - New Polarization: (0.35626,0.614582,-0.703823) - *** FresnelRefraction *** -Track (trackID 1646, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.100286,0.587515,0.802975) - Old Polarization: (0.739175,-0.496225,0.455392) - New Momentum Direction: (-0.136093,0.797285,0.58806) - New Polarization: (0.418173,0.584342,-0.695468) - *** FresnelRefraction *** -Track (trackID 1645, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.434557,0.344374,0.832206) - Old Polarization: (0.289235,-0.821707,0.491061) - New Momentum Direction: (-0.590799,0.468191,0.657079) - New Polarization: (-0.699241,0.109176,-0.7065) - *** FresnelRefraction *** -Track (trackID 1644, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.878189,0.253666,0.405508) - Old Polarization: (-0.310245,-0.947346,-0.0792705) - New Momentum Direction: (-0.761364,0.343829,0.549642) - New Polarization: (0.494644,-0.239987,0.835305) - *** FresnelRefraction *** -Track (trackID 1643, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.624064,0.741243,-0.247192) - Old Polarization: (0.0347442,-0.289719,-0.956481) - New Momentum Direction: (-0.624064,-0.741243,-0.247192) - New Polarization: (-0.254298,-0.106463,0.961248) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.624064,-0.741243,-0.247192) - Old Polarization: (-0.254298,-0.106463,0.961248) - New Momentum Direction: (0.624064,-0.741243,-0.247192) - New Polarization: (-0.254298,0.106463,-0.961248) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.624064,-0.741243,-0.247192) - Old Polarization: (-0.254298,0.106463,-0.961248) - New Momentum Direction: (0.624064,-0.741243,0.247192) - New Polarization: (0.254298,-0.106463,-0.961248) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.624064,-0.741243,0.247192) - Old Polarization: (0.254298,-0.106463,-0.961248) - New Momentum Direction: (0.847724,-0.410625,0.335784) - New Polarization: (0.44668,0.211211,-0.869406) - *** FresnelRefraction *** -Track (trackID 1642, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.889016,0.457525,-0.0179026) - Old Polarization: (-0.334227,-0.675167,-0.657603) - New Momentum Direction: (-0.786618,0.616968,-0.0241415) - New Polarization: (0.510127,0.627376,-0.588361) - *** FresnelRefraction *** -Track (trackID 1641, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.884441,0.46492,-0.0401611) - Old Polarization: (-0.31677,-0.661341,-0.679915) - New Momentum Direction: (-0.773985,0.630854,-0.054495) - New Polarization: (0.498969,0.554657,-0.665872) - *** FresnelRefraction *** -Track (trackID 1640, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.90311,0.429187,0.0138279) - Old Polarization: (-0.34755,-0.711654,-0.610539) - New Momentum Direction: (-0.813975,0.580599,0.0187062) - New Polarization: (0.513667,0.734431,-0.443572) - *** FresnelRefraction *** -Track (trackID 1639, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1638, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.735821,0.244084,0.631656) - Old Polarization: (-0.122181,-0.965326,0.230691) - New Momentum Direction: (0.735821,0.244084,0.631656) - New Polarization: (0.0435352,0.9138,-0.403824) - *** FresnelReflection *** - -** Photon absorbed! ** -Track (trackID 1637, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0285997,0.980639,0.193723) - Old Polarization: (0.928444,0.0457478,-0.368646) - New Momentum Direction: (0.0384638,0.964697,0.260539) - New Polarization: (0.984553,-0.0811561,0.155145) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.0384638,0.964697,0.260539) - Old Polarization: (0.984553,-0.0811561,0.155145) - New Momentum Direction: (-0.909412,0.305156,-0.282577) - New Polarization: (0.137656,0.861999,0.487861) - *** LambertianReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.909412,0.305156,-0.282577) - Old Polarization: (0.137656,0.861999,0.487861) - New Momentum Direction: (-0.950984,0.226898,-0.21011) - New Polarization: (0.0785219,0.834349,0.545616) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (-0.950984,0.226898,-0.21011) - Old Polarization: (0.0785219,0.834349,0.545616) - New Momentum Direction: (-0.909412,0.305156,-0.282577) - New Polarization: (0.139275,0.863662,0.484448) - *** FresnelRefraction *** -Track (trackID 1636, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1635, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.074491,0.836634,0.542674) - Old Polarization: (0.981522,-0.157693,0.108384) - New Momentum Direction: (0.074491,-0.836634,0.542674) - New Polarization: (-0.984016,0.026599,0.17608) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.074491,-0.836634,0.542674) - Old Polarization: (-0.984016,0.026599,0.17608) - New Momentum Direction: (0.074491,-0.836634,-0.542674) - New Polarization: (0.984016,-0.026599,0.17608) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.074491,-0.836634,-0.542674) - Old Polarization: (0.984016,-0.026599,0.17608) - New Momentum Direction: (0.074491,0.836634,-0.542674) - New Polarization: (-0.989785,-0.0043067,-0.142504) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.074491,0.836634,-0.542674) - Old Polarization: (-0.989785,-0.0043067,-0.142504) - New Momentum Direction: (0.074491,0.836634,0.542674) - New Polarization: (0.989785,0.0043067,-0.142504) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.074491,0.836634,0.542674) - Old Polarization: (0.989785,0.0043067,-0.142504) - New Momentum Direction: (0.100713,0.671966,0.733702) - New Polarization: (0.991654,-0.00813363,-0.128672) - *** FresnelRefraction *** -Track (trackID 1634, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.492614,0.322839,0.80815) - Old Polarization: (0.209806,-0.857193,0.47032) - New Momentum Direction: (-0.665776,0.436323,0.605281) - New Polarization: (-0.704826,-0.101537,-0.702076) - *** FresnelRefraction *** -Track (trackID 1633, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.164013,0.537263,0.827314) - Old Polarization: (0.657924,-0.565314,0.49755) - New Momentum Direction: (-0.221545,0.725721,0.651343) - New Polarization: (0.157293,0.685789,-0.7106) - *** FresnelRefraction *** -Track (trackID 1632, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 21 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.270768,0.511415,0.815561) - Old Polarization: (0.309066,-0.756173,0.576785) - New Momentum Direction: (-0.368032,0.695125,0.617539) - New Polarization: (-0.338862,0.518205,-0.785262) - *** FresnelRefraction *** -Track (trackID 1678, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1677, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1676, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.439932,0.448908,0.77778) - Old Polarization: (0.0556395,-0.850806,0.522526) - New Momentum Direction: (-0.597393,0.609581,0.521088) - New Polarization: (-0.631306,0.0432347,-0.774328) - *** FresnelRefraction *** -Track (trackID 1675, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0601993,0.997694,0.0313553) - Old Polarization: (0.80308,-0.0297531,-0.595128) - New Momentum Direction: (0.0818595,0.995731,0.0426372) - New Polarization: (0.873139,-0.0510223,-0.484794) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.0818595,0.995731,0.0426372) - Old Polarization: (0.873139,-0.0510223,-0.484794) - New Momentum Direction: (0.0601993,0.997694,0.0313553) - New Polarization: (0.80322,-0.0297675,-0.594938) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.0601993,0.997694,0.0313553) - Old Polarization: (0.80322,-0.0297675,-0.594938) - New Momentum Direction: (0.0818595,0.995731,0.0426372) - New Polarization: (0.873272,-0.0510435,-0.484552) - *** FresnelRefraction *** -Track (trackID 1674, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.153658,0.959939,0.23432) - Old Polarization: (0.952565,-0.0808595,-0.293397) - New Momentum Direction: (0.20807,0.925219,0.317296) - New Polarization: (0.966249,-0.144055,-0.213569) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.20807,0.925219,0.317296) - Old Polarization: (0.966249,-0.144055,-0.213569) - New Momentum Direction: (0.153658,0.683264,0.71382) - New Polarization: (0.987674,-0.0843955,-0.131825) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.153658,0.683264,0.71382) - Old Polarization: (0.987674,-0.0843955,-0.131825) - New Momentum Direction: (0.20807,0.149669,0.966595) - New Polarization: (0.966131,-0.18566,-0.179223) - *** FresnelRefraction *** -Track (trackID 1673, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.567505,0.799412,-0.197176) - Old Polarization: (-0.133876,-0.325876,-0.935886) - New Momentum Direction: (-0.771841,0.576495,-0.268171) - New Polarization: (-0.128058,-0.554081,-0.822554) - *** FresnelRefraction *** -Track (trackID 1672, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.787455,0.428963,0.442613) - Old Polarization: (-0.469138,-0.882875,0.0210017) - New Momentum Direction: (-0.549266,0.581567,0.600072) - New Polarization: (0.717949,-0.0390428,0.695) - *** FresnelRefraction *** -Track (trackID 1671, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.101472,0.76038,0.641503) - Old Polarization: (0.867061,-0.38375,0.317713) - New Momentum Direction: (0.137827,0.470934,0.871335) - New Polarization: (0.728663,-0.644076,0.232847) - *** FresnelRefraction *** -Track (trackID 1670, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.159956,0.581684,0.797532) - Old Polarization: (0.484069,-0.657898,0.576928) - New Momentum Direction: (-0.215088,0.782175,0.584756) - New Polarization: (0.0531871,0.607263,-0.792718) - *** FresnelRefraction *** -Track (trackID 1669, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.619494,0.765337,-0.174605) - Old Polarization: (-0.21126,-0.376762,-0.901898) - New Momentum Direction: (-0.842664,0.483228,-0.237506) - New Polarization: (-0.150264,-0.634624,-0.758072) - *** FresnelRefraction *** -Track (trackID 1668, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.839688,0.511426,0.182666) - Old Polarization: (-0.540688,-0.755841,-0.36927) - New Momentum Direction: (-0.674362,0.695377,0.248368) - New Polarization: (0.736757,0.656083,0.163536) - *** FresnelRefraction *** -Track (trackID 1667, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1666, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.041952,0.713706,0.699188) - Old Polarization: (0.788476,-0.453451,0.415558) - New Momentum Direction: (0.0566575,0.324247,0.944274) - New Polarization: (0.628932,-0.746133,0.218472) - *** FresnelRefraction *** -Track (trackID 1665, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.172199,0.918881,0.354973) - Old Polarization: (0.983732,-0.141692,-0.110432) - New Momentum Direction: (0.232891,0.845744,0.480083) - New Polarization: (0.968059,-0.248747,-0.0314032) - *** FresnelRefraction *** -Track (trackID 1664, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.831577,0.541746,0.122435) - Old Polarization: (-0.531204,-0.711404,-0.460137) - New Momentum Direction: (-0.656458,0.735806,0.166293) - New Polarization: (0.737223,0.672485,-0.0653209) - *** FresnelRefraction *** -Track (trackID 1663, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.496906,0.433819,0.751589) - Old Polarization: (-0.0302949,-0.874225,0.484576) - New Momentum Direction: (-0.674355,0.588739,0.445681) - New Polarization: (-0.634579,-0.15345,-0.757471) - *** FresnelRefraction *** -Track (trackID 1662, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.521938,0.43011,0.736604) - Old Polarization: (-0.0695459,-0.882145,0.465814) - New Momentum Direction: (-0.521938,0.43011,-0.736604) - New Polarization: (0.78422,0.581657,-0.216042) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.521938,0.43011,-0.736604) - Old Polarization: (0.78422,0.581657,-0.216042) - New Momentum Direction: (0.521938,0.43011,-0.736604) - New Polarization: (0.78422,-0.581657,0.216042) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.521938,0.43011,-0.736604) - Old Polarization: (0.78422,-0.581657,0.216042) - New Momentum Direction: (0.521938,-0.43011,-0.736604) - New Polarization: (-0.78422,-0.581657,-0.216042) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.521938,-0.43011,-0.736604) - Old Polarization: (-0.78422,-0.581657,-0.216042) - New Momentum Direction: (0.707098,-0.582693,-0.4006) - New Polarization: (-0.430898,-0.80426,0.409259) - *** FresnelRefraction *** -Track (trackID 1661, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.197389,0.547344,0.813297) - Old Polarization: (0.41912,-0.702859,0.574741) - New Momentum Direction: (-0.26815,0.743562,0.612545) - New Polarization: (-0.102511,0.610199,-0.785588) - *** FresnelRefraction *** -Track (trackID 1660, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.745573,0.664125,-0.0553056) - Old Polarization: (-0.416805,-0.529453,-0.738886) - New Momentum Direction: (-0.43829,0.895733,-0.074593) - New Polarization: (0.682717,0.277779,-0.675823) - *** FresnelRefraction *** -Track (trackID 1659, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.555099,0.427209,0.713693) - Old Polarization: (-0.123051,-0.890763,0.437493) - New Momentum Direction: (-0.749753,0.577017,0.323915) - New Polarization: (-0.586593,-0.353024,-0.728892) - *** FresnelRefraction *** -Track (trackID 1658, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 14 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.30382,0.873302,0.380838) - Old Polarization: (-0.697365,-0.0685097,0.713434) - New Momentum Direction: (0.411977,0.750727,0.516414) - New Polarization: (-0.676461,-0.127714,0.72532) - *** FresnelRefraction *** -Track (trackID 1692, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.137542,0.990083,-0.0285968) - Old Polarization: (-0.990494,0.137547,-0.00179873) - New Momentum Direction: (0.186327,0.981724,-0.0387398) - New Polarization: (0.919277,-0.188118,-0.345747) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.186327,0.981724,-0.0387398) - Old Polarization: (0.919277,-0.188118,-0.345747) - New Momentum Direction: (0.688486,0.724686,-0.0285968) - New Polarization: (-0.666359,0.616524,-0.419362) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.688486,0.724686,-0.0285968) - Old Polarization: (-0.666359,0.616524,-0.419362) - New Momentum Direction: (0.932684,0.358609,-0.0387398) - New Polarization: (0.326861,-0.885722,-0.329632) - *** FresnelRefraction *** -Track (trackID 1691, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.597528,0.625364,-0.501877) - Old Polarization: (-0.182107,-0.503709,-0.844461) - New Momentum Direction: (0.597528,-0.625364,-0.501877) - New Polarization: (0.182107,-0.503709,0.844461) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.597528,-0.625364,-0.501877) - Old Polarization: (0.182107,-0.503709,0.844461) - New Momentum Direction: (-0.597528,-0.625364,-0.501877) - New Polarization: (0.182107,0.503709,-0.844461) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.597528,-0.625364,-0.501877) - Old Polarization: (0.182107,0.503709,-0.844461) - New Momentum Direction: (-0.597528,-0.625364,0.501877) - New Polarization: (-0.182107,-0.503709,-0.844461) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.597528,-0.625364,0.501877) - Old Polarization: (-0.182107,-0.503709,-0.844461) - New Momentum Direction: (-0.597528,0.625364,0.501877) - New Polarization: (0.182107,-0.503709,0.844461) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.597528,0.625364,0.501877) - Old Polarization: (0.182107,-0.503709,0.844461) - New Momentum Direction: (0.597528,0.625364,0.501877) - New Polarization: (0.182107,0.503709,-0.844461) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1690, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.921812,0.386864,0.0244681) - Old Polarization: (0.383314,-0.919116,0.0910845) - New Momentum Direction: (0.850852,0.524357,0.0331642) - New Polarization: (-0.522268,0.837197,0.162288) - *** FresnelRefraction *** -Track (trackID 1689, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.231841,0.92481,0.301623) - Old Polarization: (-0.820133,0.0190913,0.571855) - New Momentum Direction: (0.314821,0.856232,0.409579) - New Polarization: (-0.75503,-0.0355773,0.654725) - *** FresnelRefraction *** -Track (trackID 1688, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.183348,0.946964,-0.2639) - Old Polarization: (-0.908567,0.0607356,-0.413299) - New Momentum Direction: (0.248541,0.900141,-0.357734) - New Polarization: (-0.663658,-0.110763,-0.739791) - *** FresnelRefraction *** -Track (trackID 1687, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.802258,0.468445,-0.370057) - Old Polarization: (0.176603,-0.778371,-0.602454) - New Momentum Direction: (0.589025,0.634122,-0.500938) - New Polarization: (-0.324829,-0.381814,-0.865277) - *** FresnelRefraction *** -Track (trackID 1686, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.781407,0.510533,0.358831) - Old Polarization: (0.146568,-0.709098,0.689709) - New Momentum Direction: (0.53999,0.688599,0.483986) - New Polarization: (-0.273854,-0.399998,0.874646) - *** FresnelRefraction *** -Track (trackID 1685, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.587425,0.629962,-0.508016) - Old Polarization: (-0.201214,-0.494336,-0.845663) - New Momentum Direction: (0.587425,-0.629962,-0.508016) - New Polarization: (0.201214,-0.494336,0.845663) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.587425,-0.629962,-0.508016) - Old Polarization: (0.201214,-0.494336,0.845663) - New Momentum Direction: (-0.587425,-0.629962,-0.508016) - New Polarization: (0.201214,0.494336,-0.845663) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.587425,-0.629962,-0.508016) - Old Polarization: (0.201214,0.494336,-0.845663) - New Momentum Direction: (-0.587425,-0.629962,0.508016) - New Polarization: (-0.201214,-0.494336,-0.845663) - *** TotalInternalReflection *** Scattering Photon! -Old Momentum Direction: (-0.587425,-0.629962,0.508016) -Old Polarization: (-0.201214,-0.494336,-0.845663) -New Polarization: (0.157876,-0.33799,-0.927814) -Polarization Change: (0.157876,-0.33799,-0.927814) -New Momentum Direction: (-0.883616,-0.467782,0.0200516) -Momentum Change: (-0.883616,-0.467782,0.0200516) +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.883616,-0.467782,0.0200516) - Old Polarization: (0.157876,-0.33799,-0.927814) - New Momentum Direction: (-0.883616,0.467782,0.0200516) - New Polarization: (-0.157876,-0.33799,0.927814) + 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.883616,0.467782,0.0200516) - Old Polarization: (-0.157876,-0.33799,0.927814) - New Momentum Direction: (-0.773572,0.633127,0.0271391) - New Polarization: (0.280914,0.304211,0.910243) + 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 +### 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) *** FresnelRefraction *** -Track (trackID 1684, parentID 1) is processed with stopping code 2 +Track (trackID 903, 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 +### 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) + *** FresnelRefraction *** +Track (trackID 901, 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) + *** FresnelRefraction *** +Track (trackID 900, 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) + *** FresnelRefraction *** +Track (trackID 899, 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) + *** FresnelRefraction *** +Track (trackID 898, 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) + *** 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) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 897, parentID 1) is processed with stopping code 2 +### pop requested out of 8 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) + *** FresnelRefraction *** +Track (trackID 896, parentID 1) is processed with stopping code 2 +### pop requested out of 7 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) + *** FresnelRefraction *** +Track (trackID 895, parentID 1) is processed with stopping code 2 ### pop requested out of 6 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1683, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 894, parentID 1) is processed with stopping code 2 ### pop requested out of 5 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.395816,0.775682,-0.491576) - Old Polarization: (-0.536365,-0.239229,-0.809371) - New Momentum Direction: (0.536897,0.516848,-0.66679) - New Polarization: (-0.505952,-0.435198,-0.744725) + 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) *** FresnelRefraction *** -Track (trackID 1682, parentID 1) is processed with stopping code 2 +Track (trackID 893, parentID 1) is processed with stopping code 2 ### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.913132,0.387318,-0.127176) - Old Polarization: (0.364057,-0.915143,-0.173137) - New Momentum Direction: (0.832929,0.525763,-0.172635) - New Polarization: (-0.519656,0.635893,-0.570612) - *** FresnelRefraction *** -Track (trackID 1681, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.513186,0.682484,-0.520438) - Old Polarization: (-0.331427,-0.401762,-0.853665) - New Momentum Direction: (0.697311,0.116945,-0.707165) - New Polarization: (-0.415673,-0.737775,-0.531887) - *** FresnelRefraction *** -Track (trackID 1680, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.140987,0.986274,-0.0859481) - Old Polarization: (-0.985925,0.131995,-0.102616) - New Momentum Direction: (0.190893,0.974688,-0.116372) - New Polarization: (0.475666,-0.195553,-0.857614) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.190893,0.974688,-0.116372) - Old Polarization: (0.475666,-0.195553,-0.857614) - New Momentum Direction: (0.688764,0.719873,-0.0859481) - New Polarization: (-0.316508,0.191917,-0.928973) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.688764,0.719873,-0.0859481) - Old Polarization: (-0.316508,0.191917,-0.928973) - New Momentum Direction: (0.932569,0.341721,-0.116372) - New Polarization: (0.0213041,-0.373901,-0.927224) - *** FresnelRefraction *** -Track (trackID 1679, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 4 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 5 stacked tracks. ** Photon absorbed! ** -Track (trackID 1696, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.428371,0.891944,-0.144689) - Old Polarization: (-0.472462,0.0845974,-0.877282) - New Momentum Direction: (0.582305,0.78882,-0.196682) - New Polarization: (-0.118797,-0.156771,-0.980464) - *** FresnelRefraction *** -Track (trackID 1695, parentID 1) is processed with stopping code 2 +Track (trackID 892, parentID 1) is processed with stopping code 2 ### pop requested out of 3 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.769934,0.633795,-0.0742072) - Old Polarization: (0.405147,-0.575361,-0.710504) - New Momentum Direction: (-0.769934,0.633795,-0.0742072) - New Polarization: (-0.09193,0.00491017,0.995753) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.769934,0.633795,-0.0742072) - Old Polarization: (-0.09193,0.00491017,0.995753) - New Momentum Direction: (-0.769934,-0.633795,-0.0742072) - New Polarization: (0.09193,0.00491017,-0.995753) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1694, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.244214,0.927442,0.283216) - Old Polarization: (-0.95858,0.186738,0.215066) - New Momentum Direction: (0.244214,-0.927442,0.283216) - New Polarization: (0.916459,0.125276,-0.380012) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.244214,-0.927442,0.283216) - Old Polarization: (0.916459,0.125276,-0.380012) - New Momentum Direction: (0.330848,-0.862163,0.383686) - New Polarization: (0.927389,0.221817,-0.301243) + 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 1693, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. -Track (trackID 1, parentID 0) is processed with stopping code 2 +Track (trackID 891, parentID 1) is processed with stopping code 2 ### pop requested out of 2 stacked tracks. -Track (trackID 1698, parentID 1) is processed with stopping code 2 + 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. -Track (trackID 1697, parentID 1) is processed with stopping code 2 + 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) + *** FresnelRefraction *** +Track (trackID 889, parentID 1) is processed with stopping code 2 ### pop requested out of 0 stacked tracks. ### 0 waiting tracks are re-classified to 0 urgent tracks and 0 waiting tracks. NULL returned from G4StackManager. Terminate current event processing. -number of event = 1 User=2.19s Real=5.11s Sys=2.36s +number of event = 1 User=1.34s Real=3s Sys=1.32s diff --git a/examples/novice/N06/src/ExN06DetectorConstruction.cc b/examples/novice/N06/src/ExN06DetectorConstruction.cc index a92251c3cf..1d5d437e90 100644 --- a/examples/novice/N06/src/ExN06DetectorConstruction.cc +++ b/examples/novice/N06/src/ExN06DetectorConstruction.cc @@ -145,9 +145,17 @@ 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] = + { 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 }; + G4MaterialPropertiesTable *myMPT1 = new G4MaterialPropertiesTable(); myMPT1->AddProperty("RINDEX", PPCKOV, RINDEX1, NUMENTRIES); myMPT1->AddProperty("ABSLENGTH",PPCKOV, ABSORPTION1, NUMENTRIES); + myMPT1->AddProperty("SCINTILLATION",PPCKOV, SCINTILLATION, NUMENTRIES); Water->SetMaterialPropertiesTable(myMPT1); G4MaterialPropertiesTable *myMPT2 = new G4MaterialPropertiesTable(); diff --git a/examples/novice/N06/src/ExN06PhysicsList.cc b/examples/novice/N06/src/ExN06PhysicsList.cc index f11e38478d..17ca50fef0 100644 --- a/examples/novice/N06/src/ExN06PhysicsList.cc +++ b/examples/novice/N06/src/ExN06PhysicsList.cc @@ -190,6 +190,7 @@ void ExN06PhysicsList::ConstructEM() } #include "G4Cerenkov.hh" +#include "G4Scintillation.hh" #include "G4OpAbsorption.hh" #include "G4OpRayleigh.hh" #include "G4OpBoundaryProcess.hh" @@ -197,15 +198,18 @@ void ExN06PhysicsList::ConstructEM() void ExN06PhysicsList::ConstructOp() { G4Cerenkov* theCerenkovProcess = new G4Cerenkov("Cerenkov"); + G4Scintillation* theScintillationProcess = new G4Scintillation("Scintilltion"); G4OpAbsorption* theAbsorptionProcess = new G4OpAbsorption(); G4OpRayleigh* theRayleighScatteringProcess = new G4OpRayleigh(); G4OpBoundaryProcess* theBoundaryProcess = new G4OpBoundaryProcess(); // theCerenkovProcess->DumpPhysicsTable(); +// theScintillationProcess->DumpPhysicsTable(); // theAbsorptionProcess->DumpPhysicsTable(); // theRayleighScatteringProcess->DumpPhysicsTable(); theCerenkovProcess->SetVerboseLevel(1); + theScintillationProcess->SetVerboseLevel(1); theAbsorptionProcess->SetVerboseLevel(1); theRayleighScatteringProcess->SetVerboseLevel(1); theBoundaryProcess->SetVerboseLevel(1); @@ -215,6 +219,10 @@ void ExN06PhysicsList::ConstructOp() theCerenkovProcess->SetTrackSecondariesFirst(true); theCerenkovProcess->SetMaxNumPhotonsPerStep(MaxNumPhotons); + theScintillationProcess->SetTrackSecondariesFirst(true); + theScintillationProcess->SetScintillationYield(100./MeV); + theScintillationProcess->SetResolutionScale(1.0); + G4OpticalSurfaceModel themodel = unified; theBoundaryProcess->SetModel(themodel); @@ -226,6 +234,11 @@ void ExN06PhysicsList::ConstructOp() if (theCerenkovProcess->IsApplicable(*particle)) { pmanager->AddContinuousProcess(theCerenkovProcess); } + if (theScintillationProcess->IsApplicable(*particle)) { + pmanager->AddProcess(theScintillationProcess); + pmanager->SetProcessOrderingToLast(theScintillationProcess, idxAtRest); + pmanager->SetProcessOrderingToLast(theScintillationProcess, idxPostStep); + } if (particleName == "opticalphoton") { G4cout << " AddDiscreteProcess to OpticalPhoton " << G4endl; pmanager->AddDiscreteProcess(theAbsorptionProcess); @@ -233,6 +246,7 @@ void ExN06PhysicsList::ConstructOp() pmanager->AddDiscreteProcess(theBoundaryProcess); } } +// set ordering for AtRestDoIt } void ExN06PhysicsList::SetCuts() diff --git a/source/digits+hits/detector/include/G4CollectionNameVector.hh b/source/digits+hits/detector/include/G4CollectionNameVector.hh index 1dc4520ccb..d00b3b0e17 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4CollectionNameVector_H diff --git a/source/digits+hits/detector/include/G4HCtable.hh b/source/digits+hits/detector/include/G4HCtable.hh index 3e499bb04a..042a6618ee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4HCtable_H diff --git a/source/digits+hits/detector/include/G4SDManager.hh b/source/digits+hits/detector/include/G4SDManager.hh index 07de22c4c3..959a0f1e41 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4SDManager_h diff --git a/source/digits+hits/detector/include/G4SDStructure.hh b/source/digits+hits/detector/include/G4SDStructure.hh index 223689f302..3ed808b428 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4SDStructure_h diff --git a/source/digits+hits/detector/include/G4SDmessenger.hh b/source/digits+hits/detector/include/G4SDmessenger.hh index 54bccc9065..0a1cffaca5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4SDmessenger_h diff --git a/source/digits+hits/detector/include/G4SensitiveVolumeList.hh b/source/digits+hits/detector/include/G4SensitiveVolumeList.hh index ddd7191bd5..6a817a13f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1996 diff --git a/source/digits+hits/detector/include/G4SensitiveVolumeList.icc b/source/digits+hits/detector/include/G4SensitiveVolumeList.icc index 5d26a66dbd..21e425cb2c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------- // Inline functions of GEANT 4 class header file. diff --git a/source/digits+hits/detector/include/G4VReadOutGeometry.hh b/source/digits+hits/detector/include/G4VReadOutGeometry.hh index b7c7e1b743..2fecdb1186 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ diff --git a/source/digits+hits/detector/include/G4VSensitiveDetector.hh b/source/digits+hits/detector/include/G4VSensitiveDetector.hh index a84894a146..08725e2eed 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VSensitiveDetector_h diff --git a/source/digits+hits/detector/src/G4HCtable.cc b/source/digits+hits/detector/src/G4HCtable.cc index f5a6151d9d..7f1b436015 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4HCtable.hh" diff --git a/source/digits+hits/detector/src/G4SDManager.cc b/source/digits+hits/detector/src/G4SDManager.cc index 6ed5932600..bd37d8637d 100644 --- a/source/digits+hits/detector/src/G4SDManager.cc +++ b/source/digits+hits/detector/src/G4SDManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDManager.cc,v 1.4 2001/07/13 15:00:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4SDManager.hh" diff --git a/source/digits+hits/detector/src/G4SDStructure.cc b/source/digits+hits/detector/src/G4SDStructure.cc index d5257d092d..2dc25e9ef2 100644 --- a/source/digits+hits/detector/src/G4SDStructure.cc +++ b/source/digits+hits/detector/src/G4SDStructure.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDStructure.cc,v 1.6 2001/07/13 15:00:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4SDStructure diff --git a/source/digits+hits/detector/src/G4SDmessenger.cc b/source/digits+hits/detector/src/G4SDmessenger.cc index 5f0f349ec6..d52607ead4 100644 --- a/source/digits+hits/detector/src/G4SDmessenger.cc +++ b/source/digits+hits/detector/src/G4SDmessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDmessenger.cc,v 1.3 2001/07/11 09:58:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // --------------------------------------------------------------------- diff --git a/source/digits+hits/detector/src/G4SensitiveVolumeList.cc b/source/digits+hits/detector/src/G4SensitiveVolumeList.cc index bc993b1ac8..278a844bed 100644 --- a/source/digits+hits/detector/src/G4SensitiveVolumeList.cc +++ b/source/digits+hits/detector/src/G4SensitiveVolumeList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SensitiveVolumeList.cc,v 1.5 2001/07/13 15:00:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/digits+hits/detector/src/G4VReadOutGeometry.cc b/source/digits+hits/detector/src/G4VReadOutGeometry.cc index 5599f6583c..4080a92451 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VReadOutGeometry.hh" diff --git a/source/digits+hits/detector/src/G4VSensitiveDetector.cc b/source/digits+hits/detector/src/G4VSensitiveDetector.cc index 181dbdc8c2..5f0dddb627 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VSensitiveDetector #include "G4VSensitiveDetector.hh" diff --git a/source/digits+hits/digits/include/G4DCofThisEvent.hh b/source/digits+hits/digits/include/G4DCofThisEvent.hh index 02f01bbfcc..b5c971996e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4DCofThisEvent_h diff --git a/source/digits+hits/digits/include/G4TDigiCollection.hh b/source/digits+hits/digits/include/G4TDigiCollection.hh index 817be7eaa7..0f7b528646 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4TDigiCollection_h diff --git a/source/digits+hits/digits/include/G4VDigi.hh b/source/digits+hits/digits/include/G4VDigi.hh index 1f6df5df7e..cbed5161fe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VDigi_h diff --git a/source/digits+hits/digits/include/G4VDigiCollection.hh b/source/digits+hits/digits/include/G4VDigiCollection.hh index bc516dec6e..877c57a63f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VDigiCollection_h diff --git a/source/digits+hits/digits/src/G4DCofThisEvent.cc b/source/digits+hits/digits/src/G4DCofThisEvent.cc index 9604053edc..8bd9a10a2a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4DCofThisEvent.hh" diff --git a/source/digits+hits/digits/src/G4TDigiCollection.cc b/source/digits+hits/digits/src/G4TDigiCollection.cc index 032fc046ac..4a6cb80d6d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4TDigiCollection.hh" diff --git a/source/digits+hits/digits/src/G4VDigi.cc b/source/digits+hits/digits/src/G4VDigi.cc index af0062578b..02c38c6fb5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VDigi diff --git a/source/digits+hits/digits/src/G4VDigiCollection.cc b/source/digits+hits/digits/src/G4VDigiCollection.cc index 53675e9860..722a07d4da 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VDigiCollection diff --git a/source/digits+hits/hits/include/G4HCofThisEvent.hh b/source/digits+hits/hits/include/G4HCofThisEvent.hh index 6c6cfa19ad..3e11519e05 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4HCofThisEvent_h diff --git a/source/digits+hits/hits/include/G4THitsCollection.hh b/source/digits+hits/hits/include/G4THitsCollection.hh index 6a5df6d316..d995983eff 100644 --- a/source/digits+hits/hits/include/G4THitsCollection.hh +++ b/source/digits+hits/hits/include/G4THitsCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4THitsCollection.hh,v 1.9 2001/07/13 15:00:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4THitsCollection_h diff --git a/source/digits+hits/hits/include/G4VHit.hh b/source/digits+hits/hits/include/G4VHit.hh index 54be84b94c..f546d10fcc 100644 --- a/source/digits+hits/hits/include/G4VHit.hh +++ b/source/digits+hits/hits/include/G4VHit.hh @@ -22,7 +22,7 @@ // // // $Id: G4VHit.hh,v 1.6 2001/07/13 15:00:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VHit_h diff --git a/source/digits+hits/hits/include/G4VHitsCollection.hh b/source/digits+hits/hits/include/G4VHitsCollection.hh index b679d64f51..05ae18352b 100644 --- a/source/digits+hits/hits/include/G4VHitsCollection.hh +++ b/source/digits+hits/hits/include/G4VHitsCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4VHitsCollection.hh,v 1.6 2001/07/13 15:00:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VHitsCollection_h diff --git a/source/digits+hits/hits/src/G4HCofThisEvent.cc b/source/digits+hits/hits/src/G4HCofThisEvent.cc index 47e479ee52..82c3e10f55 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4HCofThisEvent.hh" diff --git a/source/digits+hits/hits/src/G4THitsCollection.cc b/source/digits+hits/hits/src/G4THitsCollection.cc index 817e962517..2d017a5cc2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4THitsCollection.hh" diff --git a/source/digits+hits/hits/src/G4VHit.cc b/source/digits+hits/hits/src/G4VHit.cc index e1078554b0..7ee24a7d85 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VHit diff --git a/source/digits+hits/hits/src/G4VHitsCollection.cc b/source/digits+hits/hits/src/G4VHitsCollection.cc index 155df1af35..58c3c0a144 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VHitsCollection diff --git a/source/event/History b/source/event/History index 2d2f40f09c..a953c2e048 100644 --- a/source/event/History +++ b/source/event/History @@ -1,4 +1,4 @@ -$Id: History,v 1.35 2001/11/22 19:24:35 gcosmo Exp $ +$Id: History,v 1.40 2002/06/08 20:36:18 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,25 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 8 2002, M.Asai (event-V04-00-04) +- Fix G4TrajectoryContainer to be compliant to gcc-3.1. + +May 29 2002, M.Asai (event-V04-00-03) +- Added TransferOneStackedTrack() method to G4StackManager. + +May 15 2002, M.Asai (event-V04-00-02) +- Introducing new G4TrajectoryContainer class which aggregates STL vector, + instead of deriving from STL vector. + +Feb 26 2002, G.Cosmo (event-V04-00-01) +- Optimised implementation of SetNewValue() in G4ParticleGunMessenger and + G4GeneralParticleSourceMessenger to allow porting on WIN32-VC for optimised + compilation. + +Jan 22 2002, M.Asai (event-V04-00-00) +- Remove the check G4PrimaryTransformer whether the primary vertex is inside + the world volume. The check has been moved to G4SteppingManager. + Nov 21 2001, M.Asai (event-V03-02-09) - G4PrimaryTransformer.cc: now considering case where a primary is placed on the boundary of the world volume. Added units. diff --git a/source/event/include/G4ClassificationOfNewTrack.hh b/source/event/include/G4ClassificationOfNewTrack.hh index 1bd9a392e0..6425a211d0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/event/include/G4EvManMessenger.hh b/source/event/include/G4EvManMessenger.hh index 15759b9bad..73042e14ab 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4EvManMessenger_h diff --git a/source/event/include/G4Event.hh b/source/event/include/G4Event.hh index c7b6bdf016..332b868029 100644 --- a/source/event/include/G4Event.hh +++ b/source/event/include/G4Event.hh @@ -22,7 +22,7 @@ // // // $Id: G4Event.hh,v 1.5 2001/07/13 15:01:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4Event_h diff --git a/source/event/include/G4EventManager.hh b/source/event/include/G4EventManager.hh index ec9f6a2f9b..6d04bdc7ac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/event/include/G4GeneralParticleSource.hh b/source/event/include/G4GeneralParticleSource.hh index 8731949ab5..b663a77443 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ /////////////////////////////////////////////////////////////////////////////// // // Class Description: diff --git a/source/event/include/G4GeneralParticleSourceMessenger.hh b/source/event/include/G4GeneralParticleSourceMessenger.hh index f31bcfff01..cded0e9d8b 100644 --- a/source/event/include/G4GeneralParticleSourceMessenger.hh +++ b/source/event/include/G4GeneralParticleSourceMessenger.hh @@ -31,8 +31,8 @@ // Customer: ESA/ESTEC // /////////////////////////////////////////////////////////////////////////////// -// $Id: G4GeneralParticleSourceMessenger.hh,v 1.7 2001/10/19 16:48:28 flei Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GeneralParticleSourceMessenger.hh,v 1.8 2002/02/26 16:34:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ /////////////////////////////////////////////////////////////////////////////// // // Class Description: @@ -107,6 +107,9 @@ public: // these values with the appropriate member function of G4GeneralParticleSource. G4String GetCurrentValue(G4UIcommand *command); +private: + void IonCommand(G4String newValues); + private: G4GeneralParticleSource *fParticleGun; G4ParticleTable *particleTable; @@ -194,6 +197,3 @@ private: //commands #endif - - - diff --git a/source/event/include/G4HEPEvtInterface.hh b/source/event/include/G4HEPEvtInterface.hh index 0b9e9595cc..9e8cb4a892 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4HEPEvtInterface_h diff --git a/source/event/include/G4HEPEvtParticle.hh b/source/event/include/G4HEPEvtParticle.hh index 6275983939..983ed46d57 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/event/include/G4ParticleGun.hh b/source/event/include/G4ParticleGun.hh index 1396dff398..7471d49f93 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4ParticleGun_h diff --git a/source/event/include/G4ParticleGunMessenger.hh b/source/event/include/G4ParticleGunMessenger.hh index 864c3f3e40..3368b7001f 100644 --- a/source/event/include/G4ParticleGunMessenger.hh +++ b/source/event/include/G4ParticleGunMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGunMessenger.hh,v 1.6 2001/07/11 09:58:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ParticleGunMessenger.hh,v 1.7 2002/02/26 16:34:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -59,6 +59,8 @@ class G4ParticleGunMessenger: public G4UImessenger void SetNewValue(G4UIcommand * command,G4String newValues); G4String GetCurrentValue(G4UIcommand * command); + private: + void IonCommand(G4String newValues); private: G4ParticleGun * fParticleGun; @@ -87,4 +89,3 @@ class G4ParticleGunMessenger: public G4UImessenger #endif - diff --git a/source/event/include/G4PrimaryParticle.hh b/source/event/include/G4PrimaryParticle.hh index ce41008441..de21f59aa1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/event/include/G4PrimaryTransformer.hh b/source/event/include/G4PrimaryTransformer.hh index 653dae2989..651b0aef68 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4PromaryTransformer_h diff --git a/source/event/include/G4PrimaryVertex.hh b/source/event/include/G4PrimaryVertex.hh index 408e1c1c7e..dbd19a0d3e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/event/include/G4StackManager.hh b/source/event/include/G4StackManager.hh index 98f99aa4f1..7fe55c7141 100644 --- a/source/event/include/G4StackManager.hh +++ b/source/event/include/G4StackManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StackManager.hh,v 1.8 2001/07/19 00:14:16 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StackManager.hh,v 1.9 2002/05/29 22:51:45 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -93,11 +93,18 @@ class G4StackManager // method, which invokes this method. void TransferStackedTracks(G4ClassificationOfNewTrack origin, G4ClassificationOfNewTrack destination); - // Transfter stacked track from the origin stack to the destination stack. + // Transfter all stacked tracks from the origin stack to the destination stack. // The destination stack needs not be empty. // If the destination is fKill, tracks are deleted. // If the origin is fKill, nothing happen. + void TransferOneStackedTrack(G4ClassificationOfNewTrack origin, G4ClassificationOfNewTrack destination); + // Transfter one stacked track from the origin stack to the destination stack. + // The transfered track is the one which came last to the origin stack. + // The destination stack needs not be empty. + // If the destination is fKill, the track is deleted. + // If the origin is fKill, nothing happen. + private: G4UserStackingAction * userStackingAction; G4int verboseLevel; diff --git a/source/event/include/G4StackedTrack.hh b/source/event/include/G4StackedTrack.hh index 6e2d4a843f..95b981e2b1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/include/G4StackingMessenger.hh b/source/event/include/G4StackingMessenger.hh index b250c03d6a..d7ade59ae3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4StackingMessenger_h diff --git a/source/event/include/G4TrackStack.hh b/source/event/include/G4TrackStack.hh index 2a4dbddf39..cb8d860484 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/include/G4TrajectoryContainer.hh b/source/event/include/G4TrajectoryContainer.hh index 993d84df9f..0fc4731169 100644 --- a/source/event/include/G4TrajectoryContainer.hh +++ b/source/event/include/G4TrajectoryContainer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrajectoryContainer.hh,v 1.8 2001/07/13 15:01:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4TrajectoryContainer.hh,v 1.10 2002/06/08 20:36:18 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4TrajectoryContainer @@ -37,21 +37,56 @@ #ifndef G4TrajectoryContainer_h #define G4TrajectoryContainer_h 1 +#include "globals.hh" #include "G4VTrajectory.hh" +#include "G4Allocator.hh" +#include "g4std/vector" -class G4TrajectoryContainer : public G4std::vector +typedef G4std::vector TrajectoryVector; + +class G4TrajectoryContainer { public: - G4TrajectoryContainer() {;} - ~G4TrajectoryContainer() {;} + G4TrajectoryContainer(); + ~G4TrajectoryContainer(); + + inline void *operator new(size_t); + inline void operator delete(void* anEvent); + + G4int operator==(const G4TrajectoryContainer& right) const; + G4int operator!=(const G4TrajectoryContainer& right) const; public: - inline G4int entries() { return size(); } + inline size_t size() const { return vect->size(); } + inline void push_back(G4VTrajectory* p) { vect->push_back(p); } + inline G4int entries() const { return size(); } inline G4bool insert(G4VTrajectory* p) { push_back(p); return true; } inline void clearAndDestroy() { - for(size_t i=0;iclear(); } + inline G4VTrajectory* operator[](size_t n) { return (*vect)[n]; } + inline TrajectoryVector* GetVector() const { return vect; } + + private: + TrajectoryVector* vect; }; + + +extern G4Allocator aTrajectoryContainerAllocator; + +inline void* G4TrajectoryContainer::operator new(size_t) +{ + void* aTrajectoryContainer; + aTrajectoryContainer = (void*)aTrajectoryContainerAllocator.MallocSingle(); + return aTrajectoryContainer; +} + +inline void G4TrajectoryContainer::operator delete(void* aTrajectoryContainer) +{ + aTrajectoryContainerAllocator.FreeSingle((G4TrajectoryContainer*)aTrajectoryContainer); +} + + #endif diff --git a/source/event/include/G4UserEventAction.hh b/source/event/include/G4UserEventAction.hh index ee7735394d..195d8b3338 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/event/include/G4UserStackingAction.hh b/source/event/include/G4UserStackingAction.hh index a4b1b3b348..7a47dc638c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UserStackingAction_h diff --git a/source/event/include/G4VPrimaryGenerator.hh b/source/event/include/G4VPrimaryGenerator.hh index 942eeb4c7f..915e5b7659 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VPrimaryGenerator_h diff --git a/source/event/include/eventgendefs.hh b/source/event/include/eventgendefs.hh index 8567cad7f7..5f86b2d528 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef EventGenerator_DEBUG #define EventGenerator_DEBUG diff --git a/source/event/include/evmandefs.hh b/source/event/include/evmandefs.hh index d5e902247d..e05bb7aa2a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ///#define G4EVENTMANAGER_DEBUG 1 diff --git a/source/event/include/trajectoryControl.hh b/source/event/include/trajectoryControl.hh index 4f0fe1c603..2f939aefcd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ////#define G4_STORE_TRAJECTORY 1 diff --git a/source/event/src/G4EvManMessenger.cc b/source/event/src/G4EvManMessenger.cc index 8627832c3b..d9f1b45345 100644 --- a/source/event/src/G4EvManMessenger.cc +++ b/source/event/src/G4EvManMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvManMessenger.cc,v 1.3 2001/07/11 09:58:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4Event.cc b/source/event/src/G4Event.cc index e7cdebf3ef..a1ff8efbde 100644 --- a/source/event/src/G4Event.cc +++ b/source/event/src/G4Event.cc @@ -22,7 +22,7 @@ // // // $Id: G4Event.cc,v 1.4 2001/07/13 15:01:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4Event diff --git a/source/event/src/G4EventManager.cc b/source/event/src/G4EventManager.cc index f1ce164936..f97e259e74 100644 --- a/source/event/src/G4EventManager.cc +++ b/source/event/src/G4EventManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EventManager.cc,v 1.11 2001/08/28 05:35:00 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4EventManager.cc,v 1.12 2002/05/15 05:47:49 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // @@ -173,7 +173,8 @@ void G4EventManager::ProcessOneEvent(G4Event* anEvent) if(aTrajectory&&(istop!=fStopButAlive)&&(istop!=fSuspend)) { if(!trajectoryContainer) - { trajectoryContainer = new G4TrajectoryContainer; } + { trajectoryContainer = new G4TrajectoryContainer; + currentEvent->SetTrajectoryContainer(trajectoryContainer); } trajectoryContainer->insert(aTrajectory); } #endif @@ -224,10 +225,6 @@ void G4EventManager::ProcessOneEvent(G4Event* anEvent) if(sdManager) { sdManager->TerminateCurrentEvent(currentEvent->GetHCofThisEvent()); } -#ifdef G4_STORE_TRAJECTORY - currentEvent->SetTrajectoryContainer(trajectoryContainer); -#endif - if(userEventAction) userEventAction->EndOfEventAction(currentEvent); currentEvent = 0; diff --git a/source/event/src/G4GeneralParticleSource.cc b/source/event/src/G4GeneralParticleSource.cc index 678fc9ffd4..bef0a542e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ /////////////////////////////////////////////////////////////////////////////// // // CHANGE HISTORY diff --git a/source/event/src/G4GeneralParticleSourceMessenger.cc b/source/event/src/G4GeneralParticleSourceMessenger.cc index c494e02c96..c9906eb2ee 100644 --- a/source/event/src/G4GeneralParticleSourceMessenger.cc +++ b/source/event/src/G4GeneralParticleSourceMessenger.cc @@ -761,39 +761,7 @@ void G4GeneralParticleSourceMessenger::SetNewValue(G4UIcommand *command, G4Strin else if( command==numberCmd ) { fParticleGun->SetNumberOfParticles(numberCmd->GetNewIntValue(newValues)); } else if( command==ionCmd ) - { - if (fShootIon) { - G4Tokenizer next( newValues ); - // check argument - fAtomicNumber = StoI(next()); - fAtomicMass = StoI(next()); - G4String sQ = next(); - if (sQ.isNull()) { - fIonCharge = fAtomicNumber; - } else { - fIonCharge = StoI(sQ); - sQ = next(); - if (sQ.isNull()) { - fIonExciteEnergy = 0.0; - } else { - fIonExciteEnergy = StoD(sQ) * keV; - } - } - - G4ParticleDefinition* ion; - ion = particleTable->GetIon( fAtomicNumber, fAtomicMass, fIonExciteEnergy); - if (ion==0) { - G4cout << "Ion with Z=" << fAtomicNumber; - G4cout << " A=" << fAtomicMass << "is not be defined" << G4endl; - } else { - fParticleGun->SetParticleDefinition(ion); - fParticleGun->SetParticleCharge(fIonCharge*eplus); - } - } else { - G4cout << "Set /gps/particle to ion before using /gps/ion command"; - G4cout << G4endl; - } - } + { IonCommand(newValues); } else if( command==listCmd ) { particleTable->DumpTable(); } else if( command==directionCmd ) @@ -839,7 +807,48 @@ G4String G4GeneralParticleSourceMessenger::GetCurrentValue(G4UIcommand * command return cv; } - - - - +void G4GeneralParticleSourceMessenger::IonCommand(G4String newValues) +{ + if (fShootIon) + { + G4Tokenizer next( newValues ); + // check argument + fAtomicNumber = StoI(next()); + fAtomicMass = StoI(next()); + G4String sQ = next(); + if (sQ.isNull()) + { + fIonCharge = fAtomicNumber; + } + else + { + fIonCharge = StoI(sQ); + sQ = next(); + if (sQ.isNull()) + { + fIonExciteEnergy = 0.0; + } + else + { + fIonExciteEnergy = StoD(sQ) * keV; + } + } + G4ParticleDefinition* ion; + ion = particleTable->GetIon( fAtomicNumber, fAtomicMass, fIonExciteEnergy); + if (ion==0) + { + G4cout << "Ion with Z=" << fAtomicNumber; + G4cout << " A=" << fAtomicMass << "is not be defined" << G4endl; + } + else + { + fParticleGun->SetParticleDefinition(ion); + fParticleGun->SetParticleCharge(fIonCharge*eplus); + } + } + else + { + G4cout << "Set /gps/particle to ion before using /gps/ion command"; + G4cout << G4endl; + } +} diff --git a/source/event/src/G4HEPEvtInterface.cc b/source/event/src/G4HEPEvtInterface.cc index ec3bf0bdb4..a803c18a26 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/event/src/G4HEPEvtParticle.cc b/source/event/src/G4HEPEvtParticle.cc index 8565f76bcb..089d8a7c23 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/event/src/G4ParticleGun.cc b/source/event/src/G4ParticleGun.cc index 403c653bef..2565035478 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4ParticleGun diff --git a/source/event/src/G4ParticleGunMessenger.cc b/source/event/src/G4ParticleGunMessenger.cc index 17831c4df4..a65fd9ae2d 100644 --- a/source/event/src/G4ParticleGunMessenger.cc +++ b/source/event/src/G4ParticleGunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGunMessenger.cc,v 1.7 2001/10/11 13:34:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ParticleGunMessenger.cc,v 1.8 2002/02/26 16:34:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4ParticleGunMessenger.hh" @@ -180,39 +180,7 @@ void G4ParticleGunMessenger::SetNewValue(G4UIcommand * command,G4String newValue else if( command==numberCmd ) { fParticleGun->SetNumberOfParticles(numberCmd->GetNewIntValue(newValues)); } else if( command==ionCmd ) - { - if (fShootIon) { - G4Tokenizer next( newValues ); - // check argument - fAtomicNumber = StoI(next()); - fAtomicMass = StoI(next()); - G4String sQ = next(); - if (sQ.isNull()) { - fIonCharge = fAtomicNumber; - } else { - fIonCharge = StoI(sQ); - sQ = next(); - if (sQ.isNull()) { - fIonExciteEnergy = 0.0; - } else { - fIonExciteEnergy = StoD(sQ) * keV; - } - } - - G4ParticleDefinition* ion; - ion = particleTable->GetIon( fAtomicNumber, fAtomicMass, fIonExciteEnergy); - if (ion==0) { - G4cout << "Ion with Z=" << fAtomicNumber; - G4cout << " A=" << fAtomicMass << "is not be defined" << G4endl; - } else { - fParticleGun->SetParticleDefinition(ion); - fParticleGun->SetParticleCharge(fIonCharge*eplus); - } - } else { - G4cout << "Set /gun/particle to ion before using /gun/ion command"; - G4cout << G4endl; - } - } + { IonCommand(newValues); } } G4String G4ParticleGunMessenger::GetCurrentValue(G4UIcommand * command) @@ -245,4 +213,38 @@ G4String G4ParticleGunMessenger::GetCurrentValue(G4UIcommand * command) return cv; } +void G4ParticleGunMessenger::IonCommand(G4String newValues) +{ + if (fShootIon) { + G4Tokenizer next( newValues ); + // check argument + fAtomicNumber = StoI(next()); + fAtomicMass = StoI(next()); + G4String sQ = next(); + if (sQ.isNull()) { + fIonCharge = fAtomicNumber; + } else { + fIonCharge = StoI(sQ); + sQ = next(); + if (sQ.isNull()) { + fIonExciteEnergy = 0.0; + } else { + fIonExciteEnergy = StoD(sQ) * keV; + } + } + + G4ParticleDefinition* ion; + ion = particleTable->GetIon( fAtomicNumber, fAtomicMass, fIonExciteEnergy); + if (ion==0) { + G4cout << "Ion with Z=" << fAtomicNumber; + G4cout << " A=" << fAtomicMass << "is not be defined" << G4endl; + } else { + fParticleGun->SetParticleDefinition(ion); + fParticleGun->SetParticleCharge(fIonCharge*eplus); + } + } else { + G4cout << "Set /gun/particle to ion before using /gun/ion command"; + G4cout << G4endl; + } +} diff --git a/source/event/src/G4PrimaryParticle.cc b/source/event/src/G4PrimaryParticle.cc index 499535a2e4..e0693cc4d3 100644 --- a/source/event/src/G4PrimaryParticle.cc +++ b/source/event/src/G4PrimaryParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryParticle.cc,v 1.7 2001/07/13 15:01:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PrimaryParticle.hh" diff --git a/source/event/src/G4PrimaryTransformer.cc b/source/event/src/G4PrimaryTransformer.cc index b2540b659b..c2f7f5006f 100644 --- a/source/event/src/G4PrimaryTransformer.cc +++ b/source/event/src/G4PrimaryTransformer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PrimaryTransformer.cc,v 1.13 2001/11/22 18:53:13 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PrimaryTransformer.cc,v 1.14 2002/01/23 03:20:38 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PrimaryTransformer.hh" @@ -33,11 +33,6 @@ #include "G4Track.hh" #include "G4ThreeVector.hh" #include "G4DecayProducts.hh" -#include "G4TransportationManager.hh" -#include "G4Navigator.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4VSolid.hh" #include "G4UnitsTable.hh" #include "G4ios.hh" @@ -84,18 +79,6 @@ void G4PrimaryTransformer::GenerateTracks(G4PrimaryVertex* primaryVertex) } #endif - //Check whether the vertex is inside the world volume - G4Navigator* navi = - G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); - G4VSolid* theWorldSolid = navi->GetWorldVolume()->GetLogicalVolume()->GetSolid(); - if(theWorldSolid->Inside(G4ThreeVector(X0,Y0,Z0))==kOutside) - { - G4cerr << "Primary vertex " - << G4BestUnit(G4ThreeVector(X0,Y0,Z0),G4String("Length")) - << " is outside of the world volume." << G4endl; - G4Exception("G4PrimaryTransformer::Primary vertex outside of the world"); - } - G4PrimaryParticle* primaryParticle = primaryVertex->GetPrimary(); while( primaryParticle != 0 ) { diff --git a/source/event/src/G4PrimaryVertex.cc b/source/event/src/G4PrimaryVertex.cc index e2af47114e..1d7d9727de 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PrimaryVertex.hh" diff --git a/source/event/src/G4StackManager.cc b/source/event/src/G4StackManager.cc index 0ab790e37e..cef7f065e6 100644 --- a/source/event/src/G4StackManager.cc +++ b/source/event/src/G4StackManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StackManager.cc,v 1.6 2001/07/19 00:14:17 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StackManager.cc,v 1.7 2002/05/29 22:51:45 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Last Modification : 09/Dec/96 M.Asai @@ -301,6 +301,7 @@ void G4StackManager::SetNumberOfAdditionalWaitingStacks(G4int iAdd) void G4StackManager::TransferStackedTracks(G4ClassificationOfNewTrack origin, G4ClassificationOfNewTrack destination) { + if(origin==destination) return; G4TrackStack* originStack = 0; switch(origin) { @@ -351,12 +352,72 @@ void G4StackManager::TransferStackedTracks(G4ClassificationOfNewTrack origin, G4 break; } if(!targetStack) return; - if(originStack==targetStack) return; originStack->TransferTo(targetStack); } return; } +void G4StackManager::TransferOneStackedTrack(G4ClassificationOfNewTrack origin, G4ClassificationOfNewTrack destination) +{ + if(origin==destination) return; + G4TrackStack* originStack = 0; + switch(origin) + { + case fUrgent: + originStack = urgentStack; + break; + case fWaiting: + originStack = waitingStack; + break; + case fPostpone: + originStack = postponeStack; + break; + case fKill: + break; + default: + int i = origin - 10; + if(i<=numberOfAdditionalWaitingStacks) originStack = additionalWaitingStacks[i-1]; + break; + } + if(!originStack) return; + + G4StackedTrack * aStackedTrack; + if(destination==fKill) + { + if( (aStackedTrack=originStack->PopFromStack()) != 0 ) + { + delete aStackedTrack->GetTrack(); + delete aStackedTrack; + } + } + else + { + G4TrackStack* targetStack = 0; + switch(destination) + { + case fUrgent: + targetStack = urgentStack; + break; + case fWaiting: + targetStack = waitingStack; + break; + case fPostpone: + targetStack = postponeStack; + break; + default: + int i = origin - 10; + if(i<=numberOfAdditionalWaitingStacks) targetStack = additionalWaitingStacks[i-1]; + break; + } + if(!targetStack) return; + if( (aStackedTrack=originStack->PopFromStack()) != 0 ) + { + targetStack->PushToStack(aStackedTrack); + } + } + return; +} + diff --git a/source/event/src/G4StackedTrack.cc b/source/event/src/G4StackedTrack.cc index 1d259b58cc..7e2e877182 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/src/G4StackingMessenger.cc b/source/event/src/G4StackingMessenger.cc index 67841ed2e9..3c64efe22f 100644 --- a/source/event/src/G4StackingMessenger.cc +++ b/source/event/src/G4StackingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackingMessenger.cc,v 1.3 2001/07/11 09:58:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4TrackStack.cc b/source/event/src/G4TrackStack.cc index 8804819ec1..c1598dccac 100644 --- a/source/event/src/G4TrackStack.cc +++ b/source/event/src/G4TrackStack.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrackStack.cc,v 1.4 2001/07/13 15:01:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/src/G4TrajectoryContainer.cc b/source/event/src/G4TrajectoryContainer.cc new file mode 100644 index 0000000000..188358b220 --- /dev/null +++ b/source/event/src/G4TrajectoryContainer.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: G4TrajectoryContainer.cc,v 1.1 2002/05/15 05:47:49 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "G4TrajectoryContainer.hh" +G4Allocator aTrajectoryContainerAllocator; + +G4TrajectoryContainer::G4TrajectoryContainer() +{ vect = new TrajectoryVector; } + +G4TrajectoryContainer::~G4TrajectoryContainer() +{ delete vect; } + +G4int G4TrajectoryContainer::operator==(const G4TrajectoryContainer& right) const +{ return (this==&right); } +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 6f3bb9237c..5c2aadcaea 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UserEventAction.hh" diff --git a/source/event/src/G4UserStackingAction.cc b/source/event/src/G4UserStackingAction.cc index bcd18aaec1..692f13f8f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UserStackingAction.hh" diff --git a/source/event/src/G4VPrimaryGenerator.cc b/source/event/src/G4VPrimaryGenerator.cc index 1d3c8eaae9..bcdab8541f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VPrimaryGenerator diff --git a/source/g3tog4/include/G3DetTable.hh b/source/g3tog4/include/G3DetTable.hh index db726f1398..172190db67 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G3DetTable class diff --git a/source/g3tog4/include/G3DetTableEntry.hh b/source/g3tog4/include/G3DetTableEntry.hh index d194634a24..95194c8f20 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G3DetTableEntry class diff --git a/source/g3tog4/include/G3Division.hh b/source/g3tog4/include/G3Division.hh index de0d84e384..f280f255ba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3EleTable.hh b/source/g3tog4/include/G3EleTable.hh index 1e090c3f8c..a35ca7c965 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3G4Interface.hh b/source/g3tog4/include/G3G4Interface.hh index c8a68ae5af..6992b41377 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Interfaces for G3 equivalent routines // diff --git a/source/g3tog4/include/G3MatTable.hh b/source/g3tog4/include/G3MatTable.hh index 22c647b4dc..da7a585af5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MatTableEntry.hh b/source/g3tog4/include/G3MatTableEntry.hh index 406a151646..df9158ef66 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTable.hh b/source/g3tog4/include/G3MedTable.hh index 06330e15c8..966335811e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTableEntry.hh b/source/g3tog4/include/G3MedTableEntry.hh index 49fbb87e53..b854ddd0aa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3PartTable.hh b/source/g3tog4/include/G3PartTable.hh index df6fdae0a6..ec2ba7874e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3Pos.hh b/source/g3tog4/include/G3Pos.hh index 35a4978ba9..e1fd11a827 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTable.hh b/source/g3tog4/include/G3RotTable.hh index 8c3d82dbc0..6ab5df90e7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTableEntry.hh b/source/g3tog4/include/G3RotTableEntry.hh index 9e59c26e2b..93b196b660 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3SensVolVector.hh b/source/g3tog4/include/G3SensVolVector.hh index 0083ca6b4f..fe95531dae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // vector of logical volumes that were defined with // tracking medium with ISVOL=1 diff --git a/source/g3tog4/include/G3VolTable.hh b/source/g3tog4/include/G3VolTable.hh index ab84333e1c..eb5406d336 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3VolTableEntry.hh b/source/g3tog4/include/G3VolTableEntry.hh index c62c27416c..9c6dea68da 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3toG4.hh b/source/g3tog4/include/G3toG4.hh index c1d7e51023..55c8cf669e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/include/G3toG4.inc b/source/g3tog4/include/G3toG4.inc index 21a0a9d8cd..2311d4a135 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * integer maxlines parameter (maxlines = 750) ! max no. of cmd lines per C++ source file diff --git a/source/g3tog4/include/G3toG4BuildTree.hh b/source/g3tog4/include/G3toG4BuildTree.hh index 0fcdd2b0dd..3f15b486e8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MANY.hh b/source/g3tog4/include/G3toG4MANY.hh index a8bdab17bd..16ace71835 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MakeSolid.hh b/source/g3tog4/include/G3toG4MakeSolid.hh index 7640c68c6c..fda8adc9c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4RotationMatrix.hh b/source/g3tog4/include/G3toG4RotationMatrix.hh index 0ebe1d1c95..3c42140afc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ---------------------- // Class description: // diff --git a/source/g3tog4/include/gcbank.inc b/source/g3tog4/include/gcbank.inc index 2bb2909244..46776ac986 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * INTEGER IQ,LQ,NZEBRA,IXSTOR,IXDIV,IXCONS,LMAIN,LR1,JCG INTEGER KWBANK,KWWORK,IWS diff --git a/source/g3tog4/src/G3DetTable.cc b/source/g3tog4/src/G3DetTable.cc index bb30bfccab..eed143f645 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "globals.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G3DetTableEntry.cc b/source/g3tog4/src/G3DetTableEntry.cc index 1fddf25df6..62a40a44e4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "globals.hh" #include "G3DetTableEntry.hh" diff --git a/source/g3tog4/src/G3Division.cc b/source/g3tog4/src/G3Division.cc index adcb26e949..6d4fb86bcb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, V.Berejnoi 13.10.99 diff --git a/source/g3tog4/src/G3EleTable.cc b/source/g3tog4/src/G3EleTable.cc index 5d213853a9..5bb87547ad 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4strstreambuf.hh" diff --git a/source/g3tog4/src/G3MatTable.cc b/source/g3tog4/src/G3MatTable.cc index 86d4892190..5cf9f90d57 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MatTableEntry.cc b/source/g3tog4/src/G3MatTableEntry.cc index d4aecf7d47..ee461139e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTable.cc b/source/g3tog4/src/G3MedTable.cc index 7f25422977..fc3b09271f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTableEntry.cc b/source/g3tog4/src/G3MedTableEntry.cc index ac5eb1404a..775bb28e8a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3NegVolPars.cc b/source/g3tog4/src/G3NegVolPars.cc index 97d9657ebb..103b3570ca 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3PartTable.cc b/source/g3tog4/src/G3PartTable.cc index c8210255d8..908079ff93 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/strstream" diff --git a/source/g3tog4/src/G3Pos.cc b/source/g3tog4/src/G3Pos.cc index 07f6d6ffa2..a4e2231431 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3RotTable.cc b/source/g3tog4/src/G3RotTable.cc index c672ad0756..4c103492eb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3RotTableEntry.cc b/source/g3tog4/src/G3RotTableEntry.cc index acce1c7a87..545b70d7dd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3VolTable.cc b/source/g3tog4/src/G3VolTable.cc index ac8e9d72fd..b3af9f77dd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3VolTableEntry.cc b/source/g3tog4/src/G3VolTableEntry.cc index da2d7b5202..1999859f51 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3fillParams.cc.archive b/source/g3tog4/src/G3fillParams.cc.archive index e3408b813e..46c8cb7131 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // extracted from clparse.cc by I. Hrivnacova, 30.7.99 diff --git a/source/g3tog4/src/G3toG4BuildTree.cc b/source/g3tog4/src/G3toG4BuildTree.cc index 046671a98c..c585cdbb6d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I. Hrivnacova, 2.8.99 diff --git a/source/g3tog4/src/G3toG4MANY.cc b/source/g3tog4/src/G3toG4MANY.cc index 595b8b9a45..5d59ced0c2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // By I. Hrivnacova, 22.10.01 diff --git a/source/g3tog4/src/G3toG4MakeSolid.cc b/source/g3tog4/src/G3toG4MakeSolid.cc index f74bd387b9..0a287edabe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I.Hrivnacova, V.Berejnoi 27 Sep 99 diff --git a/source/g3tog4/src/G3toG4RotationMatrix.cc b/source/g3tog4/src/G3toG4RotationMatrix.cc index 8ebd2a507e..3f11a191d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G3toG4RotationMatrix.hh" diff --git a/source/g3tog4/src/G4BuildGeom.cc b/source/g3tog4/src/G4BuildGeom.cc index bed118226f..54aa52947b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4ggclos.cc b/source/g3tog4/src/G4ggclos.cc index d333f8bdca..333b34e9c0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsatt.cc b/source/g3tog4/src/G4gsatt.cc index c66c24bc67..92e546b3aa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsbool.cc b/source/g3tog4/src/G4gsbool.cc index 68673d606f..d234199fa4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 13.10.01 diff --git a/source/g3tog4/src/G4gsdet.cc b/source/g3tog4/src/G4gsdet.cc index 1af8f5b0dc..563961474f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdeta.cc b/source/g3tog4/src/G4gsdeta.cc index 22264a8263..0037faafa8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // modified by I.Hrivnacova, 6 Oct 99 diff --git a/source/g3tog4/src/G4gsdetd.cc b/source/g3tog4/src/G4gsdetd.cc index f7de93d41d..ff789d06a0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdeth.cc b/source/g3tog4/src/G4gsdeth.cc index 470c394746..47b7ab3c6a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdetu.cc b/source/g3tog4/src/G4gsdetu.cc index e1a2b60ad5..6aee99d0e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdetv.cc b/source/g3tog4/src/G4gsdetv.cc index 7cc579721f..e394d8c31e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4ios.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdk.cc b/source/g3tog4/src/G4gsdk.cc index 73a230c634..bc328b33aa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4Decay.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdvn.cc b/source/g3tog4/src/G4gsdvn.cc index 5b6f369315..b69f72528c 100644 --- a/source/g3tog4/src/G4gsdvn.cc +++ b/source/g3tog4/src/G4gsdvn.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvn.cc,v 1.7 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvn2.cc b/source/g3tog4/src/G4gsdvn2.cc index c117610868..07dbe334c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt.cc b/source/g3tog4/src/G4gsdvt.cc index 93057fd8e8..f543196efb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt2.cc b/source/g3tog4/src/G4gsdvt2.cc index 7ccac19639..ef4c6eb600 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvx.cc b/source/g3tog4/src/G4gsdvx.cc index bc5fdb4782..4098479553 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, V.Berejnoi, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmate.cc b/source/g3tog4/src/G4gsmate.cc index a060eb0b7b..7d3390677d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmixt.cc b/source/g3tog4/src/G4gsmixt.cc index ab2c9ad679..c173ba6ab3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gspart.cc b/source/g3tog4/src/G4gspart.cc index 40a81f206c..49c034cea5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4ProcessManager.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gspos.cc b/source/g3tog4/src/G4gspos.cc index e1fd352b8e..140c02f0cf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsposp.cc b/source/g3tog4/src/G4gsposp.cc index 8bf3ffe55e..6886946f4d 100644 --- a/source/g3tog4/src/G4gsposp.cc +++ b/source/g3tog4/src/G4gsposp.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsposp.cc,v 1.14 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsrotm.cc b/source/g3tog4/src/G4gsrotm.cc index 79678066fa..a23a580182 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G3toG4.hh" #include "G3RotTable.hh" diff --git a/source/g3tog4/src/G4gstmed.cc b/source/g3tog4/src/G4gstmed.cc index c345ec3c75..c7ee68eb64 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // The last G4int argument of G4gstmed(..) is used for sending // info whether the Geant3 tracking medium parameters should diff --git a/source/g3tog4/src/G4gstpar.cc b/source/g3tog4/src/G4gstpar.cc index a042b31d3a..fe85ad2655 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsvolu.cc b/source/g3tog4/src/G4gsvolu.cc index c4551ec814..f54b091535 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/clparse.cc b/source/g3tog4/src/clparse.cc index e1ccadd254..80a9a5aa6b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // modified by I.Hrivnacova // added G3SensVol diff --git a/source/g3tog4/src/g3routines.F b/source/g3tog4/src/g3routines.F index 48932913d4..cd95d0c484 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * #define CALL_GEANT diff --git a/source/g3tog4/src/g3test.F.main b/source/g3tog4/src/g3test.F.main index 25b23735b9..99f8014fc2 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * * * g3test diff --git a/source/g3tog4/src/g3tog4.F b/source/g3tog4/src/g3tog4.F index 14d1866b8e..e09aa3bec7 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * * * G3toG4 diff --git a/source/g3tog4/src/g4geom.cc.main b/source/g3tog4/src/g4geom.cc.main index bfea7ad7e7..b84a2fd437 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // g4geom // diff --git a/source/g3tog4/src/jshape.F b/source/g3tog4/src/jshape.F index 1a0d4ff656..fe79b30656 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * * *-- Author : Jouko Vuoskoski, CERN, Jouko.Vuoskoski@cern.ch diff --git a/source/g3tog4/src/mztog4.F b/source/g3tog4/src/mztog4.F index 2188bf72d3..0ea237b04f 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * subroutine mztog4 ************************************************************************ diff --git a/source/g3tog4/src/rztog4.F b/source/g3tog4/src/rztog4.F index 87b848146e..fd45333802 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * program rztog4 ************************************************************************ diff --git a/source/g3tog4/src/tog4.F b/source/g3tog4/src/tog4.F index b286eb95f2..f764b3539e 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-00 $ +* GEANT4 tag $Name: geant4-04-01 $ * subroutine tog4 ************************************************************************ diff --git a/source/geometry/GNUmakefile b/source/geometry/GNUmakefile index 6aa406a986..9f0fb81835 100644 --- a/source/geometry/GNUmakefile +++ b/source/geometry/GNUmakefile @@ -1,13 +1,13 @@ -# $Id: GNUmakefile,v 1.3 2001/10/17 12:59:48 gcosmo Exp $ +# $Id: GNUmakefile,v 1.4 2002/03/25 17:09:16 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for geometry. Gabriele Cosmo, 16/11/96. # -------------------------------------------------------------- name := G4geometry -SUBDIRS = management volumes magneticfield verification +SUBDIRS = management volumes magneticfield verification biasing SUBDIRS += solids/CSG solids/specific solids/Boolean solids/BREPS solids/STEP solids/STEPinterface -SUBLIBS = G4geometrymng G4volumes G4magneticfield G4geomver +SUBLIBS = G4geometrymng G4volumes G4magneticfield G4geomver G4geombias SUBLIBS += G4csg G4specsolids G4geomBoolean G4brep G4step G4stepinterface ifndef G4INSTALL diff --git a/source/geometry/History b/source/geometry/History index 341ab2851c..57cf9ab5d8 100644 --- a/source/geometry/History +++ b/source/geometry/History @@ -1,4 +1,4 @@ -$Id: History,v 1.21 2001/10/22 16:40:30 gcosmo Exp $ +$Id: History,v 1.27 2002/04/19 08:31:18 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,31 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Apr 19, 2002 Gabriele Cosmo geometry-V04-00-03 +----------------------------- +- Groups the following tags (see related History files for details): + geom-bool-V04-00-04, geom-csg-V04-00-03, geommng-V04-00-03, + geomvol-V04-00-06, geomver-V04-00-00, breps-V04-00-05. + +Apr 10, 2002 Gabriele Cosmo geometry-V04-00-02 +----------------------------- +- Fixed compilation problems for porting on supported and non-ISO platforms + on 'biasing' module. Includes "geomvol-V04-00-05" and "geombias-V04-00-03" + on top of previous global geometry tag. + +Mar 25, 2002 Gabriele Cosmo geometry-V04-00-01 +----------------------------- +- Added 'biasing' module. Updated global GNUmakefile. +- Includes "biasing" module on top of 'geant4-04-00-ref-03'. + +Jan 11, 2002 Gabriele Cosmo geometry-V04-00-00 +----------------------------- +- Updated unit tests and benchmarks. +- This tag includes also the following tags on top of "geant4-04-00-ref-00": + geomvol-V04-00-01, geommng-V04-00-00, geom-solids-csg-V04-00-00, + field-V04-00-00, geom-solid-bool-V04-00-00, geom-solids-specific-V04-00-00. + See related History files for details. + Oct 22, 2001 Gabriele Cosmo geometry-V03-02-01 ----------------------------- - Introduced new module "verification" for geometry debugging. diff --git a/source/geometry/biasing/GNUmakefile b/source/geometry/biasing/GNUmakefile new file mode 100644 index 0000000000..4715d3dcb5 --- /dev/null +++ b/source/geometry/biasing/GNUmakefile @@ -0,0 +1,22 @@ +# $Id: GNUmakefile,v 1.1 2002/03/25 17:09:16 gcosmo Exp $ +# -------------------------------------------------------------------- +# GNUmakefile for geometry/biasing library. Gabriele Cosmo, 25/03/02. +# -------------------------------------------------------------------- + +name := G4geombias + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/graphics_reps/include \ + -I$(G4BASE)/intercoms/include \ + -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include + +include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/biasing/History b/source/geometry/biasing/History new file mode 100644 index 0000000000..d8fd731074 --- /dev/null +++ b/source/geometry/biasing/History @@ -0,0 +1,46 @@ +$Id: History,v 1.9 2002/05/31 09:56:09 dressel Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +May, 31th, 2002 M.Dressel - geombias-V04-00-04 +- change name ImportanceSampler to ImportanceSplitExaminer + +May, 30th, 2002 M.Dressel +- change comments in WeightWindowAlgorithm + +May, 24th, 2002 M.Dressel - internal-1-geombias-V04-00-02 +- Added classes for weight window biasing. + + +April 10th, 2002 M.Dressel - geombias-V04-00-03 +- Added comments to header files for Software Reference Manual. + +April 9th, 2002 G.Cosmo +- Added liability disclaimer to all files and minor cosmetics. + +April 8th, 2002 M.Dressel - geombias-V04-00-02 +- Resolved compilation problems on HP-aCC. + +April 4th, 2002 M.Dressel - geombias-V04-00-01 +- Resolved compilation problems on SUN-CC and Linux-egcs. + +March 28th, 2002 M.Dressel - geombias-V04-00-00 +- First implementation of importance biasing and scoring. + +March 25th, 2002 G.Cosmo +- Created. diff --git a/source/geometry/biasing/include/G4IStore.hh b/source/geometry/biasing/include/G4IStore.hh new file mode 100644 index 0000000000..46ee9eaec6 --- /dev/null +++ b/source/geometry/biasing/include/G4IStore.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: G4IStore.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4IStore +// +// Class description: +// +// An implementation of a "importance store" with the interface +// G4VIStore. See description in G4VIStore. +// This implementation uses G4PtkImportance as the container +// to store the "cells" together with the importance values. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4IStore_hh +#define G4IStore_hh G4IStore_hh + +#include "G4VIStore.hh" +#include "G4PtkImportance.hh" + +class G4IStore : public G4VIStore +{ + +public: // with description + + G4IStore(G4VPhysicalVolume &worldvolume); + // initialise the importance store for the given geometry + + ~G4IStore(); + // destruct + + void AddImportanceRegion(G4double importance, + const G4VPhysicalVolume &, + G4int aRepNum = 0); + // Add a "cell" together with a importance value to the store. + + void ChangeImportance(G4double importance, + const G4VPhysicalVolume &, + G4int aRepNum = 0); + // Change a importance value of a "cell". + + 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 Error(const G4String &m) const; + +private: + + G4VPhysicalVolume &fWorldVolume; + G4PtkImportance fPtki; + + mutable G4PtkImportance::const_iterator fCurrentIterator; +}; + +#endif diff --git a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh new file mode 100644 index 0000000000..8a750cbb0d --- /dev/null +++ b/source/geometry/biasing/include/G4ImportanceAlgorithm.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. * +// ******************************************************************** +// +// +// $Id: G4ImportanceAlgorithm.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ImportanceAlgorithm +// +// Class description: +// +// An implementation of a G4VImportanceAlgorithm (see description in +// G4VImportanceAlgorithm.hh). + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ImportanceAlgorithm_hh +#define G4ImportanceAlgorithm_hh G4ImportanceAlgorithm_hh + +#include "G4VImportanceAlgorithm.hh" + +class G4ImportanceAlgorithm : public G4VImportanceAlgorithm +{ + +public: // with description + + G4ImportanceAlgorithm(); + // simple construction + + ~G4ImportanceAlgorithm(); + // repeate warning if triggered + + G4Nsplit_Weight Calculate(G4double ipre_over_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 + // the mother track. +private: + + void Error(const G4String &m) const; + void Warning(const G4String &m) const; + +private: + + mutable G4bool fWorned; +}; + +#endif diff --git a/source/geometry/biasing/include/G4ImportanceFinder.hh b/source/geometry/biasing/include/G4ImportanceFinder.hh new file mode 100644 index 0000000000..56b10b15fc --- /dev/null +++ b/source/geometry/biasing/include/G4ImportanceFinder.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: G4ImportanceFinder.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ImportanceFinder +// +// Class description: +// +// 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. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ImportanceFinder_hh +#define G4ImportanceFinder_hh G4ImportanceFinder_hh + +#include "globals.hh" + +class G4VParallelStepper; +class G4VIStore; +class G4PTouchableKey; + +class G4ImportanceFinder +{ + +public: // with description + + 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. + +private: + + void Error(const G4String &m) const; + +private: + + const G4VIStore &fIStore; +}; + +#endif diff --git a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh new file mode 100644 index 0000000000..2d32d99f4e --- /dev/null +++ b/source/geometry/biasing/include/G4ImportanceSplitExaminer.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. * +// ******************************************************************** +// +// +// $Id: G4ImportanceSplitExaminer.hh,v 1.2 2002/05/31 09:56:09 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ImportanceSplitExaminer +// +// Class description: +// +// This class is used internally by importance sampling. +// Implementation of a importance split examiner +// (see G4VImportanceSplitExaminer). +// This implementation is used for sampling in a "parallel" +// geometry. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ImportanceSplitExaminer_hh +#define G4ImportanceSplitExaminer_hh G4ImportanceSplitExaminer_hh + +#include "G4VImportanceSplitExaminer.hh" + +class G4VImportanceAlgorithm; +class G4VParallelStepper; +class G4ImportanceFinder; +class G4VIStore; + +class G4ImportanceSplitExaminer: public G4VImportanceSplitExaminer +{ + +public: // with description + + G4ImportanceSplitExaminer(const G4VImportanceAlgorithm &aIalg, + const G4VParallelStepper &astepper, + const G4VIStore &istore); + // initialisation and construct G4ImportanceFinder + + ~G4ImportanceSplitExaminer(); + // delete G4ImportanceFinder + + G4Nsplit_Weight Examine(G4double w) const; + // Get G4Nsplit_Weight for a given mother track weight. + + +private: + + G4ImportanceSplitExaminer(const G4ImportanceSplitExaminer &); + G4ImportanceSplitExaminer &operator=(const G4ImportanceSplitExaminer &); + +private: + + const G4VImportanceAlgorithm &fIalgorithm; + const G4VParallelStepper &fPStepper; + const G4ImportanceFinder &fIfinder; +}; + + +#endif diff --git a/source/geometry/biasing/include/G4Nsplit_Weight.hh b/source/geometry/biasing/include/G4Nsplit_Weight.hh new file mode 100644 index 0000000000..b9bf62ee29 --- /dev/null +++ b/source/geometry/biasing/include/G4Nsplit_Weight.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. * +// ******************************************************************** +// +// +// $Id: G4Nsplit_Weight.hh,v 1.5 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// 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. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4Nsplit_Weight_hh +#define G4Nsplit_Weight_hh G4Nsplit_Weight_hh + +#include "globals.hh" + +struct G4Nsplit_Weight +{ + G4Nsplit_Weight(G4int an, G4double aw): fN(an), fW(aw){} + // initialise members + + G4int fN; + // number of tracks a mother track should be split into + // including the mother track + + G4double fW; + // the weight to be given to the tracks +}; + +G4std::ostream& operator<<(G4std::ostream &out, + const G4Nsplit_Weight &nw); + +#endif + + + + + + + + + + diff --git a/source/geometry/biasing/include/G4PMapPtkTallys.hh b/source/geometry/biasing/include/G4PMapPtkTallys.hh new file mode 100644 index 0000000000..09c5332de3 --- /dev/null +++ b/source/geometry/biasing/include/G4PMapPtkTallys.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: G4PMapPtkTallys.hh,v 1.8 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4PMapNameTally and G4PMapPtkTallys +// +// Class description: +// +// Used by G4PScorer and G4PIScorer as containers for tallies. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4PMapPtkTallys_hh +#define G4PMapPtkTallys_hh G4PMapPtkTallys_hh + +#include "g4std/map" +#include "globals.hh" +#include "g4std/iostream" +#include "G4PTouchableKey.hh" +#include "G4Sigma.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 + +G4std::ostream& operator<<(G4std::ostream &out, const G4PMapNameTally &tally); +G4std::ostream& operator<<(G4std::ostream &out, const G4PMapPtkTallys &ptktally); + +#endif diff --git a/source/geometry/biasing/include/G4PStep.hh b/source/geometry/biasing/include/G4PStep.hh new file mode 100644 index 0000000000..07ec41c84b --- /dev/null +++ b/source/geometry/biasing/include/G4PStep.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: G4PStep.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4PStep +// +// 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 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: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4PStep_hh +#define G4PStep_hh G4PStep_hh + +#include "G4PTouchableKey.hh" + +class G4PStep +{ + +public: // with description + + G4PStep(const G4PTouchableKey &preKey, const G4PTouchableKey &postKey) + : fPreTouchableKey(preKey), fPostTouchableKey(postKey), + fCrossBoundary(false) {} + // initialise pre and post G4PTouchableKey + + ~G4PStep(){} + +public: // without description + + G4PTouchableKey fPreTouchableKey; + // addressing the "cell" the track previously touched + + G4PTouchableKey fPostTouchableKey; + // addressing the current "cell" + + G4bool fCrossBoundary; + // true if step crosses boundary of the geometry it refers to +}; + +#endif diff --git a/source/geometry/biasing/include/G4PStepStream.hh b/source/geometry/biasing/include/G4PStepStream.hh new file mode 100644 index 0000000000..4685629589 --- /dev/null +++ b/source/geometry/biasing/include/G4PStepStream.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: G4PStepStream.hh,v 1.5 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Declarations +// +// Declaration description: +// +// declarations of streams for G4PTouchableKey and G4PStep + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4PStepStream_hh +#define G4PStepStream_hh G4PStepStream_hh + +#include "G4PTouchableKey.hh" +#include "G4PStep.hh" + +G4std::ostream& operator<<(G4std::ostream &out, const G4PTouchableKey &tk); +G4std::ostream& operator<<(G4std::ostream &out, const G4PStep &ps); + +#endif diff --git a/source/geometry/biasing/include/G4PTouchableKey.hh b/source/geometry/biasing/include/G4PTouchableKey.hh new file mode 100644 index 0000000000..5a9c0ae5ff --- /dev/null +++ b/source/geometry/biasing/include/G4PTouchableKey.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. * +// ******************************************************************** +// +// +// $Id: G4PTouchableKey.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4PTouchableKey +// +// Class description: +// +// This class is usde by scoring and importance sampling. +// 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). + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4PTouchableKey_hh +#define G4PTouchableKey_hh G4PTouchableKey_hh + +#include "globals.hh" + +class G4VPhysicalVolume; + +class G4PTouchableKey +{ + +public: // with description + + G4PTouchableKey(const G4VPhysicalVolume &aVolume, G4int RepNum); + // initialise volume and replica number + + ~G4PTouchableKey(); + // simple destruction + + const G4VPhysicalVolume *fVPhysiclaVolume; + // pinter to the G4VPhysicalVolume of the "cell" + + 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); + +#endif diff --git a/source/geometry/biasing/include/G4ParallelNavigator.hh b/source/geometry/biasing/include/G4ParallelNavigator.hh new file mode 100644 index 0000000000..5b9e87459e --- /dev/null +++ b/source/geometry/biasing/include/G4ParallelNavigator.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. * +// ******************************************************************** +// +// +// $Id: G4ParallelNavigator.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelNavigator +// +// Class description: +// +// Used internaly for importance sampling and scoring in a "parallel" +// geometry. +// It implements the interface G4VPGeoDriver (see G4VPGeoDriver.hh). +// It uses a G4Navigator. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ParallelNavigator_hh +#define G4ParallelNavigator_hh G4ParallelNavigator_hh + +#include "G4VPGeoDriver.hh" +#include "geomdefs.hh" + +class G4VTouchable; +class G4Navigator; +class G4PTouchableKey ; +class G4VPhysicalVolume; + +class G4ParallelNavigator : public G4VPGeoDriver +{ + +public: // with description + + G4ParallelNavigator(G4VPhysicalVolume &aWorldVolume); + // initialise and create G4Navigator and a TouchableHistory + + ~G4ParallelNavigator(); + // delete Touchable and Navigator + + G4PTouchableKey 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. + // Must be called in the PostDOIT of the ParallelTransportation. + // (The track crosses the boundary if PostDOIT gets called.) + + + G4PTouchableKey GetCurrentTouchableKey() const; + // get the current G4PTouchableKey of the "parallel" geometry + + G4double ComputeStepLengthInit(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); + // compute step length for a starting track. + + 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); + // compute step length when track moves inside a volume. + +private: + + G4ParallelNavigator(const G4ParallelNavigator &); + G4ParallelNavigator &operator=(const G4ParallelNavigator &); + + G4double ComputeStepLengthShifted(const G4String &m, + const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); + + void Locate(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection, + G4bool histsearch); + + void Error(const G4String &m, + const G4ThreeVector &pos, + const G4ThreeVector &dir); + + G4double Shift(G4double d); + +private: + + G4Navigator &fNavigator; + G4VTouchable *fCurrentTouchable; + G4int fNlocated; +}; + +#endif + + + + + + + + + + + + + diff --git a/source/geometry/biasing/include/G4ParallelStepper.hh b/source/geometry/biasing/include/G4ParallelStepper.hh new file mode 100644 index 0000000000..491c196664 --- /dev/null +++ b/source/geometry/biasing/include/G4ParallelStepper.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: G4ParallelStepper.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelStepper +// +// Class description: +// +// Used internally by importance sampling and scoring in a "parallel" +// geometry. (See G4VParallelStepper.hh) + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ParallelStepper_hh +#define G4ParallelStepper_hh G4ParallelStepper_hh + +#include "G4VParallelStepper.hh" +#include "G4PStep.hh" + +class G4ParallelStepper : public G4VParallelStepper +{ + +public: // with description + + G4ParallelStepper(); + // imitilisation + + ~G4ParallelStepper(); + // delete G4Pstep if created + + G4ParallelStepper(const G4ParallelStepper &); + // create new G4PStep + + 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 + +private: + + void Error(const G4String &m); + +private: + + G4PStep *fPStep; +}; + +#endif diff --git a/source/geometry/biasing/include/G4ParallelWorld.hh b/source/geometry/biasing/include/G4ParallelWorld.hh new file mode 100644 index 0000000000..30bed9cbc2 --- /dev/null +++ b/source/geometry/biasing/include/G4ParallelWorld.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: G4ParallelWorld.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelWorld +// +// Class description: +// +// Used internally by importance samplin and scoring in a "parallel" +// geometry. +// The class relates the world volume (G4VPhysicalVolume), +// G4VGeoDriver and G4VParallelStepper for one "parallel" +// geometry. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ParallelWorld_hh +#define G4ParallelWorld_hh G4ParallelWorld_hh + +#include "globals.hh" + +class G4VPhysicalVolume; +class G4VParallelStepper; +class G4VPGeoDriver; + +class G4ParallelWorld +{ + +public: // with description + + 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 + + G4VPGeoDriver &GetGeoDriver(); + // get the G4VPGeoDriver + +private: + + G4VPhysicalVolume *fWorldVolume; + G4VParallelStepper *fPstepper; + G4VPGeoDriver *fPdriver; +}; + +#endif diff --git a/source/geometry/biasing/include/G4Pstring.hh b/source/geometry/biasing/include/G4Pstring.hh new file mode 100644 index 0000000000..2d854fe740 --- /dev/null +++ b/source/geometry/biasing/include/G4Pstring.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Pstring.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Declaration +// +// Declaration description: +// +// This fucntions convert some non character objects into +// G4Strings + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4Pstring_hh +#define G4Pstring_hh G4Pstring_hh + +#include "globals.hh" +#include "G4ThreeVector.hh" + +G4String str(const int &i); + // convert an integer into a G4String + +G4String str(const double &d); + // convert a double into a G4String + +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/G4PtkImportance.hh new file mode 100644 index 0000000000..163c25ec1a --- /dev/null +++ b/source/geometry/biasing/include/G4PtkImportance.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: G4PtkImportance.hh,v 1.5 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4PtkImportance +// +// Class description: +// +// Used internally by importance sampling. +// It is acontainer for "cell" importance value pairs. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4PtkImportance_hh +#define G4PtkImportance_hh G4PtkImportance_hh + +#include "g4std/map" +#include "globals.hh" +#include "G4PTouchableKey.hh" + +typedef G4std::map G4PtkImportance; + // implement container G4PtkImportance as map + +G4std::ostream& operator<<(G4std::ostream &out, const G4PtkImportance &ptki); + +#endif diff --git a/source/geometry/biasing/include/G4Sigma.hh b/source/geometry/biasing/include/G4Sigma.hh new file mode 100644 index 0000000000..9bd04328d1 --- /dev/null +++ b/source/geometry/biasing/include/G4Sigma.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: G4Sigma.hh,v 1.6 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4Sigma +// +// Class description: +// +// 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 + +#include "g4std/iostream" +#include "globals.hh" + +class G4Sigma +{ + + public: // with description + + G4Sigma(); + // call Init() + + ~G4Sigma(); + // simple deonstruction + + void Init(); + // initialisation + + G4int Xin(G4double x, G4double w = 1.); + // enter a value [with a weight] + + G4int GetEntries() const; + // get the number of entries + + G4double GetMean() const; + // get the weighted mean value: Sum(w*x)/Sum(w) + + 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; + +}; + +G4std::ostream& operator<<(G4std::ostream &out, const G4Sigma &s); + +#endif diff --git a/source/geometry/biasing/include/G4VIStore.hh b/source/geometry/biasing/include/G4VIStore.hh new file mode 100644 index 0000000000..0ae538cdcb --- /dev/null +++ b/source/geometry/biasing/include/G4VIStore.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: G4VIStore.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VIStore +// +// Class description: +// +// An interface of an "importance store" used by importance sampling. +// It defines how a importance value together with a "cell" +// (a G4VPhysicalVolume and a replica number) has to be added +// to the "importance store" and how a importance value can be derived +// from the "importance store". +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VIStore_hh +#define G4VIStore_hh G4VIStore_hh + +#include "globals.hh" + +class G4PTouchableKey; +class G4VPhysicalVolume; + +class G4VIStore +{ + +public: // with description + + G4VIStore(G4VPhysicalVolume &worldVolume){} + 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 + // from the store. + + virtual G4VPhysicalVolume &GetWorldVolume() = 0; +}; + +#endif diff --git a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh new file mode 100644 index 0000000000..8bd67f06a6 --- /dev/null +++ b/source/geometry/biasing/include/G4VImportanceAlgorithm.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: G4VImportanceAlgorithm.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VImportanceAlgorithm +// +// Class description: +// +// This is an interface used by importance sampling to get the +// number of copies and weight a mother particle should be split +// into when crossing a boundary of "importance cells". +// The interface defines the input to be the ratio of the pre over +// the post importance and the weight of the mother track. +// It returns a struct containing the number of copies (including +// the mother track) to be produced and the weight of each track. +// A user defined algorithm deriving from this interface may be used +// by the importance sampling. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VImportanceAlgorithm_hh +#define G4VImportanceAlgorithm_hh G4VImportanceAlgorithm_hh + +#include "G4Nsplit_Weight.hh" + +class G4VImportanceAlgorithm +{ + +public: // with description + + virtual ~G4VImportanceAlgorithm(){} + virtual G4Nsplit_Weight Calculate(G4double ipre_over_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 + // the mother track. +}; + +#endif diff --git a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh new file mode 100644 index 0000000000..a2234995e3 --- /dev/null +++ b/source/geometry/biasing/include/G4VImportanceSplitExaminer.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: G4VImportanceSplitExaminer.hh,v 1.1 2002/05/31 08:07:47 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VImportanceSplitExaminer +// +// Class description: +// +// This interface is used internally by importance sampling. +// It delivers G4Nsplit_Weight according to a track weight. +// An implementation of the interface decides how to obtain +// remaining necessary information about the ratio of importances +// in the pre and post "cell". + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VImportanceSplitExaminer_hh +#define G4VImportanceSplitExaminer_hh G4VImportanceSplitExaminer_hh + +#include "globals.hh" +#include "G4Nsplit_Weight.hh" + +class G4VImportanceSplitExaminer +{ + +public: // with description + + virtual ~G4VImportanceSplitExaminer(){} + virtual G4Nsplit_Weight Examine(G4double w) const = 0; + // Get G4Nsplit_Weight for a given mother track weight. +}; + +#endif diff --git a/source/geometry/biasing/include/G4VPGeoDriver.hh b/source/geometry/biasing/include/G4VPGeoDriver.hh new file mode 100644 index 0000000000..ce39d57cd4 --- /dev/null +++ b/source/geometry/biasing/include/G4VPGeoDriver.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: G4VPGeoDriver.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VPGeoDriver +// +// Class description: +// +// Used internally by importance sampling and scoring in a "parallel" +// geometry. +// It defines an interface to "drive" or "move" a particle in a +// "parallel" geometry. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VPGeoDriver_hh +#define G4VPGeoDriver_hh G4VPGeoDriver_hh + +#include "globals.hh" +#include "G4ThreeVector.hh" +#include "G4PTouchableKey.hh" + +class G4VPGeoDriver +{ + +public: // with description + + virtual ~G4VPGeoDriver(){} + + virtual G4PTouchableKey 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 G4double ComputeStepLengthInit(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection) = 0; + // compute step length for a starting track. + + virtual G4double ComputeStepLengthCrossBoundary(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection) = 0; + // compute the step length after a track crossed a boundary + // in a "parallel" geometry + + virtual G4double ComputeStepLengthInVolume(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection) = 0; + // compute step length when track moves inside a volume. + +}; + +#endif diff --git a/source/geometry/biasing/include/G4VPScorer.hh b/source/geometry/biasing/include/G4VPScorer.hh new file mode 100644 index 0000000000..e48582a017 --- /dev/null +++ b/source/geometry/biasing/include/G4VPScorer.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: G4VPScorer.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VPScorer +// +// Class description: +// +// This interface is known by scoring. Implementation of +// 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). + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VPScorer_hh +#define G4VPScorer_hh G4VPScorer_hh + +class G4Step; +class G4PStep; + +class G4VPScorer +{ + +public: // with description + + virtual ~G4VPScorer() {} + virtual void Score(const G4Step &step, const G4PStep &pstep) = 0; + // perform scoring for the G4Step and G4PStep +}; + +#endif + + + + + diff --git a/source/geometry/biasing/include/G4VParallelStepper.hh b/source/geometry/biasing/include/G4VParallelStepper.hh new file mode 100644 index 0000000000..0f72d48815 --- /dev/null +++ b/source/geometry/biasing/include/G4VParallelStepper.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VParallelStepper.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VParallelStepper +// +// Class description: +// +// 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" +// (done by G4ParallelTransport) of a track in a "parallel" geometry +// and a scorer for that geometry. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VParallelStepper_hh +#define G4VParallelStepper_hh G4VParallelStepper_hh + +#include "G4PStep.hh" + +class G4VParallelStepper +{ + +public: // with description + + virtual ~G4VParallelStepper(){} + + virtual G4PStep GetPStep() const = 0; + // get the current G4PStep + + 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 Update(const G4PTouchableKey &aptk) = 0; + // to be called when crossing a boundary of the + // "parallel" geometry to update the G4PStep + + virtual void UnSetCrossBoundary() = 0; + // to be called to unset the fCrossBoundary member of the G4PStep + +}; + +#endif diff --git a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh new file mode 100644 index 0000000000..58cc33e055 --- /dev/null +++ b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VWeightWindowAlgorithm.hh,v 1.2 2002/05/30 16:00:55 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VWeightWindowAlgorithm +// +// Class description: +// +// This is a base class for an algorithm used for +// weight window importance sampling. It calculates +// the new weight of particles and the number of copies +// it should be split into according to the initial weight +// of the track and the importance of the cell. The window +// is defined by the values of Upper and Lower. +// +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VWeightWindowAlgorithm_hh +#define G4VWeightWindowAlgorithm_hh G4VWeightWindowAlgorithm_hh + +#include "G4Nsplit_Weight.hh" + +class G4VWeightWindowAlgorithm +{ + +public: // with description + + virtual ~G4VWeightWindowAlgorithm(){} + + virtual void SetUpperLimit(G4double Upper) = 0; + // set upper limiting factor for window + + virtual void SetLowerLimit(G4double Lower) = 0; + // set lower limiting facotr for window + + virtual G4Nsplit_Weight Calculate(G4double init_w, + G4double importance) const = 0; + // calculate the number of tracks and their weight according + // to the upper and lower limmiting factors of the window + // and the initial weight + +}; + +#endif diff --git a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh new file mode 100644 index 0000000000..21f215cee7 --- /dev/null +++ b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4WeightWindowAlgorithm.hh,v 1.2 2002/05/30 16:00:55 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4WeightWindowAlgorithm +// +// Class description: +// see also G4VWeightWindowAlgorithm. +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4WeightWindowAlgorithm_hh +#define G4WeightWindowAlgorithm_hh G4WeightWindowAlgorithm_hh + +#include "G4Nsplit_Weight.hh" +#include "G4VWeightWindowAlgorithm.hh" + +class G4WeightWindowAlgorithm : public G4VWeightWindowAlgorithm +{ + +public: // with description + + G4WeightWindowAlgorithm(); + + ~G4WeightWindowAlgorithm(){} + + 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); + // 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; + // calculate the number of tracks and their weight according + // to the upper and lower limmiting factors of the window + // and the initial weight + // - init_w is the initial weight of the particle + // - importance is the importance of the cell + +private: + G4double fUpper; + G4double fLower; +}; + +#endif diff --git a/source/geometry/biasing/src/G4IStore.cc b/source/geometry/biasing/src/G4IStore.cc new file mode 100644 index 0000000000..490b7f1ad1 --- /dev/null +++ b/source/geometry/biasing/src/G4IStore.cc @@ -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: G4IStore.cc,v 1.3 2002/04/09 16:23:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4IStore.cc +// +// ---------------------------------------------------------------------- + +#include "G4IStore.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PTouchableKey.hh" +#include "G4PStepStream.hh" + + +G4IStore::G4IStore(G4VPhysicalVolume &worldvolume) : + G4VIStore(worldvolume), + fWorldVolume(worldvolume) +{} + +G4IStore::~G4IStore() +{} + +G4VPhysicalVolume &G4IStore::GetWorldVolume() +{ + return fWorldVolume; +} + +void G4IStore::SetInternalIterator(const G4VPhysicalVolume &aVolume, + G4int aRepNum) const +{ + if (!IsInWorld(aVolume)) { + Error("SetInternalIterator: physical volume not in this World"); + } + fCurrentIterator = fPtki.find(G4PTouchableKey(aVolume, aRepNum)); +} + +void G4IStore::AddImportanceRegion(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; +} + +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; +} + +G4double G4IStore::GetImportance(const G4VPhysicalVolume &aVolume, + G4int aRepNum) const +{ + SetInternalIterator(aVolume, aRepNum); + if (fCurrentIterator==fPtki.end()) { + Error("GetImportance: Region does not exist"); + } + return (*fCurrentIterator).second; +} + + +G4double G4IStore::GetImportance(const G4PTouchableKey &ptk) const +{ + fCurrentIterator = fPtki.find(ptk); + if (fCurrentIterator==fPtki.end()) { + G4cout << "PTouchableKey ptk: " << ptk << G4endl; + G4cout << "Not found in: " << G4endl; + G4cout << fPtki << G4endl; + Error("GetImportance(ptk): Region does not exist"); + } + return (*fCurrentIterator).second; +} + +G4bool G4IStore::IsInWorld(const G4VPhysicalVolume &aVolume) const +{ + return true; + /* + if (!aVolume) return false; + if (*aVolume==G4ParallelWorld::GetWorldVolume()) { + return true; + } + return IsInWorld(aVolume->GetMother()); + */ +} + +void G4IStore::Error(const G4String &m) const +{ + G4cout << "ERROR - G4IStore::" << m << G4endl; + G4Exception("Program aborted."); +} diff --git a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc new file mode 100644 index 0000000000..c1e72f9128 --- /dev/null +++ b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ImportanceAlgorithm.cc,v 1.4 2002/04/09 16:23:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ImportanceAlgorithm.cc +// +// ---------------------------------------------------------------------- + +#include "g4std/strstream" +#include "Randomize.hh" + +#include "G4ImportanceAlgorithm.hh" + +G4ImportanceAlgorithm::G4ImportanceAlgorithm(): fWorned(false) +{} + +G4ImportanceAlgorithm::~G4ImportanceAlgorithm() +{ + if(fWorned) { + G4cout << G4endl; + Warning("~G4ImportanceAlgorithm: ipre_over_ipost ! in [0.25, 4] seen"); + G4cout << G4endl; + } +} + +G4Nsplit_Weight +G4ImportanceAlgorithm::Calculate(G4double ipre_over_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"); + } + } + 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; + // 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 (rGetVolume(), + fCurrentTouchable->GetReplicaNumber()); +} + +void G4ParallelNavigator::Error(const G4String &m, + const G4ThreeVector &pos, + const G4ThreeVector &dir) +{ + G4cout << "ERROR - G4ParallelNavigator::" << m << G4endl; + G4cout << "aPosition: " << pos << G4endl; + G4cout << "dir: " << dir << G4endl; + G4Exception("Program aborted."); +} + +G4double G4ParallelNavigator::Shift(G4double d) +{ + if (d>0) return 2 * kCarTolerance; + if (d<0) return -2 * kCarTolerance; + return 0.; +} diff --git a/source/geometry/biasing/src/G4ParallelStepper.cc b/source/geometry/biasing/src/G4ParallelStepper.cc new file mode 100644 index 0000000000..a65af4229c --- /dev/null +++ b/source/geometry/biasing/src/G4ParallelStepper.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: G4ParallelStepper.cc,v 1.3 2002/04/10 13:13:07 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelStepper.cc +// +// ---------------------------------------------------------------------- + +#include "G4ParallelStepper.hh" +#include "G4VPhysicalVolume.hh" + +G4ParallelStepper::G4ParallelStepper() + : fPStep(0) +{} + +G4ParallelStepper::~G4ParallelStepper() +{ + if (fPStep) delete fPStep; +} + +G4ParallelStepper::G4ParallelStepper(const G4ParallelStepper &rhs) +{ + fPStep = new G4PStep(rhs.GetPStep()); +} + +G4ParallelStepper &G4ParallelStepper::operator=(const G4ParallelStepper &rhs) +{ + if (this != &rhs) { + fPStep = new G4PStep(rhs.GetPStep()); + } + return *this; +} + +void G4ParallelStepper::Init(const G4PTouchableKey &aptk) +{ + if (!fPStep) { + fPStep = new G4PStep(aptk, aptk); + } + else { + fPStep->fPreTouchableKey = aptk; + fPStep->fPostTouchableKey = aptk; + } + UnSetCrossBoundary(); +} + +void G4ParallelStepper::Update(const G4PTouchableKey &aptk) +{ + if (!fPStep) { + Error("fPStep == 0, Init not called?"); + } + fPStep->fPreTouchableKey = fPStep->fPostTouchableKey; + fPStep->fPostTouchableKey = aptk; + fPStep->fCrossBoundary = true; +} + +void G4ParallelStepper::UnSetCrossBoundary() +{ + if (!fPStep) { + Error("fPStep == 0, Init not called?"); + } + fPStep->fCrossBoundary = false; +} + +void G4ParallelStepper::Error(const G4String &m) +{ + G4cout << "ERROR: in G4ParallelStepper::" << m << G4endl; + G4Exception("Program aborted."); +} diff --git a/source/geometry/biasing/src/G4ParallelWorld.cc b/source/geometry/biasing/src/G4ParallelWorld.cc new file mode 100644 index 0000000000..c3ffe6c4e6 --- /dev/null +++ b/source/geometry/biasing/src/G4ParallelWorld.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: G4ParallelWorld.cc,v 1.2 2002/04/09 16:23:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelWorld.cc +// +// ---------------------------------------------------------------------- + +#include "G4ParallelWorld.hh" +#include "G4ParallelStepper.hh" +#include "G4ParallelNavigator.hh" +#include "G4VPhysicalVolume.hh" + +G4ParallelWorld::G4ParallelWorld(G4VPhysicalVolume &worldvolume) + : fWorldVolume(&worldvolume), + fPstepper(new G4ParallelStepper), + fPdriver(new G4ParallelNavigator(*fWorldVolume)) +{} + +G4ParallelWorld::~G4ParallelWorld() +{ + delete fPdriver; + 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; +} + +G4VPGeoDriver &G4ParallelWorld::GetGeoDriver() +{ + return *fPdriver; +} diff --git a/source/geometry/biasing/src/G4Pstring.cc b/source/geometry/biasing/src/G4Pstring.cc new file mode 100644 index 0000000000..895d915f04 --- /dev/null +++ b/source/geometry/biasing/src/G4Pstring.cc @@ -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: G4Pstring.cc,v 1.2 2002/04/09 16:23:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4Pstring.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; +} + + diff --git a/source/geometry/biasing/src/G4PtkImportance.cc b/source/geometry/biasing/src/G4PtkImportance.cc new file mode 100644 index 0000000000..2395eda916 --- /dev/null +++ b/source/geometry/biasing/src/G4PtkImportance.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: G4PtkImportance.cc,v 1.4 2002/04/09 16:23:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4PtkImportance.cc +// +// ---------------------------------------------------------------------- + +#include "G4PtkImportance.hh" +#include "G4PStepStream.hh" + +G4std::ostream& operator<<(G4std::ostream &out, const G4PtkImportance &ptki) +{ + for (G4PtkImportance::const_iterator it = ptki.begin(); + it != ptki.end(); it++) { + out << (*it).first << ", importance = "; + out << (*it).second << "\n"; + } + return out; +} diff --git a/source/geometry/biasing/src/G4Sigma.cc b/source/geometry/biasing/src/G4Sigma.cc new file mode 100644 index 0000000000..c389fc5470 --- /dev/null +++ b/source/geometry/biasing/src/G4Sigma.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: 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/G4WeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc new file mode 100644 index 0000000000..cb6750bab6 --- /dev/null +++ b/source/geometry/biasing/src/G4WeightWindowAlgorithm.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: G4WeightWindowAlgorithm.cc,v 1.2 2002/05/31 09:56:09 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4WeightWindowAlgorithm.cc +// +// ---------------------------------------------------------------------- +#include "G4WeightWindowAlgorithm.hh" +#include "Randomize.hh" + + +G4WeightWindowAlgorithm::G4WeightWindowAlgorithm() : + fUpper(1), + fLower(1) +{} + +void G4WeightWindowAlgorithm::SetUpperLimit(G4double Upper){ + fUpper = Upper; +} + +void G4WeightWindowAlgorithm::SetLowerLimit(G4double Lower){ + fLower = Lower; +} + + +G4Nsplit_Weight +G4WeightWindowAlgorithm::Calculate(G4double init_w, + G4double importance) const { + + + G4Nsplit_Weight nw(1, init_w); + G4double iw = importance * init_w; + if (iw>fUpper) { + // f is the factor by which the weight is greater + // than allowed by fUpper + // it is almost the number of coppies to be produced + G4double f = iw / fUpper; + // calculate new weight + nw.fW/=f; + + // calculate the number of coppies + nw.fN = int(f); + // correct the number of coppies in case f is not an integer + if (G4double(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) + G4double r = G4UniformRand(); + if (r=p) { + // kill track + nw.fN = 0; + nw.fW = 0; + } + else { + nw.fW*=1/p; // to be consistant with the survival prob. + } + } + return nw; +} + diff --git a/source/geometry/magneticfield/GNUmakefile b/source/geometry/magneticfield/GNUmakefile index da01765aec..ef729eaecd 100644 --- a/source/geometry/magneticfield/GNUmakefile +++ b/source/geometry/magneticfield/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 1999/02/17 16:57:35 japost Exp $ +# $Id: GNUmakefile,v 1.3 2002/01/10 15:52:07 gcosmo Exp $ # -------------------------------------------------------------------- # GNUmakefile for geometry/magneticfield library. G.Cosmo, 22/01/97. @@ -13,6 +13,10 @@ include $(G4INSTALL)/config/architecture.gmk CPPFLAGS += \ -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ - -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/global/HEPGeometry/include + +ifdef G4DEBUG_FIELD + CPPFLAGS += -DG4DEBUG_FIELD +endif include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/magneticfield/History b/source/geometry/magneticfield/History index fc158634f1..0a13ed1207 100644 --- a/source/geometry/magneticfield/History +++ b/source/geometry/magneticfield/History @@ -1,4 +1,4 @@ -$Id: History,v 1.48 2001/12/04 17:42:29 gcosmo Exp $ +$Id: History,v 1.60 2002/06/07 18:30:29 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,77 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 7th, 2002 J. Apostolakis - field-V04-00-04 +-------------------------------- + - G4Mag_SpinEqRhs.cc + o Fix to momentum component of Rhs. + +May 31st, 2002 J. Apostolakis - field-V04-00-03 +-------------------------------- + - G4MagHelicalStepper.icc + o Fix to LinearStep (correcting previous fix/cosmetic) + - G4ChordFinder.cc + o Corrective behaviour for very small or large changes of 'new step' + [observed in complex 3-d fields (purging magnet), or + approximate equations of motion ] + - G4MagIntegratorDriver + o More information in debug printing (tangent cosine, norm) + + +May 7th, 2002 J. Apostolakis - field-V04-00-02 +-------------------------------- + Tag including only two changes below: + - Putting aside the other fixes/changes (as the one above) to +G4MagIntegratorDriver, tagging only the fix to update the field track +for steps smaller than the chord finder's minstep. + +May 7th, 2002 J. Apostolakis +-------------------------------- +- G4MagIntegratorDriver - ** branch ** on 1.20 ** + * Fix to update the field track for steps smaller than the chord finder's +minstep. + +May 7th, 2002 J. Apostolakis +-------------------------------- +- G4MagIntegratorStepper + * Changed RightHandSide from a virtual method to an inline (non-virtual) + method -- it is not and should not be changed by derived classes. + +Mar 28th, 2002 J. Apostolakis - field-V04-00-01 +----------------------- +- Fixed LinearStep in G4MagHelicalStepper (expected unit direction), + that had not been updated for new integration variable (momentum). + --> found in testing helical steppers in BaBar setup, + in region of negligible field. + +- Changed maximum number of steps in driver, + halving from 500/order to 250/order. + +Mar 28th, 2002 J. Apostolakis +----------------------- +- Committed directory "OtherField" with examples of fields, + Delphi, Quadropole etc. + +- Updated outputs of testPropagateMagField for new version of source, + that has 3rd test case. + +- Added new runs and outputs for testProElectroMagField, with + several steppers, and modified test script test.sh accordingly. + + +Feb 2nd, 2002 V. Grichine +------------------------ +Update of test/field02 to utilise new features + - for Electric Field, to signal that a field modifies the energy; + - updating of time by integration, for time dependent fields. + +Jan 10th, 2002 G. Cosmo - field-V04-00-00 +------------------------ +- Activated G4DEBUG_FIELD in GNUmakefile. + +Jan 7th, 2002 J. Apostolakis +----------------------------- +- G4MagHelicalStepper.cc: renamed local variables "*Momentum*" to "*Velocity*". Dec 4th, 2001 G. Cosmo - field-V03-02-08 ----------------------- @@ -240,6 +311,12 @@ Jun 2nd, 2000 J. Apostolakis o Added DeltaIntersection and DeltaOneStep to FieldManager: added Get/Set methods and SetAccuraciesWithDeltaOneStep(). +May 31st, 2000 J. Apostolakis - field-V01-01-03 + +include/G4FieldManager.hh,icc + o Moved Delta Intersection and Delta One Step to FieldManager + (from Propagator in Field), to allow them to differ over the detector. + May 11th, 2000 J. Apostolakis - field-V01-01-02 - G4ChordFinder[.hh.cc] diff --git a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh index 41eab4bcc4..ffe7367fd9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4CashKarpRKF45 diff --git a/source/geometry/magneticfield/include/G4ChordFinder.hh b/source/geometry/magneticfield/include/G4ChordFinder.hh index 1a1114b8be..2f818b42ea 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.hh +++ b/source/geometry/magneticfield/include/G4ChordFinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.hh,v 1.8 2001/08/16 23:54:15 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ChordFinder diff --git a/source/geometry/magneticfield/include/G4ChordFinder.icc b/source/geometry/magneticfield/include/G4ChordFinder.icc index d9515aca2c..37db7439e3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4ChordFinder inline implementations // diff --git a/source/geometry/magneticfield/include/G4ClassicalRK4.hh b/source/geometry/magneticfield/include/G4ClassicalRK4.hh index 1b89e5e854..ecc1a1a30c 100644 --- a/source/geometry/magneticfield/include/G4ClassicalRK4.hh +++ b/source/geometry/magneticfield/include/G4ClassicalRK4.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClassicalRK4.hh,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ClassicalRK4 diff --git a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh index bd54e94089..f83b2a07e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ElectroMagneticField diff --git a/source/geometry/magneticfield/include/G4EqMagElectricField.hh b/source/geometry/magneticfield/include/G4EqMagElectricField.hh index b146d7ed7e..0b0e169c63 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4EqMagElectricField diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.hh b/source/geometry/magneticfield/include/G4EquationOfMotion.hh index 3f61641098..28179dca92 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.hh +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.hh @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.hh,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4EquationOfMotion diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.icc b/source/geometry/magneticfield/include/G4EquationOfMotion.icc index 5adfd6f0ea..e8471163e0 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.icc +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.icc @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.icc,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Inline implementation diff --git a/source/geometry/magneticfield/include/G4ExplicitEuler.hh b/source/geometry/magneticfield/include/G4ExplicitEuler.hh index ce7d13a93e..b264c46fa9 100644 --- a/source/geometry/magneticfield/include/G4ExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ExplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExplicitEuler.hh,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ExplicitEuler diff --git a/source/geometry/magneticfield/include/G4Field.hh b/source/geometry/magneticfield/include/G4Field.hh index 0212751a6b..6e8687ec99 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Field diff --git a/source/geometry/magneticfield/include/G4FieldManager.hh b/source/geometry/magneticfield/include/G4FieldManager.hh index 88f68b4db1..2706846d4d 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.hh +++ b/source/geometry/magneticfield/include/G4FieldManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.hh,v 1.7 2001/11/28 18:44:43 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4FieldManager diff --git a/source/geometry/magneticfield/include/G4FieldManager.icc b/source/geometry/magneticfield/include/G4FieldManager.icc index 96601f773a..61177f3d08 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4FieldManager inline implementation diff --git a/source/geometry/magneticfield/include/G4FieldTrack.hh b/source/geometry/magneticfield/include/G4FieldTrack.hh index 9e7caff107..1bf7181581 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4FieldTrack diff --git a/source/geometry/magneticfield/include/G4FieldTrack.icc b/source/geometry/magneticfield/include/G4FieldTrack.icc index 2960289590..f1a1e5bd72 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "PhysicalConstants.h" diff --git a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh index edc87db7e0..9ec10a58d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4HelixExplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixHeum.hh b/source/geometry/magneticfield/include/G4HelixHeum.hh index a332d85fc4..7669100936 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4HelixHeum diff --git a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh index f8b31d7cea..8daed61345 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4HelixImplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh index 01e1b26264..d6198882ab 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // W. Wander 03/12/98 diff --git a/source/geometry/magneticfield/include/G4ImplicitEuler.hh b/source/geometry/magneticfield/include/G4ImplicitEuler.hh index 796cf60f0d..01cacbaf6b 100644 --- a/source/geometry/magneticfield/include/G4ImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ImplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ImplicitEuler.hh,v 1.4 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // W. Wander 12/09/97 diff --git a/source/geometry/magneticfield/include/G4LineSection.hh b/source/geometry/magneticfield/include/G4LineSection.hh index ca3675b52f..6e6f1b83d4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4LineSection diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.hh b/source/geometry/magneticfield/include/G4MagErrorStepper.hh index dc190c0f27..ac37db44d6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4MagErrorStepper diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.icc b/source/geometry/magneticfield/include/G4MagErrorStepper.icc index e711780250..c64308cfb8 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.icc,v 1.8 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // inline diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh index c65b88a887..92c9726ebe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4MagHelicalStepper diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc index a325319f9c..57f5683fdc 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagHelicalStepper.icc,v 1.5 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MagHelicalStepper.icc,v 1.7 2002/05/31 16:22:54 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // linear Step in regions of no field @@ -32,8 +32,15 @@ G4MagHelicalStepper::LinearStep( const G4double yIn[], G4double h, G4double yLinear[]) { + G4double momentum_val = sqrt(yIn[3]*yIn[3] + yIn[4]*yIn[4] + yIn[5]*yIn[5]) ; + G4double inv_momentum = 1.0 / momentum_val ; + G4double yDir[3]; + // G4double h_div_momentum = 1.0 / momentum_val ; + for( G4int i = 0; i < 3; i++ ) { - yLinear[i] = yIn[i] + h * yIn[i+3]; + yDir[i] = inv_momentum * yIn[i+3]; + yLinear[i] = yIn[i] + h * yDir[i]; + // yLinear[i] = yIn[i] + h_div_momentum * yIn[i+3]; yLinear[i+3] = yIn[i+3]; } } diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh index 664d6d6f61..2d73b44d62 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorDriver.hh,v 1.10 2001/11/09 19:17:20 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MagIntegratorDriver.hh,v 1.11 2002/04/19 17:31:41 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4MagInt_Driver @@ -165,7 +165,9 @@ class G4MagInt_Driver void PrintStat_Aux( const G4FieldTrack& aFieldTrack, G4double requestStep, G4double actualStep, - G4int subStepNo); + G4int subStepNo, + G4double subStepSize, + G4double dotVelocities); // Verbose output for debugging #ifdef QUICK_ADV_TWO diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc index a0e41afe92..7c1dc03120 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // inline diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh index 0cac197388..87bb954130 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.hh,v 1.7 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MagIntegratorStepper.hh,v 1.8 2002/05/07 16:11:59 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4MagIntegratorStepper @@ -66,7 +66,7 @@ class G4MagIntegratorStepper inline void NormaliseTangentVector( G4double vec[6] ); // Simple utility function to (re)normalise 'unit velocity' vector. - virtual void RightHandSide( const double y[], double dydx[] ); + inline void RightHandSide( const double y[], double dydx[] ); // Utility method to supply the standard Evaluation of the // Right Hand side of the associated equation. diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc index d4da37ac79..b867468708 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.icc,v 1.5 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MagIntegratorStepper.icc,v 1.6 2002/05/07 16:11:59 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // inline @@ -43,6 +43,12 @@ void G4MagIntegratorStepper::SetNumberOfVariables(G4int newNo) fNumberOfVariables = newNo; } +inline +void G4MagIntegratorStepper::RightHandSide( const double y[], double dydx[] ) +{ + fEquation_Rhs-> RightHandSide(y, dydx); +} + inline void G4MagIntegratorStepper::NormaliseTangentVector( G4double vec[6] ) { diff --git a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh index 9965e6c711..6fcc15e4ed 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Mag_EqRhs diff --git a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh index 33c731c1ca..dae56fd897 100644 --- a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh @@ -21,17 +21,18 @@ // ******************************************************************** // // -// $Id: G4Mag_SpinEqRhs.hh,v 1.7 2001/07/17 02:13:43 gum Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Mag_SpinEqRhs.hh,v 1.8 2002/06/07 18:25:09 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Mag_SpinEqRhs // // Class description: // -// This is the standard right-hand side for equation of motion. -// This version of the right-hand side includes the three components -// of the particle's spin. +// This is the equation of motion for a particle with spin in a pure +// magnetic field. +// The three components of the particle's spin are treated +// utilising BMT equation. // History: // - Created: J.Apostolakis, P.Gumplinger - February 8th, 1999. diff --git a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh index 0edc422c56..354092f42d 100644 --- a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mag_UsualEqRhs.hh,v 1.4 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Mag_UsualEqRhs diff --git a/source/geometry/magneticfield/include/G4MagneticField.hh b/source/geometry/magneticfield/include/G4MagneticField.hh index 325a6be084..e886d09b24 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4MagneticField diff --git a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh index 55724662c8..7d9a56288e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4RKG3_Stepper diff --git a/source/geometry/magneticfield/include/G4SimpleHeum.hh b/source/geometry/magneticfield/include/G4SimpleHeum.hh index f1508238ac..9aea34220a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4SimpleHeum diff --git a/source/geometry/magneticfield/include/G4SimpleRunge.hh b/source/geometry/magneticfield/include/G4SimpleRunge.hh index 55bac766aa..531060bfbe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4SimpleRunge diff --git a/source/geometry/magneticfield/include/G4UniformElectricField.hh b/source/geometry/magneticfield/include/G4UniformElectricField.hh index 102843a011..61f3f0745a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4UniformElectricField diff --git a/source/geometry/magneticfield/include/G4UniformMagField.hh b/source/geometry/magneticfield/include/G4UniformMagField.hh index d47b84fdba..98baf6cc37 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4UniformMagField diff --git a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc index 924e4115ba..d09d646d49 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 4af570a1c5..4a2914f15d 100644 --- a/source/geometry/magneticfield/src/G4ChordFinder.cc +++ b/source/geometry/magneticfield/src/G4ChordFinder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ChordFinder.cc,v 1.24 2001/11/30 17:36:18 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ChordFinder.cc,v 1.27 2002/06/01 02:37:14 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 25.02.97 John Apostolakis, design and implimentation @@ -184,7 +184,10 @@ G4ChordFinder::FindNextChord( const G4FieldTrack yStart, stepForChord = NewStep(stepTrial, dChordStep, fLastStepEstimate_Unconstrained ); if( ! validEndPoint ) { - stepTrial = stepForChord; + if( stepForChord <= oldStepTrial ) + stepTrial = stepForChord; + else + stepTrial *= 0.1; #if 0 // Possible complementary approach: // Get the driver to calculate the new step size, if it is needed @@ -250,14 +253,27 @@ G4double G4ChordFinder::NewStep(G4double stepTrialOld, static G4double lastStepTrial = 1., lastDchordStep= 1.; #if 1 - const G4double threshold = 1.21, multiplier = 0.9; // 0.9 < 1 / sqrt(1.21) - + // 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 < threshold * fDeltaChord ){ - stepTrial= stepTrialOld * multiplier; + // if ( dChordStep < threshold * fDeltaChord ){ + // stepTrial= stepTrialOld * multiplier; + // } + if( (stepTrial < 0.001 * stepTrialOld) + || (stepTrial > 1000.0 * stepTrialOld) + ){ + if ( dChordStep > 1000.0 * fDeltaChord ){ + stepTrial= stepTrialOld * 0.03; + }else{ + if ( dChordStep > 100. * fDeltaChord ){ + stepTrial= stepTrialOld * 0.1; + }else{ + // Try halving the length until dChordStep OK + stepTrial= stepTrialOld * 0.5; + } + } } lastStepTrial = stepTrialOld; diff --git a/source/geometry/magneticfield/src/G4ClassicalRK4.cc b/source/geometry/magneticfield/src/G4ClassicalRK4.cc index 1595ec3bab..6fd06401aa 100644 --- a/source/geometry/magneticfield/src/G4ClassicalRK4.cc +++ b/source/geometry/magneticfield/src/G4ClassicalRK4.cc @@ -22,7 +22,7 @@ // // // $Id: G4ClassicalRK4.cc,v 1.4 2001/07/11 09:59:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4ClassicalRK4.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4EquationOfMotion.cc b/source/geometry/magneticfield/src/G4EquationOfMotion.cc index 92bd7580f8..15cbbf2112 100644 --- a/source/geometry/magneticfield/src/G4EquationOfMotion.cc +++ b/source/geometry/magneticfield/src/G4EquationOfMotion.cc @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.cc,v 1.5 2001/11/09 20:39:07 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4EquationOfMotion.hh" diff --git a/source/geometry/magneticfield/src/G4ExplicitEuler.cc b/source/geometry/magneticfield/src/G4ExplicitEuler.cc index fba5352c2e..d91267deff 100644 --- a/source/geometry/magneticfield/src/G4ExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ExplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExplicitEuler.cc,v 1.4 2001/07/11 09:59:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Explicit Euler: x_1 = x_0 + h * dx_0 diff --git a/source/geometry/magneticfield/src/G4FieldManager.cc b/source/geometry/magneticfield/src/G4FieldManager.cc index 327ad5c8b7..383b565f31 100644 --- a/source/geometry/magneticfield/src/G4FieldManager.cc +++ b/source/geometry/magneticfield/src/G4FieldManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.cc,v 1.6 2001/11/28 18:44:43 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4FieldManager.hh" diff --git a/source/geometry/magneticfield/src/G4FieldTrack.cc b/source/geometry/magneticfield/src/G4FieldTrack.cc index 2744e018f1..f4ce2fc1af 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4FieldTrack.hh" diff --git a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc index 001d5ac6c9..0de1c5af37 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4HelixExplicitEuler.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4HelixHeum.cc b/source/geometry/magneticfield/src/G4HelixHeum.cc index 840af0fe1f..39858c9277 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4HelixHeum.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc index 5c28e4943c..608d56feba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4HelixImplicitEuler.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc index 5f58e8f3cb..59117185f5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4HelixSimpleRunge.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4ImplicitEuler.cc b/source/geometry/magneticfield/src/G4ImplicitEuler.cc index b0757115f4..d0b19864a9 100644 --- a/source/geometry/magneticfield/src/G4ImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ImplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ImplicitEuler.cc,v 1.4 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Implicit Euler: diff --git a/source/geometry/magneticfield/src/G4LineSection.cc b/source/geometry/magneticfield/src/G4LineSection.cc index cf55198803..1a7a02cbd7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // typedef double G4double; diff --git a/source/geometry/magneticfield/src/G4MagErrorStepper.cc b/source/geometry/magneticfield/src/G4MagErrorStepper.cc index 839d74327a..a84a807adf 100644 --- a/source/geometry/magneticfield/src/G4MagErrorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagErrorStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.cc,v 1.9 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4MagErrorStepper.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc index cdbf9a01a9..e2997ac05e 100644 --- a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc +++ b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagHelicalStepper.cc,v 1.8 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MagHelicalStepper.cc,v 1.11 2002/01/17 08:12:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4MagHelicalStepper.hh" #include "G4ThreeVector.hh" @@ -67,13 +67,13 @@ G4MagHelicalStepper::AdvanceHelix( const G4double yIn[], G4double Bmag = Bfld.mag(); const G4double *pIn = yIn+3; - G4ThreeVector initMomentum= G4ThreeVector( pIn[0], pIn[1], pIn[2]); - G4double momentumVal = initMomentum.mag(); - G4ThreeVector initTangent = (1.0/momentumVal) * initMomentum; // .unit(); + G4ThreeVector initVelocity= G4ThreeVector( pIn[0], pIn[1], pIn[2]); + G4double velocityVal = initVelocity.mag(); + G4ThreeVector initTangent = (1.0/velocityVal) * initVelocity; // .unit(); // fCof = fUnitConstant*particleCharge/MomentumXc; G4double particleCharge = fPtrMagEqOfMot->FCof() / (eplus*c_light); - G4double fCoefficient = (fUnitConstant / momentumVal) * particleCharge; + G4double fCoefficient = (fUnitConstant / velocityVal) * particleCharge; // for too small magnetic fields there is no curvature // (include momentum here) FIXME @@ -140,9 +140,9 @@ G4MagHelicalStepper::AdvanceHelix( const G4double yIn[], yHelix[1] = yIn[1] + positionMove.y(); yHelix[2] = yIn[2] + positionMove.z(); - yHelix[3] = momentumVal * endTangent.x(); - yHelix[4] = momentumVal * endTangent.y(); - yHelix[5] = momentumVal * endTangent.z(); + yHelix[3] = velocityVal * endTangent.x(); + yHelix[4] = velocityVal * endTangent.y(); + yHelix[5] = velocityVal * endTangent.z(); // Store and/or calculate parameters for chord distance. } diff --git a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc index 6ad1a29620..9fb1a80276 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorDriver.cc,v 1.20 2001/11/21 16:43:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MagIntegratorDriver.cc,v 1.25 2002/05/07 17:18:49 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // @@ -30,16 +30,17 @@ // Tracking in space dependent magnetic field // // History of major changes: -// 7 Oct 96 V. Grichine First version -// 28 Jan 98 W. Wander: Added ability for low order integrators -// 30 Jan 98 J. Apostolakis: Made method parameters into instance variables +// 8 Nov 01 J. Apostolakis: Respect minimum step in AccurateAdvance // 27 Jul 99 J. Apostolakis: Ensured that AccurateAdvance does not loop // due to very small eps & step size (precision) +// 28 Jan 98 W. Wander: Added ability for low order integrators +// 7 Oct 96 V. Grichine First version #include #include "G4ios.hh" #include "G4MagIntegratorDriver.hh" #include "G4FieldTrack.hh" #include "geomdefs.hh" // for kCarTolerance +#include "g4std/iomanip" // Stepsize can increase by no more than 5.0 // and decrease by no more than 1/10. = 0.1 @@ -49,7 +50,7 @@ const G4double G4MagInt_Driver::max_stepping_decrease = 0.1; // The (default) maximum number of steps is Base divided by the order of Stepper // -const G4int G4MagInt_Driver::fMaxStepBase = 500; // Was 5000 +const G4int G4MagInt_Driver::fMaxStepBase = 250; // Was 5000 // Constructor // @@ -62,6 +63,9 @@ G4MagInt_Driver::G4MagInt_Driver( G4double hminimum, RenewStepperAndAdjust( pItsStepper ); hminimum_val= hminimum; fMaxNoSteps = fMaxStepBase / pIntStepper->IntegratorOrder(); +#ifdef G4DEBUG_FIELD + fVerboseLevel=2; +#endif } // Destructor @@ -92,9 +96,9 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, G4int no_warnings=0; #ifdef G4DEBUG_FIELD - static G4int dbg=0; - dbg=1; - fVerboseLevel=2; + static G4int dbg=1; + G4double ySubStepStart[G4FieldTrack::ncompSVEC]; + G4FieldTrack yFldTrkStart(y_current); #endif // G4double yscal[ncompSVEC]; @@ -129,19 +133,24 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, do{ G4ThreeVector StartPos( y[0], y[1], y[2] ); +# ifdef G4DEBUG_FIELD + for(i=0;iRightHandSide( y, dydx ); if( x+h > x2 ) { - h = x2 - x ; // When stepsize overshoots, decrease it! - } - if( h < eps * hstep) { - lastStep = true; // Ensure that this must be the last step - // because otherwise numerical (im)precision - // could otherwise force lots of small last steps. + h = x2 - x ; // When stepsize overshoots, decrease it! + if( h < eps * hstep) { + lastStep = true; // Ensure that this must be the last step + // - since otherwise numerical (im)precision + // could force lots of small last steps + } } -// static G4int nStpPr=50; // For debug printing of integrations with many steps + static G4int nStpPr=50; // For debug printing of integrations with many steps // Perform the Integration // @@ -150,41 +159,44 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, OneGoodStep(y,dydx,x,h,eps,hdid,hnext) ; //-------------------------------------- lastStepSucceeded= (hdid == h); +# ifdef G4DEBUG_FIELD + if(dbg>2) PrintStatus( ySubStepStart, x1, y, x, h, nstp); // Only +# endif }else{ -#if 0 - OneGoodStep(y,dydx,x,h,2*eps,hdid,hnext) ; - //-------------------------------------- - lastStepSucceeded= (hdid == h); -#else G4FieldTrack yFldTrk( G4ThreeVector(0,0,0), G4ThreeVector(0,0,0), 0., 0., 0., 0. ); G4double dchord_step, dyerr, dyerr_len; // Must figure what to do with these yFldTrk.LoadFromArray(y); yFldTrk.SetCurveLength( x ); -// G4double s_start = yFldTrk.GetCurveLength(); + QuickAdvance( yFldTrk, dydx, h, dchord_step, dyerr_len ); + //----------------------------------------------------- + # 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); + // 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); - if(dbg>1) PrintStatus( ystart, x1, y, x, h, nstp); // Only this +# ifdef G4DEBUG_FIELD + if(dbg>1) PrintStatus( ySubStepStart, x1, y, x, h, nstp); // Only this # endif - dyerr = dyerr_len / hstep; + dyerr = dyerr_len / h; // was dyerr_len / hstep; hdid= h; x += hdid; // Compute suggested new step hnext= ComputeNewStepSize( dyerr/eps, h); + // .. hnext= ComputeNewStepSize_WithinLimits( dyerr/eps, h); lastStepSucceeded= (dyerr<= eps); -#endif } -// #ifdef G4DEBUG_FIELD + if(lastStepSucceeded) noFullIntegr++ ; else noSmallIntegr++ ; G4ThreeVector EndPos( y[0], y[1], y[2] ); #ifdef G4DEBUG_FIELD if(nstp>nStpPr) { - G4cout << "hdid=" << hdid << "hnext =" << hnext << " " << endl; - PrintStatus( ystart, x1, y, x, h, nstp==nStpPr ? -nstp: nstp); + G4cout << "hdid=" << G4std::setw(12) << hdid << " " + << "hnext=" << G4std::setw(12) << hnext << " " << endl; + PrintStatus( ystart, x1, y, x, h, (nstp==nStpPr) ? -nstp: nstp); } #endif @@ -199,7 +211,7 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, WarnEndPointTooFar ( endPointDist, hdid, eps, dbg ); G4cerr << " Total steps: bad" << noBadSteps << " good " << noGoodSteps << endl; // G4cerr << "Mid:EndPtFar> "; - PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); + if(dbg>1) PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); // Potentially add as arguments: - as Initial Force #endif no_warnings++; @@ -221,7 +233,7 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, // Issue WARNING WarnSmallStepSize( hnext, hstep, h, x-x1, nstp ); // G4cerr << "Mid:SmallStep> "; - PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); + if(dbg>1) PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); no_warnings++; } #endif @@ -255,7 +267,7 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, succeeded = false; #ifdef G4DEBUG_FIELD WarnTooManyStep( x1, x2, x ); // Issue WARNING - PrintStatus( yEnd, x1, y, x, hstep, -nstp); + if( dbg>1) PrintStatus( yEnd, x1, y, x, hstep, -nstp); #endif } @@ -596,7 +608,7 @@ void G4MagInt_Driver::PrintStatus( const G4double* StartArr, PrintStatus(StartFT, CurrentFT, requestStep, subStepNo ); } -#include "g4std/iomanip" + void G4MagInt_Driver::PrintStatus( const G4FieldTrack& StartFT, @@ -615,9 +627,12 @@ void G4MagInt_Driver::PrintStatus( const G4ThreeVector CurrentPosition= CurrentFT.GetPosition(); const G4ThreeVector CurrentUnitVelocity= CurrentFT.GetMomentumDir(); + G4double DotStartCurrentVeloc= StartUnitVelocity.dot(CurrentUnitVelocity); + G4double step_len= CurrentFT.GetCurveLength() - StartFT.GetCurveLength(); - + G4double subStepSize = step_len; + if( (subStepNo <= 0) && (verboseLevel <= 3) ) { subStepNo = - subStepNo; // To allow printing banner @@ -630,22 +645,28 @@ void G4MagInt_Driver::PrintStatus( << 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( 8) << " N_x " << " " + << G4std::setw( 8) << " N_y " << " " + << G4std::setw( 8) << " N_z " << " " + << G4std::setw( 7) << " N^2-1 " << " " + << G4std::setw(10) << " N(0).N " << " " << G4std::setw( 7) << "KinEner " << " " - << G4std::setw( 9) << "StepLen" << " " // Add the Sub-step ?? + << G4std::setw(12) << "Track-l" << " " // Add the Sub-step ?? + << G4std::setw(12) << "Step-len" << " " + << G4std::setw(12) << "Step-len" << " " << G4std::setw( 9) << "ReqStep" << " " << G4endl; - PrintStat_Aux( StartFT, requestStep, 0., 0); + PrintStat_Aux( StartFT, requestStep, 0., + 0, 0.0, 1.0); //************* } if( verboseLevel <= 3 ) { G4cout.precision(noPrecision); - PrintStat_Aux( CurrentFT, requestStep, step_len, subStepNo); + PrintStat_Aux( CurrentFT, requestStep, step_len, + subStepNo, subStepSize, DotStartCurrentVeloc ); //************* } @@ -669,7 +690,9 @@ void G4MagInt_Driver::PrintStat_Aux( const G4FieldTrack& aFieldTrack, G4double requestStep, G4double step_len, - G4int subStepNo) + G4int subStepNo, + G4double subStepSize, + G4double dotVeloc_StartCurr) { const G4ThreeVector Position= aFieldTrack.GetPosition(); const G4ThreeVector UnitVelocity= aFieldTrack.GetMomentumDir(); @@ -678,15 +701,37 @@ void G4MagInt_Driver::PrintStat_Aux( G4cout << G4std::setw( 5) << subStepNo << " "; else G4cout << G4std::setw( 5) << "Start" << " "; - G4cout << G4std::setw( 7) << aFieldTrack.GetCurveLength(); + G4double curveLen= aFieldTrack.GetCurveLength(); + G4cout << G4std::setw( 7) << curveLen; G4cout << G4std::setw( 9) << Position.x() << " " << G4std::setw( 9) << Position.y() << " " << G4std::setw( 9) << Position.z() << " " - << G4std::setw( 7) << UnitVelocity.x() << " " - << G4std::setw( 7) << UnitVelocity.y() << " " - << G4std::setw( 7) << UnitVelocity.z() << " "; + << G4std::setw( 8) << UnitVelocity.x() << " " + << G4std::setw( 8) << UnitVelocity.y() << " " + << G4std::setw( 8) << UnitVelocity.z() << " "; + G4int oldprec= G4cout.precision(3); + G4cout << G4std::setw( 7) << UnitVelocity.mag2()-1.0 << " "; + G4cout.precision(6); + G4cout << G4std::setw(10) << dotVeloc_StartCurr << " "; + G4cout.precision(oldprec); G4cout << G4std::setw( 7) << aFieldTrack.GetKineticEnergy(); - G4cout << G4std::setw( 9) << step_len << " "; + G4cout << G4std::setw(12) << step_len << " "; + + static G4double oldCurveLength= 0.0; + static G4double oldSubStepLength= 0.0; + static int oldSubStepNo= -1; + + G4double subStep_len=0.0; + if( curveLen > oldCurveLength ) + subStep_len= curveLen - oldCurveLength; + else if (subStepNo == oldSubStepNo) + subStep_len= oldSubStepLength; + // else subStepLen_NotAvail; + oldCurveLength= curveLen; + oldSubStepLength= subStep_len; + + G4cout << G4std::setw(12) << subStep_len << " "; + G4cout << G4std::setw(12) << subStepSize << " "; if( requestStep != -1.0 ) G4cout << G4std::setw( 9) << requestStep << " "; else diff --git a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc index e0d3474786..38dbcaac50 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.cc,v 1.6 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MagIntegratorStepper.cc,v 1.7 2002/05/07 16:11:59 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4MagIntegratorStepper.hh" @@ -40,7 +40,3 @@ G4MagIntegratorStepper::~G4MagIntegratorStepper() { } -void G4MagIntegratorStepper::RightHandSide( const double y[], double dydx[] ) -{ - fEquation_Rhs-> RightHandSide(y, dydx); -} diff --git a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc index a3ffc1eb4f..5212eab8bd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // This is the standard right-hand side for equation of motion // in a pure Magnetic Field . diff --git a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc index 87b1ffa0c5..74315bfc93 100644 --- a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc @@ -57,20 +57,19 @@ G4Mag_SpinEqRhs::EvaluateRhsGivenB( const G4double y[], const G4double B[3], G4double dydx[] ) const { - G4double velocity_mag_square = sqr(y[3]) + sqr(y[4]) + sqr(y[5]); - G4double inv_velocity_magnitude = 1.0 / sqrt( velocity_mag_square ); + G4double momentum_mag_square = sqr(y[3]) + sqr(y[4]) + sqr(y[5]); + G4double inv_momentum_magnitude = 1.0 / sqrt( momentum_mag_square ); + G4double cof = FCof()*inv_momentum_magnitude; - dydx[0] = y[3] * inv_velocity_magnitude; // (d/ds)x = Vx/V - dydx[1] = y[4] * inv_velocity_magnitude; // (d/ds)y = Vy/V - dydx[2] = y[5] * inv_velocity_magnitude; // (d/ds)z = Vz/V - dydx[3] = FCof()*(y[4]*B[2] - y[5]*B[1]) ; // Ax = a*(Vy*Bz - Vz*By) - dydx[4] = FCof()*(y[5]*B[0] - y[3]*B[2]) ; // Ay = a*(Vz*Bx - Vx*Bz) - dydx[5] = FCof()*(y[3]*B[1] - y[4]*B[0]) ; // Az = a*(Vx*By - Vy*Bx) + dydx[0] = y[3] * inv_momentum_magnitude; // (d/ds)x = Vx/V + dydx[1] = y[4] * inv_momentum_magnitude; // (d/ds)y = Vy/V + dydx[2] = y[5] * inv_momentum_magnitude; // (d/ds)z = Vz/V + dydx[3] = cof*(y[4]*B[2] - y[5]*B[1]) ; // Ax = a*(Vy*Bz - Vz*By) + dydx[4] = cof*(y[5]*B[0] - y[3]*B[2]) ; // Ay = a*(Vz*Bx - Vx*Bz) + dydx[5] = cof*(y[3]*B[1] - y[4]*B[0]) ; // Az = a*(Vx*By - Vy*Bx) - G4ThreeVector u; - u.setX(inv_velocity_magnitude*y[3]); - u.setY(inv_velocity_magnitude*y[4]); - u.setZ(inv_velocity_magnitude*y[5]); + G4ThreeVector u(y[3], y[4], y[5]); + u *= inv_momentum_magnitude; G4ThreeVector BField(B[0],B[1],B[2]); diff --git a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc index 10d43662ae..b26caab8a3 100644 --- a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mag_UsualEqRhs.cc,v 1.4 2001/07/11 09:59:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // This is the standard right-hand side for equation of motion. diff --git a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc index 8e0d9b8eaa..8f71003080 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4RKG3_Stepper.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4SimpleHeum.cc b/source/geometry/magneticfield/src/G4SimpleHeum.cc index 6e6938bf1e..e3a658da9b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Simple Heum: // x_1 = x_0 + h * diff --git a/source/geometry/magneticfield/src/G4SimpleRunge.cc b/source/geometry/magneticfield/src/G4SimpleRunge.cc index 5c70f541fd..ab3e51519e 100644 --- a/source/geometry/magneticfield/src/G4SimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4SimpleRunge.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleRunge.cc,v 1.4 2001/07/11 09:59:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Simple Runge: // diff --git a/source/geometry/magneticfield/src/G4UniformElectricField.cc b/source/geometry/magneticfield/src/G4UniformElectricField.cc index 66904655cb..eb16e87e2a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/geometry/magneticfield/src/G4UniformMagField.cc b/source/geometry/magneticfield/src/G4UniformMagField.cc index 82630a4913..c66900e0a5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/geometry/management/GNUmakefile b/source/geometry/management/GNUmakefile index e025c08065..416a6455fd 100644 --- a/source/geometry/management/GNUmakefile +++ b/source/geometry/management/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 1999/07/13 14:19:42 graignac Exp $ +# $Id: GNUmakefile,v 1.3 2002/01/10 15:56:30 gcosmo Exp $ # ----------------------------------------------------------------------- # GNUmakefile for geometry/management library. Gabriele Cosmo, 16/11/96. # ----------------------------------------------------------------------- @@ -19,4 +19,8 @@ CPPFLAGS += -I$(G4BASE)/graphics_reps/include \ # -I$(G4BASE)/geometry/volumes/include +ifdef G4GEOMETRY_VOXELDEBUG + CPPFLAGS += -DG4GEOMETRY_VOXELDEBUG +endif + include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/management/History b/source/geometry/management/History index 27e4cd0fec..76665bc065 100644 --- a/source/geometry/management/History +++ b/source/geometry/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.28 2001/11/23 16:25:15 gcosmo Exp $ +$Id: History,v 1.37 2002/06/24 07:15:27 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,79 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +June 24, 2002 G. Cosmo geommng-V04-00-08 +- G4AssemblyVolume[.hh.cc]: + o Moved accessors to assembly counters to public. + o Added support for user definable count base for generated physical volumes. + Fixes problem report #382. + +June 7, 2002 G. Cosmo geommng-V04-00-07 +- G4AssemblyVolume[.hh.cc]: + o Fixed inconsistent handling of input rotation matrices by caching them + with corresponding deallocation at destruction time. + Comments updated accordingly with a warning about foreseen changes + in methods' interfaces expected by next major release 5.0. + o Correctly handle cases when pointer to rotation matrix is zero. + o Updated unit test. + +May 17, 2002 G. Cosmo geommng-V04-00-06 +- Added ability to optionally optimise/non-optimise detector regions + using logical volumes: + o G4LogicalVolume: + - Introduced additional bool argument to constructor, + set to 'true' by default. + - Added method IsToOptimise() with corresponding bool flag attribute. + o G4GeometryManager: + - Adapted BuildOptimisations() method to consider optional optimisation + flag from G4LogicalVolume. + +May 15, 2002 G. Cosmo geommng-V04-00-05 +- G4SmartVoxelHeader: + o Added utility method GetParamAxis() to retrieve suggested axis for + optimisation of parametrised geometry. + o Enhanced BuildReplicaVoxels() to apply 3D voxelisation for non-consuming + nodes if undefined axis is specified for parametrised volumes. In such + case, optimisation for parameterised volumes is applied similarly to + normal placements. +- G4PVReplica.cc: deal with 'kUndefined' EAxis. +- Co-works with "global-V04-00-06". + +May 13, 2002 G. Cosmo geommng-V04-00-04 +- G4VSolid: use polygon clipping for limited voxel when != pAxis (V.Grichine). +- G4GeometryManager: added method IsGeometryClosed() for detecting geometry + closed or open. +- G4LogicalVolumeStore, G4PhysicalVolumeStore, G4SolidStore: added protection + to Clean() method for checking if geometry is closed. +- G4SmartVoxelHeader.cc: cosmetics and formatting cleanup. + +April 19, 2002 G. Cosmo geommng-V04-00-03 +- Moved inline constructors/destructors to no inline. + Affected files: G4DrawVoxels[.hh.cc], G4SmartVoxelNode[.hh.cc], + G4SmartVoxelProxy[.hh.cc], G4VoxelLimits[.hh.cc]. +- Enhanced behavior for destructors of volumes/solids stores. + o Added locking mechanism for preventing conflicts when destroying stores + and deregistering pointers. Now destructors of stores will also + explicitely delete pointers (and therefore allocated volumes/solids) + dynamically allocated in the user application. + o Added Clean() static method to volumes/solids stores to explicitely + delete pointed objects in the stores and clear all entries. + o Modified files: G4LogicalVolumeStore[.hh.cc], G4SolidStore[.hh.cc], + G4PhysicalVolumeStore[.hh.cc]. + +April 16, 2002 V. Grichine geommng-V04-00-02 +- G4VSolid[.hh.cc]: fixed bug in G4VSolid::ClipPoligon() to consider + clipping related to a single axis. +- G4VoxelLimits.cc: cosmetics changes and debug printouts ... + +February 26, 2002 G. Cosmo geommng-V04-00-01 +- G4GeometryManager.cc: fixed handling of ios manipulators and precision to reset + to their original state in G4GeometryManager::ReportVoxelStats(). + Fixes problem report #343. + +January 08, 2002 G. Cosmo geommng-V04-00-00 +- G4AffineTransform.icc: fixed trivial compilation warning for gcc-2.95.2. +- Included latest cosmetics changes to TestAssemblyVolume/TstVADetectorConstruction.cc. + November 23, 2001 G. Cosmo geommng-V03-02-03 - Initialise noNodes to 1 in G4SmartVoxelHeader::BuildNodes() in case computed nodes for smartless happen to be zero (J.Apostolakis). diff --git a/source/geometry/management/include/G4AffineTransform.hh b/source/geometry/management/include/G4AffineTransform.hh index 3c3ef1c7c7..d7cd3b59b2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4AffineTransform diff --git a/source/geometry/management/include/G4AffineTransform.icc b/source/geometry/management/include/G4AffineTransform.icc index ebce6f6b69..78f010220f 100644 --- a/source/geometry/management/include/G4AffineTransform.icc +++ b/source/geometry/management/include/G4AffineTransform.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AffineTransform.icc,v 1.4 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4AffineTransform.icc,v 1.6 2002/01/08 12:38:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4AffineTransformation Inline implementation @@ -294,7 +294,7 @@ G4bool G4AffineTransform::operator != (const G4AffineTransform& tf) const inline G4double G4AffineTransform::operator [] (const G4int n) const { - G4double v; + G4double v = 0.0; switch(n) { case 0: @@ -336,10 +336,9 @@ G4double G4AffineTransform::operator [] (const G4int n) const case 3: case 7: case 11: - v=0; break; case 15: - v=1; + v=1.0; break; } return v; diff --git a/source/geometry/management/include/G4AssemblyTriplet.hh b/source/geometry/management/include/G4AssemblyTriplet.hh index 3947507d4a..87cd12278a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4AssemblyTriplet diff --git a/source/geometry/management/include/G4AssemblyTriplet.icc b/source/geometry/management/include/G4AssemblyTriplet.icc index e2bb14e556..05537c3761 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4AssemblyTriplet - inline implementation diff --git a/source/geometry/management/include/G4AssemblyVolume.hh b/source/geometry/management/include/G4AssemblyVolume.hh index 60aa3a0db2..eb21a2ae18 100644 --- a/source/geometry/management/include/G4AssemblyVolume.hh +++ b/source/geometry/management/include/G4AssemblyVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyVolume.hh,v 1.5 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4AssemblyVolume.hh,v 1.7 2002/06/22 00:39:23 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4AssemblyVolume @@ -66,6 +66,16 @@ class G4AssemblyVolume // Constructors & destructor. // At destruction all the generated physical volumes and associated // rotation matrices of the imprints will be destroyed. + // + // The rotation matrix passed in can be 0 = identity or an address even of an object + // on the upper stack frame. During assembly imprint, it creates anyway a new matrix + // and keeps track of it so it can delete it later at destruction time. + // This new policy has been adopted since user has no control on the way the rotations + // are combined it's safer doing it this way. + // + // WARNING! This interface will likely change in the next major release of Geant4 from + // a pointer to a reference due to the reason above + // void AddPlacedVolume( G4LogicalVolume* pPlacedVolume, G4ThreeVector& translation, @@ -91,6 +101,16 @@ class G4AssemblyVolume // the coordinate system of the first one. // Every next volume being added into the assembly will be placed // w.r.t to the previous one. + // + // The rotation matrix passed in can be 0 = identity or an address even of an object + // on the upper stack frame. During assembly imprint, it creates anyway a new matrix + // and keeps track of it so it can delete it later at destruction time. + // This new policy has been adopted since user has no control on the way the rotations + // are combined it's safer doing it this way. + // + // WARNING! This interface will likely change in the next major release of Geant4 from + // a pointer to a reference due to the reason above + // void AddPlacedVolume( G4LogicalVolume* pPlacedVolume, G4Transform3D& transformation); @@ -100,17 +120,19 @@ class G4AssemblyVolume void MakeImprint( G4LogicalVolume* pMotherLV, G4ThreeVector& translationInMother, - G4RotationMatrix* pRotationInMother); + G4RotationMatrix* pRotationInMother, + G4int copyNumBase = 0 ); // // Creates instance of an assembly volume inside the given mother volume. void MakeImprint( G4LogicalVolume* pMotherLV, - G4Transform3D& transformation); + G4Transform3D& transformation, + G4int copyNumBase = 0 ); // // The same as previous but takes complete 3D transformation in space // as its argument. -private: + private: G4std::vector fTriplets; // @@ -129,9 +151,12 @@ private: // generated physical volumes and rotation matrices as well ! // This may affect validity of detector contruction ! - protected: + public: unsigned int GetImprintsCount() const; + + protected: + void SetImprintsCount( unsigned int value ); void ImprintsCountPlus(); void ImprintsCountMinus(); @@ -145,9 +170,12 @@ private: // // Number of imprints of the given assembly volume. - protected: - + public: + unsigned int GetInstanceCount() const; + + protected: + void SetInstanceCount( unsigned int value ); void InstanceCountPlus(); void InstanceCountMinus(); diff --git a/source/geometry/management/include/G4AssemblyVolume.icc b/source/geometry/management/include/G4AssemblyVolume.icc index 214f5b50e9..c89b0ad508 100644 --- a/source/geometry/management/include/G4AssemblyVolume.icc +++ b/source/geometry/management/include/G4AssemblyVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyVolume.icc,v 1.3 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4AssemblyVolume - inline implementation diff --git a/source/geometry/management/include/G4DrawVoxels.hh b/source/geometry/management/include/G4DrawVoxels.hh index 50c43b443c..d4a2f43bd4 100644 --- a/source/geometry/management/include/G4DrawVoxels.hh +++ b/source/geometry/management/include/G4DrawVoxels.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DrawVoxels.hh,v 1.10 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4DrawVoxels.hh,v 1.11 2002/04/19 08:20:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4DrawVoxels @@ -68,7 +68,7 @@ class G4DrawVoxels // Copy constructor and assignment operator not supported (array // fvoxelcolours ...). - ~G4DrawVoxels(){}; + ~G4DrawVoxels(); // Destructor NOT virtual. Not a base class. void DrawVoxels(const G4LogicalVolume* lv) const; diff --git a/source/geometry/management/include/G4GeometryManager.hh b/source/geometry/management/include/G4GeometryManager.hh index cbe8aad5c9..203043ed72 100644 --- a/source/geometry/management/include/G4GeometryManager.hh +++ b/source/geometry/management/include/G4GeometryManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryManager.hh,v 1.5 2001/10/22 16:08:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GeometryManager.hh,v 1.6 2002/04/26 16:23:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4GeometryManager // @@ -69,6 +69,9 @@ class G4GeometryManager // Open (`unlock') the geometry and remove optimisation information if // present. + G4bool IsGeometryClosed(); + // Return true/false according to state of optimised geoemtry. + static G4GeometryManager* GetInstance(); // Return ptr to singleton instance of the class. diff --git a/source/geometry/management/include/G4LogicalSurface.hh b/source/geometry/management/include/G4LogicalSurface.hh index 60036bd389..c97f4969be 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // Class G4LogicalSurface diff --git a/source/geometry/management/include/G4LogicalSurface.icc b/source/geometry/management/include/G4LogicalSurface.icc index a002a11a50..5e07361bd7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // Surface Class Inline Methods diff --git a/source/geometry/management/include/G4LogicalVolume.hh b/source/geometry/management/include/G4LogicalVolume.hh index 3960b76ddb..691fdfb481 100644 --- a/source/geometry/management/include/G4LogicalVolume.hh +++ b/source/geometry/management/include/G4LogicalVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.hh,v 1.8 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LogicalVolume.hh,v 1.9 2002/05/17 17:59:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4LogicalVolume @@ -45,7 +45,7 @@ // Daughters are ascribed and managed by means of a simple // GetNoDaughters,Get&SetDaughter(n),AddDaughter interface. // -// Smart voxels as used for tracking optimisation are also an attribute. +// Smart voxels as used for tracking optimisation. They're also an attribute. // // Logical volumes self register to the logical volume Store on construction, // and deregister on destruction. @@ -57,52 +57,56 @@ // // G4std::vector fDaughters // - Vector of daughters. Given initial size of 0. -// G4FieldManager *fFieldManager -// - Pointer (possibly NULL) to (magnetic or other) field manager object. -// G4Material *fMaterial +// G4FieldManager* fFieldManager +// - Pointer (possibly 0) to (magnetic or other) field manager object. +// G4Material* fMaterial // - Pointer to material at this node. // G4String fName // - Name of logical volume. // G4VSensitiveDetector *fSensitiveDetector -// - Pointer (possibly NULL) to `Hit' object. -// G4VSolid *fSolid +// - Pointer (possibly 0) to `Hit' object. +// G4VSolid* fSolid // - Pointer to solid. -// G4UserLimits *fUserLimits -// - Pointer (possibly NULL) to user Step limit object for this node. -// G4SmartVoxelHeader *fVoxel -// - Pointer (possibly NULL) to optimisation info objects. +// G4UserLimits* fUserLimits +// - Pointer (possibly 0) to user Step limit object for this node. +// G4SmartVoxelHeader* fVoxel +// - Pointer (possibly 0) to optimisation info objects. +// G4bool fOptimise; +// - Flag to identify if optimisation should be applied or not. // G4double fSmartless // - Quality for optimisation, average number of voxels to be spent // per content. // const G4VisAttributes* fVisAttributes -// - Pointer (possibly NULL) to visualization attributes. -// G4FastSimulationManager *fFastSimulationManager -// - Pointer (possibly NULL) to G4FastSimulationManager object. +// - Pointer (possibly 0) to visualization attributes. +// G4FastSimulationManager* fFastSimulationManager +// - Pointer (possibly 0) to G4FastSimulationManager object. // G4bool fIsEnvelope // - Flags if the Logical Volume is an envelope for a FastSimulationManager. // G4double fBiasWeight // - Weight used in the event biasing technique. // History: +// 17.05.02 G.Cosmo: Added IsToOptimise() method and related flag // 18.04.01 G.Cosmo: Migrated to STL vector // 12.02.99 S.Giani: Added user defined optimisation quality -// 09.11.98 J. Apostolakis: Changed G4MagneticField to G4FieldManager -// 09.11.98 M. Verderi & JA. : added BiasWeight member and Get/Set methods -// 10.20.97 P. MoraDeFreitas : added pointer to a FastSimulation -// (J.Apostolakis) & flag to indicate if it is an Envelope for it -// 19.11.96 J.Allison Replaced G4Visible with explicit const G4VisAttributes*. -// 19.08.96 P.Kent Split -> hh/icc/cc files; G4VSensitiveDetector change -// 11.07.95 P.Kent Initial version. +// 09.11.98 J.Apostolakis: Changed G4MagneticField to G4FieldManager +// 09.11.98 M.Verderi, J.Apostolakis: Added BiasWeight member and accessors +// 10.20.97 P.M.DeFreitas: Added pointer to a FastSimulation +// J.Apostolakis: & flag to indicate if it is an Envelope for it +// 19.11.96 J.Allison: Replaced G4Visible with explicit const G4VisAttributes* +// 19.08.96 P.Kent: Split -> hh/icc/cc files; G4VSensitiveDetector change +// 11.07.95 P.Kent: Initial version. #ifndef G4LOGICALVOLUME_HH #define G4LOGICALVOLUME_HH #include "globals.hh" -#include "G4VPhysicalVolume.hh" // Need operator == for vector fdaughters +#include "G4VPhysicalVolume.hh" // Need operator == for vector fdaughters #include "g4std/vector" #include // Forward declarations +// class G4FieldManager; class G4Material; class G4VSensitiveDetector; @@ -118,14 +122,19 @@ class G4LogicalVolume public: // with description - G4LogicalVolume(G4VSolid *pSolid, G4Material *pMaterial, - const G4String& name, - G4FieldManager *pFieldMgr=0, - G4VSensitiveDetector *pSDetector=0, - G4UserLimits *pULimits=0); - // Constructor. The solid and material pointer must be non null. The - // parameters for field, detector and user limits are optional. + G4LogicalVolume(G4VSolid* pSolid, + G4Material* pMaterial, + const G4String& name, + G4FieldManager* pFieldMgr=0, + G4VSensitiveDetector* pSDetector=0, + G4UserLimits* pULimits=0, + G4bool optimise=true); + // Constructor. The solid and material pointer must be non null. + // The parameters for field, detector and user limits are optional. // The volume also enters itself into the logical volume Store. + // Optimisation of the geometry (voxelisation) for the volume + // hierarchy is applied by default. For parameterised volumes in + // the hierarchy, optimisation is -always- applied. ~G4LogicalVolume(); // Destructor. Removes the logical volume from the logical volume Store. @@ -169,7 +178,7 @@ class G4LogicalVolume inline G4VSensitiveDetector* GetSensitiveDetector() const; // Gets current SensitiveDetector. inline void SetSensitiveDetector(G4VSensitiveDetector *pSDetector); - // Sets SensitiveDetector (can be NULL). + // Sets SensitiveDetector (can be 0). inline G4UserLimits* GetUserLimits() const; inline void SetUserLimits(G4UserLimits *pULimits); @@ -179,13 +188,21 @@ class G4LogicalVolume inline void SetVoxelHeader(G4SmartVoxelHeader *pVoxel); // Gets and sets current VoxelHeader. - inline G4double GetSmartless(); + inline G4double GetSmartless() const; inline void SetSmartless(G4double s); // Gets and sets user defined optimisation quality. + inline G4bool IsToOptimise() const; + // Replies if geometry optimisation (voxelisation) is to be + // applied for this volume hierarchy. + inline void SetOptimisation(G4bool optim); + // Specifies if to apply or not geometry optimisation to this + // volume hierarchy. Note that for parameterised volumes in the + // hierarchy, optimisation is always applied. + G4bool operator == ( const G4LogicalVolume& lv) const; - // Equality defined by address only- return true if objects are at - // same address, else false. + // Equality defined by address only. + // Returns true if objects are at same address, else false. inline const G4VisAttributes* GetVisAttributes () const; inline void SetVisAttributes (const G4VisAttributes* pVA); @@ -209,11 +226,11 @@ class G4LogicalVolume private: void SetFastSimulationManager (G4FastSimulationManager* pPA, - G4bool IsEnvelope); + G4bool IsEnvelope); // Sets the fast simulation manager. Private method called by the - // public SetIsEnvelope method with IsEnvelope = TRUE. It is + // public SetIsEnvelope method with IsEnvelope = true. It is // then called recursivaly to the daughters to propagate the - // FastSimulationManager pointer with IsEnvelope = FALSE. + // FastSimulationManager pointer with IsEnvelope = false. G4LogicalVolume* FindMotherLogicalVolumeForEnvelope(); @@ -227,27 +244,29 @@ class G4LogicalVolume G4PhysicalVolumeList fDaughters; // Vector of daughters. Given initial size of 0. - G4FieldManager *fFieldManager; - // Pointer (possibly NULL) to (magnetic or other) field manager object. - G4Material *fMaterial; + G4FieldManager* fFieldManager; + // Pointer (possibly 0) to (magnetic or other) field manager object. + G4Material* fMaterial; // Pointer to material at this node. G4String fName; // Name of logical volume. - G4VSensitiveDetector *fSensitiveDetector; - // Pointer (possibly NULL) to `Hit' object. - G4VSolid *fSolid; + G4VSensitiveDetector* fSensitiveDetector; + // Pointer (possibly 0) to `Hit' object. + G4VSolid* fSolid; // Pointer to solid. - G4UserLimits *fUserLimits; - // Pointer (possibly NULL) to user Step limit object for this node. - G4SmartVoxelHeader *fVoxel; - // Pointer (possibly NULL) to optimisation info objects. + G4UserLimits* fUserLimits; + // Pointer (possibly 0) to user Step limit object for this node. + G4SmartVoxelHeader* fVoxel; + // Pointer (possibly 0) to optimisation info objects. + G4bool fOptimise; + // Flag to identify if optimisation should be applied or not. G4double fSmartless; // Quality for optimisation, average number of voxels to be spent // per content. const G4VisAttributes* fVisAttributes; - // Pointer (possibly NULL) to visualization attributes. - G4FastSimulationManager *fFastSimulationManager; - // Pointer (possibly NULL) to G4FastSimulationManager object. + // Pointer (possibly 0) to visualization attributes. + G4FastSimulationManager* fFastSimulationManager; + // Pointer (possibly 0) to G4FastSimulationManager object. G4bool fIsEnvelope; // Flags if the Logical Volume is an envelope for a // FastSimulationManager. diff --git a/source/geometry/management/include/G4LogicalVolume.icc b/source/geometry/management/include/G4LogicalVolume.icc index 1982efb427..d100b3ae2e 100644 --- a/source/geometry/management/include/G4LogicalVolume.icc +++ b/source/geometry/management/include/G4LogicalVolume.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.icc,v 1.6 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LogicalVolume.icc,v 1.8 2002/05/17 17:59:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4LogicalVolume Inline Implementation file @@ -32,224 +32,350 @@ // 09.11.98 - J. Apostolakis: Changed MagneticField to FieldManager // 12.02.99 - S.Giani: Added set/get methods for voxelization quality // 18.04.01 - G.Cosmo: Migrated to STL vector +// 17.05.02 - G.Cosmo: Added IsToOptimise() method +// ******************************************************************** +// ******************************************************************** +// GetName +// ******************************************************************** +// inline G4String G4LogicalVolume::GetName() const - { - return fName; - } +{ + return fName; +} +// ******************************************************************** +// SetName +// ******************************************************************** +// inline void G4LogicalVolume::SetName(const G4String& pName) - { - fName=pName; - } +{ + fName = pName; +} +// ******************************************************************** +// GetFieldManager +// ******************************************************************** +// inline G4FieldManager* G4LogicalVolume::GetFieldManager() const - { - return fFieldManager; - } +{ + return fFieldManager; +} +// ******************************************************************** +// GetNoDaughters +// ******************************************************************** +// inline G4int G4LogicalVolume::GetNoDaughters() const - { - return fDaughters.size(); - } +{ + return fDaughters.size(); +} +// ******************************************************************** +// GetDaughter +// ******************************************************************** +// inline G4VPhysicalVolume* G4LogicalVolume::GetDaughter(const G4int i) const - { - return fDaughters[i]; - } +{ + return fDaughters[i]; +} +// ******************************************************************** +// GetFastSimulationManager +// ******************************************************************** +// inline G4FastSimulationManager* G4LogicalVolume::GetFastSimulationManager () const - { - return fFastSimulationManager; - } +{ + return fFastSimulationManager; +} +// ******************************************************************** +// AddDaughter +// ******************************************************************** +// inline void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter) { - fDaughters.push_back(pNewDaughter); + fDaughters.push_back(pNewDaughter); // Propagates the mother's FastSimulationManager pointer. If we are in // the World logical volume, propagates only if pointer != 0. - // (perhaps someone would like to parametrize all the World volume - // for a particle type, why not ?). + // (one could also parameterise all the World volume for a particle type!) - G4VPhysicalVolume *myPhysical= pNewDaughter->GetMother(); - G4VPhysicalVolume *pMotherPhys; - G4LogicalVolume *pDaughterLogical; + G4VPhysicalVolume* myPhysical = pNewDaughter->GetMother(); + G4VPhysicalVolume* pMotherPhys; + G4LogicalVolume* pDaughterLogical; - if( myPhysical !=0 ){ - pMotherPhys= myPhysical->GetMother(); - pDaughterLogical = pNewDaughter->GetLogicalVolume(); + if( myPhysical !=0 ) + { + pMotherPhys = myPhysical->GetMother(); + pDaughterLogical = pNewDaughter->GetLogicalVolume(); - if( (pMotherPhys!=0) || - ( pMotherPhys==0) && (fFastSimulationManager!=0)) - { - if(pDaughterLogical->GetFastSimulationManager() != fFastSimulationManager) - pDaughterLogical->SetFastSimulationManager(fFastSimulationManager, - FALSE); - } - else - { - pDaughterLogical->SetFastSimulationManager(NULL,FALSE); - } - } - + if( (pMotherPhys!=0) || ( pMotherPhys==0) && (fFastSimulationManager!=0) ) + { + if( pDaughterLogical->GetFastSimulationManager()!=fFastSimulationManager ) + pDaughterLogical->SetFastSimulationManager(fFastSimulationManager,false); + } + else + { + pDaughterLogical->SetFastSimulationManager(0, false); + } + } // Propagate the Field Manager, if the daughter has no field Manager. + // + pDaughterLogical = pNewDaughter->GetLogicalVolume(); + G4FieldManager* pDaughterFieldManager = pDaughterLogical->GetFieldManager(); - pDaughterLogical = pNewDaughter->GetLogicalVolume(); - G4FieldManager* pDaughterFieldManager = - pDaughterLogical->GetFieldManager(); + if( pDaughterFieldManager == 0 ) + { + pDaughterLogical->SetFieldManager(fFieldManager, true); + } +} - if( pDaughterFieldManager == 0 ) - { - pDaughterLogical->SetFieldManager(fFieldManager, true); - } +// ******************************************************************** +// IsDaughter +// ******************************************************************** +// +inline +G4bool G4LogicalVolume::IsDaughter(const G4VPhysicalVolume* p) const +{ + G4PhysicalVolumeList::const_iterator i; + for ( i=fDaughters.begin(); i!=fDaughters.end(); ++i ) + { + if (**i==*p) return true; + } + return false; +} + +// ******************************************************************** +// RemoveDaughter +// ******************************************************************** +// +inline +void G4LogicalVolume::RemoveDaughter(const G4VPhysicalVolume* p) +{ + G4PhysicalVolumeList::iterator i; + for ( i=fDaughters.begin(); i!=fDaughters.end(); ++i ) + { + if (**i==*p) + { + fDaughters.erase(i); + break; + } + } +} + +// ******************************************************************** +// GetSolid +// ******************************************************************** +// +inline +G4VSolid* G4LogicalVolume::GetSolid() const +{ + return fSolid; +} + +// ******************************************************************** +// SetSolid +// ******************************************************************** +// +inline +void G4LogicalVolume::SetSolid(G4VSolid *pSolid) +{ + assert(pSolid != 0); + fSolid=pSolid; +} + +// ******************************************************************** +// GetMaterial +// ******************************************************************** +// +inline +G4Material* G4LogicalVolume::GetMaterial() const +{ + return fMaterial; +} + +// ******************************************************************** +// SetMaterial +// ******************************************************************** +// +inline +void G4LogicalVolume::SetMaterial(G4Material *pMaterial) +{ + fMaterial=pMaterial; +} + +// ******************************************************************** +// GetSensitiveDetector +// ******************************************************************** +// +inline +G4VSensitiveDetector* G4LogicalVolume::GetSensitiveDetector() const +{ + return fSensitiveDetector; +} + +// ******************************************************************** +// SetSensitiveDetector +// ******************************************************************** +// +inline +void G4LogicalVolume::SetSensitiveDetector(G4VSensitiveDetector* pSDetector) +{ + fSensitiveDetector = pSDetector; +} + +// ******************************************************************** +// GetUserLimits +// ******************************************************************** +// +inline +G4UserLimits* G4LogicalVolume::GetUserLimits() const +{ + return fUserLimits; +} + +// ******************************************************************** +// SetUserLimits +// ******************************************************************** +// +inline +void G4LogicalVolume::SetUserLimits(G4UserLimits* pULimits) +{ + fUserLimits = pULimits; +} + +// ******************************************************************** +// GetVoxelHeader +// ******************************************************************** +// +inline +G4SmartVoxelHeader* G4LogicalVolume::GetVoxelHeader() const +{ + return fVoxel; +} + +// ******************************************************************** +// SetVoxelHeader +// ******************************************************************** +// +inline +void G4LogicalVolume::SetVoxelHeader(G4SmartVoxelHeader* pVoxel) +{ + fVoxel = pVoxel; +} + +// ******************************************************************** +// GetSmartless +// ******************************************************************** +// +inline +G4double G4LogicalVolume::GetSmartless() const +{ + return fSmartless; +} + +// ******************************************************************** +// SetSmartless +// ******************************************************************** +// +inline +void G4LogicalVolume::SetSmartless(G4double s) +{ + fSmartless = s; +} + +// ******************************************************************** +// IsToOptimise +// ******************************************************************** +// +inline +G4bool G4LogicalVolume::IsToOptimise() const +{ + return fOptimise; +} + +// ******************************************************************** +// SetOptimisation +// ******************************************************************** +// +inline +void G4LogicalVolume::SetOptimisation(G4bool optim) +{ + fOptimise = optim; +} + +// ******************************************************************** +// Operator == +// ******************************************************************** +// +inline +G4bool G4LogicalVolume::operator == ( const G4LogicalVolume& lv) const +{ + return (this==&lv) ? true : false; +} + +// ******************************************************************** +// GetVisAttributes +// ******************************************************************** +// +inline +const G4VisAttributes* G4LogicalVolume::GetVisAttributes () const +{ + return fVisAttributes; +} + +// ******************************************************************** +// SetVisAttributes +// ******************************************************************** +// +inline +void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA) +{ + fVisAttributes = pVA; } -inline -G4bool G4LogicalVolume::IsDaughter(const G4VPhysicalVolume* p) const - { - G4PhysicalVolumeList::const_iterator i; - for (i=fDaughters.begin(); i!=fDaughters.end(); ++i) - { - if (**i==*p) return true; - } - return false; - } - -inline -void G4LogicalVolume::RemoveDaughter(const G4VPhysicalVolume* p) - { - G4PhysicalVolumeList::iterator i; - for (i=fDaughters.begin(); i!=fDaughters.end(); ++i) - { - if (**i==*p) - { - fDaughters.erase(i); - break; - } - } - } - -inline -G4VSolid* G4LogicalVolume::GetSolid() const - { - return fSolid; - } - -inline -void G4LogicalVolume::SetSolid(G4VSolid *pSolid) - { - assert(pSolid != 0); - fSolid=pSolid; - } - -inline -G4Material* G4LogicalVolume::GetMaterial() const - { - return fMaterial; - } - -inline -void G4LogicalVolume::SetMaterial(G4Material *pMaterial) - { - // assert(pMaterial != 0); - fMaterial=pMaterial; - } - -inline -G4VSensitiveDetector* G4LogicalVolume::GetSensitiveDetector() const - { - return fSensitiveDetector; - } - -inline -void G4LogicalVolume::SetSensitiveDetector(G4VSensitiveDetector *pSDetector) - { - fSensitiveDetector=pSDetector; - } - -inline -G4UserLimits* G4LogicalVolume::GetUserLimits() const - { - return fUserLimits; - } - -inline -void G4LogicalVolume::SetUserLimits(G4UserLimits *pULimits) - { - fUserLimits=pULimits; - } - -inline -G4SmartVoxelHeader* G4LogicalVolume::GetVoxelHeader() const - { - return fVoxel; - } - -inline -void G4LogicalVolume::SetVoxelHeader(G4SmartVoxelHeader *pVoxel) - { - fVoxel=pVoxel; - } - -inline -G4double G4LogicalVolume::GetSmartless() - { - return fSmartless; - } - -inline -void G4LogicalVolume::SetSmartless(G4double s) - { - fSmartless=s; - } - -inline -G4bool G4LogicalVolume::operator == ( const G4LogicalVolume& lv) const - { - return (this==&lv) ? true : false; - } - -inline -const G4VisAttributes* G4LogicalVolume::GetVisAttributes () const - { - return fVisAttributes; - } - -inline -void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA) - { - fVisAttributes = pVA; - } - inline void G4LogicalVolume::SetVisAttributes (const G4VisAttributes& VA) - { - fVisAttributes = &VA; - } +{ + fVisAttributes = &VA; +} -inline void +// ******************************************************************** +// BecomeEnvelopeForFastSimulation +// ******************************************************************** +// +inline +void G4LogicalVolume::BecomeEnvelopeForFastSimulation(G4FastSimulationManager* pPA) - { - SetFastSimulationManager(pPA,TRUE); - } +{ + SetFastSimulationManager(pPA, true); +} +// ******************************************************************** +// SetBiasWeight +// ******************************************************************** +// inline void G4LogicalVolume::SetBiasWeight(G4double w) - { - fBiasWeight = w; - } +{ + fBiasWeight = w; +} +// ******************************************************************** +// GetBiasWeight +// ******************************************************************** +// inline G4double G4LogicalVolume::GetBiasWeight() const - { - return fBiasWeight; - } +{ + return fBiasWeight; +} diff --git a/source/geometry/management/include/G4LogicalVolumeStore.hh b/source/geometry/management/include/G4LogicalVolumeStore.hh index 0b68c42590..3c904c3c9e 100644 --- a/source/geometry/management/include/G4LogicalVolumeStore.hh +++ b/source/geometry/management/include/G4LogicalVolumeStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolumeStore.hh,v 1.6 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LogicalVolumeStore.hh,v 1.7 2002/04/19 08:20:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4LogicalVolumeStore // @@ -65,11 +65,12 @@ class G4LogicalVolumeStore : public G4std::vector static void DeRegister(G4LogicalVolume* pVolume); // Remove the logical volume from the collection. static G4LogicalVolumeStore* GetInstance(); - // Get a ptr to the unique G4LogicalVolumeStore, - // creating it if necessary. + // Get a ptr to the unique G4LogicalVolumeStore, creating it if necessary. + static void Clean(); + // Delete all volumes from the store. virtual ~G4LogicalVolumeStore(); - // Destructor. + // Destructor: takes care to delete allocated logical volumes. protected: @@ -78,6 +79,7 @@ class G4LogicalVolumeStore : public G4std::vector private: static G4LogicalVolumeStore* fgInstance; + static G4bool locked; }; #endif diff --git a/source/geometry/management/include/G4PVParameterised.hh b/source/geometry/management/include/G4PVParameterised.hh index eb7eb310ea..43f8c59d67 100644 --- a/source/geometry/management/include/G4PVParameterised.hh +++ b/source/geometry/management/include/G4PVParameterised.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVParameterised.hh,v 1.5 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PVParameterised diff --git a/source/geometry/management/include/G4PVPlacement.hh b/source/geometry/management/include/G4PVPlacement.hh index 95fdf6cf90..0da9d33c29 100644 --- a/source/geometry/management/include/G4PVPlacement.hh +++ b/source/geometry/management/include/G4PVPlacement.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVPlacement.hh,v 1.6 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PVPlacement diff --git a/source/geometry/management/include/G4PVReplica.hh b/source/geometry/management/include/G4PVReplica.hh index dbc688705e..22cb897050 100644 --- a/source/geometry/management/include/G4PVReplica.hh +++ b/source/geometry/management/include/G4PVReplica.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVReplica.hh,v 1.5 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PVReplica diff --git a/source/geometry/management/include/G4PhysicalVolumeStore.hh b/source/geometry/management/include/G4PhysicalVolumeStore.hh index 2066c2b027..49399160c7 100644 --- a/source/geometry/management/include/G4PhysicalVolumeStore.hh +++ b/source/geometry/management/include/G4PhysicalVolumeStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeStore.hh,v 1.7 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PhysicalVolumeStore.hh,v 1.8 2002/04/19 08:20:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PhysicalVolume // @@ -65,11 +65,12 @@ class G4PhysicalVolumeStore : public G4std::vector static void DeRegister(G4VPhysicalVolume* pSolid); // Remove the volume from the collection. static G4PhysicalVolumeStore* GetInstance(); - // Get a ptr to the unique G4PhysicalVolumeStore, - // creating it if necessary. + // Get a ptr to the unique G4PhysicalVolumeStore, creating it if necessary. + static void Clean(); + // Delete all volumes from the store. virtual ~G4PhysicalVolumeStore(); - // Default destructor. + // Destructor: takes care to delete allocated physical volumes. protected: @@ -78,6 +79,7 @@ class G4PhysicalVolumeStore : public G4std::vector private: static G4PhysicalVolumeStore* fgInstance; + static G4bool locked; }; #endif diff --git a/source/geometry/management/include/G4SmartVoxelHeader.hh b/source/geometry/management/include/G4SmartVoxelHeader.hh index 3ac9d6e053..e8c8f54475 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.hh +++ b/source/geometry/management/include/G4SmartVoxelHeader.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelHeader.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SmartVoxelHeader.hh,v 1.7 2002/05/15 10:06:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4SmartVoxelHeader // @@ -97,7 +97,9 @@ class G4SmartVoxelHeader EAxis GetAxis() const; // Return the current division axis. - + EAxis GetParamAxis() const; + // Return suggested division axis for parameterised volume. + G4double GetMaxExtent() const; // Return the maximum coordinate limit along the current axis. G4double GetMinExtent() const; @@ -187,7 +189,7 @@ class G4SmartVoxelHeader G4int fmaxEquivalent; // Min and max equivalent slice nos for previous level. - EAxis faxis; + EAxis faxis, fparamAxis; // Axis for slices. G4double fmaxExtent; diff --git a/source/geometry/management/include/G4SmartVoxelHeader.icc b/source/geometry/management/include/G4SmartVoxelHeader.icc index cb485efeb3..12bb6745b6 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.icc +++ b/source/geometry/management/include/G4SmartVoxelHeader.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelHeader.icc,v 1.3 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SmartVoxelHeader.icc,v 1.4 2002/05/15 10:06:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4SmartVoxelHeader Inline implementation @@ -58,6 +58,12 @@ EAxis G4SmartVoxelHeader::GetAxis() const return faxis; } +inline +EAxis G4SmartVoxelHeader::GetParamAxis() const +{ + return fparamAxis; +} + inline G4double G4SmartVoxelHeader::GetMaxExtent() const { diff --git a/source/geometry/management/include/G4SmartVoxelNode.hh b/source/geometry/management/include/G4SmartVoxelNode.hh index 89fd4e0dd6..0068af8d06 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.hh +++ b/source/geometry/management/include/G4SmartVoxelNode.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelNode.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SmartVoxelNode.hh,v 1.7 2002/04/19 08:20:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4SmartVoxelNode // @@ -64,10 +64,10 @@ class G4SmartVoxelNode G4SmartVoxelNode(G4int pSlice=0) : fminEquivalent(pSlice), fmaxEquivalent(pSlice) {} // Constructor. Create an empty node with slice number pSlice. - // THis number is not stored, but used to provide defaults for the + // This number is not stored, but used to provide defaults for the // minimum and maximum equivalent node numbers. - ~G4SmartVoxelNode() {} + ~G4SmartVoxelNode(); // Destructor. No actions. G4int GetVolume(G4int pVolumeNo) const; diff --git a/source/geometry/management/include/G4SmartVoxelNode.icc b/source/geometry/management/include/G4SmartVoxelNode.icc index f8e83a7357..6a4315c60f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4SmartVoxelNode Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelProxy.hh b/source/geometry/management/include/G4SmartVoxelProxy.hh index 330fa86803..6719e09dcd 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.hh +++ b/source/geometry/management/include/G4SmartVoxelProxy.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelProxy.hh,v 1.5 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SmartVoxelProxy.hh,v 1.6 2002/04/19 08:20:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4SmartVoxelProxy // @@ -62,7 +62,7 @@ class G4SmartVoxelProxy : fHeader(0), fNode(pNode) {} // Proxy for the specified node. - ~G4SmartVoxelProxy() {} + ~G4SmartVoxelProxy(); // Destructor - do nothing. Not responsible for proxied objects. G4bool IsHeader() const; diff --git a/source/geometry/management/include/G4SmartVoxelProxy.icc b/source/geometry/management/include/G4SmartVoxelProxy.icc index 9b3ebfad2d..85bef3ced4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4SmartVoxelProxy Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelStat.hh b/source/geometry/management/include/G4SmartVoxelStat.hh index 8b72f6fdd4..e5bd4dcbde 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/management/include/G4SolidStore.hh b/source/geometry/management/include/G4SolidStore.hh index db107a22a4..cbedeae747 100644 --- a/source/geometry/management/include/G4SolidStore.hh +++ b/source/geometry/management/include/G4SolidStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SolidStore.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SolidStore.hh,v 1.7 2002/04/19 08:20:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4SolidStore // @@ -66,9 +66,11 @@ class G4SolidStore : public G4std::vector // Remove the solid from the collection. static G4SolidStore* GetInstance(); // Get a ptr to the unique G4SolidStore, creating it if necessary. + static void Clean(); + // Delete all solids from the store. virtual ~G4SolidStore(); - // Default destructor. + // Destructor: takes care to delete allocated solids. protected: @@ -77,6 +79,7 @@ class G4SolidStore : public G4std::vector private: static G4SolidStore* fgInstance; + static G4bool locked; }; #endif diff --git a/source/geometry/management/include/G4TouchableHandle.hh b/source/geometry/management/include/G4TouchableHandle.hh index 5589259a29..1baad2a73e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class G4TouchableHandle // diff --git a/source/geometry/management/include/G4VPVParameterisation.hh b/source/geometry/management/include/G4VPVParameterisation.hh index 0aca44d3a0..46a5412c90 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4VPVParamterisation // diff --git a/source/geometry/management/include/G4VPhysicalVolume.hh b/source/geometry/management/include/G4VPhysicalVolume.hh index 4cfbebc1e8..7c56fedfba 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.hh +++ b/source/geometry/management/include/G4VPhysicalVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicalVolume.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VPhysicalVolume diff --git a/source/geometry/management/include/G4VPhysicalVolume.icc b/source/geometry/management/include/G4VPhysicalVolume.icc index b39f76b3fe..9072ba3df2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VPhysicalVolume Inline Implementation diff --git a/source/geometry/management/include/G4VSolid.hh b/source/geometry/management/include/G4VSolid.hh index 5a77156dd0..f323877634 100644 --- a/source/geometry/management/include/G4VSolid.hh +++ b/source/geometry/management/include/G4VSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.hh,v 1.9 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VSolid.hh,v 1.10 2002/04/16 08:21:07 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VSolid @@ -188,6 +188,9 @@ class G4VSolid // If the solid is a "G4DisplacedSolid", return a self pointer // else return 0. + // virtual G4ThreeVectorList* + // CreateRotatedVertices(const G4AffineTransform& pTransform) const = 0 ; + protected: // with description void CalculateClippedPolygonExtent(G4ThreeVectorList& pPolygon, @@ -233,8 +236,9 @@ class G4VSolid // // No modifications are made to pVertices. - void ClipPolygon(G4ThreeVectorList& pPolygon, - const G4VoxelLimits& pVoxelLimit) const; + void ClipPolygon( G4ThreeVectorList& pPolygon, + const G4VoxelLimits& pVoxelLimit, + const EAxis pAxis ) const; // Clip the specified convex polygon to the given limits, where // the polygon is described by the vertices at (0),(1),...,(n),(0) in // pPolygon. @@ -244,7 +248,7 @@ private: void ClipPolygonToSimpleLimits(G4ThreeVectorList& pPolygon, G4ThreeVectorList& outputPolygon, - const G4VoxelLimits& pVoxelLimit) const; + const G4VoxelLimits& pVoxelLimit ) const; // Clip the specified convex polygon to the given limits, storing the // result in outputPolygon. The voxel limits must be limited in one // *plane* only: This is achieved by having only x or y or z limits, diff --git a/source/geometry/management/include/G4VSolid.icc b/source/geometry/management/include/G4VSolid.icc index 5dc5f77386..98ee3b3ac7 100644 --- a/source/geometry/management/include/G4VSolid.icc +++ b/source/geometry/management/include/G4VSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4VSolid.icc,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4VSolid Inline implementation diff --git a/source/geometry/management/include/G4VTouchable.hh b/source/geometry/management/include/G4VTouchable.hh index 07ff67e1a0..c1aa8b6c59 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VTouchable diff --git a/source/geometry/management/include/G4VTouchable.icc b/source/geometry/management/include/G4VTouchable.icc index 0f7f54592e..eef98bba2e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VTouchable Inline implementation diff --git a/source/geometry/management/include/G4VoxelLimits.hh b/source/geometry/management/include/G4VoxelLimits.hh index 88e3ca378d..4717e8d4cd 100644 --- a/source/geometry/management/include/G4VoxelLimits.hh +++ b/source/geometry/management/include/G4VoxelLimits.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VoxelLimits.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VoxelLimits.hh,v 1.6 2002/04/19 08:20:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4VoxelLimits // @@ -62,12 +62,10 @@ class G4VoxelLimits { public: // with description - G4VoxelLimits() : fxAxisMin(-kInfinity),fxAxisMax(kInfinity), - fyAxisMin(-kInfinity),fyAxisMax(kInfinity), - fzAxisMin(-kInfinity),fzAxisMax(kInfinity) {;} + G4VoxelLimits(); // Constructor - initialise to be unlimited. Volume unrestricted. - ~G4VoxelLimits() {;} + ~G4VoxelLimits(); // Destructor. No actions. void AddLimit(const EAxis pAxis, const G4double pMin,const G4double pMax); diff --git a/source/geometry/management/include/G4VoxelLimits.icc b/source/geometry/management/include/G4VoxelLimits.icc index f684e5f757..3f54189936 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4VoxelLimits Inline implementation diff --git a/source/geometry/management/include/meshdefs.hh b/source/geometry/management/include/meshdefs.hh index 56e6d3ebc6..be6e2384d9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Tube/Cone Meshing constants for extent calculations diff --git a/source/geometry/management/include/voxeldefs.hh b/source/geometry/management/include/voxeldefs.hh index 280690b5d5..dd96a0ffaa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/geometry/management/src/G4AssemblyVolume.cc b/source/geometry/management/src/G4AssemblyVolume.cc index 1471e7041b..e22380ff7e 100644 --- a/source/geometry/management/src/G4AssemblyVolume.cc +++ b/source/geometry/management/src/G4AssemblyVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyVolume.cc,v 1.6 2001/07/11 09:59:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4AssemblyVolume.cc,v 1.10 2002/06/24 07:15:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4AssemblyVolume - implementation @@ -51,16 +51,25 @@ G4AssemblyVolume::G4AssemblyVolume() // G4AssemblyVolume::~G4AssemblyVolume() { + unsigned int howmany = fTriplets.size(); + if( howmany != 0 ) { + for( unsigned int i = 0; i < howmany; i++ ) { + G4RotationMatrix* pRotToClean = fTriplets[i].GetRotation(); + if( pRotToClean != 0 ) { + delete pRotToClean; + } + } + } fTriplets.clear(); - unsigned int howmany = fPVStore.size(); - if( howmany != 0 ) - { - for( unsigned int i = 0; i < howmany; i++ ) - { - G4RotationMatrix* pRotToClean = fPVStore[i]->GetRotation(); - if( pRotToClean != 0 ) delete pRotToClean; - delete fPVStore[i]; + howmany = fPVStore.size(); + if( howmany != 0 ) { + for( unsigned int j = 0; j < howmany; j++ ) { + G4RotationMatrix* pRotToClean = fPVStore[j]->GetRotation(); + if( pRotToClean != 0 ) { + delete pRotToClean; + } + delete fPVStore[j]; } } @@ -71,11 +80,25 @@ G4AssemblyVolume::~G4AssemblyVolume() // Add and place the given volume according to the specified // translation and rotation. // +// The rotation matrix passed in can be 0 = identity or an address even of an object +// on the upper stack frame. During assembly imprint, it creates anyway a new matrix +// and keeps track of it so it can delete it later at destruction time. +// This new policy has been adopted since user has no control on the way the rotations +// are combined it's safer doing it this way. +// +// WARNING! This interface will likely change in the next major release of Geant4 from +// a pointer to a reference due to the reason above void G4AssemblyVolume::AddPlacedVolume( G4LogicalVolume* pVolume, G4ThreeVector& translation, G4RotationMatrix* pRotation ) { - G4AssemblyTriplet toAdd( pVolume, translation, pRotation ); + G4RotationMatrix* toStore = new G4RotationMatrix; + + if( pRotation != 0 ) { + *toStore = *pRotation; + } + + G4AssemblyTriplet toAdd( pVolume, translation, toStore ); fTriplets.push_back( toAdd ); } @@ -84,48 +107,77 @@ void G4AssemblyVolume::AddPlacedVolume( G4LogicalVolume* pVolume, void G4AssemblyVolume::AddPlacedVolume( G4LogicalVolume* pVolume, G4Transform3D& transformation ) { - G4ThreeVector v = transformation.getTranslation(); - G4RotationMatrix r = transformation.getRotation(); - G4AssemblyTriplet toAdd( pVolume, v, &r ); + G4ThreeVector v = transformation.getTranslation(); + G4RotationMatrix* r = new G4RotationMatrix; + *r = transformation.getRotation(); + + G4AssemblyTriplet toAdd( pVolume, v, r ); fTriplets.push_back( toAdd ); } -/** - * Create an instance of an assembly volume inside of the specified - * mother volume. This works analogically to making stamp imprints. - * This method makes use of the Geant4 affine transformation class. - * The algorithm is defined as follows: - * - * Having rotation matrix Rm and translation vector Tm to be applied - * inside the mother and rotation matrix Ra and translation vector Ta - * to be applied inside the assembly itself for each of the participating - * volumes the resulting transformation is - * - * Tfinal = Ta * Tm - * - * where Ta and Tm are constructed as - * - * -1 -1 - * Ta = Ra * Ta and Tm = Rm * Tm - * - * which in words means that we create first the affine transformations - * by inverse rotation matrices and translations for mother and assembly. - * The resulting final transformation to be applied to each of the - * participating volumes is their product. - * IMPORTANT NOTE! - * The order of multiplication is reversed when comparing to CLHEP 3D - * transformation matrix(G4Transform3D class). - */ +// +// Create an instance of an assembly volume inside of the specified +// mother volume. This works analogically to making stamp imprints. +// This method makes use of the Geant4 affine transformation class. +// The algorithm is defined as follows: +// +// Having rotation matrix Rm and translation vector Tm to be applied +// inside the mother and rotation matrix Ra and translation vector Ta +// to be applied inside the assembly itself for each of the participating +// volumes the resulting transformation is +// +// Tfinal = Ta * Tm +// +// where Ta and Tm are constructed as +// +// -1 -1 +// Ta = Ra * Ta and Tm = Rm * Tm +// +// which in words means that we create first the affine transformations +// by inverse rotation matrices and translations for mother and assembly. +// The resulting final transformation to be applied to each of the +// participating volumes is their product. +// +// IMPORTANT NOTE! +// The order of multiplication is reversed when comparing to CLHEP 3D +// transformation matrix(G4Transform3D class). +// +// The rotation matrix passed in can be 0 = identity or an address even of an object +// on the upper stack frame. During assembly imprint, it creates anyway a new matrix +// and keeps track of it so it can delete it later at destruction time. +// This new policy has been adopted since user has no control on the way the rotations +// are combined it's safer doing it this way. +// +// WARNING! This interface will likely change in the next major release of Geant4 from +// a pointer to a reference due to the reason above +// void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, G4ThreeVector& translationInMother, - G4RotationMatrix* pRotationInMother ) + G4RotationMatrix* pRotationInMother, + G4int copyNumBase ) { - unsigned int numberOfDaughters = pMotherLV->GetNoDaughters(); + // If needed user can specify explicitly the base count from which to start off for the generation + // of phys. vol. copy numbers + // The old behaviour is preserved when copyNumBase == 0, e.g. the generated copy numbers start + // from the count equal to current number of daughter volumes before a imprint is made + + unsigned int numberOfDaughters; + + if( copyNumBase != 0 ) { + numberOfDaughters = pMotherLV->GetNoDaughters(); + } else { + numberOfDaughters = copyNumBase; + } // We start from the first available index numberOfDaughters++; - + ImprintsCountPlus(); + + if( pRotationInMother == 0 ) { + // Make it by default an indentity matrix; + pRotationInMother = const_cast( &G4RotationMatrix::IDENTITY ); + } for( unsigned int i = 0; i < fTriplets.size(); i++ ) { @@ -182,9 +234,21 @@ void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, } void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, - G4Transform3D& transformation ) + G4Transform3D& transformation, + G4int copyNumBase ) { - unsigned int numberOfDaughters = pMotherLV->GetNoDaughters(); + // If needed user can specify explicitly the base count from which to start off for the generation + // of phys. vol. copy numbers + // The old behaviour is preserved when copyNumBase == 0, e.g. the generated copy numbers start + // from the count equal to current number of daughter volumes before a imprint is made + + unsigned int numberOfDaughters; + + if( copyNumBase != 0 ) { + numberOfDaughters = pMotherLV->GetNoDaughters(); + } else { + numberOfDaughters = copyNumBase; + } // We start from the first available index numberOfDaughters++; diff --git a/source/geometry/management/src/G4DrawVoxels.cc b/source/geometry/management/src/G4DrawVoxels.cc index 03de1b732c..d4d27d9cd1 100644 --- a/source/geometry/management/src/G4DrawVoxels.cc +++ b/source/geometry/management/src/G4DrawVoxels.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DrawVoxels.cc,v 1.14 2001/07/11 09:59:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4DrawVoxels.cc,v 1.15 2002/04/19 08:20:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4DrawVoxels @@ -41,6 +41,22 @@ #include "G4VVisManager.hh" /****************************/ + +//Private Constructor +G4DrawVoxels::G4DrawVoxels(){ + fVoxelsVisAttributes[0].SetColour(G4Colour(1.,0.,0.)); + fVoxelsVisAttributes[1].SetColour(G4Colour(0.,1.,0.)); + fVoxelsVisAttributes[2].SetColour(G4Colour(0.,0.,1.)); + fBoundingBoxVisAttributes.SetColour(G4Colour(.3,0.,.2)); +} + + +// Destructor +G4DrawVoxels::~G4DrawVoxels() +{ +} + + //Methods that allow changing colors of the drawing void G4DrawVoxels::SetVoxelsVisAttributes(G4VisAttributes& VA_voxelX,G4VisAttributes& VA_voxelY,G4VisAttributes& VA_voxelZ){ fVoxelsVisAttributes[0]=VA_voxelX; //operateur de copie ... @@ -172,14 +188,6 @@ void G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, }//end of ComputeVoxelPolyhedra... //###################################################################################################################### -//Private Constructor -G4DrawVoxels::G4DrawVoxels(){ - fVoxelsVisAttributes[0].SetColour(G4Colour(1.,0.,0.)); - fVoxelsVisAttributes[1].SetColour(G4Colour(0.,1.,0.)); - fVoxelsVisAttributes[2].SetColour(G4Colour(0.,0.,1.)); - fBoundingBoxVisAttributes.SetColour(G4Colour(.3,0.,.2)); -} - G4AffineTransform G4DrawVoxels::GetAbsoluteTransformation(const G4VPhysicalVolume* pv) const{ //Initialisation of the transformation to be computed G4AffineTransform transf; //default constructor ie Id @@ -209,6 +217,7 @@ G4PlacedPolyhedronList* G4DrawVoxels::CreatePlacedPolyhedra(const G4LogicalVolum } + void G4DrawVoxels::DrawVoxels(const G4LogicalVolume* lv) const{ G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); diff --git a/source/geometry/management/src/G4GeometryManager.cc b/source/geometry/management/src/G4GeometryManager.cc index 595bd332be..62d9f3ca0c 100644 --- a/source/geometry/management/src/G4GeometryManager.cc +++ b/source/geometry/management/src/G4GeometryManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryManager.cc,v 1.6 2001/10/26 12:56:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GeometryManager.cc,v 1.11 2002/05/17 17:59:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4GeometryManager // @@ -30,24 +30,47 @@ // // Author: // 26.07.95 P.Kent Initial version, including optimisation Build +// ******************************************************************** +#include "g4std/iomanip" #include "G4Timer.hh" #include "G4GeometryManager.hh" -#include "g4std/iomanip" -// Close geometry - perform sanity checks and optionally Build optimisation -// for placed volumes (always built for replicas & parameterised) -// NOTE: Currently no sanity checks +// *************************************************************************** +// Static class variable: ptr to single instance of class +// *************************************************************************** +// +G4GeometryManager* G4GeometryManager::fgInstance = 0; + +// *************************************************************************** +// Constructor. Set the geometry to be open +// *************************************************************************** +// +G4GeometryManager::G4GeometryManager() +{ + fIsClosed=false; +} + +// *************************************************************************** +// Closes geometry - performs sanity checks and optionally builds optimisation +// for placed volumes (always built for replicas & parameterised). +// NOTE: Currently no sanity checks are performed. +// *************************************************************************** +// G4bool G4GeometryManager::CloseGeometry(G4bool pOptimise, G4bool verbose) { if (!fIsClosed) { - BuildOptimisations(pOptimise, verbose); - fIsClosed=true; + BuildOptimisations(pOptimise, verbose); + fIsClosed=true; } return true; } +// *************************************************************************** +// Opens the geometry and removes all optimisations. +// *************************************************************************** +// void G4GeometryManager::OpenGeometry() { if (fIsClosed) @@ -57,29 +80,34 @@ void G4GeometryManager::OpenGeometry() } } -// Static class variable: ptr to single instance of class -G4GeometryManager* G4GeometryManager::fgInstance = 0; +// *************************************************************************** +// Returns status of geometry +// *************************************************************************** +// +G4bool G4GeometryManager::IsGeometryClosed() +{ + return fIsClosed; +} +// *************************************************************************** +// Returns the instance of the singleton. +// Creates it in case it's called for the first time. +// *************************************************************************** +// G4GeometryManager* G4GeometryManager::GetInstance() { - static G4GeometryManager worldManager; - if (!fgInstance) - { - fgInstance = &worldManager; - } - return fgInstance; + static G4GeometryManager worldManager; + if (!fgInstance) + { + fgInstance = &worldManager; + } + return fgInstance; } - -// Constructor. Set the geometry to be open -G4GeometryManager::G4GeometryManager() -{ - fIsClosed=false; -} - -// -// Create optimisation info. Build all voxels if allOpts=true -// else only for replicated volumes +// *************************************************************************** +// Creates optimisation info. Builds all voxels if allOpts=true +// otherwise it builds voxels only for replicated volumes. +// *************************************************************************** // void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) { @@ -91,53 +119,57 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) G4LogicalVolumeStore *Store; G4LogicalVolume *volume; G4SmartVoxelHeader *head; - G4int nVolumes,n; + G4int nVolumes, n; Store=G4LogicalVolumeStore::GetInstance(); nVolumes=Store->size(); - for (n=0;nGetVoxelHeader(); - if (head) - { - delete head; - volume->SetVoxelHeader(0); - } - if ((volume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) || - (volume->GetNoDaughters()==1 && - volume->GetDaughter(0)->IsReplicated()==true)) - { + volume=(*Store)[n]; + // For safety, check if there are any existing voxels and + // delete before replacement + // + head = volume->GetVoxelHeader(); + if (head) + { + delete head; + volume->SetVoxelHeader(0); + } + if ( (volume->IsToOptimise()) + && (volume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) + || ( (volume->GetNoDaughters()==1) + && (volume->GetDaughter(0)->IsReplicated()==true) ) ) + { #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4GeometryManager::BuildOptimisations" << G4endl - << " Examining logical volume name = " - << volume->GetName() << G4endl; + G4cout << "**** G4GeometryManager::BuildOptimisations" << G4endl + << " Examining logical volume name = " + << volume->GetName() << G4endl; #endif - head = new G4SmartVoxelHeader(volume); - if (head) - { - volume->SetVoxelHeader(head); - } - else - { - G4Exception("G4GeometryManager::BuildOptimisations voxelheader new failed"); - } - if (verbose) - { - timer.Stop(); - stats.push_back( G4SmartVoxelStat( volume, head, - timer.GetSystemElapsed(), - timer.GetUserElapsed() ) ); - } + head = new G4SmartVoxelHeader(volume); + if (head) + { + volume->SetVoxelHeader(head); + } + else + { + G4cout << "ERROR - VoxelHeader new failed." << G4endl; + G4Exception("ERROR - G4GeometryManager::BuildOptimisations"); + } + if (verbose) + { + timer.Stop(); + stats.push_back( G4SmartVoxelStat( volume, head, + timer.GetSystemElapsed(), + timer.GetUserElapsed() ) ); + } } else { - // Don't create voxels for this node + // Don't create voxels for this node #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4GeometryManager::BuildOptimisations" << G4endl - << " Skipping logical volume name = " << volume->GetName() - << G4endl; + G4cout << "**** G4GeometryManager::BuildOptimisations" << G4endl + << " Skipping logical volume name = " << volume->GetName() + << G4endl; #endif } } @@ -149,37 +181,37 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) } } -// Remove all optimisation info +// *************************************************************************** +// Removes all optimisation info. +// Loops over all logical volumes, deleting non-null voxels pointers. +// *************************************************************************** // -// Process: -// -// Loop over all logical volumes, deleting non-null voxels ptrs - void G4GeometryManager::DeleteOptimisations() { - G4LogicalVolumeStore *Store=G4LogicalVolumeStore::GetInstance(); - G4LogicalVolume *volume; - G4SmartVoxelHeader *head; - G4int nVolumes,n; - nVolumes=Store->size(); - for (n=0;nGetVoxelHeader(); - if (head) - { - delete head; - volume->SetVoxelHeader(0); - } - } + G4LogicalVolumeStore* Store=G4LogicalVolumeStore::GetInstance(); + G4LogicalVolume* volume; + G4SmartVoxelHeader* head; + G4int nVolumes, n; + nVolumes = Store->size(); + + for (n=0; nGetVoxelHeader(); + if (head) + { + delete head; + volume->SetVoxelHeader(0); + } + } } +// *************************************************************************** +// Reports statistics on voxel optimisation when closing geometry. +// *************************************************************************** // -// ReportVoxelStats -// - void -G4GeometryManager::ReportVoxelStats( G4std::vector &stats, +G4GeometryManager::ReportVoxelStats( G4std::vector & stats, G4double totalCpuTime ) { G4cout << "G4GeometryManager::ReportVoxelStats -- Voxel Statistics" @@ -234,7 +266,8 @@ G4GeometryManager::ReportVoxelStats( G4std::vector &stats, << G4std::setw(13) << (stats[i].GetMemoryUse()+512)/1024 << "k " << G4std::setiosflags(G4std::ios::left) << stats[i].GetVolume()->GetName() - << G4std::resetiosflags(G4std::ios::left) + << G4std::resetiosflags(G4std::ios::floatfield|G4std::ios::adjustfield) + << G4std::setprecision(6) << G4endl; } @@ -268,7 +301,8 @@ G4GeometryManager::ReportVoxelStats( G4std::vector &stats, << G4std::setw(13) << totTime << " " << G4std::setiosflags(G4std::ios::left) << stats[i].GetVolume()->GetName() - << G4std::resetiosflags(G4std::ios::left) + << G4std::resetiosflags(G4std::ios::floatfield|G4std::ios::adjustfield) + << G4std::setprecision(6) << G4endl; } } diff --git a/source/geometry/management/src/G4LogicalVolume.cc b/source/geometry/management/src/G4LogicalVolume.cc index 8a22406d27..83dcb08939 100644 --- a/source/geometry/management/src/G4LogicalVolume.cc +++ b/source/geometry/management/src/G4LogicalVolume.cc @@ -21,153 +21,192 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.cc,v 1.8 2001/07/11 09:59:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LogicalVolume.cc,v 1.10 2002/05/17 17:59:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4LogicalVolume Implementation // // History: -// 12.02.99 S.Giani: Deafult initialization of voxelization quality. -// 10.20.97 - P. MoraDeFreitas : "Fast" replaces "Parameterisation" in -// class/method names. (release B.00 for parameterisation). -// 04.08.97 P.MoraDeFreitas/J.A. Added methods for ParameterisedSimulation -// 19.08.96 P.Kent Modified for G4VSensitive Detector -// 11.07.95 P.Kent Initial version +// 17.05.02 G.Cosmo: Added flag for optional optimisation +// 12.02.99 S.Giani: Default initialization of voxelization quality +// 04.08.97 P.M.DeFreitas: Added methods for parameterised simulation +// 19.08.96 P.Kent: Modified for G4VSensitive Detector +// 11.07.95 P.Kent: Initial version +// ******************************************************************** #include "G4LogicalVolume.hh" #include "G4LogicalVolumeStore.hh" -// Constructor - set member data and add to logical Store, zero voxel ptr -// Initialises daughter vector to 0 length +// ******************************************************************** +// Constructor - sets member data and adds to logical Store, +// voxel pointer for optimisation set to 0 by default. +// Initialises daughter vector to 0 length. +// ******************************************************************** // -G4LogicalVolume::G4LogicalVolume( G4VSolid *pSolid, G4Material *pMaterial, - const G4String& name, - G4FieldManager *pFieldMgr, - G4VSensitiveDetector *pSDetector, - G4UserLimits *pULimits) - : fDaughters(0,(G4VPhysicalVolume*)0), fFieldManager(pFieldMgr), fVoxel(0), - fSmartless(2.), fVisAttributes (0), fFastSimulationManager (0), fIsEnvelope(FALSE) +G4LogicalVolume::G4LogicalVolume( G4VSolid* pSolid, + G4Material* pMaterial, + const G4String& name, + G4FieldManager* pFieldMgr, + G4VSensitiveDetector* pSDetector, + G4UserLimits* pULimits, + G4bool optimise ) + : fDaughters(0,(G4VPhysicalVolume*)0), fFieldManager(pFieldMgr), + fVoxel(0), fOptimise(optimise), fSmartless(2.), fVisAttributes (0), + fFastSimulationManager (0), fIsEnvelope(false) { - SetSolid(pSolid); - SetMaterial(pMaterial); - SetName(name); - SetSensitiveDetector(pSDetector); - SetUserLimits(pULimits); - // Add to solid Store - G4LogicalVolumeStore::Register(this); + SetSolid(pSolid); + SetMaterial(pMaterial); + SetName(name); + SetSensitiveDetector(pSDetector); + SetUserLimits(pULimits); + // + // Add to solid Store + // + G4LogicalVolumeStore::Register(this); } -// Destructor - remove from solid Store +// ******************************************************************** +// Destructor - Removes itself from solid Store // NOTE: Not virtual +// ******************************************************************** // G4LogicalVolume::~G4LogicalVolume() { - G4LogicalVolumeStore::DeRegister(this); + G4LogicalVolumeStore::DeRegister(this); } -// As this method is recursive, inlining it is harder (and asking for it -// is pointless if not counterproductive: it will increase code size) +// ******************************************************************** +// SetFastSimulationManager +// +// NOTE: recursive method, not inlined. +// ******************************************************************** // void -G4LogicalVolume::SetFastSimulationManager( - G4FastSimulationManager* pNewFastSimul, - G4bool IsEnvelope) +G4LogicalVolume:: +SetFastSimulationManager( G4FastSimulationManager* pNewFastSimul, + G4bool IsEnvelope ) { - if(!fIsEnvelope || IsEnvelope) { - fIsEnvelope=IsEnvelope; - fFastSimulationManager = pNewFastSimul; + if( !fIsEnvelope || IsEnvelope ) + { + fIsEnvelope = IsEnvelope; + fFastSimulationManager = pNewFastSimul; - G4int NoDaughters=GetNoDaughters(); - while((NoDaughters--)>0){ - G4LogicalVolume *DaughterLogVol; - DaughterLogVol= GetDaughter(NoDaughters)->GetLogicalVolume(); - if(DaughterLogVol->GetFastSimulationManager() != pNewFastSimul) { - DaughterLogVol->SetFastSimulationManager(pNewFastSimul,FALSE); - } - } + G4int NoDaughters = GetNoDaughters(); + while ( (NoDaughters--)>0 ) + { + G4LogicalVolume* DaughterLogVol; + DaughterLogVol = GetDaughter(NoDaughters)->GetLogicalVolume(); + if( DaughterLogVol->GetFastSimulationManager() != pNewFastSimul ) + { + DaughterLogVol->SetFastSimulationManager(pNewFastSimul,false); + } + } } } +// ******************************************************************** +// ClearEnvelopeForFastSimulation +// ******************************************************************** +// void -G4LogicalVolume::ClearEnvelopeForFastSimulation(G4LogicalVolume* motherLogVol) +G4LogicalVolume::ClearEnvelopeForFastSimulation( G4LogicalVolume* motherLogVol ) { - if( fIsEnvelope ) { - G4FastSimulationManager* NewFastSimulationVal=NULL; + if( fIsEnvelope ) + { + G4FastSimulationManager* NewFastSimulationVal = 0; - // This is no longer an envelope ! - fIsEnvelope=FALSE; + // This is no longer an envelope ! + // + fIsEnvelope = false; - if( motherLogVol == NULL ) { - motherLogVol = this->FindMotherLogicalVolumeForEnvelope(); - - } else { - // Check that motherLogVol is this' mother. - // If not, raise exception and set it to NULL. - if ( FALSE ){ - G4Exception( - "G4LogicalVolume::ClearEnvelope Gave wrong mother LogicalVolume" ); - motherLogVol = NULL; - } - } - // Reset the ParameterisedSimulation values of self and all daughters - // (after ensuring the mother was given correctly or was found) - if( motherLogVol != NULL ) { - NewFastSimulationVal = motherLogVol-> - GetFastSimulationManager(); - this->SetFastSimulationManager (NewFastSimulationVal, - FALSE); - } - }else{ - G4Exception("Called G4LogicalVolume::ClearEnvelope for a non-envelope Logical Volume" ); + if( motherLogVol == 0 ) + { + motherLogVol = this->FindMotherLogicalVolumeForEnvelope(); + } + else + { + // Check that "motherLogVol" is this mother. + // If not, raise exception and set it to 0. + // + if ( false ) + { + G4cerr << "ERROR - Wrong mother LogicalVolume !" << G4endl; + G4Exception("ERROR - G4LogicalVolume::ClearEnvelopeForFastSimulation"); + motherLogVol = 0; + } + } + // Reset its ParameterisedSimulation values and those of all daughters + // (after ensuring the mother was given correctly or was found) + // + if( motherLogVol != 0 ) + { + NewFastSimulationVal = motherLogVol->GetFastSimulationManager(); + this->SetFastSimulationManager(NewFastSimulationVal, false); + } + } + else + { + G4cerr << "ERROR - Called ClearEnvelope() for non-envelope Logical Volume !" + << G4endl; + G4Exception("ERROR - G4LogicalVolume::ClearEnvelope"); } } +// ******************************************************************** +// SetFieldManager +// ******************************************************************** +// void G4LogicalVolume::SetFieldManager(G4FieldManager* pNewFieldMgr, G4bool forceAllDaughters) { fFieldManager = pNewFieldMgr; - G4int NoDaughters=GetNoDaughters(); - while((NoDaughters--)>0){ - G4LogicalVolume *DaughterLogVol; - DaughterLogVol= GetDaughter(NoDaughters)->GetLogicalVolume(); - if(forceAllDaughters || (DaughterLogVol->GetFieldManager() != 0)) { + G4int NoDaughters = GetNoDaughters(); + while ( (NoDaughters--)>0 ) + { + G4LogicalVolume* DaughterLogVol; + DaughterLogVol = GetDaughter(NoDaughters)->GetLogicalVolume(); + if ( forceAllDaughters || (DaughterLogVol->GetFieldManager() != 0) ) + { DaughterLogVol->SetFieldManager(pNewFieldMgr, forceAllDaughters); } } - } -// The following method returns a meaningful result IF and only IF -// the current logical volume has exactly one physical volume that -// uses it. + +// ******************************************************************** +// FindMotherLogicalVolumeForEnvelope +// +// Returns a meaningful result IF and only IF the current logical +// volume has exactly one physical volume that uses it. +// ******************************************************************** // G4LogicalVolume* G4LogicalVolume::FindMotherLogicalVolumeForEnvelope() { - G4LogicalVolume* motherLogVol= 0; - G4LogicalVolumeStore *Store = G4LogicalVolumeStore::GetInstance(); + G4LogicalVolume* motherLogVol = 0; + G4LogicalVolumeStore* Store = G4LogicalVolumeStore::GetInstance(); // Look for the current volume's mother volume. - - for (size_t LV=0;LV < Store->size(); LV++){ - G4LogicalVolume *aLogVol; - - aLogVol= (*Store)[LV]; - if( (aLogVol!=this) && // Don't look for it inside itself... - (aLogVol->GetFastSimulationManager()!=NULL)){ - - for (G4int daughter=0; daughter < aLogVol->GetNoDaughters(); - daughter++){ - if( aLogVol->GetDaughter(daughter)->GetLogicalVolume()==this) { - // "- Oh Dear, aLogVol is my mother !!!" - motherLogVol = aLogVol; - break; - } - } - } + // + for ( size_t LV=0; LV < Store->size(); LV++ ) + { + G4LogicalVolume* aLogVol = (*Store)[LV]; // Don't look for it inside itself! + if( (aLogVol!=this) && (aLogVol->GetFastSimulationManager()!=0) ) + { + for ( G4int daughter=0; daughterGetNoDaughters(); daughter++ ) + { + if( aLogVol->GetDaughter(daughter)->GetLogicalVolume()==this ) + { + // aLogVol is the mother !!! + // + motherLogVol = aLogVol; + break; + } + } + } } return motherLogVol; } diff --git a/source/geometry/management/src/G4LogicalVolumeStore.cc b/source/geometry/management/src/G4LogicalVolumeStore.cc index 75ca179e85..cd2675c350 100644 --- a/source/geometry/management/src/G4LogicalVolumeStore.cc +++ b/source/geometry/management/src/G4LogicalVolumeStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolumeStore.cc,v 1.6 2001/07/11 09:59:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LogicalVolumeStore.cc,v 1.8 2002/04/26 16:24:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4LogicalVolumeStore // @@ -30,51 +30,115 @@ // // History: // 10.07.95 P.Kent Initial version +// ******************************************************************** -#include "G4LogicalVolumeStore.hh" #include "globals.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4GeometryManager.hh" +// *************************************************************************** +// Static class variables +// *************************************************************************** +// +G4LogicalVolumeStore* G4LogicalVolumeStore::fgInstance = 0; +G4bool G4LogicalVolumeStore::locked = false; + +// *************************************************************************** // Protected constructor: Construct underlying container with // initial size of 100 entries +// *************************************************************************** +// G4LogicalVolumeStore::G4LogicalVolumeStore() : G4std::vector() { reserve(100); } +// *************************************************************************** // Destructor +// *************************************************************************** +// G4LogicalVolumeStore::~G4LogicalVolumeStore() { - while (!empty()) - { -// delete front(); - erase(begin()); - } + Clean(); } -// Static class variable -G4LogicalVolumeStore* G4LogicalVolumeStore::fgInstance = 0; +// *************************************************************************** +// Delete all elements from the store +// *************************************************************************** +// +void G4LogicalVolumeStore::Clean() +{ + // Do nothing if geometry is closed + // + if (G4GeometryManager::GetInstance()->IsGeometryClosed()) + { + G4cout << "WARNING - Attempt to delete the logical volume store" + << " while geometry closed !" << G4endl; + return; + } + // Locks store for deletion of volumes. De-registration will be + // performed at this stage. G4LogicalVolumes will not de-register themselves. + // + locked = true; + + size_t i=0; + G4LogicalVolumeStore* store = GetInstance(); + G4std::vector::iterator pos; + +#ifdef G4GEOMETRY_VOXELDEBUG + G4cout << "Deleting Logical Volumes ... "; +#endif + + for(pos=store->begin(); pos!=store->end(); pos++) + { + if (*pos) delete *pos; i++; + } + +#ifdef G4GEOMETRY_VOXELDEBUG + if (store->size() < i-1) + { G4cout << "No volumes deleted. Already deleted by user ?" << G4endl; } + else + { G4cout << i-1 << " volumes deleted !" << G4endl; } +#endif + + locked = false; + store->clear(); +} + +// *************************************************************************** // Add volume to container +// *************************************************************************** +// void G4LogicalVolumeStore::Register(G4LogicalVolume* pVolume) { GetInstance()->push_back(pVolume); } +// *************************************************************************** // Remove volume from container +// *************************************************************************** +// void G4LogicalVolumeStore::DeRegister(G4LogicalVolume* pVolume) { - for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) + if (!locked) // Do not de-register if locked ! { - if (**i==*pVolume) + for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) { - GetInstance()->erase(i); - break; + if (**i==*pVolume) + { + GetInstance()->erase(i); + break; + } } } } +// *************************************************************************** // Return ptr to Store, setting if necessary +// *************************************************************************** +// G4LogicalVolumeStore* G4LogicalVolumeStore::GetInstance() { static G4LogicalVolumeStore worldStore; diff --git a/source/geometry/management/src/G4PVParameterised.cc b/source/geometry/management/src/G4PVParameterised.cc index 5d3a7ce2aa..5b6800ecd8 100644 --- a/source/geometry/management/src/G4PVParameterised.cc +++ b/source/geometry/management/src/G4PVParameterised.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVParameterised.cc,v 1.4 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PVParameterised diff --git a/source/geometry/management/src/G4PVPlacement.cc b/source/geometry/management/src/G4PVPlacement.cc index 0527aad777..b73cb6fde3 100644 --- a/source/geometry/management/src/G4PVPlacement.cc +++ b/source/geometry/management/src/G4PVPlacement.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVPlacement.cc,v 1.4 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PVPlacement Implementation diff --git a/source/geometry/management/src/G4PVReplica.cc b/source/geometry/management/src/G4PVReplica.cc index 794b0f5870..f17e024642 100644 --- a/source/geometry/management/src/G4PVReplica.cc +++ b/source/geometry/management/src/G4PVReplica.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVReplica.cc,v 1.3 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PVReplica.cc,v 1.4 2002/05/15 10:07:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PVReplica Implementation @@ -89,6 +89,7 @@ void G4PVReplica::CheckAndSetParameters (const EAxis pAxis, case kXAxis: case kYAxis: case kZAxis: + case kUndefined: break; default: G4Exception("G4PVReplica::G4PVReplica Unknown axis"); diff --git a/source/geometry/management/src/G4PhysicalVolumeStore.cc b/source/geometry/management/src/G4PhysicalVolumeStore.cc index cc3943704b..240c5124de 100644 --- a/source/geometry/management/src/G4PhysicalVolumeStore.cc +++ b/source/geometry/management/src/G4PhysicalVolumeStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeStore.cc,v 1.7 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PhysicalVolumeStore.cc,v 1.9 2002/04/26 16:24:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4PhysicalVolumeStore // @@ -30,51 +30,116 @@ // // History: // 25.07.95 P.Kent Initial version +// ******************************************************************** -#include "G4PhysicalVolumeStore.hh" #include "globals.hh" +#include "G4PhysicalVolumeStore.hh" +#include "G4GeometryManager.hh" +// *************************************************************************** +// Static class variables +// *************************************************************************** +// +G4PhysicalVolumeStore* G4PhysicalVolumeStore::fgInstance = 0; +G4bool G4PhysicalVolumeStore::locked = false; + +// *************************************************************************** // Protected constructor: Construct underlying container with // initial size of 100 entries +// *************************************************************************** +// G4PhysicalVolumeStore::G4PhysicalVolumeStore() : G4std::vector() { reserve(100); } +// *************************************************************************** // Destructor +// *************************************************************************** +// G4PhysicalVolumeStore::~G4PhysicalVolumeStore() { - while (!empty()) - { -// delete front(); - erase(begin()); - } + Clean(); } -// Static class variable -G4PhysicalVolumeStore* G4PhysicalVolumeStore::fgInstance = 0; +// *************************************************************************** +// Delete all elements from the store +// *************************************************************************** +// +void G4PhysicalVolumeStore::Clean() +{ + // Do nothing if geometry is closed + // + if (G4GeometryManager::GetInstance()->IsGeometryClosed()) + { + G4cout << "WARNING - Attempt to delete the physical volume store" + << " while geometry closed !" << G4endl; + return; + } + // Locks store for deletion of volumes. De-registration will be + // performed at this stage. G4VPhysicalVolumes will not de-register + // themselves. + // + locked = true; + + size_t i=0; + G4PhysicalVolumeStore* store = GetInstance(); + G4std::vector::iterator pos; + +#ifdef G4GEOMETRY_VOXELDEBUG + G4cout << "Deleting Physical Volumes ... "; +#endif + + for(pos=store->begin(); pos!=store->end(); pos++) + { + if (*pos) delete *pos; i++; + } + +#ifdef G4GEOMETRY_VOXELDEBUG + if (store->size() < i-1) + { G4cout << "No volumes deleted. Already deleted by user ?" << G4endl; } + else + { G4cout << i-1 << " volumes deleted !" << G4endl; } +#endif + + locked = false; + store->clear(); +} + +// *************************************************************************** // Add Solid to container +// *************************************************************************** +// void G4PhysicalVolumeStore::Register(G4VPhysicalVolume* pVolume) { GetInstance()->push_back(pVolume); } +// *************************************************************************** // Remove Solid from container +// *************************************************************************** +// void G4PhysicalVolumeStore::DeRegister(G4VPhysicalVolume* pVolume) { - for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) + if (!locked) // Do not de-register if locked ! { - if (**i==*pVolume) + for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) { - GetInstance()->erase(i); - break; + if (**i==*pVolume) + { + GetInstance()->erase(i); + break; + } } } } +// *************************************************************************** // Return ptr to Store, setting if necessary +// *************************************************************************** +// G4PhysicalVolumeStore* G4PhysicalVolumeStore::GetInstance() { static G4PhysicalVolumeStore worldStore; @@ -84,5 +149,3 @@ G4PhysicalVolumeStore* G4PhysicalVolumeStore::GetInstance() } return fgInstance; } - - diff --git a/source/geometry/management/src/G4SmartVoxelHeader.cc b/source/geometry/management/src/G4SmartVoxelHeader.cc index ea62565fc4..fd5be0d3f0 100644 --- a/source/geometry/management/src/G4SmartVoxelHeader.cc +++ b/source/geometry/management/src/G4SmartVoxelHeader.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelHeader.cc,v 1.13 2001/11/23 16:22:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SmartVoxelHeader.cc,v 1.20 2002/05/17 17:59:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4SmartVoxelHeader @@ -32,11 +32,13 @@ // Define G4GEOMETRY_VOXELDEBUG for debugging information on G4cout // // History: +// 29.04.02 Use 3D voxelisation for non consuming replication - G.C. // 18.04.01 Migrated to STL vector - G.C. // 12.02.99 Introduction of new quality/smartless: max for (slices/candid) S.G. // 11.02.99 Voxels at lower levels are now built for collapsed slices S.G. // 21.07.95 Full implementation, supporting non divided physical volumes // 14.07.95 Initial version - stubb definitions only +// *************************************************************************** #include "G4SmartVoxelHeader.hh" @@ -48,1181 +50,1270 @@ #include "G4VSolid.hh" #include "G4VPVParameterisation.hh" +// *************************************************************************** // Constructor for topmost header, to begin voxel construction at a -// given logical volume -// -// Process: -// +// given logical volume. // Constructs target List of volumes, calls "Build and refine" constructor. // Assumes all daughters represent single volumes (ie. no divisions // or parametric) - +// *************************************************************************** +// G4SmartVoxelHeader::G4SmartVoxelHeader(G4LogicalVolume* pVolume, - G4int pSlice) : - fminEquivalent(pSlice), - fmaxEquivalent(pSlice) + G4int pSlice) + : fminEquivalent(pSlice), + fmaxEquivalent(pSlice), + fparamAxis(kUndefined) { - G4int nDaughters; - G4VoxelLimits limits; // Create `unlimited' limits object - nDaughters=pVolume->GetNoDaughters(); + G4int nDaughters = pVolume->GetNoDaughters(); + G4VoxelLimits limits; // Create `unlimited' limits object -// Determine whether daughter is replicated - if (nDaughters!=1||!pVolume->GetDaughter(0)->IsReplicated()) - { -// Daughter not replicated => conventional voxel Build -// where each daughters extents are computed - BuildVoxels(pVolume); - } - else - { -// Single replicated daughter - BuildReplicaVoxels(pVolume); - } + // Determine whether daughter is replicated + // + if ((nDaughters!=1) || (!pVolume->GetDaughter(0)->IsReplicated())) + { + // Daughter not replicated => conventional voxel Build + // where each daughters extents are computed + // + BuildVoxels(pVolume); + } + else + { + // Single replicated daughter + // + BuildReplicaVoxels(pVolume); + } } +// *************************************************************************** +// Protected constructor: +// builds and refines voxels between specified limits, considering only +// the physical volumes numbered `pCandidates'. `pSlice' is used to set max +// and min equivalent slice nos for the header - they apply to the level +// of the header, not its nodes. +// *************************************************************************** +// G4SmartVoxelHeader::G4SmartVoxelHeader(G4LogicalVolume* pVolume, - const G4VoxelLimits& pLimits, - const G4VolumeNosVector* pCandidates, - G4int pSlice) : - fminEquivalent(pSlice), - fmaxEquivalent(pSlice) - + const G4VoxelLimits& pLimits, + const G4VolumeNosVector* pCandidates, + G4int pSlice) + : fminEquivalent(pSlice), + fmaxEquivalent(pSlice), + fparamAxis(kUndefined) { #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4SmartVoxelHeader::G4SmartVoxelHeader" << G4endl + G4cout << "**** G4SmartVoxelHeader::G4SmartVoxelHeader" << G4endl << " Limits " << pLimits << G4endl << " Candidate #s = " ; - for (G4int i=0;isize();i++) - { - G4cout << (*pCandidates)[i] << " "; - } - G4cout << G4endl; + for (size_t i=0;isize();i++) + { + G4cout << (*pCandidates)[i] << " "; + } + G4cout << G4endl; #endif - BuildVoxelsWithinLimits(pVolume,pLimits,pCandidates); + + BuildVoxelsWithinLimits(pVolume,pLimits,pCandidates); } -// Return true if contents are equivalent. Implies -// a deep search through contained nodes/header +// *************************************************************************** +// Destructor: +// deletes all proxies and underlying objects. +// *************************************************************************** // -// Process: -// -// Compare headers' axes,sizes,extents. Return false if different -// For each contained proxy, determine whether node/header, compare and return -// if different. Compare and return if proxied nodes/headers are different - -G4bool G4SmartVoxelHeader::operator == (const G4SmartVoxelHeader& pHead) const -{ - if (GetAxis()==pHead.GetAxis() - &&GetNoSlices()==pHead.GetNoSlices() - &&GetMinExtent()==pHead.GetMinExtent() - &&GetMaxExtent()==pHead.GetMaxExtent()) - { - G4int node,maxNode; - G4SmartVoxelProxy *leftProxy,*rightProxy; - G4SmartVoxelHeader *leftHeader,*rightHeader; - G4SmartVoxelNode *leftNode,*rightNode; - maxNode=GetNoSlices(); - for (node=0;nodeIsHeader()) - { - if (rightProxy->IsNode()) - { - return false; - } - else - { - leftHeader=leftProxy->GetHeader(); - rightHeader=rightProxy->GetHeader(); - if (!(*leftHeader==*rightHeader)) - { - return false; - } - } - } - else - { - if (rightProxy->IsHeader()) - { - return false; - } - else - { - leftNode=leftProxy->GetNode(); - rightNode=rightProxy->GetNode(); - if (!(*leftNode==*rightNode)) - { - return false; - } - } - } - } - return true; - } - else - { - return false; - } -} - - -// Build voxels for daughters specified volume, in NON-REPLICATED case -// o Create List of target volume nos (all daughters; 0->noDaughters-1) -// o BuildWithinLimits does Build & also determines mother dimensions -void G4SmartVoxelHeader::BuildVoxels(G4LogicalVolume* pVolume) -{ - G4VoxelLimits limits; // Create `unlimited' limits object - G4int nDaughters=pVolume->GetNoDaughters(); - - G4VolumeNosVector targetList; - targetList.reserve(nDaughters); - for (G4int i=0;iGetNoDaughters()==1&& - pVolume->GetDaughter(0)->IsReplicated()==true) - { -// Obtain replication data - pDaughter=pVolume->GetDaughter(0); - pDaughter->GetReplicationData(axis,nReplicas,width,offset,consuming); - if (consuming==false) - { - G4VoxelLimits limits; // Create `unlimited' limits object - G4VolumeNosVector targetList; - targetList.reserve(nReplicas); - for (G4int i=0;iGetSolid()->CalculateExtent(faxis,limits, - origin, - fminExtent,fmaxExtent); -// Calculate equivalent nos - BuildEquivalentSliceNos(); - CollectEquivalentNodes(); // Collect common nodes - - } - else - { -// Replication is consuming -> Build voxels directly -// -// o Cartesian axes - range is -width*nREplicas/2 to +width*nREplicas/2 -// nReplicas replications result -// o Radial axis (rho) = range is 0 to width*nReplicas -// nReplicas replications result -// o Phi axi - range is offset to offset+width*nReplicas radians -// -// Equivalent slices no computation & collection not required - all -// slices are different - switch (axis) - { - case kXAxis: - case kYAxis: - case kZAxis: - fminExtent=-width*nReplicas*0.5; - fmaxExtent=width*nReplicas*0.5; - break; - case kRho: - fminExtent=offset; - fmaxExtent=width*nReplicas+offset; - break; - case kPhi: - fminExtent=offset; - fmaxExtent=offset+width*nReplicas; - break; - default: - G4Exception("G4SmartVoxelHeader::BuildReplicaVoxels logical error - illegal axis"); - break; - } - faxis=axis; // Set axis - BuildConsumedNodes(nReplicas); - if (axis==kXAxis||axis==kYAxis||axis==kZAxis) - { - // Sanity check on extent - G4double min,max; - G4VoxelLimits limits; - G4AffineTransform origin; - pVolume->GetSolid()->CalculateExtent(axis,limits, - origin, - min,max); - if (fabs((min-fminExtent)/fminExtent) + - fabs((max-fmaxExtent)/fmaxExtent)>0.05) - { - G4Exception(G4String("G4SmartVoxelHeader::BuildReplicaVoxels probable error in replicated geometry, logical volume ")+pVolume->GetName()); - } - } - } - } - else - { - G4Exception("Illegal call of G4SmartVoxelHeader::BuildReplicaVoxels must have single replicated volume"); - } - -} - -// Build `consumed nodes': nReplicas nodes each containing one -// replication, numbered in sequence 0->nReplicas-1 -// -// o Modifies fslices `in place' -// o faxis,fminExtent,fmaxExtent NOT modified -void G4SmartVoxelHeader::BuildConsumedNodes(G4int nReplicas) -{ - G4int nNode,nVol; - G4SmartVoxelNode *pNode; - G4SmartVoxelProxy *pProxyNode; -// Create and fill nodes in temporary G4NodeVector (on stack) - G4NodeVector nodeList; - nodeList.reserve(nReplicas); - for (nNode=0;nNodeInsert(nVol); // Insert replication of number - // identical to voxel number - } - -// Create & fill proxy List `in place' by modifying instance data fslices - fslices.clear(); - for (nNode=0;nNodesize(); - for (node=0;nodeGetNode(); - } - // Destroy pTestSlices and all its contents - G4SmartVoxelProxy* tmpProx; - while (pTestSlices->size()>0) - { - tmpProx = pTestSlices->back(); - pTestSlices->pop_back(); - for (G4ProxyVector::iterator - i=pTestSlices->begin(); - i!=pTestSlices->end(); i++) - { - if (*i==tmpProx) - { - pTestSlices->erase(i); - i--; - } - } - if ( tmpProx ) delete tmpProx; - } - delete pTestSlices; - } - } - } - - -// Check for error case.. when limits already 3d, so cannot select -// a new axis - if (!pGoodSlices) - { - G4Exception("G4SmartVoxelHeader - Illegal limits: Already 3 dimensions of limits"); - } -// -// We have selected pGoodSlices, with a score testSliceScore -// - -// Store chosen axis, slice ptr - - fslices=*pGoodSlices; // Set slice information, copy ptrs in - // collection - delete pGoodSlices; // Destroy slices vector, but not contained - // proxies or nodes - faxis=goodSliceAxis; - -#ifdef G4GEOMETRY_VOXELDEBUG - G4cout << G4endl << " Selected axis = " << faxis << G4endl; - G4int islice; - for (islice=0;isliceGetNode()->GetNoContained();j++) - { G4cout << " " << fslices(islice)->GetNode()->GetVolume(j); } - G4cout << " }" << G4endl; - } - G4cout << G4endl; -#endif - -// Calculate and set min and max extents given our axis - G4VSolid* outerSolid=pVolume->GetSolid(); - const G4AffineTransform origin; - if(!outerSolid->CalculateExtent(faxis,pLimits,origin,fminExtent,fmaxExtent)){ - outerSolid->CalculateExtent(faxis,noLimits,origin,fminExtent,fmaxExtent); - }; - -// Calculate equivalent nos - BuildEquivalentSliceNos(); - CollectEquivalentNodes(); // Collect common nodes - RefineNodes(pVolume,pLimits); // Refine nodes creating headers -// No common headers can exist because collapsed by construction -} - -// Destructor - Delete all proxies and underlying objects G4SmartVoxelHeader::~G4SmartVoxelHeader() { -// Manually destroy underlying nodes/headers -// Delete collected headers and nodes once only - G4int node,proxy,maxNode; - G4SmartVoxelProxy *lastProxy=0; - G4SmartVoxelNode *dyingNode,*lastNode=0; - G4SmartVoxelHeader *dyingHeader,*lastHeader=0; - maxNode=fslices.size(); - for (node=0;nodeIsHeader()) - { - dyingHeader=fslices[node]->GetHeader(); - if (lastHeader!=dyingHeader) - { - lastHeader=dyingHeader; - lastNode=0; - delete dyingHeader; - } - } - else - { - dyingNode=fslices[node]->GetNode(); - if (dyingNode!=lastNode) - { - lastNode=dyingNode; - lastHeader=0; - delete dyingNode; - } - } - } + // Manually destroy underlying nodes/headers + // Delete collected headers and nodes once only + // + G4int node, proxy, maxNode=fslices.size(); + G4SmartVoxelProxy *lastProxy=0; + G4SmartVoxelNode *dyingNode, *lastNode=0; + G4SmartVoxelHeader *dyingHeader, *lastHeader=0; -// Delete proxies - for (proxy=0;proxyIsHeader()) + { + dyingHeader = fslices[node]->GetHeader(); + if (lastHeader!=dyingHeader) + { + lastHeader = dyingHeader; + lastNode = 0; + delete dyingHeader; + } + } + else + { + dyingNode = fslices[node]->GetNode(); + if (dyingNode!=lastNode) + { + lastNode=dyingNode; + lastHeader=0; + delete dyingNode; + } + } + } + // Delete proxies + // + for (proxy=0; proxyIsHeader()) + { + if (rightProxy->IsNode()) + { + return false; + } + else + { + leftHeader = leftProxy->GetHeader(); + rightHeader = rightProxy->GetHeader(); + if (!(*leftHeader==*rightHeader)) + { + return false; + } + } + } + else + { + if (rightProxy->IsHeader()) + { + return false; + } + else + { + leftNode = leftProxy->GetNode(); + rightNode = rightProxy->GetNode(); + if (!(*leftNode==*rightNode)) + { + return false; + } + } + } + } + return true; + } + else + { + return false; + } +} + +// *************************************************************************** +// Builds voxels for daughters specified volume, in NON-REPLICATED case +// o Create List of target volume nos (all daughters; 0->noDaughters-1) +// o BuildWithinLimits does Build & also determines mother dimensions. +// *************************************************************************** +// +void G4SmartVoxelHeader::BuildVoxels(G4LogicalVolume* pVolume) +{ + G4VoxelLimits limits; // Create `unlimited' limits object + G4int nDaughters = pVolume->GetNoDaughters(); + + G4VolumeNosVector targetList; + targetList.reserve(nDaughters); + for (G4int i=0; iGetNoDaughters()==1) + && (pVolume->GetDaughter(0)->IsReplicated()==true) ) + { + // Obtain replication data + // + pDaughter=pVolume->GetDaughter(0); + pDaughter->GetReplicationData(axis,nReplicas,width,offset,consuming); + fparamAxis = axis; + if ( consuming==false ) + { + G4VoxelLimits limits; // Create `unlimited' limits object + G4VolumeNosVector targetList; + targetList.reserve(nReplicas); + for (G4int i=0; iGetSolid()->CalculateExtent(faxis, limits, origin, + fminExtent, fmaxExtent); + // Calculate equivalent nos + // + BuildEquivalentSliceNos(); + CollectEquivalentNodes(); // Collect common nodes + } + else + { + // Build voxels similarly as for normal placements considering + // all three cartesian axes. + + BuildVoxelsWithinLimits(pVolume, limits, &targetList); + } + } + else + { + // Replication is consuming -> Build voxels directly + // + // o Cartesian axes - range is -width*nREplicas/2 to +width*nREplicas/2 + // nReplicas replications result + // o Radial axis (rho) = range is 0 to width*nReplicas + // nReplicas replications result + // o Phi axi - range is offset to offset+width*nReplicas radians + // + // Equivalent slices no computation & collection not required - all + // slices are different + // + switch (axis) + { + case kXAxis: + case kYAxis: + case kZAxis: + fminExtent = -width*nReplicas*0.5; + fmaxExtent = width*nReplicas*0.5; + break; + case kRho: + fminExtent = offset; + fmaxExtent = width*nReplicas+offset; + break; + case kPhi: + fminExtent = offset; + fmaxExtent = offset+width*nReplicas; + break; + default: + G4cout << "ERROR - Illegal axis !" << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildReplicaVoxels"); + break; + } + faxis = axis; // Set axis + BuildConsumedNodes(nReplicas); + if ( (axis==kXAxis) || (axis==kYAxis) || (axis==kZAxis) ) + { + // Sanity check on extent + // + G4double min, max; + G4VoxelLimits limits; + G4AffineTransform origin; + pVolume->GetSolid()->CalculateExtent(axis, limits, origin, min, max); + if ( (fabs((min-fminExtent)/fminExtent) + + fabs((max-fmaxExtent)/fmaxExtent)) > 0.05) + { + G4cout << "ERROR - Replicated geometry, logical volume: " + << pVolume->GetName() << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildReplicaVoxels"); + } + } + } + } + else + { + G4cout << "ERROR - There must be a single replicated volume !" << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildReplicaVoxels"); + } +} + +// *************************************************************************** +// Builds `consumed nodes': nReplicas nodes each containing one replication, +// numbered in sequence 0->nReplicas-1 +// o Modifies fslices `in place' +// o faxis,fminExtent,fmaxExtent NOT modified. +// *************************************************************************** +// +void G4SmartVoxelHeader::BuildConsumedNodes(G4int nReplicas) +{ + G4int nNode, nVol; + G4SmartVoxelNode *pNode; + G4SmartVoxelProxy *pProxyNode; + + // Create and fill nodes in temporary G4NodeVector (on stack) + // + G4NodeVector nodeList; + nodeList.reserve(nReplicas); + for (nNode=0; nNodeInsert(nVol); // Insert replication of number + } // identical to voxel number + + // Create & fill proxy List `in place' by modifying instance data fslices + // + fslices.clear(); + for (nNode=0; nNodesize(); + for (node=0; nodeGetNode(); + } + G4SmartVoxelProxy* tmpProx; + while (pTestSlices->size()>0) + { + tmpProx = pTestSlices->back(); + pTestSlices->pop_back(); + for (G4ProxyVector::iterator i=pTestSlices->begin(); + i!=pTestSlices->end(); i++) + { + if (*i==tmpProx) + { + pTestSlices->erase(i); i--; + } + } + if ( tmpProx ) { delete tmpProx; } + } + delete pTestSlices; + } + } + } + // Check for error case.. when limits already 3d, + // so cannot select a new axis + // + if (!pGoodSlices) + { + G4cout << "ERROR - Illegal limits: already 3 dimensions of limits !" << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildVoxelsWithinLimits"); + } + + // + // We have selected pGoodSlices, with a score testSliceScore + // + + // Store chosen axis, slice ptr + // + fslices=*pGoodSlices; // Set slice information, copy ptrs in collection + delete pGoodSlices; // Destroy slices vector, but not contained + // proxies or nodes + faxis=goodSliceAxis; + +#ifdef G4GEOMETRY_VOXELDEBUG + G4cout << G4endl << " Selected axis = " << faxis << G4endl; + for (size_t islice=0; isliceGetNode()->GetNoContained(); j++) + { + G4cout << " " << fslices[islice]->GetNode()->GetVolume(j); + } + G4cout << " }" << G4endl; + } + G4cout << G4endl; +#endif + + // Calculate and set min and max extents given our axis + // + G4VSolid* outerSolid = pVolume->GetSolid(); + const G4AffineTransform origin; + if(!outerSolid->CalculateExtent(faxis,pLimits,origin,fminExtent,fmaxExtent)) + { + outerSolid->CalculateExtent(faxis,noLimits,origin,fminExtent,fmaxExtent); + } + + // Calculate equivalent nos + // + BuildEquivalentSliceNos(); + CollectEquivalentNodes(); // Collect common nodes + RefineNodes(pVolume,pLimits); // Refine nodes creating headers + + // No common headers can exist because collapsed by construction +} + +// *************************************************************************** +// Calculates and stores the minimum and maximum equivalent neighbour // values for all slices at our level. // -// Precondition: +// Precondition: all slices are nodes. +// For each potential start of a group of equivalent nodes: +// o searches forwards in fslices to find group end +// o loops from start to end setting start and end slices. +// *************************************************************************** // -// All slices are nodes -// -// Process: -// -// For each potential start of a group of equivalent nodes -// Search forwards in fslices to find group end -// Loop from start to end setting start and end slices - void G4SmartVoxelHeader::BuildEquivalentSliceNos() { - G4int sliceNo,minNo,maxNo,equivNo; - G4int maxNode=fslices.size(); - G4SmartVoxelNode *startNode,*sampleNode; - for (sliceNo=0;sliceNoGetNode(); + G4int sliceNo, minNo, maxNo, equivNo; + G4int maxNode = fslices.size(); + G4SmartVoxelNode *startNode, *sampleNode; + for (sliceNo=0; sliceNoGetNode(); - if (!(*startNode==*sampleNode)) - { - break; - } - } + // Get first node (see preconditions - will throw exception if a header) + // + startNode = fslices[minNo]->GetNode(); - maxNo=equivNo-1; - if (maxNo!=minNo) - { -// Set min and max nos - for (equivNo=minNo;equivNo<=maxNo;equivNo++) - { - sampleNode=fslices[equivNo]->GetNode(); - sampleNode->SetMinEquivalentSliceNo(minNo); - sampleNode->SetMaxEquivalentSliceNo(maxNo); - } - -// Advance outer loop to end of equivalent group - sliceNo=maxNo; - } - - } + // Find max equivalent + // + for (equivNo=minNo+1; equivNoGetNode(); + if (!((*startNode) == (*sampleNode))) { break; } + } + maxNo = equivNo-1; + if (maxNo != minNo) + { + // Set min and max nos + // + for (equivNo=minNo; equivNo<=maxNo; equivNo++) + { + sampleNode = fslices[equivNo]->GetNode(); + sampleNode->SetMinEquivalentSliceNo(minNo); + sampleNode->SetMaxEquivalentSliceNo(maxNo); + } + // Advance outer loop to end of equivalent group + // + sliceNo = maxNo; + } + } } -// Collect common nodes at our level, deleting all but one to save -// memory, and adjusting stored slice ptrs appropriately. +// *************************************************************************** +// Collects common nodes at our level, deleting all but one to save +// memory, and adjusting stored slice pointers appropriately. // // Preconditions: +// o the slices have not previously be "collected" +// o all of the slices are nodes. +// *************************************************************************** // -// The slices have not previously be "collected" -// -// All of the slices are nodes - void G4SmartVoxelHeader::CollectEquivalentNodes() { - G4int sliceNo,maxNo,equivNo; - G4int maxNode=fslices.size(); - G4SmartVoxelNode *equivNode; - G4SmartVoxelProxy *equivProxy; - for (sliceNo=0;sliceNoGetNode(); - maxNo=equivNode->GetMaxEquivalentSliceNo(); - if (maxNo!=sliceNo) - { -// Do collection between sliceNo and maxNo inclusive + G4int sliceNo, maxNo, equivNo; + G4int maxNode=fslices.size(); + G4SmartVoxelNode *equivNode; + G4SmartVoxelProxy *equivProxy; + + for (sliceNo=0; sliceNoGetNode(); + maxNo = equivNode->GetMaxEquivalentSliceNo(); + if (maxNo != sliceNo) + { #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4SmartVoxelHeader::CollectEquivalentNodes" << G4endl - << " Collecting Nodes = " - << sliceNo << " - " << maxNo << G4endl; + G4cout << "**** G4SmartVoxelHeader::CollectEquivalentNodes" << G4endl + << " Collecting Nodes = " + << sliceNo << " - " << maxNo << G4endl; #endif - for (equivNo=sliceNo+1;equivNo<=maxNo;equivNo++) - { - delete fslices[equivNo]->GetNode(); - delete fslices[equivNo]; - fslices[equivNo]=equivProxy; - } - sliceNo=maxNo; - } - } + // Do collection between sliceNo and maxNo inclusive + // + for (equivNo=sliceNo+1; equivNo<=maxNo; equivNo++) + { + delete fslices[equivNo]->GetNode(); + delete fslices[equivNo]; + fslices[equivNo] = equivProxy; + } + sliceNo = maxNo; + } + } } -// Collect common headerss at our level, deleting all but one to save -// memory, and adjusting stored slice ptrs appropriately. +// *************************************************************************** +// Collects common headers at our level, deleting all but one to save +// memory, and adjusting stored slice pointers appropriately. // // Preconditions: +// o if a header forms part of a range of equivalent slices +// (ie. GetMaxEquivalentSliceNo()>GetMinEquivalentSliceNo()), +// it is assumed that all slices in the range are headers. +// o this will be true if a constant Expression is used to evaluate +// when to refine nodes. +// *************************************************************************** // -// If a header form part of a range of equivalent slices - ie. -// GetMaxEquivalentSliceNo()>GetMinEquivalentSliceNo(), it is assumed -// that all slices in the range are headers. -// -// This will be true if a constant Expression is used to evaluate -// when to refine nodes. void G4SmartVoxelHeader::CollectEquivalentHeaders() { - G4int sliceNo,maxNo,equivNo; - G4int maxNode=fslices.size(); - G4SmartVoxelHeader *equivHeader,*sampleHeader; - G4SmartVoxelProxy *equivProxy; - for (sliceNo=0;sliceNoIsHeader()) - { - equivHeader=equivProxy->GetHeader(); - maxNo=equivHeader->GetMaxEquivalentSliceNo(); - if (maxNo!=sliceNo) - { -// Attempt collection between sliceNo and maxNo inclusive: look for common -// headers. All slices between sliceNo and maxNo are guaranteed to be headers -// but may not have equal contents + G4int sliceNo, maxNo, equivNo; + G4int maxNode = fslices.size(); + G4SmartVoxelHeader *equivHeader, *sampleHeader; + G4SmartVoxelProxy *equivProxy; + for (sliceNo=0; sliceNoIsHeader()) + { + equivHeader = equivProxy->GetHeader(); + maxNo = equivHeader->GetMaxEquivalentSliceNo(); + if (maxNo != sliceNo) + { + // Attempt collection between sliceNo and maxNo inclusive: + // look for common headers. All slices between sliceNo and maxNo + // are guaranteed to be headers but may not have equal contents + // #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4SmartVoxelHeader::CollectEquivalentHeaders" << G4endl - << " Collecting Headers ="; + G4cout << "**** G4SmartVoxelHeader::CollectEquivalentHeaders" << G4endl + << " Collecting Headers ="; #endif - for (equivNo=sliceNo+1;equivNo<=maxNo;equivNo++) - { - - sampleHeader=fslices[equivNo]->GetHeader(); - if (*sampleHeader==*equivHeader) - { -// Dlete sampleHeader + proxy and replace with equivHeader/Proxy + for (equivNo=sliceNo+1; equivNo<=maxNo; equivNo++) + { + sampleHeader = fslices[equivNo]->GetHeader(); + if ( (*sampleHeader) == (*equivHeader) ) + { #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << " " << equivNo; + G4cout << " " << equivNo; #endif + // Delete sampleHeader + proxy and replace with equivHeader/Proxy + // + delete sampleHeader; + delete fslices[equivNo]; + fslices[equivNo] = equivProxy; + } + else + { + // Not equal. Set this header to be + // the current header for comparisons + // + equivProxy = fslices[equivNo]; + equivHeader = equivProxy->GetHeader(); + } - delete sampleHeader; - delete fslices[equivNo]; - fslices[equivNo]=equivProxy; - } - else - { -// Not equal. Set this header to be the current header for comparisons - equivProxy=fslices[equivNo]; - equivHeader=equivProxy->GetHeader(); - } - - } + } #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << G4endl; + G4cout << G4endl; #endif - -// Skip past examined slices - sliceNo=maxNo; - } - } - } + // Skip past examined slices + // + sliceNo = maxNo; + } + } + } } -// Build the nodes corresponding to slices between the specified limits +// *************************************************************************** +// Builds the nodes corresponding to slices between the specified limits // and along the specified axis, using candidate volume no.s in the vector // pCandidates. If the `daughters' are replicated volumes (ie. the logical // volume has a single replicated/parameterised volume for a daughter) // the candidate no.s are interpreted as PARAMETERISED volume no.s & // PARAMETERISATIONs are applied to compute transformations & solid -// dimensions appropriately. The volume must be parameterised - ie. -// has a parameterisation object & non-consuming) - in this case. +// dimensions appropriately. The volume must be parameterised - ie. has a +// parameterisation object & non-consuming) - in this case. // -// Return ptr to built node "structure" (guaranteed non null) -// consisting of G4SmartVoxelNodeProxies refering to G4SmartVoxelNodes - +// Returns pointer to built node "structure" (guaranteed non NULL) consisting +// of G4SmartVoxelNodeProxies referring to G4SmartVoxelNodes. +// *************************************************************************** +// G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, - G4VoxelLimits pLimits, - const G4VolumeNosVector* pCandidates, - EAxis pAxis) + G4VoxelLimits pLimits, + const G4VolumeNosVector* pCandidates, + EAxis pAxis) { - G4double motherMinExtent,motherMaxExtent,targetMinExtent,targetMaxExtent; - G4VPhysicalVolume *pDaughter=0; - G4VPVParameterisation *pParam=0; - G4VSolid *targetSolid; - G4AffineTransform targetTransform; - G4bool replicated; - G4int nCandidates; - G4int nVol,nNode,targetVolNo; - G4VoxelLimits noLimits; + G4double motherMinExtent, motherMaxExtent, targetMinExtent, targetMaxExtent; + G4VPhysicalVolume *pDaughter=0; + G4VPVParameterisation *pParam=0; + G4VSolid *targetSolid; + G4AffineTransform targetTransform; + G4bool replicated; + G4int nCandidates = pCandidates->size(); + G4int nVol, nNode, targetVolNo; + G4VoxelLimits noLimits; - nCandidates=pCandidates->size(); #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4SmartVoxelHeader::BuildNodes" << G4endl - << " Limits = " << pLimits << G4endl - << " Axis = " << pAxis - << " Candidates = " << nCandidates << G4endl; + G4cout << "**** G4SmartVoxelHeader::BuildNodes" << G4endl + << " Limits = " << pLimits << G4endl + << " Axis = " << pAxis << G4endl + << " Candidates = " << nCandidates << G4endl; #endif -// Compute extent of logical volume's solid along this axis -// NOTE: results stored locally and not preserved/reused - G4VSolid* outerSolid=pVolume->GetSolid(); - const G4AffineTransform origin; - if(!outerSolid->CalculateExtent(pAxis,pLimits,origin,motherMinExtent,motherMaxExtent)){ - outerSolid->CalculateExtent(pAxis,noLimits,origin,motherMinExtent,motherMaxExtent); - }; + // Compute extent of logical volume's solid along this axis + // NOTE: results stored locally and not preserved/reused + // + G4VSolid* outerSolid = pVolume->GetSolid(); + const G4AffineTransform origin; + if( !outerSolid->CalculateExtent(pAxis, pLimits, origin, + motherMinExtent, motherMaxExtent) ) + { + outerSolid->CalculateExtent(pAxis, noLimits, origin, + motherMinExtent, motherMaxExtent); + } + G4VolumeExtentVector minExtents(nCandidates,0.); + G4VolumeExtentVector maxExtents(nCandidates,0.); - G4VolumeExtentVector minExtents(nCandidates,0.); - G4VolumeExtentVector maxExtents(nCandidates,0.); - - if (pVolume->GetNoDaughters()==1 && - pVolume->GetDaughter(0)->IsReplicated()==true) - { -// Replication data not required: only parameterisation object -// and volume no. List used - pDaughter=pVolume->GetDaughter(0); - pParam=pDaughter->GetParameterisation(); - if (!pParam) - { - G4Exception("G4SmartVoxelHeader::BuildNodes - PANIC: Found replicated volume with no paramterisation object"); - } - -// Setup volume, preserving current mother link - pDaughter->Setup(pDaughter->GetMother()); - // targetSolid=pDaughter->GetLogicalVolume()->GetSolid(); - targetTransform=G4AffineTransform(pDaughter->GetRotation(), - pDaughter->GetTranslation()); - replicated=true; - } - else - { - replicated=false; - } - - -// Compute extents - for (nVol=0;nVolGetDaughter(targetVolNo); -// Setup volume, preserving current mother link - pDaughter->Setup(pDaughter->GetMother()); - - - targetTransform=G4AffineTransform(pDaughter->GetRotation(), - pDaughter->GetTranslation()); -// Get underlying (and setup) solid - targetSolid=pDaughter->GetLogicalVolume()->GetSolid(); - } - else - { -// Find solid - targetSolid=pParam->ComputeSolid(targetVolNo,pDaughter); -// Setup solid - targetSolid->ComputeDimensions(pParam,targetVolNo,pDaughter); -// Setup transform - pParam->ComputeTransformation(targetVolNo,pDaughter); - targetTransform=G4AffineTransform(pDaughter->GetRotation(), - pDaughter->GetTranslation()); - - } - -// Calc extents - if(!targetSolid->CalculateExtent(pAxis,pLimits,targetTransform,targetMinExtent,targetMaxExtent)){ - targetSolid->CalculateExtent(pAxis,noLimits,targetTransform,targetMinExtent,targetMaxExtent); - }; - minExtents[nVol]=targetMinExtent; - maxExtents[nVol]=targetMaxExtent; -// Check not entirely outside mother when processing toplevel nodes - if (!pLimits.IsLimited()&&((targetMaxExtent<=motherMinExtent)||(targetMinExtent>=motherMaxExtent))) - { - G4String error("G4SmartVoxelHeader::BuildNodes - PANIC! Daughter physical volume name = "); - error+=G4String(pDaughter->GetName()); - error+=G4String(" is entirely outside mother logical volume name = "); - error+=G4String(pVolume->GetName()); - G4Exception(error); - } -#ifdef G4GEOMETRY_VOXELDEBUG -// Check for straddling volumes when debugging -// If a volume is >kStraddlePercent percent over the mother boundary -// Print a warning - if (!pLimits.IsLimited()) - { - G4double width; - const G4int kStraddlePercent=5; - width=maxExtents[nVol]-minExtents[nVol]; - if (((motherMinExtent-minExtents[nVol])*100/width>kStraddlePercent) - ||((maxExtents[nVol]-motherMaxExtent)*100/width>kStraddlePercent)) - { - G4cout << "**** G4SmartVoxelHeader::BuildNodes" << G4endl - << " WARNING : Daughter # " << nVol - << " Name = " << pDaughter->GetName() << G4endl - << " Crosses mother boundary of logical volume Name = " - << pVolume->GetName() << G4endl - << " by more than " << kStraddlePercent - << "%" << G4endl; - } - } -#endif - } - -// Extents of all daughters known - -// Calculate minimum slice width, only including volumes inside the limits - G4double minWidth=kInfinity; - G4double currentWidth; - for (nVol=0;nVol=pLimits.GetMinExtent(pAxis)&& - minExtents[nVol]<=pLimits.GetMaxExtent(pAxis)) - { - minWidth=currentWidth; - } - } - -// -// No. of Nodes formula - nearest integer to -// -// mother width/half min daughter width +1 - G4double noNodesExactD=((motherMaxExtent-motherMinExtent)*2.0/minWidth)+1.0; - -// Compare with "smartless quality", i.e. the average number of slices used per -// contained volume: - -G4double smartlessComputed = noNodesExactD / nCandidates; - -G4double smartlessUser = pVolume->GetSmartless(); - -G4double smartless = (smartlessComputed <= smartlessUser) ? - smartlessComputed : smartlessUser ; - -G4double noNodesSmart = smartless * nCandidates; - -G4int noNodesExactI = G4int(noNodesSmart); - -G4int noNodes = ((noNodesSmart-noNodesExactI)>=0.5) ? - noNodesExactI + 1 : noNodesExactI ; -// -// - if( noNodes == 0 ){ - noNodes = 1; + if ( (pVolume->GetNoDaughters()==1) + && (pVolume->GetDaughter(0)->IsReplicated()==true) ) + { + // Replication data not required: only parameterisation object + // and volume no. List used + // + pDaughter = pVolume->GetDaughter(0); + pParam = pDaughter->GetParameterisation(); + if (!pParam) + { + G4cout << "PANIC! Replicated volume with no parameterisation object !" + << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); } + + // Setup volume, preserving current mother link + // + pDaughter->Setup(pDaughter->GetMother()); + targetTransform = G4AffineTransform(pDaughter->GetRotation(), + pDaughter->GetTranslation()); + replicated = true; + } + else + { + replicated = false; + } + + // Compute extents + // + for (nVol=0; nVolGetDaughter(targetVolNo); + + // Setup volume, preserving current mother link + // + pDaughter->Setup(pDaughter->GetMother()); + targetTransform = G4AffineTransform(pDaughter->GetRotation(), + pDaughter->GetTranslation()); + // Get underlying (and setup) solid + // + targetSolid = pDaughter->GetLogicalVolume()->GetSolid(); + } + else + { + // Find solid + // + targetSolid = pParam->ComputeSolid(targetVolNo,pDaughter); + + // Setup solid + // + targetSolid->ComputeDimensions(pParam,targetVolNo,pDaughter); + + // Setup transform + // + pParam->ComputeTransformation(targetVolNo,pDaughter); + targetTransform = G4AffineTransform(pDaughter->GetRotation(), + pDaughter->GetTranslation()); + } + // Calculate extents + // + if(!targetSolid->CalculateExtent(pAxis, pLimits, targetTransform, + targetMinExtent, targetMaxExtent)) + { + targetSolid->CalculateExtent(pAxis, noLimits, targetTransform, + targetMinExtent,targetMaxExtent); + } + minExtents[nVol] = targetMinExtent; + maxExtents[nVol] = targetMaxExtent; + + // Check not entirely outside mother when processing toplevel nodes + // + if ( (!pLimits.IsLimited()) && ((targetMaxExtent<=motherMinExtent) + ||(targetMinExtent>=motherMaxExtent)) ) + { + G4cout << "PANIC! Daughter physical volume " + << pDaughter->GetName() << G4endl + << "is entirely outside mother logical volume " + << pVolume->GetName() << " !!" << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + } + #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << " Min width = " << minWidth - << " => # Nodes = " << noNodes << G4endl; -#endif - if (noNodes>kMaxVoxelNodes) - { - noNodes=kMaxVoxelNodes; + // Check for straddling volumes when debugging. + // If a volume is >kStraddlePercent percent over the mother + // boundary, print a warning. + // + if (!pLimits.IsLimited()) + { + G4double width; + G4int kStraddlePercent=5; + width = maxExtents[nVol]-minExtents[nVol]; + if ( (((motherMinExtent-minExtents[nVol])*100/width) > kStraddlePercent) + ||(((maxExtents[nVol]-motherMaxExtent)*100/width) > kStraddlePercent) ) + { + G4cout << "**** G4SmartVoxelHeader::BuildNodes" << G4endl + << " WARNING : Daughter # " << nVol + << " name = " << pDaughter->GetName() << G4endl + << " Crosses mother boundary of logical volume, name = " + << pVolume->GetName() << G4endl + << " by more than " << kStraddlePercent + << "%" << G4endl; + } + } +#endif + + } + + // Extents of all daughters known + + // Calculate minimum slice width, only including volumes inside the limits + // + G4double minWidth = kInfinity; + G4double currentWidth; + for (nVol=0; nVol=pLimits.GetMinExtent(pAxis)) + && (minExtents[nVol]<=pLimits.GetMaxExtent(pAxis)) ) + { + minWidth = currentWidth; + } + } + + // No. of Nodes formula - nearest integer to + // mother width/half min daughter width +1 + // + G4double noNodesExactD = ((motherMaxExtent-motherMinExtent)*2.0/minWidth)+1.0; + + // Compare with "smartless quality", i.e. the average number of slices + // used per contained volume. + // + G4double smartlessComputed = noNodesExactD / nCandidates; + G4double smartlessUser = pVolume->GetSmartless(); + G4double smartless = (smartlessComputed <= smartlessUser) + ? smartlessComputed : smartlessUser; + G4double noNodesSmart = smartless*nCandidates; + G4int noNodesExactI = G4int(noNodesSmart); + G4int noNodes = ((noNodesSmart-noNodesExactI)>=0.5) + ? noNodesExactI+1 : noNodesExactI; + if( noNodes == 0 ) { noNodes=1; } + +#ifdef G4GEOMETRY_VOXELDEBUG + G4cout << " Min width = " << minWidth + << " => # Nodes = " << noNodes << G4endl; +#endif + + if (noNodes>kMaxVoxelNodes) + { + noNodes=kMaxVoxelNodes; #ifdef G4GEOMETRY_VOXELDEBUG G4cout << " Nodes Clipped to = " << kMaxVoxelNodes << G4endl; #endif - } - G4double nodeWidth=(motherMaxExtent-motherMinExtent)/noNodes; + } + G4double nodeWidth = (motherMaxExtent-motherMinExtent)/noNodes; // Create G4VoxelNodes. Will Add proxies before setting fslices - G4NodeVector* nodeList = new G4NodeVector(); - nodeList->reserve(noNodes); +// + G4NodeVector* nodeList = new G4NodeVector(); + nodeList->reserve(noNodes); + if (!nodeList) + { + G4cout << "ERROR - NodeList allocation failed." << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + } + for (nNode=0; nNodepush_back(pNode); + } - if (!nodeList) - { - G4Exception("G4SmartVoxelHeader::BuildNodes NodeList allocation failed"); - } - for (nNode=0;nNodepush_back(pNode); - } -// All nodes created (empty) + // All nodes created (empty) -// Fill nodes: Step through extent lists - for (nVol=0;nVol=0&&minContainingNode maxContainingNode=noNodes: should be -// one less as nodeList has noNodes entries; - if (maxContainingNode>=noNodes) - { - maxContainingNode=noNodes-1; - } -// Protection against protruding volumes - if (minContainingNode<0) - { - minContainingNode=0; - } - - for (nodeNo=minContainingNode;nodeNo<=maxContainingNode;nodeNo++) - { - (*nodeList)[nodeNo]->Insert((*pCandidates)[nVol]); - } - } - } -// All nodes filled + // Only add nodes that are inside the limits of the axis + // + if ( (maxContainingNode>=0) && (minContainingNode maxContainingNode=noNodes: + // should be one less as nodeList has noNodes entries + // + if (maxContainingNode>=noNodes) + { + maxContainingNode = noNodes-1; + } + // + // Protection against protruding volumes + // + if (minContainingNode<0) + { + minContainingNode=0; + } + for (nodeNo=minContainingNode; nodeNo<=maxContainingNode; nodeNo++) + { + (*nodeList)[nodeNo]->Insert((*pCandidates)[nVol]); + } + } + } -// Create proxy List : caller has deletion responsibility but we must delete -// nodeList *itself* - not the contents) - G4ProxyVector *proxyList; + // All nodes filled - proxyList=new G4ProxyVector(); - proxyList->reserve(noNodes); - - if (!proxyList) - { - G4Exception("G4SmartVoxelHeader::BuildNodes proxy List allocation failed"); - } - -// Fill proxy List - for (nNode=0;nNodepush_back(pProxyNode); - } - delete nodeList; - return proxyList; + // Create proxy List : caller has deletion responsibility + // (but we must delete nodeList *itself* - not the contents) + // + G4ProxyVector* proxyList = new G4ProxyVector(); + proxyList->reserve(noNodes); + if (!proxyList) + { + G4cout << "ERROR - Proxy List allocation failed." << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + } + // + // Fill proxy List + // + for (nNode=0; nNodepush_back(pProxyNode); + } + delete nodeList; + return proxyList; } -// Calculate a "quality value" for the specified vector of voxels -// The value returned should be >0 and such that the smaller the -// number the higher the quality of the slice. +// *************************************************************************** +// Calculate a "quality value" for the specified vector of voxels. +// The value returned should be >0 and such that the smaller the number +// the higher the quality of the slice. // -// pSlice must consist of G4SmartVoxelNodeProxies only -// -// Process: -// -// Examine each node in turn, summing: +// Preconditions: pSlice must consist of G4SmartVoxelNodeProxies only +// Process: +// o Examine each node in turn, summing: // no. of non-empty nodes // no. of volumes in each node +// o Calculate Quality=sigma(volumes in nod)/(no. of non-empty nodes) +// if all nodes empty, return kInfinity +// o Call G4Exception on finding a G4SmartVoxelHeaderProxy +// *************************************************************************** // -// Calculate Quality=sigma(volumes in nod)/(no. of non-empty nodes) -// -// if all nodes empty, return kInfinity -// -// Call G4Exception on finding a G4SmartVoxelHeaderProxy - G4double G4SmartVoxelHeader::CalculateQuality(G4ProxyVector *pSlice) { - G4double quality; - G4int nNodes,sumContained=0,sumNonEmptyNodes=0; - G4int noContained,maxContained=0; - G4SmartVoxelNode *node; + G4double quality; + G4int nNodes = pSlice->size(); + G4int noContained, maxContained=0, sumContained=0, sumNonEmptyNodes=0; + G4SmartVoxelNode *node; - nNodes=pSlice->size(); - - for (G4int i=0;iIsNode()) - { -// Definitely a node. Add info to running totals - node=(*pSlice)[i]->GetNode(); - noContained=node->GetNoContained(); - if (noContained) - { - sumNonEmptyNodes++; - sumContained+=noContained; -// Calc maxContained for statistics - if (noContained>maxContained) - { - maxContained=noContained; - } - } - } - else - { - G4Exception("G4SmartVoxelHeader::CalculateQuality - Not defined for divided volumes"); - } - } - -// Calculate quality with protection against no non-empty nodes; - if (sumNonEmptyNodes) - { - quality=sumContained/sumNonEmptyNodes; - } + for (G4int i=0; iIsNode()) + { + // Definitely a node. Add info to running totals + // + node = (*pSlice)[i]->GetNode(); + noContained = node->GetNoContained(); + if (noContained) + { + sumNonEmptyNodes++; + sumContained += noContained; + // + // Calc maxContained for statistics + // + if (noContained>maxContained) + { + maxContained = noContained; + } + } + } else - { - quality=kInfinity; - } + { + G4cout << "ERROR - Not defined for sliced volumes." << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::CalculateQuality"); + } + } + + // Calculate quality with protection against no non-empty nodes + // + if (sumNonEmptyNodes) + { + quality = sumContained/sumNonEmptyNodes; + } + else + { + quality = kInfinity; + } #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4SmartVoxelHeader::CalculateQuality" << G4endl - << " Quality = " << quality << G4endl - << " Nodes = " << nNodes - << " of which " << sumNonEmptyNodes << " non empty" << G4endl + G4cout << "**** G4SmartVoxelHeader::CalculateQuality" << G4endl + << " Quality = " << quality << G4endl + << " Nodes = " << nNodes + << " of which " << sumNonEmptyNodes << " non empty" << G4endl << " Max Contained = " << maxContained << G4endl; #endif - return quality; + + return quality; } -// Examined each contained node, refine (create a replacement additional +// *************************************************************************** +// Examined each contained node, refines (creates a replacement additional // dimension of voxels) when there is more than one voxel in the slice. -// -// Do not refine further if already limited in two dimensions (=> this +// Does not refine further if already limited in two dimensions (=> this // is the third level of limits) // -// Preconditions: +// Preconditions: slices (nodes) have been built. +// *************************************************************************** // -// Slices (nodes) have been built - void G4SmartVoxelHeader::RefineNodes(G4LogicalVolume* pVolume, - G4VoxelLimits pLimits) + G4VoxelLimits pLimits) { - G4int refinedDepth=0,minVolumes; - G4int maxNode=fslices.size(); - if (pLimits.IsXLimited()) - { - refinedDepth++; - } - if (pLimits.IsYLimited()) - { - refinedDepth++; - } - if (pLimits.IsZLimited()) - { - refinedDepth++; - } + G4int refinedDepth=0, minVolumes; + G4int maxNode = fslices.size(); -// Calculate min no of volumes necessary to refine - switch (refinedDepth) - { - case 0: - minVolumes=kMinVoxelVolumesLevel2; - break; - case 1: - minVolumes=kMinVoxelVolumesLevel3; - break; - default: - minVolumes=10000; // catch refinedDepth=3 and errors - break; - } + if (pLimits.IsXLimited()) + { + refinedDepth++; + } + if (pLimits.IsYLimited()) + { + refinedDepth++; + } + if (pLimits.IsZLimited()) + { + refinedDepth++; + } - if (refinedDepth<2) - { - G4int targetNo,noContainedDaughters,minNo,maxNo,replaceNo,i; - G4double sliceWidth=(fmaxExtent-fminExtent)/maxNode; - G4VoxelLimits newLimits; - G4SmartVoxelNode* targetNode; - G4SmartVoxelProxy* targetNodeProxy; - G4SmartVoxelHeader* replaceHeader; - G4SmartVoxelProxy* replaceHeaderProxy; - G4VolumeNosVector* targetList; - G4SmartVoxelProxy* lastProxy; - - for (targetNo=0;targetNoGetNode(); + if (refinedDepth<2) + { + G4int targetNo, noContainedDaughters, minNo, maxNo, replaceNo, i; + G4double sliceWidth = (fmaxExtent-fminExtent)/maxNode; + G4VoxelLimits newLimits; + G4SmartVoxelNode* targetNode; + G4SmartVoxelProxy* targetNodeProxy; + G4SmartVoxelHeader* replaceHeader; + G4SmartVoxelProxy* replaceHeaderProxy; + G4VolumeNosVector* targetList; + G4SmartVoxelProxy* lastProxy; + + for (targetNo=0; targetNoGetNode(); + + if (targetNode->GetNoContained() >= minVolumes) + { + noContainedDaughters = targetNode->GetNoContained(); + targetList = new G4VolumeNosVector(); + targetList->reserve(noContainedDaughters); + if (!targetList) + { + G4cout << "ERROR - Target volume no List new failed." << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::RefineNodes"); + } + for (i=0; ipush_back(targetNode->GetVolume(i)); + } + minNo = targetNode->GetMinEquivalentSliceNo(); + maxNo = targetNode->GetMaxEquivalentSliceNo(); - if (targetNode->GetNoContained()>=minVolumes) - { - noContainedDaughters=targetNode->GetNoContained(); - targetList = new G4VolumeNosVector(); - targetList->reserve(noContainedDaughters); - if (!targetList) - { - G4Exception("G4SmartVoxelHeader::RefineNodes - Target volume no List new failed"); - } - for (i=0;ipush_back(targetNode->GetVolume(i)); - } - minNo=targetNode->GetMinEquivalentSliceNo(); - maxNo=targetNode->GetMaxEquivalentSliceNo(); #ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "**** G4SmartVoxelHeader::RefineNodes" - << G4endl - << " Refining nodes " << minNo - << " - " << maxNo << " inclusive" << G4endl; - + G4cout << "**** G4SmartVoxelHeader::RefineNodes" << G4endl + << " Refining nodes " << minNo + << " - " << maxNo << " inclusive" << G4endl; #endif -// Delete node proxies at start of collected sets of nodes/headers - lastProxy=0; - for (replaceNo=minNo;replaceNo<=maxNo;replaceNo++) - { - if (lastProxy!=fslices[replaceNo]) - { - lastProxy=fslices[replaceNo]; - delete lastProxy; - } - } -// Delete node to be replaced - delete targetNode; + // Delete node proxies at start of collected sets of nodes/headers + // + lastProxy=0; + for (replaceNo=minNo; replaceNo<=maxNo; replaceNo++) + { + if (lastProxy != fslices[replaceNo]) + { + lastProxy=fslices[replaceNo]; + delete lastProxy; + } + } + // Delete node to be replaced + // + delete targetNode; -// Create new headers + proxies and replace in fslices - newLimits=pLimits; - newLimits.AddLimit(faxis,fminExtent+sliceWidth*minNo,fminExtent+sliceWidth*(maxNo+1)); - replaceHeader=new G4SmartVoxelHeader(pVolume,newLimits,targetList,replaceNo); - if (!replaceHeader) - { - G4Exception("G4SmartVoxelHeader::RefineNodes - Refined VoxelHeader new failed"); - } - replaceHeader->SetMinEquivalentSliceNo(minNo); - replaceHeader->SetMaxEquivalentSliceNo(maxNo); - replaceHeaderProxy=new G4SmartVoxelProxy(replaceHeader); - if (!replaceHeader) - { - G4Exception("G4SmartVoxelHeader::RefineNodes - Refined VoxelProxy new failed"); - } - for (replaceNo=minNo;replaceNo<=maxNo;replaceNo++) - { - - fslices[replaceNo]=replaceHeaderProxy; - } -// Finished replacing current `equivalent' group - delete targetList; - targetNo=maxNo; - - } - } - } + // Create new headers + proxies and replace in fslices + // + newLimits = pLimits; + newLimits.AddLimit(faxis,fminExtent+sliceWidth*minNo, + fminExtent+sliceWidth*(maxNo+1)); + replaceHeader = new G4SmartVoxelHeader(pVolume,newLimits, + targetList,replaceNo); + if (!replaceHeader) + { + G4cout << "ERROR - Refined VoxelHeader new failed." << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::RefineNodes"); + } + replaceHeader->SetMinEquivalentSliceNo(minNo); + replaceHeader->SetMaxEquivalentSliceNo(maxNo); + replaceHeaderProxy = new G4SmartVoxelProxy(replaceHeader); + if (!replaceHeader) + { + G4cout << "ERROR - Refined VoxelProxy new failed." << G4endl; + G4Exception("ERROR - G4SmartVoxelHeader::RefineNodes"); + } + for (replaceNo=minNo; replaceNo<=maxNo; replaceNo++) + { + fslices[replaceNo] = replaceHeaderProxy; + } + // Finished replacing current `equivalent' group + // + delete targetList; + targetNo=maxNo; + } + } + } } -// Return true if all slices have equal contents -// Preconditions: -// All equal slices have been collected +// *************************************************************************** +// Returns true if all slices have equal contents. +// Preconditions: all equal slices have been collected. // Procedure: -// Check all slice proxy pointers are equal +// o checks all slice proxy pointers are equal +// o returns true if only one slice or all slice proxies pointers equal. +// *************************************************************************** // -// Return true if only one slice or all slice proxies pointers equal G4bool G4SmartVoxelHeader::AllSlicesEqual() const { - G4int noSlices; - G4SmartVoxelProxy *refProxy; - noSlices=fslices.size(); - if (noSlices>1) - { - refProxy=fslices[0]; - for (G4int i=1;i1) + { + refProxy=fslices[0]; + for (G4int i=1; iGetNode()->GetNoContained();j++) - { s << " " << h.fslices[i]->GetNode()->GetVolume(j); } - s << " }" << G4endl; - collectNode=h.fslices[i]; - collectNodeNo=i; - } - else - { - s << "As slice #" << collectNodeNo << G4endl; - } - } - else - { - haveHeaders=true; - if (h.fslices[i]!=collectHead) - { - s << "Header" << G4endl; - collectHead=h.fslices[i]; - collectHeadNo=i; - } - else - { - s << "As slice #" << collectHeadNo << G4endl; - } - } + for (i=0; iGetNode()->GetNoContained(); j++) + { + s << " " << h.fslices[i]->GetNode()->GetVolume(j); } - - if (haveHeaders) - { - collectHead=0; - for (j=0;jIsHeader()) - { + s << " }" << G4endl; + collectNode = h.fslices[i]; + collectNodeNo = i; + } + else + { + s << "As slice #" << collectNodeNo << G4endl; + } + } + else + { + haveHeaders=true; + if (h.fslices[i] != collectHead) + { + s << "Header" << G4endl; + collectHead = h.fslices[i]; + collectHeadNo = i; + } + else + { + s << "As slice #" << collectHeadNo << G4endl; + } + } + } - s << "Header at Slice #" << j << " = "; - if (h.fslices[j]!=collectHead) - { - s << G4endl - << (*(h.fslices[j]->GetHeader())); - collectHead=h.fslices[j]; - collectHeadNo=j; - } - else - { - s << "As slice #" << collectHeadNo << G4endl; - } - } - } - } - return s; + if (haveHeaders) + { + collectHead=0; + for (j=0; jIsHeader()) + { + s << "Header at Slice #" << j << " = "; + if (h.fslices[j] != collectHead) + { + s << G4endl + << (*(h.fslices[j]->GetHeader())); + collectHead = h.fslices[j]; + collectHeadNo = j; + } + else + { + s << "As slice #" << collectHeadNo << G4endl; + } + } + } + } + return s; } diff --git a/source/geometry/management/src/G4SmartVoxelNode.cc b/source/geometry/management/src/G4SmartVoxelNode.cc index 79baf3ef1b..74612a1766 100644 --- a/source/geometry/management/src/G4SmartVoxelNode.cc +++ b/source/geometry/management/src/G4SmartVoxelNode.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelNode.cc,v 1.3 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SmartVoxelNode.cc,v 1.4 2002/04/19 08:20:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class G4SmartVoxelNode // @@ -31,6 +31,12 @@ #include "G4SmartVoxelNode.hh" +// Empty destructor +// +G4SmartVoxelNode::~G4SmartVoxelNode() +{ +} + // Return true if contents equal // // Preconditions: @@ -52,14 +58,3 @@ G4bool G4SmartVoxelNode::operator == (const G4SmartVoxelNode& v) const } return false; } - - - - - - - - - - - diff --git a/source/geometry/management/src/G4SmartVoxelProxy.cc b/source/geometry/management/src/G4SmartVoxelProxy.cc new file mode 100644 index 0000000000..9ac896588c --- /dev/null +++ b/source/geometry/management/src/G4SmartVoxelProxy.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. * +// ******************************************************************** +// +// +// $Id: G4SmartVoxelProxy.cc,v 1.1 2002/04/19 08:20:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Class G4SmartVoxelProxy +// +// Implementation +// + +#include "G4SmartVoxelProxy.hh" + +// Empty destructor +// +G4SmartVoxelProxy::~G4SmartVoxelProxy() +{ +} diff --git a/source/geometry/management/src/G4SmartVoxelStat.cc b/source/geometry/management/src/G4SmartVoxelStat.cc index eea904f271..f89fab9fee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/management/src/G4SolidStore.cc b/source/geometry/management/src/G4SolidStore.cc index 6bc2ff91cf..a3605f5a52 100644 --- a/source/geometry/management/src/G4SolidStore.cc +++ b/source/geometry/management/src/G4SolidStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SolidStore.cc,v 1.7 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SolidStore.cc,v 1.9 2002/04/26 16:24:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4SolidStore // @@ -30,57 +30,123 @@ // // History: // 10.07.95 P.Kent Initial version +// ******************************************************************** -#include "G4SolidStore.hh" #include "globals.hh" +#include "G4SolidStore.hh" +#include "G4GeometryManager.hh" +// *************************************************************************** +// Static class variables +// *************************************************************************** +// +G4SolidStore* G4SolidStore::fgInstance = 0; +G4bool G4SolidStore::locked = false; + +// *************************************************************************** // Protected constructor: Construct underlying container with // initial size of 100 entries +// *************************************************************************** +// G4SolidStore::G4SolidStore() : G4std::vector() { reserve(100); } +// *************************************************************************** // Destructor +// *************************************************************************** +// G4SolidStore::~G4SolidStore() { - while (!empty()) - { -// delete front(); - erase(begin()); - } + // NOTE: destruction of solids is client responsibility ! + // clear(); + Clean(); } -// Static class variable -G4SolidStore* G4SolidStore::fgInstance = 0; +// *************************************************************************** +// Delete all elements from the store +// *************************************************************************** +// +void G4SolidStore::Clean() +{ + // Do nothing if geometry is closed + // + if (G4GeometryManager::GetInstance()->IsGeometryClosed()) + { + G4cout << "WARNING - Attempt to delete the solid store" + << " while geometry closed !" << G4endl; + return; + } + // Locks store for deletion of solids. De-registration will be + // performed at this stage. G4VSolids will not de-register themselves. + // + locked = true; + + size_t i=0; + G4SolidStore* store = GetInstance(); + G4std::vector::iterator pos; + +#ifdef G4GEOMETRY_VOXELDEBUG + G4cout << "Deleting Solids ... "; +#endif + + for(pos=store->begin(); pos!=store->end(); pos++) + { + if (*pos) delete *pos; i++; + } + +#ifdef G4GEOMETRY_VOXELDEBUG + if (store->size() < i-1) + { G4cout << "No solids deleted. Already deleted by user ?" << G4endl; } + else + { G4cout << i-1 << " solids deleted !" << G4endl; } +#endif + + locked = false; + store->clear(); +} + +// *************************************************************************** // Add Solid to container +// *************************************************************************** +// void G4SolidStore::Register(G4VSolid* pSolid) { - GetInstance()->push_back(pSolid); + GetInstance()->push_back(pSolid); } +// *************************************************************************** // Remove Solid from container +// *************************************************************************** +// void G4SolidStore::DeRegister(G4VSolid* pSolid) { - for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) + if (!locked) // Do not de-register if locked ! { - if (**i==*pSolid) + for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) { - GetInstance()->erase(i); - break; + if (**i==*pSolid) + { + GetInstance()->erase(i); + break; + } } } } +// *************************************************************************** // Return ptr to Store, setting if necessary +// *************************************************************************** +// G4SolidStore* G4SolidStore::GetInstance() { - static G4SolidStore worldStore; - if (!fgInstance) - { - fgInstance = &worldStore; - } - return fgInstance; + static G4SolidStore worldStore; + if (!fgInstance) + { + fgInstance = &worldStore; + } + return fgInstance; } diff --git a/source/geometry/management/src/G4VPVParameterisation.cc b/source/geometry/management/src/G4VPVParameterisation.cc index 7f63d43918..e52e87c81a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Default implementations for Parameterisations that do not // parameterise solid and/or material diff --git a/source/geometry/management/src/G4VPhysicalVolume.cc b/source/geometry/management/src/G4VPhysicalVolume.cc index 5a52d3b79b..83d75bc7eb 100644 --- a/source/geometry/management/src/G4VPhysicalVolume.cc +++ b/source/geometry/management/src/G4VPhysicalVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicalVolume.cc,v 1.4 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VPhysicalVolume Implementation diff --git a/source/geometry/management/src/G4VSolid.cc b/source/geometry/management/src/G4VSolid.cc index 08f0ce8281..cfadb2c502 100644 --- a/source/geometry/management/src/G4VSolid.cc +++ b/source/geometry/management/src/G4VSolid.cc @@ -21,19 +21,24 @@ // ******************************************************************** // // -// $Id: G4VSolid.cc,v 1.8 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VSolid.cc,v 1.13 2002/05/11 14:16:10 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4VSolid // // Implementation for solid base class // -// // History: -// 10.07.95 P.Kent Added == operator, solid Store entry -// 30.06.95 P.Kent +// +// 10.05.02 V.Grichine, bug fixed in ClipPoligon: clip only other axis and limited +// voxels +// 15.04.02 V.Grichine, bug fixed in ClipPoligon: clip only one axis +// 13.03.02 V.Grichine, cosmetics of voxel limit functions // 15.11.00 D.Williams, V.Grichine change in CalculateClippedPolygonExtent: // else if(component>pMax) ---> if +// 10.07.95 P.Kent Added == operator, solid Store entry +// 30.06.95 P.Kent +// #include "G4VSolid.hh" #include "G4SolidStore.hh" @@ -42,34 +47,46 @@ #include "G4AffineTransform.hh" #include "G4VisExtent.hh" +////////////////////////////////////////////////////////////////////////// +// // Constructor // - Copies name // - Add ourselves to solid Store -G4VSolid::G4VSolid(const G4String& name) : -fshapeName(name) +G4VSolid::G4VSolid(const G4String& name) + : fshapeName(name) { - G4SolidStore::GetInstance()->push_back(this); + G4SolidStore::GetInstance()->Register(this); } +////////////////////////////////////////////////////////////////////////// +// // Destructor (virtual) // - Remove ourselves from solid Store G4VSolid::~G4VSolid() { G4SolidStore::GetInstance()->DeRegister(this); } - + +//////////////////////////////////////////////////////////////////////// +// // Returns name by value + G4String G4VSolid::GetName() const { return fshapeName; } +///////////////////////////////////////////////////////////////////////// + void G4VSolid::SetName(const G4String& name) { fshapeName=name; } +////////////////////////////////////////////////////////////////////////// +// // Throw exception if ComputeDimensions called for illegal derived class + void G4VSolid::ComputeDimensions(G4VPVParameterisation* p, const G4int n, const G4VPhysicalVolume* pRep) @@ -77,6 +94,90 @@ void G4VSolid::ComputeDimensions(G4VPVParameterisation* p, G4Exception("G4VSolid::ComputeDimensions called illegally: not overloaded by derived class"); } +/////////////////////////////////////////////////////////////////////////// +// +// Calculate the maximum and minimum extents of the polygon described +// by the vertices: pSectionIndex->pSectionIndex+1-> +// pSectionIndex+2->pSectionIndex+3->pSectionIndex +// in the List pVertices +// +// If the minimum is pMax pMax is set to the new maximum +// +// No modifications are made to pVertices +// + +void G4VSolid::ClipCrossSection( G4ThreeVectorList* pVertices, + const G4int pSectionIndex, + const G4VoxelLimits& pVoxelLimit, + const EAxis pAxis, + G4double& pMin, G4double& pMax) const +{ + + G4ThreeVectorList polygon; + polygon.push_back((*pVertices)[pSectionIndex]); + polygon.push_back((*pVertices)[pSectionIndex+1]); + polygon.push_back((*pVertices)[pSectionIndex+2]); + polygon.push_back((*pVertices)[pSectionIndex+3]); + // G4cout<<"ClipCrossSection: 0-1-2-3"<pSectionIndex+3 and +// pSectionIndex+4->pSectionIndex7 +// +// in the List pVertices, within the boundaries of the voxel limits pVoxelLimit +// +// If the minimum is pMax pMax is set to the new maximum +// +// No modifications are made to pVertices + +void G4VSolid::ClipBetweenSections( G4ThreeVectorList* pVertices, + const G4int pSectionIndex, + const G4VoxelLimits& pVoxelLimit, + const EAxis pAxis, + G4double& pMin, G4double& pMax) const +{ + G4ThreeVectorList polygon; + polygon.push_back((*pVertices)[pSectionIndex]); + polygon.push_back((*pVertices)[pSectionIndex+4]); + polygon.push_back((*pVertices)[pSectionIndex+5]); + polygon.push_back((*pVertices)[pSectionIndex+1]); + // G4cout<<"ClipBetweenSections: 0-4-5-1"< output inside section - pVoxelLimit.ClipToLimits(vStart,vEnd); - outputPolygon.push_back(vStart); - outputPolygon.push_back(vEnd); - } - else -// Both point outside -> no output - { - } - - } - } + // G4cout<<"vStart outside, vEnd inside"< no output + { + // outputPolygon.push_back(vStart); + // outputPolygon.push_back(vEnd); + } + } + } } - const G4VSolid* G4VSolid::GetConstituentSolid(G4int no) const +const G4VSolid* G4VSolid::GetConstituentSolid(G4int no) const { return 0; } - G4VSolid* G4VSolid::GetConstituentSolid(G4int no) +G4VSolid* G4VSolid::GetConstituentSolid(G4int no) { return 0; } - const G4DisplacedSolid* G4VSolid::GetDisplacedSolidPtr() const +const G4DisplacedSolid* G4VSolid::GetDisplacedSolidPtr() const { return 0; } - G4DisplacedSolid* G4VSolid::GetDisplacedSolidPtr() +G4DisplacedSolid* G4VSolid::GetDisplacedSolidPtr() { return 0; } -G4VisExtent G4VSolid::GetExtent () const { +G4VisExtent G4VSolid::GetExtent () const +{ G4VisExtent extent; G4VoxelLimits voxelLimits; // Defaults to "infinite" limits. G4AffineTransform affineTransform; diff --git a/source/geometry/management/src/G4VoxelLimits.cc b/source/geometry/management/src/G4VoxelLimits.cc index e0e895c948..40b3a7b54c 100644 --- a/source/geometry/management/src/G4VoxelLimits.cc +++ b/source/geometry/management/src/G4VoxelLimits.cc @@ -21,61 +21,69 @@ // ******************************************************************** // // -// $Id: G4VoxelLimits.cc,v 1.4 2001/07/11 09:59:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VoxelLimits.cc,v 1.7 2002/04/19 08:20:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4VoxelLimits // // Implementation // // History: +// +// 14.03.02 V. Grichine, cosmetics // 13.07.95 P.Kent Initial version #include "G4VoxelLimits.hh" #include "G4ios.hh" +/////////////////////////////////////////////////////////////////////////// +// +// Empty constructor and destructor +// + +G4VoxelLimits::G4VoxelLimits() + : fxAxisMin(-kInfinity),fxAxisMax(kInfinity), + fyAxisMin(-kInfinity),fyAxisMax(kInfinity), + fzAxisMin(-kInfinity),fzAxisMax(kInfinity) +{ +} + +G4VoxelLimits::~G4VoxelLimits() +{ +} + +/////////////////////////////////////////////////////////////////////////// +// // Further restrict limits // No checks for illegal restrictions -void G4VoxelLimits::AddLimit(const EAxis pAxis, const G4double pMin, - const G4double pMax) - { - if (pAxis==kXAxis) - { - if (pMin>fxAxisMin) - { - fxAxisMin=pMin; - } - if (pMaxfyAxisMin) - { - fyAxisMin=pMin; - } - if (pMaxfzAxisMin) - { - fzAxisMin=pMin; - } - if (pMax fxAxisMin ) fxAxisMin = pMin ; + if ( pMax < fxAxisMax ) fxAxisMax = pMax ; + } + else if ( pAxis == kYAxis ) + { + if ( pMin > fyAxisMin ) fyAxisMin = pMin ; + if ( pMax < fyAxisMax ) fyAxisMax = pMax ; + } + else + { + assert( pAxis == kZAxis ) ; + + if ( pMin > fzAxisMin ) fzAxisMin = pMin ; + if ( pMax < fzAxisMax ) fzAxisMax = pMax ; + } +} + +/////////////////////////////////////////////////////////////////////////// +// // ClipToLimits // // Clip the line segment pStart->pEnd to the volume described by the @@ -87,160 +95,158 @@ void G4VoxelLimits::AddLimit(const EAxis pAxis, const G4double pMin, // Use Cohen-Sutherland clipping in 3D // [Fundamentals of Interactive Computer Graphics,Foley & Van Dam] // -G4bool G4VoxelLimits::ClipToLimits(G4ThreeVector& pStart, - G4ThreeVector& pEnd) const + +G4bool G4VoxelLimits::ClipToLimits( G4ThreeVector& pStart, + G4ThreeVector& pEnd ) const { - G4int sCode,eCode; - G4bool remainsAfterClip; + G4int sCode, eCode ; + G4bool remainsAfterClip ; // Determine if line is trivially inside (both outcodes==0) or outside // (logical AND of outcodes !=0) - sCode=OutCode(pStart); - eCode=OutCode(pEnd); - if (sCode&eCode) - { + sCode = OutCode(pStart) ; + eCode = OutCode(pEnd) ; + + if ( sCode & eCode ) + { // Trivially outside, no intersection with region - remainsAfterClip=false; - } - else if (sCode==0&&eCode==0) - { + + remainsAfterClip = false; + } + else if ( sCode == 0 && eCode == 0 ) + { // Trivially inside, no intersections - remainsAfterClip=true; - } - else - { + + remainsAfterClip = true ; + } + else + { // Line segment *may* cut volume boundaries // At most, one end point is inside - G4double x1,y1,z1,x2,y2,z2; - x1=pStart.x(); - y1=pStart.y(); - z1=pStart.z(); - x2=pEnd.x(); - y2=pEnd.y(); - z2=pEnd.z(); - while (sCode!=eCode) - { + G4double x1, y1, z1, x2, y2, z2 ; + x1 = pStart.x() ; + y1 = pStart.y() ; + z1 = pStart.z() ; + + x2 = pEnd.x() ; + y2 = pEnd.y() ; + z2 = pEnd.z() ; + /* + if( abs(x1-x2) < kCarTolerance*kCarTolerance) + { + G4cout<<"x1 = "< z[a+1]. This leads to a wrong surface. + +12/02/2002 : R. Chytracek +- Bug fixes of G4BREPSolidPolyhedra: + o Added enhancement allowing to define RMIN and RMAX to be zero with the + exception of forbidden two consecutive zero RMAX values. + o Refactoring in constructor gained two new private methods for creation of + trapezoidal and triangular side planes of G4BREPSolidPolyhedra. + o Rewritten code for delta phi >= 2*PI case with full classification of + possible cases. + o Fixed sense of end planes. + o Fixed delta phi < 2*PI case where some old code remained after bug fix #266. + +28/01/2002 : R. Chytracek breps-V04-00-01 +- G4BREPSolidPCone::Inside() method restored back due to the fixes + in G4FPlane + fixes in constructor and ComputePlanarSurface helper + method. +- Fixed first constructor of G4FPlane which now takes another argument + for setting explicitly the sense of a surface if required. +- Fixed G4FPlane::Intersect() method which incorrectly ignored a special + case of a hit on surface point with ray direction opposite to surface + normal. + +22/01/2002 : R. Chytracek +- Temporary fix of Inside() method in BREPSolidPCone. +- Updated BREPSolidPCone unit test. + +16/01/2001 : R. Chytracek breps-V04-00-00 +- G4BREPSolidPCone: bugfix for problem report #320. + o Fixed missing use-case in constructor when RMAX and RMIN have been + changed for 2 consecutive equal z-values. Now it creates correctly + 2 planar surfaces as expected. + o Along with that added private method ComputePlanarSurface() gained + by refactoring of some part of the code in the constructor. + o Added useful comments analysing problems with planar surfaces and + showing possible use-cases + some cosmetics. + 01/08/2001 : R. Chytracek breps-V03-02-03 - G4BREPSolidPolyhedra.cc: fixed situation when phi1 = 0 dphi1 = 2*pi and all RMINs = 0.0. In this case the inner planes are not created. diff --git a/source/geometry/solids/BREPS/include/G4Assembly.hh b/source/geometry/solids/BREPS/include/G4Assembly.hh index 1467e12a49..1597208e6a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Assembly diff --git a/source/geometry/solids/BREPS/include/G4Assembly.icc b/source/geometry/solids/BREPS/include/G4Assembly.icc index 3879086ff3..b19d4ccab0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh index bfae2b4910..d9fe5465e6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement3D diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc index f8dce124cd..de0d71a065 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.hh b/source/geometry/solids/BREPS/include/G4BREPSolid.hh index ef3931bf68..4e9a662196 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolid.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolid.hh,v 1.9 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolid diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.icc b/source/geometry/solids/BREPS/include/G4BREPSolid.icc index f299df21d6..e8a689e04d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh index 9f976ba377..7604108c06 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidBox.hh,v 1.5 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidBox diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh index 973300256b..56f806576e 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidCone.hh,v 1.5 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh index f0829f0fdd..a5af46b194 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidCylinder.hh,v 1.5 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCylinder diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh index 3fd998f812..d3f0216bcc 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidOpenPCone.hh,v 1.5 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidOpenPCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh index 4e06f1987f..e875ee242c 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.6 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BREPSolidPCone.hh,v 1.9 2002/01/22 22:43:01 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPCone @@ -119,6 +119,13 @@ public: // Creates a G4Polyhedron private: + + G4Surface* ComputePlanarSurface( G4double r1, G4double r2, + G4ThreeVector& origin, + G4ThreeVector& planeAxis, + G4ThreeVector& planeDirection, + G4int surfSense ); + // For a given radius values compute a planar surface G4BREPSolidPCone(const G4BREPSolidPCone&); G4BREPSolidPCone& operator=(const G4BREPSolidPCone&); diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh index 86a547d5f2..5d5cd03a6a 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.7 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BREPSolidPolyhedra.hh,v 1.9 2002/02/13 17:39:48 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPolyhedra @@ -56,7 +56,6 @@ class G4BREPSolidPolyhedra : public G4BREPSolid { - public: // with description G4BREPSolidPolyhedra( const G4String& name, @@ -126,6 +125,26 @@ private: G4BREPSolidPolyhedra(const G4BREPSolidPolyhedra&); G4BREPSolidPolyhedra& operator=(const G4BREPSolidPolyhedra&); // Private copy constructor and assignment operator. + + typedef enum _SF { + EInverse = 0, + ENormal = 1 + } ESurfaceSense; + + G4Surface* CreateTrapezoidalSurface( G4double r1, G4double r2, + const G4Point3D& origin, G4double zDistance, + G4Vector3D& xAxis, G4double partAngle, + ESurfaceSense sense ); + + G4Surface* CreateTriangularSurface( G4double r1, G4double r2, + const G4Point3D& origin, G4double zDistance, + G4Vector3D& xAxis, G4double partAngle, + ESurfaceSense sense ); + + G4Surface* ComputePlanarSurface( G4double r1, G4double r2, + const G4Point3D& origin, G4Vector3D& xAxis, + G4int sides, G4double partAngle, + ESurfaceSense sense ); // The following is only utilised in storing the shape parameters for // use in visualising this shape. J.A. Feb 24, 1997 diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh index 2419af96f4..cedad22ed3 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidSphere.hh,v 1.6 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidSphere diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh index 79eed71d08..8f203a2e8f 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidTorus.hh,v 1.5 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidTorus diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.hh b/source/geometry/solids/BREPS/include/G4BSplineCurve.hh index c4b374c6e9..de9922c5d2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurve diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.icc b/source/geometry/solids/BREPS/include/G4BSplineCurve.icc index ae5be3709e..588bfb77ad 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh index c9101b2788..0b32a79119 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurveWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.hh b/source/geometry/solids/BREPS/include/G4BSplineSurface.hh index 3a79157f8f..e1707502c2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurface diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.icc b/source/geometry/solids/BREPS/include/G4BSplineSurface.icc index cd6db00109..eee5493a31 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh index 64c8c665a2..0099b7ac9e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.hh b/source/geometry/solids/BREPS/include/G4BezierSurface.hh index 2426476e3a..f74d781d47 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.icc b/source/geometry/solids/BREPS/include/G4BezierSurface.icc index d5aff128d1..49bb197502 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh b/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh index 8a3293f9b7..e59c70cef1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BoundingBox3D diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc b/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc index 4faa1ce99e..2e104ce034 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.hh b/source/geometry/solids/BREPS/include/G4CircularCurve.hh index 65b56f61dc..31e7cb7ebe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4CircularCurve diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.icc b/source/geometry/solids/BREPS/include/G4CircularCurve.icc index 4501f51e07..7575db5ab0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.hh b/source/geometry/solids/BREPS/include/G4CompositeCurve.hh index 9d0155c101..5b2feb5630 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4CompositeCurve diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.icc b/source/geometry/solids/BREPS/include/G4CompositeCurve.icc index a3799a3b76..0e91eccf8f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Conic.hh b/source/geometry/solids/BREPS/include/G4Conic.hh index 851de6f5bd..2819b1c6d6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Conic diff --git a/source/geometry/solids/BREPS/include/G4Conic.icc b/source/geometry/solids/BREPS/include/G4Conic.icc index 9750d869ab..2825c5e14e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.hh b/source/geometry/solids/BREPS/include/G4ConicalSurface.hh index 9dcb5331e3..081aa68d76 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4ConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.icc b/source/geometry/solids/BREPS/include/G4ConicalSurface.icc index 998396ce87..f4a6a01f45 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.hh b/source/geometry/solids/BREPS/include/G4ControlPoints.hh index e20e35d875..d88ca0c270 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4ControlPoints diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.icc b/source/geometry/solids/BREPS/include/G4ControlPoints.icc index a424eaf05c..8737a39f84 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConvexHull.hh b/source/geometry/solids/BREPS/include/G4ConvexHull.hh index 6d4d1bd9c7..e532bc3497 100644 --- a/source/geometry/solids/BREPS/include/G4ConvexHull.hh +++ b/source/geometry/solids/BREPS/include/G4ConvexHull.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConvexHull.hh,v 1.5 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ConvexHull.hh,v 1.6 2002/02/26 11:16:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4ConvexHull @@ -44,7 +44,7 @@ class G4ConvexHull G4ConvexHull(){} G4ConvexHull(G4double pparam, G4double mmin, G4double mmax) - : next(this), param (pparam), min(mmin), max(mmax){} + : param (pparam), min(mmin), max(mmax) { next=this; } // Constructors ~G4ConvexHull(){} diff --git a/source/geometry/solids/BREPS/include/G4Curve.hh b/source/geometry/solids/BREPS/include/G4Curve.hh index 364c1a87d2..6558380863 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Curve diff --git a/source/geometry/solids/BREPS/include/G4Curve.icc b/source/geometry/solids/BREPS/include/G4Curve.icc index 99a28b29fe..7630434bde 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.hh b/source/geometry/solids/BREPS/include/G4CurvePoint.hh index fb1fc8f6cc..8c6b3495be 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4CurvePoint diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.icc b/source/geometry/solids/BREPS/include/G4CurvePoint.icc index 4badce1e6a..0f920ab259 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh index 5b473c4e94..d701f5cea2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4CurveRayIntersection diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc index 903d2d9744..eb183e1afc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveVector.hh b/source/geometry/solids/BREPS/include/G4CurveVector.hh index 972cdbe6b3..272d8227ae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4CurveVector diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh index b2b02894c2..1de8643045 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4CylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc index 9a5310c84d..38d2bb7b50 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.hh b/source/geometry/solids/BREPS/include/G4Ellipse.hh index 888df2cbec..8e27c48e3b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Ellipse diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.icc b/source/geometry/solids/BREPS/include/G4Ellipse.icc index a7eb31408a..d0b0e687c3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.hh b/source/geometry/solids/BREPS/include/G4FConicalSurface.hh index 63870f1ae3..2d149dc6e0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4FConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.icc b/source/geometry/solids/BREPS/include/G4FConicalSurface.icc index 7b4bcb48f8..4fadabd86c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh index 82c6aaccd3..c1e77b2cd2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4FCylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc index e3faf0d9c6..548385d740 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FPlane.hh b/source/geometry/solids/BREPS/include/G4FPlane.hh index bf557651da..64868ca4e5 100644 --- a/source/geometry/solids/BREPS/include/G4FPlane.hh +++ b/source/geometry/solids/BREPS/include/G4FPlane.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FPlane.hh,v 1.11 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FPlane.hh,v 1.12 2002/01/28 16:38:40 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4FPlane @@ -73,7 +73,8 @@ public: // with description G4FPlane( const G4Vector3D& direction, const G4Vector3D& axis , - const G4Point3D& Pt0 ); + const G4Point3D& Pt0, + G4int sense = 1 ); // Normal constructor. G4FPlane(const G4Point3DVector* pVec, diff --git a/source/geometry/solids/BREPS/include/G4FPlane.icc b/source/geometry/solids/BREPS/include/G4FPlane.icc index 58aeee17f5..cd52229e08 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Globals.hh b/source/geometry/solids/BREPS/include/G4Globals.hh index 2e33eb2a0e..b03995793d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: A.Breakstone // Adaptation: J.Sulkimo, P.Urban. diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.hh b/source/geometry/solids/BREPS/include/G4Hyperbola.hh index b9a938b40b..c061c54ef0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Hyperbola diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.icc b/source/geometry/solids/BREPS/include/G4Hyperbola.icc index d097e373a2..4993ade6ac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.hh b/source/geometry/solids/BREPS/include/G4KnotVector.hh index 876eb8755d..631bf418b6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4KnotVector diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.icc b/source/geometry/solids/BREPS/include/G4KnotVector.icc index 434c612f3d..11b679dac1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Line.hh b/source/geometry/solids/BREPS/include/G4Line.hh index 5747d950e6..c7ba52f62a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Line diff --git a/source/geometry/solids/BREPS/include/G4Line.icc b/source/geometry/solids/BREPS/include/G4Line.icc index 38be45696b..f71bb3a3e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.hh b/source/geometry/solids/BREPS/include/G4OsloMatrix.hh index 8e7ea14726..fd54a88a33 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4OsloMatrix diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.icc b/source/geometry/solids/BREPS/include/G4OsloMatrix.icc index 443ce6b27d..051ea4e231 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Parabola.hh b/source/geometry/solids/BREPS/include/G4Parabola.hh index c06afaa0bf..875741f22b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Parabola diff --git a/source/geometry/solids/BREPS/include/G4Parabola.icc b/source/geometry/solids/BREPS/include/G4Parabola.icc index 1faf655a38..07be8299cb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh index 40c0a5b88b..3696f59dec 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.hh,v 1.7 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4PlacedSolid diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc index 4325003ff5..8fb4a8bd1a 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.icc,v 1.5 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4PlacementVector.hh b/source/geometry/solids/BREPS/include/G4PlacementVector.hh index 218b0c1366..65d5b2f1e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4PlacementVector diff --git a/source/geometry/solids/BREPS/include/G4Plane.hh b/source/geometry/solids/BREPS/include/G4Plane.hh index b868b3a054..b54f4da5c2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Plane diff --git a/source/geometry/solids/BREPS/include/G4Point3DVector.hh b/source/geometry/solids/BREPS/include/G4Point3DVector.hh index 9ca8925695..b9abcbb6b7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Point3DVector diff --git a/source/geometry/solids/BREPS/include/G4PointRat.hh b/source/geometry/solids/BREPS/include/G4PointRat.hh index 22acc33ca4..ce198a5aee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4PointRat diff --git a/source/geometry/solids/BREPS/include/G4PointRat.icc b/source/geometry/solids/BREPS/include/G4PointRat.icc index cbcb91c1f6..4246cb86f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh b/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh index 41da39d321..25f64ebe2f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4ProjectedSurface diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc b/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc index 02392d86f3..2ffbdfa599 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ray.hh b/source/geometry/solids/BREPS/include/G4Ray.hh index e5f65e5831..b8eafac2ef 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.hh +++ b/source/geometry/solids/BREPS/include/G4Ray.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ray.hh,v 1.6 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Ray diff --git a/source/geometry/solids/BREPS/include/G4Ray.icc b/source/geometry/solids/BREPS/include/G4Ray.icc index f9836ce6fb..8dc97943c3 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.icc +++ b/source/geometry/solids/BREPS/include/G4Ray.icc @@ -22,7 +22,7 @@ // // // $Id: G4Ray.icc,v 1.5 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh b/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh index 3bd7d14ed1..19691a7338 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4STEPEntity.hh b/source/geometry/solids/BREPS/include/G4STEPEntity.hh index 1db7605c75..92c83c3e39 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4STEPEntity diff --git a/source/geometry/solids/BREPS/include/G4Sort.hh b/source/geometry/solids/BREPS/include/G4Sort.hh index a0aa1d11ab..f948fe4056 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.hh b/source/geometry/solids/BREPS/include/G4SphericalSurface.hh index f7ed4a8088..d2c6f04060 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4SphericalSurface diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.icc b/source/geometry/solids/BREPS/include/G4SphericalSurface.icc index dca9b5ce1b..8a0683038f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Surface.hh b/source/geometry/solids/BREPS/include/G4Surface.hh index 9bba696470..26bf84865b 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.hh +++ b/source/geometry/solids/BREPS/include/G4Surface.hh @@ -22,7 +22,7 @@ // // // $Id: G4Surface.hh,v 1.7 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4Surface diff --git a/source/geometry/solids/BREPS/include/G4Surface.icc b/source/geometry/solids/BREPS/include/G4Surface.icc index 6a0739d327..3f4fcc4cfb 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.icc +++ b/source/geometry/solids/BREPS/include/G4Surface.icc @@ -22,7 +22,7 @@ // // // $Id: G4Surface.icc,v 1.3 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh index a9bc195936..0398945510 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceBoundary diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc index e3788519b1..007e3092eb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4SurfaceList.hh b/source/geometry/solids/BREPS/include/G4SurfaceList.hh index 0388db46d7..2a31f9ed55 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceList diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh index 9bf01f2c24..c25881d0ee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfLinearExtrusion diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh index 9a634a9791..54c3716edd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfRevolution diff --git a/source/geometry/solids/BREPS/include/G4ThreeMat.hh b/source/geometry/solids/BREPS/include/G4ThreeMat.hh index 911a776bf0..bbfdc5990d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4ThreeMat diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh b/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh index 3b391c94e4..7b8f1d2fc6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4ToroidalSurface diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc b/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc index db8238b1e2..1b38d9403d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4UVHit.hh b/source/geometry/solids/BREPS/include/G4UVHit.hh index 547b5e3750..17f84a34cc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // Class G4UVHit diff --git a/source/geometry/solids/BREPS/src/G4Assembly.cc b/source/geometry/solids/BREPS/src/G4Assembly.cc index 4f79511fe4..55e63624c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc b/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc index 91a962da45..bb89a11fe5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolid.cc b/source/geometry/solids/BREPS/src/G4BREPSolid.cc index 8d4257004c..da70f21616 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolid.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolid.cc,v 1.20 2001/07/20 11:52:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc index 5d7a1a7265..8b58f13888 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidBox.cc,v 1.6 2001/07/20 12:47:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc index 7e83b01204..08de5b1816 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidCone.cc,v 1.7 2001/07/11 09:59:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc index 255a412d85..5294452c94 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidCylinder.cc,v 1.7 2001/07/11 09:59:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc index 17c85cb04c..f0270cdc05 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidOpenPCone.cc,v 1.6 2001/07/11 09:59:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc index 19e198dc98..5ead2b5822 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.21 2001/07/20 11:52:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BREPSolidPCone.cc,v 1.26 2002/03/11 19:09:37 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -36,12 +36,18 @@ // outer conical surfaces are defined using common Z planes. // ---------------------------------------------------------------------- +#include "g4std/strstream" + #include "G4BREPSolidPCone.hh" #include "G4FCylindricalSurface.hh" #include "G4FConicalSurface.hh" #include "G4CircularCurve.hh" #include "G4FPlane.hh" +typedef enum { + EInverse = 0, + ENormal = 1 +} ESurfaceSense; G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, G4double start_angle, @@ -66,6 +72,17 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, G4ThreeVector PlaneAxis(0, 0, 1); G4ThreeVector PlaneDir (0, 1, 0); + + /////////////////////////////////////////////////// + // Test delta phi + + // At the moment (11/03/2002) the phi section is not implemented + // so we take a G4 application down if there is a request for such + // a configuration + if( opening_angle < 2*pi-perMillion ) { + G4Exception( "G4BREPSolidPCone::G4BREPSolidPCone() - phi section not supported yet, try to use G4Polycone instead!\a\n" ); + } + /////////////////////////////////////////////////// // Test the validity of the R values @@ -73,95 +90,189 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, // when RMIN[0] or RMIN[num_z_planes-1] are = 0 if( ((RMIN[0] == 0) && (RMAX[0] == 0)) || ((RMIN[num_z_planes-1] == 0) && (RMAX[num_z_planes-1] == 0)) ) - G4Exception("RMIN at the extremities can not be nul when RMAX = 0"); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMIN at the extremities cannot be 0 when RMAX = 0 !"); // only RMAX[0] and RMAX[num_z_planes-1] can be = 0 for(a = 1; a < num_z_planes-1; a++) if (RMAX[a] == 0) - G4Exception("RMAX inside the solid can not be nul"); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMAX inside the solid cannot be 0 !"); // RMAX[a] must be greater than RMIN[a] for(a = 1; a < num_z_planes-1; a++) if (RMIN[a] >= RMAX[a]) - G4Exception("RMAX must be greater that RMIN in the middle Z planes."); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMAX must be greater than RMIN in the middle Z planes !"); if( (RMIN[num_z_planes-1] > RMAX[num_z_planes-1] ) || (RMIN[0] > RMAX[0]) ) - G4Exception("RMAX must be greater or equal to RMIN at the ends."); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMAX must be greater or equal than RMIN at the ends !"); - /////////////////////////////////////////////////// - // Create cylindrical et conical surfaces - - for(a=0; a <-|xx xx| |xx + // xx+-- --+xx --+ +-- + // xxxxx xxxxx | | + // xxxxx xxxxx +-- --+ + // xx+-- --+xx |xx xx| + // xx|-> <-|xx +-- --+ + // --+ +-- + // -------------------------- Z axis + // + ////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////// + // + // 5. 6. 7. 8. + // --+ +-- --+ +-- + // xx|-> <-|xx xx|-> <-|xx + // --+-- --+-- xx+-- --+xx + // <-|xx xx|-> xxxxx xxxxx + // +-- --+ --+xx xx+-- + // <-|xx xx|-> + // +-- --+ + // -------------------------- Z axis + // + // NOTE: The pictures shows only one half of polycone! + // The arrows show the expected surface normal direction. + // The configuration No. 3 and 4 are not valid solids! + + // Eliminate the invalid cases 3 and 4. + // At this point is guaranteed that each RMIN[i] < RMAX[i] + // where i in in interval 0 < i < num_z_planes-1. So: + if( RMIN[a] > RMAX[a+1] || RMAX[a] < RMIN[a+1] ) { + char msgbuf[512]; + G4std::ostrstream os(msgbuf,512); + os << G4endl << "G4BREPSolidPCone::G4BREPSolidPCone() - The values " + << "of RMIN[" << a << "] & RMAX[" << a+1 << "] or RMAX[" << a << "] & RMIN[" << a+1 << "] " + << "make an invalid configuration of G4BREPSolidPCone " << name.c_str() << "!" << G4endl; + G4Exception( msgbuf ); + } + + ESurfaceSense UpSurfSense, LowSurfSense; + + // We need to clasify all the cases in order to figure out the planar surface sense + if( RMAX[a] > RMAX[a+1] ) { + // Cases 1, 5, 7 + if( RMIN[a] < RMIN[a+1] ) { + // Case 1 + UpSurfSense = ENormal; + LowSurfSense = ENormal; + } else if( RMAX[a+1] != RMIN[a]) { + // Case 7 + UpSurfSense = ENormal; + LowSurfSense = EInverse; + } else { + // Case 5 + UpSurfSense = ENormal; + LowSurfSense = EInverse; + } + } else { + // Cases 2, 6, 8 + if( RMIN[a] > RMIN[a+1] ) { + // Case 2 + UpSurfSense = EInverse; + LowSurfSense = EInverse; + } else if( RMIN[a+1] != RMAX[a] ) { + // Case 8 + UpSurfSense = EInverse; + LowSurfSense = ENormal; + } else { + // Case 6 + UpSurfSense = EInverse; + LowSurfSense = ENormal; + } + } + + SurfaceVec[b] = ComputePlanarSurface( RMAX[a], RMAX[a+1], LocalOrigin, PlaneAxis, PlaneDir, UpSurfSense ); + //SurfaceVec[b]->SetSameSense( UpSurfSense ); + b++; + + SurfaceVec[b] = ComputePlanarSurface( RMIN[a], RMIN[a+1], LocalOrigin, PlaneAxis, PlaneDir, LowSurfSense ); + //SurfaceVec[b]->SetSameSense( LowSurfSense ); + b++; } else { - G4cerr << "Error in construction of G4BREPSolidPCone. \n" - << "Exactly the same z, rmin and rmax given for \n" - << "consecutive indices, " << a << " and " << a+1 << G4endl; - continue; + // The original code creating single planar surface + // in case where only either RMAX or RMIN have changed at the same Z value + // e.g.: + // + // RMAX RMIN + // change change + // + // 1 2 3 4 + // --+ +-- ----- ----- + // 00|-> <-|00 00000 00000 + // 00+-- --+00 --+00 00+-- + // 00000 00000 <-|00 00|-> + // +-- --+ + // --------------------------- Z axis + // + // NOTE: The picture shows only one half of polycone! + + G4double R1, R2; + ESurfaceSense SurfSense; + + // test where is the plane surface +// if( RMAX[a] != RMAX[a+1] ) { +// R1 = RMAX[a]; +// R2 = RMAX[a+1]; +// } else if(RMIN[a] != RMIN[a+1]) { +// R1 = RMIN[a]; +// R2 = RMIN[a+1]; +// } else { +// G4cerr << "Error in construction of G4BREPSolidPCone. \n" +// << "Exactly the same z, rmin and rmax given for \n" +// << "consecutive indices, " << a << " and " << a+1 << G4endl; +// continue; +// } + if( RMAX[a] != RMAX[a+1] ) { + // Cases 1, 2 + R1 = RMAX[a]; + R2 = RMAX[a+1]; + if( R1 > R2 ) { + // Case 1 + SurfSense = ENormal; + } else { + // Case 2 + SurfSense = EInverse; + } + } else if(RMIN[a] != RMIN[a+1]) { + // Cases 1, 2 + R1 = RMIN[a]; + R2 = RMIN[a+1]; + if( R1 > R2 ) { + // Case 3 + SurfSense = EInverse; + } else { + // Case 4 + SurfSense = ENormal; + } + } else { + G4cerr << "Error in construction of G4BREPSolidPCone. \n" + << "Exactly the same z, rmin and rmax given for \n" + << "consecutive indices, " << a << " and " << a+1 << G4endl; + continue; + } + + SurfaceVec[b] = ComputePlanarSurface( R1, R2, LocalOrigin, PlaneAxis, PlaneDir, SurfSense ); + //SurfaceVec[b]->SetSameSense( SurfSense ); + b++; + + // SurfaceVec[b]->SetSameSense(1); + nb_of_surfaces--; } - - // Create plane surface - G4Point3D ArcStart1 = G4Point3D( LocalOrigin + (R1*PlaneDir) ); - G4Point3D ArcStart2 = G4Point3D( LocalOrigin + (R2*PlaneDir) ); - - G4CurveVector cv1; - G4CircularCurve *tmp1, *tmp2; - - if(R1 != 0) - { - tmp1 = new G4CircularCurve; - tmp1->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, LocalOrigin), R1); - tmp1->SetBounds(ArcStart1, ArcStart1); - if(R1>R2) - tmp1->SetSameSense(1); - else - tmp1->SetSameSense(0); - - cv1.push_back(tmp1); - } - - if(R2 != 0) - { - tmp2 = new G4CircularCurve; - tmp2->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, LocalOrigin), R2); - tmp2->SetBounds(ArcStart2, ArcStart2); - if(R1>R2) - tmp2->SetSameSense(0); - else - tmp2->SetSameSense(1); - cv1.push_back(tmp2); - } - - SurfaceVec[b] = new G4FPlane(PlaneDir, PlaneAxis, LocalOrigin); - SurfaceVec[b]->SetBoundaries(&cv1); - - // set sense of the surface - // SurfaceVec[b]->SetSameSense(1); - - nb_of_surfaces--; - b++; - } else { @@ -170,107 +281,67 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, // Inner PCone if(RMIN[a] != RMIN[a+1]) { - // Create cone - if(RMIN[a] > RMIN[a+1]) - { - G4Vector3D ConeOrigin = G4Vector3D(LocalOrigin) ; - - SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis, Length, - RMIN[a+1], RMIN[a]); - // set sense of the surface - SurfaceVec[b]->SetSameSense(0); - } - else - { - G4Vector3D Axis2 = G4Vector3D( -1*Axis ); - G4Vector3D LocalOrigin2 = G4Vector3D( LocalOrigin + (Length*Axis) ); - G4Vector3D ConeOrigin = LocalOrigin2; - - SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis2, - Length, RMIN[a], RMIN[a+1]); - - // set sense of the surface - SurfaceVec[b]->SetSameSense(0); - } - - b++; + // Create cone + if(RMIN[a] > RMIN[a+1]) { + G4Vector3D ConeOrigin = G4Vector3D(LocalOrigin) ; + SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis, Length, RMIN[a+1], RMIN[a]); + SurfaceVec[b]->SetSameSense(0); + } else { + G4Vector3D Axis2 = G4Vector3D( -1*Axis ); + G4Vector3D LocalOrigin2 = G4Vector3D( LocalOrigin + (Length*Axis) ); + G4Vector3D ConeOrigin = LocalOrigin2; + SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis2, Length, RMIN[a], RMIN[a+1]); + SurfaceVec[b]->SetSameSense(0); + } + b++; } else { - if (RMIN[a] == 0) - { - // Do not create any surface - // and decrease nb_of_surfaces - nb_of_surfaces--; - } - else - { - // Create cylinder - G4Vector3D CylOrigin = G4Vector3D( LocalOrigin ); - - SurfaceVec[b] = new G4FCylindricalSurface(CylOrigin, Axis, - RMIN[a], Length ); - - // set sense of the surface - SurfaceVec[b]->SetSameSense(0); - - b++; - } + if( RMIN[a] == 0 ) { + // Do not create any surface and decrease nb_of_surfaces + nb_of_surfaces--; + } else { + // Create cylinder + G4Vector3D CylOrigin = G4Vector3D( LocalOrigin ); + SurfaceVec[b] = new G4FCylindricalSurface(CylOrigin, Axis, RMIN[a], Length ); + SurfaceVec[b]->SetSameSense(0); + b++; + } } - + // Outer PCone if(RMAX[a] != RMAX[a+1]) { - // Create cone - if(RMAX[a] > RMAX[a+1]) - { - G4Vector3D ConeOrigin = G4Vector3D( LocalOrigin ); - - SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis, - Length, RMAX[a+1], RMAX[a]); + // Create cone + if(RMAX[a] > RMAX[a+1]) { + G4Vector3D ConeOrigin = G4Vector3D( LocalOrigin ); + SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis, Length, RMAX[a+1], RMAX[a]); + SurfaceVec[b]->SetSameSense(1); + } else { + G4Vector3D Axis2 = G4Vector3D( -1*Axis ); + G4Vector3D LocalOrigin2 = G4Vector3D( LocalOrigin + (Length*Axis) ); + G4Vector3D ConeOrigin = LocalOrigin2 ; - // set sense of the surface - SurfaceVec[b]->SetSameSense(1); - } - else - { - G4Vector3D Axis2 = G4Vector3D( -1*Axis ); - G4Vector3D LocalOrigin2 = G4Vector3D( LocalOrigin + (Length*Axis) ); - G4Vector3D ConeOrigin = LocalOrigin2 ; - - SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis2, - Length, RMAX[a], RMAX[a+1]); - - // set sense of the surface - SurfaceVec[b]->SetSameSense(1); - } - - b++; + SurfaceVec[b] = new G4FConicalSurface(ConeOrigin, Axis2, Length, RMAX[a], RMAX[a+1]); + SurfaceVec[b]->SetSameSense(1); + } + b++; } else { - // Create cylinder - G4Vector3D CylOrigin = G4Vector3D( LocalOrigin ); - - if (RMAX[a] == 0) - { - // Do not create any surface - // and decrease nb_of_surfaces - nb_of_surfaces--; - } - else - { - // Create cylinder - G4Vector3D CylOrigin = G4Vector3D( LocalOrigin ); - - SurfaceVec[b] = new G4FCylindricalSurface(CylOrigin, Axis, - RMAX[a], Length ); + // Create cylinder + G4Vector3D CylOrigin = G4Vector3D( LocalOrigin ); - // set sense of the surface - SurfaceVec[b]->SetSameSense(1); - - b++; - } + if (RMAX[a] == 0) { + // Do not create any surface and decrease nb_of_surfaces + nb_of_surfaces--; + } else { + // Create cylinder + G4Vector3D CylOrigin = G4Vector3D( LocalOrigin ); + SurfaceVec[b] = new G4FCylindricalSurface(CylOrigin, Axis, RMAX[a], Length ); + SurfaceVec[b]->SetSameSense(1); + b++; + } } } @@ -304,12 +375,9 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, SurfaceVec[nb_of_surfaces-2] = new G4FPlane(PlaneDir, -PlaneAxis, Origin); SurfaceVec[nb_of_surfaces-2]->SetBoundaries(&cv); - - // set sense of the surface SurfaceVec[nb_of_surfaces-2]->SetSameSense(0); - }else{ - // RMIN[0] == RMAX[0] - // no surface is needed, it is a line! + } else { + // RMIN[0] == RMAX[0] so no surface is needed, it is a line! nb_of_surfaces--; } @@ -340,9 +408,8 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, // set sense of the surface SurfaceVec[nb_of_surfaces-1]->SetSameSense(0); - }else{ - // RMIN[0] == RMAX[0] - // no surface is needed, it is a line! + } else { + // RMIN[0] == RMAX[0] so no surface is needed, it is a line! nb_of_surfaces--; } @@ -376,12 +443,11 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, /* if( z_values[0] != z_start ) { - G4cerr << "ERROR in creating G4BREPSolidPCone: " - << " z_values[0]= " << z_values[0] << " is not equal to " - << " z_start= " , z_start; - // G4Exception(" Error in creating G4BREPSolidPCone: z_values[0] must be equal to z_start" ); - original_parameters.Z_values[0]= z_start; - + G4cerr << "ERROR in creating G4BREPSolidPCone: " + << " z_values[0]= " << z_values[0] << " is not equal to " + << " z_start= " , z_start; + // G4Exception(" Error in creating G4BREPSolidPCone: z_values[0] must be equal to z_start" ); + original_parameters.Z_values[0]= z_start; } */ @@ -412,8 +478,9 @@ EInside G4BREPSolidPCone::Inside(register const G4ThreeVector& Pt) const // This function find if the point Pt is inside, // outside or on the surface of the solid - // G4Vector3D v(1, 0, 0.01); - G4Vector3D v(1, 0, 0); + G4Vector3D v(1, 0, 0.01); + //G4Vector3D v(1, 0, 0); // This will miss the planar surface perp. to Z axis + //G4Vector3D v(0, 0, 1); // This works, however considered as hack not a fix G4Vector3D Pttmp(Pt); G4Vector3D Vtmp(v); G4Ray r(Pttmp, Vtmp); @@ -439,30 +506,39 @@ EInside G4BREPSolidPCone::Inside(register const G4ThreeVector& Pt) const for(G4int a=0; a < nb_of_surfaces; a++) { - if(SurfaceVec[a]->IsActive()) - { - if(fabs(SurfaceVec[a]->HowNear(Pt)) < kCarTolerance) - return kSurface; + G4Surface* surface = SurfaceVec[a]; + + if( surface->IsActive() ) { + G4double hownear = surface->HowNear(Pt); + + if( fabs( hownear ) < kCarTolerance ) + return kSurface; - if ( SurfaceVec[a]->Intersect(r) ) { - isIntersected = true; - if ( fabs(SurfaceVec[a]->GetDistance()) < dist ) { - dist = SurfaceVec[a]->GetDistance(); - WhichSurface = a; - } + if( surface->Intersect(r) ) { + isIntersected = true; + hownear = surface->GetDistance(); + + if ( fabs( hownear ) < dist ) { + dist = hownear; + WhichSurface = a; + } } } } - if ( !isIntersected ) return kOutside; + + if ( !isIntersected ) + return kOutside; // Find the point of intersection on the surface and the normal // !!!! be carefull the distance is sqrt(dist) !!!! - G4Vector3D IntersectionPoint = Pttmp + sqrt(dist)*Vtmp; - G4Vector3D Normal = SurfaceVec[WhichSurface]->SurfaceNormal(IntersectionPoint); - if ( Normal*Vtmp > 0 ) return kInside; - return kOutside; - + dist = sqrt( dist ); + G4Vector3D IntersectionPoint = Pttmp + dist*Vtmp; + G4Vector3D Normal = SurfaceVec[WhichSurface]->SurfaceNormal( IntersectionPoint ); + + G4double dot = Normal*Vtmp; + + return( (dot > 0) ? kInside : kOutside ); } G4ThreeVector G4BREPSolidPCone::SurfaceNormal(const G4ThreeVector& Pt) const @@ -572,21 +648,25 @@ G4double G4BREPSolidPCone::DistanceToIn(register const G4ThreeVector& Pt, for(a=0; a< nb_of_surfaces; a++) { - if(SurfaceVec[a]->IsActive()) - { + if(SurfaceVec[a]->IsActive()) { + // test if the ray intersect the surface G4Vector3D Norm = SurfaceVec[a]->SurfaceNormal(Pttmp); - if( (Norm * Vtmp) < 0 && fabs(SurfaceVec[a]->HowNear(Pt)) < halfTolerance ) - return 0; + G4double hownear = SurfaceVec[a]->HowNear(Pt); + + if( (Norm * Vtmp) < 0 && fabs(hownear) < halfTolerance ) + return 0; + if( (SurfaceVec[a]->Intersect(r)) ) { - - // if more than 1 surface is intersected, - // take the nearest one - if( SurfaceVec[a]->GetDistance() < ShortestDistance ) - if( SurfaceVec[a]->GetDistance() > halfTolerance ) - { - ShortestDistance = SurfaceVec[a]->GetDistance(); - } + // if more than 1 surface is intersected, + // take the nearest one + G4double distance = SurfaceVec[a]->GetDistance(); + + if( distance < ShortestDistance ) { + if( distance > halfTolerance ) { + ShortestDistance = distance; + } + } } } } @@ -594,7 +674,7 @@ G4double G4BREPSolidPCone::DistanceToIn(register const G4ThreeVector& Pt, // Be careful ! // SurfaceVec->Distance is in fact the squared distance if(ShortestDistance != kInfinity) - return sqrt(ShortestDistance); + return( sqrt(ShortestDistance) ); else // no intersection, return kInfinity return kInfinity; @@ -639,21 +719,24 @@ G4double G4BREPSolidPCone::DistanceToOut(register const G4ThreeVector& Pt, for(a=0; a< nb_of_surfaces; a++) { - if(SurfaceVec[a]->IsActive()) - { + if(SurfaceVec[a]->IsActive()) { G4Vector3D Norm = SurfaceVec[a]->SurfaceNormal(Pttmp); - if( (Norm * Vtmp) > 0 && fabs(SurfaceVec[a]->HowNear(Pt)) < halfTolerance ) - return 0; + G4double hownear = SurfaceVec[a]->HowNear(Pt); + + if( (Norm * Vtmp) > 0 && fabs( hownear ) < halfTolerance ) + return 0; + // test if the ray intersect the surface - if( (SurfaceVec[a]->Intersect(r)) ) - { - // if more than 1 surface is intersected, - // take the nearest one - if( SurfaceVec[a]->GetDistance() < ShortestDistance ) - if( SurfaceVec[a]->GetDistance() > halfTolerance ) - { - ShortestDistance = SurfaceVec[a]->GetDistance(); - } + if( (SurfaceVec[a]->Intersect(r)) ) { + // if more than 1 surface is intersected, + // take the nearest one + G4double distance = SurfaceVec[a]->GetDistance(); + + if( distance < ShortestDistance ) { + if( distance > halfTolerance ) { + ShortestDistance = distance; + } + } } } } @@ -720,6 +803,57 @@ void G4BREPSolidPCone::Reset() const ShortestDistance = kInfinity; } +G4Surface* G4BREPSolidPCone::ComputePlanarSurface( G4double r1, G4double r2, + G4ThreeVector& origin, + G4ThreeVector& planeAxis, + G4ThreeVector& planeDirection, + G4int surfSense ) +{ + // The planar surface to return + G4Surface* planarFace = 0; + + G4CurveVector cv1; + G4CircularCurve *tmp1, *tmp2; + + // Create plane surface + G4Point3D ArcStart1 = G4Point3D( origin + (r1 * planeDirection) ); + G4Point3D ArcStart2 = G4Point3D( origin + (r2 * planeDirection) ); + + if(r1 != 0) + { + tmp1 = new G4CircularCurve; + tmp1->Init(G4Axis2Placement3D( planeDirection, planeAxis, origin), r1); + tmp1->SetBounds(ArcStart1, ArcStart1); + + if( surfSense ) + tmp1->SetSameSense(1); + else + tmp1->SetSameSense(0); + + cv1.push_back(tmp1); + } + + if(r2 != 0) + { + tmp2 = new G4CircularCurve; + tmp2->Init(G4Axis2Placement3D( planeDirection, planeAxis, origin), r2); + tmp2->SetBounds(ArcStart2, ArcStart2); + + if( surfSense ) + tmp2->SetSameSense(0); + else + tmp2->SetSameSense(1); + + cv1.push_back(tmp2); + } + + planarFace = new G4FPlane( planeDirection, planeAxis, origin, surfSense ); + + planarFace->SetBoundaries(&cv1); + + return planarFace; +} + // In graphics_reps: #include "G4Polyhedron.hh" diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc index 341a040ff8..9b5a10a4b9 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.19 2001/08/01 21:32:59 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BREPSolidPolyhedra.cc,v 1.22 2002/02/14 18:39:12 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -61,6 +61,8 @@ #include "G4BREPSolidPolyhedra.hh" #include "G4FPlane.hh" +#include "g4std/strstream" + G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, G4double phi1, G4double dphi, @@ -74,11 +76,11 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, { G4int sections = num_z_planes - 1; - if(dphi >= 2*pi-perMillion) + if( dphi >= 2*pi-perMillion ) { nb_of_surfaces = 2*(sections * sides) + 2; - else + } else { nb_of_surfaces = 2*(sections * sides) + 4; - + } //SurfaceVec = new G4Surface*[nb_of_surfaces]; G4int MaxNbOfSurfaces = nb_of_surfaces; @@ -95,142 +97,402 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, /////////////////////////////////////////////////// - - - for(G4int a=0;a= 2*pi-perMillion) - { - // Create only end planes - G4Point3DVector EndPointList(sides); - G4Point3DVector InnerPointList(sides); - G4Point3DVector EndPointList2(sides); - G4Point3DVector InnerPointList2(sides); - TmpAxis = XAxis; - TmpAxis.rotateZ(phi1); - TmpAxis.rotateZ(dphi); - - for(G4int c=0;c z_values[idx+1] && increasing ) || + ( z_values[idx] < z_values[idx+1] && !increasing ) + ) { - // Add to surface list and reverse sense - MaxSurfaceVec[MaxNbOfSurfaces-1] = new G4FPlane(&EndPointList2, 0, 0); + // ERROR! Invalid sequence of z-values + G4std::ostrstream msgstr; + msgstr << G4endl + << "ERROR: The unordered, non-increasing or non-decreasing sequence of z_values detected!\a" + << G4endl + << "Check z_values with indexes: " + << idx << " " << (idx+1) << G4endl << G4std::ends; + G4Exception( msgstr.str() ); } - - // Now let's replicate the relevant surfaces into polyhedra's vector of surfaces - SurfaceVec = new G4Surface*[nb_of_surfaces]; - G4int sf = 0; - for( G4int srf = 0; srf < MaxNbOfSurfaces; srf++ ) - { - if( MaxSurfaceVec[srf] != 0 ) - { - if( sf < nb_of_surfaces ) - { - SurfaceVec[sf] = MaxSurfaceVec[srf]; + } + /////////////////////////////////////////////////// + +#ifdef G4_EXPERIMENTAL_CODE + // There is one problem when sequence of z values is not increasing in a regular way, + // in other words, it's not purely increasing or decreasing + // Irregular sequence can be provided in order to define a polyhedra having teeth + // as shown on the picture bellow + // In this sequence can happen the following z[a-1] > z[a] < z[a+1] && z[a+1] >= z[a-1] + // One has to check the RMAX and RMIN values due to the possible intersections. + // + // 1 2 3 + // ___ ___ ____ + // 00/ 00/ _ 000/ + // 0/ 0/ |0 00| + // V___ V__+0 00+-- + // 0000 00000 00000 + // ---- ----- ----- + // ------------------------------------ z-axis + // + // + // NOTE: This picture doesn't show all the possible configurations of a polyhedra having + // teeth when looking at its profile + // The picture shows only one half of the polyhedra's profile + ////////////////////////////////////////////////////////////////////////////////// + + // Experimental code! Not recommended for production, it's incomplete! + // The task is to identify invalid combination of z, RMIN and RMAX values + // in the case of toothydra :-) + G4int toothIdx; + + for( G4int idx = 1; idx < sections+1; idx++ ) { + if( z_values[idx-1] > z_values[idx] ) { + G4double toothdist = fabs( z_values[idx-1] - z_values[idx] ); + G4double aftertoothdist = fabs( z_values[idx+1] - z_values[idx] ); + if( toothdist > aftertoothdist ) { + // Check for possible intersection + if( RMAX[idx-1] < RMAX[idx+1] || RMIN[idx-1] > RMIN[idx+1] ) { + // ERROR! The surface conflict! + G4std::ostrstream msgstr; + msgstr << G4endl + << "ERROR: The unordered sequence of z_values detected with conflicting RMAX or RMIN values!\a" + << G4endl + << "Check z_values with indexes: " + << (idx-1) << " " << idx << " " << (idx+1) << G4endl << G4std::ends; + G4Exception( msgstr.str() ); } - sf++; } } + } +#endif // G4_EXPERIMENTAL_CODE + + for(G4int a=0;a changed to explicit sense set-up by R. Chytracek, 12/02/2002 + // We must check if a pair of two consecutive RMINs is not = 0.0, this means no inner plane exists! + if( RMIN[a] != 0.0 ) { + if( RMIN[a+1] != 0.0 ) { + // Standard case + MaxSurfaceVec[Count] = CreateTrapezoidalSurface( RMIN[a], RMIN[a+1], LocalOrigin, Length, + TmpAxis, PartAngle, EInverse ); + } else { + // The special case of r1 > r2 where we end at the point (0,0,z[a+1]) + MaxSurfaceVec[Count] = CreateTriangularSurface( RMIN[a], RMIN[a+1], LocalOrigin, Length, + TmpAxis, PartAngle, EInverse ); + } + } else if( RMIN[a+1] != 0.0 ) { + // The special case of r1 < r2 where we start at the point ( 0,0,z[a]) + MaxSurfaceVec[Count] = CreateTriangularSurface( RMIN[a], RMIN[a+1], LocalOrigin, Length, + TmpAxis, PartAngle, EInverse ); + } else { + // Insert nothing into the vector of sufaces, we'll replicate the vector anyway later + MaxSurfaceVec[Count] = 0; + // We need to reduce the number of planes by 1, one we have just skipped + nb_of_surfaces--; + } + + if( MaxSurfaceVec[Count] != 0 ) { + // Rotate axis back for the other surface point calculation + // only in the case any of the Create* methods above have been called + // because they modify the passed in TmpAxis + TmpAxis.rotateZ(-PartAngle); + } + + Count++; + + // Create outer side + + if( RMAX[a] != 0.0 ) { + if( RMAX[a+1] != 0.0 ) { + // Standard case + MaxSurfaceVec[Count] = CreateTrapezoidalSurface( RMAX[a], RMAX[a+1], LocalOrigin, Length, + TmpAxis, PartAngle, ENormal ); + } else { + // The special case of r1 > r2 where we end at the point (0,0,z[a+1]) + MaxSurfaceVec[Count] = CreateTriangularSurface( RMAX[a], RMAX[a+1], LocalOrigin, Length, + TmpAxis, PartAngle, ENormal ); + } + } else if( RMAX[a+1] != 0.0 ) { + // The special case of r1 < r2 where we start at the point ( 0,0,z[a]) + MaxSurfaceVec[Count] = CreateTriangularSurface( RMAX[a], RMAX[a+1], LocalOrigin, Length, + TmpAxis, PartAngle, ENormal ); + } else { + // Two consecutive RMAX values can't be zero as it's against the definition of BREP polyhedra + G4Exception( "\nTwo consecutive RMAX values can't be zero!\n" ); + } + + Count++; + } // End of for loop over sides + } else { + // Create planar surfaces perpendicular to z-axis + + ESurfaceSense OuterSurfSense, InnerSurfSense; + + if( RMAX[a] != RMAX[a+1] && RMIN[a] != RMIN[a+1] ) + { + // We're about to create a planar surface perpendicular to z-axis + // We can have the 8 following configurations here: + // + // 1. 2. 3. 4. + // --+ +-- --+ +-- + // xx|-> <-|xx xx| |xx + // xx+-- --+xx --+ +-- + // xxxxx xxxxx | | + // xxxxx xxxxx +-- --+ + // xx+-- --+xx |xx xx| + // xx|-> <-|xx +-- --+ + // --+ +-- + // -------------------------- Z axis + // + ////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////// + // + // 5. 6. 7. 8. + // --+ +-- --+ +-- + // xx|-> <-|xx xx|-> <-|xx + // --+-- --+-- xx+-- --+xx + // <-|xx xx|-> xxxxx xxxxx + // +-- --+ --+xx xx+-- + // <-|xx xx|-> + // +-- --+ + // -------------------------- Z axis + // + // NOTE: The pictures shows only one half of polyhedra! + // The arrows show the expected surface normal direction. + // The configuration No. 3 and 4 are not valid solids! + + // Eliminate the invalid cases 3 and 4. + // At this point is guaranteed that each RMIN[i] < RMAX[i] + // where i in in interval 0 < i < num_z_planes-1. So: + if( RMIN[a] > RMAX[a+1] || RMAX[a] < RMIN[a+1] ) { + G4std::strstream s; + s << G4endl << "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra() - The values " + << "of RMIN[" << a << "] & RMAX[" << a+1 << "] or RMAX[" << a << "] & RMIN[" << a+1 << "] " + << "make an invalid configuration of G4BREPSolidPolyhedra " << name.c_str() << "!" << G4endl << G4std::ends; + G4Exception( s.str() ); + } + + // We need to clasify all the cases in order to figure out the planar surface sense + if( RMAX[a] > RMAX[a+1] ) { + // Cases 1, 5, 7 + if( RMIN[a] < RMIN[a+1] ) { + // Case 1 + OuterSurfSense = EInverse; + InnerSurfSense = EInverse; + } else if( RMAX[a+1] != RMIN[a]) { + // Case 7 + OuterSurfSense = EInverse; + InnerSurfSense = ENormal; + } else { + // Case 5 + OuterSurfSense = EInverse; + InnerSurfSense = ENormal; + } + } else { + // Cases 2, 6, 8 + if( RMIN[a] > RMIN[a+1] ) { + // Case 2 + OuterSurfSense = ENormal; + InnerSurfSense = ENormal; + } else if( RMIN[a+1] != RMAX[a] ) { + // Case 8 + OuterSurfSense = ENormal; + InnerSurfSense = EInverse; + } else { + // Case 6 + OuterSurfSense = ENormal; + InnerSurfSense = EInverse; + } + } + + TmpAxis= XAxis; + TmpAxis.rotateZ(phi1); + + // Compute the outer planar surface + MaxSurfaceVec[Count] = ComputePlanarSurface( RMAX[a], RMAX[a+1], LocalOrigin, TmpAxis, sides, PartAngle, OuterSurfSense ); + if( MaxSurfaceVec[Count] == 0 ) { + // No surface was created + nb_of_surfaces--; + } + Count++; + + TmpAxis= XAxis; + TmpAxis.rotateZ(phi1); + + // Compute the inner planar surface + MaxSurfaceVec[Count] = ComputePlanarSurface( RMIN[a], RMIN[a+1], LocalOrigin, TmpAxis, sides, PartAngle, InnerSurfSense ); + if( MaxSurfaceVec[Count] == 0 ) { + // No surface was created + nb_of_surfaces--; + } + Count++; + + // Since we can create here at maximum 2 surfaces we need to reflect this in the total + nb_of_surfaces -= (2*(sides-1)); + } else { + // The case where only one of the radius values has changed + // + // RMAX RMIN + // change change + // + // 1 2 3 4 + // --+ +-- ----- ----- + // 00|-> <-|00 00000 00000 + // 00+-- --+00 --+00 00+-- + // 00000 00000 <-|00 00|-> + // +-- --+ + // --------------------------- Z axis + // + // NOTE: The picture shows only one half of polyhedra! + + G4double R1, R2; + ESurfaceSense SurfSense; + + // The case by case clasification + if( RMAX[a] != RMAX[a+1] ) { + // Cases 1, 2 + R1 = RMAX[a]; + R2 = RMAX[a+1]; + if( R1 > R2 ) { + // Case 1 + SurfSense = EInverse; + } else { + // Case 2 + SurfSense = ENormal; + } + } else if(RMIN[a] != RMIN[a+1]) { + // Cases 3, 4 + R1 = RMIN[a]; + R2 = RMIN[a+1]; + if( R1 > R2 ) { + // Case 3 + SurfSense = ENormal; + } else { + // Case 4 + SurfSense = EInverse; + } + } else { + G4cerr << "Error in construction of G4BREPSolidPolyhedra. \n" + << "Exactly the same z, rmin and rmax given for \n" + << "consecutive indices, " << a << " and " << a+1 << G4endl; + continue; + } + + TmpAxis= XAxis; + TmpAxis.rotateZ(phi1); + + MaxSurfaceVec[Count] = ComputePlanarSurface( R1, R2, LocalOrigin, TmpAxis, sides, PartAngle, SurfSense ); + if( MaxSurfaceVec[Count] == 0 ) { + // No surface was created + nb_of_surfaces--; + } + Count++; + + // Since we can create here at maximum 1 surface we need to reflect this in the total + nb_of_surfaces -= ((2*sides) - 1); + } + } // End of if( Length != 0.0 ) + + LocalOrigin = LocalOrigin + (Length*Axis); + } // End of for loop over z sections + + if(dphi >= 2*pi-perMillion) { + // Create the end planes for the configuration where delta phi >= 2*PI + + TmpAxis = XAxis; + TmpAxis.rotateZ(phi1); + + MaxSurfaceVec[Count] = ComputePlanarSurface( RMIN[0], RMAX[0], Origin, TmpAxis, sides, PartAngle, ENormal ); + + if( MaxSurfaceVec[Count] == 0 ) { + // No surface was created + nb_of_surfaces--; + } + Count++; + + // Reset plane axis + TmpAxis = XAxis; + TmpAxis.rotateZ(phi1); + + MaxSurfaceVec[Count] = ComputePlanarSurface( RMIN[sections], RMAX[sections], LocalOrigin, TmpAxis, sides, PartAngle, EInverse ); + + if( MaxSurfaceVec[Count] == 0 ) { + // No surface was created + nb_of_surfaces--; + } + Count++; + + } else { + // If delta phi < 2*PI then create a single boundary (case with RMIN=0 included) + + // Create the lateral planars + TmpAxis = XAxis; + G4Vector3D TmpAxis2 = XAxis; + TmpAxis.rotateZ(phi1); + TmpAxis2.rotateZ(phi1); + TmpAxis2.rotateZ(dphi); + + LocalOrigin = Origin; + G4int points = sections*2+2; + G4int PointCount = 0; + + G4Point3DVector GapPointList(points); + G4Point3DVector GapPointList2(points); + + + for(G4int d=0;d= perMillion) { + MaxSurfaceVec[Count] = new G4FPlane( &EndPointList, 0, EInverse ); } - - // Add the lateral planars to the surfaces list and set/reverse sense - - SurfaceVec[nb_of_surfaces-4] = new G4FPlane(&GapPointList); - SurfaceVec[nb_of_surfaces-3] = new G4FPlane(&GapPointList2, 0, 0); - - //Add the end planes to the surfaces list and set/reverse sense - - if(RMAX[0]-RMIN[0] >= perMillion){ - SurfaceVec[nb_of_surfaces-2] = new G4FPlane(&EndPointList); - } - else{ - nb_of_surfaces -= 1; + else { + MaxSurfaceVec[Count] = 0; + nb_of_surfaces--; }; - if(RMAX[sections]-RMIN[sections] >= perMillion){ - SurfaceVec[nb_of_surfaces-1] = new G4FPlane(&EndPointList2, 0, 0); - } - else{ - nb_of_surfaces -= 1; - }; + Count++; + if(RMAX[sections]-RMIN[sections] >= perMillion) { + MaxSurfaceVec[Count] = new G4FPlane( &EndPointList2, 0, ENormal ); + } else { + MaxSurfaceVec[Count] = 0; + nb_of_surfaces--; + }; } - + + // Now let's replicate the relevant surfaces into G4BREPSolid's vector of surfaces + SurfaceVec = new G4Surface*[nb_of_surfaces]; + G4int sf = 0; G4int zeroCount = 0; + for( G4int srf = 0; srf < MaxNbOfSurfaces; srf++ ) { + if( MaxSurfaceVec[srf] != 0 ) { + if( sf < nb_of_surfaces ) { + SurfaceVec[sf] = MaxSurfaceVec[srf]; + } + sf++; + } else { + zeroCount++; + } + } + + if( sf != nb_of_surfaces ) { + G4cerr << "Bad number of surfaces!\a\n" + << "sf: " << sf + << " nb_of_surfaces: " << nb_of_surfaces + << " Count: " << Count + << G4endl; + // Should we call G4Exception here ? + // Yes, because it usually leads to a crash + G4Exception( "INTERNAL ERROR: Going bananas!\a\n" ); + } + + // Clean up the temporary vector of surfaces + delete [] MaxSurfaceVec; + // Store the original parameters, to be used in visualisation // Note radii are not scaled because this BREP uses the radius of the // circumscribed circle and also graphics_reps/G4Polyhedron uses the radius of @@ -354,7 +615,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, { G4cerr << "ERROR in creating G4BREPSolidPolyhedra: " << " z_values[0]= " << z_values[0] << " is not equal to " << - " z_start= " , z_start; + " z_start= " << z_start; // G4Exception(" Error in creating G4BREPSolidPolyhedra: z_values[0] must be equal to z_start" ); original_parameters.Z_values[0]= z_start; } @@ -745,6 +1006,106 @@ G4double G4BREPSolidPolyhedra::DistanceToOut(const G4ThreeVector& Pt) const } } +G4Surface* G4BREPSolidPolyhedra::CreateTrapezoidalSurface( G4double r1, G4double r2, + const G4Point3D& origin, G4double distance, + G4Vector3D& xAxis, G4double partAngle, + ESurfaceSense sense ) +{ + // The surface to be returned + G4Surface* trapsrf = 0; + G4Point3DVector PointList(4); + G4Vector3D zAxis(0,0,1); + + PointList[0] = origin + ( r1 * xAxis); + PointList[3] = origin + ( distance * zAxis) + (r2 * xAxis); + + xAxis.rotateZ( partAngle ); + + PointList[2] = origin + ( distance * zAxis) + (r2 * xAxis); + PointList[1] = origin + ( r1 * xAxis); + + // Return the planar trapezoidal surface + trapsrf = new G4FPlane( &PointList, 0, sense ); + + return trapsrf; +} + +G4Surface* G4BREPSolidPolyhedra::CreateTriangularSurface( G4double r1, G4double r2, + const G4Point3D& origin, G4double distance, + G4Vector3D& xAxis, G4double partAngle, + ESurfaceSense sense ) +{ + // The surface to be returned + G4Surface* trapsrf = 0; + G4Point3DVector PointList(3); + G4Vector3D zAxis(0,0,1); + + PointList[0] = origin + ( r1 * xAxis); + PointList[2] = origin + ( distance * zAxis) + (r2 * xAxis); + + xAxis.rotateZ( partAngle ); + + if( r1 < r2 ) { + PointList[1] = origin + ( distance * zAxis) + (r2 * xAxis); + } else { + PointList[1] = origin + ( r1 * xAxis); + } + + // Return the planar trapezoidal surface + trapsrf = new G4FPlane( &PointList, 0, sense ); + + return trapsrf; +} + +G4Surface* G4BREPSolidPolyhedra::ComputePlanarSurface( G4double r1, G4double r2, + const G4Point3D& origin, G4Vector3D& xAxis, + G4int sides, G4double partAngle, + ESurfaceSense sense ) +{ + // This method can be called only when r1 != r2, otherwise it returns 0 which means + // that no surface can be created out of the given radius pair. + // This method requires the xAxis to be pre-rotated properly. + G4Point3DVector OuterPointList( sides ); + G4Point3DVector InnerPointList( sides ); + + G4double rIn, rOut; + G4Surface* planarSrf = 0; + + if( r1 < r2 ) { + rIn = r1; + rOut = r2; + } else if( r1 > r2 ) { + rIn = r2; + rOut = r1; + } else { + // Invalid precondition, the radius values are r1 == r2, + // which means we can create only polyline but no surface + return 0; + } + + for( G4int pidx = 0; pidx < sides; pidx++ ) { + // Outer polyline + OuterPointList[pidx] = origin + ( rOut * xAxis); + // Inner polyline + InnerPointList[pidx] = origin + ( rIn * xAxis); + xAxis.rotateZ( partAngle ); + } + + if( rIn != 0.0 && rOut != 0.0 ) { + // Standard case + planarSrf = new G4FPlane( &OuterPointList, &InnerPointList, sense ); + } else if( rOut != 0.0 ) { + // Special case where inner radius is zero so no polyline is actually created + planarSrf = new G4FPlane( &OuterPointList, 0, sense ); + } else { + // No surface being created + // This should not happen as filtered out by precondition check above + ; + } + + return planarSrf; +} + // In graphics_reps: #include "G4Polyhedron.hh" diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc index d78bd95b00..7fbd4a03cd 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidSphere.cc,v 1.5 2001/07/11 09:59:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc index 7de30d9edf..e56e11bc98 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidTorus.cc,v 1.5 2001/07/11 09:59:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc index 54e4837c06..5b72f1e258 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc index 714cf35e94..dc047df062 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurface.cc b/source/geometry/solids/BREPS/src/G4BSplineSurface.cc index 60ce4a5ab8..32646f3790 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc index 9b16438250..6f5ac6c7ef 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BezierSurface.cc b/source/geometry/solids/BREPS/src/G4BezierSurface.cc index e618579017..83a5b6f2a0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc b/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc index 6c8d084d72..ff901db3ec 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CircularCurve.cc b/source/geometry/solids/BREPS/src/G4CircularCurve.cc index 2d55e9d10f..90386b230b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc index 55ca0cd0e7..6f98b781fa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Conic.cc b/source/geometry/solids/BREPS/src/G4Conic.cc index 1803d0f94a..7586ffb6b0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ConicalSurface.cc b/source/geometry/solids/BREPS/src/G4ConicalSurface.cc index a08120dc96..8786353d34 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ControlPoints.cc b/source/geometry/solids/BREPS/src/G4ControlPoints.cc index 9d3224bd5d..ad7f2eb6c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Curve.cc b/source/geometry/solids/BREPS/src/G4Curve.cc index 8bf155cb15..11f68fb93d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurvePoint.cc b/source/geometry/solids/BREPS/src/G4CurvePoint.cc index 7f3c221230..7a70f8990f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc b/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc index 4c35a5d1ef..13c8f2b2e7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc index 711b844d92..e301fca1f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ellipse.cc b/source/geometry/solids/BREPS/src/G4Ellipse.cc index 36961e51e1..ba8969c73c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FConicalSurface.cc b/source/geometry/solids/BREPS/src/G4FConicalSurface.cc index 7eedfaa30f..9ba6ab2b69 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc index 80c3dc461c..31d1d4c20b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FPlane.cc b/source/geometry/solids/BREPS/src/G4FPlane.cc index f345d0ca80..73fb1d758d 100644 --- a/source/geometry/solids/BREPS/src/G4FPlane.cc +++ b/source/geometry/solids/BREPS/src/G4FPlane.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FPlane.cc,v 1.13 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FPlane.cc,v 1.14 2002/01/28 16:29:42 radoone Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -45,7 +45,7 @@ G4FPlane::G4FPlane( const G4Vector3D& direction, const G4Vector3D& axis , - const G4Point3D& Pt0 ) + const G4Point3D& Pt0, G4int sense ) : pplace(direction, axis, Pt0) { G4Point3D Pt1 = G4Point3D( Pt0 + direction ); @@ -57,7 +57,7 @@ G4FPlane::G4FPlane( const G4Vector3D& direction, G4Ray::CalcPlane3Pts( Pl, Pt0, Pt1, Pt2 ); active = 1; - sameSense = 1; + sameSense = sense; CalcNormal(); distance = kInfinity; Type = 1; @@ -264,10 +264,13 @@ G4int G4FPlane::Intersect(const G4Ray& rayref) if( (t*dirz >= -kCarTolerance/2) && (t*dirz <= kCarTolerance/2) ) solz = startz; - if( ( (dirx < 0 && solx < startx)||(dirx >= 0 && solx >= startx) ) && - ( (diry < 0 && soly < starty)||(diry >= 0 && soly >= starty) ) && - ( (dirz < 0 && solz < startz)||(dirz >= 0 && solz >= startz) ) ) + G4bool xhit = (dirx < 0 && solx <= startx) || (dirx >= 0 && solx >= startx); + G4bool yhit = (diry < 0 && soly <= starty) || (diry >= 0 && soly >= starty); + G4bool zhit = (dirz < 0 && solz <= startz) || (dirz >= 0 && solz >= startz); + + if( xhit && yhit && zhit ) { hitpoint= G4Point3D(solx, soly, solz); + } } // closest_hit is a public Point3D in G4Surface diff --git a/source/geometry/solids/BREPS/src/G4Hyperbola.cc b/source/geometry/solids/BREPS/src/G4Hyperbola.cc index 38499ac355..ec0a44420e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4KnotVector.cc b/source/geometry/solids/BREPS/src/G4KnotVector.cc index c6ab0b5ffa..9c29070bfd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Line.cc b/source/geometry/solids/BREPS/src/G4Line.cc index 5f64860fdd..b8fd6b7087 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4OsloMatrix.cc b/source/geometry/solids/BREPS/src/G4OsloMatrix.cc index 2ae529b369..92925e2986 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Parabola.cc b/source/geometry/solids/BREPS/src/G4Parabola.cc index 395eaf39ab..6017302fd4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PlacedSolid.cc b/source/geometry/solids/BREPS/src/G4PlacedSolid.cc index 9f2bd189c6..d4cb3556d1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PointRat.cc b/source/geometry/solids/BREPS/src/G4PointRat.cc index dcdf277eaa..ebe8200ee0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc b/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc index b0935e80e1..af1d800c0f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ray.cc b/source/geometry/solids/BREPS/src/G4Ray.cc index 478538b6c4..c5f7996558 100644 --- a/source/geometry/solids/BREPS/src/G4Ray.cc +++ b/source/geometry/solids/BREPS/src/G4Ray.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ray.cc,v 1.7 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc b/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc index a950e7e7f0..3a2eea5bec 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Sort.cc b/source/geometry/solids/BREPS/src/G4Sort.cc index 8f8ba04f7c..6ae79e42aa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 source file diff --git a/source/geometry/solids/BREPS/src/G4SphericalSurface.cc b/source/geometry/solids/BREPS/src/G4SphericalSurface.cc index 54c6c205be..150f7070fb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Surface.cc b/source/geometry/solids/BREPS/src/G4Surface.cc index 2ebf3b074e..ef97f78679 100644 --- a/source/geometry/solids/BREPS/src/G4Surface.cc +++ b/source/geometry/solids/BREPS/src/G4Surface.cc @@ -22,7 +22,7 @@ // // // $Id: G4Surface.cc,v 1.9 2001/07/11 09:59:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc index a937a2938f..e27da1884a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceList.cc b/source/geometry/solids/BREPS/src/G4SurfaceList.cc index 03ff113474..5b4db99996 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc index 51a35bc080..266ad8bac2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc index f2bd582561..bd8c77e9e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ThreeMat.cc b/source/geometry/solids/BREPS/src/G4ThreeMat.cc index 84e2bbefcf..52de888770 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc b/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc index cd010cfa7b..5a0b7b736e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/Boolean/GNUmakefile b/source/geometry/solids/Boolean/GNUmakefile index 14ae0ffe89..e0c321a2da 100644 --- a/source/geometry/solids/Boolean/GNUmakefile +++ b/source/geometry/solids/Boolean/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 1999/04/15 12:23:41 johna Exp $ +# $Id: GNUmakefile,v 1.3 2002/01/10 15:34:27 gcosmo Exp $ # ---------------------------------------------------------------- # GNUmakefile for geometry/CSG library. Gabriele Cosmo, 16/11/96. # ---------------------------------------------------------------- @@ -19,4 +19,8 @@ CPPFLAGS += -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include +ifdef G4BOOLDEBUG + CPPFLAGS += -DG4BOOLDEBUG +endif + include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/solids/Boolean/History b/source/geometry/solids/Boolean/History index 22309a63ae..761ebcff02 100644 --- a/source/geometry/solids/Boolean/History +++ b/source/geometry/solids/Boolean/History @@ -1,5 +1,5 @@ -$Id: History,v 1.24 2001/11/08 15:46:31 gcosmo Exp $ +$Id: History,v 1.32 2002/05/13 06:56:49 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,32 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + May 11 2002 Vladimir Grichine geom-bool-V04-00-05 + - G4ReflectedSolid.cc: bounding-box like algorithm for CalculateExtent(). + + Apr 16 2002 Vladimir Grichine geom-bool-V04-00-04 + - G4ReflectedSolid.cc: enhanced algorithm for CalculateExtent(), now + passing all basic unit tests. + - Updated unit test for G4ReflectedSolid, testG4ReflectedSolid.cc + + Mar 26 2002 Vladimir Grichine geom-bool-V04-00-03 + - G4ReflectedSolid.cc: modified implementation of CalculateExtent() to + properly consider transformation of reflected extent. + + Feb 15 2002 Vladimir Grichine geom-bool-V04-00-02 + - G4ReflectedSolid[.hh.cc]: + o Defined new methods Set/GetTransform3D() and Set/GetDirectTransform3D() + for defining/accessing the real reflected transformation + o Moved methods for G4AffineTransform to protected. + + Feb 07 2002 Gabriele Cosmo geom-bool-V04-00-01 + - G4ReflectionFactory.cc: fixed bug causing repetition of daughter volumes. + + Jan 10 2002 Gabriele Cosmo geom-solid-bool-V04-00-00 + - Moved all verbosity mode warnings to G4BOOLDEBUG and commented exceptions. + - Activated G4BOOLDEBUG mechanism in GNUmakefile. + - Fixed unit tests. + Nov 08 2001 Gabriele Cosmo geom-solid-bool-V03-02-02 - Fix for verbosity in G4ReflectionFactory.cc. Reduced of one level. diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh index af8b81f8f0..e663030cba 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4BooleanSolid.hh,v 1.5 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4BooleanSolid diff --git a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh index ad89f6f915..81899c7b20 100644 --- a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh +++ b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4DisplacedSolid.hh,v 1.11 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4DisplacedSolid diff --git a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh index b1acaa2c91..5e1a35054e 100644 --- a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4IntersectionSolid.hh,v 1.5 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4IntersectionSolid diff --git a/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh b/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh index bff9f807fb..e8f535bbca 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.2 2001/10/18 10:07:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ReflectedSolid.hh,v 1.5 2002/02/15 15:55:25 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ReflectedSolid @@ -35,6 +35,7 @@ // History: // // 23.07.01 V.Grichine, creation according John/Gabriele recommendations +// 15.02.02 V.Grichine, get/set methods for fPtr(Direct)Transform3D #ifndef G4ReflectedSolid_HH #define G4ReflectedSolid_HH @@ -98,12 +99,27 @@ class G4ReflectedSolid : public G4VSolid // return a self pointer else return 0. G4VSolid* GetConstituentMovedSolid() const; + + G4Transform3D GetTransform3D() const; + void SetTransform3D(G4Transform3D&); + G4Transform3D GetDirectTransform3D() const; + void SetDirectTransform3D(G4Transform3D&); + // Accessors methods. + + + public: // without description + + void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; + G4Polyhedron* CreatePolyhedron () const ; + G4NURBS* CreateNURBS () const ; + // For creating graphical representations (ie for visualisation). + + protected: + G4AffineTransform GetTransform() const; void SetTransform(G4AffineTransform&); G4AffineTransform GetDirectTransform() const; void SetDirectTransform(G4AffineTransform&); - // Accessors methods. - G4RotationMatrix GetFrameRotation() const; void SetFrameRotation(const G4RotationMatrix&); G4ThreeVector GetFrameTranslation() const; @@ -117,15 +133,6 @@ class G4ReflectedSolid : public G4VSolid void SetObjectTranslation(const G4ThreeVector&); // Get/Set the rotation/translation, as applied to the object. - public: // without description - - void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; - G4Polyhedron* CreatePolyhedron () const ; - G4NURBS* CreateNURBS () const ; - // For creating graphical representations (ie for visualisation). - - protected: - G4VSolid* fPtrSolid ; G4AffineTransform* fPtrTransform ; G4AffineTransform* fDirectTransform ; @@ -141,3 +148,11 @@ class G4ReflectedSolid : public G4VSolid } ; #endif + + + + + + + + diff --git a/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh b/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh index ffa12c258d..f54316228e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Reflection diff --git a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh index 1676acdacd..955812a072 100644 --- a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4SubtractionSolid.hh,v 1.5 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4SubtractionSolid diff --git a/source/geometry/solids/Boolean/include/G4UnionSolid.hh b/source/geometry/solids/Boolean/include/G4UnionSolid.hh index 3dc58b1816..41bce57d47 100644 --- a/source/geometry/solids/Boolean/include/G4UnionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4UnionSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnionSolid.hh,v 1.6 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4UnionSolid diff --git a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc index cb94f3fa2c..0f3753af46 100644 --- a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc +++ b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.cc,v 1.5 2001/07/11 09:59:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BooleanSolid.cc,v 1.6 2002/01/10 15:34:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation for the abstract base class for solids created by boolean // operations between other solids @@ -106,7 +106,7 @@ const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const else if( no == 1 ) subSolid = fPtrSolidB; else - G4Exception("G4BooleanSolid::GetConstituentSolid()const invalid subsolid index"); + G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid subsolid index"); return subSolid; } @@ -119,7 +119,7 @@ const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const else if( no == 1 ) subSolid = fPtrSolidB; else - G4Exception("G4BooleanSolid::GetConstituentSolid invalid subsolid index"); + G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid subsolid index"); return subSolid; } diff --git a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc index 92d650f18c..3299162084 100644 --- a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4DisplacedSolid.cc,v 1.14 2001/07/11 09:59:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation for G4DisplacedSolid class for boolean // operations between other solids diff --git a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc index a270a93e15..7ce5b25f4b 100644 --- a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectionSolid.cc,v 1.16 2001/10/02 08:51:48 grichine Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4IntersectionSolid.cc,v 1.17 2002/01/10 15:34:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -169,16 +169,16 @@ G4IntersectionSolid::SurfaceNormal( const G4ThreeVector& p ) const insideA= fPtrSolidA->Inside(p); insideB= fPtrSolidB->Inside(p); +#ifdef G4BOOLDEBUG // if( Inside(p) == kOutside ) if( (insideA == kOutside) || (insideB == kOutside) ) { - G4cerr << "WARNING - Invalid call in G4IntersectionSolid::SurfaceNormal(p)," + G4cout << "WARNING - Invalid call in G4IntersectionSolid::SurfaceNormal(p)," << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4IntersectionSolid::SurfaceNormal(p), p is outside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4IntersectionSolid::SurfaceNormal(p), p is outside") ; } +#endif // OLD: if(fPtrSolidA->DistanceToOut(p) <= fPtrSolidB->DistanceToOut(p) ) @@ -202,12 +202,12 @@ G4IntersectionSolid::SurfaceNormal( const G4ThreeVector& p ) const normal= fPtrSolidA->SurfaceNormal(p) ; else normal= fPtrSolidB->SurfaceNormal(p) ; - G4cerr << "WARNING - Invalid call in G4IntersectionSolid::SurfaceNormal(p)," +#ifdef G4BOOLDEBUG + G4cout << "WARNING - Invalid call in G4IntersectionSolid::SurfaceNormal(p)," << " point p is outsurface" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4IntersectionSolid::SurfaceNormal(p), p is outsurface") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4IntersectionSolid::SurfaceNormal(p), p is outsurface") ; +#endif } return normal; @@ -224,13 +224,13 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, G4double dist = 0.0, disTmp = 0.0 ; if( Inside(p) == kInside ) { - G4cerr << "WARNING - Invalid call in G4IntersectionSolid::DistanceToIn(p,v)," +#ifdef G4BOOLDEBUG + G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToIn(p,v)," << " point p is inside" << G4endl; - G4cerr << " p = " << p << G4endl; - G4cerr << " v = " << v << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4IntersectionSolid::DistanceToIn(p,v), p is inside") ; - #endif + G4cout << " p = " << p << G4endl; + G4cout << " v = " << v << G4endl; + // G4Exception("Invalid call in G4IntersectionSolid::DistanceToIn(p,v), p is inside") ; +#endif } else { @@ -385,15 +385,15 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, G4double G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p) const { +#ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cerr << "WARNING - Invalid call in G4IntersectionSolid::DistanceToIn(p)," + G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToIn(p)," << " point p is inside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4IntersectionSolid::DistanceToIn(p), p is inside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4IntersectionSolid::DistanceToIn(p), p is inside") ; } +#endif EInside sideA = fPtrSolidA->Inside(p) ; EInside sideB = fPtrSolidB->Inside(p) ; G4double dist ; @@ -431,12 +431,9 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p, G4bool validNormA, validNormB; G4ThreeVector nA, nB; +#ifdef G4BOOLDEBUG if( Inside(p) == kOutside ) { - G4cerr << "WARNING - Invalid call in G4IntersectionSolid::DistanceToOut(p,v)," - << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - G4cerr << " v = " << v << G4endl; G4cout << "Position:" << G4endl << G4endl; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; @@ -445,10 +442,13 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p, G4cout << "v.x() = " << v.x() << G4endl; G4cout << "v.y() = " << v.y() << G4endl; G4cout << "v.z() = " << v.z() << G4endl << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4IntersectionSolid::DistanceToOut(p,v), p is outside") ; - #endif + G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToOut(p,v)," + << " point p is outside" << G4endl; + G4cout << " p = " << p << G4endl; + G4cout << " v = " << v << G4endl; + // G4Exception("Invalid call in G4IntersectionSolid::DistanceToOut(p,v), p is outside") ; } +#endif G4double distA = fPtrSolidA->DistanceToOut(p,v,calcNorm,&validNormA,&nA) ; G4double distB = fPtrSolidB->DistanceToOut(p,v,calcNorm,&validNormB,&nB) ; @@ -476,16 +476,15 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p, G4double G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p ) const { +#ifdef G4BOOLDEBUG if( Inside(p) == kOutside ) { - G4cerr << "WARNING - Invalid call in G4IntersectionSolid::DistanceToOut(p)," + G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToOut(p)," << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4IntersectionSolid::DistanceToOut(p), p is outside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4IntersectionSolid::DistanceToOut(p), p is outside") ; } - +#endif return G4std::min(fPtrSolidA->DistanceToOut(p), fPtrSolidB->DistanceToOut(p) ) ; diff --git a/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc b/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc index 958416dc75..938408a822 100644 --- a/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc @@ -21,8 +21,9 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.cc,v 1.3 2001/10/18 10:07:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ReflectedSolid.cc,v 1.8 2002/05/11 14:10:38 grichine Exp $ +// +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation for G4ReflectedSolid class for boolean // operations between other solids @@ -32,6 +33,7 @@ #include "G4ReflectedSolid.hh" #include "G4Point3D.hh" #include "G4Normal3D.hh" +#include "G4VSolid.hh" #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" @@ -158,6 +160,38 @@ void G4ReflectedSolid::SetDirectTransform(G4AffineTransform& transform) ///////////////////////////////////////////////////////////////////////////// + + + + +///////////////////////////////////////////////////////////////////////////// + +G4Transform3D G4ReflectedSolid::GetTransform3D() const +{ + G4Transform3D aTransform = *fPtrTransform3D; + return aTransform; +} + +void G4ReflectedSolid::SetTransform3D(G4Transform3D& transform) +{ + fPtrTransform3D = &transform ; +} + +////////////////////////////////////////////////////////////////////////////// + +G4Transform3D G4ReflectedSolid::GetDirectTransform3D() const +{ + G4Transform3D aTransform= *fDirectTransform3D; + return aTransform; +} + +void G4ReflectedSolid::SetDirectTransform3D(G4Transform3D& transform) +{ + fDirectTransform3D = &transform ; +} + +///////////////////////////////////////////////////////////////////////////// + G4RotationMatrix G4ReflectedSolid::GetFrameRotation() const { G4RotationMatrix InvRotation= fDirectTransform->NetRotation(); @@ -217,24 +251,275 @@ G4ReflectedSolid::CalculateExtent( const EAxis pAxis, G4double& pMin, G4double& pMax ) const { + + G4VoxelLimits unLimit; + G4AffineTransform unTransform; + + G4double x1 = -kInfinity, x2 = kInfinity, + y1 = -kInfinity, y2 = kInfinity, + 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 = false; + pMin = +kInfinity ; + pMax = -kInfinity ; + + G4Transform3D pTransform3D = G4Transform3D(pTransform.NetRotation().inverse(), + pTransform.NetTranslation()); + + G4Transform3D transform3D = pTransform3D*(*fDirectTransform3D); + + G4Point3D tmpPoint; + +// Calculate rotated vertex coordinates + + G4ThreeVectorList* vertices = new G4ThreeVectorList(); + vertices->reserve(8); + + if (vertices) + { + G4ThreeVector vertex0(x1,y1,z1) ; + tmpPoint = transform3D*G4Point3D(vertex0); + vertex0 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex0); + + G4ThreeVector vertex1(x2,y1,z1) ; + tmpPoint = transform3D*G4Point3D(vertex1); + vertex1 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex1); + + G4ThreeVector vertex2(x2,y2,z1) ; + tmpPoint = transform3D*G4Point3D(vertex2); + vertex2 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex2); + + G4ThreeVector vertex3(x1,y2,z1) ; + tmpPoint = transform3D*G4Point3D(vertex3); + vertex3 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex3); + + G4ThreeVector vertex4(x1,y1,z2) ; + tmpPoint = transform3D*G4Point3D(vertex4); + vertex4 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex4); + + G4ThreeVector vertex5(x2,y1,z2) ; + tmpPoint = transform3D*G4Point3D(vertex5); + vertex5 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex5); + + G4ThreeVector vertex6(x2,y2,z2) ; + tmpPoint = transform3D*G4Point3D(vertex6); + vertex6 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex6); + + G4ThreeVector vertex7(x1,y2,z2) ; + tmpPoint = transform3D*G4Point3D(vertex7); + vertex7 = G4ThreeVector(tmpPoint.x(),tmpPoint.y(),tmpPoint.z()); + vertices->push_back(vertex7); + } + else + { + 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 ; + +// Add 2*tolerance to avoid precision troubles + + pMin -= kCarTolerance; + pMax += kCarTolerance; + } + } + else + { + G4ThreeVector clipCentre( + ( pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, + ( pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, + ( pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); + + if ( pMin != kInfinity || pMax != -kInfinity ) + { + existsAfterClip = true ; + + + // Check to see if endpoints are in the solid + + clipCentre(pAxis) = pVoxelLimit.GetMinExtent(pAxis); + + if (Inside(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) + // if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) + { + pMin = pVoxelLimit.GetMinExtent(pAxis); + } + else + { + pMin -= kCarTolerance; + } + clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); + + if (Inside(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) + // if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) + { + pMax = pVoxelLimit.GetMaxExtent(pAxis); + } + else + { + pMax += kCarTolerance; + } + } +// Check for case where completely enveloping clipping volume +// If point inside then we are confident that the solid completely +// envelopes the clipping volume. Hence set min/max extents according +// to clipping volume extents along the specified axis. + + else if (Inside(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) ; + G4bool extentR ; + G4double minR, maxR ; + + pt3d = G4Transform3D(pTransform.NetRotation().inverse(), + pTransform.NetTranslation() ); + sumT = pt3d * (*fDirectTransform3D) ; + sumT = ((sumT*tX)*tY)*tZ; + sumTransform = G4AffineTransform( sumT.getRotation(), + // sumT.getRotation().inverse(), + sumT.getTranslation() ); + + + // sumTransform.Product(*fDirectTransform,pTransform) ; + // extent = fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,pTransform,min,max) ; extentR = fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,sumTransform, minR,maxR) ; - if( maxR > 0 ) pMax = 2.0*maxR ; - else pMax = 0.5*maxR ; - if( minR > 0 ) pMin = 0.5*minR ; - else pMin = 2.0*minR ; + // 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 ; + + + ****************************************** */ } + ///////////////////////////////////////////////////// // @@ -242,9 +527,10 @@ G4ReflectedSolid::CalculateExtent( const EAxis pAxis, EInside G4ReflectedSolid::Inside(const G4ThreeVector& p) const { - // G4ThreeVector newPoint = fPtrTransform->TransformPoint(p) ; G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; + // G4Point3D newPoint = (*fPtrTransform3D)*G4Point3D(p) ; + return fPtrSolid->Inside(G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z())) ; } diff --git a/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc b/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc index 3ec02389cf..0df88d6893 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.2 2001/11/08 15:47:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ReflectionFactory.cc,v 1.3 2002/02/07 13:15:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Ivana Hrivnacova, 16.10.2001 (Ivana.Hrivnacova@cern.ch) @@ -323,20 +323,23 @@ void G4ReflectionFactory::ReflectPVPlacement(G4VPhysicalVolume* dPV, if (fVerboseLevel>0) G4cout << " will be reflected." << G4endl; - // create new daughter solid and logical volume - refDLV = CreateReflectedLV(dLV); + // get reflected volume if already created + refDLV = GetReflectedLV(dLV); + + if (!refDLV) { + // create new daughter solid and logical volume + refDLV = CreateReflectedLV(dLV); + // recursive call + ReflectDaughters(dLV, refDLV); + } + // create new daughter physical volume // with updated transformation - G4VPhysicalVolume* refDPV - = new G4PVPlacement(dt, refDLV, dPV->GetName(), refLV, - dPV->IsMany(), dPV->GetCopyNo()); - - refLV->AddDaughter(refDPV); - - // recursive call - ReflectDaughters(dLV, refDLV); + new G4PVPlacement(dt, refDLV, dPV->GetName(), refLV, + dPV->IsMany(), dPV->GetCopyNo()); + } else { if (fVerboseLevel>0) @@ -344,11 +347,8 @@ void G4ReflectionFactory::ReflectPVPlacement(G4VPhysicalVolume* dPV, refDLV = GetConstituentLV(dLV); - G4VPhysicalVolume* refDPV - = new G4PVPlacement(dt, refDLV, dPV->GetName(), refLV, - dPV->IsMany(), dPV->GetCopyNo()); - - refLV->AddDaughter(refDPV); + new G4PVPlacement(dt, refDLV, dPV->GetName(), refLV, + dPV->IsMany(), dPV->GetCopyNo()); } } @@ -381,20 +381,22 @@ void G4ReflectionFactory::ReflectPVReplica(G4VPhysicalVolume* dPV, if (fVerboseLevel>0) G4cout << " will be reflected." << G4endl; - // create new daughter solid and logical volume - refDLV = CreateReflectedLV(dLV); + // get reflected volume if already created + refDLV = GetReflectedLV(dLV); + + if (!refDLV) { + // create new daughter solid and logical volume + refDLV = CreateReflectedLV(dLV); + // recursive call + ReflectDaughters(dLV, refDLV); + } + // create new daughter replica - - G4VPhysicalVolume* refDPV - = new G4PVReplica(dPV->GetName(), refDLV, refLV, - axis, nofReplicas, width, offset); - - - refLV->AddDaughter(refDPV); - // recursive call - ReflectDaughters(dLV, refDLV); + new G4PVReplica(dPV->GetName(), refDLV, refLV, + axis, nofReplicas, width, offset); + } else { if (fVerboseLevel>0) @@ -402,11 +404,8 @@ void G4ReflectionFactory::ReflectPVReplica(G4VPhysicalVolume* dPV, refDLV = GetConstituentLV(dLV); - G4VPhysicalVolume* refDPV - = new G4PVReplica(dPV->GetName(), refDLV, refLV, - axis, nofReplicas, width, offset); - - refLV->AddDaughter(refDPV); + new G4PVReplica(dPV->GetName(), refDLV, refLV, + axis, nofReplicas, width, offset); } } diff --git a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc index af86939dd6..9d8d1fd6e8 100644 --- a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SubtractionSolid.cc,v 1.15 2001/08/13 14:03:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SubtractionSolid.cc,v 1.16 2002/01/10 15:34:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -156,13 +156,12 @@ G4SubtractionSolid::SurfaceNormal( const G4ThreeVector& p ) const G4ThreeVector normal; if( Inside(p) == kOutside ) { - G4cerr << "WARNING - Invalid call in G4SubtractionSolid::SurfaceNormal(p)," +#ifdef G4BOOLDEBUG + G4cout << "WARNING - Invalid call in G4SubtractionSolid::SurfaceNormal(p)," << " point p is inside" << G4endl; - G4cerr << " p = " << p << G4endl; - - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4SubtractionSolid::SurfaceNormal(p), p is outside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4SubtractionSolid::SurfaceNormal(p), p is outside") ; +#endif } else { @@ -186,9 +185,9 @@ G4SubtractionSolid::SurfaceNormal( const G4ThreeVector& p ) const { normal = -fPtrSolidB->SurfaceNormal(p) ; } - G4cerr<<"G4SubtractionSolid::SurfaceNormal(p), point p is inside"<Inside(p) != kOutside) && // case1:p in both A&B @@ -286,15 +285,16 @@ G4double G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p) const { G4double dist; + +#ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cerr << "WARNING - Invalid call in G4SubtractionSolid::DistanceToIn(p)," + G4cout << "WARNING - Invalid call in G4SubtractionSolid::DistanceToIn(p)," << " point p is inside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4SubtractionSolid::DistanceToIn(p), p is inside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4SubtractionSolid::DistanceToIn(p), p is inside") ; } +#endif if( ( fPtrSolidA->Inside(p) != kOutside) && // case 1 ( fPtrSolidB->Inside(p) != kOutside) ) @@ -320,6 +320,7 @@ G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p, G4bool *validNorm, G4ThreeVector *n ) const { +#ifdef G4BOOLDEBUG if( Inside(p) == kOutside ) { G4cout << "Position:" << G4endl << G4endl; @@ -330,14 +331,13 @@ G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p, G4cout << "v.x() = " << v.x() << G4endl; G4cout << "v.y() = " << v.y() << G4endl; G4cout << "v.z() = " << v.z() << G4endl << G4endl; - G4cerr << "WARNING - Invalid call in G4SubtractionSolid::DistanceToOut(p,v)," - << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - G4cerr << " v = " << v << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4SubtractionSolid::DistanceToOut(p,v), p is outside") ; - #endif + G4cout << "WARNING - Invalid call in G4SubtractionSolid::DistanceToOut(p,v)," + << " point p is outside" << G4endl; + G4cout << " p = " << p << G4endl; + G4cout << " v = " << v << G4endl; + // G4Exception("Invalid call in G4SubtractionSolid::DistanceToOut(p,v), p is outside") ; } +#endif G4double distout; G4double distA = fPtrSolidA->DistanceToOut(p,v,calcNorm,validNorm,n) ; @@ -369,12 +369,12 @@ G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p ) const if( Inside(p) == kOutside ) { - G4cerr << "WARNING - Invalid call in G4SubtractionSolid::DistanceToOut(p)," +#ifdef G4BOOLDEBUG + G4cout << "WARNING - Invalid call in G4SubtractionSolid::DistanceToOut(p)," << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4SubtractionSolid::DistanceToOut(p), p is outside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4SubtractionSolid::DistanceToOut(p), p is outside") ; +#endif } else { diff --git a/source/geometry/solids/Boolean/src/G4UnionSolid.cc b/source/geometry/solids/Boolean/src/G4UnionSolid.cc index 247d9a000d..d26badd368 100644 --- a/source/geometry/solids/Boolean/src/G4UnionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4UnionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnionSolid.cc,v 1.19 2001/08/13 14:03:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UnionSolid.cc,v 1.20 2002/01/10 15:34:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -168,15 +168,15 @@ G4UnionSolid::SurfaceNormal( const G4ThreeVector& p ) const { G4ThreeVector normal; +#ifdef G4BOOLDEBUG if( Inside(p) == kOutside ) { - G4cerr << "WARNING - Invalid call in G4UnionSolid::SurfaceNormal(p)," - << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4UnionSolid::SurfaceNormal(p), p is outside") ; - #endif + G4cout << "WARNING - Invalid call in G4UnionSolid::SurfaceNormal(p)," + << " point p is outside" << G4endl; + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4UnionSolid::SurfaceNormal(p), p is outside") ; } +#endif if(fPtrSolidA->Inside(p) == kSurface && fPtrSolidB->Inside(p) != kInside) { @@ -190,12 +190,12 @@ G4UnionSolid::SurfaceNormal( const G4ThreeVector& p ) const else { normal= fPtrSolidA->SurfaceNormal(p) ; - G4cerr << "WARNING - Invalid call in G4UnionSolid::SurfaceNormal(p)," +#ifdef G4BOOLDEBUG + G4cout << "WARNING - Invalid call in G4UnionSolid::SurfaceNormal(p)," << " point p is inside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4UnionSolid::SurfaceNormal(p), p is inside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4UnionSolid::SurfaceNormal(p), p is inside") ; +#endif } return normal; } @@ -208,16 +208,17 @@ G4double G4UnionSolid::DistanceToIn( const G4ThreeVector& p, const G4ThreeVector& v ) const { +#ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cerr << "WARNING - Invalid call in G4UnionSolid::DistanceToIn(p,v)," + G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToIn(p,v)," << " point p is inside" << G4endl; - G4cerr << " p = " << p << G4endl; - G4cerr << " v = " << v << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4UnionSolid::DistanceToIn(p,v), point p is intside"); - #endif + G4cout << " p = " << p << G4endl; + G4cout << " v = " << v << G4endl; + // G4Exception("Invalid call in G4UnionSolid::DistanceToIn(p,v), point p is intside"); } +#endif + return G4std::min(fPtrSolidA->DistanceToIn(p,v), fPtrSolidB->DistanceToIn(p,v) ) ; } @@ -230,16 +231,15 @@ G4UnionSolid::DistanceToIn( const G4ThreeVector& p, G4double G4UnionSolid::DistanceToIn( const G4ThreeVector& p) const { +#ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cerr << "WARNING - Invalid call in G4UnionSolid::DistanceToIn(p)," + G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToIn(p)," << " point p is inside" << G4endl; - G4cerr << " p = " << p << G4endl; - - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4UnionSolid::DistanceToIn(p), p is inside") ; - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4UnionSolid::DistanceToIn(p), p is inside") ; } +#endif G4double distA = fPtrSolidA->DistanceToIn(p) ; G4double distB = fPtrSolidB->DistanceToIn(p) ; G4double safety = G4std::min(distA,distB) ; @@ -264,11 +264,7 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p, if( Inside(p) == kOutside ) { - G4cerr << "WARNING - Invalid call in G4UnionSolid::DistanceToOut(p,v)," - << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - G4cerr << " v = " << v << G4endl; - #ifdef G4BOOLDEBUG +#ifdef G4BOOLDEBUG G4cout << "Position:" << G4endl << G4endl; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; @@ -277,8 +273,12 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p, G4cout << "v.x() = " << v.x() << G4endl; G4cout << "v.y() = " << v.y() << G4endl; G4cout << "v.z() = " << v.z() << G4endl << G4endl; - G4Exception("Invalid call in G4UnionSolid::DistanceToOut(p,v), point p is outside"); - #endif + G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToOut(p,v)," + << " 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"); +#endif } else { @@ -342,12 +342,12 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p ) const G4double distout = kInfinity; if( Inside(p) == kOutside ) { - G4cerr << "WARNING - Invalid call in G4UnionSolid::DistanceToOut(p)," +#ifdef G4BOOLDEBUG + G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToOut(p)," << " point p is outside" << G4endl; - G4cerr << " p = " << p << G4endl; - #ifdef G4BOOLDEBUG - G4Exception("Invalid call in G4UnionSolid::DistanceToOut(p), p is outtside"); - #endif + G4cout << " p = " << p << G4endl; + // G4Exception("Invalid call in G4UnionSolid::DistanceToOut(p), p is outtside"); +#endif } else { diff --git a/source/geometry/solids/CSG/GNUmakefile b/source/geometry/solids/CSG/GNUmakefile index 5d76f48d23..524f64d7c9 100644 --- a/source/geometry/solids/CSG/GNUmakefile +++ b/source/geometry/solids/CSG/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2001/01/29 13:23:47 gcosmo Exp $ +# $Id: GNUmakefile,v 1.4 2002/01/10 15:42:24 gcosmo Exp $ # ---------------------------------------------------------------- # GNUmakefile for geometry/CSG library. Gabriele Cosmo, 16/11/96. # ---------------------------------------------------------------- @@ -20,4 +20,8 @@ CPPFLAGS += -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include +ifdef G4CSGDEBUG + CPPFLAGS += -DG4CSGDEBUG +endif + include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/solids/CSG/History b/source/geometry/solids/CSG/History index a7d894c8e9..7085fbcca2 100644 --- a/source/geometry/solids/CSG/History +++ b/source/geometry/solids/CSG/History @@ -1,4 +1,4 @@ -$Id: History,v 1.43 2001/08/27 13:22:22 gcosmo Exp $ +$Id: History,v 1.50 2002/06/19 10:22:27 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,46 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +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)] + for treating special case. Fixes problem report #378. + +May 15, 2002 G.Cosmo geom-csg-V04-00-04 +- G4Trap.cc, G4Tubs.cc: changed local enum 'kUndefined' to 'kUndef', + to co-work with tag "global-V04-00-06", where 'kUndefined' is now + defined for EAxis. + +Apr 16, 2002 V.Grichine geom-csg-V04-00-03 +- G4Tubs.cc: restored "vertices" algorithm for CalculateExtent() which + was temporarly disabled (see reference to tag geom-solids-csg-V03-00-03). +- Updated unit test for G4Tubs, testG4Tubs.cc. + +Feb 15, 2002 V.Grichine geom-csg-V04-00-02 +- G4Para.cc: fixed bug in G4Para::Inside() in calculation of xt, + according to problem report #357. + +Jan 31, 2002 V.Grichine geom-csg-V04-00-01 +- G4Sphere.cc: bug fix in Inside() function. + Fix problem report #216. +- Updated unit test for G4Sphere. + +Jan 10, 2002 G.Cosmo geom-solids-csg-V04-00-00 +- Moved all verbosity mode warnings to G4CSGDEBUG and commented exceptions. +- Activated G4CSGDEBUG mechanism in GNUmakefile. +- G4Sphere.cc: fixed a problem with tolerances in the case of large Radius. + The case (test18) involves an Rmax = 250 000 000.00 mm + The ratio -9 + tolerance 1.0 10 -17 + ----------- = ------------ = 0.4 10 + Rmax +8 + 2.5 10 + which is smaller than the precision of doubles. + Solution (for DistanceToOut(), where problem occured): + use a flexible tolerance, equal to the maximum of (kRadTolerance, 10 * R ) + (J.Apostolakis). +- Upgraded unit tests and fixed warnings on gcc-2.95-2. + Aug 27, 2001 V.Grichine geom-solids-csg-V03-02-00 - G4Sphere.cc: bug fixed in G4Sphere::SurfaceNormal for the case kNETheta. Fixes problem report #290. diff --git a/source/geometry/solids/CSG/include/G4Box.hh b/source/geometry/solids/CSG/include/G4Box.hh index 25eeca4cd3..d6cd0edc9e 100644 --- a/source/geometry/solids/CSG/include/G4Box.hh +++ b/source/geometry/solids/CSG/include/G4Box.hh @@ -22,7 +22,7 @@ // // // $Id: G4Box.hh,v 1.7 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/solids/CSG/include/G4CSGSolid.hh b/source/geometry/solids/CSG/include/G4CSGSolid.hh index 2d0a7905ec..917ab22e10 100644 --- a/source/geometry/solids/CSG/include/G4CSGSolid.hh +++ b/source/geometry/solids/CSG/include/G4CSGSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4CSGSolid.hh,v 1.5 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Cons.hh b/source/geometry/solids/CSG/include/G4Cons.hh index 62e453ba4e..88f8824194 100644 --- a/source/geometry/solids/CSG/include/G4Cons.hh +++ b/source/geometry/solids/CSG/include/G4Cons.hh @@ -22,7 +22,7 @@ // // // $Id: G4Cons.hh,v 1.6 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Para.hh b/source/geometry/solids/CSG/include/G4Para.hh index ad6e87f966..23899d49e7 100644 --- a/source/geometry/solids/CSG/include/G4Para.hh +++ b/source/geometry/solids/CSG/include/G4Para.hh @@ -22,7 +22,7 @@ // // // $Id: G4Para.hh,v 1.7 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Sphere.hh b/source/geometry/solids/CSG/include/G4Sphere.hh index 70d3d13070..c5c29a12c0 100644 --- a/source/geometry/solids/CSG/include/G4Sphere.hh +++ b/source/geometry/solids/CSG/include/G4Sphere.hh @@ -22,7 +22,7 @@ // // // $Id: G4Sphere.hh,v 1.6 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Torus.hh b/source/geometry/solids/CSG/include/G4Torus.hh index f71ffd8560..33d16ca14b 100644 --- a/source/geometry/solids/CSG/include/G4Torus.hh +++ b/source/geometry/solids/CSG/include/G4Torus.hh @@ -22,7 +22,7 @@ // // // $Id: G4Torus.hh,v 1.13 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Trap.hh b/source/geometry/solids/CSG/include/G4Trap.hh index 77dc2e0b5b..5bc15dcf2d 100644 --- a/source/geometry/solids/CSG/include/G4Trap.hh +++ b/source/geometry/solids/CSG/include/G4Trap.hh @@ -22,7 +22,7 @@ // // // $Id: G4Trap.hh,v 1.6 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Trd.hh b/source/geometry/solids/CSG/include/G4Trd.hh index 77cc0aab43..73ef4af35b 100644 --- a/source/geometry/solids/CSG/include/G4Trd.hh +++ b/source/geometry/solids/CSG/include/G4Trd.hh @@ -22,7 +22,7 @@ // // // $Id: G4Trd.hh,v 1.7 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Tubs.hh b/source/geometry/solids/CSG/include/G4Tubs.hh index 7a8b83eaa0..ad3937bfce 100644 --- a/source/geometry/solids/CSG/include/G4Tubs.hh +++ b/source/geometry/solids/CSG/include/G4Tubs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Tubs.hh,v 1.6 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/src/G4Box.cc b/source/geometry/solids/CSG/src/G4Box.cc index 18da5d6d5c..ac9b220ba5 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.16 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Box.cc,v 1.17 2002/01/10 15:42:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // @@ -725,8 +725,8 @@ G4double G4Box::DistanceToOut(const G4ThreeVector& p) const 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 ; - G4Exception("Invalid call in G4Box::DistanceToOut(p), point p is outside") ; - // G4cout << "G4Box::DistanceToOut(p),point p is outside ?!" << G4endl ; + G4cout << "G4Box::DistanceToOut(p) - point p is outside ?!" << G4endl ; + // G4Exception("Invalid call in G4Box::DistanceToOut(p), point p is outside") ; } #endif @@ -787,7 +787,7 @@ G4Box::CreateRotatedVertices(const G4AffineTransform& pTransform) const } else { -G4Exception("G4Box::CreateRotatedVertices Out of memory - Cannot alloc vertices"); + G4Exception("G4Box::CreateRotatedVertices - Out of memory !"); } return vertices; } @@ -815,6 +815,3 @@ G4NURBS* G4Box::CreateNURBS () const { return new G4NURBSbox (fDx, fDy, fDz); } - - - diff --git a/source/geometry/solids/CSG/src/G4CSGSolid.cc b/source/geometry/solids/CSG/src/G4CSGSolid.cc index 3ce144e33a..3a2d7e07d9 100644 --- a/source/geometry/solids/CSG/src/G4CSGSolid.cc +++ b/source/geometry/solids/CSG/src/G4CSGSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4CSGSolid.cc,v 1.3 2001/07/11 09:59:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4CSGSolid.hh" diff --git a/source/geometry/solids/CSG/src/G4Cons.cc b/source/geometry/solids/CSG/src/G4Cons.cc index 3ea163d393..527806b9f5 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.19 2001/07/11 09:59:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Cons.cc,v 1.20 2002/01/10 15:42:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4Cons // @@ -1962,8 +1962,8 @@ G4double G4Cons::DistanceToOut(const G4ThreeVector& p) const 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 ; - G4Exception("Invalid call in G4Cons::DistanceToOut(p), p is outside") ; - // G4cout << "G4Cons::DistanceToOut(p), p is outside ?!" << G4endl ; + G4cout << "G4Cons::DistanceToOut(p) - point p is outside ?!" << G4endl ; + // G4Exception("Invalid call in G4Cons::DistanceToOut(p), p is outside") ; } #endif @@ -2102,7 +2102,7 @@ G4Cons::CreateRotatedVertices(const G4AffineTransform& pTransform) const } else { -G4Exception("G4Cons::CreateRotatedVertices Out of memory - Cant alloc vertices"); + G4Exception("G4Cons::CreateRotatedVertices - Out of memory !"); } return vertices ; } @@ -2132,9 +2132,3 @@ G4NURBS* G4Cons::CreateNURBS () const // // /////////////////////////////// End of G4Cons.cc file ////////////////////// - - - - - - diff --git a/source/geometry/solids/CSG/src/G4Para.cc b/source/geometry/solids/CSG/src/G4Para.cc index 9bf45bd8d0..1ec53c2f8b 100644 --- a/source/geometry/solids/CSG/src/G4Para.cc +++ b/source/geometry/solids/CSG/src/G4Para.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Para.cc,v 1.8 2001/07/11 09:59:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Para.cc,v 1.11 2002/05/15 09:37:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4Para // @@ -31,7 +31,8 @@ // 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 , kIndefined was added to ESide +// 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" @@ -46,7 +47,7 @@ // Private enum: Not for external use -enum ESide {kUndefined,kPX,kMX,kPY,kMY,kPZ,kMZ}; +enum ESide {kUndef,kPX,kMX,kPY,kMY,kPZ,kMZ}; // used internally for normal routine @@ -365,46 +366,37 @@ G4bool G4Para::CalculateExtent(const EAxis pAxis, EInside G4Para::Inside(const G4ThreeVector& p) const { - EInside in=kOutside; - G4double xt,yt; -// Check - if (fabs(p.z())<=fDz-kCarTolerance/2) - { - yt=fabs(p.y()-fTthetaSphi*p.z()); - if (yt<=fDy-kCarTolerance/2) - { - xt=fabs(p.x()-fTthetaCphi*p.z()-fTalpha*yt); - if (xt<=fDx-kCarTolerance/2) - { - in=kInside; - } - else if (xt<=fDx+kCarTolerance/2) - { - in=kSurface; - } - } - else if (yt<=fDy+kCarTolerance/2) - { - xt=fabs(p.x()-fTthetaCphi*p.z()-fTalpha*yt); - if (xt<=fDx+kCarTolerance/2) - { - in=kSurface; - } - } - } - else if (fabs(p.z())<=fDz+kCarTolerance/2) - { - yt=fabs(p.y()-fTthetaSphi*p.z()); - if (yt<=fDy+kCarTolerance/2) - { - xt=fabs(p.x()-fTthetaCphi*p.z()-fTalpha*yt); - if (xt<=fDx+kCarTolerance/2) - { - in=kSurface; - } - } - } - return in; + G4double xt, yt, yt1; + EInside in = kOutside; + + yt1 = p.y() - fTthetaSphi*p.z(); + yt = fabs(yt1) ; + + // xt = fabs( p.x() - fTthetaCphi*p.z() - fTalpha*yt ); + + xt = fabs( p.x() - fTthetaCphi*p.z() - fTalpha*yt1 ); + + if ( fabs( p.z() ) <= fDz - kCarTolerance*0.5) + { + if (yt <= fDy - kCarTolerance*0.5) + { + if ( xt <= fDx - kCarTolerance*0.5 ) in = kInside; + else if ( xt <= fDx + kCarTolerance*0.5 ) in = kSurface; + } + else if ( yt <= fDy + kCarTolerance*0.5) + { + 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; + } + } + return in; } /////////////////////////////////////////////////////////////////////////// @@ -520,7 +512,7 @@ G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) con if (v.z()>0) { max=fDz-p.z(); - if (max>kCarTolerance/2) + if (max>kCarTolerance*0.5) { smax=max/v.z(); smin=(-fDz-p.z())/v.z(); @@ -533,7 +525,7 @@ G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) con else if (v.z()<0) { max=-fDz-p.z(); - if (max<-kCarTolerance/2) + if (max<-kCarTolerance*0.5) { smax=max/v.z(); smin=(fDz-p.z())/v.z(); @@ -565,7 +557,7 @@ G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) con if (vy>0) { max=fDy-yt; - if (max>kCarTolerance/2) + if (max>kCarTolerance*0.5) { tmax=max/vy; tmin=(-fDy-yt)/vy; @@ -578,7 +570,7 @@ G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) con else if (vy<0) { max=-fDy-yt; - if (max<-kCarTolerance/2) + if (max<-kCarTolerance*0.5) { tmax=max/vy; tmin=(fDy-yt)/vy; @@ -618,7 +610,7 @@ G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) con if (vx>0) { max=fDx-xt; - if (max>kCarTolerance/2) + if (max>kCarTolerance*0.5) { tmax=max/vx; tmin=(-fDx-xt)/vx; @@ -631,7 +623,7 @@ G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) con else if (vx<0) { max=-fDx-xt; - if (max<-kCarTolerance/2) + if (max<-kCarTolerance*0.5) { tmax=max/vx; tmin=(fDx-xt)/vx; @@ -728,7 +720,7 @@ G4double G4Para::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, const G4bool calcNorm, G4bool *validNorm,G4ThreeVector *n) const { - ESide side = kUndefined ; + ESide side = kUndef; G4double snxt; // snxt = return value G4double max,tmax; G4double yt,vy,xt,vx; @@ -740,7 +732,7 @@ G4double G4Para::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, if (v.z()>0) { max=fDz-p.z(); - if (max>kCarTolerance/2) + if (max>kCarTolerance*0.5) { snxt=max/v.z(); side=kPZ; @@ -758,7 +750,7 @@ G4double G4Para::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, else if (v.z()<0) { max=-fDz-p.z(); - if (max<-kCarTolerance/2) + if (max<-kCarTolerance*0.5) { snxt=max/v.z(); side=kMZ; @@ -788,7 +780,7 @@ G4double G4Para::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, if (vy>0) { max=fDy-yt; - if (max>kCarTolerance/2) + if (max>kCarTolerance*0.5) { tmax=max/vy; if (tmax0) { max=fDx-xt; - if (max>kCarTolerance/2) + if (max>kCarTolerance*0.5) { tmax=max/vx; if (tmax || at l.451 +// 19.06.02 V.Grichine, bug fixed in Inside(p), && -> && fDTheta - kAngTolerance // #include @@ -395,142 +396,106 @@ G4bool G4Sphere::CalculateExtent( const EAxis pAxis, EInside G4Sphere::Inside(const G4ThreeVector& p) const { - G4double rho,rho2,rad2,tolRMin,tolRMax; - G4double pPhi,pTheta; - EInside in; + G4double rho,rho2,rad2,tolRMin,tolRMax; + G4double pPhi,pTheta; + EInside in; - rho2=p.x()*p.x()+p.y()*p.y(); - rad2=rho2+p.z()*p.z(); + rho2 = p.x()*p.x() + p.y()*p.y() ; + rad2 = rho2 + p.z()*p.z() ; -// +// G4double rad = sqrt(rad2); // Check radial surfaces // sets `in' -// - if (fRmin) - { - tolRMin=fRmin+kRadTolerance/2; - } - else - { - tolRMin=0; - } - tolRMax=fRmax-kRadTolerance/2; - - if (rad2<=tolRMax*tolRMax&&rad2>=tolRMin*tolRMin) - { - in=kInside; - } - else - { - tolRMax=fRmax+kRadTolerance/2; - tolRMin=fRmin-kRadTolerance/2; - if (tolRMin<0) - { - tolRMin=0; - } - - if (rad2<=tolRMax*tolRMax&&rad2>=tolRMin*tolRMin) - { - in=kSurface; - } - else - { - return in=kOutside; - } - } -// + if ( fRmin ) tolRMin = fRmin + kRadTolerance*0.5; + else tolRMin = 0 ; + + tolRMax = fRmax - kRadTolerance*0.5 ; + + if ( rad2 <= tolRMax*tolRMax && rad2 >= tolRMin*tolRMin ) in = kInside ; + else + { + tolRMax = fRmax + kRadTolerance*0.5 ; + 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) -// - if ( (fDPhi<2*M_PI-kAngTolerance) && ((p.x()!=0.)||(p.y()!=0.)) ) - { - pPhi=atan2(p.y(),p.x()); - if (pPhi<0) pPhi+=2*M_PI; // 0<=pPhi<2pi +// (in != kOutside) + + 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) - { - if (in==kInside) - { - if (pPhifSPhi+fDPhi-kAngTolerance/2) - { -// Not `inside' tolerant bounds - if (pPhi>=fSPhi-kAngTolerance/2 && - pPhi<=fSPhi+fDPhi+kAngTolerance/2) - { - in=kSurface; - } - else - { - return in=kOutside; - } - } - } - else - { -// in==kSurface - if (pPhifSPhi+fDPhi+kAngTolerance/2) - { - return in=kOutside; - } - } - } - else - { - if (pPhifSPhi+fDPhi+2*M_PI-kAngTolerance/2) - { -// Not `inside' tolerant bounds - if (pPhi>=fSPhi+2*M_PI-kAngTolerance/2 && - pPhi<=fSPhi+fDPhi+2*M_PI+kAngTolerance/2) - { - in=kSurface; - } - else - { - return in=kOutside; - } - } - - } - } -// -// Theta bondaries -// (in!=kOutside) -// - if (rho2||p.z()) + if ( fSPhi >= 0.0 ) + { + if (in == kInside) + { + if ( pPhi < fSPhi + kAngTolerance*0.5 || + pPhi > fSPhi + fDPhi - kAngTolerance*0.5 ) { - rho=sqrt(rho2); - pTheta=atan2(rho,p.z()); - if (in==kInside) - { - if (pThetafSTheta+fDTheta-kAngTolerance/2) - { - if (pTheta>=fSTheta-kAngTolerance/2 - && pTheta<=fSTheta+fDTheta+kAngTolerance/2) - { - in=kSurface; - } - else - { - in=kOutside; - } - } - } - else - { - if (pThetafSTheta+fDTheta+kAngTolerance/2) - { - in=kOutside; - } - } + // Not `inside' tolerant bounds + + if ( pPhi >= fSPhi - kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) in = kSurface ; + else return in = kOutside ; } - return in; + } + else // in==kSurface + { + if ( pPhi < fSPhi - kAngTolerance*0.5 || // && bug216 + pPhi > fSPhi + fDPhi + kAngTolerance*0.5 ) + { + 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 ) + { + // 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) + { + 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 ) in = kSurface ; + else in = kOutside ; + } + } + else + { + if ( pTheta < fSTheta - kAngTolerance*0.5 || + pTheta > fSTheta + fDTheta + kAngTolerance*0.5 ) in = kOutside ; + } + } + return in; } ///////////////////////////////////////////////////////////////////// @@ -753,15 +718,15 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, if (fRmin > kRadTolerance*0.5) { - tolORMin2=(fRmin-kRadTolerance/2)*(fRmin-kRadTolerance/2); + tolORMin2=(fRmin-kRadTolerance*0.5)*(fRmin-kRadTolerance*0.5); } else { tolORMin2 = 0 ; } - tolIRMin2 = (fRmin+kRadTolerance/2)*(fRmin+kRadTolerance/2) ; - tolORMax2 = (fRmax+kRadTolerance/2)*(fRmax+kRadTolerance/2) ; - tolIRMax2 = (fRmax-kRadTolerance/2)*(fRmax-kRadTolerance/2) ; + 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 @@ -818,7 +783,7 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, { // If outside toleranct boundary of outer G4Sphere -// [should be sqrt(rad2)-fRmax > kRadTolerance/2] +// [should be sqrt(rad2)-fRmax > kRadTolerance*0.5] d2 = pDotV3d*pDotV3d - c ; @@ -1059,7 +1024,7 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, // Phi segment intersection // -// o Tolerant of points inside phi planes by up to kCarTolerance/2 +// 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 @@ -1251,7 +1216,7 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, { dist2ETheta=kInfinity; } - if ( pTheta < tolSTheta) // dist2STheta<-kRadTolerance/2 && dist2ETheta>0) + if ( pTheta < tolSTheta) // dist2STheta<-kRadTolerance*0.5 && dist2ETheta>0) { // Inside (theta tolETheta) -// dist2ETheta<-kRadTolerance/2 && dist2STheta>0) +// dist2ETheta<-kRadTolerance*0.5 && dist2STheta>0) { // Inside (theta>etheta+tol) e theta cone @@ -1854,8 +1819,8 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, if (fDTheta < M_PI) { segTheta=true; - tolSTheta=fSTheta-kAngTolerance/2; - tolETheta=fSTheta+fDTheta+kAngTolerance/2; + tolSTheta=fSTheta-kAngTolerance*0.5; + tolETheta=fSTheta+fDTheta+kAngTolerance*0.5; } else { @@ -1878,15 +1843,20 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, // // => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) // + const G4double fractionTolerance = 1.0e-14; + const G4double flexRadMaxTolerance = G4std::max(kRadTolerance, + fractionTolerance * fRmax); + const G4double Rmax_plus = fRmax + flexRadMaxTolerance*0.5; - G4double Rmax_plus= fRmax+kRadTolerance*0.5; - G4double Rmin_minus= (fRmin>0) ? fRmin-kRadTolerance*0.5 : 0 ; + const G4double flexRadMinTolerance = G4std::max(kRadTolerance, + fractionTolerance * fRmin); + const G4double Rmin_minus= (fRmin>0) ? fRmin-flexRadMinTolerance*0.5 : 0 ; if(rad2 <= Rmax_plus*Rmax_plus && rad2 >= Rmin_minus*Rmin_minus) { c=rad2-fRmax*fRmax ; - if (c < kRadTolerance*fRmax) + if (c < flexRadMaxTolerance*fRmax) { // Within tolerant Outer radius // @@ -1899,7 +1869,7 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, d2=pDotV3d*pDotV3d-c ; - if( (c >- kRadTolerance*fRmax) && // on tolerant surface + if( (c >- flexRadMaxTolerance*fRmax) && // on tolerant surface ( ( pDotV3d >=0 ) || (d2 < 0)) ) // leaving outside from Rmax // not re-entering { @@ -1924,9 +1894,9 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, { c=rad2-fRmin*fRmin ; - if (c >- kRadTolerance*fRmin) // 2.0 * (0.5*kRadTolerance) * fRmin + if (c >- flexRadMinTolerance*fRmin) // 2.0 * (0.5*kRadTolerance) * fRmin { - if( c < kRadTolerance*fRmin && pDotV3d < 0 ) // leaving from Rmin + if( c < flexRadMinTolerance*fRmin && pDotV3d < 0 ) // leaving from Rmin { if(calcNorm) { @@ -2091,7 +2061,7 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, { s = -b + d ; // Second root } - if (s > kRadTolerance*0.5 ) // && s flexRadMaxTolerance*0.5 ) // && s kRadTolerance*0.5 && s < stheta ) + if (s > flexRadMaxTolerance*0.5 && s < stheta ) { stheta = s ; sidetheta = kETheta ; @@ -2517,6 +2487,27 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p) const 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 ; + 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") ; + } +#endif + // // Distance to r shells // @@ -2708,7 +2699,7 @@ G4Sphere::CreateRotatedVertices(const G4AffineTransform& pTransform, } else { - G4Exception("G4Sphere::CreateRotatedVertices Out of memory - Cannot alloc vertices"); + G4Exception("G4Sphere::CreateRotatedVertices - Out of memory !"); } delete[] cosCrossTheta; diff --git a/source/geometry/solids/CSG/src/G4Torus.cc b/source/geometry/solids/CSG/src/G4Torus.cc index ce083cdd25..b4728fb832 100644 --- a/source/geometry/solids/CSG/src/G4Torus.cc +++ b/source/geometry/solids/CSG/src/G4Torus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Torus.cc,v 1.25 2001/07/11 09:59:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Torus.cc,v 1.26 2002/01/10 15:42:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Torus @@ -2047,6 +2047,25 @@ G4double G4Torus::DistanceToOut(const G4ThreeVector& p) const pt2 = fabs(rho2 + p.z()*p.z() + fRtor*fRtor - 2*fRtor*rho) ; pt = sqrt(pt2) ; +#ifdef G4CSGDEBUG + if( Inside(p) == kOutside ) + { + 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 ; + 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") ; + } +#endif #if DEBUGTORUS G4cout << G4endl ; #endif @@ -2162,7 +2181,7 @@ G4ThreeVectorList* } else { -G4Exception("G4Torus::CreateRotatedVertices Out of memory - Cannot alloc vertices"); + G4Exception("G4Torus::CreateRotatedVertices - Out of memory !"); } return vertices; } diff --git a/source/geometry/solids/CSG/src/G4Trap.cc b/source/geometry/solids/CSG/src/G4Trap.cc index 2e34b528b1..508dc69fdc 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.12 2001/07/11 09:59:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Trap.cc,v 1.14 2002/05/15 09:37:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4Trap // @@ -34,7 +34,7 @@ // 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, kUndefined was added to Eside enum +// 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" @@ -58,7 +58,7 @@ const G4double kCoplanar_Tolerance = 1E-4 ; // // Private enum: Not for external use -enum Eside {kUndefined,ks0,ks1,ks2,ks3,kPZ,kMZ}; +enum Eside {kUndef,ks0,ks1,ks2,ks3,kPZ,kMZ}; //////////////////////////////////////////////////////////////////////// // @@ -1091,7 +1091,7 @@ G4double G4Trap::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, const G4bool calcNorm, G4bool *validNorm,G4ThreeVector *n) const { - Eside side = kUndefined ; + Eside side = kUndef; G4double snxt; // snxt = return value G4double pdist,Comp,vdist,max; // @@ -1367,8 +1367,34 @@ G4double G4Trap::DistanceToOut(const G4ThreeVector& p) const { G4double safe,Dist; G4int i; - safe=fDz-fabs(p.z()); +#ifdef G4CSGDEBUG + if( Inside(p) == kOutside ) + { + 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; + 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") ; + } +#endif + + safe=fDz-fabs(p.z()); if (safe<0) safe=0; else { @@ -1420,7 +1446,7 @@ G4Trap::CreateRotatedVertices(const G4AffineTransform& pTransform) const } else { - G4Exception("G4Trap::CreateRotatedVertices Out of memory - Cannot alloc vertices"); + G4Exception("G4Trap::CreateRotatedVertices - Out of memory !"); } return vertices; } diff --git a/source/geometry/solids/CSG/src/G4Trd.cc b/source/geometry/solids/CSG/src/G4Trd.cc index e08bc10888..f5574a6e0c 100644 --- a/source/geometry/solids/CSG/src/G4Trd.cc +++ b/source/geometry/solids/CSG/src/G4Trd.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trd.cc,v 1.9 2001/07/11 09:59:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Trd.cc,v 1.10 2002/01/10 15:42:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Implementation for G4Trd class @@ -1119,6 +1119,26 @@ G4double G4Trd::DistanceToOut(const G4ThreeVector& p) const G4double tanyz,ydist,saf2; G4double zbase; +#ifdef G4CSGDEBUG + if( Inside(p) == kOutside ) + { + G4cout.precision(16) ; + G4cout << G4endl ; + G4cout << "Trapezoid parameters:" << G4endl << G4endl ; + G4cout << "fDx1 = " << fDx1/mm << " mm" << G4endl ; + G4cout << "fDx2 = " << fDx2/mm << " mm" << G4endl ; + G4cout << "fDy1 = " << fDy1/mm << " mm" << G4endl ; + G4cout << "fDy2 = " << fDy2/mm << " mm" << G4endl ; + G4cout << "fDz = " << fDz/mm << " mm" << 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 << "G4Trd::DistanceToOut(p) - point p is outside ?!" << G4endl ; + // G4Exception("Invalid call in G4Trd::DistanceToOut(p), point p is outside") ; + } +#endif + safe=fDz-fabs(p.z()); // z perpendicular Dist zbase=fDz+p.z(); @@ -1178,7 +1198,7 @@ G4Trd::CreateRotatedVertices(const G4AffineTransform& pTransform) const } else { - G4Exception("G4Trd::CreateRotatedVertices Out of memory - Cannot alloc vertices"); + G4Exception("G4Trd::CreateRotatedVertices - Out of memory"); } return vertices; } diff --git a/source/geometry/solids/CSG/src/G4Tubs.cc b/source/geometry/solids/CSG/src/G4Tubs.cc index 42182df317..45f5abef5c 100644 --- a/source/geometry/solids/CSG/src/G4Tubs.cc +++ b/source/geometry/solids/CSG/src/G4Tubs.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Tubs.cc,v 1.31 2001/07/11 09:59:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Tubs.cc,v 1.33 2002/04/16 08:24:18 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Tubs @@ -47,6 +47,9 @@ // 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) +// +// #include "G4Tubs.hh" @@ -159,9 +162,11 @@ G4bool G4Tubs::CalculateExtent( const EAxis pAxis, 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 @@ -304,19 +309,34 @@ G4bool G4Tubs::CalculateExtent( const EAxis pAxis, G4int i, noEntries, noBetweenSections4 ; G4bool existsAfterClip = false ; G4ThreeVectorList* vertices = CreateRotatedVertices(pTransform) ; - + pMin = +kInfinity ; pMax = -kInfinity ; - noEntries = vertices->entries() ; + noEntries = vertices->size() ; noBetweenSections4 = noEntries - 4 ; - + /* + G4cout<<"vertices = "<kMaxMeshSections) { - noCrossSections=kMaxMeshSections ; + noCrossSections = kMaxMeshSections ; } - meshAngle = fDPhi/(noCrossSections - 1) ; - meshRMax = fRMax/cos(meshAngle*0.5) ; + // noCrossSections = 4 ; + meshAngle = fDPhi/(noCrossSections - 1) ; + // meshAngle = fDPhi/(noCrossSections) ; + + meshRMax = (fRMax+100*kCarTolerance)/cos(meshAngle*0.5) ; + meshRMin = fRMin - 100*kCarTolerance ; + // 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. @@ -1672,18 +1698,27 @@ G4Tubs::CreateRotatedVertices(const G4AffineTransform& pTransform) const if ( vertices ) { - for (crossSection=0;crossSectionsize(); for(G4int a = 0; a < entr; a++) { - if (0 < a < places->size()) + if ((0 < a) && (a < places->size())) place = (G4Axis2Placement3D*)((*places)[a]); tmpsld = (*tmpsldV)[a]; if (tmpsld) diff --git a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc index 78e70333cc..29cb583d9c 100644 --- a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4RepresentationRelationshipWithTransformationCreator.cc,v 1.3 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc index c62560e27b..441073cf82 100644 --- a/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShapeDefinitionRepresentationCreator.cc,v 1.6 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc index 432400c7ed..50ae5eb84a 100644 --- a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShapeRepresentationCreator.cc,v 1.5 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc index d48aa174a7..dde3483d5b 100644 --- a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShapeRepresentationRelationshipCreator.cc,v 1.3 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc index 891efab60d..850bb8c918 100644 --- a/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4SphericalSurfaceCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc index 10ced07599..b4c5eb09b4 100644 --- a/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4ToroidalSurfaceCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc b/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc index 305444e812..6b3ac0a17f 100644 --- a/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VectorCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc b/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc index 345366d7bb..6731525766 100644 --- a/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VertexPointCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/History b/source/geometry/solids/specific/History index af9d17f879..1eeaa933fd 100644 --- a/source/geometry/solids/specific/History +++ b/source/geometry/solids/specific/History @@ -1,4 +1,4 @@ -$Id: History,v 1.19 2001/04/20 19:13:47 gcosmo Exp $ +$Id: History,v 1.21 2002/05/08 13:51:26 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +08-May-2002, J.Allison (geom-solids-specific-V04-00-01) +- Implemented G4EllipticalTube::CreatePolyhedron. + +10-Jan-2002, G.Cosmo (geom-solids-specific-V04-00-00) +- Updated unit tests. + 20-Apr-2001, G.Cosmo (geom-solids-specific-V03-01-00) - Migration to STL vector: o In G4ClippablePolygon, migrated G4ThreeVectorList typedef and diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.hh b/source/geometry/solids/specific/include/G4ClippablePolygon.hh index 40fabedf34..54b05cb037 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.hh +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.hh,v 1.6 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.icc b/source/geometry/solids/specific/include/G4ClippablePolygon.icc index af0e68c4c1..1c5a39663d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.hh b/source/geometry/solids/specific/include/G4EllipticalTube.hh index 0b4612b959..a481c434b3 100644 --- a/source/geometry/solids/specific/include/G4EllipticalTube.hh +++ b/source/geometry/solids/specific/include/G4EllipticalTube.hh @@ -22,7 +22,7 @@ // // // $Id: G4EllipticalTube.hh,v 1.9 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh index b04b28c2ec..e34b520fd7 100644 --- a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh +++ b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EnclosingCylinder.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Hype.hh b/source/geometry/solids/specific/include/G4Hype.hh index c7e0bca555..4ab113fee1 100644 --- a/source/geometry/solids/specific/include/G4Hype.hh +++ b/source/geometry/solids/specific/include/G4Hype.hh @@ -23,7 +23,7 @@ // // $Id: G4Hype.hh,v 1.5 2001/07/11 10:00:14 gunter Exp $ // $Original: G4Hype.hh,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Hype.icc b/source/geometry/solids/specific/include/G4Hype.icc index 9cd53b6b48..0144015001 100644 --- a/source/geometry/solids/specific/include/G4Hype.icc +++ b/source/geometry/solids/specific/include/G4Hype.icc @@ -22,7 +22,7 @@ // // // $Id: G4Hype.icc,v 1.2 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4IntersectingCone.hh b/source/geometry/solids/specific/include/G4IntersectingCone.hh index 320556f767..a05c8bc50c 100644 --- a/source/geometry/solids/specific/include/G4IntersectingCone.hh +++ b/source/geometry/solids/specific/include/G4IntersectingCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4IntersectingCone.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.hh b/source/geometry/solids/specific/include/G4PolyPhiFace.hh index 1f88a35457..fb53a1c006 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.hh +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.icc b/source/geometry/solids/specific/include/G4PolyPhiFace.icc index 804fe43e49..30042fe225 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.icc +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.icc @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.icc,v 1.3 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polycone.hh b/source/geometry/solids/specific/include/G4Polycone.hh index 77198a65a5..a55a97f312 100644 --- a/source/geometry/solids/specific/include/G4Polycone.hh +++ b/source/geometry/solids/specific/include/G4Polycone.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polycone.hh,v 1.6 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4PolyconeSide.hh b/source/geometry/solids/specific/include/G4PolyconeSide.hh index 43287f639e..cada2bf5bc 100644 --- a/source/geometry/solids/specific/include/G4PolyconeSide.hh +++ b/source/geometry/solids/specific/include/G4PolyconeSide.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyconeSide.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polyhedra.hh b/source/geometry/solids/specific/include/G4Polyhedra.hh index 0524633361..6641845744 100644 --- a/source/geometry/solids/specific/include/G4Polyhedra.hh +++ b/source/geometry/solids/specific/include/G4Polyhedra.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedra.hh,v 1.5 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4PolyhedraSide.hh b/source/geometry/solids/specific/include/G4PolyhedraSide.hh index b2e290567b..0e0f01247d 100644 --- a/source/geometry/solids/specific/include/G4PolyhedraSide.hh +++ b/source/geometry/solids/specific/include/G4PolyhedraSide.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyhedraSide.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh index 652904405f..c13be8605c 100644 --- a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh +++ b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReduciblePolygon.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4SolidExtentList.hh b/source/geometry/solids/specific/include/G4SolidExtentList.hh index a66cb10ccb..0fbb2ef2e7 100644 --- a/source/geometry/solids/specific/include/G4SolidExtentList.hh +++ b/source/geometry/solids/specific/include/G4SolidExtentList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SolidExtentList.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4VCSGface.hh b/source/geometry/solids/specific/include/G4VCSGface.hh index 1868bc173d..5ee70728da 100644 --- a/source/geometry/solids/specific/include/G4VCSGface.hh +++ b/source/geometry/solids/specific/include/G4VCSGface.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCSGface.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4VCSGfaceted.hh b/source/geometry/solids/specific/include/G4VCSGfaceted.hh index 4d1c3a771a..7463eef090 100644 --- a/source/geometry/solids/specific/include/G4VCSGfaceted.hh +++ b/source/geometry/solids/specific/include/G4VCSGfaceted.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCSGfaceted.hh,v 1.6 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4ClippablePolygon.cc b/source/geometry/solids/specific/src/G4ClippablePolygon.cc index 9afbaaa07d..3186148d35 100644 --- a/source/geometry/solids/specific/src/G4ClippablePolygon.cc +++ b/source/geometry/solids/specific/src/G4ClippablePolygon.cc @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.cc,v 1.6 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4EllipticalTube.cc b/source/geometry/solids/specific/src/G4EllipticalTube.cc index dcb5019c84..919761e2c7 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.10 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4EllipticalTube.cc,v 1.11 2002/05/08 13:51:26 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- @@ -636,15 +636,11 @@ G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p ) const // G4Polyhedron* G4EllipticalTube::CreatePolyhedron() const { - if (dx==dy) { - // - // Special case (useful for debugging) - // - return new G4PolyhedronTubs( 0.0, dx, dz, 0, 2*M_PI ); - } - - G4cerr << "G4EllipticalTube: visualization of this type of solid is not supported at this time" << G4endl; - return 0; + // create cylinder with radius=1... + G4Polyhedron* eTube = new G4PolyhedronTube(0.,1.,dz); + // apply non-uniform scaling... + eTube->Transform(G4Scale3D(dx,dy,1.)); + return eTube; } diff --git a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc index f1776baa96..647006ec39 100644 --- a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc +++ b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EnclosingCylinder.cc,v 1.3 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Hype.cc b/source/geometry/solids/specific/src/G4Hype.cc index ac45914dbc..0e3b3d80f8 100644 --- a/source/geometry/solids/specific/src/G4Hype.cc +++ b/source/geometry/solids/specific/src/G4Hype.cc @@ -23,7 +23,7 @@ // // $Id: G4Hype.cc,v 1.7 2001/07/11 10:00:16 gunter Exp $ // $Original: G4Hype.cc,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4IntersectingCone.cc b/source/geometry/solids/specific/src/G4IntersectingCone.cc index 1be88441f5..cc61e7edd3 100644 --- a/source/geometry/solids/specific/src/G4IntersectingCone.cc +++ b/source/geometry/solids/specific/src/G4IntersectingCone.cc @@ -22,7 +22,7 @@ // // // $Id: G4IntersectingCone.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4PolyPhiFace.cc b/source/geometry/solids/specific/src/G4PolyPhiFace.cc index a217009274..e833d749a9 100644 --- a/source/geometry/solids/specific/src/G4PolyPhiFace.cc +++ b/source/geometry/solids/specific/src/G4PolyPhiFace.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Polycone.cc b/source/geometry/solids/specific/src/G4Polycone.cc index 3a46f87bb1..8c3e9ff07e 100644 --- a/source/geometry/solids/specific/src/G4Polycone.cc +++ b/source/geometry/solids/specific/src/G4Polycone.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polycone.cc,v 1.5 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4PolyconeSide.cc b/source/geometry/solids/specific/src/G4PolyconeSide.cc index 275f0195fb..c13963755a 100644 --- a/source/geometry/solids/specific/src/G4PolyconeSide.cc +++ b/source/geometry/solids/specific/src/G4PolyconeSide.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolyconeSide.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Polyhedra.cc b/source/geometry/solids/specific/src/G4Polyhedra.cc index 1e735b15ae..2073df2d3d 100644 --- a/source/geometry/solids/specific/src/G4Polyhedra.cc +++ b/source/geometry/solids/specific/src/G4Polyhedra.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedra.cc,v 1.3 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4PolyhedraSide.cc b/source/geometry/solids/specific/src/G4PolyhedraSide.cc index 9ce3cd8727..376dcd8d55 100644 --- a/source/geometry/solids/specific/src/G4PolyhedraSide.cc +++ b/source/geometry/solids/specific/src/G4PolyhedraSide.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolyhedraSide.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc index 7a05eb653a..f86f594fcc 100644 --- a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc +++ b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReduciblePolygon.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4SolidExtentList.cc b/source/geometry/solids/specific/src/G4SolidExtentList.cc index 5de79afa36..6790fe8d00 100644 --- a/source/geometry/solids/specific/src/G4SolidExtentList.cc +++ b/source/geometry/solids/specific/src/G4SolidExtentList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SolidExtentList.cc,v 1.2 2001/07/11 10:00:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4VCSGfaceted.cc b/source/geometry/solids/specific/src/G4VCSGfaceted.cc index 018e8304d1..0098fd90b1 100644 --- a/source/geometry/solids/specific/src/G4VCSGfaceted.cc +++ b/source/geometry/solids/specific/src/G4VCSGfaceted.cc @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4VCSGfaceted.cc,v 1.7 2001/07/11 10:00:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/verification/History b/source/geometry/verification/History index 9cfee484ac..96afaf5762 100644 --- a/source/geometry/verification/History +++ b/source/geometry/verification/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2001/10/24 22:12:44 gcosmo Exp $ +$Id: History,v 1.7 2002/04/19 08:22:38 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Apr 19th, 2002 G.Cosmo (geomver-V04-00-00) +- Moved inline constructors and destructors to no inline. + Affected files: G4GeomTestStreamLogger[.hh.cc]. + Oct 24th, 2001 G.Cosmo (geomver-V03-02-02) - Fixed compilation error and warnings on HP-aCC. Modified files: G4GeomTestVolume.cc, G4GeomTestStreamLogger.cc. diff --git a/source/geometry/verification/include/G4GeomTestErrorList.hh b/source/geometry/verification/include/G4GeomTestErrorList.hh index dc6915c82e..6dd6f7ec08 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestLogger.hh b/source/geometry/verification/include/G4GeomTestLogger.hh index d2498e6adf..1ba1bed8e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestOverlapList.hh b/source/geometry/verification/include/G4GeomTestOverlapList.hh index 84d058bad5..d6c857a849 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestOvershootList.hh b/source/geometry/verification/include/G4GeomTestOvershootList.hh index 75b9df512d..ed921482f1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestPoint.hh b/source/geometry/verification/include/G4GeomTestPoint.hh index 53fbd8df2f..95a7685669 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestSegment.hh b/source/geometry/verification/include/G4GeomTestSegment.hh index 2f0b9732e5..7a2537e2c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestStreamLogger.hh b/source/geometry/verification/include/G4GeomTestStreamLogger.hh index 6dd0b0a95c..c462723b70 100644 --- a/source/geometry/verification/include/G4GeomTestStreamLogger.hh +++ b/source/geometry/verification/include/G4GeomTestStreamLogger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestStreamLogger.hh,v 1.2 2001/10/22 13:04:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GeomTestStreamLogger.hh,v 1.3 2002/04/19 08:23:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -49,7 +49,7 @@ class G4GeomTestStreamLogger : public G4GeomTestLogger G4GeomTestStreamLogger( G4std::ostream &o, G4int theMaxPointsPerError=20 ); - virtual ~G4GeomTestStreamLogger() {;} + virtual ~G4GeomTestStreamLogger(); // Constructors and virtual destructor virtual void SolidProblem( const G4VSolid *solid, diff --git a/source/geometry/verification/include/G4GeomTestVolPoint.hh b/source/geometry/verification/include/G4GeomTestVolPoint.hh index 521b3858ce..68c0886242 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestVolume.hh b/source/geometry/verification/include/G4GeomTestVolume.hh index 714790b1ec..c280c230d7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/src/G4GeomTestErrorList.cc b/source/geometry/verification/src/G4GeomTestErrorList.cc index e78829f39e..741913e6e6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestOverlapList.cc b/source/geometry/verification/src/G4GeomTestOverlapList.cc index bc64b448fb..2a4b809d39 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestOvershootList.cc b/source/geometry/verification/src/G4GeomTestOvershootList.cc index 9900ec0daf..49656c2bf4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestPoint.cc b/source/geometry/verification/src/G4GeomTestPoint.cc index c09294f192..fd34241ece 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestSegment.cc b/source/geometry/verification/src/G4GeomTestSegment.cc index 73775f8c75..a6e2df023e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestStreamLogger.cc b/source/geometry/verification/src/G4GeomTestStreamLogger.cc index 457b50aa8a..7c9c6c5391 100644 --- a/source/geometry/verification/src/G4GeomTestStreamLogger.cc +++ b/source/geometry/verification/src/G4GeomTestStreamLogger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestStreamLogger.cc,v 1.4 2001/10/24 22:09:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GeomTestStreamLogger.cc,v 1.5 2002/04/19 08:23:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -40,13 +40,15 @@ #include "G4GeomTestOvershootList.hh" // -// Constructor +// Constructor and destructor // G4GeomTestStreamLogger::G4GeomTestStreamLogger( G4std::ostream &o, G4int theMaxPointsPerError ) : out(o), maxPointsPerError(theMaxPointsPerError) {;} +G4GeomTestStreamLogger::~G4GeomTestStreamLogger() +{;} // // ::PrintPos diff --git a/source/geometry/verification/src/G4GeomTestVolPoint.cc b/source/geometry/verification/src/G4GeomTestVolPoint.cc index 1a3e8134fa..a7284cc501 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestVolume.cc b/source/geometry/verification/src/G4GeomTestVolume.cc index 302aedc621..ccd51a9633 100644 --- a/source/geometry/verification/src/G4GeomTestVolume.cc +++ b/source/geometry/verification/src/G4GeomTestVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolume.cc,v 1.4 2001/10/24 22:09:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/volumes/GNUmakefile b/source/geometry/volumes/GNUmakefile index 170e316b89..ea3f314be1 100644 --- a/source/geometry/volumes/GNUmakefile +++ b/source/geometry/volumes/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2001/10/24 15:33:47 gcosmo Exp $ +# $Id: GNUmakefile,v 1.5 2002/01/10 16:04:37 gcosmo Exp $ # -------------------------------------------------------------------- # GNUmakefile for geometry/volumes library. Gabriele Cosmo, 16/11/96. # -------------------------------------------------------------------- @@ -20,6 +20,13 @@ CPPFLAGS += -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/geometry/verification/include \ -I$(G4BASE)/geometry/management/include +ifdef G4DEBUG_NAVIGATION + CPPFLAGS += -DG4DEBUG_NAVIGATION +endif +ifdef G4DEBUG_FIELD + CPPFLAGS += -DG4DEBUG_FIELD +endif + include $(G4INSTALL)/config/common.gmk CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) diff --git a/source/geometry/volumes/History b/source/geometry/volumes/History index bd6243bd9b..666f050684 100644 --- a/source/geometry/volumes/History +++ b/source/geometry/volumes/History @@ -1,4 +1,4 @@ -$Id: History,v 1.63 2001/12/11 17:56:54 gcosmo Exp $ +$Id: History,v 1.78 2002/06/13 08:57:37 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,86 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 13th, 2002 J. Apostolakis - geomvol-V04-00-10 +- G4Navigator.cc + o Fix for navigation problem (dereference null volume pointer) in exampleN05 + caused by ExitNormal fix. + +Jun 3rd, 2002 G. Cosmo - geomvol-V04-00-09 +- G4Navigator[.hh.icc.cc]: + o Cosmetics for Software Reference Manual and formatting. + o Fixed few cases of endl/G4endl mystypes... + +May 31st, 2002 J. Apostolakis - geomvol-V04-00-08 +- G4Navigator.cc: + o Corrections for problem report #351, #284 concerning ExitNormal: + - using Daugther's solid preferentially (if applicable) + - adjusting fEntering/fEnteredDaugther in LocateGlobalPointAndSetup + to enable this + - correcting location of point for which exit normal is requested + for 'non-convex point' on solid boundary + Thanks to Bryan Tipton (tipton@krl.caltech.edu), + Antonis Papanestis (antonis.papanestis@cern.ch) + and Peter Gumplinger for their demonstrations of the delicate problem. + +May 15th, 2002 G. Cosmo - geomvol-V04-00-07 +- G4ParameterisedNavigation: + o Introduced 3D voxelisation technique for parameterised volumes with + unspecified axis. Changed to become subclass of G4VoxelNavigation and + adopt the same voxel location algorithms for optimised navigation. +- G4VoxelNavigation: + o Changed to become base class for optimised navigation. + o Cosmetics and reformatting. +- G4NormalNavigation.icc, G4ReplicaNavigation.icc, G4VoxelNavigation.icc: + o Minor optimisations. + o Cosmetics and reformatting. +- G4Navigator.cc: + o Invoke specific VoxelLocate call for parameterised navigation. +- Co-works with "global-V04-00-06" and "geommng-V04-00-05". + +Apr 19th, 2002 G. Cosmo - geomvol-V04-00-06 +- Moved inline constructors and destructors to no inline. + Affected files: G4BlockingList[.icc,cc], G4NavigationHistory[.icc,.cc], + G4PropagatorInField[.hh.icc.cc]. + +Apr 3rd, 2002 G. Cosmo - geomvol-V04-00-05 +- G4GeometryMessenger[.hh.cc]: added new commands to exploit more features of the + G4GeomTestVolume class for detecting geometry overlaps: + o /geometry/test/grid_test - runs the default grid test, same as "run". + o /geometry/test/recursive_test - runs the grid test in recursive mode. + o /geometry/test/cylinder_test - to shoot lines in a cylindrical pattern. + o /geometry/test/line_test - to shoot a line according to position and direction. + +Mar 22nd, 2002 J. Apostolakis - geomvol-V04-00-04 +- G4PropagatorInField: added Set/Get methods for MaximumEpsilonStep + +Feb 20th, 2002 G. Cosmo - geomvol-V04-00-03 +- G4GeometryMessenger.cc: fixed local variable name not to clash with + class data member. + +Jan 21st, 2002 J. Apostolakis - geomvol-V04-00-02 +- G4Navigator: reset blocked volume when locating 'within volume', + after ensuring that it does not get called when + ComputeSafety() is at a boundary. + --> Fix for cases of longstanding 'Point P is Inside' errors. + +Jan 10th, 2002 G. Cosmo - geomvol-V04-00-01 +- Activated mechanism in GNUmakefile for allowing compilation with + G4DEBUG_FIELD or G4DEBUG_NAVIGATION flags. Replaced DEBUG with + G4DEBUG_NAVIGATION in G4Navigator.cc. + +Jan 8th, 2002 J. Apostolakis - geomvol-V04-00-00 +- G4AuxiliaryNavServices + o Fixed it so that it only considers whether a (Point,Direction) 'ray' if + it is on the surface (it was mistakenly also checking those inside, and + rejecting them.) + [ This erroneous condition occurred frequently in the new usage of Locate + with Direction to initialise a step. + It's unclear if it occurred also at other times.] + +Jan 8th, 2002 G. Cosmo +- Fixed compilation problems and warnings on unit tests. + (G.Cosmo, R.Chytracek) Dec 11th, 2001 G. Cosmo - geomvol-V03-02-08 - G4Navigator: @@ -212,6 +292,16 @@ November 1st, 2000 G. Cosmo - geomvol-V02-00-00 o Added "inline" qualifier to methods' declarations. o General cosmetics +June 2nd, 2000 J. Apostolakis - geomvol-V01-01-02 + +include/G4PropagatorInField.hh,icc + o Moved Delta Intersection and Delta One Step to FieldManager + (from Propagator in Field), to allow them to differ over the detector. + +G4TransportationManager.cc + o Changed static variable for above (default values). + + May 17th, 2000 G. Cosmo - geomvol-V01-01-01 G4ReplicaNavigation.cc: @@ -236,11 +326,10 @@ in geometry-V01-01-02 [ ie: Introduced kCarTolerance for check over taken step length and TruePathLength in G4PropagatorInField::ComputeStep(). ] - May 8th, 2000 J. Apostolakis - geomvol-fieldImprove1 Internal tag for version that improves the behavior of the field. -[ it does not include the changes of geometry-V01-01-02 ] +[ it does not include the changes of geometry-V01-01-02 ] May 5th, 2000 J. Apostolakis diff --git a/source/geometry/volumes/include/G4AuxiliaryNavServices.hh b/source/geometry/volumes/include/G4AuxiliaryNavServices.hh index 7c0d62f9a2..e6259a75dd 100644 --- a/source/geometry/volumes/include/G4AuxiliaryNavServices.hh +++ b/source/geometry/volumes/include/G4AuxiliaryNavServices.hh @@ -22,7 +22,7 @@ // // // $Id: G4AuxiliaryNavServices.hh,v 1.4 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4NormalNavigation diff --git a/source/geometry/volumes/include/G4AuxiliaryNavServices.icc b/source/geometry/volumes/include/G4AuxiliaryNavServices.icc index 7927c36a1f..9b2029863b 100644 --- a/source/geometry/volumes/include/G4AuxiliaryNavServices.icc +++ b/source/geometry/volumes/include/G4AuxiliaryNavServices.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AuxiliaryNavServices.icc,v 1.4 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4AuxiliaryNavServices.icc,v 1.5 2002/01/08 14:20:31 japost Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4AuxiliaryNavServices Inline implementation @@ -35,11 +35,13 @@ inline G4bool G4AuxiliaryNavServices::CheckPointOnSurface( const G4VSolid* sampl const G4bool locatedOnEdge) { G4ThreeVector localDirection, sampleNormal; - G4bool enter=false; + G4bool enter=false; - if (sampleSolid->Inside(localPoint)!=kOutside) + EInside insideSolid=sampleSolid->Inside(localPoint); + if (insideSolid!=kOutside) { - if(locatedOnEdge && (globalDirection!=0)) + G4bool checkDirection= locatedOnEdge && (globalDirection!=0); + if( (insideSolid==kSurface) && checkDirection) { // We are probably located on an edge. localDirection= sampleTransform.TransformAxis(*globalDirection); diff --git a/source/geometry/volumes/include/G4BlockingList.hh b/source/geometry/volumes/include/G4BlockingList.hh index 5f9f71b4a7..5f0c41feaa 100644 --- a/source/geometry/volumes/include/G4BlockingList.hh +++ b/source/geometry/volumes/include/G4BlockingList.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlockingList.hh,v 1.6 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4BlockingList // diff --git a/source/geometry/volumes/include/G4BlockingList.icc b/source/geometry/volumes/include/G4BlockingList.icc index c0d16f745e..fdbadaef9a 100644 --- a/source/geometry/volumes/include/G4BlockingList.icc +++ b/source/geometry/volumes/include/G4BlockingList.icc @@ -21,23 +21,13 @@ // ******************************************************************** // // -// $Id: G4BlockingList.icc,v 1.5 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BlockingList.icc,v 1.6 2002/04/19 08:21:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4BlockingList Inlined Implementation // -inline G4BlockingList::G4BlockingList(G4int maxDefault,G4int stride) - : fStride(stride), fBlockingList(maxDefault,0) -{ -} - -// Do nothing destructor -inline G4BlockingList::~G4BlockingList() -{ -} - inline G4int G4BlockingList::Length() const { return fBlockingList.size(); diff --git a/source/geometry/volumes/include/G4GRSSolid.hh b/source/geometry/volumes/include/G4GRSSolid.hh index 961440407f..4c7aa69c7e 100644 --- a/source/geometry/volumes/include/G4GRSSolid.hh +++ b/source/geometry/volumes/include/G4GRSSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.hh,v 1.5 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4GRSSolid diff --git a/source/geometry/volumes/include/G4GRSSolid.icc b/source/geometry/volumes/include/G4GRSSolid.icc index 869a5f51e9..6abf1ba518 100644 --- a/source/geometry/volumes/include/G4GRSSolid.icc +++ b/source/geometry/volumes/include/G4GRSSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.icc,v 1.5 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4GRSSolid inline implementation diff --git a/source/geometry/volumes/include/G4GRSSolidHandle.hh b/source/geometry/volumes/include/G4GRSSolidHandle.hh index fd0c1bbce9..e7af6224ef 100644 --- a/source/geometry/volumes/include/G4GRSSolidHandle.hh +++ b/source/geometry/volumes/include/G4GRSSolidHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolidHandle.hh,v 1.3 2001/11/06 17:08:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class G4TouchableHandle // diff --git a/source/geometry/volumes/include/G4GRSVolume.hh b/source/geometry/volumes/include/G4GRSVolume.hh index f134f955dd..0cd7566c1c 100644 --- a/source/geometry/volumes/include/G4GRSVolume.hh +++ b/source/geometry/volumes/include/G4GRSVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.hh,v 1.5 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4GRSVolume diff --git a/source/geometry/volumes/include/G4GRSVolume.icc b/source/geometry/volumes/include/G4GRSVolume.icc index ef2c7963b5..6598b3c020 100644 --- a/source/geometry/volumes/include/G4GRSVolume.icc +++ b/source/geometry/volumes/include/G4GRSVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.icc,v 1.6 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4GRSVolume inline implementation diff --git a/source/geometry/volumes/include/G4GRSVolumeHandle.hh b/source/geometry/volumes/include/G4GRSVolumeHandle.hh index ffe63dfadb..e5f3b9a3cc 100644 --- a/source/geometry/volumes/include/G4GRSVolumeHandle.hh +++ b/source/geometry/volumes/include/G4GRSVolumeHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolumeHandle.hh,v 1.3 2001/11/06 17:08:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class G4TouchableHandle // diff --git a/source/geometry/volumes/include/G4GeometryMessenger.hh b/source/geometry/volumes/include/G4GeometryMessenger.hh index d4f46d90e6..886e731b80 100644 --- a/source/geometry/volumes/include/G4GeometryMessenger.hh +++ b/source/geometry/volumes/include/G4GeometryMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryMessenger.hh,v 1.2 2001/10/24 18:10:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GeometryMessenger.hh,v 1.3 2002/04/03 11:51:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -48,9 +48,10 @@ class G4UIcommand; class G4UIcmdWith3VectorAndUnit; class G4UIcmdWith3Vector; class G4UIcmdWithoutParameter; -class G4UIcmdWithABool; class G4UIcmdWithADoubleAndUnit; class G4TransportationManager; +class G4GeomTestStreamLogger; +class G4GeomTestVolume; class G4GeometryMessenger : public G4UImessenger { @@ -65,26 +66,31 @@ class G4GeometryMessenger : public G4UImessenger protected: + void Init(); void ResetNavigator(); - void RunTest(); + void LineTest(); + void GridTest(); + void RecursiveGridTest(); + void CylinderTest(); G4UIdirectory *geodir, *navdir, *testdir; G4UIcmdWith3VectorAndUnit *posCmd, *dirCmd; - G4UIcmdWithoutParameter *runCmd, *resCmd; - G4UIcmdWithABool *addCmd; + G4UIcmdWithoutParameter *linCmd, *grdCmd, *recCmd, + *cylCmd, *runCmd, *resCmd; G4UIcmdWithADoubleAndUnit *tolCmd; private: G4bool geometryOpened; G4ThreeVector x, p; - G4bool extra, newtol; + G4bool newtol; G4double tol; private: G4TransportationManager* tmanager; - + G4GeomTestStreamLogger* tlogger; + G4GeomTestVolume* tvolume; }; #endif diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.hh b/source/geometry/volumes/include/G4LogicalBorderSurface.hh index 7987efc61a..5308857ead 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.hh +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.hh,v 1.7 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // class G4LogicalBorderSurface diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.icc b/source/geometry/volumes/include/G4LogicalBorderSurface.icc index 96489f5ffd..5fb02c1b9d 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.icc +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.icc,v 1.4 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4LogicalBorderSurface inline implementation diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.hh b/source/geometry/volumes/include/G4LogicalSkinSurface.hh index 794af82a78..a32d88988d 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.hh +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.hh,v 1.7 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // class G4LogicalSkinSurface diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.icc b/source/geometry/volumes/include/G4LogicalSkinSurface.icc index e59951a096..b8c6c6e9f7 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.icc +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.icc,v 1.4 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4LogicalSkinSurface inline implementation diff --git a/source/geometry/volumes/include/G4NavigationHistory.hh b/source/geometry/volumes/include/G4NavigationHistory.hh index 18040d87e3..fe5d8d11d3 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.hh +++ b/source/geometry/volumes/include/G4NavigationHistory.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationHistory.hh,v 1.9 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4NavigationHistory // diff --git a/source/geometry/volumes/include/G4NavigationHistory.icc b/source/geometry/volumes/include/G4NavigationHistory.icc index c4920711dc..43b95521af 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.icc +++ b/source/geometry/volumes/include/G4NavigationHistory.icc @@ -21,33 +21,13 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.icc,v 1.5 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NavigationHistory.icc,v 1.6 2002/04/19 08:22:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4NavigationHistory Inline implementation // -inline -G4NavigationHistory::G4NavigationHistory() - : fNavHistory(kHistoryMax), fStackDepth(0) -{ - Reset(); // Reset depth - Clear(); -} - -inline -G4NavigationHistory::G4NavigationHistory(const G4NavigationHistory &h) - : fNavHistory(h.fNavHistory), fStackDepth(h.fStackDepth) -{ -} - -inline G4NavigationHistory::~G4NavigationHistory() -{ - Reset(); // To delete all but one current entries! - // delete fNavHistory(0); -} - inline G4NavigationHistory& G4NavigationHistory::operator=(const G4NavigationHistory &h) diff --git a/source/geometry/volumes/include/G4NavigationLevel.hh b/source/geometry/volumes/include/G4NavigationLevel.hh index 8af8977ce8..d93f16ebb2 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.hh +++ b/source/geometry/volumes/include/G4NavigationLevel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevel.hh,v 1.13 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4NavigationLevel // diff --git a/source/geometry/volumes/include/G4NavigationLevel.icc b/source/geometry/volumes/include/G4NavigationLevel.icc index 96276f5d35..c5afef9ab1 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.icc +++ b/source/geometry/volumes/include/G4NavigationLevel.icc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevel.icc,v 1.11 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 30.09.97 J.Apostolakis Initial version. // diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.hh b/source/geometry/volumes/include/G4NavigationLevelRep.hh index c31c830cc3..e0e8ab6d5c 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.hh +++ b/source/geometry/volumes/include/G4NavigationLevelRep.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevelRep.hh,v 1.6 2001/07/11 10:00:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4NavigationLevelRep // diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.icc b/source/geometry/volumes/include/G4NavigationLevelRep.icc index 26f74ac5f7..64c837e493 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.icc +++ b/source/geometry/volumes/include/G4NavigationLevelRep.icc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevelRep.icc,v 1.5 2001/07/11 10:00:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 1 October 1997 J.Apostolakis Initial version. // diff --git a/source/geometry/volumes/include/G4Navigator.hh b/source/geometry/volumes/include/G4Navigator.hh index 36d8943862..6b82db676a 100644 --- a/source/geometry/volumes/include/G4Navigator.hh +++ b/source/geometry/volumes/include/G4Navigator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Navigator.hh,v 1.15 2001/12/06 09:35:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Navigator.hh,v 1.18 2002/06/03 10:17:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Navigator @@ -124,9 +124,9 @@ class G4Navigator // Destructor. No actions. G4double ComputeStep(const G4ThreeVector &pGlobalPoint, - const G4ThreeVector &pDirection, - const G4double pCurrentProposedStepLength, - G4double &pNewSafety); + const G4ThreeVector &pDirection, + const G4double pCurrentProposedStepLength, + G4double &pNewSafety); // Calculate the distance to the next boundary intersected // along the specified NORMALISED vector direction and // from the specified point in the global coordinate @@ -140,31 +140,32 @@ class G4Navigator // is returned together with the computed isotropic safety // distance. Geometry must be closed. - inline G4VPhysicalVolume* LocateGlobalPointAndSetup(const G4ThreeVector &point, - const G4ThreeVector &direction, - const G4TouchableHistory &h); + inline + G4VPhysicalVolume* LocateGlobalPointAndSetup(const G4ThreeVector &point, + const G4ThreeVector &direction, + const G4TouchableHistory &h); G4VPhysicalVolume* LocateGlobalPointAndSetup(const G4ThreeVector& point, - const G4ThreeVector* direction=0, - const G4bool pRelativeSearch=true, - const G4bool ignoreDirection=true); + const G4ThreeVector* direction=0, + const G4bool pRelativeSearch=true, + const G4bool ignoreDirection=true); // Search the geometrical hierarchy for the volumes deepest in the hierarchy // containing the point in the global coordinate space. Two main cases are: // i) If pRelativeSearch=false it makes use of no previous/state // information. Returns the physical volume containing the point, // with all previous mothers correctly set up. - // ii) If pRelativeSearch is set to true, the search begin is the geometrical - // hierarchy at the location of the last located point, or the endpoint of - // the previous Step if SetGeometricallyLimitedStep() has been called - // immediately before. + // ii) If pRelativeSearch is set to true, the search begin is the + // geometrical hierarchy at the location of the last located point, + // or the endpoint of the previous Step if SetGeometricallyLimitedStep() + // has been called immediately before. // The direction is used (to check if a volume is entered) if either // - the argument ignoreDirection is false, or - // - the Navigator has determined that it is on an edge shared by two or more - // volumes. (This is state information.) + // - the Navigator has determined that it is on an edge shared by two or + // more volumes. (This is state information.) // // Important Note: In order to call this the geometry MUST be closed. - void LocateGlobalPointWithinVolume( const G4ThreeVector& position); + void LocateGlobalPointWithinVolume(const G4ThreeVector& position); // Notify the Navigator that a track has moved to the new Global point // 'position', that is known to be within the current safety. // No check is performed to ensure that it is within the volume. @@ -174,27 +175,27 @@ class G4Navigator // only if the point is within safety. void LocateGlobalPointAndUpdateTouchableHandle( - const G4ThreeVector& position, - const G4ThreeVector& direction, - G4TouchableHandle& oldTouchableToUpdate, - const G4bool RelativeSearch =true); + const G4ThreeVector& position, + const G4ThreeVector& direction, + G4TouchableHandle& oldTouchableToUpdate, + const G4bool RelativeSearch = true); // First, search the geometrical hierarchy like the above method // LocateGlobalPointAndSetup(). Then use the volume found and its // navigation history to update the touchable. inline void LocateGlobalPointAndUpdateTouchable( - const G4ThreeVector& position, - const G4ThreeVector& direction, - G4VTouchable* touchableToUpdate, - const G4bool RelativeSearch =true); + const G4ThreeVector& position, + const G4ThreeVector& direction, + G4VTouchable* touchableToUpdate, + const G4bool RelativeSearch = true); // First, search the geometrical hierarchy like the above method // LocateGlobalPointAndSetup(). Then use the volume found and its // navigation history to update the touchable. inline void LocateGlobalPointAndUpdateTouchable( - const G4ThreeVector& position, - G4VTouchable* touchableToUpdate, - const G4bool RelativeSearch =true); + const G4ThreeVector& position, + G4VTouchable* touchableToUpdate, + const G4bool RelativeSearch = true); // Old version (missing direction). // Not recommended replace with newer version above. @@ -203,7 +204,7 @@ class G4Navigator // by the geometry was taken in its entirety. G4double ComputeSafety(const G4ThreeVector &globalpoint, - const G4double pProposedMaxLength=DBL_MAX ); + const G4double pProposedMaxLength = DBL_MAX); // Calculate the isotropic distance to the nearest boundary from the // specified point in the global coordinate system. // The globalpoint utilised must be within the current volume. @@ -340,19 +341,20 @@ class G4Navigator G4bool fEnteredDaughter; // A memory of whether in this Step a daughter // volume is entered (set in Compute & Locate) - // After Compute: it expects to enter a daughter + // After Compute: it expects to enter a daughter // After Locate: it has entered a daughter G4bool fExitedMother; // A similar memory whether the Step exited // current "mother" volume completely, // not entering daughter. - G4bool fValidExitNormal; // Set true if have leaving volume normal - G4ThreeVector fExitNormal; // Leaving volume normal, in the - // volume containing the exited - // volume's coordinate system - + G4bool fValidExitNormal; // Set true if have leaving volume normal + G4ThreeVector fExitNormal; // Leaving volume normal, in the + // volume containing the exited + // volume's coordinate system + G4ThreeVector fGrandMotherExitNormal; // Leaving volume normal, in its + // own coordinate system G4NavigationHistory fHistory; - // Transformation & `path' history + // Transformation & `path' history // of current path through geomtrical // hierarchy @@ -376,7 +378,7 @@ class G4Navigator // BEGIN Tracking Invariants // - G4VPhysicalVolume *fTopPhysical; + G4VPhysicalVolume *fTopPhysical; // A link to the topmost physical volume in the detector. // Must be positioned at the origin and unrotated. diff --git a/source/geometry/volumes/include/G4Navigator.icc b/source/geometry/volumes/include/G4Navigator.icc index 46d860265b..d1ab9ec3f5 100644 --- a/source/geometry/volumes/include/G4Navigator.icc +++ b/source/geometry/volumes/include/G4Navigator.icc @@ -21,22 +21,31 @@ // ******************************************************************** // // -// $Id: G4Navigator.icc,v 1.8 2001/12/04 16:49:51 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Navigator.icc,v 1.9 2002/06/03 10:17:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4Navigator Inline implementation +// +// ******************************************************************** -// Return the local coordinate of the current track +// ******************************************************************** +// GetCurrentLocalCoordinate +// +// Returns the local coordinate of the current track +// ******************************************************************** // inline G4ThreeVector G4Navigator::GetCurrentLocalCoordinate() const { - return fLastLocatedPointLocal; + return fLastLocatedPointLocal; } - -// Return local direction of vector direction in world coord system +// ******************************************************************** +// ComputeLocalAxis +// +// Returns local direction of vector direction in world coord system +// ******************************************************************** // inline G4ThreeVector G4Navigator::ComputeLocalAxis(const G4ThreeVector& pVec) const @@ -45,83 +54,111 @@ G4ThreeVector G4Navigator::ComputeLocalAxis(const G4ThreeVector& pVec) const ? fHistory.GetTopTransform().TransformAxis(pVec) : pVec ; } -// Return local coordinates of a point in the world coord system +// ******************************************************************** +// ComputeLocalPoint +// +// Returns local coordinates of a point in the world coord system +// ******************************************************************** // inline -G4ThreeVector G4Navigator::ComputeLocalPoint(const G4ThreeVector& pGlobalPoint) const +G4ThreeVector +G4Navigator::ComputeLocalPoint(const G4ThreeVector& pGlobalPoint) const { return ( fHistory.GetTopTransform().TransformPoint(pGlobalPoint) ) ; } -// Return the current world (`topmost') volume +// ******************************************************************** +// GetWorldVolume +// +// Returns the current world (`topmost') volume +// ******************************************************************** // inline G4VPhysicalVolume* G4Navigator::GetWorldVolume() const { - return fTopPhysical; + return fTopPhysical; } -// Set the world (`topmost') volume +// ******************************************************************** +// SetWorldVolume +// +// Sets the world (`topmost') volume +// ******************************************************************** // inline void G4Navigator::SetWorldVolume(G4VPhysicalVolume* pWorld) { -// Setup the volume - pWorld->Setup(0); // No mother since world volume - if (!(pWorld->GetTranslation()==G4ThreeVector(0,0,0))) - { - G4Exception ("G4Navigator::SetWorldVolume - Must be centred on origin"); - } - const G4RotationMatrix* rm=pWorld->GetRotation(); - if (rm&&(!rm->isIdentity())) - { - G4Exception ("G4Navigator::SetWorldVolume - Must not be rotated"); - } - fTopPhysical=pWorld; + pWorld->Setup(0); // No mother since world volume + if ( !(pWorld->GetTranslation()==G4ThreeVector(0,0,0)) ) + { + G4Exception ("G4Navigator::SetWorldVolume - Must be centred on origin"); + } + const G4RotationMatrix* rm = pWorld->GetRotation(); + if ( rm && (!rm->isIdentity()) ) + { + G4Exception ("G4Navigator::SetWorldVolume - Must not be rotated"); + } + fTopPhysical = pWorld; fHistory.SetFirstEntry(pWorld); } -// Inform the navigator that the previous Step calculated +// ******************************************************************** +// SetGeometrycallyLimitedStep +// +// Informs the navigator that the previous Step calculated // by the geometry was taken in its entirety +// ******************************************************************** // inline void G4Navigator::SetGeometricallyLimitedStep() { - fWasLimitedByGeometry=true; + fWasLimitedByGeometry=true; } -// Reset stack and minimum of navigator state `machine' +// ******************************************************************** +// ResetState +// +// Resets stack and minimum of navigator state `machine' +// ******************************************************************** // inline void G4Navigator::ResetState() { - fWasLimitedByGeometry=false; - fEntering=false; - fExiting=false; - fLocatedOnEdge = false; - fLastStepWasZero= false; - fEnteredDaughter = false; - fExitedMother = false; + fWasLimitedByGeometry=false; + fEntering=false; + fExiting=false; + fLocatedOnEdge = false; + fLastStepWasZero= false; + fEnteredDaughter = false; + fExitedMother = false; - fValidExitNormal = false; - fExitNormal = G4ThreeVector(0,0,0); + fValidExitNormal = false; + fExitNormal = G4ThreeVector(0,0,0); - fPreviousSftOrigin = G4ThreeVector(0,0,0); - fPreviousSafety = 0.0; + fPreviousSftOrigin = G4ThreeVector(0,0,0); + fPreviousSafety = 0.0; - fBlockedPhysicalVolume=0; - fBlockedReplicaNo=-1; + fBlockedPhysicalVolume=0; + fBlockedReplicaNo=-1; } -// Reset stack and minimum of navigator state `machine' +// ******************************************************************** +// ResetStackAndState +// +// Resets stack and minimum of navigator state `machine' +// ******************************************************************** // inline void G4Navigator::ResetStackAndState() { - fHistory.Reset(); - ResetState(); + fHistory.Reset(); + ResetState(); } +// ******************************************************************** +// VolumeType +// ******************************************************************** +// inline EVolume G4Navigator::VolumeType(const G4VPhysicalVolume *pVol) const { @@ -130,18 +167,22 @@ EVolume G4Navigator::VolumeType(const G4VPhysicalVolume *pVol) const G4int nReplicas; G4double width,offset; G4bool consuming; - if (pVol->IsReplicated()) - { - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); - type=(consuming) ? kReplica : kParameterised; - } + if ( pVol->IsReplicated() ) + { + pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); + type = (consuming) ? kReplica : kParameterised; + } else - { - type=kNormal; - } + { + type = kNormal; + } return type; } +// ******************************************************************** +// CharacteriseDahghters +// ******************************************************************** +// inline EVolume G4Navigator::CharacteriseDaughters(const G4LogicalVolume *pLog) const { @@ -152,29 +193,31 @@ EVolume G4Navigator::CharacteriseDaughters(const G4LogicalVolume *pLog) const G4bool consuming; G4VPhysicalVolume *pVol; - if (pLog->GetNoDaughters()==1) + if ( pLog->GetNoDaughters()==1 ) + { + pVol = pLog->GetDaughter(0); + if (pVol->IsReplicated()) { - pVol=pLog->GetDaughter(0); - if (pVol->IsReplicated()) - { - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); - type=(consuming) ? kReplica : kParameterised; - } - else - { - type=kNormal; - } + pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); + type = (consuming) ? kReplica : kParameterised; } + else + { + type = kNormal; + } + } else - { - type=kNormal; - } + { + type = kNormal; + } return type; } -// JA April 30th, 1997 +// ******************************************************************** +// IsExitNormalCalid // -// Is the Surface Normal valid? +// Is the Surface Normal valid? +// ******************************************************************** // inline G4bool G4Navigator::IsExitNormalValid() @@ -182,8 +225,12 @@ G4bool G4Navigator::IsExitNormalValid() return fExiting && fValidExitNormal; } -// Obtain the Normal vector to a surface (in local coordinates) +// ******************************************************************** +// GetLocalExitNormal +// +// Obtains the Normal vector to a surface (in local coordinates) // (It is valid only if Navigator replied true to above function) +// ******************************************************************** // inline G4ThreeVector G4Navigator::GetLocalExitNormal() @@ -191,9 +238,13 @@ G4ThreeVector G4Navigator::GetLocalExitNormal() return fExitNormal; } -// Return local to global transformation. +// ******************************************************************** +// GetGlobalToLocalTransform +// +// Returns local to global transformation. // I.e. transformation that will take point or axis in world coord system // and return one in the local coord system +// ******************************************************************** // inline const G4AffineTransform& G4Navigator::GetGlobalToLocalTransform() const @@ -201,17 +252,25 @@ const G4AffineTransform& G4Navigator::GetGlobalToLocalTransform() const return fHistory.GetTopTransform(); } -// Return global to local transformation +// ******************************************************************** +// GetLocalToGlobalTransform +// +// Returns global to local transformation +// ******************************************************************** // inline const G4AffineTransform G4Navigator::GetLocalToGlobalTransform() const { G4AffineTransform tempTransform; - tempTransform= fHistory.GetTopTransform().Inverse(); - return tempTransform; + tempTransform = fHistory.GetTopTransform().Inverse(); + return tempTransform; } -// Compute+return the local->global translation of current volume. +// ******************************************************************** +// NetTranslation +// +// Computes+returns the local->global translation of current volume +// ******************************************************************** // inline G4ThreeVector G4Navigator::NetTranslation() const @@ -220,7 +279,11 @@ G4ThreeVector G4Navigator::NetTranslation() const return tf.NetTranslation(); } -// Compute+return the local->global rotation of current volume. +// ******************************************************************** +// NetRotation +// +// Computes+returns the local->global rotation of current volume +// ******************************************************************** // inline G4RotationMatrix G4Navigator::NetRotation() const @@ -229,30 +292,41 @@ G4RotationMatrix G4Navigator::NetRotation() const return tf.NetRotation(); } -// `Touchable' creation method: caller has deletion responsibility. +// ******************************************************************** +// CreateGRSVolume +// +// `Touchable' creation method: caller has deletion responsibility +// ******************************************************************** // inline G4GRSVolume* G4Navigator::CreateGRSVolume() const { G4AffineTransform tf(fHistory.GetTopTransform().Inverse()); return new G4GRSVolume(fHistory.GetTopVolume(), - tf.NetRotation(), - tf.NetTranslation()); + tf.NetRotation(), + tf.NetTranslation()); } -// `Touchable' creation method: caller has deletion responsibility. +// ******************************************************************** +// CreateGRSSolid +// +// `Touchable' creation method: caller has deletion responsibility +// ******************************************************************** // inline G4GRSSolid* G4Navigator::CreateGRSSolid() const { G4AffineTransform tf(fHistory.GetTopTransform().Inverse()); return new G4GRSSolid(fHistory.GetTopVolume()->GetLogicalVolume()->GetSolid(), - tf.NetRotation(), - tf.NetTranslation()); - + tf.NetRotation(), + tf.NetTranslation()); } -// `Touchable' creation method: caller has deletion responsibility. +// ******************************************************************** +// CreateTouchableHistory +// +// `Touchable' creation method: caller has deletion responsibility +// ******************************************************************** // inline G4TouchableHistory* G4Navigator::CreateTouchableHistory() const @@ -260,7 +334,11 @@ G4TouchableHistory* G4Navigator::CreateTouchableHistory() const return new G4TouchableHistory(fHistory); } -// To inform the caller if the track is entering a daughter volume. +// ******************************************************************** +// EnteredDaughterVolume +// +// To inform the caller if the track is entering a daughter volume +// ******************************************************************** // inline G4bool G4Navigator::EnteredDaughterVolume() @@ -274,77 +352,108 @@ G4bool G4Navigator::EnteredDaughterVolume() // return fExitedCurrent; // } +// ******************************************************************** +// LocateGlobalPointAndSetup +// ******************************************************************** +// inline G4VPhysicalVolume* G4Navigator::LocateGlobalPointAndSetup(const G4ThreeVector &p, const G4ThreeVector &direction, - const G4TouchableHistory &h - ) + const G4TouchableHistory &h) { ResetState(); - fHistory=*h.GetHistory(); + fHistory = *h.GetHistory(); SetupHierarchy(); return LocateGlobalPointAndSetup(p, &direction, true, false); } +// ******************************************************************** +// LocateGlobalPointAndUpdateTouchable +// ******************************************************************** +// inline void G4Navigator::LocateGlobalPointAndUpdateTouchable( - const G4ThreeVector& position, - G4VTouchable* touchableToUpdate, - const G4bool RelativeSearch ) + const G4ThreeVector& position, + G4VTouchable* touchableToUpdate, + const G4bool RelativeSearch ) { G4VPhysicalVolume* pPhysVol; - pPhysVol= LocateGlobalPointAndSetup( position, 0, RelativeSearch); + pPhysVol = LocateGlobalPointAndSetup( position, 0, RelativeSearch); touchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); } +// ******************************************************************** +// LocateGlobalPointAndUpdateTouchable +// +// Use direction +// ******************************************************************** +// inline void G4Navigator::LocateGlobalPointAndUpdateTouchable( - const G4ThreeVector& position, - const G4ThreeVector& direction, - G4VTouchable* touchableToUpdate, - const G4bool RelativeSearch ) + const G4ThreeVector& position, + const G4ThreeVector& direction, + G4VTouchable* touchableToUpdate, + const G4bool RelativeSearch ) { G4VPhysicalVolume* pPhysVol; - pPhysVol= LocateGlobalPointAndSetup( position, &direction, RelativeSearch); + pPhysVol = LocateGlobalPointAndSetup( position, &direction, RelativeSearch); touchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); } +// ******************************************************************** +// LocateGlobalPointAndUpdateTouchableHandle +// ******************************************************************** +// inline void G4Navigator::LocateGlobalPointAndUpdateTouchableHandle( - const G4ThreeVector& position, - const G4ThreeVector& direction, - G4TouchableHandle& oldTouchableToUpdate, - const G4bool RelativeSearch ) + const G4ThreeVector& position, + const G4ThreeVector& direction, + G4TouchableHandle& oldTouchableToUpdate, + const G4bool RelativeSearch ) { -// G4VPhysicalVolume* pPhysVol=LocateGlobalPointAndSetup( position, 0, RelativeSearch); - G4VPhysicalVolume* pPhysVol=LocateGlobalPointAndSetup( position, &direction, RelativeSearch); + G4VPhysicalVolume* pPhysVol; + pPhysVol = LocateGlobalPointAndSetup( position,&direction,RelativeSearch ); if( fEnteredDaughter || fExitedMother ) { oldTouchableToUpdate = CreateTouchableHistory(); - if( pPhysVol == 0 ){ - // We want to ensure that the touchable is correct in this case. - // The method below should do this and recalculate a lot more .... - oldTouchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); + if( pPhysVol == 0 ) + { + // We want to ensure that the touchable is correct in this case. + // The method below should do this and recalculate a lot more .... + // + oldTouchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); } } return; } +// ******************************************************************** +// CreateTouchableHistoryHandle +// ******************************************************************** +// inline G4TouchableHistoryHandle G4Navigator::CreateTouchableHistoryHandle() const { return G4TouchableHistoryHandle( CreateTouchableHistory() ); } +// ******************************************************************** +// GetVerboseLevel +// ******************************************************************** +// inline G4int G4Navigator::GetVerboseLevel() { - return fVerbose; + return fVerbose; } +// ******************************************************************** +// SetVerboseLevel +// ******************************************************************** +// inline void G4Navigator::SetVerboseLevel(G4int level) { - fVerbose=level; + fVerbose = level; } diff --git a/source/geometry/volumes/include/G4NormalNavigation.hh b/source/geometry/volumes/include/G4NormalNavigation.hh index 095bb9e1f6..ffc9c3ed8e 100644 --- a/source/geometry/volumes/include/G4NormalNavigation.hh +++ b/source/geometry/volumes/include/G4NormalNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.hh,v 1.4 2001/07/11 10:00:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4NormalNavigation diff --git a/source/geometry/volumes/include/G4NormalNavigation.icc b/source/geometry/volumes/include/G4NormalNavigation.icc index 74f0c03feb..cbcb1dd825 100644 --- a/source/geometry/volumes/include/G4NormalNavigation.icc +++ b/source/geometry/volumes/include/G4NormalNavigation.icc @@ -21,98 +21,68 @@ // ******************************************************************** // // -// $Id: G4NormalNavigation.icc,v 1.4 2001/07/11 10:00:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NormalNavigation.icc,v 1.5 2002/05/15 10:21:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4NormalNavigation Inline Implementation +// ******************************************************************** -inline G4bool G4NormalNavigation::LevelLocate(G4NavigationHistory &history, - const G4VPhysicalVolume *blockedVol, +// ******************************************************************** +// LevelLocate +// ******************************************************************** +// +inline +G4bool +G4NormalNavigation::LevelLocate( G4NavigationHistory& history, + const G4VPhysicalVolume* blockedVol, const G4int, - const G4ThreeVector &globalPoint, + const G4ThreeVector& globalPoint, const G4ThreeVector* globalDirection, - const G4bool pLocatedOnEdge, - G4ThreeVector &localPoint) + const G4bool pLocatedOnEdge, + G4ThreeVector &localPoint ) { - G4VPhysicalVolume *targetPhysical,*samplePhysical; + G4VPhysicalVolume *targetPhysical, *samplePhysical; G4LogicalVolume *targetLogical; G4VSolid *sampleSolid; G4ThreeVector samplePoint; - G4int targetNoDaughters,sampleNo; + G4int targetNoDaughters; - targetPhysical=history.GetTopVolume(); - targetLogical=targetPhysical->GetLogicalVolume(); - targetNoDaughters=targetLogical->GetNoDaughters(); + targetPhysical = history.GetTopVolume(); + targetLogical = targetPhysical->GetLogicalVolume(); + targetNoDaughters = targetLogical->GetNoDaughters(); if (targetNoDaughters==0) return false; -// -// Search daughters in volume -// - for (sampleNo=targetNoDaughters-1;sampleNo>=0;sampleNo--) + // + // Search daughters in volume + // + + for ( register int sampleNo=targetNoDaughters-1; sampleNo>=0; sampleNo-- ) + { + samplePhysical = targetLogical->GetDaughter(sampleNo); + if ( samplePhysical!=blockedVol ) { - samplePhysical=targetLogical->GetDaughter(sampleNo); - if (samplePhysical!=blockedVol) - { - // Setup volume with mother ptr - samplePhysical->Setup(targetPhysical); - history.NewLevel(samplePhysical, kNormal, samplePhysical->GetCopyNo()); - sampleSolid=samplePhysical->GetLogicalVolume()->GetSolid(); - samplePoint=history.GetTopTransform().TransformPoint(globalPoint); -#if 1 - if( G4AuxiliaryNavServices:: - CheckPointOnSurface(sampleSolid, samplePoint, globalDirection, - history.GetTopTransform(), pLocatedOnEdge) - ) - { - // Enter this daughter - // blockedVol=0; - localPoint=samplePoint; - return true; - } - else - { - history.BackLevel(); - } -#else - EInside sampleInside = sampleSolid->Inside(samplePoint); - - if( sampleInside == kOutside) - { - history.BackLevel(); - } - else - { - if( !pLocatedOnEdge ) - { - // Enter this daughter - // blockedVol=0; - localPoint=samplePoint; - return true; - } - else - { - // We are probably located on an edge. - sampleDirection= history.GetTopTransform() - .TransformAxis(globalDirection); - - // Check whether we enter the volume - // - sampleNormal= sampleSolid->SurfaceNormal(samplePoint); - if ( sampleNormal.dot(sampleDirection) <= 0 ) - { - // Enter this daughter - // blockedVol=0; - localPoint=samplePoint; - return true; - } - } - } -#endif - } + // Setup volume with mother ptr + // + samplePhysical->Setup(targetPhysical); + history.NewLevel(samplePhysical, kNormal, samplePhysical->GetCopyNo()); + sampleSolid = samplePhysical->GetLogicalVolume()->GetSolid(); + samplePoint = history.GetTopTransform().TransformPoint(globalPoint); + if( G4AuxiliaryNavServices:: + CheckPointOnSurface(sampleSolid, samplePoint, globalDirection, + history.GetTopTransform(), pLocatedOnEdge) ) + { + // Enter this daughter + // + localPoint = samplePoint; + return true; + } + else + { + history.BackLevel(); + } } + } return false; } - - diff --git a/source/geometry/volumes/include/G4ParameterisedNavigation.hh b/source/geometry/volumes/include/G4ParameterisedNavigation.hh index 5d43ae50ac..d31465e9f8 100644 --- a/source/geometry/volumes/include/G4ParameterisedNavigation.hh +++ b/source/geometry/volumes/include/G4ParameterisedNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.hh,v 1.4 2001/07/11 10:00:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ParameterisedNavigation.hh,v 1.5 2002/05/15 10:23:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ParameterisedNavigation @@ -40,6 +40,10 @@ #define G4PARAMETERISEDNAVIGATION_HH #include "globals.hh" + +#include "g4std/vector" + +#include "G4VoxelNavigation.hh" #include "G4NavigationHistory.hh" #include "G4AffineTransform.hh" #include "G4VPhysicalVolume.hh" @@ -50,66 +54,59 @@ #include "G4BlockingList.hh" -// Required for voxel handling -#include "G4SmartVoxelProxy.hh" -#include "G4SmartVoxelNode.hh" -#include "G4SmartVoxelHeader.hh" - -class G4ParameterisedNavigation +class G4ParameterisedNavigation : public G4VoxelNavigation { public: // with description - G4ParameterisedNavigation(); - ~G4ParameterisedNavigation(); - G4SmartVoxelNode* VoxelLocate(G4SmartVoxelHeader *pHead, - const G4ThreeVector &localPoint); - 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 G4double currentProposedStepLength, - G4double &newSafety, - G4NavigationHistory &history, - G4bool &validExitNormal, - G4ThreeVector &exitNormal, - G4bool &exiting, - G4bool &entering, - G4VPhysicalVolume *(*pBlockedPhysical), - G4int &blockedReplicaNo); - G4double ComputeSafety(const G4ThreeVector &localPoint, - const G4NavigationHistory &history, - const G4double pProposedMaxLength=DBL_MAX ); + G4ParameterisedNavigation(); + ~G4ParameterisedNavigation(); + + G4SmartVoxelNode* ParamVoxelLocate( G4SmartVoxelHeader* pHead, + const G4ThreeVector& localPoint ); + + 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 G4double currentProposedStepLength, + G4double& newSafety, + G4NavigationHistory& history, + G4bool& validExitNormal, + G4ThreeVector& exitNormal, + G4bool& exiting, + G4bool& entering, + G4VPhysicalVolume *(*pBlockedPhysical), + G4int& blockedReplicaNo ); + + G4double ComputeSafety( const G4ThreeVector& localPoint, + const G4NavigationHistory& history, + const G4double pProposedMaxLength=DBL_MAX ); private: - G4double ComputeVoxelSafety(const G4ThreeVector &localPoint) const; - G4bool LocateNextVoxel(const G4ThreeVector &localPoint, - const G4ThreeVector& localDirection, - const G4double currentStep); - - G4BlockingList fBList; // Blocked volumes -// -// BEGIN Voxel Stack information -// - EAxis fVoxelAxis; - G4int fVoxelNoSlices; - G4double fVoxelSliceWidth; - G4int fVoxelNodeNo; - G4SmartVoxelHeader *fVoxelHeader; - G4SmartVoxelNode *fVoxelNode; -// -// END Voxel Stack information -// + G4double ComputeVoxelSafety( const G4ThreeVector& localPoint, + const EAxis pAxis ) const; + G4bool LocateNextVoxel( const G4ThreeVector& localPoint, + const G4ThreeVector& localDirection, + const G4double currentStep, + const EAxis pAxis ); + private: + // Voxel Stack information (for 1D optimisation only) + // + EAxis fVoxelAxis; + G4int fVoxelNoSlices; + G4double fVoxelSliceWidth; + G4int fVoxelNodeNo; + G4SmartVoxelHeader* fVoxelHeader; }; -#include "G4AuxiliaryNavServices.hh" // Needed for inline methods - #include "G4ParameterisedNavigation.icc" #endif diff --git a/source/geometry/volumes/include/G4ParameterisedNavigation.icc b/source/geometry/volumes/include/G4ParameterisedNavigation.icc index 94f1fe568c..881970b587 100644 --- a/source/geometry/volumes/include/G4ParameterisedNavigation.icc +++ b/source/geometry/volumes/include/G4ParameterisedNavigation.icc @@ -21,219 +21,143 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.icc,v 1.4 2001/07/11 10:00:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ParameterisedNavigation.icc,v 1.7 2002/05/15 10:23:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ParameterisedNavigation Inline implementation - - -inline G4ParameterisedNavigation::G4ParameterisedNavigation() - : fVoxelHeader(0), fVoxelNode(0) -{ -} - -inline G4SmartVoxelNode* G4ParameterisedNavigation::VoxelLocate(G4SmartVoxelHeader *pHead, - const G4ThreeVector &localPoint) -{ - EAxis targetHeaderAxis; - G4double targetHeaderMin,targetHeaderNodeWidth; - G4int targetHeaderNoSlices,targetNodeNo; - - targetHeaderAxis=pHead->GetAxis(); - targetHeaderNoSlices=pHead->GetNoSlices(); - targetHeaderMin=pHead->GetMinExtent(); - targetHeaderNodeWidth=(pHead->GetMaxExtent()-targetHeaderMin)/targetHeaderNoSlices; - targetNodeNo=G4int ((localPoint(targetHeaderAxis)-targetHeaderMin)/targetHeaderNodeWidth); -// Rounding protection - if (targetNodeNo<0) - { - targetNodeNo=0; - } - else if (targetNodeNo>=targetHeaderNoSlices) - { - targetNodeNo=targetHeaderNoSlices-1; - } - fVoxelAxis=targetHeaderAxis; - fVoxelNoSlices=targetHeaderNoSlices; - fVoxelSliceWidth=targetHeaderNodeWidth; - fVoxelNodeNo=targetNodeNo; - fVoxelHeader=pHead; - fVoxelNode=pHead->GetSlice(targetNodeNo)->GetNode(); - return fVoxelNode; -} - -// Compute safety from specified point to collected voxel boundaries -// using already located point - -inline G4double G4ParameterisedNavigation::ComputeVoxelSafety(const G4ThreeVector&localPoint) const - { - - G4double voxelSafety, plusVoxelSafety, minusVoxelSafety; - G4double curNodeOffset,minCurCommonDelta,maxCurCommonDelta; - G4int minCurNodeNoDelta,maxCurNodeNoDelta; - -// Compute linear intersection distance to boundaries of max/min -// to collected nodes at current level - curNodeOffset=fVoxelNodeNo*fVoxelSliceWidth; - minCurCommonDelta=localPoint(fVoxelAxis) - -fVoxelHeader->GetMinExtent() - -curNodeOffset; - maxCurNodeNoDelta=fVoxelNode->GetMaxEquivalentSliceNo()-fVoxelNodeNo; - minCurNodeNoDelta=fVoxelNodeNo-fVoxelNode->GetMinEquivalentSliceNo(); - maxCurCommonDelta=fVoxelSliceWidth-minCurCommonDelta; - - plusVoxelSafety= minCurNodeNoDelta*fVoxelSliceWidth+minCurCommonDelta; - minusVoxelSafety=maxCurNodeNoDelta*fVoxelSliceWidth+maxCurCommonDelta; - - voxelSafety= G4std::min(plusVoxelSafety,minusVoxelSafety); - - if (voxelSafety<0) - { - voxelSafety=0; - } - - return voxelSafety; - } - - -// Find the next voxel from the current voxel and point in the specified -// direction // -// Return false if all voxels considered -// [current Step ends inside same voxel or leaves all voxels] -// true otherwise -inline G4bool G4ParameterisedNavigation::LocateNextVoxel(const G4ThreeVector& localPoint, - const G4ThreeVector& localDirection, - const G4double currentStep) +// ******************************************************************** + +// ******************************************************************** +// ParamVoxelLocate +// ******************************************************************** +// +inline +G4SmartVoxelNode* +G4ParameterisedNavigation::ParamVoxelLocate( G4SmartVoxelHeader* pHead, + const G4ThreeVector& localPoint ) { + // If no parameterisation axis is specified, adopt default + // location strategy as for placements + // + if ( pHead->GetParamAxis()==kUndefined ) + { + fVoxelNode = G4VoxelNavigation::VoxelLocate(pHead,localPoint); + } + else + { + G4double targetHeaderMin, targetHeaderNodeWidth; + G4int targetHeaderNoSlices, targetNodeNo; + EAxis targetHeaderAxis; - - G4bool isNewVoxel; - G4int newNodeNo; - G4double minVal,maxVal,curMinExtent,curCoord; - - curMinExtent=fVoxelHeader->GetMinExtent(); - curCoord=localPoint(fVoxelAxis)+currentStep*localDirection(fVoxelAxis); - minVal=curMinExtent - +fVoxelNode->GetMinEquivalentSliceNo()*fVoxelSliceWidth; - - isNewVoxel=false; - - if (minVal<=curCoord) - { - maxVal=curMinExtent - +(fVoxelNode->GetMaxEquivalentSliceNo()+1)*fVoxelSliceWidth; - if (maxValGetMaxEquivalentSliceNo()+1; - if (newNodeNoGetNoSlices()) - { - fVoxelNodeNo=newNodeNo; - fVoxelNode=fVoxelHeader->GetSlice(newNodeNo)->GetNode(); - isNewVoxel=true; - } - } - } - else - { - newNodeNo=fVoxelNode->GetMinEquivalentSliceNo()-1; -// Must locate from newNodeNo no and down to setup stack and fVoxelNode -// Repeat or earlier code... - if (newNodeNo>=0) - { - fVoxelNodeNo=newNodeNo; - fVoxelNode=fVoxelHeader->GetSlice(newNodeNo)->GetNode(); - isNewVoxel=true; - } - } - return isNewVoxel; + targetHeaderAxis = pHead->GetAxis(); + targetHeaderNoSlices = pHead->GetNoSlices(); + targetHeaderMin = pHead->GetMinExtent(); + targetHeaderNodeWidth = (pHead->GetMaxExtent()-targetHeaderMin) + / targetHeaderNoSlices; + targetNodeNo = G4int ( (localPoint(targetHeaderAxis)-targetHeaderMin) + / targetHeaderNodeWidth ); + // Rounding protection + // + if ( targetNodeNo<0 ) + { + targetNodeNo = 0; + } + else if ( targetNodeNo>=targetHeaderNoSlices ) + { + targetNodeNo = targetHeaderNoSlices-1; + } + fVoxelAxis = targetHeaderAxis; + fVoxelNoSlices = targetHeaderNoSlices; + fVoxelSliceWidth = targetHeaderNodeWidth; + fVoxelNodeNo = targetNodeNo; + fVoxelHeader = pHead; + fVoxelNode = pHead->GetSlice(targetNodeNo)->GetNode(); + } + return fVoxelNode; } -inline G4bool G4ParameterisedNavigation::LevelLocate(G4NavigationHistory& history, - const G4VPhysicalVolume *blockedVol, - const G4int blockedNum, - const G4ThreeVector &globalPoint, - const G4ThreeVector* globalDirection, - const G4bool pLocatedOnEdge, - G4ThreeVector &localPoint) +// ******************************************************************** +// LevelLocate +// ******************************************************************** +// +inline +G4bool +G4ParameterisedNavigation::LevelLocate( G4NavigationHistory& history, + const G4VPhysicalVolume* blockedVol, + const G4int blockedNum, + const G4ThreeVector& globalPoint, + const G4ThreeVector* globalDirection, + const G4bool pLocatedOnEdge, + G4ThreeVector& localPoint ) { - G4SmartVoxelHeader *motherVoxelHeader; G4SmartVoxelNode *motherVoxelNode; - G4VPhysicalVolume *motherPhysical,*pPhysical; + G4VPhysicalVolume *motherPhysical, *pPhysical; G4VPVParameterisation *pParam; G4LogicalVolume *motherLogical; G4VSolid *pSolid; G4ThreeVector samplePoint; - G4int voxelNoDaughters,sampleNo,replicaNo; + G4int voxelNoDaughters, replicaNo; - motherPhysical=history.GetTopVolume(); - motherLogical=motherPhysical->GetLogicalVolume(); - motherVoxelHeader=motherLogical->GetVoxelHeader(); - // localPoint=history.GetTopTransform().TransformPoint(globalPoint); -// Find the voxel containing the point - motherVoxelNode=VoxelLocate(motherVoxelHeader,localPoint); - - voxelNoDaughters=motherVoxelNode->GetNoContained(); - if (voxelNoDaughters==0) return false; - - pPhysical=motherLogical->GetDaughter(0); - // pSolid=pPhysical->GetLogicalVolume()->GetSolid(); // Now it can vary - pParam=pPhysical->GetParameterisation(); + motherPhysical = history.GetTopVolume(); + motherLogical = motherPhysical->GetLogicalVolume(); + motherVoxelHeader = motherLogical->GetVoxelHeader(); -// -// Search replicated daughter volume -// - for (sampleNo=voxelNoDaughters-1;sampleNo>=0;sampleNo--) - { - replicaNo=motherVoxelNode->GetVolume(sampleNo); - if (replicaNo!=blockedNum||pPhysical!=blockedVol) - { - // Obtain solid (as it can vary) and - // obtain its parameters - pSolid=pParam->ComputeSolid(replicaNo, pPhysical); - pSolid->ComputeDimensions(pParam, - replicaNo, - pPhysical); - pParam->ComputeTransformation(replicaNo, - pPhysical); -// Setup volume with mother ptr - pPhysical->Setup(motherPhysical); - history.NewLevel(pPhysical, - kParameterised, - replicaNo); - samplePoint=history.GetTopTransform().TransformPoint(globalPoint); - if (! G4AuxiliaryNavServices:: - CheckPointOnSurface(pSolid, samplePoint, globalDirection, - history.GetTopTransform(), pLocatedOnEdge) ) - { - history.BackLevel(); - } - else - { - // Enter this daughter - // blockedVol=0; - localPoint=samplePoint; - // Set the correct copy number in physical - pPhysical->SetCopyNo(replicaNo); - // Set the correct solid and material in Logical Volume - G4LogicalVolume *pLogical=pPhysical->GetLogicalVolume(); - pLogical->SetSolid( pSolid ); - pLogical->SetMaterial( pParam->ComputeMaterial(replicaNo, - pPhysical)); - return true; - } - } - } + // Find the voxel containing the point + // + motherVoxelNode = ParamVoxelLocate(motherVoxelHeader,localPoint); + voxelNoDaughters = motherVoxelNode->GetNoContained(); + if ( voxelNoDaughters==0 ) return false; + + pPhysical = motherLogical->GetDaughter(0); + pParam = pPhysical->GetParameterisation(); + + // Search replicated daughter volume + // + for ( register int sampleNo=voxelNoDaughters-1; sampleNo>=0; sampleNo-- ) + { + replicaNo = motherVoxelNode->GetVolume(sampleNo); + if ( (replicaNo!=blockedNum) || (pPhysical!=blockedVol) ) + { + // Obtain solid (as it can vary) and obtain its parameters + // + pSolid = pParam->ComputeSolid(replicaNo, pPhysical); + pSolid->ComputeDimensions(pParam, replicaNo, pPhysical); + pParam->ComputeTransformation(replicaNo, pPhysical); + + // Setup volume with mother pointer + // + pPhysical->Setup(motherPhysical); + history.NewLevel(pPhysical, kParameterised, replicaNo); + samplePoint = history.GetTopTransform().TransformPoint(globalPoint); + if ( !G4AuxiliaryNavServices::CheckPointOnSurface(pSolid, + samplePoint, globalDirection, + history.GetTopTransform(), pLocatedOnEdge) ) + { + history.BackLevel(); + } + else + { + // Enter this daughter + // + localPoint = samplePoint; + + // Set the correct copy number in physical + // + pPhysical->SetCopyNo(replicaNo); + + // Set the correct solid and material in Logical Volume + // + G4LogicalVolume *pLogical = pPhysical->GetLogicalVolume(); + pLogical->SetSolid(pSolid); + pLogical->SetMaterial(pParam->ComputeMaterial(replicaNo, pPhysical)); + + return true; + } + } + } return false; } - - - - - - - - diff --git a/source/geometry/volumes/include/G4PropagatorInField.hh b/source/geometry/volumes/include/G4PropagatorInField.hh index 8fb26db1d3..9964491a1b 100644 --- a/source/geometry/volumes/include/G4PropagatorInField.hh +++ b/source/geometry/volumes/include/G4PropagatorInField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.hh,v 1.20 2001/12/08 00:07:23 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PropagatorInField.hh,v 1.22 2002/04/19 08:22:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PropagatorInField @@ -70,7 +70,7 @@ class G4PropagatorInField G4FieldManager *detectorFieldMgr); G4PropagatorInField( G4Navigator *theNavigator ); - ~G4PropagatorInField(){}; + ~G4PropagatorInField(); G4double ComputeStep(G4FieldTrack &pFieldTrack, G4double pCurrentProposedStepLength, @@ -138,6 +138,9 @@ class G4PropagatorInField inline G4double GetMinimumEpsilonStep() const; inline void SetMinimumEpsilonStep(G4double newEpsMin); + inline G4double GetMaximumEpsilonStep() const; + inline void SetMaximumEpsilonStep(G4double newEpsMax); + inline void SetLargestAcceptableStep(G4double newBigDist); inline G4double GetLargestAcceptableStep(); diff --git a/source/geometry/volumes/include/G4PropagatorInField.icc b/source/geometry/volumes/include/G4PropagatorInField.icc index e56b9c05f9..60fa753300 100644 --- a/source/geometry/volumes/include/G4PropagatorInField.icc +++ b/source/geometry/volumes/include/G4PropagatorInField.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.icc,v 1.25 2001/12/08 00:07:24 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PropagatorInField.icc,v 1.27 2002/04/19 08:22:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------------------ @@ -39,32 +39,6 @@ // and ?? also must know the value of the maximum displacement allowed // -inline -G4PropagatorInField::G4PropagatorInField(G4Navigator *theNavigator, - G4FieldManager *detectorFieldMgr) - : fDetectorFieldMgr(detectorFieldMgr), - fCurrentFieldMgr(detectorFieldMgr), - fNavigator(theNavigator), - End_PointAndTangent(G4ThreeVector(0.,0.,0.), - G4ThreeVector(0.,0.,0.),0.0,0.0,0.0,0.0,0.0), - fVerboseLevel(0), - fEpsilonMin(fEpsilonMinDefault), - fEpsilonMax(fEpsilonMaxDefault), - fmax_loop_count(10000), - fNoZeroStep(0) -{ - // this->fChordFinder = 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; -} - inline G4ChordFinder* G4PropagatorInField::GetChordFinder() { @@ -189,10 +163,27 @@ G4double G4PropagatorInField::GetMinimumEpsilonStep() const inline void G4PropagatorInField::SetMinimumEpsilonStep(G4double newEpsMin) { - if( (newEpsMin > 0.0) && (fabs(1.0+newEpsMin)>1.0) ) + if( (newEpsMin > 0.0) + && (fabs(1.0+newEpsMin)>1.0) ) fEpsilonMin= newEpsMin; } +// Maximum for Relative accuracy of any Step +inline +G4double G4PropagatorInField::GetMaximumEpsilonStep() const +{ + return fEpsilonMax; +} + +inline +void G4PropagatorInField::SetMaximumEpsilonStep(G4double newEpsMax) +{ + if( (newEpsMax > 0.0) + && (newEpsMax >= fEpsilonMin ) + && (fabs(1.0+newEpsMax)>1.0) ) + fEpsilonMax= newEpsMax; +} + inline void G4PropagatorInField::SetLargestAcceptableStep(G4double newBigDist) {if(fLargestAcceptableStep>0.0) fLargestAcceptableStep= newBigDist; } diff --git a/source/geometry/volumes/include/G4ReplicaNavigation.hh b/source/geometry/volumes/include/G4ReplicaNavigation.hh index 823a98d7c1..bafed5ed3b 100644 --- a/source/geometry/volumes/include/G4ReplicaNavigation.hh +++ b/source/geometry/volumes/include/G4ReplicaNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.hh,v 1.4 2001/07/11 10:00:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ReplicaNavigation diff --git a/source/geometry/volumes/include/G4ReplicaNavigation.icc b/source/geometry/volumes/include/G4ReplicaNavigation.icc index 413f96f2a9..b36d573e7e 100644 --- a/source/geometry/volumes/include/G4ReplicaNavigation.icc +++ b/source/geometry/volumes/include/G4ReplicaNavigation.icc @@ -21,160 +21,176 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.icc,v 1.5 2001/07/11 10:00:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ReplicaNavigation.icc,v 1.6 2002/05/15 10:21:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ReplicaNavigation Inline implementation +// ******************************************************************** -inline G4int G4ReplicaNavigation::VoxelLocate(const G4SmartVoxelHeader *pHead, - const G4ThreeVector &localPoint, - const G4int blocked) const +// ******************************************************************** +// VoxelLocate +// ******************************************************************** +// +inline +G4int +G4ReplicaNavigation::VoxelLocate( const G4SmartVoxelHeader* pHead, + const G4ThreeVector& localPoint, + const G4int blocked ) const { EAxis targetHeaderAxis; G4double coord=0.; G4double targetHeaderMin, targetHeaderMax; - G4double targetHeaderNodeWidth,targetNodePos; - G4int targetHeaderNoSlices,targetNodeNo; + G4double targetHeaderNodeWidth, targetNodePos; + G4int targetHeaderNoSlices, targetNodeNo; - targetHeaderAxis=pHead->GetAxis(); - targetHeaderNoSlices=pHead->GetNoSlices(); - targetHeaderMin=pHead->GetMinExtent(); - targetHeaderMax=pHead->GetMaxExtent(); - targetHeaderNodeWidth=(targetHeaderMax-targetHeaderMin)/targetHeaderNoSlices; + targetHeaderAxis = pHead->GetAxis(); + targetHeaderNoSlices = pHead->GetNoSlices(); + targetHeaderMin = pHead->GetMinExtent(); + targetHeaderMax = pHead->GetMaxExtent(); + targetHeaderNodeWidth = ( targetHeaderMax-targetHeaderMin ) + / targetHeaderNoSlices; switch (targetHeaderAxis) - { + { case kXAxis: - coord=localPoint.x(); + coord = localPoint.x(); break; case kYAxis: - coord=localPoint.y(); + coord = localPoint.y(); break; case kZAxis: - coord=localPoint.z(); + coord = localPoint.z(); break; case kRho: - coord=localPoint.perp(); + coord = localPoint.perp(); break; case kPhi: - coord=localPoint.phi(); - if (coord<0&&coord should have exited mother - // (or similar) P.Kent - // assert(targetNodeNo>=0&&targetNodeNo should have exited mother + // (or similar) P.Kent + // assert(targetNodeNo>=0&&targetNodeNo=targetHeaderNoSlices)) - { - -#ifdef G4_REPORT_REPLICA_NAV - G4cerr << " WARNING: assert in G4ReplicaNavigation::VoxelLocate " - << " has failed : " << G4endl << - << " (targetNodeNo>=0&&targetNodeNo=0&&targetNodeNo fVoxelSliceWidthStack; // Width of voxels at each level - G4std::vector fVoxelNodeNoStack; + G4std::vector fVoxelNodeNoStack; // Node no point is inside at each level - + G4std::vector fVoxelHeaderStack; // Voxel headers at each level @@ -129,8 +134,6 @@ class G4VoxelNavigation }; -#include "G4AuxiliaryNavServices.hh" // Needed for inline implementation - #include "G4VoxelNavigation.icc" #endif diff --git a/source/geometry/volumes/include/G4VoxelNavigation.icc b/source/geometry/volumes/include/G4VoxelNavigation.icc index 7f2562048b..9a1db02ec6 100644 --- a/source/geometry/volumes/include/G4VoxelNavigation.icc +++ b/source/geometry/volumes/include/G4VoxelNavigation.icc @@ -21,135 +21,139 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.icc,v 1.8 2001/07/11 10:00:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VoxelNavigation.icc,v 1.10 2002/05/15 10:21:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VoxelNavigation Inline implementation +// ******************************************************************** -inline -G4VoxelNavigation::G4VoxelNavigation() - : fVoxelDepth(-1), - fVoxelAxisStack(kNavigatorVoxelStackMax,kXAxis), - fVoxelNoSlicesStack(kNavigatorVoxelStackMax,0), - fVoxelSliceWidthStack(kNavigatorVoxelStackMax,0.), - fVoxelNodeNoStack(kNavigatorVoxelStackMax,0), - fVoxelHeaderStack(kNavigatorVoxelStackMax,(G4SmartVoxelHeader*)0), - fVoxelNode(0) -{ -} - +// ******************************************************************** +// VoxelLocate +// ******************************************************************** +// inline G4SmartVoxelNode* -G4VoxelNavigation::VoxelLocate(G4SmartVoxelHeader *pHead, - const G4ThreeVector &localPoint) +G4VoxelNavigation::VoxelLocate( G4SmartVoxelHeader* pHead, + const G4ThreeVector& localPoint ) { - G4SmartVoxelHeader *targetVoxelHeader=pHead; - G4SmartVoxelNode *targetVoxelNode=0; - G4SmartVoxelProxy *sampleProxy; - EAxis targetHeaderAxis; - G4double targetHeaderMin,targetHeaderNodeWidth; - G4int targetHeaderNoSlices,targetNodeNo; - fVoxelDepth=0; + G4SmartVoxelHeader *targetVoxelHeader=pHead; + G4SmartVoxelNode *targetVoxelNode=0; + G4SmartVoxelProxy *sampleProxy; + EAxis targetHeaderAxis; + G4double targetHeaderMin, targetHeaderNodeWidth; + G4int targetHeaderNoSlices, targetNodeNo; - while (!targetVoxelNode) - { - targetHeaderAxis=targetVoxelHeader->GetAxis(); - targetHeaderNoSlices=targetVoxelHeader->GetNoSlices(); - targetHeaderMin=targetVoxelHeader->GetMinExtent(); - targetHeaderNodeWidth= (targetVoxelHeader->GetMaxExtent() - -targetHeaderMin)/targetHeaderNoSlices; - targetNodeNo=G4int((localPoint(targetHeaderAxis) - -targetHeaderMin)/targetHeaderNodeWidth); -// Rounding protection - if (targetNodeNo<0) - { - targetNodeNo=0; - } - else if (targetNodeNo>=targetHeaderNoSlices) - { - targetNodeNo=targetHeaderNoSlices-1; - } -// Stack info for stepping - fVoxelAxisStack[fVoxelDepth]=targetHeaderAxis; - fVoxelNoSlicesStack[fVoxelDepth]=targetHeaderNoSlices; - fVoxelSliceWidthStack[fVoxelDepth]=targetHeaderNodeWidth; - fVoxelNodeNoStack[fVoxelDepth]=targetNodeNo; - fVoxelHeaderStack[fVoxelDepth]=targetVoxelHeader; - - sampleProxy=targetVoxelHeader->GetSlice(targetNodeNo); - if (sampleProxy->IsNode()) - { - targetVoxelNode=sampleProxy->GetNode(); - } - else - { - targetVoxelHeader=sampleProxy->GetHeader(); - fVoxelDepth++; - } - } - fVoxelNode=targetVoxelNode; - return targetVoxelNode; + fVoxelDepth = 0; + + while ( !targetVoxelNode ) + { + targetHeaderAxis = targetVoxelHeader->GetAxis(); + targetHeaderNoSlices = targetVoxelHeader->GetNoSlices(); + targetHeaderMin = targetVoxelHeader->GetMinExtent(); + targetHeaderNodeWidth = (targetVoxelHeader->GetMaxExtent()-targetHeaderMin) + / targetHeaderNoSlices; + targetNodeNo = G4int( (localPoint(targetHeaderAxis)-targetHeaderMin) + / targetHeaderNodeWidth); + // Rounding protection + // + if ( targetNodeNo<0 ) + { + targetNodeNo = 0; + } + else if ( targetNodeNo>=targetHeaderNoSlices ) + { + targetNodeNo = targetHeaderNoSlices-1; + } + // Stack info for stepping + // + fVoxelAxisStack[fVoxelDepth] = targetHeaderAxis; + fVoxelNoSlicesStack[fVoxelDepth] = targetHeaderNoSlices; + fVoxelSliceWidthStack[fVoxelDepth] = targetHeaderNodeWidth; + fVoxelNodeNoStack[fVoxelDepth] = targetNodeNo; + fVoxelHeaderStack[fVoxelDepth] = targetVoxelHeader; + sampleProxy = targetVoxelHeader->GetSlice(targetNodeNo); + + if ( sampleProxy->IsNode() ) + { + targetVoxelNode = sampleProxy->GetNode(); + } + else + { + targetVoxelHeader = sampleProxy->GetHeader(); + fVoxelDepth++; + } + } + fVoxelNode = targetVoxelNode; + return targetVoxelNode; } +// ******************************************************************** +// LevelLocate +// ******************************************************************** +// inline -G4bool G4VoxelNavigation::LevelLocate(G4NavigationHistory& history, - const G4VPhysicalVolume *blockedVol, - const G4int, - const G4ThreeVector &globalPoint, - const G4ThreeVector* globalDirection, - const G4bool pLocatedOnEdge, - G4ThreeVector &localPoint) +G4bool +G4VoxelNavigation::LevelLocate( G4NavigationHistory& history, + const G4VPhysicalVolume* blockedVol, + const G4int, + const G4ThreeVector& globalPoint, + const G4ThreeVector* globalDirection, + const G4bool pLocatedOnEdge, + G4ThreeVector& localPoint ) { G4SmartVoxelHeader *targetVoxelHeader; G4SmartVoxelNode *targetVoxelNode; - G4VPhysicalVolume *targetPhysical,*samplePhysical; + G4VPhysicalVolume *targetPhysical, *samplePhysical; G4LogicalVolume *targetLogical; G4VSolid *sampleSolid; G4ThreeVector samplePoint; - G4int targetNoDaughters,sampleNo; + G4int targetNoDaughters; - targetPhysical=history.GetTopVolume(); - targetLogical=targetPhysical->GetLogicalVolume(); - targetVoxelHeader=targetLogical->GetVoxelHeader(); - // localPoint=history.GetTopTransform().TransformPoint(globalPoint); -// Find the voxel containing the point - targetVoxelNode=VoxelLocate(targetVoxelHeader,localPoint); + targetPhysical = history.GetTopVolume(); + targetLogical = targetPhysical->GetLogicalVolume(); + targetVoxelHeader = targetLogical->GetVoxelHeader(); + + // Find the voxel containing the point + // + targetVoxelNode = VoxelLocate(targetVoxelHeader,localPoint); targetNoDaughters=targetVoxelNode->GetNoContained(); - if (targetNoDaughters==0) return false; + if ( targetNoDaughters==0 ) return false; -// -// Search daughters in volume -// - for (sampleNo=targetNoDaughters-1;sampleNo>=0;sampleNo--) + // + // Search daughters in volume + // + + for ( register int sampleNo=targetNoDaughters-1; sampleNo>=0; sampleNo-- ) + { + samplePhysical = targetLogical-> + GetDaughter(targetVoxelNode->GetVolume(sampleNo)); + if ( samplePhysical!=blockedVol ) { - samplePhysical=targetLogical-> - GetDaughter(targetVoxelNode-> - GetVolume(sampleNo)); - if (samplePhysical!=blockedVol) - { -// Setup volume with mother ptr - samplePhysical->Setup(targetPhysical); - history.NewLevel(samplePhysical,kNormal,samplePhysical->GetCopyNo()); - sampleSolid=samplePhysical->GetLogicalVolume()->GetSolid(); - samplePoint=history.GetTopTransform().TransformPoint(globalPoint); + // Setup volume with mother pointer + // + samplePhysical->Setup(targetPhysical); + history.NewLevel(samplePhysical, kNormal, samplePhysical->GetCopyNo()); + sampleSolid = samplePhysical->GetLogicalVolume()->GetSolid(); + samplePoint = history.GetTopTransform().TransformPoint(globalPoint); - if( G4AuxiliaryNavServices:: - CheckPointOnSurface(sampleSolid, samplePoint, globalDirection, - history.GetTopTransform(), pLocatedOnEdge) - ) - { - // Enter this daughter - // blockedVol=0; - localPoint=samplePoint; - return true; - } - else - { - history.BackLevel(); - } - } + if( G4AuxiliaryNavServices::CheckPointOnSurface(sampleSolid, + samplePoint, + globalDirection, + history.GetTopTransform(), + pLocatedOnEdge) ) + { + // Enter this daughter + // + localPoint = samplePoint; + return true; + } + else + { + history.BackLevel(); + } } + } return false; } diff --git a/source/geometry/volumes/src/G4BlockingList.cc b/source/geometry/volumes/src/G4BlockingList.cc index fa654e516b..fafc3b0f66 100644 --- a/source/geometry/volumes/src/G4BlockingList.cc +++ b/source/geometry/volumes/src/G4BlockingList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BlockingList.cc,v 1.4 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BlockingList.cc,v 1.5 2002/04/19 08:22:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4BlockingList Implementation @@ -30,6 +30,16 @@ #include "G4BlockingList.hh" +G4BlockingList::G4BlockingList(G4int maxDefault,G4int stride) + : 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() diff --git a/source/geometry/volumes/src/G4GRSSolid.cc b/source/geometry/volumes/src/G4GRSSolid.cc index 881c6ffb7c..3b9432bca4 100644 --- a/source/geometry/volumes/src/G4GRSSolid.cc +++ b/source/geometry/volumes/src/G4GRSSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.cc,v 1.4 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4GRSSolid Implementation diff --git a/source/geometry/volumes/src/G4GRSVolume.cc b/source/geometry/volumes/src/G4GRSVolume.cc index 039967ee57..bfec7cdedc 100644 --- a/source/geometry/volumes/src/G4GRSVolume.cc +++ b/source/geometry/volumes/src/G4GRSVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.cc,v 1.4 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4GRSVolume Implementation diff --git a/source/geometry/volumes/src/G4GeometryMessenger.cc b/source/geometry/volumes/src/G4GeometryMessenger.cc index 87006b3422..4bd9a25c98 100644 --- a/source/geometry/volumes/src/G4GeometryMessenger.cc +++ b/source/geometry/volumes/src/G4GeometryMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryMessenger.cc,v 1.4 2001/11/01 19:00:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GeometryMessenger.cc,v 1.6 2002/04/03 11:51:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -44,7 +44,6 @@ #include "G4UIcmdWith3VectorAndUnit.hh" #include "G4UIcmdWith3Vector.hh" #include "G4UIcmdWithoutParameter.hh" -#include "G4UIcmdWithABool.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4GeomTestStreamLogger.hh" @@ -55,8 +54,8 @@ // G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman) : geometryOpened(true), x(0,0,0), p(0,0,1), - extra(false), newtol(false), tol(1E-4*mm), - tmanager(tman) + newtol(false), tol(1E-4*mm), tmanager(tman), + tlogger(0), tvolume(0) { geodir = new G4UIdirectory( "/geometry/" ); geodir->SetGuidance( "Geometry control commands." ); @@ -77,12 +76,6 @@ G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman) testdir->SetGuidance( "Geometry verification control setup." ); testdir->SetGuidance( "Helps in detecting possible overlapping regions." ); - addCmd = new G4UIcmdWithABool( "/geometry/test/line_test",this ); - addCmd->SetGuidance( "Test along a single specified direction/position?" ); - addCmd->SetGuidance( "Use position and direction commands to change default." ); - addCmd->SetGuidance( "Default: position(0,0,0), direction(0,0,1)." ); - addCmd->SetParameterName( "Extra", true, true ); - tolCmd = new G4UIcmdWithADoubleAndUnit( "/geometry/test/tolerance",this ); tolCmd->SetGuidance( "Set error tolerance value." ); tolCmd->SetGuidance( "Default: 1E-4*mm." ); @@ -101,8 +94,30 @@ G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman) dirCmd->SetParameterName( "Px", "Py", "Pz", true, true ); dirCmd->SetRange( "Px != 0 || Py != 0 || Pz != 0" ); + linCmd = new G4UIcmdWithoutParameter( "/geometry/test/line_test", this ); + linCmd->SetGuidance( "Performs test along a single specified direction/position." ); + linCmd->SetGuidance( "Use position and direction commands to change default." ); + linCmd->SetGuidance( "Default: position(0,0,0), direction(0,0,1)." ); + + grdCmd = new G4UIcmdWithoutParameter( "/geometry/test/grid_test", this ); + grdCmd->SetGuidance( "Start running the default grid test." ); + grdCmd->SetGuidance( "A grid of lines parallel to a cartesian axis is used;" ); + grdCmd->SetGuidance( "Only direct daughters of the mother volumes are checked." ); + + recCmd = new G4UIcmdWithoutParameter( "/geometry/test/recursive_test", this ); + recCmd->SetGuidance( "Start running the recursive grid test." ); + recCmd->SetGuidance( "A grid of lines along a cartesian axis is recursively" ); + recCmd->SetGuidance( "to all daughters and daughters of daughters, etc." ); + recCmd->SetGuidance( "WARNING: it may take a very long time, depending on geometry complexity !"); + + cylCmd = new G4UIcmdWithoutParameter( "/geometry/test/cylinder_test", this ); + cylCmd->SetGuidance( "Start running the cylinder test." ); + cylCmd->SetGuidance( "A set of lines in a cylindrical pattern of gradually" ); + cylCmd->SetGuidance( "increasing mesh size." ); + runCmd = new G4UIcmdWithoutParameter( "/geometry/test/run", this ); - runCmd->SetGuidance( "Start running the test." ); + runCmd->SetGuidance( "Start running the default grid test." ); + runCmd->SetGuidance( "Same as the grid_test command." ); } @@ -111,18 +126,48 @@ G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman) // G4GeometryMessenger::~G4GeometryMessenger() { - delete addCmd; + delete linCmd; delete posCmd; delete dirCmd; + delete grdCmd; + delete recCmd; + delete cylCmd; delete runCmd; delete resCmd; delete tolCmd; delete geodir; delete navdir; delete testdir; + delete tvolume; + delete tlogger; } +// +// Init +// +void +G4GeometryMessenger::Init() +{ + // Clean old allocated loggers... + // + if (tlogger) delete tlogger; + if (tvolume) delete tvolume; + + // Create a logger to send errors/output to cout + // + tlogger = new G4GeomTestStreamLogger(G4std::cout); + + // Get the world volume + // + G4VPhysicalVolume* world = + tmanager->GetNavigatorForTracking()->GetWorldVolume(); + + // Test the actual detector... + // + tvolume = new G4GeomTestVolume(world, tlogger); +} + // // SetNewValue // @@ -132,9 +177,6 @@ G4GeometryMessenger::SetNewValue( G4UIcommand* command, G4String newValues ) if (command == resCmd) { ResetNavigator(); } - else if (command == addCmd) { - extra = addCmd->GetNewBoolValue( newValues ); - } else if (command == posCmd) { x = posCmd->GetNew3VectorValue( newValues ); } @@ -149,8 +191,21 @@ G4GeometryMessenger::SetNewValue( G4UIcommand* command, G4String newValues ) tol = tolCmd->GetNewDoubleValue( newValues ); newtol = true; } - else if (command == runCmd) { - RunTest(); + else if (command == linCmd) { + Init(); + LineTest(); + } + else if ((command == grdCmd) || (command == runCmd)){ + Init(); + GridTest(); + } + else if (command == recCmd) { + Init(); + RecursiveGridTest(); + } + else if (command == cylCmd) { + Init(); + CylinderTest(); } } @@ -162,10 +217,7 @@ G4String G4GeometryMessenger::GetCurrentValue(G4UIcommand* command ) { G4String cv = ""; - if (command == addCmd) { - cv = addCmd->ConvertToString( extra ); - } - else if (command == posCmd) { + if (command == posCmd) { cv = posCmd->ConvertToString( x, "cm" ); } else if (command == tolCmd) { @@ -194,20 +246,16 @@ G4GeometryMessenger::ResetNavigator() // Reset navigator's state // - G4ThreeVector p(0,0,0); - tmanager->GetNavigatorForTracking()->LocateGlobalPointAndSetup(p,0,false); + G4ThreeVector pt(0,0,0); + tmanager->GetNavigatorForTracking()->LocateGlobalPointAndSetup(pt,0,false); } // -// RunTest +// LineTest // void -G4GeometryMessenger::RunTest() +G4GeometryMessenger::LineTest() { - // Create a logger to send errors/output to cout - // - G4GeomTestStreamLogger logger(G4std::cout); - // Close geometry if necessary // if (geometryOpened) { @@ -217,28 +265,101 @@ G4GeometryMessenger::RunTest() geometryOpened = false; } - // Get the world volume + // Verify if error tolerance has changed // - G4VPhysicalVolume* world = - tmanager->GetNavigatorForTracking()->GetWorldVolume(); + if (newtol) tvolume->SetTolerance(tol); - // Test the actual detector... + // Make test on single line supplied by user // - G4GeomTestVolume geomTest(world, &logger); + tvolume->TestOneLine( x, p ); + + // Print out any errors, if found + // + tvolume->ReportErrors(); +} + +// +// GridTest +// +void +G4GeometryMessenger::GridTest() +{ + // Close geometry if necessary + // + if (geometryOpened) { + G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); + geomManager->OpenGeometry(); + geomManager->CloseGeometry(true); + geometryOpened = false; + } // Verify if error tolerance has changed // - if (newtol) geomTest.SetTolerance(tol); + if (newtol) tvolume->SetTolerance(tol); - // Run the test + // Apply default set of trajectories in a 3D grid pattern // - if (extra) // Make test on single line supplied by user - geomTest.TestOneLine( x, p ); - else // Apply default set of trajectories in a 3D grid pattern - geomTest.TestCartGridXYZ(); + tvolume->TestCartGridXYZ(); // Print out any errors, if found // - geomTest.ReportErrors(); - + tvolume->ReportErrors(); } + +// +// RecursiveGridTest +// +void +G4GeometryMessenger::RecursiveGridTest() +{ + // Close geometry if necessary + // + if (geometryOpened) { + G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); + geomManager->OpenGeometry(); + geomManager->CloseGeometry(true); + geometryOpened = false; + } + + // Verify if error tolerance has changed + // + if (newtol) tvolume->SetTolerance(tol); + + // Apply default set of trajectories in a 3D grid pattern recursively + // + tvolume->TestRecursiveCartGrid(); + + // Print out any errors, if found + // + tvolume->ReportErrors(); +} + +// +// CylinderTest +// +void +G4GeometryMessenger::CylinderTest() +{ + // Close geometry if necessary + // + if (geometryOpened) { + G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); + geomManager->OpenGeometry(); + geomManager->CloseGeometry(true); + geometryOpened = false; + } + + // Verify if error tolerance has changed + // + if (newtol) tvolume->SetTolerance(tol); + + // Apply default set of lines in a cylindrical pattern of gradually + // increasing mesh size of trajectories in a 3D grid pattern recursively + // + tvolume->TestCylinder(); + + // Print out any errors, if found + // + tvolume->ReportErrors(); +} + diff --git a/source/geometry/volumes/src/G4LogicalBorderSurface.cc b/source/geometry/volumes/src/G4LogicalBorderSurface.cc index 5fd9b35cbc..9e96124ab0 100644 --- a/source/geometry/volumes/src/G4LogicalBorderSurface.cc +++ b/source/geometry/volumes/src/G4LogicalBorderSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.cc,v 1.7 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // G4LogicalBorderSurface Implementation diff --git a/source/geometry/volumes/src/G4LogicalSkinSurface.cc b/source/geometry/volumes/src/G4LogicalSkinSurface.cc index fa5914756a..d5c26a3bdf 100644 --- a/source/geometry/volumes/src/G4LogicalSkinSurface.cc +++ b/source/geometry/volumes/src/G4LogicalSkinSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.cc,v 1.7 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // G4LogicalSkinSurface Implementation diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc index 481145fc2b..fbaff7c4fa 100644 --- a/source/geometry/volumes/src/G4NavigationHistory.cc +++ b/source/geometry/volumes/src/G4NavigationHistory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.cc,v 1.4 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NavigationHistory.cc,v 1.5 2002/04/19 08:22:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4NavigationHistory Implementation P.Kent August 96 @@ -30,6 +30,24 @@ #include "G4NavigationHistory.hh" #include "G4ios.hh" +G4NavigationHistory::G4NavigationHistory() + : fNavHistory(kHistoryMax), fStackDepth(0) +{ + Reset(); // Reset depth + Clear(); +} + +G4NavigationHistory::G4NavigationHistory(const G4NavigationHistory &h) + : fNavHistory(h.fNavHistory), fStackDepth(h.fStackDepth) +{ +} + +G4NavigationHistory::~G4NavigationHistory() +{ + Reset(); // To delete all but one current entries! + // delete fNavHistory(0); +} + G4std::ostream& operator << (G4std::ostream& os, const G4NavigationHistory& nav) { diff --git a/source/geometry/volumes/src/G4Navigator.cc b/source/geometry/volumes/src/G4Navigator.cc index cd2f4cc4b2..8f6ed5e3c9 100644 --- a/source/geometry/volumes/src/G4Navigator.cc +++ b/source/geometry/volumes/src/G4Navigator.cc @@ -21,47 +21,63 @@ // ******************************************************************** // // -// $Id: G4Navigator.cc,v 1.23 2001/12/11 17:46:49 gcosmo Exp $ +// $Id: G4Navigator.cc,v 1.32 2002/06/12 09:22:02 japost Exp $ // GEANT4 tag $ Name: $ // // class G4Navigator Implementation Paul Kent July 95/96 +// +// ******************************************************************** #include "G4Navigator.hh" #include "G4ios.hh" #include "g4std/iomanip" -G4Navigator::G4Navigator() : - fWasLimitedByGeometry(false), - fTopPhysical(0), - fVerbose(0) +// ******************************************************************** +// Constructor +// ******************************************************************** +// +G4Navigator::G4Navigator() + : fWasLimitedByGeometry(false), fTopPhysical(0), fVerbose(0) { ResetStackAndState(); } - + +// ******************************************************************** +// Destructor +// ******************************************************************** +// G4Navigator::~G4Navigator() {;} -// define G4DEBUG_NAVIGATION 1 - -// Locate the point in the hierarchy return 0 if outside +// ******************************************************************** +// LocateGlobalPointAndSetup // -// ( The direction is required only if we are on an edge shared by -// two or more surfaces. ) +// Locate the point in the hierarchy return 0 if outside +// The direction is required +// - if on an edge shared by more than two surfaces +// (to resolve likely looping in tracking) +// - at initial location of a particle +// (to resolve potential ambiguity at boundary) // +// Flags on exit: (comments to be completed) +// fEntering - True if entering `daughter' volume (or replica) +// whether daughter of last mother directly +// or daughter of that volume's ancestor. +// ******************************************************************** +// G4VPhysicalVolume* -G4Navigator::LocateGlobalPointAndSetup(const G4ThreeVector& globalPoint, - const G4ThreeVector* pGlobalDirection, - const G4bool relativeSearch, - const G4bool ignoreDirection) +G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, + const G4ThreeVector* pGlobalDirection, + const G4bool relativeSearch, + const G4bool ignoreDirection ) { - G4bool notKnownContained=true,noResult; + G4bool notKnownContained=true, noResult; G4VPhysicalVolume *targetPhysical; G4LogicalVolume *targetLogical; G4VSolid *targetSolid=0; G4ThreeVector localPoint, globalDirection; EInside insideCode; - G4bool considerDirection = (!ignoreDirection) || fLocatedOnEdge; if( considerDirection && pGlobalDirection != 0 ) @@ -73,309 +89,406 @@ G4Navigator::LocateGlobalPointAndSetup(const G4ThreeVector& globalPoint, G4cerr << "Upon entering LocateGlobalPointAndSetup " << G4endl; G4cerr << " History = " << G4endl << fHistory << G4endl << G4endl; #endif + #ifdef G4VERBOSE if( fVerbose > 0 ) - { - G4cout << "*** G4Navigator::LocateGlobalPointAndSetup: ***" << G4endl; - G4cout.precision(8); - G4cout << " I was called with the following arguments: " << G4endl - << " Globalpoint = " << globalPoint << G4endl - << " relativeSearch = " << relativeSearch << G4endl; - // << " = " << << G4endl - G4cout << " Upon entering my state is: " << G4endl; - PrintState(); - } + { + G4cout << "*** G4Navigator::LocateGlobalPointAndSetup: ***" << G4endl; + G4cout.precision(8); + G4cout << " I was called with the following arguments: " << G4endl + << " Globalpoint = " << globalPoint << G4endl + << " relativeSearch = " << relativeSearch << G4endl; + G4cout << " Upon entering my state is: " << G4endl; + PrintState(); + } #endif - if (!relativeSearch) - { - ResetStackAndState(); - } + if ( !relativeSearch ) + { + ResetStackAndState(); + } else + { + if ( fWasLimitedByGeometry ) { - if (fWasLimitedByGeometry) - { - fWasLimitedByGeometry=false; - fEnteredDaughter=fEntering; // Remember - fExitedMother= fExiting; // Remember - if (fExiting) - { - if (fHistory.GetDepth()) - { - fBlockedPhysicalVolume=fHistory.GetTopVolume(); - fBlockedReplicaNo=fHistory.GetTopReplicaNo(); - fHistory.BackLevel(); - } - else - { - // Have exited world volume - return 0; - } - - // A fix for the case where a volume is "entered" at an edge - // and a coincident surface exists outside it. - // - This stops it from exiting further volumes and cycling - // - However ReplicaNavigator treats this case itself - if( fLocatedOnEdge - && (VolumeType(fBlockedPhysicalVolume) != kReplica )) - // ( fLastStepWasZero ) - { - fExiting= false; - } - } - else if (fEntering) - { - G4VPhysicalVolume *curPhysical=fHistory.GetTopVolume(); - switch (VolumeType(fBlockedPhysicalVolume)) - { - case kNormal: - fBlockedPhysicalVolume->Setup(curPhysical); - fHistory.NewLevel(fBlockedPhysicalVolume, - kNormal, - fBlockedPhysicalVolume->GetCopyNo()); - break; - case kReplica: - freplicaNav.ComputeTransformation(fBlockedReplicaNo, - fBlockedPhysicalVolume); - fBlockedPhysicalVolume->Setup(curPhysical); - fHistory.NewLevel(fBlockedPhysicalVolume, - kReplica, - fBlockedReplicaNo); - fBlockedPhysicalVolume->SetCopyNo(fBlockedReplicaNo); - - break; - case kParameterised: - G4VSolid *pSolid; - // G4VSolid *pSolid=fBlockedPhysicalVolume-> - // GetLogicalVolume()-> GetSolid(); - G4VPVParameterisation *pParam=fBlockedPhysicalVolume-> - GetParameterisation(); - pSolid= pParam->ComputeSolid(fBlockedReplicaNo, - fBlockedPhysicalVolume); - pSolid->ComputeDimensions(pParam, - fBlockedReplicaNo, - fBlockedPhysicalVolume); - pParam->ComputeTransformation(fBlockedReplicaNo, - fBlockedPhysicalVolume); - fBlockedPhysicalVolume->Setup(curPhysical); - fHistory.NewLevel(fBlockedPhysicalVolume, - kParameterised, - fBlockedReplicaNo); - fBlockedPhysicalVolume->SetCopyNo(fBlockedReplicaNo); - // Set the correct solid and material in Logical Volume - G4LogicalVolume *pLogical; - pLogical= fBlockedPhysicalVolume->GetLogicalVolume(); - pLogical->SetSolid( pSolid ); - pLogical->SetMaterial( - pParam->ComputeMaterial(fBlockedReplicaNo, - fBlockedPhysicalVolume)); - break; - } - fEntering=false; - fBlockedPhysicalVolume=0; - localPoint=fHistory.GetTopTransform().TransformPoint(globalPoint); - notKnownContained=false; - } - } - else - { - fBlockedPhysicalVolume=0; - fEntering=false; - fEnteredDaughter=false; // Full Step was not taken, did not enter - fExiting=false; - fExitedMother=false; // Full Step was not taken, did not exit - } - } -// -// Search from top of history up through geometry until -// containing volume found: -// -// If on -// o OUTSIDE - Back up level, not/no longer exiting volumes -// o SURFACE and EXITING - Back up level, setting new blocking no.s -// else -// o containing volume found -// - while (notKnownContained) - { - if (fHistory.GetTopVolumeType()!=kReplica) - { - targetSolid=fHistory.GetTopVolume()->GetLogicalVolume()->GetSolid(); - localPoint=fHistory.GetTopTransform().TransformPoint(globalPoint); - insideCode=targetSolid->Inside(localPoint); - } - else - { - insideCode=freplicaNav.BackLocate(fHistory,globalPoint,localPoint,fExiting,notKnownContained); - // !CARE! if notKnownContained returns false then the point is within - // the containing placement volume of the replica(s). If insidecode - // will result in the history being backed up one level, then the - // local point returned is the point in the system of this new level - } - - if (insideCode==kOutside) - { - if (fHistory.GetDepth()) - { - fBlockedPhysicalVolume=fHistory.GetTopVolume(); - fBlockedReplicaNo=fHistory.GetTopReplicaNo(); - fHistory.BackLevel(); - fExiting=false; - } - else - { - // Have exited world volume - return 0; - } - } - else if (insideCode==kSurface) + fWasLimitedByGeometry = false; + fEnteredDaughter = fEntering; // Remember + fExitedMother = fExiting; // Remember + if ( fExiting ) { - G4bool isExiting= fExiting; - if((!fExiting)&&considerDirection){ - // Figure out whether we are exiting this level's volume by using the direction - G4bool directionExiting= false; - G4ThreeVector localDirection; - localDirection=fHistory.GetTopTransform().TransformAxis(globalDirection); - if (fHistory.GetTopVolumeType()!=kReplica){ - G4ThreeVector normal= targetSolid->SurfaceNormal(localPoint); - directionExiting= normal.dot(localDirection) > 0.0; - - isExiting= isExiting || directionExiting; - } - } - if(isExiting) - { - if (fHistory.GetDepth()) - { - fBlockedPhysicalVolume=fHistory.GetTopVolume(); - fBlockedReplicaNo=fHistory.GetTopReplicaNo(); - fHistory.BackLevel(); - // Still on surface but exited volume not necessarily convex - fValidExitNormal=false; - } - else - { - // Have exited world volume - return 0; - } + if ( fHistory.GetDepth() ) + { + fBlockedPhysicalVolume = fHistory.GetTopVolume(); + fBlockedReplicaNo = fHistory.GetTopReplicaNo(); + fHistory.BackLevel(); } else { - notKnownContained=false; - } + return 0; // Have exited world volume + } + // A fix for the case where a volume is "entered" at an edge + // and a coincident surface exists outside it. + // - This stops it from exiting further volumes and cycling + // - However ReplicaNavigator treats this case itself + // + if ( fLocatedOnEdge && (VolumeType(fBlockedPhysicalVolume)!=kReplica )) + { + fExiting= false; + } + } + else + if ( fEntering ) + { + G4VPhysicalVolume *curPhysical = fHistory.GetTopVolume(); + switch (VolumeType(fBlockedPhysicalVolume)) + { + case kNormal: + fBlockedPhysicalVolume->Setup(curPhysical); + fHistory.NewLevel(fBlockedPhysicalVolume, kNormal, + fBlockedPhysicalVolume->GetCopyNo()); + break; + case kReplica: + freplicaNav.ComputeTransformation(fBlockedReplicaNo, + fBlockedPhysicalVolume); + fBlockedPhysicalVolume->Setup(curPhysical); + fHistory.NewLevel(fBlockedPhysicalVolume, kReplica, + fBlockedReplicaNo); + fBlockedPhysicalVolume->SetCopyNo(fBlockedReplicaNo); + break; + case kParameterised: + G4VSolid *pSolid; + G4VPVParameterisation *pParam; + pParam = fBlockedPhysicalVolume->GetParameterisation(); + pSolid = pParam->ComputeSolid(fBlockedReplicaNo, + fBlockedPhysicalVolume); + pSolid->ComputeDimensions(pParam, fBlockedReplicaNo, + fBlockedPhysicalVolume); + pParam->ComputeTransformation(fBlockedReplicaNo, + fBlockedPhysicalVolume); + fBlockedPhysicalVolume->Setup(curPhysical); + fHistory.NewLevel(fBlockedPhysicalVolume, kParameterised, + fBlockedReplicaNo); + fBlockedPhysicalVolume->SetCopyNo(fBlockedReplicaNo); + // + // Set the correct solid and material in Logical Volume + // + G4LogicalVolume *pLogical; + pLogical = fBlockedPhysicalVolume->GetLogicalVolume(); + pLogical->SetSolid( pSolid ); + pLogical->SetMaterial(pParam->ComputeMaterial(fBlockedReplicaNo, + fBlockedPhysicalVolume)); + break; + } + fEntering = false; + fBlockedPhysicalVolume = 0; + localPoint = fHistory.GetTopTransform().TransformPoint(globalPoint); + notKnownContained = false; + } + } + else + { + fBlockedPhysicalVolume = 0; + fEntering = false; + fEnteredDaughter = false; // Full Step was not taken, did not enter + fExiting = false; + fExitedMother = false; // Full Step was not taken, did not exit + } + } + // + // Search from top of history up through geometry until + // containing volume found: + // If on + // o OUTSIDE - Back up level, not/no longer exiting volumes + // o SURFACE and EXITING - Back up level, setting new blocking no.s + // else + // o containing volume found + // + while (notKnownContained) + { + if ( fHistory.GetTopVolumeType()!=kReplica ) + { + targetSolid = fHistory.GetTopVolume()->GetLogicalVolume()->GetSolid(); + localPoint = fHistory.GetTopTransform().TransformPoint(globalPoint); + insideCode = targetSolid->Inside(localPoint); + } + else + { + insideCode = freplicaNav.BackLocate(fHistory, globalPoint, localPoint, + fExiting, notKnownContained); + // !CARE! if notKnownContained returns false then the point is within + // the containing placement volume of the replica(s). If insidecode + // will result in the history being backed up one level, then the + // local point returned is the point in the system of this new level + } + if ( insideCode==kOutside ) + { + if ( fHistory.GetDepth() ) + { + fBlockedPhysicalVolume = fHistory.GetTopVolume(); + fBlockedReplicaNo = fHistory.GetTopReplicaNo(); + fHistory.BackLevel(); + fExiting = false; } else { - notKnownContained=false; + return 0; // Have exited world volume } } - -// -// Search downwards until deepest containing volume found, -// blocking fBlockedPhysicalVolume/BlockedReplicaNum -// -// 3 Cases: -// -// o Parameterised daughters -// =>Must be one G4PVParameterised daughter & voxels -// o Positioned daughters & voxels -// o Positioned daughters & no voxels + else + if ( insideCode==kSurface ) + { + G4bool isExiting = fExiting; + if( (!fExiting)&&considerDirection ) + { + // Figure out whether we are exiting this level's volume + // by using the direction + // + G4bool directionExiting = false; + G4ThreeVector localDirection = + fHistory.GetTopTransform().TransformAxis(globalDirection); + if ( fHistory.GetTopVolumeType()!=kReplica ) + { + G4ThreeVector normal = targetSolid->SurfaceNormal(localPoint); + directionExiting = normal.dot(localDirection) > 0.0; + isExiting = isExiting || directionExiting; + } + } + if( isExiting ) + { + if ( fHistory.GetDepth() ) + { + fBlockedPhysicalVolume = fHistory.GetTopVolume(); + fBlockedReplicaNo = fHistory.GetTopReplicaNo(); + fHistory.BackLevel(); + // + // Still on surface but exited volume not necessarily convex + // + fValidExitNormal = false; + } + else + { + return 0; // Have exited world volume + } + } + else + { + notKnownContained=false; + } + } + else + { + notKnownContained=false; + } + } // END while (notKnownContained) + // + // Search downwards until deepest containing volume found, + // blocking fBlockedPhysicalVolume/BlockedReplicaNum + // + // 3 Cases: + // + // o Parameterised daughters + // =>Must be one G4PVParameterised daughter & voxels + // o Positioned daughters & voxels + // o Positioned daughters & no voxels - noResult=true; // noResult should be renamed to - // something like enteredLevel, as that is its meaning. - - do + noResult = true; // noResult should be renamed to + // something like enteredLevel, as that is its meaning. + do + { + // Determine `type' of current mother volume + // + targetPhysical = fHistory.GetTopVolume(); + targetLogical = targetPhysical->GetLogicalVolume(); + switch( CharacteriseDaughters(targetLogical) ) { - -// Determine `type' of current mother volume - targetPhysical=fHistory.GetTopVolume(); - targetLogical=targetPhysical->GetLogicalVolume(); - switch(CharacteriseDaughters(targetLogical)) - { - case kNormal: - if (targetLogical->GetVoxelHeader()) - { - noResult=fvoxelNav.LevelLocate(fHistory, - fBlockedPhysicalVolume, - fBlockedReplicaNo, - globalPoint, - pGlobalDirection, - considerDirection, - localPoint); - } - else - { - noResult=fnormalNav.LevelLocate(fHistory, - fBlockedPhysicalVolume, - fBlockedReplicaNo, - globalPoint, - pGlobalDirection, - considerDirection, - localPoint); - } - break; - case kReplica: - noResult=freplicaNav.LevelLocate(fHistory, - fBlockedPhysicalVolume, - fBlockedReplicaNo, - globalPoint, - pGlobalDirection, - considerDirection, - localPoint); - break; - case kParameterised: - noResult=fparamNav.LevelLocate(fHistory, - fBlockedPhysicalVolume, - fBlockedReplicaNo, - globalPoint, - pGlobalDirection, - considerDirection, - localPoint); - break; - } + case kNormal: + if ( targetLogical->GetVoxelHeader() ) // use optimised navigation + { + noResult = fvoxelNav.LevelLocate(fHistory, + fBlockedPhysicalVolume, + fBlockedReplicaNo, + globalPoint, + pGlobalDirection, + considerDirection, + localPoint); + } + else // do not use optimised navigation + { + noResult = fnormalNav.LevelLocate(fHistory, + fBlockedPhysicalVolume, + fBlockedReplicaNo, + globalPoint, + pGlobalDirection, + considerDirection, + localPoint); + } + break; + case kReplica: + noResult = freplicaNav.LevelLocate(fHistory, + fBlockedPhysicalVolume, + fBlockedReplicaNo, + globalPoint, + pGlobalDirection, + considerDirection, + localPoint); + break; + case kParameterised: + noResult = fparamNav.LevelLocate(fHistory, + fBlockedPhysicalVolume, + fBlockedReplicaNo, + globalPoint, + pGlobalDirection, + considerDirection, + localPoint); + break; + } - // LevelLocate returns true if it finds a daughter volume - // in which globalPoint is inside (or on the surface). + // LevelLocate returns true if it finds a daughter volume + // in which globalPoint is inside (or on the surface). - if (noResult) - { - // The blocked volume is no longer valid - it was for another level - fBlockedPhysicalVolume= 0; - fBlockedReplicaNo= -1; - } - } while (noResult); + if ( noResult ) + { + // Entering a daughter after ascending + // + // The blocked volume is no longer valid - it was for another level + // + fBlockedPhysicalVolume = 0; + fBlockedReplicaNo = -1; + // fEntering should be false -- else blockedVolume is assumed good. + // fEnteredDaughter is used for ExitNormal -- + fEntering = false; + fEnteredDaughter = true; + } + } while (noResult); - fLastLocatedPointLocal=localPoint; + fLastLocatedPointLocal = localPoint; #ifdef G4VERBOSE if( fVerbose > 0 ) PrintState(); - if( fVerbose > 1 ) - { - G4cout.precision(6); - - G4String curPhysVol_Name("None"); - if (targetPhysical!=0) - curPhysVol_Name= targetPhysical->GetName(); - G4cout << " Return value = new volume = " - << curPhysVol_Name << G4endl; - } + { + G4cout.precision(6); + G4String curPhysVol_Name("None"); + if (targetPhysical!=0) + curPhysVol_Name = targetPhysical->GetName(); + G4cout << " Return value = new volume = " + << curPhysVol_Name << G4endl; + } #endif #ifdef G4DEBUG_NAVIGATION G4cerr << "Upon exiting LocateGlobalPointAndSetup " << G4endl; G4cerr << " History = " << G4endl << fHistory << G4endl << G4endl; #endif - return targetPhysical; + + return targetPhysical; } -// Compute the next geometric Step: Intersections with current +// ******************************************************************** +// LocateGlobalPointWithinVolume +// +// -> the state information of this Navigator and its subNavigators +// is updated in order to start the next step at pGlobalpoint +// -> no check is performed whether pGlobalpoint is inside the +// original volume (this must be the case). +// +// Note: a direction could be added to the arguments, to aid in future +// optional checking (via the old code below, flagged by OLD_LOCATE). +// [ This would be done only in verbose mode ] +// ******************************************************************** +// +void +G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint) +{ + fLastLocatedPointLocal = ComputeLocalPoint(pGlobalpoint); + + // For the case of Voxel (or Parameterised) volume the respective + // Navigator must be messaged to update its voxel information etc + + // Update the state of the Sub Navigators + // - in particular any voxel information they store/cache + // + G4VPhysicalVolume* motherPhysical = fHistory.GetTopVolume(); + G4LogicalVolume* motherLogical = motherPhysical->GetLogicalVolume(); + G4SmartVoxelHeader* pVoxelHeader = motherLogical->GetVoxelHeader(); + + G4ThreeVector localPoint = ComputeLocalPoint(pGlobalpoint); + if ( fHistory.GetTopVolumeType()!=kReplica ) + { + switch( CharacteriseDaughters(motherLogical) ) + { + case kNormal: + if ( pVoxelHeader ) + { + fvoxelNav.VoxelLocate( pVoxelHeader, localPoint ); + } + // else { fnormalNav. nothing !? } + break; + + case kParameterised: + // Resets state & returns voxel node + // + fparamNav.ParamVoxelLocate( pVoxelHeader, localPoint ); + break; + + case kReplica: + G4Exception("ERROR in G4Navigator::LocateGlobalPointWithinVolume()"); + break; + } + } + + // Reset the state variables + // - which would have been affected + // by the 'equivalent' call to LocateGlobalPointAndSetup + // - who's values have been invalidated by the 'move'. + // + fBlockedPhysicalVolume = 0; + fBlockedReplicaNo = -1; + fEntering = false; + fEnteredDaughter = false; // Boundary not encountered, did not enter + fExiting = false; + fExitedMother = false; // Boundary not encountered, did not exit + +#ifdef OLD_LOCATE + // An alternative implementation using LocateGlobalPointAndSetup. + // It can also be used to check the method's assumptions. + // + G4VPhysicalVolume *pOldVol, *pNewVol; + + pOldVol = fHistory.GetTopVolume(); + pNewVol = LocateGlobalPointAndSetup(pGlobalpoint, 0); + + if( pOldVol != pNewVol ) + { + // This is abnormal behaviour. + G4cerr << " ERROR in G4Navigator::LocateGlobalPointWithinVolume " + << G4endl; + G4cerr << " A volume change has occured - this is not expected & illegal" + << G4endl; + G4cerr << " Old volume name = " << pOldVol->GetName() << G4endl; + G4cerr << " New volume name = " << pNewVol->GetName() << G4endl; + + G4VPhysicalVolume* pNewVol2 = LocateGlobalPointAndSetup(pGlobalpoint, 0); + G4cerr << " Tried again & found volume = " << pNewVol2->GetName() + << G4endl; + } + + // Check that the new volume located is same as the old one + // + assert( pOldVol == pNewVol ); +#endif +} + +// ******************************************************************** +// ComputeStep +// +// Computes the next geometric Step: intersections with current // mother and `daughter' volumes. // // NOTE: // // Flags on entry: -// +// -------------- // fValidExitNormal - Normal of exited volume is valid (convex, not a // coincident boundary) // fExitNormal - Surface normal of exited volume @@ -386,6 +499,7 @@ G4Navigator::LocateGlobalPointAndSetup(const G4ThreeVector& globalPoint, // fLastStepWasZero - True if last Step size was zero. // // Flags on exit: +// ------------- // fValidExitNormal - True if surface normal of exited volume is valid // fExitNormal - Surface normal of exited volume rotated to mothers // reference system @@ -394,565 +508,526 @@ G4Navigator::LocateGlobalPointAndSetup(const G4ThreeVector& globalPoint, // fBlockedPhysicalVolume - Ptr to candidate (entered) volume // fBlockedReplicaNo - Replication no of candidate (entered) volume // fLastStepWasZero - True if this Step size was zero. - -G4double G4Navigator::ComputeStep(const G4ThreeVector &pGlobalpoint, - const G4ThreeVector &pDirection, - const G4double pCurrentProposedStepLength, - G4double &pNewSafety) +// ******************************************************************** +// +G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, + const G4ThreeVector &pDirection, + const G4double pCurrentProposedStepLength, + G4double &pNewSafety) { G4double Step = DBL_MAX; - G4ThreeVector localDirection=ComputeLocalAxis(pDirection); - G4VPhysicalVolume *motherPhysical=fHistory.GetTopVolume(); - G4LogicalVolume *motherLogical=motherPhysical->GetLogicalVolume(); + G4ThreeVector localDirection = ComputeLocalAxis(pDirection); + G4VPhysicalVolume *motherPhysical = fHistory.GetTopVolume(); + G4LogicalVolume *motherLogical = motherPhysical->GetLogicalVolume(); #ifdef G4VERBOSE G4std::cout.precision(8); if( fVerbose > 1 ) - { - G4cout << "*** G4Navigator::ComputeStep: ***" << G4endl; - G4std::cout.precision(8); - G4cout << " I was called with the following arguments: " << G4endl - << " Globalpoint = " << G4std::setw(25) << pGlobalpoint << G4endl - << " Direction = " << G4std::setw(25) << pDirection << G4endl - << " ProposedStepLength= " << pCurrentProposedStepLength << G4endl; - // << " = " << << G4endl - } - + { + G4cout << "*** G4Navigator::ComputeStep: ***" << G4endl; + G4std::cout.precision(8); + G4cout << " I was called with the following arguments: " << G4endl + << " Globalpoint = " << G4std::setw(25) << pGlobalpoint << G4endl + << " Direction = " << G4std::setw(25) << pDirection << G4endl + << " ProposedStepLength= " << pCurrentProposedStepLength << G4endl; + } if( fVerbose > 2 ) - { - // G4std::cout.precision(3); - G4cout << " Upon entering my state is: " << G4endl; - PrintState(); - } + { + G4cout << " Upon entering my state is: " << G4endl; + PrintState(); + } #endif - static G4double fAccuracyForWarning= kCarTolerance, - fAccuracyForException= 1000*kCarTolerance; + static G4double fAccuracyForWarning = kCarTolerance, + fAccuracyForException = 1000*kCarTolerance; - G4ThreeVector newLocalPoint =ComputeLocalPoint(pGlobalpoint); + G4ThreeVector newLocalPoint = ComputeLocalPoint(pGlobalpoint); if( newLocalPoint != fLastLocatedPointLocal ) + { + // Check whether the relocation is within safety + // + G4ThreeVector oldLocalPoint = fLastLocatedPointLocal; + G4double moveLenSq = (newLocalPoint-oldLocalPoint).mag2(); + + if ( moveLenSq >= kCarTolerance*kCarTolerance ) { - // Check whether the relocation is within safety + // The following checks only make sense if the move is larger + // than the tolerance. + // + G4ThreeVector OriginalGlobalpoint = + fHistory.GetTopTransform().Inverse(). + TransformPoint(fLastLocatedPointLocal); + + G4double shiftOriginSafSq = (fPreviousSftOrigin-pGlobalpoint).mag2(); + + // Check that the starting point of this step is + // within the isotropic safety sphere of the last point + // to a accuracy/precision given by fAccuracyForWarning. + // If so give warning. + // If it fails by more than fAccuracyForException exit with error. // - G4ThreeVector oldLocalPoint= fLastLocatedPointLocal; - G4double moveLenSq= (newLocalPoint-oldLocalPoint).mag2(); + if( shiftOriginSafSq >= sqr(fPreviousSafety) ) + { + G4double shiftOrigin = sqrt(shiftOriginSafSq); + G4double diffShiftSaf = shiftOrigin - fPreviousSafety; + G4bool isError; - if (moveLenSq >= kCarTolerance*kCarTolerance){ - // - // The following checks only make sense if the move is larger - // than the tolerance. - // - G4ThreeVector OriginalGlobalpoint; - OriginalGlobalpoint = fHistory.GetTopTransform().Inverse() - .TransformPoint(fLastLocatedPointLocal); - - G4double shiftOriginSafSq= (fPreviousSftOrigin-pGlobalpoint).mag2(); - - // Check that the starting point of this step is - // within the isotropic safety sphere of the last point - // to a accuracy/precision given by - // fAccuracyForWarning - // If so give warning. If it fails by more than - // fAccuracyForException - // exit with error. - - if( shiftOriginSafSq >= sqr(fPreviousSafety) ){ - G4double shiftOrigin=sqrt(shiftOriginSafSq); - G4double diffShiftSaf= shiftOrigin - fPreviousSafety; - G4bool isError; - - if( diffShiftSaf > fAccuracyForWarning ){ - isError = ( diffShiftSaf >= fAccuracyForException ); - G4cerr.precision(10); - if ( isError ) - G4cerr << "Accuracy ERROR found in G4Navigator::ComputeStep: " << G4endl; - else - G4cerr << "Warning G4Navigator::ComputeStep found slightly inaccurate position:" << G4endl; - - G4cerr << " The Step's starting point has moved " - << sqrt(moveLenSq)/mm << " mm " << G4endl - << " since the last call to a Locate method." << G4endl; - G4cerr << " This has resulted in moving " - << shiftOrigin/mm << " mm " - << " from the last point at which the safety " - << " was calculated " << G4endl; - G4cerr << " which is more than the computed safety= " - << fPreviousSafety/mm << " mm at that point." << G4endl; - G4cerr << " This difference is " - << diffShiftSaf /mm << " mm." << G4endl; + if( diffShiftSaf > fAccuracyForWarning ) + { + isError = ( diffShiftSaf >= fAccuracyForException ); + G4cerr.precision(10); + if ( isError ) + G4cerr << "Accuracy ERROR found in G4Navigator::ComputeStep: " + << G4endl; + else + G4cerr << "Warning G4Navigator::ComputeStep found slightly " + << "inaccurate position:" << G4endl; + G4cerr << " The Step's starting point has moved " + << sqrt(moveLenSq)/mm << " mm " << G4endl + << " since the last call to a Locate method." << G4endl; + G4cerr << " This has resulted in moving " + << shiftOrigin/mm << " mm " + << " from the last point at which the safety " + << " was calculated " << G4endl; + G4cerr << " which is more than the computed safety= " + << fPreviousSafety/mm << " mm at that point." << G4endl; + G4cerr << " This difference is " + << diffShiftSaf /mm << " mm." << G4endl; #ifdef G4VERBOSE - static G4int warnNow= 0; - if( ((++warnNow % 100) == 1) ) { // || (warnNow < 4) ){ - G4cerr << " This problem can be due to either " << G4endl; - G4cerr << " - a process that has proposed a displacement" - << " larger than the current safety , or" << G4endl; - G4cerr << " - inaccuracy in the computation of the safety" << G4endl; - G4cerr << " - if you are using a magnetic field, a known conflict about the safety exists in this case." - << G4endl; - G4cerr << " We suggest that you " << G4endl - << " - find i) what particle is being tracked, and " - << " ii) through what part of your geometry " << G4endl - << " for example by reruning this event with " << G4endl - << " /tracking/verbose 1 " << G4endl - << " - check which processes you declare for this particle" - << " (and look at non-standard ones) " << G4endl - << " - if possible create a detailed logfile " - << " of this event using:" << G4endl - << " /tracking/verbose 6 " - << G4endl; - } - // G4cerr << " - ." << G4endl; + static G4int warnNow = 0; + if( ((++warnNow % 100) == 1) ) + { + G4cerr << " This problem can be due to either " << G4endl; + G4cerr << " - a process that has proposed a displacement" + << " larger than the current safety , or" << G4endl; + G4cerr << " - inaccuracy in the computation of the safety" + << G4endl; + G4cerr << " - if you are using a magnetic field," + << " a known conflict about the safety exists in this case." + << G4endl; + G4cerr << " We suggest that you " << G4endl + << " - find i) what particle is being tracked, and " + << " ii) through what part of your geometry " << G4endl + << " for example by reruning this event with " + << G4endl + << " /tracking/verbose 1 " << G4endl + << " - check which processes you declare for" + << " this particle (and look at non-standard ones)" << G4endl + << " - if possible create a detailed logfile" + << " of this event using:" << G4endl + << " /tracking/verbose 6 " + << G4endl; + } #endif - } -#ifdef DEBUG - else - { - G4cerr << " Warning in G4Navigator::ComputeStep: " << G4endl - << "The Step's starting point has moved " << sqrt(moveLenSq) - << " which has taken it to the limit of the current safety. " - << G4endl; - } + } +#ifdef G4DEBUG_NAVIGATION + else + { + G4cerr << " Warning in G4Navigator::ComputeStep: " << G4endl + << "The Step's starting point has moved " << sqrt(moveLenSq) + << " which has taken it to the limit of the current safety. " + << G4endl; + } #endif - } - G4double safetyPlus = fPreviousSafety+ fAccuracyForException; - assert( shiftOriginSafSq <= sqr(safetyPlus) ); - - // Relocate the point within the same volume - // - LocateGlobalPointWithinVolume( pGlobalpoint ); } - } + G4double safetyPlus = fPreviousSafety+ fAccuracyForException; + assert( shiftOriginSafSq <= sqr(safetyPlus) ); - if (fHistory.GetTopVolumeType()!=kReplica) - { - switch(CharacteriseDaughters(motherLogical)) - { - case kNormal: - if (motherLogical->GetVoxelHeader()) - { - Step=fvoxelNav.ComputeStep(fLastLocatedPointLocal, - localDirection, - pCurrentProposedStepLength, - pNewSafety, - fHistory, - fValidExitNormal, - fExitNormal, - fExiting, - fEntering, - &fBlockedPhysicalVolume, - fBlockedReplicaNo); - - } - else - { - Step=fnormalNav.ComputeStep(fLastLocatedPointLocal, - localDirection, - pCurrentProposedStepLength, - pNewSafety, - fHistory, - fValidExitNormal, - fExitNormal, - fExiting, - fEntering, - &fBlockedPhysicalVolume, - fBlockedReplicaNo); - } - break; - case kParameterised: - Step=fparamNav.ComputeStep(fLastLocatedPointLocal, - localDirection, - pCurrentProposedStepLength, - pNewSafety, - fHistory, - fValidExitNormal, - fExitNormal, - fExiting, - fEntering, - &fBlockedPhysicalVolume, - fBlockedReplicaNo); - break; - case kReplica: - G4Exception("Logic Error in G4Navigator::ComputeStep()"); - break; - } + // Relocate the point within the same volume + // + LocateGlobalPointWithinVolume( pGlobalpoint ); } - else + } + if ( fHistory.GetTopVolumeType()!=kReplica ) + { + switch( CharacteriseDaughters(motherLogical) ) { - // In the case of a replica, - // it must handles the exiting edge/corner problem by itself - G4bool exitingReplica= fExitedMother; - Step=freplicaNav.ComputeStep(pGlobalpoint, - pDirection, - fLastLocatedPointLocal, - localDirection, - pCurrentProposedStepLength, - pNewSafety, - fHistory, - fValidExitNormal, - fExitNormal, - exitingReplica, - fEntering, - &fBlockedPhysicalVolume, - fBlockedReplicaNo); - // still ok to set it ?? - fExiting= exitingReplica; - } + case kNormal: + if ( motherLogical->GetVoxelHeader() ) + { + Step = fvoxelNav.ComputeStep(fLastLocatedPointLocal, + localDirection, + pCurrentProposedStepLength, + pNewSafety, + fHistory, + fValidExitNormal, + fExitNormal, + fExiting, + fEntering, + &fBlockedPhysicalVolume, + fBlockedReplicaNo); + + } + else + { + Step = fnormalNav.ComputeStep(fLastLocatedPointLocal, + localDirection, + pCurrentProposedStepLength, + pNewSafety, + fHistory, + fValidExitNormal, + fExitNormal, + fExiting, + fEntering, + &fBlockedPhysicalVolume, + fBlockedReplicaNo); + } + break; + case kParameterised: + Step = fparamNav.ComputeStep(fLastLocatedPointLocal, + localDirection, + pCurrentProposedStepLength, + pNewSafety, + fHistory, + fValidExitNormal, + fExitNormal, + fExiting, + fEntering, + &fBlockedPhysicalVolume, + fBlockedReplicaNo); + break; + case kReplica: + G4Exception("Logic Error in G4Navigator::ComputeStep()"); + break; + } + } + else + { + // In the case of a replica, it must handle the exiting + // edge/corner problem by itself + // + G4bool exitingReplica = fExitedMother; + Step = freplicaNav.ComputeStep(pGlobalpoint, + pDirection, + fLastLocatedPointLocal, + localDirection, + pCurrentProposedStepLength, + pNewSafety, + fHistory, + fValidExitNormal, + fExitNormal, + exitingReplica, + fEntering, + &fBlockedPhysicalVolume, + fBlockedReplicaNo); + fExiting= exitingReplica; // still ok to set it ?? + } if( (Step == pCurrentProposedStepLength) && (!fExiting) && (!fEntering) ) - { - // This is Step is not really limited by the geometry. - // The Navigator is obliged to return "infinity" - Step = kInfinity; - } + { + // This if Step is not really limited by the geometry. + // The Navigator is obliged to return "infinity" + // + Step = kInfinity; + } // Remember last safety origin & value. - fPreviousSftOrigin= pGlobalpoint; - fPreviousSafety= pNewSafety; + // + fPreviousSftOrigin = pGlobalpoint; + fPreviousSafety = pNewSafety; - fLocatedOnEdge= fLastStepWasZero && (Step==0); // Edge if two consecutive - // steps are zero, because - // at least two candidate volumes must have been checked + // Edge if two consecutive steps are zero, because + // at least two candidate volumes must have been checked + // + fLocatedOnEdge = fLastStepWasZero && (Step==0); + fLastStepWasZero = (Step==0); - fLastStepWasZero= (Step==0); - fEnteredDaughter=fEntering; // I expect to enter a volume in this Step - fExitedMother=fExiting; + fEnteredDaughter = fEntering; // I expect to enter a volume in this Step + fExitedMother = fExiting; - if(fExiting && !fValidExitNormal) - { - // We must calculate the normal anyway (in order to have it if requested) - G4ThreeVector FinalPoint= fLastLocatedPointLocal + localDirection*Step; - fExitNormal= motherLogical->GetSolid()->SurfaceNormal(FinalPoint); + if( fExiting ) + { +#ifdef G4DEBUG_NAVIGATION + G4cout << " At G4Nav CompStep End - if(exiting) - fExiting= " << fExiting + << " fValidExitNormal = " << fValidExitNormal << G4endl; + G4cout << " fExitNormal= " << fExitNormal << G4endl; +#endif - } + if(fValidExitNormal) + { + // Convention: fExitNormal is in the 'grand-mother' coordinate system + // + fGrandMotherExitNormal= fExitNormal; + + // If no relocation were made, we would need to rotate it back to + // this (the mother) coordinate system + // const G4RotationMatrix* motherRotation= motherPhysical->GetRotation(); + // G4ThreeVector trueMotherExitNormal = fGrandMotherExitNormal; + // Un-rotate gran->mother + // + // trueMotherExitNormal *= (*motherRotation); + + // However, relocation will put us either in + // - the grand-mother (OK) + // - in the grand-grand mother (to BE checked if this is dealt with) + } + else + { + // We must calculate the normal anyway + // (in order to have it if requested) + // + G4ThreeVector finalGlobalPoint, finalLocalPoint, localExitNormal; + finalGlobalPoint = fLastLocatedPointLocal + localDirection*Step; + finalLocalPoint = ComputeLocalPoint(finalGlobalPoint); + localExitNormal = motherLogical->GetSolid()-> + SurfaceNormal(finalLocalPoint); + const G4RotationMatrix* mRot = motherPhysical->GetRotation(); + if( mRot ) + { + G4ThreeVector grandMotherExitNormal = localExitNormal; + grandMotherExitNormal *= (*mRot); + + // Now fGrandMotherExitNormal is in the 'grand-mother' + // coordinate system + // + fGrandMotherExitNormal = grandMotherExitNormal; + } + } +#ifdef G4DEBUG_NAVIGATION + G4cout << " fGrandMotherExitNormal= " << fGrandMotherExitNormal << G4endl; +#endif + } #ifdef G4VERBOSE if( fVerbose > 1 ) - { - G4cout << " Upon exiting my state is: " << G4endl; - PrintState(); - } + { + G4cout << "Upon exiting my state is: " << G4endl; + PrintState(); + } #endif return Step; } -// Renavigate & reset hierarchy described by current history +// ******************************************************************** +// SetupHierarchy +// +// Renavigates & resets hierarchy described by current history // o Reset volumes -// o Recompute transforms and/or solids of replicated/parameterised vols +// o Recompute transforms and/or solids of replicated/parameterised volumes +// ******************************************************************** +// void G4Navigator::SetupHierarchy() { G4int i; - const G4int cdepth=fHistory.GetDepth(); - G4VPhysicalVolume *mother,*current; + const G4int cdepth = fHistory.GetDepth(); + G4VPhysicalVolume *mother, *current; G4VSolid *pSolid; G4VPVParameterisation *pParam; - mother=fHistory.GetVolume(0); - for (i=1;i<=cdepth;i++) + mother = fHistory.GetVolume(0); + for ( i=1; i<=cdepth; i++ ) { - current=fHistory.GetVolume(i); - switch (fHistory.GetVolumeType(i)) - { + current = fHistory.GetVolume(i); + switch ( fHistory.GetVolumeType(i) ) + { case kNormal: - break; + break; case kReplica: - freplicaNav.ComputeTransformation(fHistory.GetReplicaNo(i), - current); - break; + freplicaNav.ComputeTransformation(fHistory.GetReplicaNo(i), current); + break; case kParameterised: G4int replicaNo; - // pSolid=current->GetLogicalVolume()->GetSolid(); - pParam=current->GetParameterisation(); - replicaNo= fHistory.GetReplicaNo(i); - pSolid= pParam->ComputeSolid(replicaNo, current); - // Set up dimensions & transform in solid/physical volume - pSolid->ComputeDimensions(pParam, replicaNo, current); - pParam->ComputeTransformation(replicaNo, current); - - // Set up the correct solid and material in Logical Volume - G4LogicalVolume *pLogical; - pLogical= current->GetLogicalVolume(); - pLogical->SetSolid( pSolid ); - pLogical->SetMaterial( pParam->ComputeMaterial(replicaNo, - current)); - break; - } + pParam = current->GetParameterisation(); + replicaNo = fHistory.GetReplicaNo(i); + pSolid = pParam->ComputeSolid(replicaNo, current); + + // Set up dimensions & transform in solid/physical volume + // + pSolid->ComputeDimensions(pParam, replicaNo, current); + pParam->ComputeTransformation(replicaNo, current); + + // Set up the correct solid and material in Logical Volume + // + G4LogicalVolume *pLogical = current->GetLogicalVolume(); + pLogical->SetSolid( pSolid ); + pLogical->SetMaterial( pParam->ComputeMaterial(replicaNo, current)); + break; + } current->Setup(mother); - mother=current; + mother = current; } } -G4std::ostream& operator << (G4std::ostream &os,const G4Navigator &n) -{ - - os << "Current History: " << G4endl << n.fHistory; - return os; -} - -// Obtain the Normal vector to a surface (in local coordinates) -// pointing out of previous volume and into current volume -// -G4ThreeVector G4Navigator::GetLocalExitNormal(G4bool* valid) +// ******************************************************************** +// GetLocalExitNormal +// +// Obtains the Normal vector to a surface (in local coordinates) +// pointing out of previous volume and into current volume +// ******************************************************************** +// +G4ThreeVector G4Navigator::GetLocalExitNormal( G4bool* valid ) { G4ThreeVector ExitNormal(0.,0.,0.); - if( fExitedMother ){ - ExitNormal=fExitNormal; - *valid = true; - - }else if (EnteredDaughterVolume()) { - ExitNormal= -(fHistory.GetTopVolume()->GetLogicalVolume() - ->GetSolid()->SurfaceNormal(fLastLocatedPointLocal)); - *valid = true; - }else{ - // We are not at a boundary. - // ExitNormal remains (0,0,0) - *valid = false; + if ( EnteredDaughterVolume() ) + { + ExitNormal= -(fHistory.GetTopVolume()->GetLogicalVolume()-> + GetSolid()->SurfaceNormal(fLastLocatedPointLocal)); + *valid = true; } - + else + if( fExitedMother ) + { + ExitNormal = fGrandMotherExitNormal; + *valid = true; + } + else + { + // We are not at a boundary. + // ExitNormal remains (0,0,0) + // + *valid = false; + } return ExitNormal; } -// It assumes that it assumes that it will be -// i) called at the Point in the same volume as the EndPoint of the ComputeStep. +// ******************************************************************** +// ComputeSafety +// +// It assumes that it will be +// i) called at the Point in the same volume as the EndPoint of the +// ComputeStep. // ii) after (or at the end of) ComputeStep OR after the relocation. - -G4double G4Navigator::ComputeSafety(const G4ThreeVector &pGlobalpoint, - const G4double pMaxLength) - // A sort of MaximumLength ... ? +// ******************************************************************** +// +G4double G4Navigator::ComputeSafety( const G4ThreeVector &pGlobalpoint, + const G4double pMaxLength) { - G4double newSafety=0.0; + G4double newSafety = 0.0; #ifdef G4VERBOSE if( fVerbose > 0 ) - { - G4cout << "*** G4Navigator::ComputeSafety: ***" << G4endl; - G4cout.precision(8); - G4cout << " I was called with the following arguments: " << G4endl - << " Globalpoint = " << pGlobalpoint << G4endl; - // cout << " pMaxLength = " << pMaxLength << G4endl; - - G4cout << " Upon entering my state is: " << G4endl; - PrintState(); - } + { + G4cout << "*** G4Navigator::ComputeSafety: ***" << G4endl; + G4cout.precision(8); + G4cout << " I was called with the following arguments: " << G4endl + << " Globalpoint = " << pGlobalpoint << G4endl; + G4cout << " Upon entering my state is: " << G4endl; + PrintState(); + } #endif - // Pseudo-relocate to this point (updates voxel information only). - LocateGlobalPointWithinVolume( pGlobalpoint ); + if( !(fEnteredDaughter || fExitedMother) ) + { + // Pseudo-relocate to this point (updates voxel information only) + // + LocateGlobalPointWithinVolume( pGlobalpoint ); - if( ! (fEnteredDaughter || fExitedMother ) ) + G4VPhysicalVolume *motherPhysical = fHistory.GetTopVolume(); + G4LogicalVolume *motherLogical = motherPhysical->GetLogicalVolume(); + G4ThreeVector localPoint = ComputeLocalPoint(pGlobalpoint); + + if ( fHistory.GetTopVolumeType()!=kReplica ) { - G4VPhysicalVolume *motherPhysical=fHistory.GetTopVolume(); - G4LogicalVolume *motherLogical=motherPhysical->GetLogicalVolume(); - - G4ThreeVector localPoint= ComputeLocalPoint(pGlobalpoint); - if (fHistory.GetTopVolumeType()!=kReplica) - { - switch(CharacteriseDaughters(motherLogical)) - { - case kNormal: - if (motherLogical->GetVoxelHeader()) - { - newSafety=fvoxelNav.ComputeSafety(localPoint, - fHistory, - pMaxLength); - } - else - { - - newSafety=fnormalNav.ComputeSafety(localPoint, - fHistory, - pMaxLength); - - } - break; - case kParameterised: - - newSafety=fparamNav.ComputeSafety(localPoint, - fHistory, - pMaxLength); - break; - case kReplica: - G4Exception("Logic Error in G4Navigator::ComputeSafety()"); - break; - } - } - else - { - newSafety=freplicaNav.ComputeSafety(pGlobalpoint, - localPoint, - fHistory, - pMaxLength); - } + switch(CharacteriseDaughters(motherLogical)) + { + case kNormal: + if ( motherLogical->GetVoxelHeader() ) + { + newSafety=fvoxelNav.ComputeSafety(localPoint,fHistory,pMaxLength); + } + else + { + newSafety=fnormalNav.ComputeSafety(localPoint,fHistory,pMaxLength); + } + break; + case kParameterised: + newSafety = fparamNav.ComputeSafety(localPoint,fHistory,pMaxLength); + break; + case kReplica: + G4Exception("Logic Error in G4Navigator::ComputeSafety()"); + break; + } } + else + { + newSafety = freplicaNav.ComputeSafety(pGlobalpoint, localPoint, + fHistory, pMaxLength); + } + } - // Remember last safety origin & value. - fPreviousSftOrigin= pGlobalpoint; - fPreviousSafety= newSafety; + // Remember last safety origin & value + // + fPreviousSftOrigin = pGlobalpoint; + fPreviousSafety = newSafety; #ifdef G4VERBOSE if( fVerbose > 1 ) - { - G4std::cout.precision(8); - G4cout << " Upon exiting my state is: " << G4endl; - PrintState(); - G4cout << " and I return a value of Safety = " << newSafety << G4endl; - } + { + G4std::cout.precision(8); + G4cout << "Upon exiting my state is: " << G4endl; + PrintState(); + G4cout << " and I return a value of Safety = " << newSafety << G4endl; + } #endif - return newSafety; } +// ******************************************************************** +// PrintState +// ******************************************************************** +// void G4Navigator::PrintState() { if( fVerbose >= 4 ) - { - G4cout.precision(3); - G4cout << "The current state of G4Navigator is: " << G4endl; - G4cout << " ValidExitNormal= " << fValidExitNormal << G4endl - << " ExitNormal = " << fExitNormal << G4endl - << " Exiting = " << fExiting << G4endl - << " Entering = " << fEntering << G4endl - << " BlockedPhysicalVolume= " ; - if (fBlockedPhysicalVolume==0 ) - G4cout << "None"; - else - G4cout << fBlockedPhysicalVolume->GetName(); - G4cout << G4endl - << " BlockedReplicaNo = " << fBlockedReplicaNo << G4endl - << " LastStepWasZero = " << fLastStepWasZero << G4endl - << G4endl; - } + { + G4cout.precision(3); + G4cout << "The current state of G4Navigator is: " << G4endl; + G4cout << " ValidExitNormal= " << fValidExitNormal << G4endl + << " ExitNormal = " << fExitNormal << G4endl + << " Exiting = " << fExiting << G4endl + << " Entering = " << fEntering << G4endl + << " BlockedPhysicalVolume= " ; + if (fBlockedPhysicalVolume==0) + G4cout << "None"; + else + G4cout << fBlockedPhysicalVolume->GetName(); + G4cout << G4endl + << " BlockedReplicaNo = " << fBlockedReplicaNo << G4endl + << " LastStepWasZero = " << fLastStepWasZero << G4endl + << G4endl; + } if( ( 1 < fVerbose) && (fVerbose < 4) ) - { - G4cout.precision(3); - G4cout << G4std::setw(24) << " ExitNormal " << " " - << G4std::setw( 5) << " Valid " << " " - << G4std::setw( 9) << " Exiting " << " " - << G4std::setw( 9) << " Entering" << " " - << G4std::setw(15) << " Blocked:Volume " << " " - << G4std::setw( 9) << " ReplicaNo" << " " - << G4std::setw( 8) << " LastStepZero " << " " - << G4endl; - G4cout << G4std::setw(24) << fExitNormal << " " - << G4std::setw( 5) << fValidExitNormal << " " - << G4std::setw( 9) << fExiting << " " - << G4std::setw( 9) << fEntering << " "; - if (fBlockedPhysicalVolume==0 ) - G4cout << G4std::setw(15) << "None"; - else - G4cout << G4std::setw(15)<< fBlockedPhysicalVolume->GetName(); + { + G4cout.precision(3); + G4cout << G4std::setw(24) << " ExitNormal " << " " + << G4std::setw( 5) << " Valid " << " " + << G4std::setw( 9) << " Exiting " << " " + << G4std::setw( 9) << " Entering" << " " + << G4std::setw(15) << " Blocked:Volume " << " " + << G4std::setw( 9) << " ReplicaNo" << " " + << G4std::setw( 8) << " LastStepZero " << " " + << G4endl; + G4cout << G4std::setw(24) << fExitNormal << " " + << G4std::setw( 5) << fValidExitNormal << " " + << G4std::setw( 9) << fExiting << " " + << G4std::setw( 9) << fEntering << " "; + if (fBlockedPhysicalVolume==0 ) + G4cout << G4std::setw(15) << "None"; + else + G4cout << G4std::setw(15)<< fBlockedPhysicalVolume->GetName(); G4cout << G4std::setw( 9) << fBlockedReplicaNo << " " - << G4std::setw( 8) << fLastStepWasZero << " " - << G4endl; - } + << G4std::setw( 8) << fLastStepWasZero << " " + << G4endl; + } if( fVerbose > 2 ) - { - G4cout.precision(8); - G4cout << " Current Localpoint = " << fLastLocatedPointLocal << G4endl; - G4cout << " PreviousSftOrigin = " << fPreviousSftOrigin << G4endl; - G4cout << " PreviousSafety = " << fPreviousSafety << G4endl; - } + { + G4cout.precision(8); + G4cout << " Current Localpoint = " << fLastLocatedPointLocal << G4endl; + G4cout << " PreviousSftOrigin = " << fPreviousSftOrigin << G4endl; + G4cout << " PreviousSafety = " << fPreviousSafety << G4endl; + } } -void G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint) +// ******************************************************************** +// Operator << +// ******************************************************************** +// +G4std::ostream& operator << (G4std::ostream &os,const G4Navigator &n) { - // The new implementation of LocateGlobalPointWithinVolume - // - // -> the state information of this Navigator and its subNavigators - // is updated in order to start the next step at pGlobalpoint - // -> no check is performed whether pGlobalpoint is inside the - // original volume (this must be the case). - // - // Note: a direction could be added to the arguments, to aid in - // future optional checking (via the Old code below). - // [ This would be done only in verbose mode ] - - fLastLocatedPointLocal =ComputeLocalPoint(pGlobalpoint); - - // For the case of Voxel (or Parameterised) volume the respective - // Navigator must be messaged to update its voxel information etc.o - - // Update the state of the Sub Navigators - // - in particular any voxel information they store/cache - //. - G4VPhysicalVolume* motherPhysical=fHistory.GetTopVolume(); - G4LogicalVolume* motherLogical= motherPhysical->GetLogicalVolume(); - G4SmartVoxelHeader* pVoxelHeader= motherLogical->GetVoxelHeader(); - - G4ThreeVector localPoint= ComputeLocalPoint(pGlobalpoint); - if (fHistory.GetTopVolumeType()!=kReplica) - { - switch(CharacteriseDaughters(motherLogical)) - { - case kNormal: - if (pVoxelHeader) - { - fvoxelNav.VoxelLocate( pVoxelHeader, localPoint ); - } - // else { fnormalNav. nothing !? } - break; - - case kParameterised: - // Resets state & returns voxel node - fparamNav.VoxelLocate( pVoxelHeader, localPoint ); - break; - - case kReplica: - G4Exception("Logic Error in G4Navigator::LocateGlobalPointWithinVolume()"); - break; - } - } - - // Reset the state variables - // - which would have been affected - // by the 'equivalent' call to LocateGlobalPointAndSetup - // - who's values have been invalidated by the 'move'. - //fWasLimitedByGeometry= false; - //fBlockedPhysicalVolume=0; - //fBlockedReplicaNo= -1; - - //fEntering=false; - //fEnteredDaughter=false; // Boundary not encountered, did not enter - //fExiting=false; - //fExitedMother=false; // Boundary not encountered, did not exit -#if 0 - else - { - // There is no state stored in G4ReplicaNavigation - // freplicaNav.VoxelLocate( pVoxelHeader, localPoint ); - } -#endif - - -#ifdef OLD_LOCATE - // An alternative implementation using LocateGlobalPointAndSetup. - // It can also be used to check the method's assumptions. - // - G4VPhysicalVolume *pOldVol, *pNewVol; - - pOldVol= fHistory.GetTopVolume(); - pNewVol= LocateGlobalPointAndSetup(pGlobalpoint, 0); - // , G4ThreeVector(1.,0.,0.)); - - if( pOldVol != pNewVol ){ - // This is abnormal behaviour. - G4cerr << " ERROR in G4Navigator::LocateGlobalPointWithinVolume " << G4endl; - G4cerr << " A volume change has occured - this is not expected & illegal" << G4endl; - G4cerr << " Old volume name = " << pOldVol->GetName() << G4endl; - G4cerr << " New volume name = " << pNewVol->GetName() << G4endl; - - G4VPhysicalVolume *pNewVol2; - pNewVol2= LocateGlobalPointAndSetup(pGlobalpoint, 0); - //, G4ThreeVector(1.,0.,0.)); - G4cerr << " Tried again & found volume= " << pNewVol2->GetName() << G4endl; - - } - - // Check that the new volume located is same as the old one. - assert( pOldVol == pNewVol ); -#endif - + os << "Current History: " << G4endl << n.fHistory; + return os; } diff --git a/source/geometry/volumes/src/G4NormalNavigation.cc b/source/geometry/volumes/src/G4NormalNavigation.cc index 4b0d2a8049..77e00e42a4 100644 --- a/source/geometry/volumes/src/G4NormalNavigation.cc +++ b/source/geometry/volumes/src/G4NormalNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.cc,v 1.4 2001/07/11 10:00:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4NormalNavigation Implementation diff --git a/source/geometry/volumes/src/G4ParameterisedNavigation.cc b/source/geometry/volumes/src/G4ParameterisedNavigation.cc index 6aabe5ba94..e34de9b09f 100644 --- a/source/geometry/volumes/src/G4ParameterisedNavigation.cc +++ b/source/geometry/volumes/src/G4ParameterisedNavigation.cc @@ -21,323 +21,413 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.cc,v 1.4 2001/07/11 10:00:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ParameterisedNavigation.cc,v 1.6 2002/05/15 10:23:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ParameterisedNavigation Implementation // +// ******************************************************************** #include "G4ParameterisedNavigation.hh" + +// ******************************************************************** +// Constructor +// ******************************************************************** +// +G4ParameterisedNavigation::G4ParameterisedNavigation() + : fVoxelHeader(0) +{ +} + +// *************************************************************************** +// Destructor +// *************************************************************************** +// G4ParameterisedNavigation::~G4ParameterisedNavigation() { #ifdef G4DEBUG_NAVIGATION - cout << "G4ParameterisedNavigation::~G4ParameterisedNavigation() called." - << G4endl; + G4cout << "G4ParameterisedNavigation::~G4ParameterisedNavigation() called." + << G4endl; #endif } -G4double G4ParameterisedNavigation::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 G4ParameterisedNavigation:: + 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; + G4VPVParameterisation *sampleParam; + G4LogicalVolume *motherLogical; + G4VSolid *motherSolid, *sampleSolid; + G4ThreeVector sampleDirection; + G4double ourStep=currentProposedStepLength, motherSafety, ourSafety; + G4int sampleNo; - G4VPhysicalVolume *motherPhysical,*samplePhysical; - G4VPVParameterisation *sampleParam; - G4LogicalVolume *motherLogical; - G4VSolid *motherSolid,*sampleSolid; - G4ThreeVector sampleDirection; - G4double ourStep=currentProposedStepLength,motherSafety,ourSafety; - G4int sampleNo; + G4bool initialNode, noStep; + G4SmartVoxelNode *curVoxelNode; + G4int curNoVolumes, contentNo; + G4double voxelSafety; - G4bool initialNode,noStep; - G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes,contentNo; - G4double voxelSafety; + // Replication data + // + EAxis axis; + G4int nReplicas; + G4double width, offset; + G4bool consuming; -// Replication data - EAxis axis; - G4int nReplicas; - G4double width,offset; - G4bool consuming; + motherPhysical = history.GetTopVolume(); + motherLogical = motherPhysical->GetLogicalVolume(); + motherSolid = motherLogical->GetSolid(); - motherPhysical=history.GetTopVolume(); - motherLogical=motherPhysical->GetLogicalVolume(); + // + // Compute mother safety + // - motherSolid=motherLogical->GetSolid(); + motherSafety = motherSolid->DistanceToOut(localPoint); + ourSafety = motherSafety; // Working isotropic safety + // + // Compute daughter safeties & intersections + // -// -// Compute mother safety -// - motherSafety=motherSolid->DistanceToOut(localPoint); - ourSafety=motherSafety; // Working isotropic safety - -// -// Compute daughter safeties & intersections -// + initialNode = true; + noStep = true; - initialNode=true; - noStep=true; + // By definition, parameterised volumes exist as first + // daughter of the mother volume + // + samplePhysical = motherLogical->GetDaughter(0); + samplePhysical->GetReplicationData(axis,nReplicas,width,offset,consuming); + fBList.Enlarge(nReplicas); + fBList.Reset(); -// By definition, parameterised volumes exist as first -// daughter of mother volume - samplePhysical=motherLogical->GetDaughter(0); - samplePhysical->GetReplicationData(axis,nReplicas,width,offset,consuming); - fBList.Enlarge(nReplicas); - fBList.Reset(); + // Exiting normal optimisation + // + if (exiting && (*pBlockedPhysical==samplePhysical) && validExitNormal) + { + if (localDirection.dot(exitNormal)>=kMinExitingNormalCosine) + { + assert( (0 <= blockedReplicaNo)&&(blockedReplicaNo zero safety + // + fBList.BlockVolume(blockedReplicaNo); + ourSafety = 0; + } + } + exiting = false; + entering = false; + sampleParam = samplePhysical->GetParameterisation(); -// Exiting normal optimisation - if (exiting && (*pBlockedPhysical==samplePhysical) && validExitNormal) - { - if (localDirection.dot(exitNormal)>=kMinExitingNormalCosine) - { - assert( (0 <= blockedReplicaNo) - &&(blockedReplicaNo zero safety - fBList.BlockVolume(blockedReplicaNo); - ourSafety=0; - } - } + do + { + curVoxelNode = fVoxelNode; + curNoVolumes = curVoxelNode->GetNoContained(); - exiting=false; - entering=false; + for ( contentNo=curNoVolumes-1; contentNo>=0; contentNo-- ) + { + sampleNo = curVoxelNode->GetVolume(contentNo); + if ( !fBList.IsBlocked(sampleNo) ) + { + fBList.BlockVolume(sampleNo); + sampleSolid = sampleParam->ComputeSolid(sampleNo, samplePhysical); + sampleSolid->ComputeDimensions(sampleParam, sampleNo, samplePhysical); + sampleParam->ComputeTransformation(sampleNo, samplePhysical); + samplePhysical->Setup(motherPhysical); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), + samplePhysical->GetTranslation()); + sampleTf.Invert(); + const G4ThreeVector samplePoint = sampleTf.TransformPoint(localPoint); + const G4double sampleSafety = sampleSolid->DistanceToIn(samplePoint); + if ( sampleSafetyDistanceToIn(samplePoint, sampleDirection); + if ( sampleStep<=ourStep ) + { + ourStep = sampleStep; + entering = true; + exiting = false; + *pBlockedPhysical = samplePhysical; + blockedReplicaNo = sampleNo; + } + } + } + } - // sampleSolid=samplePhysical ->GetLogicalVolume() ->GetSolid(); + if ( initialNode ) + { + initialNode = false; + voxelSafety = ComputeVoxelSafety(localPoint,axis); + if ( voxelSafetyDistanceToOut(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; + } + if (noStep) + { + noStep = LocateNextVoxel(localPoint, localDirection, ourStep, axis); + } + } while (noStep); - sampleParam=samplePhysical->GetParameterisation(); - - do { - - curVoxelNode=fVoxelNode; - curNoVolumes=curVoxelNode->GetNoContained(); - - - for (contentNo=curNoVolumes-1;contentNo>=0;contentNo--) - { - sampleNo=curVoxelNode->GetVolume(contentNo); - if (!fBList.IsBlocked(sampleNo)) - { - fBList.BlockVolume(sampleNo); - sampleSolid=sampleParam->ComputeSolid(sampleNo, - samplePhysical); - sampleSolid->ComputeDimensions(sampleParam, - sampleNo, - samplePhysical); - sampleParam->ComputeTransformation(sampleNo, - samplePhysical); - samplePhysical->Setup(motherPhysical); - G4AffineTransform sampleTf(samplePhysical->GetRotation(), - samplePhysical->GetTranslation()); - sampleTf.Invert(); - const G4ThreeVector samplePoint=sampleTf.TransformPoint(localPoint); - const G4double sampleSafety=sampleSolid - ->DistanceToIn(samplePoint); - if (sampleSafetyDistanceToIn(samplePoint, - sampleDirection); - if (sampleStep<=ourStep) - { - ourStep=sampleStep; - entering=true; - exiting=false; - *pBlockedPhysical=samplePhysical; - blockedReplicaNo=sampleNo; - } - - } - - - } - } - - if (initialNode) - { - initialNode=false; - voxelSafety=ComputeVoxelSafety(localPoint); - if (voxelSafetyDistanceToOut(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; - } - - if (noStep) - { - noStep=LocateNextVoxel(localPoint, - localDirection, - ourStep); - } - - } while (noStep); - - return ourStep; + return ourStep; } -G4double G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector &localPoint, - const G4NavigationHistory &history, - const G4double pProposedMaxLength ) +// *************************************************************************** +// ComputeSafety +// *************************************************************************** +// +G4double +G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint, + const G4NavigationHistory& history, + const G4double pProposedMaxLength ) { + G4VPhysicalVolume *motherPhysical, *samplePhysical; + G4VPVParameterisation *sampleParam; + G4LogicalVolume *motherLogical; + G4VSolid *motherSolid, *sampleSolid; + G4double motherSafety, ourSafety; + G4int sampleNo, curVoxelNodeNo; - G4VPhysicalVolume *motherPhysical,*samplePhysical; - G4VPVParameterisation *sampleParam; - G4LogicalVolume *motherLogical; - G4VSolid *motherSolid,*sampleSolid; - G4double motherSafety,ourSafety; - G4int sampleNo, curVoxelNodeNo; - - G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes,contentNo; - G4double voxelSafety; + G4SmartVoxelNode *curVoxelNode; + G4int curNoVolumes, contentNo; + G4double voxelSafety; -// Replication data - EAxis axis; - G4int nReplicas; - G4double width,offset; - G4bool consuming; + // Replication data + // + EAxis axis; + G4int nReplicas; + G4double width, offset; + G4bool consuming; - motherPhysical=history.GetTopVolume(); - motherLogical=motherPhysical->GetLogicalVolume(); + motherPhysical = history.GetTopVolume(); + motherLogical = motherPhysical->GetLogicalVolume(); + motherSolid = motherLogical->GetSolid(); - motherSolid=motherLogical->GetSolid(); -// -// Compute mother safety -// - motherSafety=motherSolid->DistanceToOut(localPoint); - ourSafety=motherSafety; // Working isotropic safety - -// -// Compute daughter safeties -// + // + // Compute mother safety + // -// By definition, parameterised volumes exist as first -// daughter of mother volume - samplePhysical=motherLogical->GetDaughter(0); - samplePhysical->GetReplicationData(axis,nReplicas,width,offset,consuming); - sampleParam=samplePhysical->GetParameterisation(); + motherSafety = motherSolid->DistanceToOut(localPoint); + ourSafety = motherSafety; // Working isotropic safety + + // + // Compute daughter safeties + // - // Calculate new VoxelNode of current point - curVoxelNodeNo= G4int ( - (localPoint(fVoxelAxis) -fVoxelHeader->GetMinExtent()) - / fVoxelSliceWidth - ); - curVoxelNode = fVoxelHeader->GetSlice(curVoxelNodeNo)->GetNode(); + // By definition, parameterised volumes exist as first + // daughter of the mother volume + // + samplePhysical = motherLogical->GetDaughter(0); + samplePhysical->GetReplicationData(axis, nReplicas, width, offset, consuming); + sampleParam = samplePhysical->GetParameterisation(); - curNoVolumes=curVoxelNode->GetNoContained(); + // Look inside the current Voxel only at the current point + // + if ( axis==kUndefined ) // 3D case: current voxel node is retrieved + { // from G4VoxelNavigation. + curVoxelNode = fVoxelNode; + } + else // 1D case: current voxel node is computed here. + { + curVoxelNodeNo = G4int((localPoint(fVoxelAxis)-fVoxelHeader->GetMinExtent()) + / fVoxelSliceWidth ); + curVoxelNode = fVoxelHeader->GetSlice(curVoxelNodeNo)->GetNode(); + fVoxelNodeNo = curVoxelNodeNo; + fVoxelNode = curVoxelNode; + } + curNoVolumes = curVoxelNode->GetNoContained(); - for (contentNo=curNoVolumes-1;contentNo>=0;contentNo--) - { - sampleNo=curVoxelNode->GetVolume(contentNo); - - sampleSolid=sampleParam->ComputeSolid(sampleNo, - samplePhysical); - sampleSolid->ComputeDimensions(sampleParam, - sampleNo, - samplePhysical); - sampleParam->ComputeTransformation(sampleNo, - samplePhysical); - G4AffineTransform sampleTf(samplePhysical->GetRotation(), - samplePhysical->GetTranslation()); - sampleTf.Invert(); - const G4ThreeVector samplePoint=sampleTf.TransformPoint(localPoint); - const G4double sampleSafety=sampleSolid - ->DistanceToIn(samplePoint); - if (sampleSafety=0; contentNo-- ) + { + sampleNo = curVoxelNode->GetVolume(contentNo); + sampleSolid = sampleParam->ComputeSolid(sampleNo, samplePhysical); + sampleSolid->ComputeDimensions(sampleParam, sampleNo, samplePhysical); + sampleParam->ComputeTransformation(sampleNo, samplePhysical); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), + samplePhysical->GetTranslation()); + sampleTf.Invert(); + const G4ThreeVector samplePoint = sampleTf.TransformPoint(localPoint); + G4double sampleSafety = sampleSolid->DistanceToIn(samplePoint); + if ( sampleSafetyGetMinExtent()-curNodeOffset; + maxCurNodeNoDelta = fVoxelNode->GetMaxEquivalentSliceNo()-fVoxelNodeNo; + minCurNodeNoDelta = fVoxelNodeNo-fVoxelNode->GetMinEquivalentSliceNo(); + maxCurCommonDelta = fVoxelSliceWidth-minCurCommonDelta; + plusVoxelSafety = minCurNodeNoDelta*fVoxelSliceWidth+minCurCommonDelta; + minusVoxelSafety = maxCurNodeNoDelta*fVoxelSliceWidth+maxCurCommonDelta; + voxelSafety = G4std::min(plusVoxelSafety,minusVoxelSafety); + if ( voxelSafety<0 ) + { + voxelSafety = 0; + } + return voxelSafety; +} +// ******************************************************************** +// LocateNextVoxel +// +// Finds the next voxel from the current voxel and point +// in the specified direction. +// +// Returns false if all voxels considered +// true otherwise +// [current Step ends inside same voxel or leaves all voxels] +// ******************************************************************** +// +G4bool G4ParameterisedNavigation:: +LocateNextVoxel( const G4ThreeVector& localPoint, + const G4ThreeVector& localDirection, + const G4double currentStep, + const EAxis pAxis) +{ + // If no best axis is specified, adopt default + // location strategy as for placements + // + if ( pAxis==kUndefined ) + return G4VoxelNavigation::LocateNextVoxel(localPoint, + localDirection, + currentStep); + G4bool isNewVoxel; + G4int newNodeNo; + G4double minVal, maxVal, curMinExtent, curCoord; + curMinExtent = fVoxelHeader->GetMinExtent(); + curCoord = localPoint(fVoxelAxis)+currentStep*localDirection(fVoxelAxis); + minVal = curMinExtent+fVoxelNode->GetMinEquivalentSliceNo()*fVoxelSliceWidth; + isNewVoxel = false; + if ( minVal<=curCoord ) + { + maxVal = curMinExtent + + (fVoxelNode->GetMaxEquivalentSliceNo()+1)*fVoxelSliceWidth; + if ( maxValGetMaxEquivalentSliceNo()+1; + if ( newNodeNoGetNoSlices() ) + { + fVoxelNodeNo = newNodeNo; + fVoxelNode = fVoxelHeader->GetSlice(newNodeNo)->GetNode(); + isNewVoxel = true; + } + } + } + else + { + newNodeNo = fVoxelNode->GetMinEquivalentSliceNo()-1; - - - - - - - - - - - + // Must locate from newNodeNo no and down to setup stack and fVoxelNode + // Repeat or earlier code... + // + if ( newNodeNo>=0 ) + { + fVoxelNodeNo = newNodeNo; + fVoxelNode = fVoxelHeader->GetSlice(newNodeNo)->GetNode(); + isNewVoxel = true; + } + } + return isNewVoxel; +} diff --git a/source/geometry/volumes/src/G4PropagatorInField.cc b/source/geometry/volumes/src/G4PropagatorInField.cc index 447052636b..d1dd1707a0 100644 --- a/source/geometry/volumes/src/G4PropagatorInField.cc +++ b/source/geometry/volumes/src/G4PropagatorInField.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.cc,v 1.28 2001/12/08 01:17:04 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PropagatorInField.cc,v 1.30 2002/04/19 08:22:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // This class implements an algorithm to track a particle in a @@ -52,6 +52,40 @@ const G4double G4PropagatorInField::fEpsilonMinDefault = 5.0e-7; const G4double G4PropagatorInField::fEpsilonMaxDefault = 0.05; +/////////////////////////////////////////////////////////////////////////// +// +// Constructors and destructor + + +G4PropagatorInField::G4PropagatorInField(G4Navigator *theNavigator, + G4FieldManager *detectorFieldMgr) + : fDetectorFieldMgr(detectorFieldMgr), + fCurrentFieldMgr(detectorFieldMgr), + fNavigator(theNavigator), + End_PointAndTangent(G4ThreeVector(0.,0.,0.), + G4ThreeVector(0.,0.,0.),0.0,0.0,0.0,0.0,0.0), + fVerboseLevel(0), + fEpsilonMin(fEpsilonMinDefault), + fEpsilonMax(fEpsilonMaxDefault), + fmax_loop_count(10000), + fNoZeroStep(0) +{ + // this->fChordFinder = 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; +} + +G4PropagatorInField::~G4PropagatorInField() +{ +} + /////////////////////////////////////////////////////////////////////////// // // Compute the next geometric Step @@ -288,20 +322,18 @@ G4double G4PropagatorInField:: while( (!intersects ) && (StepTaken + kCarTolerance < CurrentProposedStepLength) && ( do_loop_count < GetMaxLoopCount() ) ); - - -#ifdef G4VERBOSE if( do_loop_count >= GetMaxLoopCount() ){ - - G4cerr << "G4PropagateInField: Warning: Particle is looping - " + G4cout << "G4PropagateInField: Warning: Particle is looping - " << " tracking in field will be stopped. " << G4endl; - G4cerr << " It has performed " << do_loop_count << " steps in Field " +#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; } -#endif if( ! intersects ) { @@ -354,10 +386,14 @@ G4double G4PropagatorInField:: fNoZeroStep= 0; if( fNoZeroStep > fAbandonThreshold_NoZeroSteps ) { +#ifdef G4VERBOSE G4cout << " G4PropagatorInField::ComputeStep : Warning :" << " no progress after " << fNoZeroStep << " trial steps. " << G4endl; - G4cout << " Particle will be abandoned." ; + G4cout << " Particle will be killed." << G4endl ; +#else + G4cout << " G4PropagatorInField: Particle that is stuck will be killed." << G4endl; +#endif fParticleIsLooping= true; } diff --git a/source/geometry/volumes/src/G4ReplicaNavigation.cc b/source/geometry/volumes/src/G4ReplicaNavigation.cc index 7cbddbec81..11dd03d23b 100644 --- a/source/geometry/volumes/src/G4ReplicaNavigation.cc +++ b/source/geometry/volumes/src/G4ReplicaNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.cc,v 1.10 2001/07/11 10:00:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4ReplicaNavigation Implementation diff --git a/source/geometry/volumes/src/G4TouchableHistory.cc b/source/geometry/volumes/src/G4TouchableHistory.cc index 8087c7697b..4cacd47f1f 100644 --- a/source/geometry/volumes/src/G4TouchableHistory.cc +++ b/source/geometry/volumes/src/G4TouchableHistory.cc @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistory.cc,v 1.5 2001/07/11 10:00:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4TouchableHistory Implementation diff --git a/source/geometry/volumes/src/G4TransportationManager.cc b/source/geometry/volumes/src/G4TransportationManager.cc index 0a0ac8a8ce..806d2d0c17 100644 --- a/source/geometry/volumes/src/G4TransportationManager.cc +++ b/source/geometry/volumes/src/G4TransportationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4TransportationManager.cc,v 1.9 2001/10/24 15:33:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4TransportationManager diff --git a/source/geometry/volumes/src/G4VoxelNavigation.cc b/source/geometry/volumes/src/G4VoxelNavigation.cc index b97c3b86e9..d81cfa1f3c 100644 --- a/source/geometry/volumes/src/G4VoxelNavigation.cc +++ b/source/geometry/volumes/src/G4VoxelNavigation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.cc,v 1.8 2001/07/11 10:00:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VoxelNavigation.cc,v 1.10 2002/05/15 10:22:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4VoxelNavigation Implementation @@ -31,513 +31,535 @@ // Modified by: // J. Apostolakis, 29 Apr 98 Fixed error in LocateNextVoxel that // ignored voxels at lower levels +// ******************************************************************** #include "G4VoxelNavigation.hh" -G4double G4VoxelNavigation::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) +// ******************************************************************** +// Constructor +// ******************************************************************** +// +G4VoxelNavigation::G4VoxelNavigation() + : fVoxelDepth(-1), + fVoxelAxisStack(kNavigatorVoxelStackMax,kXAxis), + fVoxelNoSlicesStack(kNavigatorVoxelStackMax,0), + fVoxelSliceWidthStack(kNavigatorVoxelStackMax,0.), + fVoxelNodeNoStack(kNavigatorVoxelStackMax,0), + fVoxelHeaderStack(kNavigatorVoxelStackMax,(G4SmartVoxelHeader*)0), + fVoxelNode(0) { - - G4VPhysicalVolume *motherPhysical,*samplePhysical,*blockedExitedVol=0; - G4LogicalVolume *motherLogical; - G4VSolid *motherSolid; - G4ThreeVector sampleDirection; - G4double ourStep=currentProposedStepLength,motherSafety,ourSafety; - G4int localNoDaughters,sampleNo; - - G4bool initialNode,noStep; - G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes,contentNo; - G4double voxelSafety; - - motherPhysical=history.GetTopVolume(); - motherLogical=motherPhysical->GetLogicalVolume(); - - motherSolid=motherLogical->GetSolid(); - - -// -// 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(); - - fBList.Enlarge(localNoDaughters); - fBList.Reset(); - - initialNode=true; - noStep=true; - - while (noStep) - { - curVoxelNode=fVoxelNode; - curNoVolumes=curVoxelNode->GetNoContained(); - - - for (contentNo=curNoVolumes-1;contentNo>=0;contentNo--) - { - sampleNo=curVoxelNode->GetVolume(contentNo); - if (!fBList.IsBlocked(sampleNo)) - { - fBList.BlockVolume(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 (initialNode) - { - initialNode=false; - voxelSafety=ComputeVoxelSafety(localPoint); - if (voxelSafetyDistanceToOut(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; - } - - if (noStep) - { - noStep=LocateNextVoxel(localPoint, - localDirection, - ourStep); - } - - } // end -while (noStep)- loop - - return ourStep; } - - - -// Compute safety from specified point to voxel boundaries -// using already located point -// o collected boundaries for most derived level -// o adjacent boundaries for previous levels - -G4double G4VoxelNavigation::ComputeVoxelSafety(const G4ThreeVector&localPoint) const - { - G4SmartVoxelHeader *curHeader; - G4double voxelSafety,curNodeWidth; - G4double curNodeOffset,minCurCommonDelta,maxCurCommonDelta; - G4int minCurNodeNoDelta,maxCurNodeNoDelta; - G4int localVoxelDepth,curNodeNo; - EAxis curHeaderAxis; - - localVoxelDepth=fVoxelDepth; - - curHeader=fVoxelHeaderStack[localVoxelDepth]; - curHeaderAxis=fVoxelAxisStack[localVoxelDepth]; - curNodeNo=fVoxelNodeNoStack[localVoxelDepth]; - curNodeWidth=fVoxelSliceWidthStack[localVoxelDepth]; - -// Compute linear intersection distance to boundaries of max/min -// to collected nodes at current level - curNodeOffset=curNodeNo*curNodeWidth; - maxCurNodeNoDelta=fVoxelNode->GetMaxEquivalentSliceNo()-curNodeNo; - minCurNodeNoDelta=curNodeNo-fVoxelNode->GetMinEquivalentSliceNo(); - minCurCommonDelta=localPoint(curHeaderAxis) - -curHeader->GetMinExtent() - -curNodeOffset; - maxCurCommonDelta=curNodeWidth-minCurCommonDelta; - - if (minCurNodeNoDelta0&&voxelSafety>0) - { - localVoxelDepth--; - - curHeader=fVoxelHeaderStack[localVoxelDepth]; - curHeaderAxis=fVoxelAxisStack[localVoxelDepth]; - curNodeNo=fVoxelNodeNoStack[localVoxelDepth]; - curNodeWidth=fVoxelSliceWidthStack[localVoxelDepth]; - curNodeOffset=curNodeNo*curNodeWidth; - minCurCommonDelta=localPoint(curHeaderAxis) - -curHeader->GetMinExtent() - -curNodeOffset; - maxCurCommonDelta=curNodeWidth-minCurCommonDelta; - - if (minCurCommonDeltaGetMinExtent(); - - workCoord=targetPoint(workHeaderAxis); - minVal=workMinExtent+workNodeNo*workNodeWidth; - if (minVal<=workCoord+kCarTolerance*0.5) - { - maxVal=minVal+workNodeWidth; - if (maxVal<=workCoord-kCarTolerance*0.5) - { - // G4cout << "Must consider next voxel" << G4endl; - newNodeNo=workNodeNo+1; - newHeader=workHeader; - newDistance=(maxVal-localPoint(workHeaderAxis))/localDirection(workHeaderAxis); - isNewVoxel=true; - newDepth= depth; - } - } - else - { - newNodeNo=workNodeNo-1; - newHeader=workHeader; - newDistance=(minVal-localPoint(workHeaderAxis))/localDirection(workHeaderAxis); - isNewVoxel=true; - newDepth= depth; - } - currentDistance= newDistance; - } - - targetPoint=localPoint+localDirection*currentDistance; -// Check if end of Step within collected boundaries of current voxel - depth=fVoxelDepth; - { - workHeader=fVoxelHeaderStack[depth]; - workHeaderAxis=fVoxelAxisStack[depth]; - workNodeNo=fVoxelNodeNoStack[depth]; - workNodeWidth=fVoxelSliceWidthStack[depth]; - workMinExtent=workHeader->GetMinExtent(); - - workCoord=targetPoint(workHeaderAxis); - minVal=workMinExtent+fVoxelNode->GetMinEquivalentSliceNo()*workNodeWidth; - if (minVal<=workCoord+kCarTolerance*0.5) - { - maxVal=workMinExtent+(fVoxelNode->GetMaxEquivalentSliceNo()+1)*workNodeWidth; - if (maxVal<=workCoord-kCarTolerance*0.5) - { - newNodeNo=fVoxelNode->GetMaxEquivalentSliceNo()+1; - newHeader=workHeader; - newDistance=(maxVal-localPoint(workHeaderAxis))/localDirection(workHeaderAxis); - isNewVoxel=true; - newDepth= depth; - } - } - else - { - newNodeNo=fVoxelNode->GetMinEquivalentSliceNo()-1; - newHeader=workHeader; - newDistance=(minVal-localPoint(workHeaderAxis))/localDirection(workHeaderAxis); - isNewVoxel=true; - newDepth= depth; - } - - currentDistance= newDistance; - } - - if (isNewVoxel) - { -// Compute new voxel & adjust voxel stack -// -// newNodeNo=Candidate node no at -// newDepth =refinement depth of crossed voxel boundary -// newHeader=Header for crossed voxel -// newDistance=distance to crossed voxel boundary (along the track) -// - if (newNodeNo<0||newNodeNo>=newHeader->GetNoSlices()) - { -// Leaving mother volume - isNewVoxel=false; - } - else - { -// Compute intersection point on the least refined voxel boundary that is Hit - voxelPoint=localPoint+localDirection*newDistance; - fVoxelNodeNoStack[newDepth]=newNodeNo; - fVoxelDepth=newDepth; - newVoxelNode=0; - - while (!newVoxelNode) - { - newProxy=newHeader->GetSlice(newNodeNo); - if (newProxy->IsNode()) - { - newVoxelNode=newProxy->GetNode(); - } - else - { - fVoxelDepth++; - newHeader=newProxy->GetHeader(); - newHeaderAxis=newHeader->GetAxis(); - newHeaderNoSlices=newHeader->GetNoSlices(); - newHeaderMin=newHeader->GetMinExtent(); - newHeaderNodeWidth=(newHeader->GetMaxExtent()-newHeaderMin)/newHeaderNoSlices; - newNodeNo=G4int ((voxelPoint(newHeaderAxis)-newHeaderMin)/newHeaderNodeWidth); -// Rounding protection - if (newNodeNo<0) - { - newNodeNo=0; - } - else if (newNodeNo>=newHeaderNoSlices) - { - newNodeNo=newHeaderNoSlices-1; - } -// Stack info for stepping - fVoxelAxisStack[fVoxelDepth]=newHeaderAxis; - fVoxelNoSlicesStack[fVoxelDepth]=newHeaderNoSlices; - fVoxelSliceWidthStack[fVoxelDepth]=newHeaderNodeWidth; - fVoxelNodeNoStack[fVoxelDepth]=newNodeNo; - fVoxelHeaderStack[fVoxelDepth]=newHeader; - } - - } - fVoxelNode=newVoxelNode; - } - } - - return isNewVoxel; -} - -//----------------------------------------------------------------------------- - - -// Calculate the isotropic distance to the nearest boundary from the -// specified point in the local coordinate system. -// The localpoint utilised must be within the current volume. - -G4double G4VoxelNavigation::ComputeSafety(const G4ThreeVector &localPoint, - const G4NavigationHistory &history, - const G4double pMaxLength ) -{ - - G4VPhysicalVolume *motherPhysical,*samplePhysical; - G4LogicalVolume *motherLogical; - G4VSolid *motherSolid; - G4double motherSafety,ourSafety; - G4int localNoDaughters,sampleNo; - - G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes,contentNo; - G4double voxelSafety; - - motherPhysical=history.GetTopVolume(); - motherLogical=motherPhysical->GetLogicalVolume(); - - motherSolid=motherLogical->GetSolid(); -// -// Compute mother safety -// - motherSafety=motherSolid->DistanceToOut(localPoint); - ourSafety=motherSafety; // Working isotropic safety - -// -// Compute daughter safeties -// - localNoDaughters=motherLogical->GetNoDaughters(); - -// -// Look only inside the current Voxel only (in the first version). -// - - curVoxelNode=fVoxelNode; - curNoVolumes=curVoxelNode->GetNoContained(); - - for (contentNo=curNoVolumes-1;contentNo>=0;contentNo--) - { - sampleNo=curVoxelNode->GetVolume(contentNo); - 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 (sampleSafetyGetLogicalVolume(); + motherSolid = motherLogical->GetSolid(); + + // + // 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(); + + fBList.Enlarge(localNoDaughters); + fBList.Reset(); + + initialNode = true; + noStep = true; + + while (noStep) + { + curVoxelNode = fVoxelNode; + curNoVolumes = curVoxelNode->GetNoContained(); + for (contentNo=curNoVolumes-1; contentNo>=0; contentNo--) + { + sampleNo = curVoxelNode->GetVolume(contentNo); + if ( !fBList.IsBlocked(sampleNo) ) + { + fBList.BlockVolume(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 (initialNode) + { + initialNode = false; + voxelSafety = ComputeVoxelSafety(localPoint); + if ( voxelSafetyDistanceToOut(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; + } + if (noStep) + { + noStep = LocateNextVoxel(localPoint, localDirection, ourStep); + } + } // end -while (noStep)- loop + + return ourStep; +} + +// ******************************************************************** +// ComputeVoxelSafety +// +// Computes safety from specified point to voxel boundaries +// using already located point +// o collected boundaries for most derived level +// o adjacent boundaries for previous levels +// ******************************************************************** +// +G4double +G4VoxelNavigation::ComputeVoxelSafety(const G4ThreeVector& localPoint) const +{ + G4SmartVoxelHeader *curHeader; + G4double voxelSafety, curNodeWidth; + G4double curNodeOffset, minCurCommonDelta, maxCurCommonDelta; + G4int minCurNodeNoDelta, maxCurNodeNoDelta; + G4int localVoxelDepth, curNodeNo; + EAxis curHeaderAxis; + + localVoxelDepth = fVoxelDepth; + + curHeader = fVoxelHeaderStack[localVoxelDepth]; + curHeaderAxis = fVoxelAxisStack[localVoxelDepth]; + curNodeNo = fVoxelNodeNoStack[localVoxelDepth]; + curNodeWidth = fVoxelSliceWidthStack[localVoxelDepth]; + + // Compute linear intersection distance to boundaries of max/min + // to collected nodes at current level + // + curNodeOffset = curNodeNo*curNodeWidth; + maxCurNodeNoDelta = fVoxelNode->GetMaxEquivalentSliceNo()-curNodeNo; + minCurNodeNoDelta = curNodeNo-fVoxelNode->GetMinEquivalentSliceNo(); + minCurCommonDelta = localPoint(curHeaderAxis) + - curHeader->GetMinExtent() - curNodeOffset; + maxCurCommonDelta = curNodeWidth-minCurCommonDelta; + + if ( minCurNodeNoDelta0) && (voxelSafety>0) ) + { + localVoxelDepth--; + curHeader = fVoxelHeaderStack[localVoxelDepth]; + curHeaderAxis = fVoxelAxisStack[localVoxelDepth]; + curNodeNo = fVoxelNodeNoStack[localVoxelDepth]; + curNodeWidth = fVoxelSliceWidthStack[localVoxelDepth]; + curNodeOffset = curNodeNo*curNodeWidth; + minCurCommonDelta = localPoint(curHeaderAxis) + - curHeader->GetMinExtent() - curNodeOffset; + maxCurCommonDelta = curNodeWidth-minCurCommonDelta; + + if ( minCurCommonDeltaGetMinExtent(); + workCoord = targetPoint(workHeaderAxis); + minVal = workMinExtent+workNodeNo*workNodeWidth; + + if ( minVal<=workCoord+kCarTolerance*0.5 ) + { + maxVal = minVal+workNodeWidth; + if ( maxVal<=workCoord-kCarTolerance*0.5 ) + { + // Must consider next voxel + // + newNodeNo = workNodeNo+1; + newHeader = workHeader; + newDistance = (maxVal-localPoint(workHeaderAxis)) + / localDirection(workHeaderAxis); + isNewVoxel = true; + newDepth = depth; + } + } + else + { + newNodeNo = workNodeNo-1; + newHeader = workHeader; + newDistance = (minVal-localPoint(workHeaderAxis)) + / localDirection(workHeaderAxis); + isNewVoxel = true; + newDepth = depth; + } + currentDistance = newDistance; + } + targetPoint = localPoint+localDirection*currentDistance; + + // Check if end of Step within collected boundaries of current voxel + // + depth = fVoxelDepth; + { + workHeader = fVoxelHeaderStack[depth]; + workHeaderAxis = fVoxelAxisStack[depth]; + workNodeNo = fVoxelNodeNoStack[depth]; + workNodeWidth = fVoxelSliceWidthStack[depth]; + workMinExtent = workHeader->GetMinExtent(); + workCoord = targetPoint(workHeaderAxis); + minVal = workMinExtent+fVoxelNode->GetMinEquivalentSliceNo()*workNodeWidth; + + if ( minVal<=workCoord+kCarTolerance*0.5 ) + { + maxVal = workMinExtent+(fVoxelNode->GetMaxEquivalentSliceNo()+1) + *workNodeWidth; + if ( maxVal<=workCoord-kCarTolerance*0.5 ) + { + newNodeNo = fVoxelNode->GetMaxEquivalentSliceNo()+1; + newHeader = workHeader; + newDistance = (maxVal-localPoint(workHeaderAxis)) + / localDirection(workHeaderAxis); + isNewVoxel = true; + newDepth = depth; + } + } + else + { + newNodeNo = fVoxelNode->GetMinEquivalentSliceNo()-1; + newHeader = workHeader; + newDistance = (minVal-localPoint(workHeaderAxis)) + / localDirection(workHeaderAxis); + isNewVoxel = true; + newDepth = depth; + } + currentDistance = newDistance; + } + if (isNewVoxel) + { + // Compute new voxel & adjust voxel stack + // + // newNodeNo=Candidate node no at + // newDepth =refinement depth of crossed voxel boundary + // newHeader=Header for crossed voxel + // newDistance=distance to crossed voxel boundary (along the track) + // + if ( (newNodeNo<0) || (newNodeNo>=newHeader->GetNoSlices())) + { + // Leaving mother volume + // + isNewVoxel = false; + } + else + { + // Compute intersection point on the least refined + // voxel boundary that is hit + // + voxelPoint = localPoint+localDirection*newDistance; + fVoxelNodeNoStack[newDepth] = newNodeNo; + fVoxelDepth = newDepth; + newVoxelNode = 0; + while ( !newVoxelNode ) + { + newProxy = newHeader->GetSlice(newNodeNo); + if (newProxy->IsNode()) + { + newVoxelNode = newProxy->GetNode(); + } + else + { + fVoxelDepth++; + newHeader = newProxy->GetHeader(); + newHeaderAxis = newHeader->GetAxis(); + newHeaderNoSlices = newHeader->GetNoSlices(); + newHeaderMin = newHeader->GetMinExtent(); + newHeaderNodeWidth = (newHeader->GetMaxExtent()-newHeaderMin) + / newHeaderNoSlices; + newNodeNo = G4int( (voxelPoint(newHeaderAxis)-newHeaderMin) + / newHeaderNodeWidth ); + // Rounding protection + // + if ( newNodeNo<0 ) + { + newNodeNo=0; + } + else if ( newNodeNo>=newHeaderNoSlices ) + { + newNodeNo = newHeaderNoSlices-1; + } + // Stack info for stepping + // + fVoxelAxisStack[fVoxelDepth] = newHeaderAxis; + fVoxelNoSlicesStack[fVoxelDepth] = newHeaderNoSlices; + fVoxelSliceWidthStack[fVoxelDepth] = newHeaderNodeWidth; + fVoxelNodeNoStack[fVoxelDepth] = newNodeNo; + fVoxelHeaderStack[fVoxelDepth] = newHeader; + } + } + fVoxelNode = newVoxelNode; + } + } + return isNewVoxel; +} + +// ******************************************************************** +// ComputeSafety +// +// Calculates the isotropic distance to the nearest boundary from the +// specified point in the local coordinate system. +// The localpoint utilised must be within the current volume. +// ******************************************************************** +// +G4double +G4VoxelNavigation::ComputeSafety(const G4ThreeVector& localPoint, + const G4NavigationHistory& history, + const G4double pMaxLength ) +{ + G4VPhysicalVolume *motherPhysical, *samplePhysical; + G4LogicalVolume *motherLogical; + G4VSolid *motherSolid; + G4double motherSafety, ourSafety; + G4int localNoDaughters, sampleNo; + G4SmartVoxelNode *curVoxelNode; + G4int curNoVolumes, contentNo; + G4double voxelSafety; + + motherPhysical = history.GetTopVolume(); + motherLogical = motherPhysical->GetLogicalVolume(); + motherSolid = motherLogical->GetSolid(); + + // + // Compute mother safety + // + + motherSafety = motherSolid->DistanceToOut(localPoint); + ourSafety = motherSafety; // Working isotropic safety + + // + // Compute daughter safeties + // + + localNoDaughters = motherLogical->GetNoDaughters(); + + // Look only inside the current Voxel only (in the first version). + // + curVoxelNode = fVoxelNode; + curNoVolumes = curVoxelNode->GetNoContained(); + + for ( contentNo=curNoVolumes-1; contentNo>=0; contentNo-- ) + { + sampleNo = curVoxelNode->GetVolume(contentNo); + 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(); + G4double sampleSafety = sampleSolid->DistanceToIn(samplePoint); + if ( sampleSafety within tolerance of exact surface diff --git a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh index a4464dc31b..daf631a69b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4DataInterpolation.hh b/source/global/HEPNumerics/include/G4DataInterpolation.hh index 3cb85fd853..250be7cfc1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh index 5cc5021f0e..29a8b8e0ec 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh index fe5d6f4b39..ac912132f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussJacobiQ.hh b/source/global/HEPNumerics/include/G4GaussJacobiQ.hh index 719d90360d..5d9d1c6f9d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh index 0de6e8dadc..8390ffcc9e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh index 49c9cb58b7..f2f79afcdc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.hh b/source/global/HEPNumerics/include/G4Integrator.hh index 3e7f6fdac1..03616e6529 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.icc b/source/global/HEPNumerics/include/G4Integrator.icc index b12f694307..d2802319f6 100644 --- a/source/global/HEPNumerics/include/G4Integrator.icc +++ b/source/global/HEPNumerics/include/G4Integrator.icc @@ -22,7 +22,7 @@ // // // $Id: G4Integrator.icc,v 1.7 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation of G4Integrator methods. // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.hh b/source/global/HEPNumerics/include/G4PolynomialSolver.hh index 03c3ce6039..216f288ff4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.icc b/source/global/HEPNumerics/include/G4PolynomialSolver.icc index 8453d21559..55e57d5488 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4SimpleIntegration.hh b/source/global/HEPNumerics/include/G4SimpleIntegration.hh index a042365566..01ac4cf699 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh index 9fb9db0518..1b24ab8f6e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc index c49d76fd6b..60810fc214 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4ChebyshevApproximation.hh" diff --git a/source/global/HEPNumerics/src/G4DataInterpolation.cc b/source/global/HEPNumerics/src/G4DataInterpolation.cc index 0e0d3d8ddc..19de2fdb51 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4DataInterpolation.hh" diff --git a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc index 8a5233a5e5..d81c2d7b1a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4GaussChebyshevQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussHermiteQ.cc b/source/global/HEPNumerics/src/G4GaussHermiteQ.cc index 6ed1838fd3..73a8b562d1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4GaussHermiteQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussJacobiQ.cc b/source/global/HEPNumerics/src/G4GaussJacobiQ.cc index fe0f0a9fcf..38b73b40d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4GaussJacobiQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc b/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc index 7e72eb1e16..b6c9da205b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4GaussLaguerreQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLegendreQ.cc b/source/global/HEPNumerics/src/G4GaussLegendreQ.cc index 5299163ad3..e951bfb449 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4GaussLegendreQ.hh" diff --git a/source/global/HEPNumerics/src/G4SimpleIntegration.cc b/source/global/HEPNumerics/src/G4SimpleIntegration.cc index 58e43d9fbf..8a76188b17 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation file for simple integration methods // diff --git a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc index a087d149c6..4bb5c73062 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Implementation file for G4VGaussianQuadrature virtual base class // diff --git a/source/global/HEPRandom/include/G4Poisson.hh b/source/global/HEPRandom/include/G4Poisson.hh index dd5dc8ecc9..7c078fa73b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/HEPRandom/include/Randomize.hh b/source/global/HEPRandom/include/Randomize.hh index a183dc4870..b4606c2fc9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef randomize_h #define randomize_h 1 diff --git a/source/global/History b/source/global/History index 38e69028c3..9aacb19ec6 100644 --- a/source/global/History +++ b/source/global/History @@ -1,4 +1,4 @@ -$Id: History,v 1.92 2001/11/29 16:39:30 gcosmo Exp $ +$Id: History,v 1.101 2002/05/30 11:58:14 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,52 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 30, 2002 G.Cosmo (global-V04-00-08) +- G4DataVector.cc: initialise to zero values in collection for contructor + taking capacity. + +May 24, 2002 G.Cosmo (global-V04-00-07) +- Introduced temporary modifications for porting on gcc-3.1 compiler: + o g4std/strstream: deactivate gcc-3.1 specific __DEPRECATED flag. + o G4strstreambuf.icc: correct patch for overflow() to be specific only to + gcc-3.0.X versions of the compiler. Behavior now fixed in gcc-3.1. + o G4llocator.hh: use pointer to member data to compute offset in FreeSingle(). + for gcc-3.1 compiler. gcc-3.1 complains and does not correctly handle offsets + computed from non-POD types. Pointers to member data should be used instead. + This advanced C++ feature seems not to work on earlier versions of the same + compiler or on other system configurations. +- Cosmetics for Software Reference Manual on G4Allocator related headers. + +May 15, 2002 G.Cosmo (global-V04-00-06) +- G4UnitsTable.cc: fixed bug in operator<< to use the argument 'flux' + instead of G4cout. +- geomdefs.hh: added 'kUndefined' key to specify undefined EAxis. + +April 19, 2002 G.Cosmo (global-V04-00-05) +- Moved inline constructors/destructors to no-inline. + Files: G4DataVector[.hh.cc], G4OrderedTable[.hh.cc]. + +April 16, 2002 M.Asai (global-V04-00-04) +- Give a bit more information to the user when G4Exception occurs. + Affected files : G4Exception.cc G4StateManager.hh G4StateManager.cc + +March 25, 2002 G.Cosmo (global-V04-00-03) +- G4String[.hh.icc]: use G4std::string instead of internal type 'std_string' + in signatures of public methods. + +January 28, 2002 G.Cosmo (global-V04-00-02) +- G4strstream.icc: temporary fix to G4strstream::overflow(int) for GNU gcc-3.0.X + compilers, which require returning of character c in case of . + +January 25, 2002 G.Cosmo (global-V04-00-01) +- Removed unnecessary std wrappers for HP-aCC (coworks with config-V04-00-00). +- Removed obsolete inline definitions in g4std/wrappers/DEC-cxx/cmath. + +January 17, 2002 G.Cosmo (global-V04-00-00) +- Replaced 'NULL' with '0' in G4Allocator.hh, G4strstreambuf.icc and G4Timer.cc. +- G4strstreambuf.icc: plugged memory leak in destructor for buffer deletion + and some cosmetics. + November 29, 2001 G.Cosmo (global-V03-02-07) - Fixed warnings on gcc-3.0.2 for G4DataVector.cc and G4PhysicsVector.cc. - Minor fixes to G4String[.hh.icc] for avoiding compilation warnings on diff --git a/source/global/management/include/G4Allocator.hh b/source/global/management/include/G4Allocator.hh index 7265babceb..7bbf8e10f1 100644 --- a/source/global/management/include/G4Allocator.hh +++ b/source/global/management/include/G4Allocator.hh @@ -21,19 +21,23 @@ // ******************************************************************** // // -// $Id: G4Allocator.hh,v 1.7 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Allocator.hh,v 1.10 2002/05/24 10:58:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ -// GEANT 4 class header file +// GEANT 4 class header file // -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo +// Class Description: +// +// A class for fast allocation of objects to the heap through paging +// mechanism. It's meant to be used by associating it to the object to +// be allocated and defining for it new and delete operators via +// MallocSingle() and FreeSingle() methods. + // ---------------- G4Allocator ---------------- // by Tim Bell, September 1995 // ------------------------------------------------------------ -// SG, HPW: Protection vs double deletion of the same element, June 97. #ifndef G4Allocator_h #define G4Allocator_h 1 @@ -41,98 +45,135 @@ #include #include -// G4AllocatorPage #include "G4AllocatorPage.hh" template class G4Allocator { - G4AllocatorPage *fPages; - G4AllocatorUnit *fFreeList; - -private: - void AddNewPage(); - Type *AddNewElement(); - - enum { Allocated = 0x47416C, Deleted = 0xB8BE93 }; + public: // with description -public: - G4Allocator(); - ~G4Allocator(); + G4Allocator(); + ~G4Allocator(); + // Constructor & destructor - inline Type *MallocSingle() - { - Type *anElement; + inline Type* MallocSingle(); + inline void FreeSingle(Type* anElement); + // Malloc and Free methods to be used when overloading + // new and delete operators in the client object - if (fFreeList != NULL) - { - fFreeList->deleted = Allocated; - anElement = &fFreeList->fElement; - fFreeList = fFreeList->fNext; - } - else - anElement = AddNewElement(); - return anElement; - } + private: - inline void FreeSingle(Type *anElement) - { - G4AllocatorUnit *fUnit; + void AddNewPage(); + Type* AddNewElement(); - fUnit = (G4AllocatorUnit *) - ((char *) anElement - - offsetof(G4AllocatorUnit, fElement)); - if (fUnit->deleted == Allocated) { - fUnit->deleted = Deleted; - fUnit->fNext = fFreeList; - fFreeList = fUnit; - } -/* - else if (fUnit->deleted == Deleted) { - // G4cerr << "G4Allocator : This object is already deleted" << G4endl; - } else { - // G4cerr << "G4Allocator: This object is allocated not by G4Allocator"<< G4endl; - } -*/ - } + private: + enum { Allocated = 0x47416C, Deleted = 0xB8BE93 }; + + G4AllocatorPage * fPages; + G4AllocatorUnit * fFreeList; }; +// ------------------------------------------------------------ +// Inline implementation +// ------------------------------------------------------------ +static const G4int G4AllocatorPageSize = 1024; + +// ************************************************************ +// G4Allocator constructor +// ************************************************************ +// template G4Allocator::G4Allocator() { - fPages = NULL; - fFreeList = NULL; + fPages = 0; + fFreeList = 0; AddNewPage(); return; } +// ************************************************************ +// G4Allocator destructor +// ************************************************************ +// template G4Allocator::~G4Allocator() { - G4AllocatorPage *aPage; - G4AllocatorPage *aNextPage; + G4AllocatorPage * aPage; + G4AllocatorPage * aNextPage; aPage = fPages; - while (aPage != NULL) + while (aPage != 0) { aNextPage = aPage->fNext; free(aPage->fUnits); delete aPage; aPage = aNextPage; } - fPages = NULL; - fFreeList = NULL; + fPages = 0; + fFreeList = 0; return; } -static const G4int G4AllocatorPageSize = 1024; +// ************************************************************ +// MallocSingle +// ************************************************************ +// +template +Type* G4Allocator::MallocSingle() +{ + Type * anElement; + if (fFreeList != 0) + { + fFreeList->deleted = Allocated; + anElement = &fFreeList->fElement; + fFreeList = fFreeList->fNext; + } + else + anElement = AddNewElement(); + return anElement; +} + +// ************************************************************ +// FreeSingle +// ************************************************************ +// +template +void G4Allocator::FreeSingle(Type* anElement) +{ + G4AllocatorUnit * fUnit; + + // The gcc-3.1 compiler will complain and not correctly handle offsets + // computed from non-POD types. Pointers to member data should be used + // instead. This advanced C++ feature seems not to work on earlier + // versions of the same compiler. + // + #if (GNU_GCC==1) && (__GNUC__==3) && (__GNUC_MINOR__>0) + Type G4AllocatorUnit::*pOffset = &G4AllocatorUnit::fElement; + fUnit = (G4AllocatorUnit *) ((char *)anElement - size_t(pOffset)); + #else + fUnit = (G4AllocatorUnit *) + ((char *) anElement - offsetof(G4AllocatorUnit, fElement)); + #endif + + if (fUnit->deleted == Allocated) + { + fUnit->deleted = Deleted; + fUnit->fNext = fFreeList; + fFreeList = fUnit; + } +} + +// ************************************************************ +// AddNewPage +// ************************************************************ +// template void G4Allocator::AddNewPage() { - G4AllocatorPage *aPage; + G4AllocatorPage * aPage; register G4int unit_no; aPage = new G4AllocatorPage; @@ -151,10 +192,14 @@ void G4Allocator::AddNewPage() fFreeList = &aPage->fUnits[0]; } +// ************************************************************ +// AddNewElement +// ************************************************************ +// template -Type *G4Allocator::AddNewElement() +Type* G4Allocator::AddNewElement() { - Type *anElement; + Type* anElement; AddNewPage(); fFreeList->deleted = Allocated; @@ -163,5 +208,4 @@ Type *G4Allocator::AddNewElement() return anElement; } - #endif diff --git a/source/global/management/include/G4AllocatorPage.hh b/source/global/management/include/G4AllocatorPage.hh index 155bdfd836..806a71292f 100644 --- a/source/global/management/include/G4AllocatorPage.hh +++ b/source/global/management/include/G4AllocatorPage.hh @@ -21,15 +21,13 @@ // ******************************************************************** // // -// $Id: G4AllocatorPage.hh,v 1.3 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4AllocatorPage.hh,v 1.4 2002/05/21 10:31:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ // GEANT 4 class header file // -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo // -------------- G4AllocatorPage ---------------- // by Tim Bell, September 1995 // ------------------------------------------------------------ diff --git a/source/global/management/include/G4AllocatorUnit.hh b/source/global/management/include/G4AllocatorUnit.hh index 25b4455066..7fb52bc170 100644 --- a/source/global/management/include/G4AllocatorUnit.hh +++ b/source/global/management/include/G4AllocatorUnit.hh @@ -21,15 +21,13 @@ // ******************************************************************** // // -// $Id: G4AllocatorUnit.hh,v 1.3 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4AllocatorUnit.hh,v 1.4 2002/05/21 10:31:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ // GEANT 4 class header file // -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo // -------------- G4AllocatorUnit ---------------- // by Tim Bell, September 1995 // ------------------------------------------------------------ diff --git a/source/global/management/include/G4ApplicationState.hh b/source/global/management/include/G4ApplicationState.hh index fbf7755919..125bfeb12d 100644 --- a/source/global/management/include/G4ApplicationState.hh +++ b/source/global/management/include/G4ApplicationState.hh @@ -22,7 +22,7 @@ // // // $Id: G4ApplicationState.hh,v 1.2 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4APPLICATIONSTATE_H diff --git a/source/global/management/include/G4DataVector.hh b/source/global/management/include/G4DataVector.hh index 1f8ca87b8c..d4d693c275 100644 --- a/source/global/management/include/G4DataVector.hh +++ b/source/global/management/include/G4DataVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DataVector.hh,v 1.10 2001/09/17 08:17:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4DataVector.hh,v 1.11 2002/04/19 07:10:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -60,7 +60,7 @@ class G4DataVector : public G4std::vector // Constructor given a 'capacity' defining the initial number of elements // and initialising them to 'value'. - virtual ~G4DataVector(){;} + virtual ~G4DataVector(); // Empty destructor inline void insertAt(size_t, const G4double&); @@ -87,24 +87,6 @@ class G4DataVector : public G4std::vector friend G4std::ostream& operator<<(G4std::ostream&, const G4DataVector&); }; -inline -G4DataVector::G4DataVector() - : G4std::vector() -{ -} - -inline -G4DataVector::G4DataVector(size_t capacity) - : G4std::vector(capacity) -{ -} - -inline -G4DataVector::G4DataVector(size_t capacity, G4double value) - : G4std::vector(capacity, value) -{ -} - inline void G4DataVector::insertAt(size_t pos, const G4double& a) { diff --git a/source/global/management/include/G4FastVector.hh b/source/global/management/include/G4FastVector.hh index 572317e331..136aaccf7f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.hh b/source/global/management/include/G4LPhysicsFreeVector.hh index 752f18fd33..df989cd262 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.icc b/source/global/management/include/G4LPhysicsFreeVector.icc index c1e3d81bdb..ae4c2230ec 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4OrderedTable.hh b/source/global/management/include/G4OrderedTable.hh index a3d5877b34..a3b7f480b4 100644 --- a/source/global/management/include/G4OrderedTable.hh +++ b/source/global/management/include/G4OrderedTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OrderedTable.hh,v 1.9 2001/09/17 08:17:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OrderedTable.hh,v 1.10 2002/04/19 07:10:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -64,7 +64,7 @@ class G4OrderedTable : public G4std::vector // Constructor given a 'capacity' defining the initial // number of elements (NULL pointers are filled up) - virtual ~G4OrderedTable(){;} + virtual ~G4OrderedTable(); // Empty Destructor inline void clearAndDestroy(); @@ -84,18 +84,6 @@ typedef G4OrderedTable::iterator G4OrderedTableIterator; #include "G4DataVector.hh" -inline -G4OrderedTable::G4OrderedTable() - : G4std::vector() -{ -} - -inline -G4OrderedTable::G4OrderedTable(size_t capacity) - : G4std::vector(capacity, (G4DataVector*)(0) ) -{ -} - inline void G4OrderedTable::clearAndDestroy() { diff --git a/source/global/management/include/G4PhysicsFreeVector.hh b/source/global/management/include/G4PhysicsFreeVector.hh index 6c05efdb27..3d548658e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLinearVector.hh b/source/global/management/include/G4PhysicsLinearVector.hh index 20b4e08b0f..45c06c1968 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLnVector.hh b/source/global/management/include/G4PhysicsLnVector.hh index a4194b5635..9495826db2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLogVector.hh b/source/global/management/include/G4PhysicsLogVector.hh index b9d1933236..bba47a4351 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.hh b/source/global/management/include/G4PhysicsOrderedFreeVector.hh index 8117bcd239..43ce239e57 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Definition diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.icc b/source/global/management/include/G4PhysicsOrderedFreeVector.icc index fe7562a610..81cef83176 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Inline Functions Definitions diff --git a/source/global/management/include/G4PhysicsTable.hh b/source/global/management/include/G4PhysicsTable.hh index 8a81e74b51..a68a374ce7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsTable.icc b/source/global/management/include/G4PhysicsTable.icc index 44258c8fad..572a009995 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsVector.hh b/source/global/management/include/G4PhysicsVector.hh index bcb65b3798..36dd08ba71 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVector.icc b/source/global/management/include/G4PhysicsVector.icc index aa6a777a67..b399d4116d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVectorType.hh b/source/global/management/include/G4PhysicsVectorType.hh index d8fcae5f14..152e2ce9f4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // diff --git a/source/global/management/include/G4ReferenceCountedHandle.hh b/source/global/management/include/G4ReferenceCountedHandle.hh old mode 100755 new mode 100644 index 01262ed5db..050e8bda7c --- 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4ReferenceCountedHandle diff --git a/source/global/management/include/G4RotationMatrix.hh b/source/global/management/include/G4RotationMatrix.hh index 632aa69c08..bbb2e0e8e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4SIunits.hh b/source/global/management/include/G4SIunits.hh index 8420a180cc..63d9c72982 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/G4StateManager.hh b/source/global/management/include/G4StateManager.hh index fbba79e150..fa80899b18 100644 --- a/source/global/management/include/G4StateManager.hh +++ b/source/global/management/include/G4StateManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StateManager.hh,v 1.5 2001/07/18 17:59:22 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StateManager.hh,v 1.6 2002/04/16 18:19:13 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -82,6 +82,11 @@ public: // with description // Set Geant4 to a new state. // In case the request is irregal, false will be returned // and the state of Geant4 will not be changed. + G4bool SetNewState(G4ApplicationState requestedState, const char* msg); + // Set Geant4 to a new state. + // In case the request is irregal, false will be returned + // and the state of Geant4 will not be changed. + // "msg" is information associating to this state change G4bool RegisterDependent(G4VStateDependent* aDependent,G4bool bottom=false); // Register a concrete class of G4VStateDependent. // Registered concrete classes will be notified via @@ -121,10 +126,12 @@ private: G4std::vector theDependentsList; G4VStateDependent* theBottomDependent; G4int suppressAbortion; + const char* msgptr; public: inline void SetSuppressAbortion(G4int i) { suppressAbortion = i; } inline G4int GetSuppressAbortion() const { return suppressAbortion; } + inline const char* GetMessage() const { return msgptr; } }; diff --git a/source/global/management/include/G4String.hh b/source/global/management/include/G4String.hh index f6ee3376bb..827692d96a 100644 --- a/source/global/management/include/G4String.hh +++ b/source/global/management/include/G4String.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4String.hh,v 1.2 2001/11/29 14:45:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4String.hh,v 1.3 2002/03/25 15:32:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- @@ -116,11 +116,11 @@ public: inline G4String ( const char * ); inline G4String ( const G4String& ); inline G4String ( const G4SubString& ); - inline G4String ( const std_string& ); + inline G4String ( const G4std::string & ); virtual ~G4String () {} inline G4String& operator=(const G4String&); - inline G4String& operator=(const std_string&); + inline G4String& operator=(const G4std::string &); inline G4String& operator=(const char*); inline char operator () (str_size) const; @@ -128,7 +128,7 @@ public: inline G4String& operator+=(const G4SubString&); inline G4String& operator+=(const char*); - inline G4String& operator+=(const std_string&); + inline G4String& operator+=(const G4std::string &); inline G4String& operator+=(const char&); inline G4bool operator==(const G4String&) const; inline G4bool operator==(const char*) const; @@ -157,7 +157,7 @@ public: inline G4int first(char) const; inline G4int last(char) const; - inline G4bool contains(std_string) const; + inline G4bool contains(G4std::string) const; inline G4bool contains(char) const; // stripType = 0 beginning diff --git a/source/global/management/include/G4String.icc b/source/global/management/include/G4String.icc index 5c2bec26bb..7deda0dba0 100644 --- a/source/global/management/include/G4String.icc +++ b/source/global/management/include/G4String.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4String.icc,v 1.2 2001/11/29 14:45:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4String.icc,v 1.3 2002/03/25 15:32:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- @@ -150,7 +150,7 @@ G4String::G4String ( const G4String& s ) G4String::G4String ( const G4SubString& s ) : std_string(*(s.mystring),s.mystart,s.extent) {} -G4String::G4String ( const std_string& s ) +G4String::G4String ( const G4std::string &s ) : std_string(s) {} G4String& G4String::operator=(const G4String& s) @@ -159,7 +159,7 @@ G4String& G4String::operator=(const G4String& s) return *this; } -G4String& G4String::operator=(const std_string& s) +G4String& G4String::operator=(const G4std::string &s) { std_string::operator=(s); return *this; @@ -199,7 +199,7 @@ G4String& G4String::operator+=(const char*s) return *this; } -G4String& G4String::operator+=(const std_string &s) +G4String& G4String::operator+=(const G4std::string &s) { std_string::operator+=(s); return *this; @@ -344,7 +344,7 @@ G4int G4String::last(char c) const return rfind(c); } -G4bool G4String::contains(std_string s) const +G4bool G4String::contains(G4std::string s) const { G4int i=std_string::find(s); if(i != G4int(std_string::npos)) diff --git a/source/global/management/include/G4ThreeVector.hh b/source/global/management/include/G4ThreeVector.hh index 74b059cf14..a04bba3dae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4Timer.hh b/source/global/management/include/G4Timer.hh index fd4b55a529..e833d43f83 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4Tokenizer.hh b/source/global/management/include/G4Tokenizer.hh index fbcde1ebfb..383da9d108 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4Types.hh b/source/global/management/include/G4Types.hh index c4e8bf5530..727b2b3c81 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT4 native types diff --git a/source/global/management/include/G4UnitsTable.hh b/source/global/management/include/G4UnitsTable.hh index c0e6806b1a..eb4c51a33e 100644 --- a/source/global/management/include/G4UnitsTable.hh +++ b/source/global/management/include/G4UnitsTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnitsTable.hh,v 1.11 2001/07/11 10:00:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ----------------------------------------------------------------- diff --git a/source/global/management/include/G4UserLimits.hh b/source/global/management/include/G4UserLimits.hh index 1bd696f74f..8318f44c46 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4UserLimits diff --git a/source/global/management/include/G4UserLimits.icc b/source/global/management/include/G4UserLimits.icc index 8c947cbc99..c23f5dd58b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/global/management/include/G4VStateDependent.hh b/source/global/management/include/G4VStateDependent.hh index 20a8a84df4..0680eceb36 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4coutDestination.hh b/source/global/management/include/G4coutDestination.hh index f43b160971..1c5a7241e2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4ios.hh b/source/global/management/include/G4ios.hh index 5d7265da98..9a726dbc11 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4strstreambuf.hh b/source/global/management/include/G4strstreambuf.hh index 0aaf94a90e..258cf78f05 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4strstreambuf.icc b/source/global/management/include/G4strstreambuf.icc index e3203c5689..0064cb82cb 100644 --- a/source/global/management/include/G4strstreambuf.icc +++ b/source/global/management/include/G4strstreambuf.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4strstreambuf.icc,v 1.2 2001/07/11 10:00:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4strstreambuf.icc,v 1.6 2002/05/24 15:01:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- @@ -35,7 +35,7 @@ inline G4strstreambuf::G4strstreambuf() { - destination = NULL; + destination = 0; count = 0; size = 4095; buffer = new char[size+1]; @@ -44,7 +44,7 @@ G4strstreambuf::G4strstreambuf() inline G4strstreambuf::~G4strstreambuf() { - delete buffer; + delete [] buffer; } inline @@ -77,17 +77,20 @@ inline G4int G4strstreambuf::overflow(G4int c) { G4int result = 0; - if(count>=size) { - buffer[count] = '\0'; - count = 0; - result = ReceiveString (); - } + if(count>=size) result = sync(); buffer[count] = c; count++; - if(c=='\n') { - buffer[count] = '\0'; - count = 0; - result = ReceiveString (); + if(c=='\n') + { + result = sync(); + + // Fix to overcome a bug on GNU gcc-3.0.X compilers. The return value + // for cout, cerr overflow() function has to be c instead of 0 when + // buffer is flushed for carriage-return. + // + #if defined(GNU_GCC) && defined(G4USE_STD_NAMESPACE) && (__GNUC__==3) && (__GNUC_MINOR__==0) + if (this == & G4coutbuf || this == & G4cerrbuf) result = c; + #endif } return result; } @@ -111,18 +114,19 @@ G4int G4strstreambuf::underflow() inline G4int G4strstreambuf::ReceiveString () { - G4String stringToSend = G4String(buffer); + G4String stringToSend(buffer); G4int result =0; - if(this == & G4coutbuf && destination != NULL) { + if(this == & G4coutbuf && destination != 0) { result = destination->ReceiveG4cout(stringToSend); - } else if(this == & G4cerrbuf && destination != NULL) { + } else if(this == & G4cerrbuf && destination != 0) { result = destination->ReceiveG4cerr(stringToSend); - } else if(this == & G4coutbuf && destination == NULL) { + } else if(this == & G4coutbuf && destination == 0) { G4std::cout << stringToSend << G4std::flush; result =0; - } else if(this == & G4cerrbuf && destination == NULL) { + } else if(this == & G4cerrbuf && destination == 0) { G4std::cerr << stringToSend << G4std::flush; result =0; } return result; } + diff --git a/source/global/management/include/PhysicalConstants.h b/source/global/management/include/PhysicalConstants.h index 6816554298..be998e3951 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/SystemOfUnits.h b/source/global/management/include/SystemOfUnits.h index beea6e81ce..dbfb3c471a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/g4std/algorithm b/source/global/management/include/g4std/algorithm index ff8b513263..fc9376d66b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- algorithm ---------------- // diff --git a/source/global/management/include/g4std/complex b/source/global/management/include/g4std/complex index 1be08b95f8..288d61b8f9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- complex ---------------- // diff --git a/source/global/management/include/g4std/deque b/source/global/management/include/g4std/deque index 6f0cd7af57..5b034e0d62 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- deque ---------------- // diff --git a/source/global/management/include/g4std/fstream b/source/global/management/include/g4std/fstream index 305483073b..11c6abec4d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- fstream ---------------- // diff --git a/source/global/management/include/g4std/functional b/source/global/management/include/g4std/functional index 976559d2b8..12036c3500 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- functional ---------------- // diff --git a/source/global/management/include/g4std/iomanip b/source/global/management/include/g4std/iomanip index 85e651f660..ba8e72c785 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- iomanip ---------------- // diff --git a/source/global/management/include/g4std/iostream b/source/global/management/include/g4std/iostream index c36deb9fd0..9c6d919026 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- iostream ---------------- // diff --git a/source/global/management/include/g4std/list b/source/global/management/include/g4std/list index 6f67461fd7..a74ff67339 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- list ---------------- // diff --git a/source/global/management/include/g4std/map b/source/global/management/include/g4std/map index 8103c20cef..531753ba29 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- map ---------------- // diff --git a/source/global/management/include/g4std/queue b/source/global/management/include/g4std/queue index a42c917c9b..bfbc362517 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- queue ---------------- // diff --git a/source/global/management/include/g4std/set b/source/global/management/include/g4std/set index 6153980bec..6fa768532a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- set ---------------- // diff --git a/source/global/management/include/g4std/streambuf b/source/global/management/include/g4std/streambuf index 5d5e63925c..4598d99390 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- streambuf ---------------- // diff --git a/source/global/management/include/g4std/strstream b/source/global/management/include/g4std/strstream index 4dd7dc61fe..651d79bd53 100644 --- a/source/global/management/include/g4std/strstream +++ b/source/global/management/include/g4std/strstream @@ -5,8 +5,8 @@ // based on the Program) you indicate your acceptance of this statement, // and all its terms. // -// $Id: strstream,v 1.3 1999/11/16 17:43:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: strstream,v 1.4 2002/05/24 15:01:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- strstream ---------------- // @@ -20,6 +20,9 @@ #include #endif /* WIN32 */ #else + #if (__GNUC__==3) && (__GNUC_MINOR__>0) + #undef __DEPRECATED + #endif #include #endif /* G4USE_STD_NAMESPACE */ diff --git a/source/global/management/include/g4std/vector b/source/global/management/include/g4std/vector index 92bd8385ea..37dccaf170 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- vector ---------------- // diff --git a/source/global/management/include/g4std/wrappers/DEC-cxx/cmath b/source/global/management/include/g4std/wrappers/DEC-cxx/cmath index 7e2e7cfcb4..e08d565191 100644 --- a/source/global/management/include/g4std/wrappers/DEC-cxx/cmath +++ b/source/global/management/include/g4std/wrappers/DEC-cxx/cmath @@ -2,9 +2,5 @@ #define __CMATH__ #include -inline float abs (float x) { return fabs (x); } -inline double abs (double x) { return fabs (x); } -inline long double abs (long double x) { return fabs (x); } - #endif // __CMATH__ diff --git a/source/global/management/include/g4std/wrappers/HP-aCC/fstream b/source/global/management/include/g4std/wrappers/HP-aCC/fstream deleted file mode 100644 index 0efc56168a..0000000000 --- a/source/global/management/include/g4std/wrappers/HP-aCC/fstream +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/HP-aCC/iomanip b/source/global/management/include/g4std/wrappers/HP-aCC/iomanip deleted file mode 100644 index df6531c384..0000000000 --- a/source/global/management/include/g4std/wrappers/HP-aCC/iomanip +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/HP-aCC/iostream b/source/global/management/include/g4std/wrappers/HP-aCC/iostream deleted file mode 100644 index 9e4d27ee83..0000000000 --- a/source/global/management/include/g4std/wrappers/HP-aCC/iostream +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/HP-aCC/strstream b/source/global/management/include/g4std/wrappers/HP-aCC/strstream deleted file mode 100644 index e839b6e80b..0000000000 --- a/source/global/management/include/g4std/wrappers/HP-aCC/strstream +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/SUN-CC4/cmath b/source/global/management/include/g4std/wrappers/SUN-CC4/cmath deleted file mode 100644 index 7e2e7cfcb4..0000000000 --- a/source/global/management/include/g4std/wrappers/SUN-CC4/cmath +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __CMATH__ -#define __CMATH__ - -#include -inline float abs (float x) { return fabs (x); } -inline double abs (double x) { return fabs (x); } -inline long double abs (long double x) { return fabs (x); } - - -#endif // __CMATH__ diff --git a/source/global/management/include/g4std/wrappers/SUN-CC4/cstdio b/source/global/management/include/g4std/wrappers/SUN-CC4/cstdio deleted file mode 100644 index 354499acd6..0000000000 --- a/source/global/management/include/g4std/wrappers/SUN-CC4/cstdio +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/SUN-CC4/cstdlib b/source/global/management/include/g4std/wrappers/SUN-CC4/cstdlib deleted file mode 100644 index b0c4d22f1e..0000000000 --- a/source/global/management/include/g4std/wrappers/SUN-CC4/cstdlib +++ /dev/null @@ -1,8 +0,0 @@ -// The -*- C++ -*- standard library header. -// This file is part of the GNU ANSI C++ Library. - -#ifndef __CSTDLIB__ -#define __CSTDLIB__ -#include - -#endif diff --git a/source/global/management/include/g4std/wrappers/SUN-CC4/cstring b/source/global/management/include/g4std/wrappers/SUN-CC4/cstring deleted file mode 100644 index 3b2f590027..0000000000 --- a/source/global/management/include/g4std/wrappers/SUN-CC4/cstring +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/globals.hh b/source/global/management/include/globals.hh index bcd3c29372..95bd4ee34c 100644 --- a/source/global/management/include/globals.hh +++ b/source/global/management/include/globals.hh @@ -22,7 +22,7 @@ // // // $Id: globals.hh,v 1.19 2001/10/12 12:18:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Global Constants and typedefs diff --git a/source/global/management/include/templates.hh b/source/global/management/include/templates.hh index 2db49c9ef0..73225e4699 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -*- C++ -*- diff --git a/source/global/management/src/G4DataVector.cc b/source/global/management/src/G4DataVector.cc index 6ca92503aa..c1e500517a 100644 --- a/source/global/management/src/G4DataVector.cc +++ b/source/global/management/src/G4DataVector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DataVector.cc,v 1.3 2001/11/29 18:59:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4DataVector.cc,v 1.5 2002/05/30 11:56:40 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- @@ -37,6 +37,25 @@ #include "G4DataVector.hh" #include "g4std/iomanip" +G4DataVector::G4DataVector() + : G4std::vector() +{ +} + +G4DataVector::G4DataVector(size_t capacity) + : G4std::vector(capacity, 0.0) +{ +} + +G4DataVector::G4DataVector(size_t capacity, G4double value) + : G4std::vector(capacity, value) +{ +} + +G4DataVector::~G4DataVector() +{ +} + G4bool G4DataVector::Store(G4std::ofstream& fOut, G4bool ascii) { // Ascii mode diff --git a/source/global/management/src/G4Exception.cc b/source/global/management/src/G4Exception.cc index f7c549f4e2..1d2917f8b7 100644 --- a/source/global/management/src/G4Exception.cc +++ b/source/global/management/src/G4Exception.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Exception.cc,v 1.12 2001/10/11 14:04:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Exception.cc,v 1.13 2002/04/16 18:19:14 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- @@ -45,7 +45,7 @@ void G4Exception(const char* s) { G4cerr << s << G4endl; } - if(G4StateManager::GetStateManager()->SetNewState(Abort)) { + if(G4StateManager::GetStateManager()->SetNewState(Abort,s)) { G4cerr << G4endl << "*** G4Exception: Aborting execution ***" << G4endl; abort(); } else { diff --git a/source/global/management/src/G4LPhysicsFreeVector.cc b/source/global/management/src/G4LPhysicsFreeVector.cc index 4bdcfe86a2..d88fe764ef 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------------- diff --git a/source/global/management/src/G4OrderedTable.cc b/source/global/management/src/G4OrderedTable.cc index e4341bd582..ebbf48f485 100644 --- a/source/global/management/src/G4OrderedTable.cc +++ b/source/global/management/src/G4OrderedTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OrderedTable.cc,v 1.1 2001/09/17 08:17:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OrderedTable.cc,v 1.2 2002/04/19 07:10:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -39,6 +39,20 @@ #include "g4std/iomanip" +G4OrderedTable::G4OrderedTable() + : G4std::vector() +{ +} + +G4OrderedTable::G4OrderedTable(size_t capacity) + : G4std::vector(capacity, (G4DataVector*)(0) ) +{ +} + +G4OrderedTable::~G4OrderedTable() +{ +} + G4bool G4OrderedTable::Store(const G4String& fileName, G4bool ascii) { diff --git a/source/global/management/src/G4PhysicsFreeVector.cc b/source/global/management/src/G4PhysicsFreeVector.cc index 1f4375dc7f..e7f4418acb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLinearVector.cc b/source/global/management/src/G4PhysicsLinearVector.cc index 485c1c3886..d04dcd8f9b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLnVector.cc b/source/global/management/src/G4PhysicsLnVector.cc index 37189d4882..56039961be 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLogVector.cc b/source/global/management/src/G4PhysicsLogVector.cc index 90964c243e..7ad43eb7ed 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsOrderedFreeVector.cc b/source/global/management/src/G4PhysicsOrderedFreeVector.cc index 2dfad38a22..035f449193 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Implementation diff --git a/source/global/management/src/G4PhysicsTable.cc b/source/global/management/src/G4PhysicsTable.cc index 2e53d1fe07..f4e45ee629 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4PhysicsVector.cc b/source/global/management/src/G4PhysicsVector.cc index 72a498c7ae..a5812c2800 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4StateManager.cc b/source/global/management/src/G4StateManager.cc index 9c6b552274..bf1896e0d8 100644 --- a/source/global/management/src/G4StateManager.cc +++ b/source/global/management/src/G4StateManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StateManager.cc,v 1.5 2001/07/18 17:59:23 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StateManager.cc,v 1.6 2002/04/16 18:19:14 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -41,7 +41,8 @@ G4StateManager::G4StateManager() : theCurrentState(PreInit), thePreviousState(PreInit), theBottomDependent(0), - suppressAbortion(0) + suppressAbortion(0), + msgptr(0) { } @@ -159,11 +160,16 @@ G4StateManager::GetPreviousState() const G4bool G4StateManager::SetNewState(G4ApplicationState requestedState) +{ return SetNewState(requestedState,0); } + +G4bool +G4StateManager::SetNewState(G4ApplicationState requestedState, const char* msg) { if(requestedState==Abort && suppressAbortion>0) { if(suppressAbortion==2) return false; if(theCurrentState==EventProc) return false; } + msgptr = msg; size_t i=0; G4bool ack = true; G4ApplicationState savedState = thePreviousState; @@ -184,6 +190,7 @@ G4StateManager::SetNewState(G4ApplicationState requestedState) theCurrentState = thePreviousState; thePreviousState = savedState; } + msgptr = 0; return ack; } diff --git a/source/global/management/src/G4Timer.cc b/source/global/management/src/G4Timer.cc index 06f787d02d..f03dfc8fc3 100644 --- a/source/global/management/src/G4Timer.cc +++ b/source/global/management/src/G4Timer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Timer.cc,v 1.9 2001/07/11 10:00:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Timer.cc,v 1.10 2002/01/17 10:49:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- @@ -68,7 +68,7 @@ void G4Exception(const char* s=0); GetSystemTime( &realtime ); SystemTimeToFileTime( &realtime, &rt ); // get real time in 10^-9 sec - if( t != NULL ){ + if( t != 0 ){ GetProcessTimes( GetCurrentProcess(), &ct, &et, &st, &ut);// get process time in 10^-9 sec t->tms_utime = t->tms_cutime = filetime2msec(&ut); t->tms_stime = t->tms_cstime = filetime2msec(&st); diff --git a/source/global/management/src/G4UnitsTable.cc b/source/global/management/src/G4UnitsTable.cc index 7b9e8b8404..54e8c1bd3b 100644 --- a/source/global/management/src/G4UnitsTable.cc +++ b/source/global/management/src/G4UnitsTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnitsTable.cc,v 1.15 2001/07/11 10:00:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UnitsTable.cc,v 1.16 2002/05/06 12:06:48 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... // @@ -31,6 +31,7 @@ // 13-10-98: units and symbols printed in fixed length, M.Maire // 01-03-01: parsec, M.Maire // 06-03-01: migration to STL vectors, G.Cosmo +// 06-05-02: BestUnit operator<< flux instead of G4cout (mma) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -422,14 +423,14 @@ G4std::ostream& operator<<(G4std::ostream& flux, G4BestUnit a) {flux << a.Value[j]/(List[index]->GetValue()) << " ";} #ifdef G4USE_STD_NAMESPACE - std::ios::fmtflags oldform = G4cout.flags(); + std::ios::fmtflags oldform = flux.flags(); #else - G4long oldform = G4cout.flags(); + G4long oldform = flux.flags(); #endif - G4cout.setf(G4std::ios::left,G4std::ios::adjustfield); + flux.setf(G4std::ios::left,G4std::ios::adjustfield); flux << G4std::setw(len) << List[index]->GetSymbol(); - G4cout.flags(oldform); + flux.flags(oldform); return flux; } diff --git a/source/global/management/src/G4VStateDependent.cc b/source/global/management/src/G4VStateDependent.cc index bc73a17b6d..d9b092638e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4ios.cc b/source/global/management/src/G4ios.cc index 0b96d3c4b9..b57798ff46 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/graphics_reps/include/G4Circle.hh b/source/graphics_reps/include/G4Circle.hh index fd6a735dd4..e0b68b401b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Color.hh b/source/graphics_reps/include/G4Color.hh index f14a66e838..04789e09fb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 20th October 1996 diff --git a/source/graphics_reps/include/G4Colour.hh b/source/graphics_reps/include/G4Colour.hh index f5dae611a3..3c2e0d554d 100644 --- a/source/graphics_reps/include/G4Colour.hh +++ b/source/graphics_reps/include/G4Colour.hh @@ -22,7 +22,7 @@ // // // $Id: G4Colour.hh,v 1.6 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 20th October 1996 diff --git a/source/graphics_reps/include/G4NURBS.hh b/source/graphics_reps/include/G4NURBS.hh index 665b344e0b..62bdd97922 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBSbox.hh b/source/graphics_reps/include/G4NURBSbox.hh index 091c62a6cc..2799e67d62 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBScylinder.hh b/source/graphics_reps/include/G4NURBScylinder.hh index 9735bf1466..ba021787d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBShexahedron.hh b/source/graphics_reps/include/G4NURBShexahedron.hh index 46bb1334ce..a6c744d947 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 780a4f0a04..07e4603a7c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBStubesector.hh b/source/graphics_reps/include/G4NURBStubesector.hh index 1d8006385f..d94fcbc577 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4PlacedPolyhedron.hh b/source/graphics_reps/include/G4PlacedPolyhedron.hh index 28bc017d79..a39f77f962 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: diff --git a/source/graphics_reps/include/G4Point3DList.hh b/source/graphics_reps/include/G4Point3DList.hh index ac5cc7fed9..690b943e57 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/include/G4Polyhedron.hh b/source/graphics_reps/include/G4Polyhedron.hh index 14f7b8a536..d7307220a4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #ifndef G4POLYHEDRON_HH #define G4POLYHEDRON_HH diff --git a/source/graphics_reps/include/G4Polyline.hh b/source/graphics_reps/include/G4Polyline.hh index 768826fc2b..ee0886da4c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/include/G4Polymarker.hh b/source/graphics_reps/include/G4Polymarker.hh index 7f8278252c..7149f1fa63 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/include/G4Polymarker.icc b/source/graphics_reps/include/G4Polymarker.icc index 5cfcd4555d..385d6c5a8a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/include/G4Scale.hh b/source/graphics_reps/include/G4Scale.hh index e5606f511d..00c47903af 100644 --- a/source/graphics_reps/include/G4Scale.hh +++ b/source/graphics_reps/include/G4Scale.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scale.hh,v 1.3 2001/09/10 10:28:24 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 21st July 2001. diff --git a/source/graphics_reps/include/G4Scale.icc b/source/graphics_reps/include/G4Scale.icc index 6d2b041775..1a7902ed7a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 21st July 2001. diff --git a/source/graphics_reps/include/G4Square.hh b/source/graphics_reps/include/G4Square.hh index fa392cc112..f4bf52d0f0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Square.icc b/source/graphics_reps/include/G4Square.icc index d0cffc37d2..46ef7c74cd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Text.hh b/source/graphics_reps/include/G4Text.hh index d29327e042..faec937984 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Text.icc b/source/graphics_reps/include/G4Text.icc index 4088e62a62..1fbf60dfc9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4VMarker.hh b/source/graphics_reps/include/G4VMarker.hh index 071b0f4dd9..44909adc9f 100644 --- a/source/graphics_reps/include/G4VMarker.hh +++ b/source/graphics_reps/include/G4VMarker.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMarker.hh,v 1.7 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4VMarker - base class for markers - circles, squares, etc. diff --git a/source/graphics_reps/include/G4VMarker.icc b/source/graphics_reps/include/G4VMarker.icc index f2492aa577..df010f32b5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/graphics_reps/include/G4VVisPrim.hh b/source/graphics_reps/include/G4VVisPrim.hh index 82fe2445ca..61d9176b4d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison August 1995 diff --git a/source/graphics_reps/include/G4VisAttributes.hh b/source/graphics_reps/include/G4VisAttributes.hh index a0d4d21683..5006c9728e 100644 --- a/source/graphics_reps/include/G4VisAttributes.hh +++ b/source/graphics_reps/include/G4VisAttributes.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.hh,v 1.7 2001/07/11 10:01:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 23rd October 1996 diff --git a/source/graphics_reps/include/G4VisAttributes.icc b/source/graphics_reps/include/G4VisAttributes.icc index f5391b0b68..ec1747dd8a 100644 --- a/source/graphics_reps/include/G4VisAttributes.icc +++ b/source/graphics_reps/include/G4VisAttributes.icc @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.icc,v 1.4 2001/07/11 10:01:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 18th November 1996 diff --git a/source/graphics_reps/include/G4VisExtent.hh b/source/graphics_reps/include/G4VisExtent.hh index f3f3d7c4cf..c837b9ad91 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/include/G4Visible.hh b/source/graphics_reps/include/G4Visible.hh index c94dd3eef4..2c9214346e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/include/G4Visible.icc b/source/graphics_reps/include/G4Visible.icc index 815c64f76a..28cefeef75 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/include/HepPolyhedron.h b/source/graphics_reps/include/HepPolyhedron.h index 52286fc640..a719808b47 100644 --- a/source/graphics_reps/include/HepPolyhedron.h +++ b/source/graphics_reps/include/HepPolyhedron.h @@ -22,7 +22,7 @@ // // // $Id: HepPolyhedron.h,v 1.9 2001/07/11 10:01:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class Description: diff --git a/source/graphics_reps/src/G4Circle.cc b/source/graphics_reps/src/G4Circle.cc index abd763ee0c..46e0dcc435 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/graphics_reps/src/G4Colour.cc b/source/graphics_reps/src/G4Colour.cc index 13c0ff6f5c..e806c7f944 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 20th October 1996 diff --git a/source/graphics_reps/src/G4NURBS.cc b/source/graphics_reps/src/G4NURBS.cc index 485e5baae9..249ec7aec2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBSbox.cc b/source/graphics_reps/src/G4NURBSbox.cc index f13c3f3fb8..e7f88e8168 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBScylinder.cc b/source/graphics_reps/src/G4NURBScylinder.cc index ac4eee56b5..e2f28e77ef 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBShexahedron.cc b/source/graphics_reps/src/G4NURBShexahedron.cc index 7dd0a9ee07..f7d703a6e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // hexahedron implementation // OC 17 9 96 diff --git a/source/graphics_reps/src/G4NURBStube.cc b/source/graphics_reps/src/G4NURBStube.cc index dfffec43a0..502ac4a294 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBStubesector.cc b/source/graphics_reps/src/G4NURBStubesector.cc index 3e37db0d2e..5aad11450e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4PlacedPolyhedron.cc b/source/graphics_reps/src/G4PlacedPolyhedron.cc index eaf7e09272..ef6fd26e85 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4PlacedPolyhedron.hh" diff --git a/source/graphics_reps/src/G4Point3DList.cc b/source/graphics_reps/src/G4Point3DList.cc index 0f54aa459e..b952113124 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/src/G4Polyhedron.cc b/source/graphics_reps/src/G4Polyhedron.cc index 63a0e95dcf..3b5446b2c8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4Polyhedron.hh" diff --git a/source/graphics_reps/src/G4Polyline.cc b/source/graphics_reps/src/G4Polyline.cc index 678872c7c1..99d9e5ed55 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/src/G4Polymarker.cc b/source/graphics_reps/src/G4Polymarker.cc index 528d807fe8..4626558ee8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/src/G4Scale.cc b/source/graphics_reps/src/G4Scale.cc index d06c01d0e6..5dc464db97 100644 --- a/source/graphics_reps/src/G4Scale.cc +++ b/source/graphics_reps/src/G4Scale.cc @@ -22,7 +22,7 @@ // // // $Id: G4Scale.cc,v 1.4 2001/09/10 10:28:56 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 21st July 2001 diff --git a/source/graphics_reps/src/G4Square.cc b/source/graphics_reps/src/G4Square.cc index 07a7f6be31..c6cc4e2806 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/graphics_reps/src/G4Text.cc b/source/graphics_reps/src/G4Text.cc index 32381b4b3d..c2ebd65f15 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/src/G4VMarker.cc b/source/graphics_reps/src/G4VMarker.cc index d8471c3336..1834ec03c0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/graphics_reps/src/G4VVisPrim.cc b/source/graphics_reps/src/G4VVisPrim.cc index dc7879b131..aa03815e7d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison August 1995 diff --git a/source/graphics_reps/src/G4VisAttributes.cc b/source/graphics_reps/src/G4VisAttributes.cc index d4ab5dbf07..6c1da683e8 100644 --- a/source/graphics_reps/src/G4VisAttributes.cc +++ b/source/graphics_reps/src/G4VisAttributes.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.cc,v 1.6 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 23rd October 1996 diff --git a/source/graphics_reps/src/G4VisExtent.cc b/source/graphics_reps/src/G4VisExtent.cc index 2e7323f238..de167e4e29 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/src/G4Visible.cc b/source/graphics_reps/src/G4Visible.cc index c4b18e2b58..97bf37c120 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/src/HepPolyhedron.cc b/source/graphics_reps/src/HepPolyhedron.cc index e6f0174b44..7d93df0462 100644 --- a/source/graphics_reps/src/HepPolyhedron.cc +++ b/source/graphics_reps/src/HepPolyhedron.cc @@ -22,7 +22,7 @@ // // // $Id: HepPolyhedron.cc,v 1.9 2001/07/11 10:01:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/intercoms/History b/source/intercoms/History index 100bbb16c9..140b6a1e85 100644 --- a/source/intercoms/History +++ b/source/intercoms/History @@ -1,4 +1,4 @@ -$Id: History,v 1.38 2001/11/24 18:37:10 asaim Exp $ +$Id: History,v 1.43 2002/06/07 17:37:43 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,24 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 7, 2002, M.Asai (intercoms-V04-00-04) +- Fix for a warning message in G4UIbatch. + +May 15, 2002, M.Asai (intercoms-V04-00-03) +- Limit number of stored command string. (improvements) + +May 14, 2002, M.Asai (intercoms-V04-00-02) +- Limit number of stored command string. + +May 3, 2002, M.Asai (intercoms-V04-00-01) +- Recover G4UImanager::ApplyCommand(G4String) to accept + operator + +Apr 26, 2002, M.Asai (intercoms-V04-00-00) +- Eliminate naive G4String type arguments + Modified classes : + G4UIparameter G4UImanager G4UIbatch G4UIaliasList G4UIcmdWithAnInteger + G4UIcmdWithADoubleAndUnit G4UIcmdWithADouble G4UIcmdWithABool + G4UIcmdWith3VectorAndUnit G4UIcmdWith3Vector G4UIcommand G4UIcommandTree Nov 23, 2001, M.Asai (intercoms-V03-02-15) - Fix a problem with a command which has doubled slash. diff --git a/source/intercoms/include/G4UIaliasList.hh b/source/intercoms/include/G4UIaliasList.hh index ffeb2c5384..9d60399751 100644 --- a/source/intercoms/include/G4UIaliasList.hh +++ b/source/intercoms/include/G4UIaliasList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIaliasList.hh,v 1.3 2001/10/16 08:14:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIaliasList.hh,v 1.4 2002/04/26 22:03:34 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIaliasList_h @@ -49,14 +49,14 @@ class G4UIaliasList G4int operator!=(const G4UIaliasList &right) const; public: - void RemoveAlias(G4String aliasName); - void ChangeAlias(G4String aliasName, G4String aliasValue); - G4String* FindAlias(G4String aliasName); + void RemoveAlias(const char* aliasName); + void ChangeAlias(const char* aliasName, const char* aliasValue); + G4String* FindAlias(const char* aliasName); void List(); private: - void AddNewAlias(G4String aliasName, G4String aliasValue); - G4int FindAliasID(G4String aliasName); + void AddNewAlias(const char* aliasName, const char* aliasValue); + G4int FindAliasID(const char* aliasName); private: G4std::vector alias; diff --git a/source/intercoms/include/G4UIbatch.hh b/source/intercoms/include/G4UIbatch.hh index 9c5224fb76..67eb8a833d 100644 --- a/source/intercoms/include/G4UIbatch.hh +++ b/source/intercoms/include/G4UIbatch.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIbatch.hh,v 1.4 2001/07/11 10:01:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIbatch.hh,v 1.6 2002/06/07 17:37:44 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // $id$ @@ -48,7 +48,7 @@ class G4UImanager; class G4UIbatch : public G4UIsession { public: // with description - G4UIbatch(G4String fileName,G4UIsession* prevSession=NULL); + G4UIbatch(const char* fileName,G4UIsession* prevSession=NULL); // Constructor. // "prevSession" must be NULL if this class is constructed // from main(). diff --git a/source/intercoms/include/G4UIcmdWith3Vector.hh b/source/intercoms/include/G4UIcmdWith3Vector.hh index 054c9306a0..e17a178d0f 100644 --- a/source/intercoms/include/G4UIcmdWith3Vector.hh +++ b/source/intercoms/include/G4UIcmdWith3Vector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWith3Vector.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWith3Vector.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -44,7 +44,7 @@ class G4UIcmdWith3Vector : public G4UIcommand (const char * theCommandPath,G4UImessenger * theMessenger); // Constructor. The command string with full path directory // and the pointer to the messenger must be given. - G4ThreeVector GetNew3VectorValue(G4String paramString); + G4ThreeVector GetNew3VectorValue(const char* paramString); // Convert string which represents three double values to // G4ThreeVector. G4String ConvertToString(G4ThreeVector vec); diff --git a/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh b/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh index 467baa42fe..6c927c7806 100644 --- a/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh +++ b/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWith3VectorAndUnit.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWith3VectorAndUnit.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -44,14 +44,14 @@ class G4UIcmdWith3VectorAndUnit : public G4UIcommand (const char * theCommandPath,G4UImessenger * theMessenger); // Constructor. The command string with full path directory // and the pointer to the messenger must be given. - G4ThreeVector GetNew3VectorValue(G4String paramString); + G4ThreeVector GetNew3VectorValue(const char* paramString); // Convert string which represents three double values and a unit to // G4ThreeVector. Values are converted to the Geant4 internal unit. - G4ThreeVector GetNew3VectorRawValue(G4String paramString); + G4ThreeVector GetNew3VectorRawValue(const char* paramString); // Convert string which represents three double values and a unit to // G4ThreeVector. Values are NOT converted to the Geant4 internal unit // but just as the given string. - G4double GetNewUnitValue(G4String paramString); + G4double GetNewUnitValue(const char* paramString); // Convert the unit string to the value of the unit. "paramString" // must contain three double values AND a unit string. G4String ConvertToString(G4ThreeVector vec,const char * unitName); diff --git a/source/intercoms/include/G4UIcmdWithABool.hh b/source/intercoms/include/G4UIcmdWithABool.hh index b180029cbc..b996e87712 100644 --- a/source/intercoms/include/G4UIcmdWithABool.hh +++ b/source/intercoms/include/G4UIcmdWithABool.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithABool.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithABool.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -47,7 +47,7 @@ class G4UIcmdWithABool : public G4UIcommand (const char * theCommandPath,G4UImessenger * theMessenger); // Constructor. The command string with full path directory // and the pointer to the messenger must be given. - G4bool GetNewBoolValue(G4String paramString); + G4bool GetNewBoolValue(const char* paramString); // Convert string which represents a boolean value to G4bool. G4String ConvertToString(G4bool intValue); // Convert a boolean value to a string. This method must be used by diff --git a/source/intercoms/include/G4UIcmdWithADouble.hh b/source/intercoms/include/G4UIcmdWithADouble.hh index 6ebeeea3ff..516919c0bd 100644 --- a/source/intercoms/include/G4UIcmdWithADouble.hh +++ b/source/intercoms/include/G4UIcmdWithADouble.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithADouble.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithADouble.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -43,7 +43,7 @@ class G4UIcmdWithADouble : public G4UIcommand (const char * theCommandPath,G4UImessenger * theMessenger); // Constructor. The command string with full path directory // and the pointer to the messenger must be given. - G4double GetNewDoubleValue(G4String paramString); + G4double GetNewDoubleValue(const char* paramString); // Convert string which represents a double value to a double. G4String ConvertToString(G4double dblValue); // Convert a double value to a string. This method must be used by diff --git a/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh b/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh index aae92f2182..27ed5ae48d 100644 --- a/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh +++ b/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithADoubleAndUnit.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithADoubleAndUnit.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -43,14 +43,14 @@ class G4UIcmdWithADoubleAndUnit : public G4UIcommand (const char * theCommandPath,G4UImessenger * theMessenger); // Constructor. The command string with full path directory // and the pointer to the messenger must be given. - G4double GetNewDoubleValue(G4String paramString); + G4double GetNewDoubleValue(const char* paramString); // Convert string which represents a double value and a unit to // double. Value is converted to the Geant4 internal unit. - G4double GetNewDoubleRawValue(G4String paramString); + G4double GetNewDoubleRawValue(const char* paramString); // Convert string which represents a double value and a unit to // double. Value is NOT converted to the Geant4 internal unit // but just as the given string. - G4double GetNewUnitValue(G4String paramString); + G4double GetNewUnitValue(const char* paramString); // Convert the unit string to the value of the unit. "paramString" // must contain a double value AND a unit string. G4String ConvertToString(G4double dblValue,const char * unitName); diff --git a/source/intercoms/include/G4UIcmdWithAString.hh b/source/intercoms/include/G4UIcmdWithAString.hh index 30d9da13b5..88e2604dc4 100644 --- a/source/intercoms/include/G4UIcmdWithAString.hh +++ b/source/intercoms/include/G4UIcmdWithAString.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithAString.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/intercoms/include/G4UIcmdWithAnInteger.hh b/source/intercoms/include/G4UIcmdWithAnInteger.hh index 868282de28..50f7350b1f 100644 --- a/source/intercoms/include/G4UIcmdWithAnInteger.hh +++ b/source/intercoms/include/G4UIcmdWithAnInteger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithAnInteger.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithAnInteger.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -43,7 +43,7 @@ class G4UIcmdWithAnInteger : public G4UIcommand (const char * theCommandPath,G4UImessenger * theMessenger); // Constructor. The command string with full path directory // and the pointer to the messenger must be given. - G4int GetNewIntValue(G4String paramString); + G4int GetNewIntValue(const char* paramString); // Convert string which represents an integer to an integer. G4String ConvertToString(G4int intValue); // Convert an integer value to a string. This method must be used by diff --git a/source/intercoms/include/G4UIcmdWithoutParameter.hh b/source/intercoms/include/G4UIcmdWithoutParameter.hh index 9b2ada0e36..bd70bec965 100644 --- a/source/intercoms/include/G4UIcmdWithoutParameter.hh +++ b/source/intercoms/include/G4UIcmdWithoutParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithoutParameter.hh,v 1.4 2001/07/11 10:01:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/intercoms/include/G4UIcommand.hh b/source/intercoms/include/G4UIcommand.hh index 4a68f6e820..11e626e856 100644 --- a/source/intercoms/include/G4UIcommand.hh +++ b/source/intercoms/include/G4UIcommand.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcommand.hh,v 1.10 2001/10/16 08:14:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcommand.hh,v 1.11 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -79,9 +79,9 @@ class G4UIcommand virtual void List(); public: - static G4double ValueOf(G4String unitName); - static G4String CategoryOf(G4String unitName); - static G4String UnitsList(G4String unitCategory); + static G4double ValueOf(const char* unitName); + static G4String CategoryOf(const char* unitName); + static G4String UnitsList(const char* unitCategory); private: void G4UIcommandCommonConstructorCode (const char * theCommandPath); @@ -102,15 +102,15 @@ class G4UIcommand // All the C++ syntax of relational operators are allowed for the // range expression. public: - inline const G4String GetRange() const + inline const G4String & GetRange() const { return rangeString; }; inline G4int GetGuidanceEntries() const { return commandGuidance.size(); } - inline const G4String GetGuidanceLine(G4int i) const + inline const G4String & GetGuidanceLine(G4int i) const { return commandGuidance[i]; } - inline const G4String GetCommandPath() const + inline const G4String & GetCommandPath() const { return commandPath; } - inline const G4String GetCommandName() const + inline const G4String & GetCommandName() const { return commandName; } inline G4int GetParameterEntries() const { return parameter.size(); } @@ -147,12 +147,12 @@ class G4UIcommand } protected: - G4int CheckNewValue(G4String newValue); + G4int CheckNewValue(const char* newValue); // --- the following is used by CheckNewValue() -------- private: - G4int TypeCheck(G4String newValue); - G4int RangeCheck(G4String newValue); + G4int TypeCheck(const char* t); + G4int RangeCheck(const char* t); G4int IsInt(const char* str, short maxLength); G4int IsDouble(const char* str); G4int ExpectExponent(const char* str); @@ -172,8 +172,8 @@ class G4UIcommand G4int CompareDouble( G4double arg1, G4int op, G4double arg2); // utility tokenNum Yylex( void ); // returns next token - unsigned IndexOf( G4String ); // returns the index of the var name - unsigned IsParameter( G4String ); // returns 1 or 0 + unsigned IndexOf( const char* ); // returns the index of the var name + unsigned IsParameter( const char* ); // returns 1 or 0 G4int G4UIpGetc( void ); // read one char from rangeBuf G4int G4UIpUngetc( G4int c ); // put back G4int Backslash( G4int c ); diff --git a/source/intercoms/include/G4UIcommandStatus.hh b/source/intercoms/include/G4UIcommandStatus.hh index 0a86e3088d..b3ca7dde8a 100644 --- a/source/intercoms/include/G4UIcommandStatus.hh +++ b/source/intercoms/include/G4UIcommandStatus.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcommandStatus.hh,v 1.4 2001/10/04 23:15:27 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIcommandStatus_h diff --git a/source/intercoms/include/G4UIcommandTree.hh b/source/intercoms/include/G4UIcommandTree.hh index 5d7dbba5d6..b90c811730 100644 --- a/source/intercoms/include/G4UIcommandTree.hh +++ b/source/intercoms/include/G4UIcommandTree.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcommandTree.hh,v 1.12 2001/10/16 08:14:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcommandTree.hh,v 1.13 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIcommandTree_h @@ -43,7 +43,6 @@ class G4UIcommandTree { public: G4UIcommandTree(); - G4UIcommandTree(G4String thePathName); G4UIcommandTree(const char * thePathName); ~G4UIcommandTree(); G4int operator==(const G4UIcommandTree &right) const; @@ -52,15 +51,15 @@ class G4UIcommandTree public: void AddNewCommand(G4UIcommand * newCommand); void RemoveCommand(G4UIcommand * aCommand); - G4UIcommand * FindPath(G4String commandPath); + G4UIcommand * FindPath(const char* commandPath); void List(); void ListCurrent(); void ListCurrentWithNum(); void CreateHTML(); private: - G4String CreateFileName(G4String pName); - G4String ModStr(G4String str); + G4String CreateFileName(const char* pName); + G4String ModStr(const char* strS); G4std::vector command; G4std::vector tree; @@ -78,8 +77,9 @@ class G4UIcommandTree { return command.size(); }; inline G4UIcommandTree * GetTree(G4int i) { return tree[i-1]; }; - inline G4UIcommandTree * GetTree(G4String comName) + inline G4UIcommandTree * GetTree(const char* comNameC) { + G4String comName = comNameC; for( size_t i=0; i < tree.size(); i++) { if( comName == tree[i]->GetPathName() ) diff --git a/source/intercoms/include/G4UIcontrolMessenger.hh b/source/intercoms/include/G4UIcontrolMessenger.hh index e29c6ce9d0..6f080703d2 100644 --- a/source/intercoms/include/G4UIcontrolMessenger.hh +++ b/source/intercoms/include/G4UIcontrolMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcontrolMessenger.hh,v 1.9 2001/10/11 01:37:58 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcontrolMessenger.hh,v 1.10 2002/05/15 06:51:31 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIcontrolMessenger_h @@ -54,6 +54,7 @@ class G4UIcommand; // /control/shell // /control/manual // /control/createHTML +// /control/maximumStoredHistory class G4UIcontrolMessenger : public G4UImessenger { @@ -78,6 +79,7 @@ class G4UIcontrolMessenger : public G4UImessenger G4UIcommand * foreachCommand; G4UIcmdWithAString * ManualCommand; G4UIcmdWithAString * HTMLCommand; + G4UIcmdWithAnInteger * maxStoredHistCommand; }; #endif diff --git a/source/intercoms/include/G4UIdirectory.hh b/source/intercoms/include/G4UIdirectory.hh index 119351d869..b15575d0b4 100644 --- a/source/intercoms/include/G4UIdirectory.hh +++ b/source/intercoms/include/G4UIdirectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIdirectory.hh,v 1.4 2001/07/11 10:01:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/intercoms/include/G4UImanager.hh b/source/intercoms/include/G4UImanager.hh index 6c8cc8ac03..8e258d5e72 100644 --- a/source/intercoms/include/G4UImanager.hh +++ b/source/intercoms/include/G4UImanager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UImanager.hh,v 1.16 2001/10/16 08:14:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UImanager.hh,v 1.19 2002/05/14 01:40:10 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UImanager_h @@ -77,20 +77,17 @@ class G4UImanager : public G4VStateDependent // This command remove the registered command. After invokation of this // command, that particular command cannot be applied. void ExecuteMacroFile(const char * fileName); - void ExecuteMacroFile(G4String fileName); // A macro file defined by the argument will be read by G4UIbatch object. void Loop(const char * macroFile,const char * variableName, G4double initialValue,G4double finalValue,G4double stepSize=1.0); - void Loop(G4String macroFile,G4String variableName, - G4double initialValue,G4double finalValue,G4double stepSize=1.0); // Execute a macro file more than once with a loop counter. - void Foreach(const char * macroFile,const char * variableName,const char * candidates); - void Foreach(G4String macroFile,G4String variableName,G4String candidates); + void Foreach(const char * macroFile,const char * variableName, + const char * candidates); // Execute a macro file more than once with an aliased variable which takes // a value in the candidate list. G4int ApplyCommand(const char * aCommand); G4int ApplyCommand(G4String aCommand); - // These two methods are identical. A command (and parameter(s)) given + // A command (and parameter(s)) given // by the method's argument will be applied. Zero will be returned in // case the command is successfully executed. Positive non-zero value // will be returned if the command couldn't be executed. The meaning of @@ -98,48 +95,45 @@ class G4UImanager : public G4VStateDependent // The returned number : xyy // x00 : G4CommandStatus.hh enumeration // yy : the problematic parameter (first found) - void StoreHistory(G4String fileName="G4history.macro"); + void StoreHistory(const char* fileName = "G4history.macro"); void StoreHistory(G4bool historySwitch, - G4String fileName="G4history.macro"); + const char* fileName = "G4history.macro"); // The executed commands will be stored in the defined file. If // "historySwitch" is false, saving will be suspended. - void ListCommands(G4String direc); + void ListCommands(const char* direc); // All commands registored under the given directory will be listed to // G4cout. void SetAlias(const char * aliasLine); - void SetAlias(G4String aliasLine); // Define an alias. The first word of "aliasLine" string is the // alias name and the remaining word(s) is(are) string value // to be aliased. void RemoveAlias(const char * aliasName); - void RemoveAlias(G4String aliasName); // Remove the defined alias. void ListAlias(); // Print all aliases. - G4String SolveAlias(G4String aCmd); + G4String SolveAlias(const char* aCmd); // Convert a command string which contains alias(es). void CreateHTML(const char* dir = "/"); // Generate HTML files for defined UI commands public: - void LoopS(G4String valueList); - void ForeachS(G4String valueList); + void LoopS(const char* valueList); + void ForeachS(const char* valueList); // These methods are used by G4UIcontrolMessenger to use Loop() and Foreach() methods. virtual G4bool Notify(G4ApplicationState requestedState); // This method is exclusively invoked by G4StateManager and the user // must not use this method. private: - void PauseSession(G4String msg); + void PauseSession(const char* msg); void CreateMessenger(); G4UIcommandTree* FindDirectory(const char* dirName); - public: + //public: // following three methods will be removed quite soon. - void Interact(); - void Interact(const char * promptCharacters); - void Interact(G4String promptCharacters); + // void Interact(); + // void Interact(const char * promptCharacters); private: static G4UImanager * fUImanager; @@ -155,7 +149,7 @@ class G4UImanager : public G4VStateDependent G4bool saveHistory; G4std::vector histVec; G4UIaliasList* aliasList; - + G4int maxHistSize; G4bool pauseAtBeginOfEvent; G4bool pauseAtEndOfEvent; @@ -224,6 +218,10 @@ class G4UImanager : public G4VStateDependent { st = histVec[i]; } return st; } + inline void SetMaxHistSize(G4int mx) + { maxHistSize = mx; } + inline G4int GetMaxHistSize() const + { return maxHistSize; } // Old methods kept for backward compatibility // inline G4UIcommandTree * GetTree() const diff --git a/source/intercoms/include/G4UImessenger.hh b/source/intercoms/include/G4UImessenger.hh index 4491c41ffd..fa43984593 100644 --- a/source/intercoms/include/G4UImessenger.hh +++ b/source/intercoms/include/G4UImessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UImessenger.hh,v 1.6 2001/10/11 13:29:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UImessenger_h diff --git a/source/intercoms/include/G4UIparameter.hh b/source/intercoms/include/G4UIparameter.hh index 51bd051116..cf27067bfe 100644 --- a/source/intercoms/include/G4UIparameter.hh +++ b/source/intercoms/include/G4UIparameter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIparameter.hh,v 1.5 2001/10/16 08:14:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIparameter.hh,v 1.6 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------------- @@ -66,7 +66,7 @@ class G4UIparameter G4int operator==(const G4UIparameter &right) const; G4int operator!=(const G4UIparameter &right) const; - G4int CheckNewValue(G4String newValue); + G4int CheckNewValue(const char* newValue); void List(); private: @@ -141,9 +141,9 @@ class G4UIparameter private: // --- the following is used by CheckNewValue() ------- - G4int TypeCheck(G4String newValue ); - G4int RangeCheck(G4String newValue ); - G4int CandidateCheck(G4String newValue ); + G4int TypeCheck(const char* newValue ); + G4int RangeCheck(const char* newValue ); + G4int CandidateCheck(const char* newValue ); G4int IsInt(const char* str, short maxDigit); G4int IsDouble(const char* str); G4int ExpectExponent(const char* str); diff --git a/source/intercoms/include/G4UIsession.hh b/source/intercoms/include/G4UIsession.hh index 0ed4a9b27c..2da8620ffc 100644 --- a/source/intercoms/include/G4UIsession.hh +++ b/source/intercoms/include/G4UIsession.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIsession.hh,v 1.4 2001/07/11 10:01:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $id$ diff --git a/source/intercoms/include/G4UItokenNum.hh b/source/intercoms/include/G4UItokenNum.hh index 2e87d744a2..70043b195e 100644 --- a/source/intercoms/include/G4UItokenNum.hh +++ b/source/intercoms/include/G4UItokenNum.hh @@ -22,7 +22,7 @@ // // // $Id: G4UItokenNum.hh,v 1.4 2001/10/16 08:14:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4UItokenNum.hh diff --git a/source/intercoms/include/G4UnitsMessenger.hh b/source/intercoms/include/G4UnitsMessenger.hh index 9021aa5b67..c39f3b351a 100644 --- a/source/intercoms/include/G4UnitsMessenger.hh +++ b/source/intercoms/include/G4UnitsMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnitsMessenger.hh,v 1.4 2001/07/11 10:01:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class description // diff --git a/source/intercoms/include/G4VFlavoredParallelWorld.hh b/source/intercoms/include/G4VFlavoredParallelWorld.hh index 7ecb77da70..6a82f0c89d 100644 --- a/source/intercoms/include/G4VFlavoredParallelWorld.hh +++ b/source/intercoms/include/G4VFlavoredParallelWorld.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFlavoredParallelWorld.hh,v 1.3 2001/07/11 10:01:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Abstract interface for GEANT4 Flavored Parallel World. diff --git a/source/intercoms/include/G4VGlobalFastSimulationManager.hh b/source/intercoms/include/G4VGlobalFastSimulationManager.hh index b3e35ff7a7..98ce4d0426 100644 --- a/source/intercoms/include/G4VGlobalFastSimulationManager.hh +++ b/source/intercoms/include/G4VGlobalFastSimulationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGlobalFastSimulationManager.hh,v 1.3 2001/07/11 10:01:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Abstract interface for GEANT4 Global Fast Simulation Manager. diff --git a/source/intercoms/include/G4VGraphicsScene.hh b/source/intercoms/include/G4VGraphicsScene.hh index 24517a1a66..61c4c2a3d3 100644 --- a/source/intercoms/include/G4VGraphicsScene.hh +++ b/source/intercoms/include/G4VGraphicsScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsScene.hh,v 1.8 2001/08/14 18:19:14 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // John Allison 19th July 1996 // // Class Description: diff --git a/source/intercoms/include/G4VVisManager.hh b/source/intercoms/include/G4VVisManager.hh index 0661d7cd44..f9f600864a 100644 --- a/source/intercoms/include/G4VVisManager.hh +++ b/source/intercoms/include/G4VVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VVisManager.hh,v 1.6 2001/08/17 22:49:26 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // John Allison 19/Oct/1996. // // Class Description: diff --git a/source/intercoms/src/G4UIaliasList.cc b/source/intercoms/src/G4UIaliasList.cc index a7596ecf8a..77f579bbad 100644 --- a/source/intercoms/src/G4UIaliasList.cc +++ b/source/intercoms/src/G4UIaliasList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIaliasList.cc,v 1.4 2001/10/16 08:14:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIaliasList.cc,v 1.5 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UIaliasList.hh" @@ -50,7 +50,7 @@ G4int G4UIaliasList::operator!=(const G4UIaliasList &right) const return ( this != &right ); } -void G4UIaliasList::AddNewAlias(G4String aliasName, G4String aliasValue) +void G4UIaliasList::AddNewAlias(const char* aliasName, const char* aliasValue) { if(FindAlias(aliasName)) { @@ -64,7 +64,7 @@ void G4UIaliasList::AddNewAlias(G4String aliasName, G4String aliasValue) value.push_back(newValue); } -void G4UIaliasList::RemoveAlias(G4String aliasName) +void G4UIaliasList::RemoveAlias(const char* aliasName) { G4int i = FindAliasID(aliasName); if(i<0) @@ -77,7 +77,7 @@ void G4UIaliasList::RemoveAlias(G4String aliasName) value.erase(value.begin()+i); } -void G4UIaliasList::ChangeAlias(G4String aliasName, G4String aliasValue) +void G4UIaliasList::ChangeAlias(const char* aliasName, const char* aliasValue) { G4int i = FindAliasID(aliasName); if(i<0) @@ -88,7 +88,7 @@ void G4UIaliasList::ChangeAlias(G4String aliasName, G4String aliasValue) *(value[i]) = aliasValue; } -G4String* G4UIaliasList::FindAlias(G4String aliasName) +G4String* G4UIaliasList::FindAlias(const char* aliasName) { G4int i = FindAliasID(aliasName); if(i<0) @@ -96,7 +96,7 @@ G4String* G4UIaliasList::FindAlias(G4String aliasName) return value[i]; } -G4int G4UIaliasList::FindAliasID(G4String aliasName) +G4int G4UIaliasList::FindAliasID(const char* aliasName) { G4int i_entry = alias.size(); for(G4int i=0;iSetSession(this); - macroFile.open((char*)theFileName); + macroFile.open((char*)fileName); if(macroFile.fail()) { G4cerr << "macro file <" << fileName << "> could not open." diff --git a/source/intercoms/src/G4UIcmdWith3Vector.cc b/source/intercoms/src/G4UIcmdWith3Vector.cc index 6b887b157f..0af4418624 100644 --- a/source/intercoms/src/G4UIcmdWith3Vector.cc +++ b/source/intercoms/src/G4UIcmdWith3Vector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWith3Vector.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWith3Vector.cc,v 1.4 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -41,13 +41,12 @@ G4UIcmdWith3Vector::G4UIcmdWith3Vector SetParameter(dblParamZ); } -G4ThreeVector G4UIcmdWith3Vector::GetNew3VectorValue(G4String paramString) +G4ThreeVector G4UIcmdWith3Vector::GetNew3VectorValue(const char* paramString) { G4double vx; G4double vy; G4double vz; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vx >> vy >> vz; return G4ThreeVector(vx,vy,vz); } diff --git a/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc b/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc index 5b3c7d3452..a52f072b96 100644 --- a/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc +++ b/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWith3VectorAndUnit.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWith3VectorAndUnit.cc,v 1.4 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -44,40 +44,37 @@ G4UIcmdWith3VectorAndUnit::G4UIcmdWith3VectorAndUnit untParam->SetParameterName("Unit"); } -G4ThreeVector G4UIcmdWith3VectorAndUnit::GetNew3VectorValue(G4String paramString) +G4ThreeVector G4UIcmdWith3VectorAndUnit::GetNew3VectorValue(const char* paramString) { G4double vx; G4double vy; G4double vz; char unts[30]; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vx >> vy >> vz >> unts; G4String unt = unts; G4double uv = ValueOf(unt); return G4ThreeVector(vx*uv,vy*uv,vz*uv); } -G4ThreeVector G4UIcmdWith3VectorAndUnit::GetNew3VectorRawValue(G4String paramString) +G4ThreeVector G4UIcmdWith3VectorAndUnit::GetNew3VectorRawValue(const char* paramString) { G4double vx; G4double vy; G4double vz; char unts[30]; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vx >> vy >> vz >> unts; return G4ThreeVector(vx,vy,vz); } -G4double G4UIcmdWith3VectorAndUnit::GetNewUnitValue(G4String paramString) +G4double G4UIcmdWith3VectorAndUnit::GetNewUnitValue(const char* paramString) { G4double vx; G4double vy; G4double vz; char unts[30]; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vx >> vy >> vz >> unts; G4String unt = unts; return ValueOf(unt); diff --git a/source/intercoms/src/G4UIcmdWithABool.cc b/source/intercoms/src/G4UIcmdWithABool.cc index 2da93607b1..30ff0027be 100644 --- a/source/intercoms/src/G4UIcmdWithABool.cc +++ b/source/intercoms/src/G4UIcmdWithABool.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithABool.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithABool.cc,v 1.4 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -37,7 +37,7 @@ G4UIcmdWithABool::G4UIcmdWithABool SetParameter(blParam); } -G4bool G4UIcmdWithABool::GetNewBoolValue(G4String paramString) +G4bool G4UIcmdWithABool::GetNewBoolValue(const char* paramString) { G4String v = paramString; v.toUpper(); diff --git a/source/intercoms/src/G4UIcmdWithADouble.cc b/source/intercoms/src/G4UIcmdWithADouble.cc index 13d4074f64..0def9c6dc1 100644 --- a/source/intercoms/src/G4UIcmdWithADouble.cc +++ b/source/intercoms/src/G4UIcmdWithADouble.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithADouble.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithADouble.cc,v 1.4 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -37,11 +37,10 @@ G4UIcmdWithADouble::G4UIcmdWithADouble SetParameter(dblParam); } -G4double G4UIcmdWithADouble::GetNewDoubleValue(G4String paramString) +G4double G4UIcmdWithADouble::GetNewDoubleValue(const char* paramString) { G4double vl; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vl; return vl; } diff --git a/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc b/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc index 7dbd0ee057..77d09f42f2 100644 --- a/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc +++ b/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithADoubleAndUnit.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithADoubleAndUnit.cc,v 1.4 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -40,38 +40,35 @@ G4UIcmdWithADoubleAndUnit::G4UIcmdWithADoubleAndUnit untParam->SetParameterName("Unit"); } -G4double G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(G4String paramString) +G4double G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(const char* paramString) { G4double vl; char unts[30]; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vl >> unts; G4String unt = unts; return (vl*ValueOf(unt)); } -G4double G4UIcmdWithADoubleAndUnit::GetNewDoubleRawValue(G4String paramString) +G4double G4UIcmdWithADoubleAndUnit::GetNewDoubleRawValue(const char* paramString) { G4double vl; char unts[30]; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vl >> unts; return vl; } -G4double G4UIcmdWithADoubleAndUnit::GetNewUnitValue(G4String paramString) +G4double G4UIcmdWithADoubleAndUnit::GetNewUnitValue(const char* paramString) { G4double vl; char unts[30]; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vl >> unts; G4String unt = unts; diff --git a/source/intercoms/src/G4UIcmdWithAString.cc b/source/intercoms/src/G4UIcmdWithAString.cc index 071a4ad5fc..e2935c97bb 100644 --- a/source/intercoms/src/G4UIcmdWithAString.cc +++ b/source/intercoms/src/G4UIcmdWithAString.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithAString.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/intercoms/src/G4UIcmdWithAnInteger.cc b/source/intercoms/src/G4UIcmdWithAnInteger.cc index 321854c56e..58627385e4 100644 --- a/source/intercoms/src/G4UIcmdWithAnInteger.cc +++ b/source/intercoms/src/G4UIcmdWithAnInteger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithAnInteger.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcmdWithAnInteger.cc,v 1.4 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -37,11 +37,10 @@ G4UIcmdWithAnInteger::G4UIcmdWithAnInteger SetParameter(intParam); } -G4int G4UIcmdWithAnInteger::GetNewIntValue(G4String paramString) +G4int G4UIcmdWithAnInteger::GetNewIntValue(const char* paramString) { G4int vl; - const char* t = paramString; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)paramString); is >> vl; return vl; } diff --git a/source/intercoms/src/G4UIcmdWithoutParameter.cc b/source/intercoms/src/G4UIcmdWithoutParameter.cc index 44f82cc72b..a907ca64d6 100644 --- a/source/intercoms/src/G4UIcmdWithoutParameter.cc +++ b/source/intercoms/src/G4UIcmdWithoutParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithoutParameter.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/intercoms/src/G4UIcommand.cc b/source/intercoms/src/G4UIcommand.cc index da4cf7ab88..5d592f80c3 100644 --- a/source/intercoms/src/G4UIcommand.cc +++ b/source/intercoms/src/G4UIcommand.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcommand.cc,v 1.18 2001/10/23 07:51:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcommand.cc,v 1.19 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -279,19 +279,19 @@ G4bool G4UIcommand::IsAvailable() return av; } -G4double G4UIcommand::ValueOf(G4String unitName) +G4double G4UIcommand::ValueOf(const char* unitName) { G4double value = 0.; value = G4UnitDefinition::GetValueOf(unitName); return value; } -G4String G4UIcommand::CategoryOf(G4String unitName) +G4String G4UIcommand::CategoryOf(const char* unitName) { return G4UnitDefinition::GetCategory(unitName); } -G4String G4UIcommand::UnitsList(G4String unitCategory) +G4String G4UIcommand::UnitsList(const char* unitCategory) { G4String retStr; G4UnitsTable& UTbl = G4UnitDefinition::GetUnitsTable(); @@ -350,7 +350,7 @@ void G4UIcommand::List() //#define DEBUG 1 G4int G4UIcommand:: -CheckNewValue(G4String newValue) +CheckNewValue(const char * newValue) { yystype result; // if( TypeCheck(newValue) == 0 ) return 1; @@ -362,11 +362,10 @@ CheckNewValue(G4String newValue) // ------------------ type check routines ------------------- G4int G4UIcommand:: -TypeCheck(G4String newValues) +TypeCheck(const char * t) { G4String aNewValue; char type; - const char* t = newValues; G4std::istrstream is((char*)t); for (unsigned i=0; i< parameter.size(); i++) { is >> aNewValue; @@ -497,11 +496,10 @@ IsDouble(const char* buf) // ------------------ range Check routines ------------------- G4int G4UIcommand:: -RangeCheck(G4String newValue) { +RangeCheck(const char* t) { yystype result; char type; bp = 0; // reset buffer pointer for G4UIpGetc() - const char* t = newValue; G4std::istrstream is((char*)t); for (unsigned i=0; i< parameter.size(); i++) { type= toupper(parameter[i]->GetParameterType()); @@ -878,7 +876,7 @@ CompareDouble(G4double arg1, G4int op, G4double arg2) } unsigned G4UIcommand:: -IndexOf( G4String nam) +IndexOf(const char* nam) { unsigned i; G4String pname; @@ -896,7 +894,7 @@ IndexOf( G4String nam) unsigned G4UIcommand:: -IsParameter(G4String nam) +IsParameter(const char* nam) { G4String pname; for(unsigned i=0; i @@ -138,6 +138,10 @@ G4UIcontrolMessenger::G4UIcontrolMessenger() HTMLCommand->SetParameterName("dirPath",true); HTMLCommand->SetDefaultValue("/"); + maxStoredHistCommand = new G4UIcmdWithAnInteger("/control/maximumStoredHistory",this); + maxStoredHistCommand->SetGuidance("Set maximum number of stored UI commands."); + maxStoredHistCommand->SetParameterName("max",true); + maxStoredHistCommand->SetDefaultValue(20); } G4UIcontrolMessenger::~G4UIcontrolMessenger() @@ -155,6 +159,7 @@ G4UIcontrolMessenger::~G4UIcontrolMessenger() delete loopCommand; delete foreachCommand; delete HTMLCommand; + delete maxStoredHistCommand; delete controlDirectory; } @@ -214,6 +219,10 @@ void G4UIcontrolMessenger::SetNewValue(G4UIcommand * command,G4String newValue) { UI->CreateHTML(newValue); } + if(command==maxStoredHistCommand) + { + UI->SetMaxHistSize(maxStoredHistCommand->GetNewIntValue(newValue)); + } } @@ -230,6 +239,10 @@ G4String G4UIcontrolMessenger::GetCurrentValue(G4UIcommand * command) { currentValue = suppressAbortionCommand->ConvertToString(G4StateManager::GetStateManager()->GetSuppressAbortion()); } + if(command==maxStoredHistCommand) + { + currentValue = maxStoredHistCommand->ConvertToString(UI->GetMaxHistSize()); + } return currentValue; } diff --git a/source/intercoms/src/G4UIdirectory.cc b/source/intercoms/src/G4UIdirectory.cc index 795c4bcba1..e8ef889839 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/intercoms/src/G4UImanager.cc b/source/intercoms/src/G4UImanager.cc index 146a219d72..8be60105a3 100644 --- a/source/intercoms/src/G4UImanager.cc +++ b/source/intercoms/src/G4UImanager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UImanager.cc,v 1.20 2001/11/24 18:37:11 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UImanager.cc,v 1.26 2002/05/15 06:51:32 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------------- @@ -73,6 +73,7 @@ G4UImanager::G4UImanager() SetCoutDestination(session); pauseAtBeginOfEvent = false; pauseAtEndOfEvent = false; + maxHistSize = 20; } void G4UImanager::CreateMessenger() @@ -211,12 +212,6 @@ void G4UImanager::RemoveCommand(G4UIcommand * aCommand) } void G4UImanager::ExecuteMacroFile(const char * fileName) -{ - G4String fn = fileName; - ExecuteMacroFile(fn); -} - -void G4UImanager::ExecuteMacroFile(G4String fileName) { G4UIsession* batchSession = new G4UIbatch(fileName,session); session = batchSession; @@ -225,9 +220,10 @@ void G4UImanager::ExecuteMacroFile(G4String fileName) session = previousSession; } -void G4UImanager::LoopS(G4String valueList) +void G4UImanager::LoopS(const char* valueList) { - G4Tokenizer parameterToken( valueList ); + G4String vl = valueList; + G4Tokenizer parameterToken(vl); G4String mf = parameterToken(); G4String vn = parameterToken(); G4String c1 = parameterToken(); @@ -246,14 +242,6 @@ void G4UImanager::LoopS(G4String valueList) void G4UImanager::Loop(const char * macroFile,const char * variableName, G4double initialValue,G4double finalValue,G4double stepSize) -{ - G4String mf = macroFile; - G4String vn = variableName; - Loop(mf,vn,initialValue,finalValue,stepSize); -} - -void G4UImanager::Loop(G4String macroFile,G4String variableName, - G4double initialValue,G4double finalValue,G4double stepSize) { G4String cd; for(G4double d=initialValue;d<=finalValue;d+=stepSize) @@ -267,9 +255,10 @@ void G4UImanager::Loop(G4String macroFile,G4String variableName, Foreach(macroFile,variableName,cd); } -void G4UImanager::ForeachS(G4String valueList) +void G4UImanager::ForeachS(const char* valueList) { - G4Tokenizer parameterToken( valueList ); + G4String vl = valueList; + G4Tokenizer parameterToken(vl); G4String mf = parameterToken(); G4String vn = parameterToken(); G4String c1 = parameterToken(); @@ -285,31 +274,21 @@ void G4UImanager::ForeachS(G4String valueList) void G4UImanager::Foreach(const char * macroFile,const char * variableName, const char * candidates) { - G4String mf = macroFile; - G4String vn = variableName; - G4String cd = candidates; - Foreach(mf,vn,cd); -} - -void G4UImanager::Foreach(G4String macroFile,G4String variableName,G4String candidates) -{ - G4Tokenizer parameterToken( candidates ); + G4String candidatesString = candidates; + G4Tokenizer parameterToken( candidatesString ); G4String cd; while(!((cd=parameterToken()).isNull())) { - SetAlias(variableName+" "+cd); + G4String vl = variableName; + vl += " "; + vl += cd; + SetAlias(vl); ExecuteMacroFile(macroFile); } } -G4int G4UImanager::ApplyCommand(const char * aCommand) -{ - G4String theCommand = aCommand; - return ApplyCommand(theCommand); -} - -G4String G4UImanager::SolveAlias(G4String aCmd) +G4String G4UImanager::SolveAlias(const char* aCmd) { G4String aCommand = aCmd; G4int ia = aCommand.index("{"); @@ -356,11 +335,15 @@ G4String G4UImanager::SolveAlias(G4String aCmd) return aCommand; } -G4int G4UImanager::ApplyCommand(G4String aCommand) +G4int G4UImanager::ApplyCommand(G4String aCmd) { - G4String aCmd = SolveAlias(aCommand); - if(aCmd.isNull()) return fAliasNotFound; - aCommand = aCmd; + return ApplyCommand(aCmd.data()); +} + +G4int G4UImanager::ApplyCommand(const char * aCmd) +{ + G4String aCommand = SolveAlias(aCmd); + if(aCommand.isNull()) return fAliasNotFound; if(verboseLevel) G4cout << aCommand << G4endl; G4String commandString; G4String commandParameter; @@ -407,21 +390,22 @@ G4int G4UImanager::ApplyCommand(G4String aCommand) { return fIllegalApplicationState; } if(saveHistory) historyFile << aCommand << G4endl; + if( G4int(histVec.size()) >= maxHistSize ) + { histVec.erase(histVec.begin()); } histVec.push_back(aCommand); return targetCommand->DoIt( commandParameter ); } -void G4UImanager::StoreHistory(G4String fileName) +void G4UImanager::StoreHistory(const char* fileName) { StoreHistory(true,fileName); } -void G4UImanager::StoreHistory(G4bool historySwitch,G4String fileName) +void G4UImanager::StoreHistory(G4bool historySwitch,const char* fileName) { if(historySwitch) { if(saveHistory) { historyFile.close(); } - const char* theFileName = fileName; - historyFile.open((char*)theFileName); + historyFile.open((char*)fileName); saveHistory = true; } else @@ -432,12 +416,12 @@ void G4UImanager::StoreHistory(G4bool historySwitch,G4String fileName) saveHistory = historySwitch; } -void G4UImanager::PauseSession(G4String msg) +void G4UImanager::PauseSession(const char* msg) { if(session) session->PauseSessionStart(msg); } -void G4UImanager::ListCommands(G4String direct) +void G4UImanager::ListCommands(const char* direct) { G4UIcommandTree* comTree = FindDirectory(direct); if(comTree) @@ -459,7 +443,8 @@ G4UIcommandTree* G4UImanager::FindDirectory(const char* dirName) while( idx < G4int(targetDir.length())-1 ) { G4int i = targetDir.index("/",idx); - comTree = comTree->GetTree(targetDir(0,i+1)); + G4String targetDirString = targetDir(0,i+1); + comTree = comTree->GetTree(targetDirString); if( comTree == NULL ) { return NULL; } idx = i+1; @@ -485,27 +470,21 @@ G4bool G4UImanager::Notify(G4ApplicationState requestedState) return true; } -void G4UImanager::Interact() -{ - Interact(G4String("G4> ")); -} +//void G4UImanager::Interact() +//{ +// Interact(G4String("G4> ")); +//} -void G4UImanager::Interact(const char * pC) -{ - G4String cc = pC; - Interact(cc); -} - -void G4UImanager::Interact(G4String pC) -{ - G4cerr << "G4UImanager::Interact() is out of date and is not used anymore." << G4endl; - G4cerr << "This method will be removed shortly!!!" << G4endl; - G4cerr << "In case of main() use" << G4endl; - G4cerr << " G4UIsession * session = new G4UIterminal;" << G4endl; - G4cerr << " session->SessionStart();" << G4endl; - G4cerr << "In other cases use" << G4endl; - G4cerr << " G4StateManager::GetStateManager()->Pause();" << G4endl; -} +//void G4UImanager::Interact(const char * pC) +//{ +// G4cerr << "G4UImanager::Interact() is out of date and is not used anymore." << G4endl; +// G4cerr << "This method will be removed shortly!!!" << G4endl; +// G4cerr << "In case of main() use" << G4endl; +// G4cerr << " G4UIsession * session = new G4UIterminal;" << G4endl; +// G4cerr << " session->SessionStart();" << G4endl; +// G4cerr << "In other cases use" << G4endl; +// G4cerr << " G4StateManager::GetStateManager()->Pause();" << G4endl; +//} @@ -517,15 +496,10 @@ void G4UImanager::SetCoutDestination(G4UIsession *const value) void G4UImanager::SetAlias(const char * aliasLine) { - G4String aL = aliasLine; - SetAlias(aL); -} - -void G4UImanager::SetAlias(G4String aliasLine) -{ - G4int i = aliasLine.index(" "); - G4String aliasName = aliasLine(0,i); - G4String aliasValue = aliasLine(i+1,aliasLine.length()-(i+1)); + G4String aLine = aliasLine; + G4int i = aLine.index(" "); + G4String aliasName = aLine(0,i); + G4String aliasValue = aLine(i+1,aLine.length()-(i+1)); if(aliasValue(0)=='"') { G4String strippedValue; @@ -542,12 +516,7 @@ void G4UImanager::SetAlias(G4String aliasLine) void G4UImanager::RemoveAlias(const char * aliasName) { G4String aL = aliasName; - RemoveAlias(aL); -} - -void G4UImanager::RemoveAlias(G4String aliasName) -{ - G4String targetAlias = aliasName.strip(G4String::both); + G4String targetAlias = aL.strip(G4String::both); aliasList->RemoveAlias(targetAlias); } diff --git a/source/intercoms/src/G4UImessenger.cc b/source/intercoms/src/G4UImessenger.cc index 773125b215..1995331454 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UImessenger.hh" diff --git a/source/intercoms/src/G4UIparameter.cc b/source/intercoms/src/G4UIparameter.cc index 3dbff3ec8d..04c1ea958d 100644 --- a/source/intercoms/src/G4UIparameter.cc +++ b/source/intercoms/src/G4UIparameter.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIparameter.cc,v 1.10 2001/10/23 07:51:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIparameter.cc,v 1.11 2002/04/26 22:03:35 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UIparameter.hh" @@ -131,7 +131,7 @@ void G4UIparameter::SetDefaultValue(G4double theDefaultValue) //#define DEBUG 1 G4int G4UIparameter:: -CheckNewValue( G4String newValue ) { +CheckNewValue(const char* newValue ) { if( TypeCheck(newValue) == 0) return fParameterUnreadable; if( ! parameterRange.isNull() ) { if( RangeCheck(newValue) == 0 ) return fParameterOutOfRange; } @@ -141,7 +141,7 @@ CheckNewValue( G4String newValue ) { } G4int G4UIparameter:: -CandidateCheck(G4String newValue) { +CandidateCheck(const char* newValue) { G4Tokenizer candidateTokenizer(parameterCandidate); G4String aToken; G4int iToken = 0; @@ -155,11 +155,10 @@ CandidateCheck(G4String newValue) { } G4int G4UIparameter:: -RangeCheck(G4String newValue) { +RangeCheck(const char* newValue) { yystype result; bp = 0; // reset buffer pointer for G4UIpGetc() - const char* t = newValue; - G4std::istrstream is((char*)t); + G4std::istrstream is((char*)newValue); char type = toupper( parameterType ); switch (type) { case 'D': { is >> newVal.D; } break; @@ -181,30 +180,31 @@ RangeCheck(G4String newValue) { G4int G4UIparameter:: -TypeCheck(G4String newValue) +TypeCheck(const char* newValue) { + G4String newValueString(newValue); char type = toupper( parameterType ); switch(type) { case 'D': - if( IsDouble(newValue.data())== 0) { + if( IsDouble(newValueString.data())== 0) { G4cerr< +#include +#include +//#include +#include +#include + +#include "g4std/iostream" +#include "g4std/fstream" +#include "globals.hh" +#include "G4UImanager.hh" +#include "G4VBasicShell.hh" + +#define SOCK_NAME "/tmp/socket" +#define DEFAULT_PORT 40000; + +enum UImode { terminal_mode , java_mode, tcl_mode }; +enum ChangeOfTree { notChanged=0, added, deleted, addedAndDeleted }; + +// class description: +// +// This class is similar to G4UIGAG. +// While G4UIGAG provides direct connection to GAG via pipe, +// G4UIGainServer provides socket connection to remote Gain client. +// Gain = Geant4 adaptive interface for network +// Its usage is same as G4UIGAG, except that Geant4 application waits +// a connection from a Gain client. + +class G4UIGainServer : public G4VBasicShell { +private: + G4String prefix; + G4String promptCharacter; + G4UImanager* UI; + UImode uiMode; + G4String JVersion; + G4String TVersion; + + // shell + // G4VUIshell* shell; + + // program states + G4bool iExit; + G4bool iCont; + + // need for socket + int socketD[3]; + int port; + struct sockaddr_in saddr; + struct sockaddr_in caddr; + int len; + int ret; + char buf[1024]; + + // --- the following are used by Notify*Update() and *Updated() + void GetNewTreeStructure( G4UIcommandTree*,int recursiveLevel); + void GetNewTreeValues( G4UIcommandTree*,int recursiveLevel); + + G4std::vector previousTreeCommands; + G4std::vector newTreeCommands; + G4std::vector previousTreeParams; + G4std::vector newTreeParams; + G4std::vector previousTreePCP; + G4std::vector newTreePCP; + +public: + // These methods are implementation of corresponding virtual methods + // of G4UIsession class. + + // A GainServer session "gainSession" is instantiated. + // G4cout stream is redirected by default to the constructed instance. + // Usage: G4UIsession * gainSession = new G4UIGainServer(); + // "gainSession" is started. + // Usage: gainSession->SessionStart(); + // "gainSession" is deleted. + // Usage: delete gainSession; + // + + + G4UIsession* SessionStart(); + void PauseSessionStart(G4String msg); + G4int ReceiveG4cout(G4String coutString); + G4int ReceiveG4cerr(G4String cerrString); + + + +public: + // G4UIGainServer(G4VUIshell* aShell=0); + G4UIGainServer(); + //G4UIGainServer(void){} + ~G4UIGainServer(); + //~G4UIGainServer(void){} + + // void SetPrompt(const G4String& prompt); + void SessionTerminate(); + void Prompt(G4String); + G4String GetCommand(); + +private: + void ExecuteCommand(G4String aCommand); + G4bool GetHelpChoice(G4int& aInt); + void ExitHelp(); + bool SetUPServer(); + void WaitingConnection(); + void CloseConnection(); + + void ChangeDirectory(G4String); + void ListDirectory(G4String); + void TerminalHelp(G4String); + G4String ModifyPrefix(G4String); + G4UIcommandTree * FindDirPath(G4String); + void ShowCurrent(G4String); + G4String GetFullPath(G4String); + + void SendCommandProperties(G4UIcommandTree *); + void SendParameterProperties(G4UIcommandTree *); + void SendAParamProperty(G4UIcommand *); + void SendATclParamProperty(G4UIcommand *); + void CodeGenJavaTree(G4UIcommandTree *,int recursiveLevel); + void CodeGenJavaParams(G4UIcommandTree *,int recursiveLevel); + void CodeGenTclTree(G4UIcommandTree *, int recursiveLevel); + void CodeGenTclParams(G4UIcommandTree *, int recursiveLevel); + void SendDisableList(G4UIcommandTree *, int recursiveLevel); + + void NotifyStateChange(void); + void NotifyCommandUpdate(void); + void NotifyParameterUpdate(G4UIcommand *); + + int CommandUpdated(void); + void UpdateState(void); + void UpdateParamVal(void); // if param is updated, + // call NotifyParameterUpdate() + + +}; + +#endif + +#endif + + diff --git a/source/interfaces/GAG/src/G4UIGAG.cc b/source/interfaces/GAG/src/G4UIGAG.cc index 8f93d0050d..fb085813b4 100644 --- a/source/interfaces/GAG/src/G4UIGAG.cc +++ b/source/interfaces/GAG/src/G4UIGAG.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIGAG.cc,v 1.13 2001/11/29 06:04:45 yhajime Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIGAG.cc,v 1.14 2002/04/26 21:28:25 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4UIGAG.cc // 18.Feb.98 M.Nagamatu and T.Kodama created G4UIGAG from G4UIterminal @@ -438,7 +438,7 @@ void G4UIGAG::TerminalHelp(G4String newCommand) { int ii = prefix.index("/",prefixIndex); floor[iFloor+1] = - floor[iFloor]->GetTree(prefix(0,ii+1)); + floor[iFloor]->GetTree(G4String(prefix(0,ii+1))); prefixIndex = ii+1; iFloor++; } @@ -521,7 +521,7 @@ G4UIcommandTree * G4UIGAG::FindDirPath(G4String newCommand) while( idx < newCommand.length()-1 ) { int i = newCommand.index("/",idx); - comTree = comTree->GetTree(newCommand(0,i+1)); + comTree = comTree->GetTree(G4String(newCommand(0,i+1))); if( comTree == NULL ) { return NULL; } idx = i+1; diff --git a/source/interfaces/GAG/src/G4UIGainServer.cc b/source/interfaces/GAG/src/G4UIGainServer.cc new file mode 100644 index 0000000000..515ce10a89 --- /dev/null +++ b/source/interfaces/GAG/src/G4UIGainServer.cc @@ -0,0 +1,954 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 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 $ +// +#ifndef WIN32 + +#include "G4UIGainServer.hh" +#include + +#include "g4std/strstream" +#include "G4StateManager.hh" +#include "G4UIcommandTree.hh" +#include "G4UIcommand.hh" +#include "G4UIcommandStatus.hh" + + +////////////////////////////////////////////// +G4UIGainServer::G4UIGainServer() +////////////////////////////////////////////// +{ + TVersion ="T1.0a"; JVersion="J1.0a"; + prefix = "/"; + + port = DEFAULT_PORT; + while(SetUPServer() == false){ + G4cout<<"can't get the port no. "< SetSession(this); + UI-> SetCoutDestination(this); + + G4StateManager* statM = G4StateManager::GetStateManager(); + promptCharacter = statM->GetStateString(statM->GetCurrentState()); + uiMode = terminal_mode; + + iExit= FALSE; + iCont= FALSE; + + G4UIcommandTree* tree = UI->GetTree(); + GetNewTreeStructure(tree,0); + GetNewTreeValues(tree,0); + previousTreeCommands = newTreeCommands; + previousTreeParams = newTreeParams; + previousTreePCP = newTreePCP; + +} + +///////////////////////////// +G4UIGainServer::~G4UIGainServer() +///////////////////////////// +{ + + if(G4UImanager::GetUIpointer()) { + UI-> SetSession(NULL); + UI-> SetCoutDestination(NULL); + } + + if(G4UImanager::GetUIpointer()!=0){ + UI->SetSession(NULL); + UI->SetCoutDestination(NULL); + } +} + + +///////////////////////////////////////// +G4UIsession* G4UIGainServer::SessionStart() +///////////////////////////////////////// +{ + G4String newCommand; + + G4StateManager* statM = G4StateManager::GetStateManager(); + promptCharacter = statM->GetStateString(statM->GetCurrentState()); + + iExit= TRUE; + + WaitingConnection(); + while(iExit){ + newCommand= GetCommand(); + ExecuteCommand(newCommand); + } + return NULL; +} + +////////////////////////////////////////////////// +void G4UIGainServer::PauseSessionStart(G4String msg) +////////////////////////////////////////////////// +{ + promptCharacter = msg; + G4cout<<"@@PROMPT \""<GetTree(); + if(aCommand.length()<2) return; + G4int returnVal = UI->ApplyCommand(aCommand); + G4int paramIndex = returnVal % 100; + // 0 - 98 : paramIndex-th parameter is invalid + // 99 : convination of parameters is invalid + G4int commandStatus = returnVal - paramIndex; + + UpdateState(); + + if(uiMode != terminal_mode){ + switch(commandStatus) { + case fCommandSucceeded: + GetNewTreeStructure(tree,0); + GetNewTreeValues(tree,0); + if(CommandUpdated()){ + NotifyCommandUpdate(); + } else{ + UpdateParamVal(); + } + previousTreeCommands = newTreeCommands; + previousTreeParams = newTreeParams; + previousTreePCP = newTreePCP; + break; + case fCommandNotFound: + G4cerr << "@@ErrResult \" <" << UI->SolveAlias(aCommand) << "> not found.\"" << G4endl; + break; + case fIllegalApplicationState: + G4cerr << "@@ErrResult \"illegal application state -- command refused.\"" << G4endl; + break; + case fParameterOutOfRange: + G4cout << "@@ErrResult \"Parameter Out of Range.\"" << G4endl; + break; + case fParameterUnreadable: + G4cout << "@@ErrResult \"Parameter is wrong type and/or is not omittable.\""<GetTree(); + if ( uiMode != terminal_mode ){ + G4cout << "@@PROMPT \"" << promptCharacter << "\"" << G4endl; + } + if ( uiMode != java_mode ){ + G4cout << promptCharacter << "> " << G4endl; + }else{ + G4cout << "@@Ready" << G4endl; + } + + + ///////////////////////////// + ///////////////////////////// + read(socketD[1],buf,1024); + newCommand=buf; + //DEBUG cout<<"->"<GetNumberOfHistory(); + for(int i=0;iGetPreviousCommand(i) << G4endl; } + } + else if( nC(0) == '!' ) + { + G4String ss = nC(1,nC.length()-1); + G4int vl; + const char* tt = ss; + G4std::istrstream is((char*)tt); + is >> vl; + G4int nh = UI->GetNumberOfHistory(); + if(vl>=0 && vlGetPreviousCommand(vl); + G4cout << newCommand << G4endl; + break; + } + else + { G4cerr << "history " << vl << " is not found." << G4endl; } + } + else if( nC(0,4) == "exit" ) + { + if( iCont ) + { + if ( uiMode == terminal_mode){ + G4cerr << "You are now processing RUN." << G4endl; + G4cerr << "Please abrot it using \"/run/abort\" command first" << G4endl; + G4cerr << " and use \"continue\" command until the application" << G4endl; + G4cerr << " becomes to Idle." << G4endl; + }else{ + G4cout << "@@ErrResult \"You are now processing RUN.\"" << G4endl; + } + } + else + { + close(socketD[1]); + close(socketD[2]); + iExit = false; + newCommand = nullString; + break; + } + } + else if( nC == "cont" || nC == "continue" ) + { + iCont = false; + newCommand = nullString; + break; + } + else + { break; } + } + return GetFullPath(newCommand); +} + +////////////////////////////////////////////////////// +G4int G4UIGainServer::ReceiveG4cout(G4String coutString) +////////////////////////////////////////////////////// +{ + if(socketD[1]>0){ + write(socketD[1],coutString,coutString.length()); + } + return 0; + + + + + + + + //G4std::cout << coutString << G4std::flush; + //return 0; +} + +////////////////////////////////////////////////////// +G4int G4UIGainServer::ReceiveG4cerr(G4String cerrString) +////////////////////////////////////////////////////// +{ + if(socketD[2]>0){ + write(socketD[2],cerrString,cerrString.length()); + } + return 0; + + + + //G4std::cerr << cerrString << G4std::flush; + //return 0; +} + +/////////////////////////////////////////////// +G4bool G4UIGainServer::GetHelpChoice(G4int& aInt) +/////////////////////////////////////////////// +{ + G4cin >> aInt; + if(!G4cin.good()){ + G4cin.clear(); + G4cin.ignore(30,'\n'); + return FALSE; + } + return TRUE; +} + +///////////////////////////// +void G4UIGainServer::ExitHelp() +///////////////////////////// +{ + char temp[100]; + G4cin.getline(temp, 100); +} + +///////////////////////////// +bool G4UIGainServer::SetUPServer(){ +///////////////////////////// + + socketD[0] = socket(AF_INET,SOCK_STREAM,0); + + if(socketD[0]<0){ + perror("server:socket"); + return (false); + //exit(1); + } + + memset( (char *)&saddr,'\0',sizeof(saddr)) ; + + saddr.sin_family = AF_INET; + saddr.sin_addr.s_addr = INADDR_ANY; + saddr.sin_port = htons(port); + unlink(SOCK_NAME); + + if(bind(socketD[0] , (struct sockaddr *)&saddr , sizeof(saddr))<0){ + perror("bind"); + return (false); + //exit(1); + } + else{ G4cout<<"G4GainServer waiting at "<GetCurrentValues(theCommand); + if( ! (curV.isNull()||curV(0)=='\0' ) ) { + if (uiMode == terminal_mode){ + G4cout << "Current value(s) of the parameter(s) : " << curV << G4endl; + }else{ + G4cout << "@@CurrentValue " << curV << G4endl; + } + } else if (uiMode == terminal_mode){ + G4cout << "Current value is not available." << G4endl; + } else { + G4cout << "@@ErrResult \"Current value is not available.\"" << G4endl; + } +} + +////////////////////////////////////////////////// +void G4UIGainServer::ChangeDirectory(G4String newCommand){ +////////////////////////////////////////////////// + G4String savedPrefix = prefix; + if( newCommand.length() <= 3 ) + { prefix = "/"; } + else + { + G4String aNewPrefix = newCommand(3,newCommand.length()-3); + G4String newPrefix = aNewPrefix.strip(G4String::both); + if( newPrefix(0) == '/' ) + { prefix = newPrefix; } + else if( newPrefix(0) != '.' ) + { + prefix += newPrefix; + } + else + { prefix = ModifyPrefix( newPrefix ); } + } + if( prefix( prefix.length() - 1 ) != '/' ) + { prefix += "/"; } + if( FindDirPath( prefix ) == NULL ) + { + G4cout << "Directory <" << prefix << "> is not found." << G4endl; + prefix = savedPrefix; + } +} +//////////////////////////////////////////////// +void G4UIGainServer::ListDirectory(G4String newCommand){ +//////////////////////////////////////////////// + G4String targetDir('\0'); + if( newCommand.length() <= 3 ) + { targetDir = prefix; } + else + { + G4String newPrefix = newCommand(3,newCommand.length()-3); + newPrefix.strip(G4String::both); + if( newPrefix(0) == '/' ) + { targetDir = newPrefix; } + else if( newPrefix(0) != '.' ) + { + targetDir = prefix; + targetDir += newPrefix; + } + else + { targetDir = ModifyPrefix( newPrefix ); } + } + if( targetDir( targetDir.length() - 1 ) != '/' ) + { targetDir += "/"; } + G4UIcommandTree * commandTree = FindDirPath( targetDir ); + if( commandTree == NULL ) + { G4cout << "Directory <" << targetDir << "> is not found." << G4endl; } + else + { commandTree->ListCurrent(); } +} + +/////////////////////////////////////////////// +void G4UIGainServer::TerminalHelp(G4String newCommand){ +/////////////////////////////////////////////// + G4UIcommandTree* treeTop = UI->GetTree(); + unsigned i = newCommand.index(" "); + + if(i!=G4std::string::npos){ + G4String newValue = newCommand(i+1,newCommand.length()-(i+1)); + newValue.strip(G4String::both); + if(newValue(0)!='/'){ + newValue.prepend(prefix); + } + G4UIcommand* theCommand = treeTop->FindPath(newValue); + if(theCommand !=NULL){ + theCommand->List(); + return; + } + else{ + G4cout<<"Command<" << newValue << "is not found."<GetTree(G4String(prefix(0,ii+1))); + prefixIndex = ii+1; + iFloor++; + } + floor[iFloor]->ListCurrentWithNum(); + while(1){ + int i; + G4cout<> i; + if(!G4cin.good()){ + G4cin.clear(); + G4cin.ignore(30,'\n'); + G4cout<ListCurrentWithNum(); continue; + } + else if(i==0){break;} + else if(i>0){ + int n_tree = floor[iFloor]->GetTreeEntry(); + if(i>n_tree){ + if(i<=n_tree+floor[iFloor]->GetCommandEntry()){ + floor[iFloor]->GetCommand(i-n_tree)->List(); + } + } + else{ + floor[iFloor+1] = floor[iFloor]->GetTree(i); + iFloor++; + floor[iFloor]->ListCurrentWithNum(); + } + } + } + G4cout<<"Exit from Help."<GetTree(); + /*int*/ unsigned idx = 1; + while( idx < newCommand.length()-1 ) + { + int i = newCommand.index("/",idx); + comTree = comTree->GetTree(G4String(newCommand(0,i+1))); + if( comTree == NULL ) + { return NULL; } + idx = i+1; + } + return comTree; +} + +//// ----- for JAVA Gain + +////////////////////////////////////////////////////////// +void G4UIGainServer::SendCommandProperties(G4UIcommandTree* tree){ +////////////////////////////////////////////////////////// + if( tree == NULL ) { + G4cerr << "GetTree() returnes null." << G4endl; + return; + } + if (uiMode == java_mode){ + G4cout << "@@JTreeBegin" << G4endl; + CodeGenJavaTree(tree, 0); + G4cout << "@@JTreeEnd" << G4endl; + CodeGenJavaParams(tree, 0); + }else{} +} + +//////////////////////////////////////////////////////////// +void G4UIGainServer::SendParameterProperties(G4UIcommandTree* tree){ +//////////////////////////////////////////////////////////// + if( tree == NULL ) { + G4cerr << "GetTree() returnes null." << G4endl; + return; + } + if (uiMode == java_mode){ + CodeGenJavaParams(tree, 0); + }else{ } +} + +////////////////////////////////////////////////////////////// +void G4UIGainServer::CodeGenJavaTree(G4UIcommandTree* tree,int level){ +////////////////////////////////////////////////////////////// + int treeEntry, commandEntry; + treeEntry = tree->GetTreeEntry(); + commandEntry = tree->GetCommandEntry(); + + if(level!=0) { + for(int i=0; iGetCommand(i+1)->GetCommandPath() << G4endl; + } + } + if(treeEntry == 0) return; //end recursion + + for(int j=0; jGetTree(j+1), level+1); + } +} + +//////////////////////////////////////////////////////////////// +void G4UIGainServer::CodeGenJavaParams(G4UIcommandTree* tree,int level){ +//////////////////////////////////////////////////////////////// + int treeEntry,commandEntry,i; + G4UIcommandTree* treeLink; + + treeEntry = tree->GetTreeEntry(); + commandEntry = tree->GetCommandEntry(); + + for(i=0;iGetCommand(i+1)); + } + if(treeEntry ==0) return; + + for(i=0;iGetTree(i+1); + G4cout<<"@@JDirGuieBegin"<GetPathName()<GetTitle()<GetGuidanceEntries(); + parameterEntry = Comp->GetParameterEntries(); + G4cout << "@@JParamBegin" << G4endl; + G4cout << Comp->GetCommandPath() << G4endl; + G4cout << guidanceEntry << G4endl; + for (int j=0; jGetGuidanceLine(j); + title2 = ""; + if (title != ""){ + for(int i=0; i< (int)title.length(); i++){ + c[0]=title(i); + c[1]= '\0'; + if ( c[0] == '\n' || c[0] == '\r') { + c[0]= ' '; + } + title2.append(c); + } + } + G4cout << title2 << G4endl; + } + G4cout << Comp->GetRange() << G4endl; + G4cout << parameterEntry << G4endl; + for( int par=0; parGetParameter(par); + G4cout << prp->GetParameterName() << G4endl; + G4cout << prp->GetParameterGuidance() << G4endl; + G4cout << prp->GetParameterType() << G4endl; + G4cout << prp->IsOmittable() << G4endl; + G4cout << prp->GetDefaultValue() << G4endl; + G4cout << prp->GetParameterRange() << G4endl; + G4cout << prp->GetParameterCandidates() << G4endl; + } + G4cout << "@@JParamEnd" << G4endl; +} + +////////////////////////////////////////////////////////////// +void G4UIGainServer::SendDisableList(G4UIcommandTree* tree,int level){ +////////////////////////////////////////////////////////////// + int treeEntry, commandEntry; + G4UIcommand * Comp; + treeEntry = tree->GetTreeEntry(); + commandEntry = tree->GetCommandEntry(); + + for(int com=0; comGetCommand(com+1); + if( Comp->IsAvailable()==false ) { + G4cout << Comp->GetCommandPath()<GetTree(i+1), level+1); + // be sure the function name is the same + } +} + + + +//####### update check routines #################################### + +/////////////////////////////// +void G4UIGainServer::UpdateState(void){ +/////////////////////////////// + static G4ApplicationState previousState= PreInit; + G4ApplicationState newState; + G4StateManager *statM = G4StateManager::GetStateManager(); + newState = statM->GetCurrentState(); + if( newState != previousState ) + { + NotifyStateChange(); + previousState = newState; + } +} + +///////////////////////////////////// +void G4UIGainServer::NotifyStateChange(void) +///////////////////////////////////// +{ + G4String stateString; + G4StateManager * statM = G4StateManager::GetStateManager(); + G4UIcommandTree * tree = UI->GetTree(); + stateString = statM->GetStateString(statM->GetCurrentState()); + if ( uiMode != terminal_mode ){ + G4cout << "@@State \"" << stateString << "\"" << G4endl; + G4cout << "@@DisableListBegin"<GetTree(); + SendCommandProperties(tree); +} + +///////////////////////////////////////////////////// +void G4UIGainServer::NotifyParameterUpdate(G4UIcommand* com) +///////////////////////////////////////////////////// +{ + SendAParamProperty(com); +} + +////////////////////////////////// +int G4UIGainServer::CommandUpdated(void){ +////////////////////////////////// + int added=0, deleted=0; + int pEntry= previousTreeCommands.size(); + int nEntry= newTreeCommands.size(); + int i,j; + for( i=0; iGetTreeEntry(); + int commandEntry = tree->GetCommandEntry(); + + if( level==0 ) { newTreeCommands.clear();} + for(int com=0; comGetCommand(com+1)->GetCommandPath(); + title = tree->GetCommand(com+1)->GetTitle(); + newTreeCommands.push_back( commandPath + " " + title ); + } + + if(treeEntry == 0) return; //end recursion + + for(int i=0; i< treeEntry; i++){ + t = tree->GetTree(i+1); + pathName = t->GetPathName(); + title = t->GetTitle(); + newTreeCommands.push_back( pathName + " " + title ); + GetNewTreeStructure(t, level+1); + } +} + +//////////////////////////////////// +void G4UIGainServer::UpdateParamVal(void) { +//////////////////////////////////// + // call NotifyParameterUpdate() if the value of each + // command/parameter is updated. + // assuming the command structure is not changed. + int pEntry= previousTreeParams.size(); + int nEntry= newTreeParams.size(); + int i; + G4UIcommand* Comp; + if (pEntry != nEntry) return; + for( i=0; iGetCommandPath() + << " command is updated." <GetTreeEntry(); + int commandEntry = tree->GetCommandEntry(); + G4UIcommand * Comp; + G4UIparameter * prp; + G4String param, str(" "); + + if( level==0 ) { newTreeParams.clear(); } + for(int com=0; comGetCommand(com+1); + commandPath = Comp->GetCommandPath(); + parameterEntry = Comp->GetParameterEntries(); + param = commandPath +" "; + for( int par=0; par< parameterEntry; par++) { + prp = (G4UIparameter *)Comp->GetParameter(par); + param += prp->GetParameterName() +" "; + str(0) = prp->GetParameterType(); + param += str + " "; + param += prp->GetDefaultValue() +" "; + param += prp->GetParameterRange() +" "; + param += prp->GetParameterCandidates(); + } + newTreeParams.push_back( param + "\n"); + newTreePCP.push_back( Comp ); + } + if( treeEntry == 0 ) return; // end recursion + for( int i=0; i< treeEntry; i++) { + t = tree->GetTree(i+1); + GetNewTreeValues(t, level+1); + } +} + + +#endif + + + + + + + + + + + + diff --git a/source/interfaces/History b/source/interfaces/History index 073b353479..4d4e827573 100644 --- a/source/interfaces/History +++ b/source/interfaces/History @@ -1,4 +1,4 @@ -$Id: History,v 1.49 2001/12/06 16:27:22 johna Exp $ +$Id: History,v 1.54 2002/06/14 09:16:24 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,28 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +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. + +12 June 2002, Gabriele Cosmo (interfaces-V04-00-03) +- Fixes for porting on platforms other than Linux. + o socklen_t is Linux specific and not defined elsewhere; changed to int*. + o Fixed usage g4std/iostream, globals.hh and endl/G4endl. + +12 June 2002, Hajime Yoshida (interfaces-V04-00-02) +- Introduced new class G4UIGainServer, socket extension for G4UIGAG. + +26 April 2002, Makoto Asai (interfaces-V04-00-01) +- Corresponds to interfaces change in intercoms category (intercoms-V04-00-00) + Affected files : + basics/src/G4VUIshell.cc + common/src/G4VBasicShell.cc + GAG/src/G4UIGAG.cc + +25 February 2002, Makoto Asai (interfaces-V04-00-00) +- fix for odd behavior on Windows in G4UIchs.cc + 03 December 2001 Guy Barrand (interfaces-V03-02-04) - G4VInteractorManager::RemoveDispatcher : change the "std::remove" logic in order to fix a disfunctionning with vis/OpenInventor driver. diff --git a/source/interfaces/OPACS/include/G4UIWo.hh b/source/interfaces/OPACS/include/G4UIWo.hh index d879580ac6..58d0d63773 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIWo_h #define G4UIWo_h diff --git a/source/interfaces/OPACS/include/G4WoMessenger.hh b/source/interfaces/OPACS/include/G4WoMessenger.hh index d3742553ac..38c2f62858 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4WoMessenger_h #define G4WoMessenger_h 1 diff --git a/source/interfaces/OPACS/include/G4oCommon.hh b/source/interfaces/OPACS/include/G4oCommon.hh index 0333cb00f3..ee4e2b795c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* Included by G4o.h. diff --git a/source/interfaces/OPACS/include/G4oCommon.icc b/source/interfaces/OPACS/include/G4oCommon.icc index 68d14265bc..68cdcc0c7a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* Included by G4o.cc. diff --git a/source/interfaces/OPACS/src/G4UIWo.cc b/source/interfaces/OPACS/src/G4UIWo.cc index 74998da489..2b1876d7ad 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //G4UIWo.cc -- copied from G4UIterminal.cc diff --git a/source/interfaces/OPACS/src/G4WoMessenger.cc b/source/interfaces/OPACS/src/G4WoMessenger.cc index 47aa9b1a1d..8bf5b6a690 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifdef G4UI_BUILD_WO_SESSION diff --git a/source/interfaces/XVT/include/G4UIxvt.hh b/source/interfaces/XVT/include/G4UIxvt.hh index 06a5fe7597..2513e7ab76 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // XVT driver class header // diff --git a/source/interfaces/XVT/include/G4UIxvtMessenger.hh b/source/interfaces/XVT/include/G4UIxvtMessenger.hh index 9e1bae30f5..f5b313ee40 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ////////////////////////////////////////////////////////////////////////////// // // diff --git a/source/interfaces/XVT/src/G4UIxvt.cc b/source/interfaces/XVT/src/G4UIxvt.cc index c0129a6742..84937af0bc 100644 --- a/source/interfaces/XVT/src/G4UIxvt.cc +++ b/source/interfaces/XVT/src/G4UIxvt.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIxvt.cc,v 1.4 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifdef G4UI_BUILD_XVT_SESSION diff --git a/source/interfaces/XVT/src/G4UIxvtMessenger.cc b/source/interfaces/XVT/src/G4UIxvtMessenger.cc index 306f3f3915..b7faa108fe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifdef G4UI_BUILD_XVT_SESSION diff --git a/source/interfaces/basic/include/G4UIArrayString.hh b/source/interfaces/basic/include/G4UIArrayString.hh index 9b3bac547f..57150cbb23 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIArrayString_h diff --git a/source/interfaces/basic/include/G4UIWin32.hh b/source/interfaces/basic/include/G4UIWin32.hh index 5709a3e112..250ce97b81 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIWin32_h #define G4UIWin32_h diff --git a/source/interfaces/basic/include/G4UIXaw.hh b/source/interfaces/basic/include/G4UIXaw.hh index 801a8dccd1..6d3c1b62ee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIXaw_h #define G4UIXaw_h diff --git a/source/interfaces/basic/include/G4UIXm.hh b/source/interfaces/basic/include/G4UIXm.hh index f7d1b9e011..d02fe3dd52 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIXm_h #define G4UIXm_h diff --git a/source/interfaces/basic/include/G4UIcsh.hh b/source/interfaces/basic/include/G4UIcsh.hh index 580b28f32e..aee0e7fa63 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIcsh_h diff --git a/source/interfaces/basic/include/G4UItcsh.hh b/source/interfaces/basic/include/G4UItcsh.hh index 0e5e40a0c1..ee42c7e7ba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UItcsh_h diff --git a/source/interfaces/basic/include/G4UIterminal.hh b/source/interfaces/basic/include/G4UIterminal.hh index 013597c217..48afafdfdb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UIterminal_h diff --git a/source/interfaces/basic/include/G4VUIshell.hh b/source/interfaces/basic/include/G4VUIshell.hh index 7e6d534e84..19b3794867 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VUIshell_h diff --git a/source/interfaces/basic/src/G4UIArrayString.cc b/source/interfaces/basic/src/G4UIArrayString.cc index ce8b1506b7..4d07de1b24 100644 --- a/source/interfaces/basic/src/G4UIArrayString.cc +++ b/source/interfaces/basic/src/G4UIArrayString.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIArrayString.cc,v 1.5 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/iomanip" diff --git a/source/interfaces/basic/src/G4UIWin32.cc b/source/interfaces/basic/src/G4UIWin32.cc index ccb9edcd0a..4245866d27 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIXaw.cc b/source/interfaces/basic/src/G4UIXaw.cc index 17bad89e74..43c5595837 100644 --- a/source/interfaces/basic/src/G4UIXaw.cc +++ b/source/interfaces/basic/src/G4UIXaw.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIXaw.cc,v 1.4 2001/07/11 10:01:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIXm.cc b/source/interfaces/basic/src/G4UIXm.cc index 854417e650..789756011e 100644 --- a/source/interfaces/basic/src/G4UIXm.cc +++ b/source/interfaces/basic/src/G4UIXm.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIXm.cc,v 1.7 2001/07/11 10:01:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIcsh.cc b/source/interfaces/basic/src/G4UIcsh.cc index 55520185a8..d8c96ea848 100644 --- a/source/interfaces/basic/src/G4UIcsh.cc +++ b/source/interfaces/basic/src/G4UIcsh.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcsh.cc,v 1.5 2001/07/11 10:01:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UIcsh.cc,v 1.6 2002/02/26 02:09:08 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UIcsh.hh" @@ -55,6 +55,7 @@ G4String G4UIcsh::GetCommandLine(const char* msg) newCommand= "exit"; return newCommand; } + newCommand = newCommand.strip(1,'\r'); // fix for odd behavior on Windows // multi-line while( (newCommand.length() > 0) && diff --git a/source/interfaces/basic/src/G4UItcsh.cc b/source/interfaces/basic/src/G4UItcsh.cc index 4871836cca..f5073d5f24 100644 --- a/source/interfaces/basic/src/G4UItcsh.cc +++ b/source/interfaces/basic/src/G4UItcsh.cc @@ -22,7 +22,7 @@ // // // $Id: G4UItcsh.cc,v 1.7 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef WIN32 diff --git a/source/interfaces/basic/src/G4UIterminal.cc b/source/interfaces/basic/src/G4UIterminal.cc index bf11a70dbc..af8f1c8fe9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/strstream" diff --git a/source/interfaces/basic/src/G4VUIshell.cc b/source/interfaces/basic/src/G4VUIshell.cc index 67a2556f04..cc6e7ef8d2 100644 --- a/source/interfaces/basic/src/G4VUIshell.cc +++ b/source/interfaces/basic/src/G4VUIshell.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VUIshell.cc,v 1.6 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VUIshell.cc,v 1.7 2002/04/26 21:28:26 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UImanager.hh" @@ -125,7 +125,7 @@ G4UIcommandTree* G4VUIshell::GetCommandTree(const G4String& input) const G4int jslash= absPath.index("/", indx); // search index begin with "/" if(jslash != G4int(G4String::npos)) { if(cmdTree != NULL) - cmdTree= cmdTree-> GetTree(absPath(0,jslash+1)); + cmdTree= cmdTree-> GetTree(G4String(absPath(0,jslash+1))); } indx= jslash+1; } diff --git a/source/interfaces/common/include/G4VBasicShell.hh b/source/interfaces/common/include/G4VBasicShell.hh index 02ba3f5cc0..1a283fa052 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VBasicShell_H diff --git a/source/interfaces/common/include/G4VInteractorManager.hh b/source/interfaces/common/include/G4VInteractorManager.hh index 847b129d44..b58f51fd47 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G.Barrand diff --git a/source/interfaces/common/include/G4Win32.hh b/source/interfaces/common/include/G4Win32.hh index 840c8b1adc..989ea370d7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a59b67cc3d..c9de1cc91e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 d1f577b6c6..cfa83182b5 100644 --- a/source/interfaces/common/src/G4VBasicShell.cc +++ b/source/interfaces/common/src/G4VBasicShell.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VBasicShell.cc,v 1.8 2001/10/22 08:02:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VBasicShell.cc,v 1.9 2002/04/26 21:28:26 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/vector" @@ -435,7 +435,7 @@ void G4VBasicShell::TerminalHelp(G4String newCommand) { size_t ii = prefix.index("/",prefixIndex); floor[iFloor+1] = - floor[iFloor]->GetTree(prefix(0,ii+1)); + floor[iFloor]->GetTree(G4String(prefix(0,ii+1))); prefixIndex = ii+1; iFloor++; } diff --git a/source/interfaces/common/src/G4VInteractorManager.cc b/source/interfaces/common/src/G4VInteractorManager.cc index 589763cd51..49c1a490fb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G.Barrand diff --git a/source/interfaces/common/src/G4Win32.cc b/source/interfaces/common/src/G4Win32.cc index e7f62141aa..f7c1a2b6fa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G.Barrand diff --git a/source/interfaces/common/src/G4Xt.cc b/source/interfaces/common/src/G4Xt.cc index 4c45031c0a..f690331829 100644 --- a/source/interfaces/common/src/G4Xt.cc +++ b/source/interfaces/common/src/G4Xt.cc @@ -22,7 +22,7 @@ // // // $Id: G4Xt.cc,v 1.8 2001/12/03 08:01:47 barrand Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G.Barrand diff --git a/source/materials/History b/source/materials/History index 5a17a803dd..947f64ae0b 100644 --- a/source/materials/History +++ b/source/materials/History @@ -1,4 +1,4 @@ -$Id: History,v 1.32 2001/11/29 16:33:55 gcosmo Exp $ +$Id: History,v 1.36 2002/05/06 15:37:54 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,24 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +06.05.02 M.Maire - materials-V04-00-03 + Remove the check of the ideal gas state equation + +16.04.02 M.Maire - materials-V04-00-02 + G4StaticSandiaData: bug fixed in Pb: comma after 15.861 + G4Exception put in constructor with chemical formula + +22.02.02 M.Maire - materials-V04-00-01 + fIndexTable renewed in G4Material, G4Element, G4Isotope. + +22.01.02 M.Verderi - materials-V04-00-00 + Fixed G4MaterialPropertyVector::AddElement() which wasn't make use + of G4MPVEntry ordering in the G4std::vector MPV vector. + This happens since the STL migration (while method "insert" of Rogue-Wave + was taking care about.) + Changes in G4MaterialPropertyVector.hh, G4MaterialPropertyVector.cc + and test/testMaterialPropertyVector.cc 29.11.01 G.Cosmo - materials-V03-02-07 Fixed declaration of ostream attributes to use standard 'fmtflags' diff --git a/source/materials/include/G4AtomicShells.hh b/source/materials/include/G4AtomicShells.hh index cfda355a9c..07342950d0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // class description // diff --git a/source/materials/include/G4Element.hh b/source/materials/include/G4Element.hh index 519c6adb2a..b605c59b1f 100644 --- a/source/materials/include/G4Element.hh +++ b/source/materials/include/G4Element.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Element.hh,v 1.15 2001/10/17 14:02:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Element.hh,v 1.16 2002/02/26 17:34:34 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // class description @@ -63,7 +63,8 @@ // 30-03-01, suppression of the warning message in GetElement // 17-07-01, migration to STL, M. Verderi // 13-09-01, stl migration. Suppression of the data member fIndexInTable -// 14-09-01, fCountUse: nb of materials which use this element +// 14-09-01, fCountUse: nb of materials which use this element +// 26-02-02, fIndexInTable renewed //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -151,7 +152,7 @@ public: // with description //the index of this element in the Table: // - size_t GetIndex() const; + size_t GetIndex() const {return fIndexInTable;}; //return pointer to an element, given its name: // @@ -222,6 +223,7 @@ private: // Set up the static Table of Elements static G4ElementTable theElementTable; + size_t fIndexInTable; // // Derived data members (computed from the basic data members) @@ -233,19 +235,4 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline -size_t G4Element::GetIndex() const -{ - // return the index of this Element in theElementTable - // - size_t J=0, Jmax=theElementTable.size(); - while ((J + { + G4bool operator()(G4MPVEntry* x, G4MPVEntry* y) { return *x < *y; } + }; + public: // Without description ////////////// @@ -155,7 +162,6 @@ private: // Private Data Members ///////////////////////// - //G4RWTPtrSortedVector MPV; G4std::vector MPV; G4int NumEntries; G4int CurrentEntry; diff --git a/source/materials/include/G4MaterialTable.hh b/source/materials/include/G4MaterialTable.hh index c0f7fa0789..5a90844bcd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4OpticalSurface.hh b/source/materials/include/G4OpticalSurface.hh index 056e8cefb9..31592e442f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4SandiaTable.hh b/source/materials/include/G4SandiaTable.hh index 0a78960513..73f8006b39 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // class description // diff --git a/source/materials/include/G4StaticSandiaData.hh b/source/materials/include/G4StaticSandiaData.hh index 492e67f986..ff6c6c8f59 100644 --- a/source/materials/include/G4StaticSandiaData.hh +++ b/source/materials/include/G4StaticSandiaData.hh @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4StaticSandiaData.hh,v 1.5 2001/07/11 10:01:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StaticSandiaData.hh,v 1.6 2002/04/15 16:50:36 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... // +// 15.04.02 V.Grichine, bug fixed in Pb: comma after 15.861, // 09.11.98 simplified public interface; removed mixting stuf. MMA // 10.06.97 created. V. Grichine // @@ -1140,7 +1141,7 @@ const G4double G4SandiaTable::fSandiaTable[981][5] = { 3.066, 0.6749E+02, 0.6789E+03, 0.1401E+06, -0.2437E+06 } , { 13.035, -0.7125E+02, 0.7126E+04, 0.2931E+06, -0.2779E+06 } , { 15.2, -0.1363E+03, 0.1992E+05, 0.2721E+06, -0.4887E+06 } , -{ 15.861 -0.8206E+01, 0.4058E+04, 0.7950E+06, -0.4115E+07 } , +{ 15.861, -0.8206E+01, 0.4058E+04, 0.7950E+06, -0.4115E+07 } , { 88.004, 0.7595E+01, 0.4692E+04, 0.6429E+07, -0.1747E+09 } , { 500.0, 0.4240E+01, 0.8883E+04, 0.4754E+07, 0.3448E+08 } , diff --git a/source/materials/src/G4AtomicShells.cc b/source/materials/src/G4AtomicShells.cc index 20eb945405..8300453334 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4Element.cc b/source/materials/src/G4Element.cc index 0575b5380c..873d9a02fe 100644 --- a/source/materials/src/G4Element.cc +++ b/source/materials/src/G4Element.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Element.cc,v 1.14 2001/11/29 15:19:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Element.cc,v 1.15 2002/02/26 17:34:34 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,9 +40,10 @@ // 16-11-98: name Subshell -> Shell; GetBindingEnergy() (mma) // 09-03-01: assignement operator revised (mma) // 02-05-01: check identical Z in AddIsotope (marc) -// 03-05-01; flux.precision(prec) at begin/end of operator<< +// 03-05-01: flux.precision(prec) at begin/end of operator<< // 13-09-01: suppression of the data member fIndexInTable // 14-09-01: fCountUse: nb of materials which use this element +// 26-02-02: fIndexInTable renewed //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -87,6 +88,7 @@ G4Element::G4Element(const G4String& name, const G4String& symbol, // Store in ElementTable theElementTable.push_back(this); + fIndexInTable = theElementTable.size() - 1; fCountUse = 0; //nb of materials which use this element } @@ -160,6 +162,7 @@ void G4Element::AddIsotope(G4Isotope* isotope, G4double abundance) // Store in table theElementTable.push_back(this); + fIndexInTable = theElementTable.size() - 1; } } @@ -192,9 +195,7 @@ G4Element::~G4Element() if (fIonisation) delete fIonisation; //remove this element from theElementTable - G4ElementTable::iterator iter = theElementTable.begin(); - while ((iter != theElementTable.end())&&(*iter != this)) iter++; - if (iter != theElementTable.end()) theElementTable.erase(iter); + theElementTable[fIndexInTable] = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -295,6 +296,7 @@ G4Element::G4Element(G4Element& right) // Store this new element in table and set the index theElementTable.push_back(this); + fIndexInTable = theElementTable.size() - 1; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/src/G4IonisParamElm.cc b/source/materials/src/G4IonisParamElm.cc index 73ea520c43..23a57468d0 100644 --- a/source/materials/src/G4IonisParamElm.cc +++ b/source/materials/src/G4IonisParamElm.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonisParamElm.cc,v 1.7 2001/07/11 10:01:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4IonisParamMat.cc b/source/materials/src/G4IonisParamMat.cc index 371b5c3a93..2aa12607b4 100644 --- a/source/materials/src/G4IonisParamMat.cc +++ b/source/materials/src/G4IonisParamMat.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonisParamMat.cc,v 1.9 2001/09/13 08:57:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4Isotope.cc b/source/materials/src/G4Isotope.cc index 6d46b21d9a..098159f2c9 100644 --- a/source/materials/src/G4Isotope.cc +++ b/source/materials/src/G4Isotope.cc @@ -21,11 +21,12 @@ // ******************************************************************** // // -// $Id: G4Isotope.cc,v 1.11 2001/11/29 15:19:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Isotope.cc,v 1.12 2002/02/26 17:34:34 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// 26.02.02: fIndexInTable renewed // 14.09.01: fCountUse: nb of elements which use this isotope // 13.09.01: suppression of the data member fIndexInTable // 17.07.01: migration to STL. M. Verderi. @@ -56,6 +57,7 @@ G4Isotope::G4Isotope(const G4String& Name, G4int Z, G4int N, G4double A) (" ERROR! Attempt to create an Isotope with N < Z !!!" ); theIsotopeTable.push_back(this); + fIndexInTable = theIsotopeTable.size() - 1; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,9 +70,7 @@ G4Isotope::~G4Isotope() << G4endl; //remove this isotope from theIsotopeTable - G4IsotopeTable::iterator iter = theIsotopeTable.begin(); - while ((iter != theIsotopeTable.end())&&(*iter != this)) iter++; - if (iter != theIsotopeTable.end()) theIsotopeTable.erase(iter); + theIsotopeTable[fIndexInTable] = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -81,6 +81,7 @@ G4Isotope::G4Isotope(G4Isotope& right) //insert this new isotope in table theIsotopeTable.push_back(this); + fIndexInTable = theIsotopeTable.size() - 1; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -186,3 +187,5 @@ G4Isotope* G4Isotope::GetIsotope(G4String isotopeName) // the isotope does not exist in the table return 0; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/src/G4MPVEntry.cc b/source/materials/src/G4MPVEntry.cc index a20c7312fb..2aeaf6f323 100644 --- a/source/materials/src/G4MPVEntry.cc +++ b/source/materials/src/G4MPVEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G4MPVEntry.cc,v 1.6 2001/07/11 10:01:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4Material.cc b/source/materials/src/G4Material.cc index bf07028c6c..93aee386e3 100644 --- a/source/materials/src/G4Material.cc +++ b/source/materials/src/G4Material.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Material.cc,v 1.18 2001/11/29 15:19:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Material.cc,v 1.21 2002/05/06 15:37:55 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // @@ -52,6 +52,9 @@ // 03-05-01, flux.precision(prec) at begin/end of operator<< // 17-07-01, migration to STL. M. Verderi. // 14-09-01, Suppression of the data member fIndexInTable +// 26-02-02, fIndexInTable renewed +// 16-04-02, G4Exception put in constructor with chemical formula +// 06-05-02, remove the check of the ideal gas state equation // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -110,6 +113,7 @@ G4Material::G4Material(const G4String& name, G4double z, // Store in the table of Materials theMaterialTable.push_back(this); + fIndexInTable = theMaterialTable.size() - 1; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -159,49 +163,11 @@ G4Material::G4Material(const G4String& name, const G4String& chFormula, G4double z, G4double a, G4double density, G4State state, G4double temp, G4double pressure) :fName(name),fChemicalFormula(chFormula) -{ - G4cout - << "---> warning from G4Material constructor with chemical formula." - " This constructor is going to be depreciated.\n" - " Use material->SetChemicalFormula(const G4String&)" << G4endl; - - InitializePointers(); - - if (density < universe_mean_density) - { G4cerr << "--- Warning from G4Material::G4Material()" - << " define a material with density=0 is not allowed. \n" - << " The material " << name << " will be constructed with the" - << " default minimal density: " << universe_mean_density/(g/cm3) - << "g/cm3" << G4endl; - density = universe_mean_density; - } - - fDensity = density; - fState = state; - fTemp = temp; - fPressure = pressure; - - // Initialize theElementVector allocating one - // element corresponding to this material - maxNbComponents = fNumberOfComponents = fNumberOfElements = 1; - fImplicitElement = true; - theElementVector = new G4ElementVector(1,(G4Element*)0); - (*theElementVector)[0] = new G4Element(name, " ", z, a); - fMassFractionVector = new G4double[1]; - fMassFractionVector[0] = 1. ; - - (*theElementVector)[0] -> increaseCountUse(); - - if (fState == kStateUndefined) - { - if (fDensity > kGasThreshold) fState = kStateSolid; - else fState = kStateGas; - } - - ComputeDerivedQuantities(); - - // Store in the table of Materials - theMaterialTable.push_back(this); +{ + G4Exception + ("---> from G4Material constructor with chemical formula." + " This constructor is depreciated.\n" + " Use material->SetChemicalFormula(const G4String&)"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -215,37 +181,10 @@ G4Material::G4Material(const G4String& name, const G4String& chFormula, G4State state, G4double temp, G4double pressure) :fName(name),fChemicalFormula(chFormula) { - G4cout - << "---> warning from G4Material constructor with chemical formula." - " This constructor is going to be depreciated.\n" - " Use material->SetChemicalFormula(const G4String&)" << G4endl; - - InitializePointers(); - - if (density < universe_mean_density) - {G4cerr << "--- Warning from G4Material::G4Material()" - << " define a material with density=0 is not allowed. \n" - << " The material " << name << " will be constructed with the" - << " default minimal density: " << universe_mean_density/(g/cm3) - << "g/cm3" << G4endl; - density = universe_mean_density; - } - - fDensity = density; - fState = state; - fTemp = temp; - fPressure = pressure; - - maxNbComponents = nComponents; - fNumberOfComponents = fNumberOfElements = 0; - fImplicitElement = false; - theElementVector = new G4ElementVector(maxNbComponents,(G4Element*)0); - - if (fState == kStateUndefined) - { - if (fDensity > kGasThreshold) fState = kStateSolid; - else fState = kStateGas; - } + G4Exception + ("---> from G4Material constructor with chemical formula." + " This constructor is depreciated.\n" + " Use material->SetChemicalFormula(const G4String&)"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -289,6 +228,7 @@ void G4Material::AddElement(G4Element* element, G4int nAtoms) // Store in the static Table of Materials theMaterialTable.push_back(this); + fIndexInTable = theMaterialTable.size() - 1; } } @@ -344,6 +284,7 @@ void G4Material::AddElement(G4Element* element, G4double fraction) // Store in the static Table of Materials theMaterialTable.push_back(this); + fIndexInTable = theMaterialTable.size() - 1; } } @@ -406,6 +347,7 @@ void G4Material::AddMaterial(G4Material* material, G4double fraction) // Store in the static Table of Materials theMaterialTable.push_back(this); + fIndexInTable = theMaterialTable.size() - 1; } } @@ -430,22 +372,30 @@ void G4Material::ComputeDerivedQuantities() TotNbOfElectPerVolume += VecNbOfAtomsPerVolume[i]*Zi; } - //for gas, check coherence of the state conditions - if (fState == kStateGas) { - G4double ratio = TotNbOfAtomsPerVolume*k_Boltzmann*fTemp/fPressure; - if ((ratio<0.1)||(ratio>10.)) { - 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/(TotNbOfAtomsPerVolume*k_Boltzmann)) - /((mg/cm3)*(kelvin/atmosphere)) - << " (mg/cm3)*(kelvin/atmosphere)." - " The energy loss calculation maybe be affected \n"; - } - } +/// //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(); @@ -533,6 +483,7 @@ G4Material::G4Material(const G4Material& right) // Store this new material in the table of Materials theMaterialTable.push_back(this); + fIndexInTable = theMaterialTable.size() - 1; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -551,9 +502,7 @@ G4Material::~G4Material() if (fSandiaTable) delete fSandiaTable; //remove this material from theMaterialTable - G4MaterialTable::iterator iter = theMaterialTable.begin(); - while ((iter != theMaterialTable.end())&&(*iter != this)) iter++; - if (iter != theMaterialTable.end()) theMaterialTable.erase(iter); + theMaterialTable[fIndexInTable] = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/src/G4MaterialPropertiesTable.cc b/source/materials/src/G4MaterialPropertiesTable.cc index 1230945409..192c1a9eef 100644 --- a/source/materials/src/G4MaterialPropertiesTable.cc +++ b/source/materials/src/G4MaterialPropertiesTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertiesTable.cc,v 1.12 2001/10/17 07:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4MaterialPropertyVector.cc b/source/materials/src/G4MaterialPropertyVector.cc index 05d55767cd..6b80af7278 100644 --- a/source/materials/src/G4MaterialPropertyVector.cc +++ b/source/materials/src/G4MaterialPropertyVector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MaterialPropertyVector.cc,v 1.11 2001/11/28 15:42:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MaterialPropertyVector.cc,v 1.13 2002/01/22 15:23:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// @@ -144,6 +144,7 @@ void G4MaterialPropertyVector::AddElement(G4double aPhotonMomentum, newElement = new G4MPVEntry(aPhotonMomentum, aPropertyValue); MPV.push_back(newElement); + G4std::sort(MPV.begin(), MPV.end(), MPVEntry_less()); NumEntries++; } diff --git a/source/materials/src/G4OpticalSurface.cc b/source/materials/src/G4OpticalSurface.cc index afb668de2d..1999023239 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4SandiaTable.cc b/source/materials/src/G4SandiaTable.cc index d2c054b4d6..310ac0e0c3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... // diff --git a/source/parameterisations/include/G4FoamXTRdEdx.hh b/source/parameterisations/include/G4FoamXTRdEdx.hh index f70f29109c..590e19d906 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4FoamXrayTRmodel.hh b/source/parameterisations/include/G4FoamXrayTRmodel.hh index d14ee71413..291452ad2a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4GamDistrXTRdEdx.hh b/source/parameterisations/include/G4GamDistrXTRdEdx.hh index dd4b04039b..fa3c21e7a3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4GamDistrXrayTRmodel.hh b/source/parameterisations/include/G4GamDistrXrayTRmodel.hh index 4fd3583a60..b5f0a689cd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4IrregularXTRdEdx.hh b/source/parameterisations/include/G4IrregularXTRdEdx.hh index 9ce629705d..0952262b4f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4IrregularXrayTRmodel.hh b/source/parameterisations/include/G4IrregularXrayTRmodel.hh index ec58098b86..524a3d6318 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PAIclusterModel.hh b/source/parameterisations/include/G4PAIclusterModel.hh index 423c2f399b..42daadb3ad 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PhotoClusterModel.hh b/source/parameterisations/include/G4PhotoClusterModel.hh index 8913e8517f..12f644aa06 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh b/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh index 31098feac1..e95e6c9288 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh b/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh index b1d95d48e6..bb26f82bdf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4RegularXTRdEdx.hh b/source/parameterisations/include/G4RegularXTRdEdx.hh index 117df7caa4..2408e532cc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4RegularXrayTRmodel.hh b/source/parameterisations/include/G4RegularXrayTRmodel.hh index 0ec5fbe7dd..aec5c3692e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VClusterModel.hh b/source/parameterisations/include/G4VClusterModel.hh index 0409752b19..88cbe9f33d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXTRdEdx.hh b/source/parameterisations/include/G4VXTRdEdx.hh index 306015622b..e4ef763edb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXrayTRadModel.hh b/source/parameterisations/include/G4VXrayTRadModel.hh index d8568fea13..46488d8024 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXrayTRmodel.hh b/source/parameterisations/include/G4VXrayTRmodel.hh index fbaddf598d..c10f30dec5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/src/G4FoamXTRdEdx.cc b/source/parameterisations/src/G4FoamXTRdEdx.cc index ebaa5583f7..d4c9126104 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4FoamXrayTRmodel.cc b/source/parameterisations/src/G4FoamXrayTRmodel.cc index fd71654c67..a9143f5772 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4GamDistrXTRdEdx.cc b/source/parameterisations/src/G4GamDistrXTRdEdx.cc index 73d1c4222f..1071be2967 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4GamDistrXrayTRmodel.cc b/source/parameterisations/src/G4GamDistrXrayTRmodel.cc index 1b312d74d8..fc9ecce111 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4IrregularXTRdEdx.cc b/source/parameterisations/src/G4IrregularXTRdEdx.cc index 17d3b5caad..d285a01119 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // diff --git a/source/parameterisations/src/G4IrregularXrayTRmodel.cc b/source/parameterisations/src/G4IrregularXrayTRmodel.cc index f1aedf1056..62d201f03c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // diff --git a/source/parameterisations/src/G4PAIclusterModel.cc b/source/parameterisations/src/G4PAIclusterModel.cc index 98534f75e9..d1914396bd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4PhotoClusterModel.cc b/source/parameterisations/src/G4PhotoClusterModel.cc index 697c5052ea..70087f6f29 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc b/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc index a8f02f147d..401c0169d4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc b/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc index 0105845428..b13e201aea 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4RegularXTRdEdx.cc b/source/parameterisations/src/G4RegularXTRdEdx.cc index 7c15cb7ee1..0604e2f3f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4RegularXrayTRmodel.cc b/source/parameterisations/src/G4RegularXrayTRmodel.cc index f5b990b995..4798e660ba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4VClusterModel.cc b/source/parameterisations/src/G4VClusterModel.cc index 5e94c84f46..1a48f99f00 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXTRdEdx.cc b/source/parameterisations/src/G4VXTRdEdx.cc index 5160afbd20..d2606ed626 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXrayTRadModel.cc b/source/parameterisations/src/G4VXrayTRadModel.cc index 3eb899cb63..b5ccf1dbd5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXrayTRmodel.cc b/source/parameterisations/src/G4VXrayTRmodel.cc index 067d31539b..cfb846608c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Timer.hh" diff --git a/source/particles/History b/source/particles/History index 3a43526e68..8f115f3583 100644 --- a/source/particles/History +++ b/source/particles/History @@ -1,4 +1,4 @@ -$Id: History,v 1.64 2001/11/19 09:36:24 kurasige Exp $ +$Id: History,v 1.70 2002/05/30 02:20:18 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,20 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +- May 30, 2002 (particles-V04-00-03) +- Fixed a bug in G4NeutronBetaDecayChannel +- Fixed warnings in G4NucleiProperties + +- Mar 28, 2002 (particles-V04-00-02) +- Fixed a bug in G4TauLeptonicDecayChannel (partman-V04-00-01) + +- Mar 08, 2002 (particles-V04-00-01) +- Added G4TauLeptonicDecayChannel for tau leptonic decay (partman-V04-00-00) +- Changed tau decay channels to use G4TauLeptonicDecayChannel (leptons-V04-00-00) + +- Feb 12, 2002 H.Kurashige (particles-V04-00-00) +- Fixed bugs in the decay table for G4KaonMinus (hadrons-V04-00-00) + - Nov 19, 2001 H.Kurashige (particles-V03-02-10) - remove extra semi-colon and comments from G4Gamma.hh diff --git a/source/particles/bosons/include/G4BosonConstructor.hh b/source/particles/bosons/include/G4BosonConstructor.hh index 7bf31be49a..99d78f7362 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/bosons/include/G4ChargedGeantino.hh b/source/particles/bosons/include/G4ChargedGeantino.hh index 323c3be134..d5e877b506 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4Gamma.hh b/source/particles/bosons/include/G4Gamma.hh index 881d317ec1..42a5fd93f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4Geantino.hh b/source/particles/bosons/include/G4Geantino.hh index 22b69c78f4..2b45e07da1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4OpticalPhoton.hh b/source/particles/bosons/include/G4OpticalPhoton.hh index 21a0a261d0..e178da4762 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4VBoson.hh b/source/particles/bosons/include/G4VBoson.hh index 29686412c4..8b12955afc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/src/G4BosonConstructor.cc b/source/particles/bosons/src/G4BosonConstructor.cc index 2d0d9e0e30..6228e20797 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4ChargedGeantino.cc b/source/particles/bosons/src/G4ChargedGeantino.cc index f9192a3c67..2a17adb2aa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4Gamma.cc b/source/particles/bosons/src/G4Gamma.cc index 1078ea3fed..a8e4c115f5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4Geantino.cc b/source/particles/bosons/src/G4Geantino.cc index 5c7dc3cdd3..aa1e1034ca 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4OpticalPhoton.cc b/source/particles/bosons/src/G4OpticalPhoton.cc index cfa39eaac7..99374968e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4VBoson.cc b/source/particles/bosons/src/G4VBoson.cc index 44947fe305..48e50b7e30 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/include/G4AntiLambda.hh b/source/particles/hadrons/barions/include/G4AntiLambda.hh index 9e493c8d0a..fd29570dab 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh b/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh index 5afa37644b..836f9ae55f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiNeutron.hh b/source/particles/hadrons/barions/include/G4AntiNeutron.hh index 5f3f684ea2..40d7dff88c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh b/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh index 715d99609d..50757b8d5c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh b/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh index ea6343a4cb..5698f69a1b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiProton.hh b/source/particles/hadrons/barions/include/G4AntiProton.hh index 6a7a5913c5..8e1a6a27b7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh index 66f0b0fd4d..907d2728ac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh index 4939e5ccfb..3dc40d9c32 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh index b8ae341cd4..e2c315bf6d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh index d260f4c82b..96a8594321 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh index 75c71b8cb2..8e88191b38 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh index fe48e7af65..840dd722f2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXiMinus.hh b/source/particles/hadrons/barions/include/G4AntiXiMinus.hh index 4275546913..72f5a9bbf3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXiZero.hh b/source/particles/hadrons/barions/include/G4AntiXiZero.hh index 7010253be5..50e9c021fa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXicPlus.hh b/source/particles/hadrons/barions/include/G4AntiXicPlus.hh index 3860b90a32..d33b122809 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXicZero.hh b/source/particles/hadrons/barions/include/G4AntiXicZero.hh index 6825fb81c7..445734b42d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4BaryonConstructor.hh b/source/particles/hadrons/barions/include/G4BaryonConstructor.hh index 3f6907a649..9197337ebe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/include/G4Lambda.hh b/source/particles/hadrons/barions/include/G4Lambda.hh index e99075591f..521ae95bde 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4LambdacPlus.hh b/source/particles/hadrons/barions/include/G4LambdacPlus.hh index 7b158d35c6..644573209c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4Neutron.hh b/source/particles/hadrons/barions/include/G4Neutron.hh index a4b28bc14e..3632fbd36a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4OmegaMinus.hh b/source/particles/hadrons/barions/include/G4OmegaMinus.hh index 81de888979..4c4ad717db 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4OmegacZero.hh b/source/particles/hadrons/barions/include/G4OmegacZero.hh index 567c1137c6..de8b39b43d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4Proton.hh b/source/particles/hadrons/barions/include/G4Proton.hh index 7bf2d2126a..c1a4f5d175 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaMinus.hh b/source/particles/hadrons/barions/include/G4SigmaMinus.hh index f4a24b59c5..8c25bd9e34 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaPlus.hh b/source/particles/hadrons/barions/include/G4SigmaPlus.hh index d822134cc8..9ba6ac4a4c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaZero.hh b/source/particles/hadrons/barions/include/G4SigmaZero.hh index b6ff2b8351..fc03bfea53 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlus.hh index f9d420d91c..67911ea972 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh index 63e99a6cc5..6a85f21a7c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacZero.hh b/source/particles/hadrons/barions/include/G4SigmacZero.hh index 0a12aadcc6..fd9c7fc842 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4VBaryon.hh b/source/particles/hadrons/barions/include/G4VBaryon.hh index 79d444fab2..eb8f35c5a8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XiMinus.hh b/source/particles/hadrons/barions/include/G4XiMinus.hh index ddf6573664..3a4cc5f859 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XiZero.hh b/source/particles/hadrons/barions/include/G4XiZero.hh index 26cd3e7e69..c8a61889d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XicPlus.hh b/source/particles/hadrons/barions/include/G4XicPlus.hh index 7577ef1129..0c260cdd3c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XicZero.hh b/source/particles/hadrons/barions/include/G4XicZero.hh index bf6ac15bde..b159e8f2b4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/src/G4AntiLambda.cc b/source/particles/hadrons/barions/src/G4AntiLambda.cc index 396160ac25..af43a81d1a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc index 37439620b2..3018f6198a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiNeutron.cc b/source/particles/hadrons/barions/src/G4AntiNeutron.cc index 9c8f2980c8..88b40a5b3a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc index 63f3a2b2ff..01d60a95de 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc index 659d355c23..5671e84cac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiProton.cc b/source/particles/hadrons/barions/src/G4AntiProton.cc index 67ad67ff82..d60236cd0b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc index 36400962d8..c5dc1aea36 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaMinus.cc,v 1.8 2001/10/16 08:15:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc index 9ee29ed0da..715874eb06 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc index 193a356b0c..24734354f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc index 7a8695b1d7..07a091d138 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc index 27cdad6062..6b117a20af 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc index 48b1063f28..ae66c7e40a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc index 31bfbd44ca..2cab910f44 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXiZero.cc b/source/particles/hadrons/barions/src/G4AntiXiZero.cc index 26947cc9fb..da9c218ec7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc index 3047013abb..6a6e71627d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXicZero.cc b/source/particles/hadrons/barions/src/G4AntiXicZero.cc index 4aec9bb6a6..69abe1ee64 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4BaryonConstructor.cc b/source/particles/hadrons/barions/src/G4BaryonConstructor.cc index 1c0f662b2b..55a7ba525e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Lambda.cc b/source/particles/hadrons/barions/src/G4Lambda.cc index f110056d2a..6b100c1866 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4LambdacPlus.cc b/source/particles/hadrons/barions/src/G4LambdacPlus.cc index d1c3ef6638..52df60a84d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Neutron.cc b/source/particles/hadrons/barions/src/G4Neutron.cc index 6c73200c0e..3d8004ff9c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4OmegaMinus.cc b/source/particles/hadrons/barions/src/G4OmegaMinus.cc index b0cda1e001..cb6add0011 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4OmegacZero.cc b/source/particles/hadrons/barions/src/G4OmegacZero.cc index 2864f41679..31ae94da34 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Proton.cc b/source/particles/hadrons/barions/src/G4Proton.cc index 697f452d45..f3a23d0797 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaMinus.cc b/source/particles/hadrons/barions/src/G4SigmaMinus.cc index 6ce0d6a618..c80f5e503b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaPlus.cc b/source/particles/hadrons/barions/src/G4SigmaPlus.cc index e90d948f98..7b60f8d6a8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaZero.cc b/source/particles/hadrons/barions/src/G4SigmaZero.cc index 89be078aa9..58241c39a5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlus.cc index efe21db8b7..b29c948758 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc index 4e819bce62..1396613f12 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacZero.cc b/source/particles/hadrons/barions/src/G4SigmacZero.cc index 4ab3208465..39c3bf4d6f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4VBaryon.cc b/source/particles/hadrons/barions/src/G4VBaryon.cc index 49d6019963..ef0c3bfa3d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XiMinus.cc b/source/particles/hadrons/barions/src/G4XiMinus.cc index a38dcc1d59..389905c622 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XiZero.cc b/source/particles/hadrons/barions/src/G4XiZero.cc index c1b722839f..887f7bec50 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XicPlus.cc b/source/particles/hadrons/barions/src/G4XicPlus.cc index e3591cba15..222442a201 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XicZero.cc b/source/particles/hadrons/barions/src/G4XicZero.cc index 946aa65b69..2035527a3b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/include/G4Alpha.hh b/source/particles/hadrons/ions/include/G4Alpha.hh index 5c182a049e..b556b8cfb0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4Deuteron.hh b/source/particles/hadrons/ions/include/G4Deuteron.hh index 1a7fbed9c3..99aedd0b43 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4GenericIon.hh b/source/particles/hadrons/ions/include/G4GenericIon.hh index d4a69c4bc3..c9509571de 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4He3.hh b/source/particles/hadrons/ions/include/G4He3.hh index b8bd889567..1a6b9bdd15 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4IonConstructor.hh b/source/particles/hadrons/ions/include/G4IonConstructor.hh index 84cdeffcfb..96fbef515e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/include/G4Triton.hh b/source/particles/hadrons/ions/include/G4Triton.hh index 794e8cbae3..586ee49626 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4VIon.hh b/source/particles/hadrons/ions/include/G4VIon.hh index 76cd1ad3f5..a9e016ac43 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/src/G4Alpha.cc b/source/particles/hadrons/ions/src/G4Alpha.cc index 752bda74d6..8370237c14 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4Deuteron.cc b/source/particles/hadrons/ions/src/G4Deuteron.cc index 592affba7b..1023cb2db4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4GenericIon.cc b/source/particles/hadrons/ions/src/G4GenericIon.cc index 8270ab3991..79395bb832 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4He3.cc b/source/particles/hadrons/ions/src/G4He3.cc index 4746a5707e..8783a1cdef 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4IonConstructor.cc b/source/particles/hadrons/ions/src/G4IonConstructor.cc index c161d1da13..7e01587069 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4Triton.cc b/source/particles/hadrons/ions/src/G4Triton.cc index 5a376cb218..e61dff56ad 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4VIon.cc b/source/particles/hadrons/ions/src/G4VIon.cc index bcb6a11ec0..357edde60f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh index ba077f1926..f010e888d7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh index edaaa44fc5..4547f6e365 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh index c8257ffe5f..3feda5c376 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh b/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh index ed124c1475..ec3a404663 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonMinus.hh b/source/particles/hadrons/mesons/include/G4BMesonMinus.hh index 4de25b5473..4a48f1a9a6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonPlus.hh b/source/particles/hadrons/mesons/include/G4BMesonPlus.hh index 47c1a5effd..dc0026581b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonZero.hh b/source/particles/hadrons/mesons/include/G4BMesonZero.hh index d4de1dd7a7..43b31a2557 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BsMesonZero.hh b/source/particles/hadrons/mesons/include/G4BsMesonZero.hh index 7d953b89e7..e1e3855390 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DMesonMinus.hh index 0139661720..cd7f3a766e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DMesonPlus.hh index 24617c93f8..057388a0ee 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonZero.hh b/source/particles/hadrons/mesons/include/G4DMesonZero.hh index 7284a87397..ed0c5c6d7f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh index 28f8722bda..929cae2c52 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh index ae3f4ab73f..51218c03cf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4Eta.hh b/source/particles/hadrons/mesons/include/G4Eta.hh index 075e4c0b87..35e0fe75ae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4EtaPrime.hh b/source/particles/hadrons/mesons/include/G4EtaPrime.hh index 7d57f9e67d..65ed762b27 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4JPsi.hh b/source/particles/hadrons/mesons/include/G4JPsi.hh index 9aafbe77ed..93f12a065f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonMinus.hh b/source/particles/hadrons/mesons/include/G4KaonMinus.hh index 0c1927862d..b3659c56ed 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonPlus.hh b/source/particles/hadrons/mesons/include/G4KaonPlus.hh index dc2871b673..48772bc29e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZero.hh b/source/particles/hadrons/mesons/include/G4KaonZero.hh index 31eb3e9c92..6ea8114cef 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh b/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh index 57a3d8bd7d..51df62a71c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh b/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh index 80c12ab930..e5fab1f0fa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4MesonConstructor.hh b/source/particles/hadrons/mesons/include/G4MesonConstructor.hh index e5c9d0e2fa..3ea30388d5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/include/G4PionMinus.hh b/source/particles/hadrons/mesons/include/G4PionMinus.hh index 7b280b088a..048afada71 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4PionPlus.hh b/source/particles/hadrons/mesons/include/G4PionPlus.hh index 34dcc99da5..1b2c49d964 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4PionZero.hh b/source/particles/hadrons/mesons/include/G4PionZero.hh index 83a89e4888..f02033efc8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4VMeson.hh b/source/particles/hadrons/mesons/include/G4VMeson.hh index ef9dcfc29e..20144044af 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc index fcba1eabae..565d6658e0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc index dff54f43d7..f92fad45c6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc index 68cf751d4d..f7c9c52b36 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc index b226cc21be..aceca9d8e4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc index e811110dc8..b02241adca 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc index 33152e2d66..d4f3715b7d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonZero.cc b/source/particles/hadrons/mesons/src/G4BMesonZero.cc index beeda26707..02f9979cba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc index 0f77d7f6b3..c19bf0e3c8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc index 2e9bba8086..bee1e9dc15 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc index 1ed56185ce..6dfdeb5606 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonZero.cc b/source/particles/hadrons/mesons/src/G4DMesonZero.cc index a71f287159..147a5dd01f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc index 89e9b62f15..3751e02327 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc index 06360739e1..4f4c660150 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4Eta.cc b/source/particles/hadrons/mesons/src/G4Eta.cc index 4c03955a2e..bcb0751d94 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4EtaPrime.cc b/source/particles/hadrons/mesons/src/G4EtaPrime.cc index c20a6fb122..c8d57cf1e9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4JPsi.cc b/source/particles/hadrons/mesons/src/G4JPsi.cc index effb5b2926..67a69968d4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonMinus.cc b/source/particles/hadrons/mesons/src/G4KaonMinus.cc index d8f91d0835..2b41ce978d 100644 --- a/source/particles/hadrons/mesons/src/G4KaonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonMinus.cc,v 1.7 2001/10/16 08:16:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4KaonMinus.cc,v 1.8 2002/02/12 01:07:21 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- @@ -69,12 +69,12 @@ G4KaonMinus::G4KaonMinus( G4VDecayChannel** mode = new G4VDecayChannel*[6]; // kaon- -> mu- + anti_nu_mu mode[0] = new G4PhaseSpaceDecayChannel("kaon-",0.635,2,"mu-","anti_nu_mu"); - // kaon- -> pi+ + pi0 - mode[1] = new G4PhaseSpaceDecayChannel("kaon-",0.212,2,"pi+","pi0"); - // kaon- -> pi+ + pi+ + pi- - mode[2] = new G4PhaseSpaceDecayChannel("kaon-",0.056,3,"pi+","pi+","pi-"); - // kaon- -> pi+ + pi0 + pi0 - mode[3] = new G4PhaseSpaceDecayChannel("kaon-",0.017,3,"pi+","pi0","pi0"); + // kaon- -> pi- + pi0 + mode[1] = new G4PhaseSpaceDecayChannel("kaon-",0.212,2,"pi-","pi0"); + // kaon- -> pi- + pi+ + pi- + mode[2] = new G4PhaseSpaceDecayChannel("kaon-",0.056,3,"pi-","pi+","pi-"); + // kaon- -> pi- + pi0 + pi0 + mode[3] = new G4PhaseSpaceDecayChannel("kaon-",0.017,3,"pi-","pi0","pi0"); // kaon- -> pi0 + e- + anti_nu_e (Ke3) mode[4] = new G4KL3DecayChannel("kaon-",0.048,"pi0","e-","anti_nu_e"); // kaon- -> pi0 + mu- + anti_nu_mu (Kmu3) diff --git a/source/particles/hadrons/mesons/src/G4KaonPlus.cc b/source/particles/hadrons/mesons/src/G4KaonPlus.cc index ac1083b67d..5d47273516 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZero.cc b/source/particles/hadrons/mesons/src/G4KaonZero.cc index 7072ab0852..4a1ea330f5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc index 9b27b684f3..da2927d3b0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc index 693a8622bf..8a614fe4d6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4MesonConstructor.cc b/source/particles/hadrons/mesons/src/G4MesonConstructor.cc index 9f6b2bf066..465ef65d19 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionMinus.cc b/source/particles/hadrons/mesons/src/G4PionMinus.cc index 886829081c..524096ed60 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionPlus.cc b/source/particles/hadrons/mesons/src/G4PionPlus.cc index 1640cdc6a6..1a97e67910 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionZero.cc b/source/particles/hadrons/mesons/src/G4PionZero.cc index f0d6499a6e..28547b3292 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4VMeson.cc b/source/particles/hadrons/mesons/src/G4VMeson.cc index 1f66483795..b954897103 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/include/G4AntiNeutrinoE.hh b/source/particles/leptons/include/G4AntiNeutrinoE.hh index 69ad4c51e6..2cdb09992e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4AntiNeutrinoMu.hh b/source/particles/leptons/include/G4AntiNeutrinoMu.hh index ae1c583f9c..5ddf8d68f4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4AntiNeutrinoTau.hh b/source/particles/leptons/include/G4AntiNeutrinoTau.hh index 6e27f32c03..af3d27d259 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4Electron.hh b/source/particles/leptons/include/G4Electron.hh index 51d1e73305..ae698cd4a7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4LeptonConstructor.hh b/source/particles/leptons/include/G4LeptonConstructor.hh index 9e0950decc..6a17f61ef7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/include/G4MuonMinus.hh b/source/particles/leptons/include/G4MuonMinus.hh index 37bb11c20d..3ddb31d8f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4MuonPlus.hh b/source/particles/leptons/include/G4MuonPlus.hh index 8705bfd756..690f28f44b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoE.hh b/source/particles/leptons/include/G4NeutrinoE.hh index 1a5a17640a..975e94873c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoMu.hh b/source/particles/leptons/include/G4NeutrinoMu.hh index ba85db0957..d8a162ca6c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoTau.hh b/source/particles/leptons/include/G4NeutrinoTau.hh index 4a7364598d..6cdc67b206 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4Positron.hh b/source/particles/leptons/include/G4Positron.hh index 4d17f1c479..2790a83e73 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4TauMinus.hh b/source/particles/leptons/include/G4TauMinus.hh index 6011ed4f37..02351bd72e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4TauPlus.hh b/source/particles/leptons/include/G4TauPlus.hh index fc99c24d6c..9e9f7da659 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4VLepton.hh b/source/particles/leptons/include/G4VLepton.hh index 878b674397..01d17365f9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/src/G4AntiNeutrinoE.cc b/source/particles/leptons/src/G4AntiNeutrinoE.cc index 42c8aba500..744d927f34 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4AntiNeutrinoMu.cc b/source/particles/leptons/src/G4AntiNeutrinoMu.cc index 8fcbfe68e4..e08641fe86 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4AntiNeutrinoTau.cc b/source/particles/leptons/src/G4AntiNeutrinoTau.cc index 35040eb27a..9307bac2bd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4Electron.cc b/source/particles/leptons/src/G4Electron.cc index e4926bac11..0f9525647d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4LeptonConstructor.cc b/source/particles/leptons/src/G4LeptonConstructor.cc index fc235236de..a76420cdf8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4MuonMinus.cc b/source/particles/leptons/src/G4MuonMinus.cc index cfa7743189..27dc7dc611 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4MuonPlus.cc b/source/particles/leptons/src/G4MuonPlus.cc index 614b5f4787..6dbf9a73fa 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoE.cc b/source/particles/leptons/src/G4NeutrinoE.cc index 9cca1e821b..0ea5c32f19 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoMu.cc b/source/particles/leptons/src/G4NeutrinoMu.cc index 619eba688d..3f16fbc378 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoTau.cc b/source/particles/leptons/src/G4NeutrinoTau.cc index b94730a7b0..17d4a5a444 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4Positron.cc b/source/particles/leptons/src/G4Positron.cc index 8867636955..0d093efdbd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4TauMinus.cc b/source/particles/leptons/src/G4TauMinus.cc index 2f5f7242d2..a2be0da543 100644 --- a/source/particles/leptons/src/G4TauMinus.cc +++ b/source/particles/leptons/src/G4TauMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TauMinus.cc,v 1.7 2001/10/16 08:16:18 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4TauMinus.cc,v 1.8 2002/03/08 08:48:31 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- @@ -39,6 +39,7 @@ #include "G4TauMinus.hh" #include "G4PhaseSpaceDecayChannel.hh" +#include "G4TauLeptonicDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### @@ -70,9 +71,9 @@ G4TauMinus::G4TauMinus( // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[6]; // tau- -> mu- + anti_nu_mu + nu_tau - mode[0] = new G4PhaseSpaceDecayChannel("tau-",0.174,3,"mu-","anti_nu_mu","nu_tau"); + mode[0] = new G4TauLeptonicDecayChannel("tau-",0.174,"mu-"); // tau- -> e- + anti_nu_e + nu_tau - mode[1] = new G4PhaseSpaceDecayChannel("tau-",0.178,3,"e-","anti_nu_e","nu_tau"); + mode[1] = new G4TauLeptonicDecayChannel("tau-",0.178,"e-"); // tau- -> pi- + nu_tau mode[2] = new G4PhaseSpaceDecayChannel("tau-",0.113,2,"pi-","nu_tau"); // tau- -> pi0 + pi0 + pi- + nu_tau diff --git a/source/particles/leptons/src/G4TauPlus.cc b/source/particles/leptons/src/G4TauPlus.cc index c64991314a..bc0526cc31 100644 --- a/source/particles/leptons/src/G4TauPlus.cc +++ b/source/particles/leptons/src/G4TauPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TauPlus.cc,v 1.7 2001/10/16 08:16:19 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4TauPlus.cc,v 1.8 2002/03/08 08:48:31 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- @@ -39,6 +39,7 @@ #include "G4TauPlus.hh" #include "G4PhaseSpaceDecayChannel.hh" +#include "G4TauLeptonicDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### @@ -70,9 +71,9 @@ G4TauPlus::G4TauPlus( // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[6]; // tau+ -> mu+ + nu_mu + anti_nu_tau - mode[0] = new G4PhaseSpaceDecayChannel("tau+",0.174,3,"mu+","nu_mu","anti_nu_tau"); + mode[0] = new G4TauLeptonicDecayChannel("tau+",0.174,"mu+"); // tau+ -> e+ + nu_e + anti_nu_tau - mode[1] = new G4PhaseSpaceDecayChannel("tau+",0.178,3,"e+","nu_e","anti_nu_tau"); + mode[1] = new G4TauLeptonicDecayChannel("tau+",0.178,"e+"); // tau+ -> pi+ + anti_nu_tau mode[2] = new G4PhaseSpaceDecayChannel("tau+",0.113,2,"pi+","anti_nu_tau"); // tau+ -> pi0 + pi0 + pi+ + anti_nu_tau diff --git a/source/particles/leptons/src/G4VLepton.cc b/source/particles/leptons/src/G4VLepton.cc index 56f48cc559..7f727d6b40 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/include/G4DalitzDecayChannel.hh b/source/particles/management/include/G4DalitzDecayChannel.hh index 7a8b3cbdba..128dc262ab 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayProducts.hh b/source/particles/management/include/G4DecayProducts.hh index 55d306584f..7bbe83b63a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTable.hh b/source/particles/management/include/G4DecayTable.hh index 6f877cd17f..7867e28dcb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTableMessenger.hh b/source/particles/management/include/G4DecayTableMessenger.hh index 7f6176b131..becea59fc5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4DynamicParticle.hh b/source/particles/management/include/G4DynamicParticle.hh index 35985227e0..45db08357e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DynamicParticle.icc b/source/particles/management/include/G4DynamicParticle.icc index 71cd5f3cbb..93a8ba7de7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DynamicParticleFastVector.hh b/source/particles/management/include/G4DynamicParticleFastVector.hh index f88c5b3e79..4d440d3869 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ElectronOccupancy.hh b/source/particles/management/include/G4ElectronOccupancy.hh index 6c18d996ed..a038eb59fc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IonTable.hh b/source/particles/management/include/G4IonTable.hh index c90d0f1eec..2a0082faf9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4Ions.hh b/source/particles/management/include/G4Ions.hh index b216f642e5..20014bc464 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IsotopeProperty.hh b/source/particles/management/include/G4IsotopeProperty.hh index edbfd8ab8d..6cca4bfbdc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4KL3DecayChannel.hh b/source/particles/management/include/G4KL3DecayChannel.hh index c28022c7f7..bff9c049ad 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4MuonDecayChannel.hh b/source/particles/management/include/G4MuonDecayChannel.hh index 01bff92c75..cff46651f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NeutronBetaDecayChannel.hh b/source/particles/management/include/G4NeutronBetaDecayChannel.hh index 024d5ec75f..d9de997ca8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiProperties.hh b/source/particles/management/include/G4NucleiProperties.hh index a3adc3e269..04812bc7ca 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiPropertiesTable.hh b/source/particles/management/include/G4NucleiPropertiesTable.hh index d6f49595d6..3f589ea862 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh b/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh index 8503bf62d7..628ae08787 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4PDGCodeChecker.hh b/source/particles/management/include/G4PDGCodeChecker.hh index 68f75c1063..c941ba7ff3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleDefinition.hh b/source/particles/management/include/G4ParticleDefinition.hh index 384efcc124..3e3623b4ac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleDefinition.icc b/source/particles/management/include/G4ParticleDefinition.icc index 178b33b8e0..9e066f63d9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // inline diff --git a/source/particles/management/include/G4ParticleMessenger.hh b/source/particles/management/include/G4ParticleMessenger.hh index e14a48fa57..97c542f43b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4ParticleMomentum.hh b/source/particles/management/include/G4ParticleMomentum.hh index c21d9755c6..cb413da18a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticlePropertyMessenger.hh b/source/particles/management/include/G4ParticlePropertyMessenger.hh index 9fef3edb89..fd7f2eb1d6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4ParticleTable.hh b/source/particles/management/include/G4ParticleTable.hh index 17e99e13af..2425675205 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTable.icc b/source/particles/management/include/G4ParticleTable.icc index b3b1adb312..e9e6ceae0d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTableIterator.hh b/source/particles/management/include/G4ParticleTableIterator.hh index b2e3125c08..a3771de027 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleWithCuts.hh b/source/particles/management/include/G4ParticleWithCuts.hh index 46b7151ab2..91f2e8dcbc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh index feb9a68040..3a9f1738ba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ShortLivedTable.hh b/source/particles/management/include/G4ShortLivedTable.hh index c7bac04d52..0bdcf5dbb7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4TauLeptonicDecayChannel.hh b/source/particles/management/include/G4TauLeptonicDecayChannel.hh new file mode 100644 index 0000000000..edff3a631e --- /dev/null +++ b/source/particles/management/include/G4TauLeptonicDecayChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TauLeptonicDecayChannel.hh,v 1.1 2002/03/08 08:47:52 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// History: first implementation, based on object model of +// 30 May 1997 H.Kurashige +// ------------------------------------------------------------ +#ifndef G4TauLeptonicDecayChannel_h +#define G4TauLeptonicDecayChannel_h 1 + +#include "G4ios.hh" +#include "globals.hh" +#include "G4VDecayChannel.hh" + +class G4TauLeptonicDecayChannel :public G4VDecayChannel +{ + // Class Decription + // This class describes tau leptonic decay kinemtics. + // This version assumes the pure V-A coupling + // gives incorrect energy spectrum for neutrinos + // without tau polarization + + public: // With Description + //Constructors + G4TauLeptonicDecayChannel(const G4String& theParentName, + G4double theBR, + const G4String& theLeptonName); + // Destructor + virtual ~G4TauLeptonicDecayChannel(); + + public: // With Description + virtual G4DecayProducts *DecayIt(G4double); + + private: + static G4double spectrum(G4double momentum, + G4double energy, + G4double mtau, + G4double ml); +}; + + +#endif + diff --git a/source/particles/management/include/G4VDecayChannel.hh b/source/particles/management/include/G4VDecayChannel.hh index 750ec75bab..4231b11ecb 100644 --- a/source/particles/management/include/G4VDecayChannel.hh +++ b/source/particles/management/include/G4VDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDecayChannel.hh,v 1.9 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4VIsotopeTable.hh b/source/particles/management/include/G4VIsotopeTable.hh index cef04b47d7..e20993ce9b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DalitzDecayChannel.cc b/source/particles/management/src/G4DalitzDecayChannel.cc index 2de1b8a73c..b91a7e512a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayProducts.cc b/source/particles/management/src/G4DecayProducts.cc index e22390ef91..f72b66b316 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayTable.cc b/source/particles/management/src/G4DecayTable.cc index 05ad9bdb70..3598821f74 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayTableMessenger.cc b/source/particles/management/src/G4DecayTableMessenger.cc index b8ec19abb8..6496bc198f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4DynamicParticle.cc b/source/particles/management/src/G4DynamicParticle.cc index d1ffae3a26..ca3521c139 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4ElectronOccupancy.cc b/source/particles/management/src/G4ElectronOccupancy.cc index aa6ed5a743..6dbb676953 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IonTable.cc b/source/particles/management/src/G4IonTable.cc index 7c9af083b4..1c253d1ae9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4Ions.cc b/source/particles/management/src/G4Ions.cc index c312e09ae9..33dd9d8cde 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IsotopeProperty.cc b/source/particles/management/src/G4IsotopeProperty.cc index e7f19b6e8d..7268d8b780 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4KL3DecayChannel.cc b/source/particles/management/src/G4KL3DecayChannel.cc index a2e3779889..f616628118 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4MuonDecayChannel.cc b/source/particles/management/src/G4MuonDecayChannel.cc index 7a1534fdaf..41aa3d0004 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NeutronBetaDecayChannel.cc b/source/particles/management/src/G4NeutronBetaDecayChannel.cc index 52d81ee46c..f2125ca08b 100644 --- a/source/particles/management/src/G4NeutronBetaDecayChannel.cc +++ b/source/particles/management/src/G4NeutronBetaDecayChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronBetaDecayChannel.cc,v 1.3 2001/11/06 02:06:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NeutronBetaDecayChannel.cc,v 1.4 2002/04/03 09:05:33 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -116,14 +116,12 @@ G4DecayProducts *G4NeutronBetaDecayChannel::DecayIt(G4double) G4double r; G4double r0; do { - do { x = xmax*G4UniformRand(); p = sqrt(x*(x+2.0*m)); w = 1.0-2.0*G4UniformRand(); r = p*(x+m)*(xmax-x)*(xmax-x)*(1.0+aENuCorr*p/(x+m)*w); r0 = G4UniformRand()*(xmax+m)*(xmax+m)*xmax*xmax*(1.0+aENuCorr); - } while (r < r0); - } while (xmax0) { + G4cout << "G4TauLeptonicDecayChannel:: constructor :"; + G4cout << " parent particle is not tau but "; + G4cout << theParentName << G4endl; + } +#endif + } +} + +G4TauLeptonicDecayChannel::~G4TauLeptonicDecayChannel() +{ +} + +G4DecayProducts *G4TauLeptonicDecayChannel::DecayIt(G4double) +{ + // this version neglects muon polarization + // assumes the pure V-A coupling + // gives incorrect energy spectrum for neutrinos +#ifdef G4VERBOSE + if (GetVerboseLevel()>1) G4cout << "G4TauLeptonicDecayChannel::DecayIt "; +#endif + + if (parent == 0) FillParent(); + if (daughters == 0) FillDaughters(); + + // parent mass + G4double parentmass = parent->GetPDGMass(); + + //daughters'mass + G4double daughtermass[3]; + for (G4int index=0; index<3; index++){ + daughtermass[index] = daughters[index]->GetPDGMass(); + } + + //create parent G4DynamicParticle at rest + G4ThreeVector dummy; + G4DynamicParticle * parentparticle = new G4DynamicParticle( parent, dummy, 0.0); + //create G4Decayproducts + G4DecayProducts *products = new G4DecayProducts(*parentparticle); + delete parentparticle; + + // calculate daughter momentum + G4double daughtermomentum[3]; + G4double energy; + + // calcurate lepton momentum + G4double pmax = (parentmass*parentmass-daughtermass[0]*daughtermass[0])/2./parentmass; + G4double p, e; + G4double r; + do { + // determine momentum/energy + r = G4UniformRand(); + p = pmax*G4UniformRand(); + e = sqrt(p*p + daughtermass[0]*daughtermass[0]); + } while (r > spectrum(p,e,parentmass,daughtermass[0]) ); + energy = e- daughtermass[0]; + + //create daughter G4DynamicParticle + // daughter 0 (lepton) + daughtermomentum[0] = p; + G4double costheta, sintheta, phi, sinphi, cosphi; + costheta = 2.*G4UniformRand()-1.0; + sintheta = sqrt((1.0-costheta)*(1.0+costheta)); + phi = 2.0*M_PI*G4UniformRand()*rad; + sinphi = sin(phi); + cosphi = cos(phi); + G4ThreeVector direction0(sintheta*cosphi,sintheta*sinphi,costheta); + G4DynamicParticle * daughterparticle + = new G4DynamicParticle( daughters[0], direction0*daughtermomentum[0]); + products->PushProducts(daughterparticle); + + // daughter 1 ,2 (nutrinos) + // create neutrinos in the C.M frame of two neutrinos + G4double energy2 = parentmass-e; + G4double vmass = sqrt((energy2-daughtermomentum[0])*(energy2+daughtermomentum[0])); + G4double beta = -1.0*daughtermomentum[0]/energy2; + G4double costhetan = 2.*G4UniformRand()-1.0; + G4double sinthetan = sqrt((1.0-costhetan)*(1.0+costhetan)); + G4double phin = 2.0*M_PI*G4UniformRand()*rad; + G4double sinphin = sin(phin); + G4double cosphin = cos(phin); + + G4ThreeVector direction1(sinthetan*cosphin,sinthetan*sinphin,costhetan); + G4DynamicParticle * daughterparticle1 + = new G4DynamicParticle( daughters[1], direction1*(vmass/2.)); + G4DynamicParticle * daughterparticle2 + = new G4DynamicParticle( daughters[2], direction1*(-1.0*vmass/2.)); + + // boost to the muon rest frame + G4LorentzVector p4; + p4 = daughterparticle1->Get4Momentum(); + p4.boost( direction0.x()*beta, direction0.y()*beta, direction0.z()*beta); + daughterparticle1->Set4Momentum(p4); + p4 = daughterparticle2->Get4Momentum(); + p4.boost( direction0.x()*beta, direction0.y()*beta, direction0.z()*beta); + daughterparticle2->Set4Momentum(p4); + products->PushProducts(daughterparticle1); + products->PushProducts(daughterparticle2); + daughtermomentum[1] = daughterparticle1->GetTotalMomentum(); + daughtermomentum[2] = daughterparticle2->GetTotalMomentum(); + + + // output message +#ifdef G4VERBOSE + if (GetVerboseLevel()>1) { + G4cout << "G4TauLeptonicDecayChannel::DecayIt "; + G4cout << " create decay products in rest frame " <DumpInfo(); + } +#endif + return products; +} + + + + +G4double G4TauLeptonicDecayChannel::spectrum(G4double p, + G4double e, + G4double mtau, + G4double ml) +{ + G4double f1; + f1 = 3.0*e*(mtau*mtau+ml*ml)-4.0*mtau*e*e-2.0*mtau*ml*ml; + return p*(f1)/(mtau*mtau*mtau*mtau)/(0.6); +} + + + diff --git a/source/particles/management/src/G4VDecayChannel.cc b/source/particles/management/src/G4VDecayChannel.cc index 4dca042634..7ce41d0687 100644 --- a/source/particles/management/src/G4VDecayChannel.cc +++ b/source/particles/management/src/G4VDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDecayChannel.cc,v 1.12 2001/08/17 00:14:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4DiQuarks.hh b/source/particles/shortlived/include/G4DiQuarks.hh index 93abb1bf62..764b895b25 100644 --- a/source/particles/shortlived/include/G4DiQuarks.hh +++ b/source/particles/shortlived/include/G4DiQuarks.hh @@ -22,7 +22,7 @@ // // // $Id: G4DiQuarks.hh,v 1.4 2001/07/11 10:02:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh b/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh index 76f01de304..cb3bfd56d6 100644 --- a/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryonConstructor.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedBaryons.hh b/source/particles/shortlived/include/G4ExcitedBaryons.hh index 0c56fd0e31..1194c79968 100644 --- a/source/particles/shortlived/include/G4ExcitedBaryons.hh +++ b/source/particles/shortlived/include/G4ExcitedBaryons.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryons.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh b/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh index f2662ec447..9830547441 100644 --- a/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedDeltaConstructor.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh b/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh index 1ab845a0b8..3e41908fb4 100644 --- a/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedLambdaConstructor.hh,v 1.6 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh b/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh index c6202d0235..e25035ada8 100644 --- a/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh @@ -28,7 +28,7 @@ // and all its terms. // // $Id: G4ExcitedMesonConstructor.hh,v 1.7 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedMesons.hh b/source/particles/shortlived/include/G4ExcitedMesons.hh index 0f36388965..e4b5ace239 100644 --- a/source/particles/shortlived/include/G4ExcitedMesons.hh +++ b/source/particles/shortlived/include/G4ExcitedMesons.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedMesons.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh b/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh index 705ee9a8b5..a4f2e8e3ae 100644 --- a/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedNucleonConstructor.hh,v 1.5 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh b/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh index b49aae27f2..3acc9728e9 100644 --- a/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedSigmaConstructor.hh,v 1.5 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedXiConstructor.hh b/source/particles/shortlived/include/G4ExcitedXiConstructor.hh index c24c1bfa6e..0a8cc5f74a 100644 --- a/source/particles/shortlived/include/G4ExcitedXiConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedXiConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedXiConstructor.hh,v 1.5 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4Gluons.hh b/source/particles/shortlived/include/G4Gluons.hh index d1204c0935..6c9145a3c1 100644 --- a/source/particles/shortlived/include/G4Gluons.hh +++ b/source/particles/shortlived/include/G4Gluons.hh @@ -22,7 +22,7 @@ // // // $Id: G4Gluons.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4Quarks.hh b/source/particles/shortlived/include/G4Quarks.hh index 39db595fe8..e4952f5864 100644 --- a/source/particles/shortlived/include/G4Quarks.hh +++ b/source/particles/shortlived/include/G4Quarks.hh @@ -22,7 +22,7 @@ // // // $Id: G4Quarks.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ShortLivedConstructor.hh b/source/particles/shortlived/include/G4ShortLivedConstructor.hh index 67ad5a4902..08aa0a62b6 100644 --- a/source/particles/shortlived/include/G4ShortLivedConstructor.hh +++ b/source/particles/shortlived/include/G4ShortLivedConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedConstructor.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4VShortLivedParticle.hh b/source/particles/shortlived/include/G4VShortLivedParticle.hh index 9349a968dd..d64d666144 100644 --- a/source/particles/shortlived/include/G4VShortLivedParticle.hh +++ b/source/particles/shortlived/include/G4VShortLivedParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4VShortLivedParticle.hh,v 1.5 2001/10/15 10:00:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/src/G4DiQuarks.cc b/source/particles/shortlived/src/G4DiQuarks.cc index e15d23f081..0d4e1a8bb9 100644 --- a/source/particles/shortlived/src/G4DiQuarks.cc +++ b/source/particles/shortlived/src/G4DiQuarks.cc @@ -22,7 +22,7 @@ // // // $Id: G4DiQuarks.cc,v 1.4 2001/07/11 10:02:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc b/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc index c439921df8..2e51c74d59 100644 --- a/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryonConstructor.cc,v 1.6 2001/07/11 10:02:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedBaryons.cc b/source/particles/shortlived/src/G4ExcitedBaryons.cc index 72c8bbda32..a941cc5c9f 100644 --- a/source/particles/shortlived/src/G4ExcitedBaryons.cc +++ b/source/particles/shortlived/src/G4ExcitedBaryons.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryons.cc,v 1.4 2001/07/11 10:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc b/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc index b2e54d583f..ce6f36a57e 100644 --- a/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedDeltaConstructor.cc,v 1.6 2001/07/11 10:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc b/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc index b7479a3b44..73374b5ccc 100644 --- a/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedLambdaConstructor.cc,v 1.5 2001/07/11 10:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc index b3f066cb50..ca33804bab 100644 --- a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedMesonConstructor.cc,v 1.10 2001/07/11 10:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedMesons.cc b/source/particles/shortlived/src/G4ExcitedMesons.cc index aed98479bd..4e5ad91395 100644 --- a/source/particles/shortlived/src/G4ExcitedMesons.cc +++ b/source/particles/shortlived/src/G4ExcitedMesons.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedMesons.cc,v 1.4 2001/07/11 10:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc b/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc index d847a9b707..748960c033 100644 --- a/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedNucleonConstructor.cc,v 1.5 2001/07/11 10:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc index b5d7d23ca4..e28161a3da 100644 --- a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedSigmaConstructor.cc,v 1.6 2001/07/11 10:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedXiConstructor.cc b/source/particles/shortlived/src/G4ExcitedXiConstructor.cc index 9cadce6260..e11d9f2077 100644 --- a/source/particles/shortlived/src/G4ExcitedXiConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedXiConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedXiConstructor.cc,v 1.5 2001/07/11 10:02:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4Gluons.cc b/source/particles/shortlived/src/G4Gluons.cc index c4fb4969ce..05b7d48ce2 100644 --- a/source/particles/shortlived/src/G4Gluons.cc +++ b/source/particles/shortlived/src/G4Gluons.cc @@ -22,7 +22,7 @@ // // // $Id: G4Gluons.cc,v 1.4 2001/07/11 10:02:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4Quarks.cc b/source/particles/shortlived/src/G4Quarks.cc index 87e0112c9b..6658d7b8a8 100644 --- a/source/particles/shortlived/src/G4Quarks.cc +++ b/source/particles/shortlived/src/G4Quarks.cc @@ -22,7 +22,7 @@ // // // $Id: G4Quarks.cc,v 1.4 2001/07/11 10:02:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ShortLivedConstructor.cc b/source/particles/shortlived/src/G4ShortLivedConstructor.cc index 38e1a16f90..b6a97dad62 100644 --- a/source/particles/shortlived/src/G4ShortLivedConstructor.cc +++ b/source/particles/shortlived/src/G4ShortLivedConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedConstructor.cc,v 1.9 2001/07/11 10:02:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4VShortLivedParticle.cc b/source/particles/shortlived/src/G4VShortLivedParticle.cc index b9daa8ec83..db42910814 100644 --- a/source/particles/shortlived/src/G4VShortLivedParticle.cc +++ b/source/particles/shortlived/src/G4VShortLivedParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4VShortLivedParticle.cc,v 1.5 2001/10/15 10:00:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl b/source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl index e0f3292d16..a9f6d85e96 100644 --- a/source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl +++ b/source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PDCofThisEvent.ddl,v 1.7 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/digits/include/G4PVDigit.ddl b/source/persistency/digits+hits/digits/include/G4PVDigit.ddl index 9abc84b8c6..da6f5d2d18 100644 --- a/source/persistency/digits+hits/digits/include/G4PVDigit.ddl +++ b/source/persistency/digits+hits/digits/include/G4PVDigit.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PVDigit.ddl,v 1.5 2001/12/07 03:49:10 morita Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/digits/include/G4PVDigitsCollection.ddl b/source/persistency/digits+hits/digits/include/G4PVDigitsCollection.ddl index 417565bd29..e2bf0d2e6b 100644 --- a/source/persistency/digits+hits/digits/include/G4PVDigitsCollection.ddl +++ b/source/persistency/digits+hits/digits/include/G4PVDigitsCollection.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PVDigitsCollection.ddl,v 1.7 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/digits/include/G4PersistentDigitMan.hh b/source/persistency/digits+hits/digits/include/G4PersistentDigitMan.hh index 9427796870..0482bc0f59 100644 --- a/source/persistency/digits+hits/digits/include/G4PersistentDigitMan.hh +++ b/source/persistency/digits+hits/digits/include/G4PersistentDigitMan.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistentDigitMan.hh,v 1.8 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc b/source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc index 0609f57016..9f9a99576b 100644 --- a/source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc +++ b/source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc @@ -22,7 +22,7 @@ // // // $Id: G4PDCofThisEvent.cc,v 1.4 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PDCofThisEvent.hh" diff --git a/source/persistency/digits+hits/digits/src/G4PVDigit.cc b/source/persistency/digits+hits/digits/src/G4PVDigit.cc index 5fd4181b22..3315e05515 100644 --- a/source/persistency/digits+hits/digits/src/G4PVDigit.cc +++ b/source/persistency/digits+hits/digits/src/G4PVDigit.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVDigit.cc,v 1.3 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PVDigit.hh" diff --git a/source/persistency/digits+hits/digits/src/G4PVDigitsCollection.cc b/source/persistency/digits+hits/digits/src/G4PVDigitsCollection.cc index d6303b7029..466c390d5e 100644 --- a/source/persistency/digits+hits/digits/src/G4PVDigitsCollection.cc +++ b/source/persistency/digits+hits/digits/src/G4PVDigitsCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVDigitsCollection.cc,v 1.4 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4PVDigitsCollection diff --git a/source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc b/source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc index 79c1671f0f..05042b5df8 100644 --- a/source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc +++ b/source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersistentDigitMan.cc,v 1.6 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PersistentDigitMan // diff --git a/source/persistency/digits+hits/hits/include/G4PHCofThisEvent.ddl b/source/persistency/digits+hits/hits/include/G4PHCofThisEvent.ddl index a2da711c2b..342c9a7dc2 100644 --- a/source/persistency/digits+hits/hits/include/G4PHCofThisEvent.ddl +++ b/source/persistency/digits+hits/hits/include/G4PHCofThisEvent.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PHCofThisEvent.ddl,v 1.11 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/hits/include/G4PVHit.ddl b/source/persistency/digits+hits/hits/include/G4PVHit.ddl index 641878ab11..75daa0ee2d 100644 --- a/source/persistency/digits+hits/hits/include/G4PVHit.ddl +++ b/source/persistency/digits+hits/hits/include/G4PVHit.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PVHit.ddl,v 1.9 2001/12/07 03:48:59 morita Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/hits/include/G4PVHitsCollection.ddl b/source/persistency/digits+hits/hits/include/G4PVHitsCollection.ddl index 172d42e4c6..759d326806 100644 --- a/source/persistency/digits+hits/hits/include/G4PVHitsCollection.ddl +++ b/source/persistency/digits+hits/hits/include/G4PVHitsCollection.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PVHitsCollection.ddl,v 1.15 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/hits/include/G4PersistentHitMan.hh b/source/persistency/digits+hits/hits/include/G4PersistentHitMan.hh index 71c0f044d8..acb2f99ca6 100644 --- a/source/persistency/digits+hits/hits/include/G4PersistentHitMan.hh +++ b/source/persistency/digits+hits/hits/include/G4PersistentHitMan.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistentHitMan.hh,v 1.7 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/digits+hits/hits/src/G4PHCofThisEvent.cc b/source/persistency/digits+hits/hits/src/G4PHCofThisEvent.cc index 7b1234f863..d5c9bb00b0 100644 --- a/source/persistency/digits+hits/hits/src/G4PHCofThisEvent.cc +++ b/source/persistency/digits+hits/hits/src/G4PHCofThisEvent.cc @@ -22,7 +22,7 @@ // // // $Id: G4PHCofThisEvent.cc,v 1.7 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PHCofThisEvent.hh" diff --git a/source/persistency/digits+hits/hits/src/G4PVHit.cc b/source/persistency/digits+hits/hits/src/G4PVHit.cc index 87efda56b9..eb9117dd8e 100644 --- a/source/persistency/digits+hits/hits/src/G4PVHit.cc +++ b/source/persistency/digits+hits/hits/src/G4PVHit.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVHit.cc,v 1.5 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PVHit.hh" diff --git a/source/persistency/digits+hits/hits/src/G4PVHitsCollection.cc b/source/persistency/digits+hits/hits/src/G4PVHitsCollection.cc index a93052f1fb..fadd55ebb0 100644 --- a/source/persistency/digits+hits/hits/src/G4PVHitsCollection.cc +++ b/source/persistency/digits+hits/hits/src/G4PVHitsCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVHitsCollection.cc,v 1.9 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4PVHitsCollection diff --git a/source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc b/source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc index 3b252776cd..496f94f9fa 100644 --- a/source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc +++ b/source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersistentHitMan.cc,v 1.6 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PersistentHitMan // diff --git a/source/persistency/events/include/G4PEvent.ddl b/source/persistency/events/include/G4PEvent.ddl index 1397a3dc5f..2a9d8f01e0 100644 --- a/source/persistency/events/include/G4PEvent.ddl +++ b/source/persistency/events/include/G4PEvent.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PEvent.ddl,v 1.12 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/events/include/G4PPrimaryParticle.ddl b/source/persistency/events/include/G4PPrimaryParticle.ddl index 4b0a7abdcb..e4642c4a32 100644 --- a/source/persistency/events/include/G4PPrimaryParticle.ddl +++ b/source/persistency/events/include/G4PPrimaryParticle.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PPrimaryParticle.ddl,v 1.3 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4PPrimaryParticle_h diff --git a/source/persistency/events/include/G4PPrimaryVertex.ddl b/source/persistency/events/include/G4PPrimaryVertex.ddl index f52adc40c6..efbdb37a0f 100644 --- a/source/persistency/events/include/G4PPrimaryVertex.ddl +++ b/source/persistency/events/include/G4PPrimaryVertex.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PPrimaryVertex.ddl,v 1.11 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/events/include/G4PersistentEventMan.hh b/source/persistency/events/include/G4PersistentEventMan.hh index b047bc83ea..83adfae883 100644 --- a/source/persistency/events/include/G4PersistentEventMan.hh +++ b/source/persistency/events/include/G4PersistentEventMan.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistentEventMan.hh,v 1.13 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/events/src/G4PEvent.cc b/source/persistency/events/src/G4PEvent.cc index 96726f50ec..19523d6a40 100644 --- a/source/persistency/events/src/G4PEvent.cc +++ b/source/persistency/events/src/G4PEvent.cc @@ -22,7 +22,7 @@ // // // $Id: G4PEvent.cc,v 1.13 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4PEvent diff --git a/source/persistency/events/src/G4PPrimaryParticle.cc b/source/persistency/events/src/G4PPrimaryParticle.cc index 9b1f39e638..ea89d63895 100644 --- a/source/persistency/events/src/G4PPrimaryParticle.cc +++ b/source/persistency/events/src/G4PPrimaryParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4PPrimaryParticle.cc,v 1.3 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PPrimaryParticle.hh" diff --git a/source/persistency/events/src/G4PPrimaryVertex.cc b/source/persistency/events/src/G4PPrimaryVertex.cc index ef8a3e21eb..23de78c94f 100644 --- a/source/persistency/events/src/G4PPrimaryVertex.cc +++ b/source/persistency/events/src/G4PPrimaryVertex.cc @@ -22,7 +22,7 @@ // // // $Id: G4PPrimaryVertex.cc,v 1.9 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PPrimaryVertex.hh" diff --git a/source/persistency/events/src/G4PersistentEventMan.cc b/source/persistency/events/src/G4PersistentEventMan.cc index 88e2c1080e..8cc63a9643 100644 --- a/source/persistency/events/src/G4PersistentEventMan.cc +++ b/source/persistency/events/src/G4PersistentEventMan.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersistentEventMan.cc,v 1.17 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PersistentEventMan // diff --git a/source/persistency/geometry/global/include/G4PAffineTransform.ddl b/source/persistency/geometry/global/include/G4PAffineTransform.ddl index ff59c7a67d..3bb92ae83b 100644 --- a/source/persistency/geometry/global/include/G4PAffineTransform.ddl +++ b/source/persistency/geometry/global/include/G4PAffineTransform.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PAffineTransform.ddl,v 1.6 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // persistenet class of G4AffineTransform diff --git a/source/persistency/geometry/global/include/G4PVSolid.ddl b/source/persistency/geometry/global/include/G4PVSolid.ddl index 9b678c37c3..c25536647f 100644 --- a/source/persistency/geometry/global/include/G4PVSolid.ddl +++ b/source/persistency/geometry/global/include/G4PVSolid.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PVSolid.ddl,v 1.6 2001/07/11 10:02:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/geometry/global/src/G4PAffineTransform.cc b/source/persistency/geometry/global/src/G4PAffineTransform.cc index b46ecad68e..d50f9ee425 100644 --- a/source/persistency/geometry/global/src/G4PAffineTransform.cc +++ b/source/persistency/geometry/global/src/G4PAffineTransform.cc @@ -22,7 +22,7 @@ // // // $Id: G4PAffineTransform.cc,v 1.3 2001/07/11 10:02:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PAffineTransform // diff --git a/source/persistency/geometry/global/src/G4PVSolid.cc b/source/persistency/geometry/global/src/G4PVSolid.cc index 1c3167e722..89fd6a0870 100644 --- a/source/persistency/geometry/global/src/G4PVSolid.cc +++ b/source/persistency/geometry/global/src/G4PVSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVSolid.cc,v 1.3 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PVSolid // diff --git a/source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl b/source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl index 766533cd8f..97116c67ec 100644 --- a/source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl +++ b/source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PGeometryObjectMap.ddl,v 1.9 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class description: diff --git a/source/persistency/geometry/management/include/G4PLogicalVolume.ddl b/source/persistency/geometry/management/include/G4PLogicalVolume.ddl index 70cfdd4b22..554299813d 100644 --- a/source/persistency/geometry/management/include/G4PLogicalVolume.ddl +++ b/source/persistency/geometry/management/include/G4PLogicalVolume.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PLogicalVolume.ddl,v 1.11 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of the class G4LogicalVolume. diff --git a/source/persistency/geometry/management/include/G4PPVParameterised.ddl b/source/persistency/geometry/management/include/G4PPVParameterised.ddl index 0b9b75009b..38800d4e0d 100644 --- a/source/persistency/geometry/management/include/G4PPVParameterised.ddl +++ b/source/persistency/geometry/management/include/G4PPVParameterised.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PPVParameterised.ddl,v 1.6 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PVParameterised. diff --git a/source/persistency/geometry/management/include/G4PPVPlacement.ddl b/source/persistency/geometry/management/include/G4PPVPlacement.ddl index fd1616bdfa..85554701a1 100644 --- a/source/persistency/geometry/management/include/G4PPVPlacement.ddl +++ b/source/persistency/geometry/management/include/G4PPVPlacement.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PPVPlacement.ddl,v 1.6 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PVPlacement. diff --git a/source/persistency/geometry/management/include/G4PPVReplica.ddl b/source/persistency/geometry/management/include/G4PPVReplica.ddl index fa765b7f7d..b1c890a3fc 100644 --- a/source/persistency/geometry/management/include/G4PPVReplica.ddl +++ b/source/persistency/geometry/management/include/G4PPVReplica.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PPVReplica.ddl,v 1.7 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent-capable class of G4PVReplica diff --git a/source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl b/source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl index 3ca0e41ce1..f81acfb294 100644 --- a/source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl +++ b/source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PVPhysicalVolume.ddl,v 1.7 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4VPhysicalVolume. diff --git a/source/persistency/geometry/management/include/G4PersistentGeomMan.hh b/source/persistency/geometry/management/include/G4PersistentGeomMan.hh index f9b0ca832e..707beb7754 100644 --- a/source/persistency/geometry/management/include/G4PersistentGeomMan.hh +++ b/source/persistency/geometry/management/include/G4PersistentGeomMan.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistentGeomMan.hh,v 1.11 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/geometry/management/src/G4PGeometryObjectMap.cc b/source/persistency/geometry/management/src/G4PGeometryObjectMap.cc index 49be9fd64e..560cb0adf6 100644 --- a/source/persistency/geometry/management/src/G4PGeometryObjectMap.cc +++ b/source/persistency/geometry/management/src/G4PGeometryObjectMap.cc @@ -22,7 +22,7 @@ // // // $Id: G4PGeometryObjectMap.cc,v 1.9 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PGeometryObjectMap // diff --git a/source/persistency/geometry/management/src/G4PLogicalVolume.cc b/source/persistency/geometry/management/src/G4PLogicalVolume.cc index 2379d81dc4..ac83ce18a8 100644 --- a/source/persistency/geometry/management/src/G4PLogicalVolume.cc +++ b/source/persistency/geometry/management/src/G4PLogicalVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4PLogicalVolume.cc,v 1.7 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Takashi.Sasaki@kek.jp diff --git a/source/persistency/geometry/management/src/G4PPVParameterised.cc b/source/persistency/geometry/management/src/G4PPVParameterised.cc index 4c5d5feb71..b056bb96da 100644 --- a/source/persistency/geometry/management/src/G4PPVParameterised.cc +++ b/source/persistency/geometry/management/src/G4PPVParameterised.cc @@ -22,7 +22,7 @@ // // // $Id: G4PPVParameterised.cc,v 1.4 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/persistency/geometry/management/src/G4PPVPlacement.cc b/source/persistency/geometry/management/src/G4PPVPlacement.cc index 5edbd89a48..427e55a925 100644 --- a/source/persistency/geometry/management/src/G4PPVPlacement.cc +++ b/source/persistency/geometry/management/src/G4PPVPlacement.cc @@ -22,7 +22,7 @@ // // // $Id: G4PPVPlacement.cc,v 1.3 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/persistency/geometry/management/src/G4PPVReplica.cc b/source/persistency/geometry/management/src/G4PPVReplica.cc index 23433cb463..9287e4948a 100644 --- a/source/persistency/geometry/management/src/G4PPVReplica.cc +++ b/source/persistency/geometry/management/src/G4PPVReplica.cc @@ -22,7 +22,7 @@ // // // $Id: G4PPVReplica.cc,v 1.3 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/persistency/geometry/management/src/G4PVPhysicalVolume.cc b/source/persistency/geometry/management/src/G4PVPhysicalVolume.cc index bca986d282..45cfb02f53 100644 --- a/source/persistency/geometry/management/src/G4PVPhysicalVolume.cc +++ b/source/persistency/geometry/management/src/G4PVPhysicalVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVPhysicalVolume.cc,v 1.5 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Takashi.Sasaki@kek.jp diff --git a/source/persistency/geometry/management/src/G4PersistentGeomMan.cc b/source/persistency/geometry/management/src/G4PersistentGeomMan.cc index c6df6469ab..697675440c 100644 --- a/source/persistency/geometry/management/src/G4PersistentGeomMan.cc +++ b/source/persistency/geometry/management/src/G4PersistentGeomMan.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersistentGeomMan.cc,v 1.16 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PersistentGeomMan // diff --git a/source/persistency/geometry/solids/Boolean/include/G4PBooleanSolid.ddl b/source/persistency/geometry/solids/Boolean/include/G4PBooleanSolid.ddl index e6d60e2c72..3f8bca9a0e 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PBooleanSolid.ddl +++ b/source/persistency/geometry/solids/Boolean/include/G4PBooleanSolid.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PBooleanSolid.ddl,v 1.6 2001/07/11 10:02:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent base class for solids created by boolean operations diff --git a/source/persistency/geometry/solids/Boolean/include/G4PDisplacedSolid.ddl b/source/persistency/geometry/solids/Boolean/include/G4PDisplacedSolid.ddl index 36f9fe2aed..6ad91d215e 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PDisplacedSolid.ddl +++ b/source/persistency/geometry/solids/Boolean/include/G4PDisplacedSolid.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PDisplacedSolid.ddl,v 1.5 2001/07/11 10:02:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent class describing solid placements for boolean operations diff --git a/source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl b/source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl index 5644988a2d..4a1f364e32 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl +++ b/source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PIntersectionSolid.ddl,v 1.5 2001/07/11 10:02:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent class for description of intersection of two CSG solids diff --git a/source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl b/source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl index fe59689368..4d19991d00 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl +++ b/source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PSubtractionSolid.ddl,v 1.5 2001/07/11 10:02:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent class for description of subtraction of two CSG solids: A - B diff --git a/source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl b/source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl index 5bda423fe3..c92d7257b1 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl +++ b/source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PUnionSolid.ddl,v 1.5 2001/07/11 10:02:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent class for description of intersection of two CSG solids diff --git a/source/persistency/geometry/solids/CSG/include/G4PBox.ddl b/source/persistency/geometry/solids/CSG/include/G4PBox.ddl index c069b1a796..cf5c1b811e 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PBox.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PBox.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PBox.ddl,v 1.5 2001/07/11 10:02:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4Box solid. diff --git a/source/persistency/geometry/solids/CSG/include/G4PCSGSolid.ddl b/source/persistency/geometry/solids/CSG/include/G4PCSGSolid.ddl index 9a08dd9f01..6235f4a5f2 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PCSGSolid.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PCSGSolid.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PCSGSolid.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4CSGSolid diff --git a/source/persistency/geometry/solids/CSG/include/G4PCons.ddl b/source/persistency/geometry/solids/CSG/include/G4PCons.ddl index 76815bfa5b..8b4f338f5d 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PCons.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PCons.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PCons.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4Cons solid. diff --git a/source/persistency/geometry/solids/CSG/include/G4PPara.ddl b/source/persistency/geometry/solids/CSG/include/G4PPara.ddl index 8f40b9e294..3ccade0d36 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PPara.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PPara.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PPara.ddl,v 1.7 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PPara solid. diff --git a/source/persistency/geometry/solids/CSG/include/G4PSphere.ddl b/source/persistency/geometry/solids/CSG/include/G4PSphere.ddl index 246c117f55..a44ee404bd 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PSphere.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PSphere.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PSphere.ddl,v 1.7 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PSphere solid. diff --git a/source/persistency/geometry/solids/CSG/include/G4PTorus.ddl b/source/persistency/geometry/solids/CSG/include/G4PTorus.ddl index f54585528d..a82776913b 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PTorus.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PTorus.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PTorus.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PTorus solid. diff --git a/source/persistency/geometry/solids/CSG/include/G4PTrap.ddl b/source/persistency/geometry/solids/CSG/include/G4PTrap.ddl index 29be0669a9..20264c47c7 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PTrap.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PTrap.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PTrap.ddl,v 1.7 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PTrap solid. diff --git a/source/persistency/geometry/solids/CSG/include/G4PTrd.ddl b/source/persistency/geometry/solids/CSG/include/G4PTrd.ddl index c78de77a5b..7c8a5f70e5 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PTrd.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PTrd.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PTrd.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PTrd solid. diff --git a/source/persistency/geometry/solids/CSG/include/G4PTubs.ddl b/source/persistency/geometry/solids/CSG/include/G4PTubs.ddl index 5367d049f2..f900fbe6cf 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PTubs.ddl +++ b/source/persistency/geometry/solids/CSG/include/G4PTubs.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PTubs.ddl,v 1.5 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4PTubs solid. diff --git a/source/persistency/geometry/solids/CSG/src/G4PBox.cc b/source/persistency/geometry/solids/CSG/src/G4PBox.cc index 4ee6358564..4644393c7e 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PBox.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4PBox.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/persistency/geometry/solids/CSG/src/G4PCSGSolid.cc b/source/persistency/geometry/solids/CSG/src/G4PCSGSolid.cc index 949950e560..480cd75224 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PCSGSolid.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PCSGSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4PCSGSolid.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // History: diff --git a/source/persistency/geometry/solids/CSG/src/G4PCons.cc b/source/persistency/geometry/solids/CSG/src/G4PCons.cc index 10f3cd7baa..7968cff762 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PCons.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PCons.cc @@ -22,7 +22,7 @@ // // // $Id: G4PCons.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PCons // diff --git a/source/persistency/geometry/solids/CSG/src/G4PPara.cc b/source/persistency/geometry/solids/CSG/src/G4PPara.cc index febda5947b..5db851f405 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PPara.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PPara.cc @@ -22,7 +22,7 @@ // // // $Id: G4PPara.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PPara // diff --git a/source/persistency/geometry/solids/CSG/src/G4PSphere.cc b/source/persistency/geometry/solids/CSG/src/G4PSphere.cc index 3a249cfaa9..548e6878c0 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PSphere.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PSphere.cc @@ -22,7 +22,7 @@ // // // $Id: G4PSphere.cc,v 1.4 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PSphere diff --git a/source/persistency/geometry/solids/CSG/src/G4PTorus.cc b/source/persistency/geometry/solids/CSG/src/G4PTorus.cc index 16720598d8..1663a19749 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PTorus.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PTorus.cc @@ -22,7 +22,7 @@ // // // $Id: G4PTorus.cc,v 1.4 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PTorus diff --git a/source/persistency/geometry/solids/CSG/src/G4PTrap.cc b/source/persistency/geometry/solids/CSG/src/G4PTrap.cc index 011058291f..078b2281c1 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PTrap.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PTrap.cc @@ -22,7 +22,7 @@ // // // $Id: G4PTrap.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PTrap // diff --git a/source/persistency/geometry/solids/CSG/src/G4PTrd.cc b/source/persistency/geometry/solids/CSG/src/G4PTrd.cc index b88023c8f3..c6ffe7ab87 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PTrd.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PTrd.cc @@ -22,7 +22,7 @@ // // // $Id: G4PTrd.cc,v 1.4 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Implementation for G4Trd class diff --git a/source/persistency/geometry/solids/CSG/src/G4PTubs.cc b/source/persistency/geometry/solids/CSG/src/G4PTubs.cc index 541bc84600..44019d8987 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PTubs.cc +++ b/source/persistency/geometry/solids/CSG/src/G4PTubs.cc @@ -22,7 +22,7 @@ // // // $Id: G4PTubs.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // class G4PTubs diff --git a/source/persistency/geometry/solids/specific/include/G4PHype.ddl b/source/persistency/geometry/solids/specific/include/G4PHype.ddl index cd3954da46..9cf96b54e0 100644 --- a/source/persistency/geometry/solids/specific/include/G4PHype.ddl +++ b/source/persistency/geometry/solids/specific/include/G4PHype.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PHype.ddl,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Persistent version of G4Hype specific solid. diff --git a/source/persistency/geometry/solids/specific/src/G4PHype.cc b/source/persistency/geometry/solids/specific/src/G4PHype.cc index 22f25e065f..c2bd5003c4 100644 --- a/source/persistency/geometry/solids/specific/src/G4PHype.cc +++ b/source/persistency/geometry/solids/specific/src/G4PHype.cc @@ -22,7 +22,7 @@ // // // $Id: G4PHype.cc,v 1.2 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PHype // diff --git a/source/persistency/global/include/G4DatabaseTypes.hh b/source/persistency/global/include/G4DatabaseTypes.hh index 3904ca05ed..9610034902 100644 --- a/source/persistency/global/include/G4DatabaseTypes.hh +++ b/source/persistency/global/include/G4DatabaseTypes.hh @@ -22,7 +22,7 @@ // // // $Id: G4DatabaseTypes.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // file description: diff --git a/source/persistency/global/include/G4PersistentSchema.hh b/source/persistency/global/include/G4PersistentSchema.hh index b72439d6ca..a89a8a8f31 100644 --- a/source/persistency/global/include/G4PersistentSchema.hh +++ b/source/persistency/global/include/G4PersistentSchema.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistentSchema.hh,v 1.7 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // file description: diff --git a/source/persistency/global/include/G4PersistentTypes.hh b/source/persistency/global/include/G4PersistentTypes.hh index 62c0cffd4e..350b3be52f 100644 --- a/source/persistency/global/include/G4PersistentTypes.hh +++ b/source/persistency/global/include/G4PersistentTypes.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistentTypes.hh,v 1.4 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // file description: diff --git a/source/persistency/global/include/G4Pglobals.hh b/source/persistency/global/include/G4Pglobals.hh index 633e892074..4e3ef1af66 100644 --- a/source/persistency/global/include/G4Pglobals.hh +++ b/source/persistency/global/include/G4Pglobals.hh @@ -22,7 +22,7 @@ // // // $Id: G4Pglobals.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // file description: diff --git a/source/persistency/global/include/G4VMaterialMap.hh b/source/persistency/global/include/G4VMaterialMap.hh index 2cc99cfd3f..55b499a05b 100644 --- a/source/persistency/global/include/G4VMaterialMap.hh +++ b/source/persistency/global/include/G4VMaterialMap.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMaterialMap.hh,v 1.2 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VMaterialMap_hh diff --git a/source/persistency/global/include/G4VPersistentSubDbMan.hh b/source/persistency/global/include/G4VPersistentSubDbMan.hh index 4e8b755c8b..1cc6dcc4a8 100644 --- a/source/persistency/global/include/G4VPersistentSubDbMan.hh +++ b/source/persistency/global/include/G4VPersistentSubDbMan.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPersistentSubDbMan.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Abstract class to be used by G4PersistencyManager diff --git a/source/persistency/global/include/G4VPersistentSubMan.hh b/source/persistency/global/include/G4VPersistentSubMan.hh index 53495a90e2..b1f08ec43b 100644 --- a/source/persistency/global/include/G4VPersistentSubMan.hh +++ b/source/persistency/global/include/G4VPersistentSubMan.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPersistentSubMan.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Class Description: // Abstract submanager class to be used by G4PersistencyManager diff --git a/source/persistency/global/src/G4VMaterialMap.cc b/source/persistency/global/src/G4VMaterialMap.cc index 5c38c3c78e..473b7e6458 100644 --- a/source/persistency/global/src/G4VMaterialMap.cc +++ b/source/persistency/global/src/G4VMaterialMap.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMaterialMap.cc,v 1.3 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VMaterialMap.hh" diff --git a/source/persistency/global/src/G4VPersistentSubDbMan.cc b/source/persistency/global/src/G4VPersistentSubDbMan.cc index b07b9535fe..16afac5741 100644 --- a/source/persistency/global/src/G4VPersistentSubDbMan.cc +++ b/source/persistency/global/src/G4VPersistentSubDbMan.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPersistentSubDbMan.cc,v 1.4 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4VPersistentSubDbMan // diff --git a/source/persistency/global/src/G4VPersistentSubMan.cc b/source/persistency/global/src/G4VPersistentSubMan.cc index 9061088b1d..3a6b01ff0c 100644 --- a/source/persistency/global/src/G4VPersistentSubMan.cc +++ b/source/persistency/global/src/G4VPersistentSubMan.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPersistentSubMan.cc,v 1.3 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4VPersistentSubMan // diff --git a/source/persistency/management/include/G4PersistencyManager.hh b/source/persistency/management/include/G4PersistencyManager.hh index b9e955e869..14fd46e342 100644 --- a/source/persistency/management/include/G4PersistencyManager.hh +++ b/source/persistency/management/include/G4PersistencyManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistencyManager.hh,v 1.16 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // History: // 98.01.08 Y.Morita Initial version diff --git a/source/persistency/management/include/G4PersistencyMessenger.hh b/source/persistency/management/include/G4PersistencyMessenger.hh index 996bfe6c68..52d155656f 100644 --- a/source/persistency/management/include/G4PersistencyMessenger.hh +++ b/source/persistency/management/include/G4PersistencyMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistencyMessenger.hh,v 1.5 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT 4 class header file diff --git a/source/persistency/management/include/G4TransactionManager.hh b/source/persistency/management/include/G4TransactionManager.hh index 242d7be3b4..8a009f7d48 100644 --- a/source/persistency/management/include/G4TransactionManager.hh +++ b/source/persistency/management/include/G4TransactionManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4TransactionManager.hh,v 1.8 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class description: diff --git a/source/persistency/management/src/G4PersistencyManager.cc b/source/persistency/management/src/G4PersistencyManager.cc index 731f6fd1b6..57b605ed89 100644 --- a/source/persistency/management/src/G4PersistencyManager.cc +++ b/source/persistency/management/src/G4PersistencyManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersistencyManager.cc,v 1.18 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PersistencyManager // diff --git a/source/persistency/management/src/G4PersistencyMessenger.cc b/source/persistency/management/src/G4PersistencyMessenger.cc index 4ac8023231..d1e7445585 100644 --- a/source/persistency/management/src/G4PersistencyMessenger.cc +++ b/source/persistency/management/src/G4PersistencyMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersistencyMessenger.cc,v 1.8 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4PersistencyMessenger.hh" diff --git a/source/persistency/management/src/G4TransactionManager.cc b/source/persistency/management/src/G4TransactionManager.cc index 9439b4f7f6..b96c4d27d7 100644 --- a/source/persistency/management/src/G4TransactionManager.cc +++ b/source/persistency/management/src/G4TransactionManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4TransactionManager.cc,v 1.8 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4TransactionManager // diff --git a/source/persistency/run/include/G4PRun.ddl b/source/persistency/run/include/G4PRun.ddl index 1aca2d384e..48cb8fc15e 100644 --- a/source/persistency/run/include/G4PRun.ddl +++ b/source/persistency/run/include/G4PRun.ddl @@ -22,7 +22,7 @@ // // // $Id: G4PRun.ddl,v 1.9 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/run/include/G4PersistentRunMan.hh b/source/persistency/run/include/G4PersistentRunMan.hh index 79c557555a..c0d73327e8 100644 --- a/source/persistency/run/include/G4PersistentRunMan.hh +++ b/source/persistency/run/include/G4PersistentRunMan.hh @@ -22,7 +22,7 @@ // // // $Id: G4PersistentRunMan.hh,v 1.10 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description: diff --git a/source/persistency/run/src/G4PRun.cc b/source/persistency/run/src/G4PRun.cc index 74977b8d40..7a263ffe61 100644 --- a/source/persistency/run/src/G4PRun.cc +++ b/source/persistency/run/src/G4PRun.cc @@ -22,7 +22,7 @@ // // // $Id: G4PRun.cc,v 1.7 2001/07/11 10:02:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Run.hh" diff --git a/source/persistency/run/src/G4PersistentRunMan.cc b/source/persistency/run/src/G4PersistentRunMan.cc index 31be13a146..451d95a428 100644 --- a/source/persistency/run/src/G4PersistentRunMan.cc +++ b/source/persistency/run/src/G4PersistentRunMan.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersistentRunMan.cc,v 1.10 2001/07/11 10:02:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class G4PersistentRunMan // diff --git a/source/processes/GNUmakefile b/source/processes/GNUmakefile index dc17329e12..c55928e8eb 100644 --- a/source/processes/GNUmakefile +++ b/source/processes/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.17 2001/12/05 10:07:15 gcosmo Exp $ +# $Id: GNUmakefile,v 1.18 2002/06/13 17:49:26 jwellisc Exp $ # ---------------------------------------------------------------------- # GNUmakefile for processes library, Gabriele Cosmo 27-Jun-1998 # ---------------------------------------------------------------------- @@ -31,6 +31,7 @@ SUBDIRS += hadronic/models/generator/string_common SUBDIRS += hadronic/models/generator/string_fragmentation SUBDIRS += hadronic/models/generator/util SUBDIRS += hadronic/models/radiative_decay +SUBDIRS += hadronic/models/leading_particle SUBLIBS = G4procman G4optical G4decay G4transportation G4parameterisation @@ -46,6 +47,7 @@ SUBLIBS += G4hadronic_qgstring SUBLIBS += G4hadronic_man_gen G4hadronic_preequ G4hadronic_string_common SUBLIBS += G4hadronic_stringfrag G4hadronic_util_gen SUBLIBS += G4hadronic_radioactivedecay +SUBLIBS += G4hadronic_leading_particle ifndef G4INSTALL G4INSTALL = ../.. diff --git a/source/processes/decay/History b/source/processes/decay/History index e7f9eeb5fe..4ea099bbf0 100644 --- a/source/processes/decay/History +++ b/source/processes/decay/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2001/08/22 08:12:34 kurasige Exp $ +$Id: History,v 1.10 2002/02/12 02:14:03 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,13 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +- Feb 12, 02 H.Kurashige(decay-V04-00-01) +- Remove physics table + +- Feb 9, 02 H.Kurashige(decay-V04-00-00) +- Modify Lowest/HighestBinEnergy for physics table + to calculate beta for slow particle + - Aug 22, 01 H.Kurashige(decay-V03-02-01) - Clean up codes diff --git a/source/processes/decay/include/G4Decay.hh b/source/processes/decay/include/G4Decay.hh index 80aee751ce..598db49de5 100644 --- a/source/processes/decay/include/G4Decay.hh +++ b/source/processes/decay/include/G4Decay.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Decay.hh,v 1.7 2001/07/11 10:02:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Decay.hh,v 1.8 2002/02/12 02:14:03 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -40,6 +40,7 @@ // added aPhysicsTable 2 Aug. 1998 H.Kurashige // PreAssignedDecayTime 18 Jan. 2001 H.Kurashige // Add External Decayer 23 Feb. 2001 H.Kurashige +// Remove PhysicsTable 12 Feb. 2002 H.Kurashige // #ifndef G4Decay_h #define G4Decay_h 1 @@ -146,17 +147,8 @@ class G4Decay : public G4VRestDiscreteProcess // 2: More private: - // In G4Decay, thePhysicsTable stores values of - // beta * sqrt( 1 - beta*beta) - // as a function of normalized kinetic enregy (=Ekin/mass) - // TotBin = number of bins in thePhysicsTable - // The PhysicsTable is created for the range of - // from LowestBinValue to HighestBinValue. - const G4double LowestBinValue; - const G4double HighestBinValue; - const G4int TotBin; - - G4PhysicsTable* aPhysicsTable; + // HighestValue. + const G4double HighestValue; // Remainder of life time at rest G4double fRemainderLifeTime; diff --git a/source/processes/decay/include/G4VExtDecayer.hh b/source/processes/decay/include/G4VExtDecayer.hh index 2a6527da55..d2a38048ae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/decay/src/G4Decay.cc b/source/processes/decay/src/G4Decay.cc index e84d8c4841..e35979af01 100644 --- a/source/processes/decay/src/G4Decay.cc +++ b/source/processes/decay/src/G4Decay.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Decay.cc,v 1.11 2001/08/22 08:12:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Decay.cc,v 1.15 2002/02/12 08:57:20 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- @@ -42,6 +42,7 @@ // remove G4ParticleMomentum 6 Feb. 99 H.Kurashige // modified IsApplicable to activate G4Decay for resonances 1 Mar. 00 H.Kurashige // Add External Decayer 23 Feb. 2001 H.Kurashige +// change LowestBinValue,HighestBinValue and TotBin(200) 9 Feb. 2002 // #include "G4Decay.hh" @@ -56,10 +57,7 @@ G4Decay::G4Decay(const G4String& processName) :G4VRestDiscreteProcess(processName, fDecay), verboseLevel(1), - LowestBinValue(1.0e-3), - HighestBinValue(10.0), - TotBin(200), - aPhysicsTable(0), + HighestValue(20.0), pExtDecayer(0) { #ifdef G4VERBOSE @@ -72,10 +70,6 @@ G4Decay::G4Decay(const G4String& processName) G4Decay::~G4Decay() { - if (aPhysicsTable != 0) { - aPhysicsTable->clearAndDestroy(); - delete aPhysicsTable; - } if (pExtDecayer) { delete pExtDecayer; } @@ -104,15 +98,6 @@ G4double G4Decay::GetMeanLifeTime(const G4Track& aTrack, G4ParticleDefinition* aParticleDef = aParticle->GetDefinition(); G4double aLife = aParticleDef->GetPDGLifeTime(); -#ifdef G4VERBOSE - if (GetVerboseLevel()>1) { - G4cerr << "G4Decay::GetMeanLifeTime() "<< G4endl; - G4cerr << "KineticEnergy:" << aParticle->GetKineticEnergy()/GeV <<"[GeV]"; - G4cerr << "Mass:" << aParticle->GetMass()/GeV <<"[GeV]"; - G4cerr << "Life time: "<< aLife/ns << "[ns]" << G4endl; - } -#endif - // check if the particle is stable? if (aParticleDef->GetPDGStable()) { meanlife = DBL_MAX; @@ -126,7 +111,7 @@ G4double G4Decay::GetMeanLifeTime(const G4Track& aTrack, #ifdef G4VERBOSE if (GetVerboseLevel()>1) { - G4cerr << "mean life time: "<< meanlife/ns << "[ns]" << G4endl; + G4cout << "mean life time: "<< meanlife/ns << "[ns]" << G4endl; } #endif @@ -135,9 +120,6 @@ G4double G4Decay::GetMeanLifeTime(const G4Track& aTrack, G4double G4Decay::GetMeanFreePath(const G4Track& aTrack,G4double, G4ForceCondition*) { - // constants - G4bool isOutRange ; - // get particle const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); @@ -147,15 +129,6 @@ G4double G4Decay::GetMeanFreePath(const G4Track& aTrack,G4double, G4ForceConditi G4double aCtau = c_light * aParticleDef->GetPDGLifeTime(); G4double aMass = aParticle->GetMass(); -#ifdef G4VERBOSE - if (GetVerboseLevel()>1) { - G4cerr << "G4Decay::GetMeanFreePath() "<< G4endl; - G4cerr << "KineticEnergy:" << aParticle->GetKineticEnergy()/GeV <<"[GeV]"; - G4cerr << "Mass:" << aMass/GeV <<"[GeV]"; - G4cerr << "c*Tau:" << aCtau/m <<"[m]" <GetPDGStable()) { pathlength = DBL_MAX; @@ -170,24 +143,14 @@ G4double G4Decay::GetMeanFreePath(const G4Track& aTrack,G4double, G4ForceConditi //check if zero mass } else if (aMass < DBL_MIN) { pathlength = DBL_MAX; -#ifdef G4VERBOSE - if (GetVerboseLevel()>1) { - G4cerr << " Zero Mass particle " << G4endl; - } -#endif + } else { //calculate the mean free path // by using normalized kinetic energy (= Ekin/mass) G4double rKineticEnergy = aParticle->GetKineticEnergy()/aMass; - if ( rKineticEnergy > HighestBinValue) { - // beta >> 1 + if ( rKineticEnergy > HighestValue) { + // gamma >> 1 pathlength = ( rKineticEnergy + 1.0)* aCtau; - } else if ( rKineticEnergy > LowestBinValue) { - // check if aPhysicsTable exists - if (aPhysicsTable == NULL) BuildPhysicsTable(*aParticleDef); - // beta is in the range valid for PhysicsTable - pathlength = aCtau * - ((*aPhysicsTable)(0))-> GetValue(rKineticEnergy,isOutRange); } else if ( rKineticEnergy < DBL_MIN ) { // too slow particle #ifdef G4VERBOSE @@ -199,42 +162,16 @@ G4double G4Decay::GetMeanFreePath(const G4Track& aTrack,G4double, G4ForceConditi #endif pathlength = DBL_MIN; } else { - // beta << 1 + // beta <1 pathlength = (aParticle->GetTotalMomentum())/aMass*aCtau ; } } -#ifdef G4VERBOSE - if (GetVerboseLevel()>1) { - G4cerr << "mean free path: "<< pathlength/m << "[m]" << G4endl; - } -#endif - return pathlength; + return pathlength; } void G4Decay::BuildPhysicsTable(const G4ParticleDefinition&) { - // if aPhysicsTableis has already been created, do nothing - if (aPhysicsTable != NULL) return; - - // create aPhysicsTable - if (GetVerboseLevel()>1) G4cerr <<" G4Decay::BuildPhysicsTable() "<< G4endl; - aPhysicsTable = new G4PhysicsTable(1); - - //create physics vector - G4PhysicsLogVector* aVector = new G4PhysicsLogVector( - LowestBinValue, - HighestBinValue, - TotBin); - - G4double beta, gammainv; - // fill physics Vector - G4int i; - for ( i = 0 ; i < TotBin ; i++ ) { - gammainv = 1.0/(aVector->GetLowEdgeEnergy(i) + 1.0); - beta = sqrt((1.0 - gammainv)*(1.0 +gammainv)); - aVector->PutValue(i, beta/gammainv); - } - aPhysicsTable->insert(aVector); + return; } G4VParticleChange* G4Decay::DecayIt(const G4Track& aTrack, const G4Step& ) @@ -381,3 +318,4 @@ G4VParticleChange* G4Decay::DecayIt(const G4Track& aTrack, const G4Step& ) + diff --git a/source/processes/electromagnetic/lowenergy/History b/source/processes/electromagnetic/lowenergy/History index 543b337329..7963f9ac5f 100644 --- a/source/processes/electromagnetic/lowenergy/History +++ b/source/processes/electromagnetic/lowenergy/History @@ -1,4 +1,4 @@ -$Id: History,v 1.127 2001/11/15 15:56:21 pia Exp $ +$Id: History,v 1.148 2002/06/15 17:22:23 pia Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,103 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +15.06-2002 MGP, tag emlowen-V04-00-17 + Bug fix in fluctuations in G4hLowEnergyIonisation + Removed duplicate member function to activate fluorescence + +10.06-2002 MGP, tag emlowen-V04-00-16 + fStopAndKill moved to fStopAndAlive in G4hLowEnergyIonisation + to satisfy UR for activation of further processes for ions + (UR by UKDM) + +07.06-2002 MGP, tag emlowen-V04-00-15 + Fixes to Rayleigh by Francesco Longo and Gerardo Depaola (PRS 371) + +07.06-2002 MGP, tag emlowen-V04-00-14 + Added comments for Software Reference Manual + +03.06-2002 MGP, tag emlowen-V04-00-13 + Fixes to Auger by Alfonso Mantero + Goes with new version of G4LEDATA G4EMLOW1.1 + +03.06-2002 MGP, tag emlowen-V04-00-12 + Introduce Auger implementation (previously handled as + 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 + for each shell are used. Corresponding change is + sampling and integration + VNI Add excitation cross sections and energy + New interpolation algorithm + Goes with new version of G4LEDATA G4EMLOW1.0 + +02.06-2002 MGP, tag emlowen-V04-00-10 + Improvements to PolarizedCompton by F. Longo and G. Depaola + +02.06-2002 MGP, tag emlowen-V04-00-09 + Fixed max length of ntuple variable names for HBOOK + in test/G4ComptonTest + Updates in unit tests and in hTest by V.I. + +28.05-2002 MGP, tag emlowen-V04-00-08 + Code and minor design improvements deriving from reviews, + inspections and Code Wizard + +28.05-2002 MGP, tag emlowen-V04-00-07 + Added protection in G4eIonisationSpectrum + +28.05-2002 MGP, tag emlowen-V04-00-06 + G4ComptonTest and test/GNUmakefile updated to AIDA 2.2 and + Anaphe 4.0.n + +19.04.2002 - MGP, tag emlowen-V04-00-05 + Fixed compilation warnings; added pointer protection in + G4eLowEnergyLoss + +18.04.2002 - MGP, tag emlowen-V04-00-04 + Modification to G4VCrossSectionHandler and + G4LowEnergyPhotoElectric to fix a problem + +18.04.2002 - VNI + G4LowEnergyPhotoElectric: fix in Fluo part + MeanFreePath + calculation using crossSectionHandler and cross sections + directly + +18.04.2002 - MGP, tag emlowen-V04-00-03 + Modification to table calculation for GenericIon as below + +09.04.2002 - VNI + For GenericIons all tables are calculated once now + +03.04.2002 - MGP, tag emlowen-V04-00-02 + Option to activate atomic deexcitation in ionisation processes + +28.03.2002 - VNI + Add Fluorescence flag to electron and hadron ionisation + +27.03.2002 - VNI, tag emlowen-V04-00-01 + Bug fix in hadron Fluo and in deexcitation + +28.02.2002 - MGP, tag emlowen-V04-00-00 + V.Ivanchenko bug fix for GenericIons + +30.11.2001 - MGP, tag emlowen-V03-02-49 + Major physics improvement in electron processes by V.I. + Significant improvement of performance + Requires new version of data: G4EMLOW0.5 + +28.11.2001 - MGP, tag emlowen-V03-02-48 + Fix for compilation on Windows + +27.11.2001 - MGP, tag emlowen-V03-02-47 + Fix by V.I. related to the removal of static inline functions + +23.11.2001 - MGP, tag emlowen-V03-02-46 + Removed static inline functions, as requested by G. Cosmo + to satisfy porting requirements + 15.11.2001 - MGP, tag emlowen-V03-02-45 Bug fix in G4FluoData Physics improvement in Bremsstrahlung diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh index 5ddba33b16..b1696fe779 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) @@ -45,7 +45,6 @@ #include "globals.hh" #include "g4std/vector" -#include "G4AtomicTransitionManager.hh" #include "G4DynamicParticle.hh" class G4AtomicDeexcitation { @@ -57,8 +56,18 @@ public: // Returns a vector contains the photons generated by radiative transitions // (non zero particles) or by non radiative transitions (zero particles) -G4std::vector* GenerateParticles(G4int Z, G4int shellId); + G4std::vector* GenerateParticles(G4int Z, G4int shellId); + void SetCutForSecondaryPhotons(G4double cut); + // Set threshold energy for fluorescence + + void SetCutForAugerElectrons(G4double cut); + // Set threshold energy for Auger electron production + + void ActivateAugerElectronProduction(G4bool val); + // Activate Auger electron production + + private: // Decides wether a radiative transition is possible and, if it is, @@ -74,6 +83,14 @@ private: // Data member which stores the shells to be filled by // the radiative transition G4int newShellId; + + G4double minGammaEnergy; + G4double minElectronEnergy; + G4bool fAuger; + + // Data member wich stores the id of the shell where is the vacancy + // left from the Auger electron + G4int augerVacancyId; }; diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh index 60be78df0b..93cc0c002a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 957da276f7..d30d3c0686 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -51,8 +51,10 @@ class G4AtomicTransition { public: - G4AtomicTransition(G4int,const G4std::vector&,const G4DataVector&, - const G4DataVector&); + G4AtomicTransition(G4int finalShell, + const G4std::vector& ids, + const G4DataVector& energies, + const G4DataVector& probabilities); ~G4AtomicTransition(); // All the data stored and provided by this class are relative to a diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh index d89018d010..5955d09e61 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) @@ -36,8 +36,8 @@ // ------------------------------------------------------------------- // Class description: -// Low Energy Electromagnetic Physics, fills and manages G4AtomicShell -// and G4AtomicTransition objects +// Low Energy Electromagnetic Physics: create or fills and manages G4AtomicShell, +// G4FluoTransition, G4AugerTransition objects. // Further documentation available from http://www.ge.infn.it/geant4/lowE // ------------------------------------------------------------------- @@ -47,9 +47,10 @@ #include "G4ShellData.hh" #include "G4FluoData.hh" -#include "G4AtomicTransition.hh" +#include "G4AugerData.hh" +#include "G4FluoTransition.hh" #include "G4AtomicShell.hh" -#include "g4std/map" +// #include "g4std/map" #include "g4std/vector" #include "globals.hh" @@ -64,20 +65,37 @@ public: // Z is the atomic number of the element, shellIndex is the // index (in EADL) of the shell - const G4AtomicShell* Shell(G4int Z, size_t shellIndex); + G4AtomicShell* Shell(G4int Z, size_t shellIndex) const; // Z is the atomic number of the element, shellIndex is the // index (in EADL) of the final shell for the transition - const G4AtomicTransition* ReachableShell(G4int Z, size_t shellIndex); - + // This function gives, upon Z and the Index of the initial shell where te vacancy is, + // the radiative transition that can happen (originating shell, energy, probability) + const G4FluoTransition* ReachableShell(G4int Z, size_t shellIndex) const ; + + // This function gives, upon Z and the Index of the initial shell where te vacancy is, + // the NON-radiative transition that can happen with originating shell for the transition, and the + // data for the possible auger electrons emitted (originating vacancy, energy amnd probability) + + const G4AugerTransition* ReachableAugerShell(G4int Z, G4int shellIndex) const ; + // This function returns the number of shells of the element // whose atomic number is Z - G4int NumberOfShells(G4int Z); - + G4int NumberOfShells(G4int Z) const; + // This function returns the number of those shells of the element // whose atomic number is Z which are reachable through a radiative // transition - G4int NumberOfReachableShells(G4int Z); + + // This function returns the number of possible radiative transitions for the atom with atomic number Z + // i.e. the number of shell in wich a vacancy can be filled with a radiative transition + + G4int NumberOfReachableShells(G4int Z)const ; + +// This function returns the number of possible NON-radiative transitions for the atom with atomic number Z +// i.e. the number of shell in wich a vacancy can be filled by a NON-radiative transition + + G4int NumberOfReachableAugerShells(G4int Z)const ; // Gives the sum of the probabilities of radiative transition towards the // shell whose index is shellIndex @@ -94,6 +112,9 @@ protected: ~G4AtomicTransitionManager(); private: + // Hide copy constructor and assignment operator + G4AtomicTransitionManager& operator=(const G4AtomicTransitionManager& right); + G4AtomicTransitionManager(const G4AtomicTransitionManager&); static G4AtomicTransitionManager* instance; @@ -103,8 +124,12 @@ private: // the first element of the map is the atomic number Z. // the second element is a vector of G4AtomicTransition*. - G4std::map,G4std::less > transitionTable; - + G4std::map,G4std::less > transitionTable; + + // since Augereffect data r stored as a table in G4AugerData, we have here a pointer to an element of that class itself. + + G4AugerData* augerData; + // Minimum and maximum Z in EADL table containing identities and binding // energies of shells G4int zMin; diff --git a/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh new file mode 100644 index 0000000000..4505fb8229 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh @@ -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: G4AugerData.hh +// GEANT4 tag $Name: geant4-04-01 $ +// +// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) +// +// History: +// ----------- +// 2 June 2002 First committed to cvs +// +// ------------------------------------------------------------------- + +// Class description: +// Low Energy Electromagnetic Physics +// This Class loads and stores all the information of auger effect (shellIds, +// probabilities and energies of the electrons emitted) +// Further documentation available from http://www.ge.infn.it/geant4/lowE + +// ------------------------------------------------------------------- + +#ifndef G4AUGERDATA_HH +#define G4AUGERDATA_HH 1 + +#include "globals.hh" +#include "g4std/vector" +#include "g4std/map" +#include "G4AugerTransition.hh" + +class G4DataVector; + +class G4AugerData +{ +public: + + G4AugerData(); + + ~G4AugerData(); + + // The method returns the number of shells in wich a + // vacancy can be filled by a NON-radiative transition, given the atomic number + size_t NumberOfVacancies(G4int Z) const; + + // Given the index of the vacancy (and the atomic number Z) returns its identity + G4int VacancyId(G4int Z, G4int vacancyIndex) const; + + // Given the index of a vacancy in the atom with the atomc number Z, returns the number of + //shells starting from wich an electron can fill the vacancy + size_t NumberOfTransitions(G4int Z, G4int vacancyIndex) const; + + // Given the atomic number Z, the Index of the initial vacancy shell + // and the index of the starting shell for the + // transition, returns the identity of the shell originating the electron transition + G4int StartShellId(G4int Z, G4int initialVacancyIndex, G4int transitionShellIndex) const; + + // Given the atomic number , the indexes of the starting, the auger originating shell, + // and the transition shell Id, returns the transition energy + G4double StartShellEnergy(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const; + + // Given the atomic number, the index of the starting shell, the auger originating shells, + // and the transition shell Id, returns the transition probability + G4double StartShellProb(G4int Z, G4int vacancyIndex,G4int transitionId,G4int augerIndex) const; + + // Given the atomic number, the index of the starting vacancy shell and the transition shell Id, + // returns the number of shells wich an auger electron can come from. + size_t NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const; + + // Given the atomic number, th index of the starting and the auger originating shell, + // and the transition shell Id, returns the ager originating shell Id + size_t AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const; + + G4std::vector LoadData(G4int Z); + + void BuildAugerTransitionTable(); + + void PrintData(G4int Z); + + + + // Given the atomic number and the vacancy intial shell index returns + // the AugerTransition object related to that shell + + G4AugerTransition* GetAugerTransition(G4int Z, G4int vacancyShellIndex); + + // Given the atomic number returns a vector of possible AugerTransition objects + G4std::vector* GetAugerTransitions(G4int Z); + +private: + + // G4std::map > idMap; + + typedef G4std::map,G4std::less > trans_Table; + trans_Table augerTransitionTable; + + /* + G4std::map >,G4std::less > transProbabilityMap; + G4std::map >,G4std::less > transAugerIdMap; + */ + + G4std::vector nInitShells; + G4std::vector numberOfVacancies; + +}; + +#endif + + + + + diff --git a/source/processes/electromagnetic/lowenergy/include/G4AugerTransition.hh b/source/processes/electromagnetic/lowenergy/include/G4AugerTransition.hh new file mode 100644 index 0000000000..e418acfb55 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/include/G4AugerTransition.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. * +// ******************************************************************** +// +// +// $Id: G4AugerTransition.hh v0.1 +// +// +// Author: Alfonso Mantero (Alfosno.Mantero@ge.infn.it) +// +// History: +// ----------- +// 1 Jun 2002: first Commited to CVS +// ------------------------------------------------------------------- + +// Class description: +// Low Energy Electromagnetic Physics +// This Class stores all the information of auger effect relative +// to one main vacancy in a atom, like possible auger emission with +// relative probabilites, originating shell's Ids, probabilities of +// transition and auger electron energies. +// Further documentation available from http://www.ge.infn.it/geant4/lowE + +// ------------------------------------------------------------------- + +#ifndef G4AugerTransition_h +#define G4AugerTransition_h 1 + +#include "G4DataVector.hh" +#include "globals.hh" +#include "g4std/vector" +#include "g4std/map" + +class G4AugerTransition { + +public: + + G4AugerTransition(G4int finalShell, G4std::vector transIds, + const G4std::map, G4std::less >* idMap, + const G4std::map >* energyMap, + const G4std::map >* probabilityMap); + + ~G4AugerTransition(); + +// All the data stored and provided by this class are relative to a +// given vacancy, whose identity is provided by the FinalShellId() method, +// in an atom of a given material + +// Returns the ids of the shells from wich an auger electron culd came from, given the shell +// from wich the transition electron comes from. + + const G4std::vector* AugerOriginatingShellIds(G4int startShellId) const; + +// Returns the ids of the shells from wich an electron cuuld fill the vacancy in finalShellId + + const G4std::vector* TransitionOriginatingShellIds() const; + +// Returns the energiess of the possible auger electrons, given th shell +// from wich the transition electron comes from. + + const G4DataVector* AugerTransitionEnergies(G4int startShellId) const; + +// Returns the emission probabilities of the auger electrons, given th shell +// from wich the transition electron comes from. + + const G4DataVector* AugerTransitionProbabilities(G4int startShellId) const; + +// returns the id of the shell in wich the transition electron arrives + + const G4int FinalShellId() const; + +// Returns the id of the shell from wich come the auger electron , given the shell +// from wich the transition electron comes from and the index number. + + G4int AugerOriginatingShellId(G4int index, G4int startShellId) const; + +// Returns the energy of the auger electron, given the shell +// from wich the transition electron comes from and the index number. + + G4double AugerTransitionEnergy(G4int index, G4int startShellId) const; + +// Returns the probability of the auger emission, given the shell +// from wich the transition electron comes from and the index number. + + G4double AugerTransitionProbability(G4int index, G4int startShellId) const; + +// Returns the id of the shell form wich the transition electron come from + + G4int TransitionOriginatingShellId(G4int index) const; + + +private: + + G4int finalShellId; + G4std::map,G4std::less > augerOriginatingShellIdsMap; + G4std::map > augerTransitionEnergiesMap; + G4std::map > augerTransitionProbabilitiesMap; + G4std::vector transitionOriginatingShellIds; + +}; + +#endif + + diff --git a/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungCrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungCrossSectionHandler.hh index 59f989b5f5..99295ba323 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungCrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungCrossSectionHandler.hh @@ -71,9 +71,12 @@ protected: G4std::vector* BuildCrossSectionsForMaterials(const G4DataVector& energyVector, const G4DataVector* energyCuts); - private: + // Hide copy constructor and assignment operator + G4BremsstrahlungCrossSectionHandler& operator=(const G4BremsstrahlungCrossSectionHandler& right); + G4BremsstrahlungCrossSectionHandler(const G4BremsstrahlungCrossSectionHandler&); + const G4VEnergySpectrum* theBR; G4VDataSetAlgorithm* interp; diff --git a/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh b/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh index ef57c53d4e..36d6c9bf96 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 ef6f474ec1..db13bbe491 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompositeEMDataSet.hh,v 1.3 2001/10/08 15:27:01 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CompositeEMDataSet.hh,v 1.4 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -81,6 +81,10 @@ public: private: + // Hide copy constructor and assignment operator + G4CompositeEMDataSet& operator=(const G4CompositeEMDataSet& right); + G4CompositeEMDataSet(const G4CompositeEMDataSet&); + void LoadData(const G4String& fileName); G4VDataSetAlgorithm* algorithm; diff --git a/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh index d555c99309..4249e12b28 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CrossSectionHandler.hh,v 1.6 2001/10/05 18:25:19 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CrossSectionHandler.hh,v 1.7 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 3c4e35a5c2..c29c698011 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 49e5dac361..3692b30437 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EMDataSet.hh,v 1.2 2001/10/08 07:45:32 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4EMDataSet.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -56,18 +56,24 @@ public: G4EMDataSet(G4int Z, G4DataVector* points, G4DataVector* values, - G4VDataSetAlgorithm* interpolation, + const G4VDataSetAlgorithm* interpolation, G4double unitE = MeV, G4double unitData = barn); G4EMDataSet(G4int Z, const G4String& dataFile, - G4VDataSetAlgorithm* interpolation, + const G4VDataSetAlgorithm* interpolation, G4double unitE = MeV, G4double unitData = barn); ~G4EMDataSet(); G4double FindValue(G4double e, G4int id = 0) const; + virtual const G4VEMDataSet* GetComponent(G4int i) const; + + virtual void AddComponent(G4VEMDataSet* dataSet); + + virtual size_t NumberOfComponents() const; + void PrintData() const; const G4DataVector& GetEnergies(G4int i) const { return *energies; } @@ -75,6 +81,10 @@ public: private: + // Hide copy constructor and assignment operator + G4EMDataSet& operator=(const G4EMDataSet& right); + G4EMDataSet(const G4EMDataSet&); + void LoadData(const G4String& dataFile); G4int FindBinLocation(G4double energy) const; @@ -84,7 +94,7 @@ private: G4DataVector* energies; // Owned pointer G4DataVector* data; // Owned pointer - G4VDataSetAlgorithm* algorithm; // Owned pointer + const G4VDataSetAlgorithm* algorithm; // Owned pointer G4double unit1; G4double unit2; diff --git a/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh b/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh index 19fddce620..7832fbfd45 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh @@ -22,8 +22,6 @@ // // -// $Id: G4FluoData.hh,v 1.1 ????? -// GEANT4 tag $Name: geant4-04-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -48,7 +46,7 @@ #include "g4std/vector" #include "g4std/map" - +class G4FluoTransition; class G4DataVector; class G4FluoData @@ -72,28 +70,37 @@ public: // Given the indexes of the starting and final shells for the // transition, returns the identity of the starting one - G4int StartShellId(G4int initIndex,G4int vacancyIndex); + G4int StartShellId(G4int initIndex, G4int vacancyIndex) const; // Given the indexes of the starting and final shells for the // transition, returns the transition energy - G4double StartShellEnergy(G4int initIndex,G4int vacancyIndex); + G4double StartShellEnergy(G4int initIndex, G4int vacancyIndex) const; // Given the indexes of the starting and final shells for the // transition, returns the probability of this transition - G4double StartShellProb(G4int initIndex,G4int vacancyIndex); + G4double StartShellProb(G4int initIndex, G4int vacancyIndex) const; - void LoadData( G4int Z); + void LoadData(G4int Z); void PrintData(); + //void BuildFluoTransitionTable(); + + //G4std::vector GetFluoTransitions(G4int Z); + //G4FluoTransition GetFluoTransition(G4int Z, G4int shellId); + private: + // Hide copy constructor and assignment operator + G4FluoData& operator=(const G4FluoData& right); + G4FluoData(const G4FluoData&); + G4std::map > idMap; G4std::map > energyMap; G4std::map > probabilityMap; G4std::vector nInitShells; G4int numberOfVacancies; - + G4std::map,G4std::less > fluoTransitionTable; }; #endif diff --git a/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh b/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh new file mode 100644 index 0000000000..fed836a45e --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.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. * +// ******************************************************************** +// +// +// $Id: G4FluoTransition.hh,v 1.2 ???? +// GEANT4 tag $Name: geant4-04-01 $ +// +// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) +// +// History: +// ----------- +// 16 Sept 2001 Modofied according to a design iteration in the +// LowEnergy category +// +// ------------------------------------------------------------------- + +// Class description: +// Low Energy Electromagnetic Physics, a data container +// Further documentation available from http://www.ge.infn.it/geant4/lowE + +// ------------------------------------------------------------------- + + +#ifndef G4FluoTransition_h +#define G4FluoTransition_h 1 + +#include "G4DataVector.hh" +#include "globals.hh" +#include "g4std/vector" + +class G4FluoTransition { + +public: + + G4FluoTransition(G4int,const G4std::vector&,const G4DataVector&, + const G4DataVector&); + + ~G4FluoTransition(); + + // All the data stored and provided by this class are relative to a + // given vacancy, whose identity is provided by the FinalShellId() method, + // in an atom of a given material + + // Returns the identities of the originating shells for the transitions + const G4std::vector& OriginatingShellIds() const; + + // Return the energies of the transitions + const G4DataVector& TransitionEnergies() const; + + // Return the probabilities of the transitions + const G4DataVector& TransitionProbabilities() const; + + // Return the identity if the vacancy + const G4int FinalShellId() const; + + // Given the index of the originating shells returns its identity + G4int OriginatingShellId(G4int index) const; + + // Given the index of the originating shells returns the energy + // of the transition starting from it + G4double TransitionEnergy(G4int index) const; + + // Given the index of the originating shells returns the probability + // of the transition starting from it + G4double TransitionProbability(G4int index) const; + +private: + + G4int finalShellId; + G4std::vector originatingShellIds; + G4DataVector transitionEnergies; + G4DataVector transitionProbabilities; + +}; + +#endif + diff --git a/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh index d5cdb46843..d1d9e01e31 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LinInterpolation.hh,v 1.1 2001/11/29 19:01:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LinInterpolation.hh,v 1.2 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -57,10 +57,9 @@ public: const G4DataVector& energies, const G4DataVector& data) const; - virtual G4VDataSetAlgorithm* Clone() const { return new G4LinInterpolation; } + G4VDataSetAlgorithm* Clone() const; private: - // Hide copy constructor and assignment operator diff --git a/source/processes/electromagnetic/lowenergy/include/G4LinLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LinLogInterpolation.hh new file mode 100644 index 0000000000..1b78f61630 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/include/G4LinLogInterpolation.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. * +// ******************************************************************** +// +// +// +// Author: Vladimir Ivanchenko (Vladimir.Ivantchenko@cern.ch) +// +// History: +// ----------- +// 27 May 2002 VI Created +// +// ------------------------------------------------------------------- +// Class description: +// Lin-Log interpolation of a data set + +// ------------------------------------------------------------------- + +#ifndef G4LINLOGINTERPOLATION_HH +#define G4LINLOGINTERPOLATION_HH 1 + +#include "globals.hh" +#include "G4VDataSetAlgorithm.hh" +#include "G4DataVector.hh" + +class G4LinLogInterpolation : public G4VDataSetAlgorithm { + +public: + + G4LinLogInterpolation(); + + ~G4LinLogInterpolation(); + + G4double Calculate(G4double point, G4int bin, + const G4DataVector& energies, + const G4DataVector& data) const; + + virtual G4VDataSetAlgorithm* Clone() const { return new G4LinLogInterpolation; } + +private: + + + // Hide copy constructor and assignment operator + +}; + +#endif + + + + + + + + + + + diff --git a/source/processes/electromagnetic/lowenergy/include/G4LinLogLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LinLogLogInterpolation.hh new file mode 100644 index 0000000000..c6bee55e3a --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/include/G4LinLogLogInterpolation.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. * +// ******************************************************************** +// +// +// Author: Vladimir Ivanchenko (Vladimir.Ivantchenko@cern.ch) +// +// History: +// ----------- +// 27 May 2002 VI Created +// +// ------------------------------------------------------------------- +// Class description: +// Lin-Log-Log interpolation of a data set + +// ------------------------------------------------------------------- + +#ifndef G4LINLOGLOGINTERPOLATION_HH +#define G4LINLOGLOGINTERPOLATION_HH 1 + +#include "globals.hh" +#include "G4VDataSetAlgorithm.hh" +#include "G4DataVector.hh" + +class G4LinLogLogInterpolation : public G4VDataSetAlgorithm { + +public: + + G4LinLogLogInterpolation(); + + ~G4LinLogLogInterpolation(); + + G4double Calculate(G4double point, G4int bin, + const G4DataVector& energies, + const G4DataVector& data) const; + + virtual G4VDataSetAlgorithm* Clone() const; + +private: + + + // Hide copy constructor and assignment operator + +}; + +#endif + + + + + + + + + + + diff --git a/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh index 8c3034818e..42d499147e 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogLogInterpolation.hh,v 1.2 2001/10/08 07:45:33 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LogLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -57,7 +57,7 @@ public: const G4DataVector& energies, const G4DataVector& data) const; - virtual G4VDataSetAlgorithm* Clone() const { return new G4LogLogInterpolation; } + virtual G4VDataSetAlgorithm* Clone() const; private: diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh index d87652ac1b..3fa45f6e36 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh @@ -23,7 +23,7 @@ // // ------------------------------------------------------------------- // $Id: G4LowEnergyBremsstrahlung.hh,v 1.28 2001/11/29 22:47:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: A. Forti // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh index 8112d37f93..a5c559aebd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 2a43e55df9..d1b4c74a41 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 45ef4b8c93..c1ee5087ea 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.34 2001/11/29 22:47:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LowEnergyIonisation.hh,v 1.36 2002/06/01 03:14:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: A. Forti // @@ -35,6 +35,7 @@ // 18 Oct 2001 M.G. Pia Revision to improve code quality and // consistency with design // 29 Nov 2001 V.Ivanchenko New parametrisation of EEDL data +// 31 May 2002 V.Ivanchenko Add Auger flag // // ------------------------------------------------------------------- @@ -46,7 +47,7 @@ // -------------------------------------------------------------- -#ifndef G4lOWENERGYIONISATION_HH +#ifndef G4LOWENERGYIONISATION_HH #define G4LOWENERGYIONISATION_HH 1 #include "G4eLowEnergyLoss.hh" @@ -83,6 +84,8 @@ public: void SetCutForLowEnSecPhotons(G4double cut); void SetCutForLowEnSecElectrons(G4double cut); + + void ActivateAuger(G4bool val); protected: diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh index 53859ff61e..8d9d59c2e1 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LowEnergyPhotoElectric.hh,v 1.23 2001/10/08 07:45:34 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LowEnergyPhotoElectric.hh,v 1.25 2002/06/01 03:14:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) @@ -32,6 +32,7 @@ // 02 Mar 1999 A. Forti 1st implementation // 12 Aug 2001 MGP Major revision according to a design iteration // 16 Sept 2001 E. Guardincerri Added fluorescence generation +// 31 May 2002 V.Ivanchenko Add cut on Auger electrons // // ------------------------------------------------------------------- @@ -72,6 +73,10 @@ public: void SetCutForLowEnSecPhotons(G4double); + void SetCutForLowEnSecElectrons(G4double); + + void ActivateAuger(G4bool); + // For testing purpose only G4double DumpMeanFreePath(const G4Track& aTrack, G4double previousStepSize, @@ -104,6 +109,7 @@ private: const G4double intrinsicHighEnergyLimit; G4double cutForLowEnergySecondaryPhotons; + G4double cutForLowEnergySecondaryElectrons; G4AtomicDeexcitation deexcitationManager; }; diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh index 62b7776a07..eaeab1eaab 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LowEnergyPolarizedCompton.hh,v 1.7 2001/10/24 09:07:20 flongo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LowEnergyPolarizedCompton.hh,v 1.8 2002/05/31 18:11:45 flongo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file @@ -37,6 +37,11 @@ // // 17 October 2001 - F.Longo Major revision according to design iteration // +// 21 February 2002 - F.Longo Revisions with A.Zoglauer and G.Depaola +// - better description of parallelism +// - system of ref change method improved +// +// // Class description: // Low Energy electromagnetic process, Polarised Compton scattering // Further documentation available from http://www.ge.infn.it/geant4/lowE @@ -100,18 +105,15 @@ private: G4VCrossSectionHandler* crossSectionHandler; G4VRangeTest* rangeTest; - - - const G4double intrinsicLowEnergyLimit; // intrinsic validity range const G4double intrinsicHighEnergyLimit; // specific methods for polarization - G4ThreeVector SetRandomPolarization(G4ThreeVector& direction0); // Random Polarization + G4ThreeVector GetRandomPolarization(G4ThreeVector& direction0); // Random Polarization + G4ThreeVector GetPerpendicularPolarization(const G4ThreeVector& direction0, const G4ThreeVector& polarization0) const; G4ThreeVector SetPerpendicularVector(G4ThreeVector& a); // temporary - G4ThreeVector SetNewPolarization(G4double epsilon, G4double sinSqrTheta, G4double phi, G4double cosTheta); G4double SetPhi(G4double, G4double); diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh index d7b7f50b9f..4ea949fb54 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh b/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh index 9c486c65ed..457d749133 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b74e60d5db..b73d04a118 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RangeTest.hh,v 1.1 2001/10/08 07:51:42 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4RangeTest.hh,v 1.2 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -53,7 +53,7 @@ public: G4RangeTest() { } - virtual ~G4RangeTest() { } + virtual ~G4RangeTest(); virtual G4bool Escape(const G4ParticleDefinition* particle, const G4Material* material, diff --git a/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh index 7a04a27bc6..fba2af379e 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SemiLogInterpolation.hh,v 1.2 2001/10/08 07:45:35 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SemiLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -57,7 +57,7 @@ public: const G4DataVector& energies, const G4DataVector& data) const; - virtual G4VDataSetAlgorithm* Clone() const { return new G4SemiLogInterpolation; } + virtual G4VDataSetAlgorithm* Clone() const; private: diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh index d98b13ac92..0a4807a7cf 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellData.hh,v 1.1 2001/08/20 16:36:01 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ShellData.hh,v 1.2 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -69,7 +69,11 @@ public: private: - G4int zMin; + // Hide copy constructor and assignment operator + G4ShellData& operator=(const G4ShellData& right); + G4ShellData(const G4ShellData&); + + G4int zMin; G4int zMax; G4std::map > idMap; diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh index ed3ffd8f24..e4c5b9a677 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellEMDataSet.hh,v 1.3 2001/09/10 18:05:16 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ShellEMDataSet.hh,v 1.4 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -81,6 +81,10 @@ public: private: + // Hide copy constructor and assignment operator + G4ShellEMDataSet& operator=(const G4ShellEMDataSet& right); + G4ShellEMDataSet(const G4ShellEMDataSet&); + void LoadData(const G4String& fileName); G4int z; diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellVacancy.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellVacancy.hh index 84e512d649..2c650513d6 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellVacancy.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellVacancy.hh @@ -29,6 +29,7 @@ // History: // ----------- // 21 Sept 2001 Elena Guardincerri Created +// 25 Mar 2002 V.Ivanchenko Change AverageNOfIonisations int->double // // ------------------------------------------------------------------- @@ -43,7 +44,6 @@ #include "globals.hh" #include "g4std/vector" -//#include "g4std/map" class G4VEMDataSet; class G4Material; @@ -64,13 +64,12 @@ public: private: - G4int AverageNOfIonisations(const G4Material* material, - const G4Element* element, - G4double energy, - G4double eLoss) const; + G4double AverageNOfIonisations(const G4Material* material, + G4int index, + G4double energy, + G4double eLoss) const; G4std::vector xsis; - }; #endif diff --git a/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh index b0c4ab644a..748ea23404 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCrossSectionHandler.hh,v 1.9 2001/10/10 09:49:29 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VCrossSectionHandler.hh,v 1.11 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -30,6 +30,7 @@ // ----------- // 16 Sep 2001 MGP Created // 26 Sep 2001 V.Ivanchenko Hide copy constructor and assignement operator +// 18 Apr 2002 V.Ivanchenko Move member function ValueForMaterial to public // // ------------------------------------------------------------------- @@ -86,6 +87,8 @@ public: G4double FindValue(G4int Z, G4double e, G4int shellIndex) const; + G4double ValueForMaterial(const G4Material* material, G4double e) const; + void LoadData(const G4String& dataFile); void LoadShellData(const G4String& dataFile); @@ -98,19 +101,16 @@ protected: G4int NumberOfComponents(G4int Z) const; - G4double ValueForMaterial(const G4Material* material, G4double e) const; - void ActiveElements(); // Factory method - virtual G4std::vector* BuildCrossSectionsForMaterials( - const G4DataVector& energyVector, - const G4DataVector* energyCuts = 0) = 0; + virtual G4std::vector* BuildCrossSectionsForMaterials(const G4DataVector& energyVector, + const G4DataVector* energyCuts = 0) = 0; // Factory method virtual G4VDataSetAlgorithm* CreateInterpolation(); - G4VDataSetAlgorithm* GetInterpolation() const { return interpolation; } + const G4VDataSetAlgorithm* GetInterpolation() const { return interpolation; } private: diff --git a/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh b/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh index ed89afbe81..73b4a2a92d 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDataSetAlgorithm.hh,v 1.5 2001/10/09 12:13:48 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VDataSetAlgorithm.hh,v 1.6 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -62,7 +62,7 @@ private: // Hide copy constructor and assignment operator G4VDataSetAlgorithm(const G4VDataSetAlgorithm&); - G4VDataSetAlgorithm & operator=(const G4VDataSetAlgorithm &right); + G4VDataSetAlgorithm& operator=(const G4VDataSetAlgorithm& right); }; diff --git a/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh index 842688f51a..80f11a48a0 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEMDataSet.hh,v 1.5 2001/10/04 14:03:57 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VEMDataSet.hh,v 1.6 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -60,11 +60,11 @@ public: virtual void PrintData() const = 0; - virtual const G4VEMDataSet* GetComponent(G4int i) const { return 0; } + virtual const G4VEMDataSet* GetComponent(G4int i) const = 0; - virtual void AddComponent(G4VEMDataSet* dataSet) { } + virtual void AddComponent(G4VEMDataSet* dataSet) = 0; - virtual size_t NumberOfComponents() const { return 0; } + virtual size_t NumberOfComponents() const = 0; virtual const G4DataVector& GetEnergies(G4int i) const = 0; virtual const G4DataVector& GetData(G4int i) const = 0; diff --git a/source/processes/electromagnetic/lowenergy/include/G4VEnergySpectrum.hh b/source/processes/electromagnetic/lowenergy/include/G4VEnergySpectrum.hh index 535127714e..9a4a1caa43 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VEnergySpectrum.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VEnergySpectrum.hh @@ -86,9 +86,8 @@ public: virtual G4double MaxEnergyOfSecondaries(G4double kineticEnergy, G4int Z = 0, const G4ParticleDefinition* pd = 0) const = 0; - - virtual G4double Excitation(G4int Z, G4double kineticEnergy) const - {return 0.0;}; + + virtual G4double Excitation(G4int Z, G4double kineticEnergy) const = 0; virtual void PrintData() const = 0; @@ -97,8 +96,8 @@ protected: private: // Hide copy constructor and assignment operator - G4VEnergySpectrum(const G4VEnergySpectrum&); - G4VEnergySpectrum & operator=(const G4VEnergySpectrum &right); + G4VEnergySpectrum(const G4VEnergySpectrum&); + G4VEnergySpectrum& operator=(const G4VEnergySpectrum &right); }; diff --git a/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh b/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh index 8e7eb92e2a..b37874ee8a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 c531f29797..9c6c33cfeb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 f3faee0abe..59225c4d4b 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eBremsstrahlungSpectrum.hh,v 1.2 2001/11/29 19:01:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eBremsstrahlungSpectrum.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // @@ -88,8 +88,9 @@ public: G4double MaxEnergyOfSecondaries(G4double kineticEnergy, G4int Z = 0, - const G4ParticleDefinition* pd=0) const - { return kineticEnergy; } + const G4ParticleDefinition* pd=0) const; + + G4double Excitation(G4int Z, G4double kineticEnergy) const; void PrintData() const; diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh index 10a6ddcfa3..f6433f0628 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eIonisationCrossSectionHandler.hh,v 1.2 2001/10/10 17:37:27 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eIonisationCrossSectionHandler.hh,v 1.4 2002/05/28 09:15:26 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // @@ -47,7 +47,7 @@ // #ifndef G4EIONISATIONCROSSSECTIONHANDLER_HH -#define GG4EIONISATIONCROSSSECTIONHANDLER_HH 1 +#define G4EIONISATIONCROSSSECTIONHANDLER_HH 1 #include "G4VCrossSectionHandler.hh" #include "globals.hh" @@ -78,7 +78,11 @@ protected: private: - const G4VEnergySpectrum* theParam; + // Hide copy constructor and assignment operator + G4eIonisationCrossSectionHandler& operator=(const G4eIonisationCrossSectionHandler& right); + G4eIonisationCrossSectionHandler(const G4eIonisationCrossSectionHandler&); + + const G4VEnergySpectrum* theParam; G4VDataSetAlgorithm* interp; }; diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh index 7bc4aab710..87fff2ef3e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 68f3bd9c73..7cde126bdd 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eIonisationSpectrum.hh,v 1.3 2001/11/29 19:01:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eIonisationSpectrum.hh,v 1.4 2002/05/30 19:52:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // @@ -38,6 +38,7 @@ // 10.10.01 MGP Revision to improve code quality and // consistency with design // 29.11.01 V.Ivanchenko Parametrisation is updated +// 30.05.02 VI Add inline functions // // ------------------------------------------------------------------- @@ -50,11 +51,12 @@ // ------------------------------------------------------------------- #ifndef G4EIONISATIONSPECTRUM_HH -#define GG4EIONISATIONSPECTRUM_HH 1 +#define G4EIONISATIONSPECTRUM_HH 1 #include "G4VEnergySpectrum.hh" +#include "G4eIonisationParameters.hh" -class G4eIonisationParameters; +//class G4eIonisationParameters; class G4DataVector; class G4eIonisationSpectrum : public G4VEnergySpectrum @@ -108,8 +110,25 @@ private: G4eIonisationParameters* theParam; G4double lowestE; G4double factor; - G4int verbose; + G4int iMax; + G4int verbose; }; +inline G4double G4eIonisationSpectrum::Function(G4double x, + const G4DataVector& p) const +{ + G4double f = 1.0 - p[0] - p[iMax]*x + + x*x*(1.0 - p[iMax] + (1.0/(1.0 - x) - p[iMax])/(1.0 - x)) + + 0.5*p[0]/x; + + return f; +} + +inline G4double G4eIonisationSpectrum::Excitation(G4int Z, G4double e) const +{ + return theParam->Excitation(Z, e); +} + + #endif diff --git a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh index 53293c3415..7e4dfd695d 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eLowEnergyLoss.hh,v 1.7 2001/11/23 11:45:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eLowEnergyLoss.hh,v 1.8 2002/03/28 11:48:56 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- @@ -56,6 +56,7 @@ // 10.02.00 modifications, new e.m. structure , L.Urban // 18.10.01 Revision to improve code quality and consistency with design // 23.11.01 V.Ivanchenko Move static member-functions from header to source +// 28.03.02 V.Ivanchenko add fluorescence flag // ------------------------------------------------------------ #ifndef G4eLowEnergyLoss_h @@ -137,7 +138,12 @@ class G4eLowEnergyLoss : public G4VeLowEnergyLoss static G4double GetLowerBoundEloss(); static G4double GetUpperBoundEloss(); static G4int GetNbinEloss(); - + + void ActivateFluorescence(G4bool val); + // Set fluorescence flag on/off + + G4bool Fluorescence() const; + // Get flurescence flag protected: @@ -225,6 +231,8 @@ class G4eLowEnergyLoss : public G4VeLowEnergyLoss static G4PhysicsTable* thepRangeCoeffCTable; static G4EnergyLossMessenger* eLossMessenger; + + G4bool theFluo; // Fluorescence flag }; diff --git a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc index 4ed405fe02..59235eb24f 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc +++ b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eLowEnergyLoss.icc,v 1.3 2001/07/11 10:02:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eLowEnergyLoss.icc,v 1.4 2002/03/28 11:48:58 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // --------------------------------------------------------------- // GEANT 4 class inlined methods file @@ -37,6 +37,7 @@ // ------------------------------------------------------------- // // 08-09-98: cleanup +// 28-03-02 V.Ivanchenko add fluorescence flag // // --------------------------------------------------------------- @@ -99,9 +100,19 @@ inline G4double G4eLowEnergyLoss::GetContinuousStepLimit( inline G4bool G4eLowEnergyLoss::IsApplicable(const G4ParticleDefinition& particle) { - return( (&particle == G4Electron::Electron()) + return( (&particle == G4Electron::Electron()) ||(&particle == G4Positron::Positron()) ); } +inline void G4eLowEnergyLoss::ActivateFluorescence(G4bool val) +{ + theFluo = val; +} + +inline G4bool G4eLowEnergyLoss::Fluorescence() const +{ + return theFluo; +} + // diff --git a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyIonisation.hh b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyIonisation.hh index 09ce864fb9..e679f9c5d2 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyIonisation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyIonisation.hh @@ -44,6 +44,7 @@ // 23 Oct 2000 V.Ivanchenko Renew comments // 30 Oct 2001 V.Ivanchenko Add minGammaEnergy and minElectronEnergy // 07 Dec 2001 V.Ivanchenko Add SetFluorescence method +// 26 Feb 2002 V.Ivanchenko Add initialMass for GenericIons // ------------------------------------------------------------ // Class Description: @@ -186,6 +187,9 @@ public: // With description void SetCutForAugerElectrons(G4double cut); // Set threshold energy for Auger electron production + void ActivateAugerElectronProduction(G4bool val); + // Set Auger electron production flag on/off + protected: @@ -294,6 +298,7 @@ private: G4double fRangeNow ; // G4double charge; // G4double chargeSquare; // + G4double initialMass; // mass to calculate Lambda tables G4AtomicDeexcitation deexcitationManager; G4ShellVacancy* shellVacancy; diff --git a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh index 080b0b047f..c196ffe3f7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc index 1e913a9ad4..7a9d45b55e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // --------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc index 9155c2c9a8..890d6276e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) @@ -37,13 +37,18 @@ #include "G4AtomicDeexcitation.hh" #include "Randomize.hh" #include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4AtomicTransitionManager.hh" +#include "G4FluoTransition.hh" -G4AtomicDeexcitation::G4AtomicDeexcitation() -{ } +G4AtomicDeexcitation::G4AtomicDeexcitation(): + minGammaEnergy(250.*eV), + minElectronEnergy(250.*eV), + fAuger(false) +{} G4AtomicDeexcitation::~G4AtomicDeexcitation() - -{ } +{} G4std::vector* G4AtomicDeexcitation::GenerateParticles(G4int Z,G4int shellId) { @@ -54,7 +59,7 @@ G4std::vector* G4AtomicDeexcitation::GenerateParticles(G4int // The aim of this loop is to generate more than one fluorecence photon // from the same ionizing event - while (provShellId >= 0) +do { if (counter == 0) // First call to GenerateParticles(...): @@ -62,11 +67,11 @@ G4std::vector* G4AtomicDeexcitation::GenerateParticles(G4int { provShellId = SelectTypeOfTransition(Z, shellId); - if ( provShellId >0) + if ( provShellId >0) { aParticle = GenerateFluorescence(Z,shellId,provShellId); } - else if ( provShellId ==-1) + else if ( provShellId == -1) { aParticle = GenerateAuger(Z, shellId); } @@ -80,22 +85,24 @@ G4std::vector* G4AtomicDeexcitation::GenerateParticles(G4int // newShellId is given by GenerateFluorescence(...) { provShellId = SelectTypeOfTransition(Z,newShellId); - if ( provShellId >0) + if (provShellId >0) { aParticle = GenerateFluorescence(Z,newShellId,provShellId); } - else if ( provShellId ==-1) + else if ( provShellId == -1) { aParticle = GenerateAuger(Z, newShellId); - } + } else { G4Exception("G4AtomicDeexcitation: starting shell uncorrect: check it"); } } counter++; - vectorOfParticles->push_back(aParticle); - } + if (aParticle != 0) {vectorOfParticles->push_back(aParticle);} + else {provShellId = -2;} + } + while (provShellId >= 0); return vectorOfParticles; } @@ -105,12 +112,13 @@ const G4int G4AtomicDeexcitation::SelectTypeOfTransition(G4int Z, G4int shellId) if (shellId <=0 ) {G4Exception("G4AtomicDeexcitation: zero or negative shellId");} - G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); + const G4AtomicTransitionManager* transitionManager = + G4AtomicTransitionManager::Instance(); G4int provShellId = -1; G4int shellNum = 0; G4int maxNumOfShells = transitionManager->NumberOfReachableShells(Z); - const G4AtomicTransition* refShell = transitionManager->ReachableShell(Z,maxNumOfShells-1); + const G4FluoTransition* refShell = transitionManager->ReachableShell(Z,maxNumOfShells-1); // This loop gives shellNum the value of the index of shellId // in the vector storing the list of the shells reachable through @@ -129,7 +137,7 @@ const G4int G4AtomicDeexcitation::SelectTypeOfTransition(G4int Z, G4int shellId) G4double partialProb = G4UniformRand(); G4double partSum = 0; - const G4AtomicTransition* aShell = transitionManager->ReachableShell(Z,shellNum); + const G4FluoTransition* aShell = transitionManager->ReachableShell(Z,shellNum); G4int trSize = (aShell->TransitionProbabilities()).size(); // Loop over the shells wich can provide an electron for a @@ -164,7 +172,9 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateFluorescence(G4int Z, G4int shellId, G4int provShellId ) { - G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); + + + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); // G4int provenienceShell = provShellId; //isotropic angular distribution for the outcoming photon @@ -226,7 +236,203 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateFluorescence(G4int Z, G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) { - return 0; + if(!fAuger) return 0; + + + const G4AtomicTransitionManager* transitionManager = + G4AtomicTransitionManager::Instance(); + + if (shellId <=0 ) + {G4Exception("G4AtomicDeexcitation: zero or negative shellId");} + + // G4int provShellId = -1; + G4int maxNumOfShells = transitionManager->NumberOfReachableAugerShells(Z); + + const G4AugerTransition* refAugerTransition = + transitionManager->ReachableAugerShell(Z,maxNumOfShells-1); + + + // This loop gives shellNum the value of the index of shellId + // in the vector storing the list of the shells reachable through + // a NON-radiative transition + + // ---- MGP ---- Next line commented out to remove compilation warning + // G4int p = refAugerTransition->FinalShellId(); + + G4int shellNum = 0; + + + if ( shellId <= refAugerTransition->FinalShellId() ) + { + + do + + { + if(shellNum == maxNumOfShells-1) + { + break; + } + shellNum++; + } + + while (shellId != transitionManager->ReachableAugerShell(Z,shellNum)->FinalShellId()); + + + // Now we have that shellnum is the shellIndex of the shell named ShellId + // But we have now to select two shells: one for the transition, + // and another for the auger emission. + + G4int transitionLoopShellIndex = 0; + G4double partSum = 0; + const G4AugerTransition* anAugerTransition = + transitionManager->ReachableAugerShell(Z,shellNum); + + G4int transitionSize = + (anAugerTransition->TransitionOriginatingShellIds())->size(); + while (transitionLoopShellIndex < transitionSize) { + + G4std::vector::const_iterator pos = + anAugerTransition->TransitionOriginatingShellIds()->begin(); + + G4int transitionLoopShellId = *(pos+transitionLoopShellIndex); + G4int numberOfPossibleAuger = + (anAugerTransition->AugerTransitionProbabilities(transitionLoopShellId))->size(); + G4int augerIndex = 0; + // G4int partSum2 = 0; + + while (augerIndex < numberOfPossibleAuger) { + partSum += anAugerTransition->AugerTransitionProbability(augerIndex, + transitionLoopShellId); + augerIndex++; + } + transitionLoopShellIndex++; + } + + + + // Now we have the entire probability of an auger transition for the vacancy + // located in shellNum (index of shellId) + G4double totalVacancyAugerProbability = partSum; + + + //And now we start to select the right auger transition and emission + G4int transitionRandomShellIndex = 0; + G4int transitionRandomShellId = 0; + G4int augerIndex = 0; + partSum = 0; + G4double partialProb = G4UniformRand(); + // G4int augerOriginatingShellId = 0; + + while (transitionRandomShellIndex < transitionSize) { + + G4std::vector::const_iterator pos = + anAugerTransition->TransitionOriginatingShellIds()->begin(); + + transitionRandomShellId = *(pos+transitionRandomShellIndex); + + // G4int transitionRandomShellId = *(anAugerTransition->TransitionOriginatingShellIds())[transitionRandomShellIndex]; + G4int numberOfPossibleAuger = + (anAugerTransition->AugerTransitionProbabilities(transitionRandomShellId))->size(); + + augerIndex = 0; + + + while (augerIndex < numberOfPossibleAuger) { + partSum += anAugerTransition->AugerTransitionProbability(augerIndex, + transitionRandomShellId); + + if (partSum >= (partialProb/totalVacancyAugerProbability) ) {break;} + augerIndex++; + } + if (partSum >= (partialProb/totalVacancyAugerProbability) ) {break;} + transitionRandomShellIndex++; + } + // Now we have the index of the shell from wich comes the auger electron (augerIndex), + // and the id of the shell, from which the transition e- come (transitionRandomShellid) + + // Isotropic angular distribution for the outcoming e- + G4double newcosTh = 1.-2.*G4UniformRand(); + G4double newsinTh = sqrt(1.-newcosTh*newcosTh); + G4double newPhi = twopi*G4UniformRand(); + + G4double xDir = newsinTh*sin(newPhi); + G4double yDir = newsinTh*cos(newPhi); + G4double zDir = newcosTh; + + G4ThreeVector newElectronDirection(xDir,yDir,zDir); + + /* + G4int shellNum = 0; + G4int maxNumOfShells = transitionManager->NumberOfReachableShells(Z); + + + // find the index of the shell named shellId + while (shellId != transitionManager-> + ReachableShell(Z,shellNum)->FinalShellId()) + { + if(shellNum == maxNumOfShells-1) + { + break; + } + shellNum++; + } + // number of shell from wich an electron can reach shellId + size_t transitionSize = transitionManager-> + ReachableShell(Z,shellNum)->OriginatingShellIds().size(); + + size_t index = 0; + + // find the index of the shell named provShellId in the vector + // storing the shells from which shellId can be reached + while (provShellId != transitionManager-> + ReachableShell(Z,shellNum)->OriginatingShellId(index)) + { + if(index == transitionSize-1) + { + break; + } + index++; + } + */ + + // energy of the auger electron emitted + + + G4double transitionEnergy = + anAugerTransition->AugerTransitionEnergy(augerIndex, transitionRandomShellId); + + // This is the shell where the new vacancy is: it is the same + // shell where the electron came from + newShellId = transitionRandomShellId; + + + G4DynamicParticle* newPart = new G4DynamicParticle(G4Electron::Electron(), + newElectronDirection, + transitionEnergy); + return newPart; + + } + else + { + //G4Exception("G4AtomicDeexcitation: no auger transition found"); + return 0; + } + +} + +void G4AtomicDeexcitation::SetCutForSecondaryPhotons(G4double cut) +{ + minGammaEnergy = cut; +} + +void G4AtomicDeexcitation::SetCutForAugerElectrons(G4double cut) +{ + minElectronEnergy = cut; +} + +void G4AtomicDeexcitation::ActivateAugerElectronProduction(G4bool val) +{ + fAuger = val; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc index 86265ebea0..e34f17c838 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 32cf9620bd..5fb8bc63e1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -39,12 +39,11 @@ G4AtomicTransition::G4AtomicTransition(G4int finalShell, const G4std::vector& ids, const G4DataVector& energies, const G4DataVector& prob) -{ - finalShellId = finalShell; - originatingShellIds = ids; - transitionEnergies = energies; - transitionProbabilities = prob; -} + :finalShellId(finalShell), + originatingShellIds(ids), + transitionEnergies(energies), + transitionProbabilities(prob) +{ } G4AtomicTransition::~G4AtomicTransition() { } diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc index 607e362964..48f5e04fba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) @@ -35,12 +35,20 @@ #include "G4AtomicTransitionManager.hh" -G4AtomicTransitionManager::G4AtomicTransitionManager(G4int minZ, G4int maxZ, G4int limitInfTable,G4int limitSupTable) - :zMin(minZ), zMax(maxZ),infTableLimit(limitInfTable),supTableLimit(limitSupTable) +G4AtomicTransitionManager::G4AtomicTransitionManager(G4int minZ, G4int maxZ, + G4int limitInfTable,G4int limitSupTable) + :zMin(minZ), + zMax(maxZ), + infTableLimit(limitInfTable), + supTableLimit(limitSupTable) { // infTableLimit is initialized to 6 because EADL lacks data for Z<=5 G4ShellData* shellManager = new G4ShellData; + + // initialization of the data for auger effect + augerData = new G4AugerData; + shellManager->LoadData("/fluor/binding"); // Fills shellTable with the data from EADL, identities and binding @@ -68,7 +76,7 @@ G4AtomicTransitionManager::G4AtomicTransitionManager(G4int minZ, G4int maxZ, G4i // energies and transition probabilities for (G4int Znum= infTableLimit; Znum<=supTableLimit; Znum++) { G4FluoData* fluoManager = new G4FluoData; - G4std::vector vectorOfTransitions; + G4std::vector vectorOfTransitions; fluoManager->LoadData(Znum); size_t numberOfVacancies = fluoManager-> NumberOfVacancies(); @@ -82,7 +90,8 @@ G4AtomicTransitionManager::G4AtomicTransitionManager(G4int minZ, G4int maxZ, G4i G4int finalShell = fluoManager->VacancyId(vacancyIndex); size_t numberOfTransitions = fluoManager->NumberOfTransitions(vacancyIndex); - for (size_t origShellIndex = 0; origShellIndex <= numberOfTransitions;origShellIndex++) + for (size_t origShellIndex = 0; origShellIndex <= numberOfTransitions; + origShellIndex++) { @@ -95,7 +104,7 @@ G4AtomicTransitionManager::G4AtomicTransitionManager(G4int minZ, G4int maxZ, G4i G4double transitionProbability = fluoManager->StartShellProb(origShellIndex,vacancyIndex); vectorOfProbabilities.push_back(transitionProbability); } - G4AtomicTransition * transition = new G4AtomicTransition (finalShell,vectorOfIds, + G4FluoTransition * transition = new G4FluoTransition (finalShell,vectorOfIds, vectorOfEnergies,vectorOfProbabilities); vectorOfTransitions.push_back(transition); } @@ -109,7 +118,11 @@ G4AtomicTransitionManager::G4AtomicTransitionManager(G4int minZ, G4int maxZ, G4i G4AtomicTransitionManager::~G4AtomicTransitionManager() -{ G4std::map,G4std::less >::iterator pos; +{ + + delete augerData; + +G4std::map,G4std::less >::iterator pos; for (pos = shellTable.begin(); pos != shellTable.end(); pos++){ @@ -118,23 +131,23 @@ G4AtomicTransitionManager::~G4AtomicTransitionManager() G4int vecSize=vec.size(); for (G4int i=0; i< vecSize; i++){ - - delete vec[i]; + G4AtomicShell* shell = vec[i]; + delete shell; } } - G4std::map,G4std::less >::iterator ppos; + G4std::map,G4std::less >::iterator ppos; for (ppos = transitionTable.begin(); ppos != transitionTable.end(); ppos++){ - G4std::vector< G4AtomicTransition*>vec = (*ppos).second; + G4std::vectorvec = (*ppos).second; G4int vecSize=vec.size(); for (G4int i=0; i< vecSize; i++){ - - delete vec[i]; + G4FluoTransition* transition = vec[i]; + delete transition; } } @@ -145,7 +158,7 @@ G4AtomicTransitionManager* G4AtomicTransitionManager::instance = 0; G4AtomicTransitionManager* G4AtomicTransitionManager::Instance() { - if (instance==0) + if (instance == 0) { instance = new G4AtomicTransitionManager; @@ -154,9 +167,9 @@ G4AtomicTransitionManager* G4AtomicTransitionManager::Instance() } -const G4AtomicShell* G4AtomicTransitionManager::Shell(G4int Z, size_t shellIndex) +G4AtomicShell* G4AtomicTransitionManager::Shell(G4int Z, size_t shellIndex) const { - G4std::map,G4std::less >::iterator pos; + G4std::map,G4std::less >::const_iterator pos; pos = shellTable.find(Z); @@ -180,13 +193,16 @@ const G4AtomicShell* G4AtomicTransitionManager::Shell(G4int Z, size_t shellIndex } } -const G4AtomicTransition* G4AtomicTransitionManager:: ReachableShell(G4int Z,size_t shellIndex) +// This function gives, upon Z and the Index of the initial shell where te vacancy is, +// the radiative transition that can happen (originating shell, energy, probability) + +const G4FluoTransition* G4AtomicTransitionManager::ReachableShell(G4int Z,size_t shellIndex) const { - G4std::map,G4std::less >::iterator pos; + G4std::map,G4std::less >::const_iterator pos; pos = transitionTable.find(Z); if (pos!= transitionTable.end()) { - G4std::vector v = (*pos).second; + G4std::vector v = (*pos).second; if (shellIndex < v.size()) return(v[shellIndex]); else { G4Exception("G4AtomicTransitionManager:reachable shell not found"); @@ -199,10 +215,19 @@ const G4AtomicTransition* G4AtomicTransitionManager:: ReachableShell(G4int Z,siz } } -G4int G4AtomicTransitionManager::NumberOfShells (G4int Z) +const G4AugerTransition* G4AtomicTransitionManager::ReachableAugerShell(G4int Z, G4int vacancyShellIndex) const +{ + + G4AugerTransition* augerTransition = augerData->GetAugerTransition(Z,vacancyShellIndex); + return augerTransition; +} + + + +G4int G4AtomicTransitionManager::NumberOfShells (G4int Z) const { -G4std::map,G4std::less >::iterator pos; +G4std::map,G4std::less >::const_iterator pos; pos = shellTable.find(Z); @@ -219,15 +244,18 @@ G4std::map,G4std::less >::iterator po } } -G4int G4AtomicTransitionManager::NumberOfReachableShells(G4int Z) +// This function returns the number of possible radiative transitions for the atom with atomic number Z +// i.e. the number of shell in wich a vacancy can be filled with a radiative transition + +G4int G4AtomicTransitionManager::NumberOfReachableShells(G4int Z) const { -G4std::map,G4std::less >::iterator pos; +G4std::map,G4std::less >::const_iterator pos; pos = transitionTable.find(Z); if (pos!= transitionTable.end()) { - G4std::vector v = (*pos).second; + G4std::vector v = (*pos).second; return v.size(); } else @@ -237,21 +265,32 @@ G4std::map,G4std::less >::iterat } } +// This function returns the number of possible NON-radiative transitions for the atom with atomic number Z +// i.e. the number of shell in wich a vacancy can be filled with a NON-radiative transition + +G4int G4AtomicTransitionManager::NumberOfReachableAugerShells(G4int Z)const +{ + G4int n = augerData->NumberOfVacancies(Z); + return n; +} + + + G4double G4AtomicTransitionManager::TotalRadiativeTransitionProbability(G4int Z, size_t shellIndex) { -G4std::map,G4std::less >::iterator pos; +G4std::map,G4std::less >::iterator pos; pos = transitionTable.find(Z); if (pos!= transitionTable.end()) { - G4std::vector v = (*pos).second; + G4std::vector v = (*pos).second; if (shellIndex < v.size()) { - G4AtomicTransition* transition = v[shellIndex]; + G4FluoTransition* transition = v[shellIndex]; G4DataVector transProb = transition->TransitionProbabilities(); G4double totalRadTransProb = 0; @@ -278,18 +317,18 @@ G4double G4AtomicTransitionManager::TotalNonRadiativeTransitionProbability(G4int { - G4std::map,G4std::less >::iterator pos; + G4std::map,G4std::less >::iterator pos; pos = transitionTable.find(Z); if (pos!= transitionTable.end()){ - G4std::vector v = (*pos).second; + G4std::vector v = (*pos).second; if (shellIndexTransitionProbabilities(); G4double totalRadTransProb = 0; diff --git a/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc new file mode 100644 index 0000000000..af5e1f6267 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc @@ -0,0 +1,527 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4AugerData.cc v1.0 +// +// +// Author: Alfonso Mmantero (Alfonso.Mantero@ge.infn.it) +// +// History: +// ----------- +// Based on G4FluoData by Elena Guardincerri +// +// ------------------------------------------------------------------- + +#include "G4AugerData.hh" +#include "G4DataVector.hh" +#include "g4std/fstream" +#include "g4std/strstream" + +G4AugerData::G4AugerData() +{ + + G4int n = 0; + G4int pos = 0; + + for (pos = 0 ; pos < 100; pos++) + { + numberOfVacancies.push_back(n); + } + + BuildAugerTransitionTable(); + + +} + +G4AugerData::~G4AugerData() +{ + /* + G4std::map,G4std::less >::iterator pos; + + for (pos = augerTransitionTable.begin(); pos != augerTransitionTable.end(); pos++) + { + G4std::vector dataSet = (*pos).second; + delete dataSet; + } + for (pos = energyMap.begin(); pos != energyMap.end(); pos++) + { + G4std::map>* dataMap = (*pos).second; + for (pos2 = newIdProbabilityMap.begin(); pos2 != idMap.end(); pos2++) + { + G4DataVector* dataSet = (*pos2).second; + delete dataSet; + } + } + for (pos = probabilityMap.begin(); pos != probabilityMap.end(); pos++) + { + G4std::map>* dataMap = (*pos).second; + for (pos2 = newIdProbabilityMap.begin(); pos2 != idMap.end(); pos2++) + { + G4DataVector* dataSet = (*pos2).second; + delete dataSet; + } + } + for (pos2 = newIdMap.begin(); pos2 != idMap.end(); pos2++) + { + G4DataVector* dataSet = (*pos2).second; + delete dataSet; + } + for (pos2 = newIdEnergyMap.begin(); pos2 != idMap.end(); pos2++) + { + G4DataVector* dataSet = (*pos2).second; + delete dataSet; + } + for (pos2 = newIdProbabilityMap.begin(); pos2 != idMap.end(); pos2++) + { + G4DataVector* dataSet = (*pos2).second; + delete dataSet; + } + */ + +} + +size_t G4AugerData::NumberOfVacancies(G4int Z) const +{ + return numberOfVacancies[Z]; +} + +G4int G4AugerData::VacancyId(G4int Z, G4int vacancyIndex) const +{ + + G4int n = 0; + if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) + {G4Exception("G4AugerData::vacancyIndex outside boundaries");} + else { + trans_Table::const_iterator element = augerTransitionTable.find(Z); + if (element == augerTransitionTable.end()) {G4Exception("G4AugerData::augerTransitionTable: Data not Loaded");} + G4std::vector dataSet = (*element).second; + n = (G4int) dataSet[vacancyIndex].FinalShellId(); + } + + return n; +} + + + +// Attenzione: questa funzione vuole l'indice della vacanza, non l'Id + + +size_t G4AugerData::NumberOfTransitions(G4int Z, G4int vacancyIndex) const +{ + G4int n = 0; + if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) + {G4Exception("G4AugerData::vacancyIndex outside boundaries");} + else { + trans_Table::const_iterator element = augerTransitionTable.find(Z); + if (element == augerTransitionTable.end()) {G4Exception("G4AugerData::augerTransitionTable: Data not Loaded");} + G4std::vector dataSet = (*element).second; + n = (G4int)dataSet[vacancyIndex].TransitionOriginatingShellIds()->size(); + } + return n; +} + + + +size_t G4AugerData::NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const +{ + size_t n = 0; + if (initIndex<0 || initIndex>=numberOfVacancies[Z]) + {G4Exception("G4AugerData::vacancyIndex outside boundaries");} + else { + trans_Table::const_iterator element = augerTransitionTable.find(Z); + if (element == augerTransitionTable.end()) {G4Exception("G4AugerData::augerTransitionTable: Data not Loaded");} + G4std::vector dataSet = (*element).second; + const G4std::vector* temp = dataSet[initIndex].AugerOriginatingShellIds(vacancyId); + n = temp->size(); + } + return n; +} + +size_t G4AugerData::AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const +{ + size_t n = 0; + if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) + {G4Exception("G4AugerData::vacancyIndex outside boundaries");} + else { + trans_Table::const_iterator element = augerTransitionTable.find(Z); + if (element == augerTransitionTable.end()) {G4Exception("G4AugerData::augerTransitionTable: Data not Loaded");} + G4std::vector dataSet = (*element).second; + n = dataSet[vacancyIndex].AugerOriginatingShellId(augerIndex,transId); + } + return n; +} + +G4int G4AugerData::StartShellId(G4int Z, G4int vacancyIndex, G4int transitionShellIndex) const +{ + G4int n = 0; + + if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) + {G4Exception("G4AugerData::vacancyIndex outside boundaries");} + else { + trans_Table::const_iterator element = augerTransitionTable.find(Z); + if (element == augerTransitionTable.end()) {G4Exception("G4AugerData::augerTransitionTable: Data not Loaded");} + G4std::vector dataSet = (*element).second; + n = dataSet[vacancyIndex].TransitionOriginatingShellId(transitionShellIndex); + } + + + return n; +} + +G4double G4AugerData::StartShellEnergy(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const +{ + G4double n = 0; + + if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) + {G4Exception("G4AugerData::vacancyIndex outside boundaries");} + else { + trans_Table::const_iterator element = augerTransitionTable.find(Z); + if (element == augerTransitionTable.end()) {G4Exception("G4AugerData::augerTransitionTable: Data not Loaded");} + G4std::vector dataSet = (*element).second; + n = dataSet[vacancyIndex].AugerTransitionEnergy(augerIndex,transitionId); + + } + return n; +} + + +G4double G4AugerData::StartShellProb(G4int Z, G4int vacancyIndex,G4int transitionId,G4int augerIndex) const +{ + G4double n = 0; + + if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) + {G4Exception("G4AugerData::vacancyIndex outside boundaries");} + else { + trans_Table::const_iterator element = augerTransitionTable.find(Z); + if (element == augerTransitionTable.end()) {G4Exception("G4AugerData::augerTransitionTable: Data not Loaded");} + G4std::vector dataSet = (*element).second; + n = dataSet[vacancyIndex].AugerTransitionProbability(augerIndex, transitionId); + + + + } + return n; +} + +G4std::vector G4AugerData::LoadData(G4int Z) +{ + // Build the complete string identifying the file with the data set + + char nameChar[100] = {""}; + G4std::ostrstream ost(nameChar, 100, G4std::ios::out); + if(Z != 0){ + ost << "au-tr-pr-"<< Z << ".dat"; + } + else{ + ost << "au-tr-pr-"<<".dat"; + } + G4String name(nameChar); + + char* path = getenv("G4LEDATA"); + if (!path) + { + G4String excep = "G4EMDataSet - G4LEDATA environment variable not set"; + G4Exception(excep); + } + + G4String pathString(path); + G4String dirFile = pathString + "/auger/" + name; + G4std::ifstream file(dirFile); + G4std::filebuf* lsdp = file.rdbuf(); + + if (! (lsdp->is_open()) ) + { + G4String excep = "G4AugerData - data file: " + dirFile + " not found"; + G4Exception(excep); + } + + + G4double a = 0; + G4int k = 1; + G4int s = 0; + + G4int vacId = 0; + G4std::vector* initIds = new G4std::vector; + G4std::vector* newIds = new G4std::vector; + G4DataVector* transEnergies = new G4DataVector; + G4DataVector* transProbabilities = new G4DataVector; + G4std::vector augerTransitionVector; + G4std::map,G4std::less >* newIdMap = + new G4std::map,G4std::less >; + G4std::map >* newEnergyMap = + new G4std::map >; + G4std::map >* newProbabilityMap = + new G4std::map >; + + + do { + file >> a; + + + G4int nColumns = 4; + + if (a == -1) + { + + + + if (s == 0) + { + // End of a shell data set + + + + G4std::vector::iterator vectorIndex = initIds->begin(); + + vacId = *vectorIndex; + + //initIds->erase(vectorIndex); + + + + G4std::vector identifiers; + for (vectorIndex = initIds->begin()+1 ; vectorIndex != initIds->end(); ++vectorIndex){ + + identifiers.push_back(*vectorIndex); + } + + vectorIndex = (initIds->end())-1; + + G4int augerShellId = *(vectorIndex); + + + (*newIdMap)[augerShellId] = *newIds; + (*newEnergyMap)[augerShellId] = *transEnergies; + (*newProbabilityMap)[augerShellId] = *transProbabilities; + + augerTransitionVector.push_back(G4AugerTransition(vacId, identifiers, newIdMap, newEnergyMap, newProbabilityMap)); + + // Now deleting all the variables I used, and creating new ones for the next shell + + delete newIdMap; + delete newEnergyMap; + delete newProbabilityMap; + + G4int n = initIds->size(); + nInitShells.push_back(n); + numberOfVacancies[Z]++; + delete initIds; + delete newIds; + delete transEnergies; + delete transProbabilities; + initIds = new G4std::vector; + newIds = new G4std::vector; + transEnergies = new G4DataVector; + transProbabilities = new G4DataVector; + newIdMap = new G4std::map,G4std::less >; + newEnergyMap = new G4std::map >; + newProbabilityMap = new G4std::map >; + + + + } + s++; + if (s == nColumns) + { + s = 0; + } + } + else if (a == -2) + { + // End of file; delete the empty vectors created + //when encountering the last -1 -1 row + delete initIds; + delete newIds; + delete transEnergies; + delete transProbabilities; + delete newIdMap ; + delete newEnergyMap; + delete newProbabilityMap; + } + else + { + + if (k%nColumns == 3){ + // 3rd column is the transition probabilities + transProbabilities->push_back(a); + + k++;} + else if(k%nColumns == 2){ + // 2nd column is new auger vacancy + + // 2nd column is new auger vacancy + + G4int l = (G4int)a; + newIds->push_back(l); + + + k++; + } + else if (k%nColumns == 1) + { + // 1st column is shell id + + if(initIds->size() == 0) { + + // 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); + file >> a; + file >> a; + file >> a; + k = k+3; + } + else { + + G4std::vector::iterator vectorIndex = (initIds->end())-1; + if((G4int)a != *vectorIndex){ + + + if((initIds->size()) == 1) { + initIds->push_back(a); + } + else { + + initIds->push_back(a); + G4int augerShellId = *vectorIndex; + + + (*newIdMap)[augerShellId] = *newIds; + (*newEnergyMap)[augerShellId] = *transEnergies; + (*newProbabilityMap)[augerShellId] = *transProbabilities; + delete newIds; + delete transEnergies; + delete transProbabilities; + newIds = new G4std::vector; + transEnergies = new G4DataVector; + transProbabilities = new G4DataVector; + } + } + } + + k++; + + } + else if (k%nColumns == 0) + + {//fourth column is transition energies + G4double e = a * MeV; + + transEnergies->push_back(e); + k=1; + + } + } + } + + + while (a != -2); // end of file + file.close(); + return augerTransitionVector; +} + +void G4AugerData::BuildAugerTransitionTable() +{ + + // trans_Table::iterator pos = augerTransitionTable.begin(); + + + 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; + + + } + + G4cout << "AugerTransitionTable complete"<< G4endl; +} + +void G4AugerData::PrintData(G4int Z) +{ + + for (G4int i = 0; i < numberOfVacancies[Z]; i++) + { + G4cout << "---- TransitionData for the vacancy nb " + <* dataSet = &augerTransitionTable[Z]; + G4std::vector::iterator vectorIndex = dataSet->begin() + vacancyShellIndex; + + G4AugerTransition* augerTransition = &(*vectorIndex); + return augerTransition; + } + +G4std::vector* G4AugerData::GetAugerTransitions(G4int Z) + { + G4std::vector* dataSet = &augerTransitionTable[Z]; + return dataSet; + } + + + + + + + + + + + + + + + + + + + + + diff --git a/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc b/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc new file mode 100644 index 0000000000..d9e15d49b1 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.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. * +// ******************************************************************** +// +// +// $Id: G4AugerTransition.cc,v 1.2 ???? +// +// Based on G4AtomicTransition.cc by +// Elena Guardincerri (Elena.Guardincerri@ge.infn.it) +// +// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) +// +// History: +// ----------- +// 4 Mar 2002: first implementation +// +// ------------------------------------------------------------------- + +#include "G4AugerTransition.hh" + +// the final shell in wich the electron goes is needed, to know the data for the auger electron emitted +// (i.e. originating shell id, electron energy and transition probability) + +G4AugerTransition::G4AugerTransition(G4int finalShell, G4std::vector transIds, + const G4std::map,G4std::less >* idMap, + const G4std::map >* energyMap, + const G4std::map >* probabilityMap) +{ + finalShellId = finalShell; + augerOriginatingShellIdsMap = *idMap; + augerTransitionEnergiesMap = *energyMap; + augerTransitionProbabilitiesMap = *probabilityMap; + transitionOriginatingShellIds = transIds; + + +} + +G4AugerTransition::~G4AugerTransition() +{ + +} + +// Returns the ids of the shells from wich an auger electron culd came from, given th shell +// from wich the transition electron cames from. + +const G4std::vector* G4AugerTransition::AugerOriginatingShellIds(G4int startShellId) const +{ + G4std::map,G4std::less >::const_iterator shellId = augerOriginatingShellIdsMap.find(startShellId); + + const G4std::vector dataSet = (*shellId).second; + const G4std::vector* dataOut = 0; + + if (dataSet.size() == 0) {G4cout << "Error: no auger Id found"<< G4endl;} + else { + + dataOut = &dataSet; + + } + + return dataOut; +} + +// Returns the ids of the shells from wich an electron cuuld fill the vacancy in finalShellId + +const G4std::vector* G4AugerTransition::TransitionOriginatingShellIds() const +{ + + const G4std::vector* dataSet = &transitionOriginatingShellIds; + return dataSet; +} + +// Returns the energiess of the possible auger electrons, given th shell +// from wich the transition electron cames from. + +const G4DataVector* G4AugerTransition::AugerTransitionEnergies(G4int startShellId) const +{ + G4std::map >::const_iterator shellId = augerTransitionEnergiesMap.find(startShellId); + const G4DataVector* dataSet = &(*shellId).second; + + + return dataSet; +} + +// Returns the emission probabilities of the auger electrons, given th shell +// from wich the transition electron cames from. + +const G4DataVector* G4AugerTransition::AugerTransitionProbabilities(G4int startShellId) const +{ + G4std::map >::const_iterator shellId = augerTransitionProbabilitiesMap.find(startShellId); + const G4DataVector* dataSet = &(*shellId).second; + return dataSet; +} + +const G4int G4AugerTransition::FinalShellId() const +{ + return finalShellId; +} + +// Returns the id of the shell from wich come the auger electron , given the shell +// from wich the transition electron cames from and the index number. + +G4int G4AugerTransition::AugerOriginatingShellId(G4int index, G4int startShellId) const +{ + const G4std::vector* ids = AugerOriginatingShellIds(startShellId); + // G4int i = + G4std::vector::const_iterator pos = ids->begin(); + G4int n = *(pos+index); + return n; +} + +// Returns the energy of the auger electron, given the shell +// from wich the transition electron cames from and the index number. + +G4double G4AugerTransition::AugerTransitionEnergy(G4int index, G4int startShellId) const +{ + const G4DataVector* energies = AugerTransitionEnergies(startShellId); + G4DataVector::const_iterator pos = energies->begin(); + G4double energy = *(pos+index); + return energy; +} + +// Returns the probability of the auger emission, given the shell +// from wich the transition electron cames from and the index number. + +G4double G4AugerTransition::AugerTransitionProbability(G4int index, G4int startShellId) const +{ + + const G4DataVector *probabilities = AugerTransitionProbabilities(startShellId); + G4DataVector::const_iterator pos = probabilities->begin(); + G4double* probability = new G4double; + *probability = *(pos+index); + return *probability; + delete probability; +} + +G4int G4AugerTransition::TransitionOriginatingShellId(G4int index) const +{ + return transitionOriginatingShellIds[index]; +} + + + + + + + + + + + + + + + + + + + + + diff --git a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc index 8a3ed799a1..f82c11247f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc index 52b54bb081..d2ed3645d6 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.11 2001/11/29 22:59:56 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4BremsstrahlungParameters.cc,v 1.13 2002/05/30 17:53:07 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // V.Ivanchenko (Vladimir.Ivantchenko@cern.ch) @@ -59,7 +59,7 @@ G4BremsstrahlungParameters::~G4BremsstrahlungParameters() // Reset the map of data sets: remove the data sets from the map G4std::map >::iterator pos; - for (pos = param.begin(); pos != param.end(); pos++) + for (pos = param.begin(); pos != param.end(); ++pos) { G4VEMDataSet* dataSet = (*pos).second; delete dataSet; @@ -133,22 +133,23 @@ void G4BremsstrahlungParameters::LoadData() // Read parameters char* path = getenv("G4LEDATA"); - if (!path) + if (path == 0) { - G4String excep = G4String("G4BremsstrahlungParameters - G4LEDATA") - + G4String("environment variable not set"); + G4String excep("G4BremsstrahlungParameters - G4LEDATA environment variable not set"); G4Exception(excep); } G4String pathString_a(path); - G4String name_a = pathString_a + "/brem/br-sp.dat"; + G4String stringConversion1("/brem/br-sp.dat"); + G4String name_a = pathString_a + stringConversion1; G4std::ifstream file_a(name_a); G4std::filebuf* lsdp_a = file_a.rdbuf(); - if (! (lsdp_a->is_open()) ) { - G4String excep = G4String("G4BremsstrahlungParameters: cannot open file ") - + name_a; - G4Exception(excep); + if (! (lsdp_a->is_open()) ) + { + G4String stringConversion2("G4BremsstrahlungParameters: cannot open file "); + G4String excep = stringConversion2 + name_a; + G4Exception(excep); } // The file is organized into two columns: @@ -226,18 +227,6 @@ void G4BremsstrahlungParameters::LoadData() for (size_t j=0; j> qRead; - /* - if(ener == 1000.) { - G4double x = 0.1*((G4double)j); - if(j == 0) x = 0.01; - if(j == 10) x = 0.95; - if(j == 11) x = 0.97; - if(j == 12) x = 0.99; - if(j == 13) x = 0.995; - if(j == 14) x = 1.0; - qRead = 1. - x + 0.75*x*x; - } - */ a[j]->push_back(qRead); } @@ -252,10 +241,13 @@ void G4BremsstrahlungParameters::LoadData() G4double G4BremsstrahlungParameters::ParameterC(G4int id) const { G4int n = paramC.size(); - if (id < 0 || id >= n) { - G4String ex = "G4BremsstrahlungParameters::ParameterC - wrong id=" + id; - G4Exception(ex); - } + if (id < 0 || id >= n) + { + G4String stringConversion1("G4BremsstrahlungParameters::ParameterC - wrong id = "); + G4String stringConversion2(id); + G4String ex = stringConversion1 + stringConversion2; + G4Exception(ex); + } return paramC[id]; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc index 996a2a81cc..9cab330137 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompositeEMDataSet.cc,v 1.5 2001/10/25 02:32:16 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CompositeEMDataSet.cc,v 1.6 2002/05/28 09:20:18 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -61,7 +61,8 @@ G4CompositeEMDataSet::~G4CompositeEMDataSet() { for (size_t i=0; iis_open()) ) { - G4String excep = "G4CompositeEMDataSet - data file: " + dirFile + " not found"; + G4String s1("G4CompositeEMDataSet - data file: "); + G4String s2(" not found"); + G4String excep = s1 + dirFile + s2; G4Exception(excep); } G4double a = 0; diff --git a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc index 7e227bda51..e2330b6ac4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CrossSectionHandler.cc,v 1.12 2001/10/08 07:48:57 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CrossSectionHandler.cc,v 1.13 2002/05/28 09:20:18 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -74,7 +74,7 @@ G4CrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& energy const G4Material* material= (*materialTable)[m]; energies = new G4DataVector; data = new G4DataVector; - G4VDataSetAlgorithm* interpolationAlgo = CreateInterpolation(); + const G4VDataSetAlgorithm* interpolationAlgo = CreateInterpolation(); for (size_t bin=0; binis_open()) ) { - G4String excep = "G4EMDataSet - data file: " + dirFile + " not found"; + G4String s1("G4EMDataSet - data file: "); + G4String s2(" not found"); + G4String excep = s1 + dirFile + s2; G4Exception(excep); } G4double a = 0; @@ -216,3 +220,13 @@ void G4EMDataSet::PrintData() const << G4endl; } } + + +const G4VEMDataSet* G4EMDataSet::GetComponent(G4int i) const +{ return 0; } + +void G4EMDataSet::AddComponent(G4VEMDataSet* dataSet) +{ } + +size_t G4EMDataSet::NumberOfComponents() const +{ return 0; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc b/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc index 86b89101e5..e38098fdaa 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4FluoDataData.cc,v 1.2 -// GEANT4 tag $Name: geant4-04-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -34,6 +32,7 @@ #include "G4FluoData.hh" #include "G4DataVector.hh" +#include "G4FluoTransition.hh" #include "g4std/fstream" #include "g4std/strstream" @@ -46,17 +45,17 @@ G4FluoData::~G4FluoData() { G4std::map >::iterator pos; - for (pos = idMap.begin(); pos != idMap.end(); pos++) + for (pos = idMap.begin(); pos != idMap.end(); ++pos) { G4DataVector* dataSet = (*pos).second; delete dataSet; } - for (pos = energyMap.begin(); pos != energyMap.end(); pos++) + for (pos = energyMap.begin(); pos != energyMap.end(); ++pos) { G4DataVector* dataSet = (*pos).second; delete dataSet; } - for (pos = probabilityMap.begin(); pos != probabilityMap.end(); pos++) + for (pos = probabilityMap.begin(); pos != probabilityMap.end(); ++pos) { G4DataVector* dataSet = (*pos).second; delete dataSet; @@ -100,7 +99,7 @@ size_t G4FluoData::NumberOfTransitions(G4int vacancyIndex) const } return n; } -G4int G4FluoData::StartShellId(G4int initIndex,G4int vacancyIndex) +G4int G4FluoData::StartShellId(G4int initIndex, G4int vacancyIndex) const { G4int n = -1; @@ -124,7 +123,7 @@ G4int G4FluoData::StartShellId(G4int initIndex,G4int vacancyIndex) return n; } -G4double G4FluoData::StartShellEnergy(G4int initIndex,G4int vacancyIndex) +G4double G4FluoData::StartShellEnergy(G4int initIndex, G4int vacancyIndex) const { G4double n = -1; @@ -148,7 +147,7 @@ G4double G4FluoData::StartShellEnergy(G4int initIndex,G4int vacancyIndex) return n; } -G4double G4FluoData::StartShellProb(G4int initIndex,G4int vacancyIndex) +G4double G4FluoData::StartShellProb(G4int initIndex, G4int vacancyIndex) const { G4double n = -1; @@ -189,12 +188,13 @@ void G4FluoData::LoadData(G4int Z) char* path = getenv("G4LEDATA"); if (!path) { - G4String excep = "G4EMDataSet - G4LEDATA environment variable not set"; + G4String excep("G4EMDataSet - G4LEDATA environment variable not set"); G4Exception(excep); } G4String pathString(path); - G4String dirFile = pathString + "/fluor/" + name; + G4String fluor("/fluor/"); + G4String dirFile = pathString + fluor + name; G4std::ifstream file(dirFile); G4std::filebuf* lsdp = file.rdbuf(); @@ -255,7 +255,7 @@ void G4FluoData::LoadData(G4int Z) if(k%nColumns == 2) { // 2nd column is transition probabilities - + transProbabilities->push_back(a); k++; @@ -271,10 +271,10 @@ void G4FluoData::LoadData(G4int Z) else if (k%nColumns == 0) {//third column is transition energies - + G4double e = a * MeV; transEnergies->push_back(e); - + k=1; } } @@ -317,3 +317,32 @@ void G4FluoData::PrintData() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc b/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc new file mode 100644 index 0000000000..a6df60c2f8 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc @@ -0,0 +1,83 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4FluoTransition.cc,v 1.2 ???? +// GEANT4 tag $Name: geant4-04-01 $ +// +// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) +// +// History: +// ----------- +// 16 Sept 2001 EG Modified according to a design iteration in the +// LowEnergy category +// +// ------------------------------------------------------------------- + +#include "G4FluoTransition.hh" + +G4FluoTransition::G4FluoTransition(G4int finalShell, + const G4std::vector& ids, + const G4DataVector& energies, + const G4DataVector& prob) + :finalShellId(finalShell), + originatingShellIds(ids), + transitionEnergies(energies), + transitionProbabilities(prob) +{ } + +G4FluoTransition::~G4FluoTransition() +{ } + +const G4std::vector& G4FluoTransition::OriginatingShellIds() const +{ + return originatingShellIds; +} + +const G4DataVector& G4FluoTransition::TransitionEnergies() const +{ + return transitionEnergies; +} + +const G4DataVector& G4FluoTransition::TransitionProbabilities() const +{ + return transitionProbabilities; +} + +const G4int G4FluoTransition::FinalShellId() const +{ + return finalShellId; +} + +G4int G4FluoTransition::OriginatingShellId(G4int index) const +{ + return originatingShellIds[index]; +} +G4double G4FluoTransition::TransitionEnergy(G4int index) const +{ + return transitionEnergies[index]; +} +G4double G4FluoTransition::TransitionProbability(G4int index) const +{ + return transitionProbabilities[index]; +} + diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc index 80d2aff6f1..e336d2b88c 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LinInterpolation.cc,v 1.1 2001/11/29 19:01:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LinInterpolation.cc,v 1.2 2002/05/28 09:20:19 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -39,16 +39,18 @@ G4LinInterpolation::G4LinInterpolation() { } - // Destructor G4LinInterpolation::~G4LinInterpolation() { } +G4VDataSetAlgorithm* G4LinInterpolation::Clone() const +{ return new G4LinInterpolation; } + G4double G4LinInterpolation::Calculate(G4double x, G4int bin, - const G4DataVector& points, - const G4DataVector& data) const + const G4DataVector& points, + const G4DataVector& data) const { G4int nBins = data.size() - 1; G4double value = 0.; diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc new file mode 100644 index 0000000000..ca160f7c7c --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.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. * +// ******************************************************************** +// +// +// +// Author: Vladimir Ivanchenko (Vladimir.Ivantchenko@cern.ch) +// +// History: +// ----------- +// 27 May 2002 VI Created +// +// ------------------------------------------------------------------- + +#include "G4LinLogInterpolation.hh" + +// Constructor + +G4LinLogInterpolation::G4LinLogInterpolation() +{ } + + +// Destructor + +G4LinLogInterpolation::~G4LinLogInterpolation() +{ } + + +G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, + const G4DataVector& points, + const G4DataVector& data) const +{ + G4int nBins = data.size() - 1; + G4double value = 0.; + if (x < points[0]) + { + value = 0.; + } + else if (bin < nBins) + { + G4double e1 = points[bin]; + G4double e2 = points[bin+1]; + G4double d1 = log(data[bin]); + G4double d2 = log(data[bin+1]); + value = exp(d1 + (d2 - d1)*(x - e1)/ (e2 - e1)); + } + else + { + value = data[nBins]; + } + return value; +} diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc new file mode 100644 index 0000000000..72b7a6d384 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.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. * +// ******************************************************************** +// +// +// Author: Vladimir Ivanchenko (Vladimir.Ivantchenko@cern.ch) +// +// History: +// ----------- +// 29 May 2002 VI Created +// +// ------------------------------------------------------------------- + +#include "G4LinLogLogInterpolation.hh" + +// Constructor + +G4LinLogLogInterpolation::G4LinLogLogInterpolation() +{ } + +// Destructor + +G4LinLogLogInterpolation::~G4LinLogLogInterpolation() +{ } + +G4VDataSetAlgorithm* G4LinLogLogInterpolation::Clone() const +{ return new G4LinLogLogInterpolation; } + + +G4double G4LinLogLogInterpolation::Calculate(G4double x, G4int bin, + const G4DataVector& points, + const G4DataVector& data) const +{ + G4int nBins = data.size() - 1; + G4double value = 0.; + if (x < points[0]) + { + value = 0.; + } + else if (bin < nBins) + { + G4double e1 = points[bin]; + G4double e2 = points[bin+1]; + G4double d1 = data[bin]; + G4double d2 = data[bin+1]; + if(d1 > 0.0 && d2 > 0.0) { + value = (log10(d1)*log10(e2/x) + log10(d2)*log10(x/e1)) / log10(e2/e1); + value = pow(10,value); + } else { + value = (d1*log10(e2/x) + d2*log10(x/e1)) / log10(e2/e1); + } + } + else + { + value = data[nBins]; + } + + return value; +} diff --git a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc index 839e666148..cd20c6c6da 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogLogInterpolation.cc,v 1.3 2001/09/10 18:07:35 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LogLogInterpolation.cc,v 1.4 2002/05/28 09:20:19 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -39,12 +39,14 @@ G4LogLogInterpolation::G4LogLogInterpolation() { } - // Destructor G4LogLogInterpolation::~G4LogLogInterpolation() { } +G4VDataSetAlgorithm* G4LogLogInterpolation::Clone() const +{ return new G4LogLogInterpolation; } + G4double G4LogLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& points, diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc index 9760c31f0d..fd8bdc8e15 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyBremsstrahlung.cc,v 1.54 2001/11/29 19:01:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc index e64212f9a5..0d0e2a4c3e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 6af71fe384..4c2d24c16b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc @@ -22,8 +22,8 @@ // // -------------------------------------------------------------------- /// -// $Id: G4LowEnergyGammaConversion.cc,v 1.26 2001/11/07 21:31:16 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LowEnergyGammaConversion.cc,v 1.27 2002/05/31 18:48:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- @@ -252,7 +252,7 @@ G4VParticleChange* G4LowEnergyGammaConversion::PostStepDoIt(const G4Track& aTrac G4double localEnergyDeposit = 0. ; - aParticleChange.SetNumberOfSecondaries(2.) ; + aParticleChange.SetNumberOfSecondaries(2) ; G4double electronKineEnergy = G4std::max(0.,electronTotEnergy - electron_mass_c2) ; // Generate the electron only if with large enough range w.r.t. cuts and safety diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc index a995000a11..e3cf19209f 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.76 2001/11/29 19:01:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LowEnergyIonisation.cc,v 1.85 2002/06/03 00:07:17 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // @@ -83,6 +83,12 @@ // 26.10.01 V.Ivanchenko clean up deexcitation // 28.10.01 V.Ivanchenko update printout // 29.11.01 V.Ivanchenko New parametrisation introduced +// 25.03.02 V.Ivanchneko Fix in fluorescence +// 28.03.02 V.Ivanchenko Add flag of fluorescence +// 28.05.02 V.Ivanchenko Remove flag fStopAndKill +// 31.05.02 V.Ivanchenko Add path of Fluo + Auger cuts to +// AtomicDeexcitation +// 03.06.02 MGP Restore fStopAndKill // // -------------------------------------------------------------- @@ -244,8 +250,7 @@ void G4LowEnergyIonisation::BuildLossTable( G4PhysicsLogVector* bVector = new G4PhysicsLogVector(lowKineticEnergy, highKineticEnergy, binForFluo); - G4AtomicTransitionManager* transitionManager = - G4AtomicTransitionManager::Instance(); + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); // Clean up the vector of cuts @@ -300,8 +305,6 @@ void G4LowEnergyIonisation::BuildLossTable( lowEdgeEnergy, n); G4double cs= crossSectionHandler->FindValue(Z, lowEdgeEnergy, n); ionloss += e * cs * pro * theAtomicNumDensityVector[iel]; - G4double esp = energySpectrum->Excitation(Z, lowEdgeEnergy); - //ionloss += esp * theAtomicNumDensityVector[iel]; if(verboseLevel > 1) { G4cout << "Z= " << Z << " shell= " << n @@ -309,11 +312,12 @@ void G4LowEnergyIonisation::BuildLossTable( << " Eav(keV)= " << e/keV << " pro= " << pro << " cs= " << cs - << " esp= " << esp << " loss= " << ionloss << G4endl; } } + G4double esp = energySpectrum->Excitation(Z, lowEdgeEnergy); + ionloss += esp * theAtomicNumDensityVector[iel]; } aVector->PutValue(i,ionloss); } @@ -385,7 +389,7 @@ void G4LowEnergyIonisation::BuildLossTable( G4VParticleChange* G4LowEnergyIonisation::PostStepDoIt(const G4Track& track, - const G4Step& step) + const G4Step& step) { // Delta electron production mechanism on base of the model // J. Stepanek " A program to determine the radiation spectra due @@ -481,6 +485,7 @@ G4VParticleChange* G4LowEnergyIonisation::PostStepDoIt(const G4Track& track, if(finalKinEnergy < 0.0) { theEnergyDeposit += finalKinEnergy; finalKinEnergy = 0.0; + aParticleChange.SetStatusChange(fStopAndKill); } else { @@ -491,7 +496,6 @@ G4VParticleChange* G4LowEnergyIonisation::PostStepDoIt(const G4Track& track, aParticleChange.SetMomentumChange(finalPx, finalPy, finalPz); } - aParticleChange.SetEnergyChange(finalKinEnergy); // Generation of Fluorescence and Auger @@ -503,7 +507,7 @@ G4VParticleChange* G4LowEnergyIonisation::PostStepDoIt(const G4Track& track, // Fluorescence data start from element 6 - if (Z > 5 && (bindingEnergy >= cutForPhotons + if (Fluorescence() && Z > 5 && (bindingEnergy >= cutForPhotons || bindingEnergy >= cutForElectrons)) { secondaryVector = deexcitationManager.GenerateParticles(Z, shellId); @@ -586,8 +590,8 @@ G4bool G4LowEnergyIonisation::IsApplicable(const G4ParticleDefinition& particle) G4std::vector* G4LowEnergyIonisation::DeexciteAtom(const G4Material* material, - G4double incidentEnergy, - G4double eLoss) + G4double incidentEnergy, + G4double eLoss) { // create vector of secondary particles @@ -596,7 +600,7 @@ G4LowEnergyIonisation::DeexciteAtom(const G4Material* material, if(eLoss > cutForPhotons && eLoss > cutForElectrons) { - G4AtomicTransitionManager* transitionManager = + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); size_t nElements = material->GetNumberOfElements(); @@ -622,8 +626,7 @@ G4LowEnergyIonisation::DeexciteAtom(const G4Material* material, G4double maxE = transitionManager->Shell(Z, 0)->BindingEnergy(); - if (Z>5 && (maxE>cutForPhotons || maxE>cutForElectrons) - && nVacancies > 0 ) { + if (nVacancies && Z > 5 && (maxE>cutForPhotons || maxE>cutForElectrons)) { for (size_t j=0; j photon energy +// 18.04.2001 V.Ivanchenko Fix problem with low energy gammas from fluorescence +// MeanFreePath is calculated by crosSectionHandler directly +// 31.05.2002 V.Ivanchenko Add path of Fluo + Auger cuts to AtomicDeexcitation +// 14.06.2002 V.Ivanchenko By default do not cheak range of e- // // -------------------------------------------------------------- @@ -72,7 +76,7 @@ #include "G4VDataSetAlgorithm.hh" #include "G4LogLogInterpolation.hh" #include "G4VRangeTest.hh" -#include "G4RangeTest.hh" +#include "G4RangeNoTest.hh" #include "G4AtomicTransitionManager.hh" #include "G4AtomicShell.hh" @@ -82,7 +86,8 @@ G4LowEnergyPhotoElectric::G4LowEnergyPhotoElectric(const G4String& processName) : G4VDiscreteProcess(processName), lowEnergyLimit(250*eV), highEnergyLimit(100*GeV), intrinsicLowEnergyLimit(10*eV), intrinsicHighEnergyLimit(100*GeV), - cutForLowEnergySecondaryPhotons(0.) + cutForLowEnergySecondaryPhotons(250.*eV), + cutForLowEnergySecondaryElectrons(250.*eV) { if (lowEnergyLimit < intrinsicLowEnergyLimit || highEnergyLimit > intrinsicHighEnergyLimit) @@ -93,7 +98,7 @@ G4LowEnergyPhotoElectric::G4LowEnergyPhotoElectric(const G4String& processName) crossSectionHandler = new G4CrossSectionHandler(); shellCrossSectionHandler = new G4CrossSectionHandler(); meanFreePathTable = 0; - rangeTest = new G4RangeTest; + rangeTest = new G4RangeNoTest; if (verboseLevel > 0) { @@ -161,7 +166,7 @@ G4VParticleChange* G4LowEnergyPhotoElectric::PostStepDoIt(const G4Track& aTrack, size_t shellIndex = shellCrossSectionHandler->SelectRandomShell(Z,photonEnergy); // Retrieve the corresponding identifier and binding energy of the selected shell - G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); const G4AtomicShell* shell = transitionManager->Shell(Z,shellIndex); G4double bindingEnergy = shell->BindingEnergy(); G4int shellId = shell->ShellId(); @@ -171,7 +176,7 @@ G4VParticleChange* G4LowEnergyPhotoElectric::PostStepDoIt(const G4Track& aTrack, G4std::vector* photonVector = 0; G4std::vector electronVector; - G4double energyDeposit = bindingEnergy; + G4double energyDeposit = 0.0; // Primary outcoming electron G4double eKineticEnergy = photonEnergy - bindingEnergy; @@ -198,60 +203,71 @@ G4VParticleChange* G4LowEnergyPhotoElectric::PostStepDoIt(const G4Track& aTrack, } else { - energyDeposit = photonEnergy; + bindingEnergy = photonEnergy; } - G4int nElectrons = electronVector.size(); size_t nTotPhotons = 0; G4int nPhotons=0; + G4double cutg = G4std::min(cutForLowEnergySecondaryPhotons, + G4Gamma::Gamma()->GetEnergyThreshold(material)); + G4double cute = G4std::min(cutForLowEnergySecondaryElectrons, + G4Electron::Electron()->GetEnergyThreshold(material)); + G4DynamicParticle* aPhoton; // Generation of fluorescence // Data in EADL are available only for Z > 5 // Protection to avoid generating photons in the unphysical case of // shell binding energy > photon energy - if (Z > 5 && eKineticEnergy > 0.) + if (Z > 5 && (bindingEnergy > cutg || bindingEnergy > cute)) { photonVector = deexcitationManager.GenerateParticles(Z,shellId); nTotPhotons = photonVector->size(); for (size_t k=0; kGetKineticEnergy(); - G4double eDepositTmp = energyDeposit - itsKineticEnergy; - if (itsKineticEnergy >= cutForLowEnergySecondaryPhotons && - eDepositTmp > 0.) + G4double itsCut = cutg; + if(aPhoton->GetDefinition() == G4Electron::Electron()) itsCut = cute; + G4double itsEnergy = aPhoton->GetKineticEnergy(); + + if (itsEnergy > itsCut && itsEnergy <= bindingEnergy) { nPhotons++; // Local energy deposit is given as the sum of the // energies of incident photons minus the energies // of the outcoming fluorescence photons - energyDeposit -= itsKineticEnergy; + bindingEnergy -= itsEnergy; } else - { delete aPhoton; } + { + delete aPhoton; + (*photonVector)[k] = 0; + } } } } + + energyDeposit += bindingEnergy; + G4int nSecondaries = nElectrons + nPhotons; - aParticleChange.SetNumberOfSecondaries(nSecondaries); - - G4int l = 0; - for ( l = 0; lGetKineticEnergy(); G4Material* material = track.GetMaterial(); - size_t materialIndex = material->GetIndex(); + // size_t materialIndex = material->GetIndex(); + + G4double meanFreePath = DBL_MAX; + + // if (energy > highEnergyLimit) + // meanFreePath = meanFreePathTable->FindValue(highEnergyLimit,materialIndex); + // else if (energy < lowEnergyLimit) meanFreePath = DBL_MAX; + // else meanFreePath = meanFreePathTable->FindValue(energy,materialIndex); + + G4double cross = shellCrossSectionHandler->ValueForMaterial(material,energy); + if(cross > 0.0) meanFreePath = 1.0/cross; - G4double meanFreePath; - if (energy > highEnergyLimit) - meanFreePath = meanFreePathTable->FindValue(highEnergyLimit,materialIndex); - else if (energy < lowEnergyLimit) meanFreePath = DBL_MAX; - else meanFreePath = meanFreePathTable->FindValue(energy,materialIndex); return meanFreePath; } void G4LowEnergyPhotoElectric::SetCutForLowEnSecPhotons(G4double cut) { cutForLowEnergySecondaryPhotons = cut; + deexcitationManager.SetCutForSecondaryPhotons(cut); +} + +void G4LowEnergyPhotoElectric::SetCutForLowEnSecElectrons(G4double cut) +{ + cutForLowEnergySecondaryElectrons = cut; + deexcitationManager.SetCutForAugerElectrons(cut); +} + +void G4LowEnergyPhotoElectric::ActivateAuger(G4bool val) +{ + deexcitationManager.ActivateAugerElectronProduction(val); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc index cd6ce8177e..cbe59409ab 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LowEnergyPolarizedCompton.cc,v 1.11 2001/11/07 21:31:16 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LowEnergyPolarizedCompton.cc,v 1.13 2002/06/02 21:27:52 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file @@ -32,6 +32,7 @@ // --------- G4LowEnergyPolarizedCompton class ----- // // by G.Depaola & F.Longo (21 may 2001) +// // 21 May 2001 - MGP Modified to inherit from G4VDiscreteProcess // Applies same algorithm as LowEnergyCompton // if the incoming photon is not polarised @@ -40,6 +41,11 @@ // // 17 October 2001 - F.Longo - Revised according to a design iteration // +// 21 February 2002 - F.Longo Revisions with A.Zoglauer and G.Depaola +// - better description of parallelism +// - system of ref change method improved +// +// // ************************************************************ // // Corrections by Rui Curado da Silva (2000) @@ -155,21 +161,28 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra // direction causes problems; // in that case find a random polarization - G4ThreeVector gammaDirection = incidentPhoton->GetMomentumDirection(); + G4ThreeVector gammaDirection0 = incidentPhoton->GetMomentumDirection(); + // ---- MGP ---- Next two lines commented out to remove compilation warnings + // G4double scalarproduct = gammaPolarization0.dot(gammaDirection0); + // G4double angle = gammaPolarization0.angle(gammaDirection0); + + // Make sure that the polarization vector is perpendicular to the + // gamma direction. If not - G4double scalarproduct = gammaPolarization0.dot(gammaDirection); - G4double angle = gammaPolarization0.angle(gammaDirection); - - if (scalarproduct != 0. || angle == 0) - { - // isPolarised = false; - gammaPolarization0 = SetRandomPolarization(gammaDirection); + if(!(gammaPolarization0.isOrthogonal(gammaDirection0, 1e-6))||(gammaPolarization0.mag()==0)) + { // only for testing now + gammaPolarization0 = GetRandomPolarization(gammaDirection0); } - + else + { + if ( gammaPolarization0.howOrthogonal(gammaDirection0) != 0) + { + gammaPolarization0 = GetPerpendicularPolarization(gammaDirection0, gammaPolarization0); + } + } + // End of Protection - - // G4double polarisation = gammaPolarization0.mag(); - + // Within energy limit? if(gammaEnergy0 <= lowEnergyLimit) @@ -181,7 +194,6 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra } G4double E0_m = gammaEnergy0 / electron_mass_c2 ; - G4ThreeVector gammaDirection0 = incidentPhoton->GetMomentumDirection(); // Select randomly one element in the current material @@ -201,9 +213,6 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra G4double gammaEnergy1; G4ThreeVector gammaDirection1; - // if (isPolarised) // apply Polarized Condition - // { - do { if ( alpha1/(alpha1+alpha2) > G4UniformRand() ) { @@ -245,11 +254,9 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra G4double x = sqrt(onecost/2.) / (wlGamma/cm);; G4double scatteringFunction = scatterFunctionData->FindValue(x,Z-1); greject = (1. - epsilon*sinThetaSqr/(1.+ epsilonSq))*scatteringFunction; - //greject = 1. - epsilon*sinThetaSqr/(1.+ epsilonSq); - + } while(greject < G4UniformRand()*Z); - //(greject < G4UniformRand()); - + // **************************************************** // Phi determination @@ -332,9 +339,7 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra cosTheta); // Set new direction - //G4ThreeVector tmpDirection1( dirx,diry,dirz ); - - G4ParticleMomentum tmpDirection1( dirx,diry,dirz ); + G4ThreeVector tmpDirection1( dirx,diry,dirz ); gammaDirection1 = tmpDirection1; // Change reference frame. @@ -345,6 +350,8 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra if (gammaEnergy1 > 0.) { aParticleChange.SetEnergyChange( gammaEnergy1 ) ; + aParticleChange.SetMomentumChange( gammaDirection1 ); + aParticleChange.SetPolarizationChange( gammaPolarization1 ); } else { @@ -358,7 +365,6 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra G4double ElecKineEnergy = gammaEnergy0 - gammaEnergy1 ; - // Generate the electron only if with large enough range w.r.t. cuts and safety G4double safety = aStep.GetPostStepPoint()->GetSafety(); @@ -368,7 +374,7 @@ G4VParticleChange* G4LowEnergyPolarizedCompton::PostStepDoIt(const G4Track& aTra G4double ElecMomentum = sqrt(ElecKineEnergy*(ElecKineEnergy+2.*electron_mass_c2)); G4ThreeVector ElecDirection((gammaEnergy0 * gammaDirection0 - gammaEnergy1 * gammaDirection1) * (1./ElecMomentum)); - G4DynamicParticle* electron = new G4DynamicParticle (G4Electron::Electron(),ElecDirection,ElecKineEnergy) ; + G4DynamicParticle* electron = new G4DynamicParticle (G4Electron::Electron(),ElecDirection.unit(),ElecKineEnergy) ; aParticleChange.SetNumberOfSecondaries(1); aParticleChange.AddSecondary(electron); aParticleChange.SetLocalEnergyDeposit(0.); @@ -428,7 +434,7 @@ G4ThreeVector G4LowEnergyPolarizedCompton::SetPerpendicularVector(G4ThreeVector& } } -G4ThreeVector G4LowEnergyPolarizedCompton::SetRandomPolarization(G4ThreeVector& direction0) +G4ThreeVector G4LowEnergyPolarizedCompton::GetRandomPolarization(G4ThreeVector& direction0) { G4ThreeVector d0 = direction0.unit(); G4ThreeVector a1 = SetPerpendicularVector(d0); //different orthogonal @@ -451,6 +457,25 @@ G4ThreeVector G4LowEnergyPolarizedCompton::SetRandomPolarization(G4ThreeVector& } + +G4ThreeVector G4LowEnergyPolarizedCompton::GetPerpendicularPolarization +(const G4ThreeVector& gammaDirection, const G4ThreeVector& gammaPolarization) const +{ + + // + // The polarization of a photon is always perpendicular to its momentum direction. + // Therefore this function removes those vector component of gammaPolarization, which + // points in direction of gammaDirection + // + // Mathematically we search the projection of the vector a on the plane E, where n is the + // plains normal vector. + // The basic equation can be found in each geometry book (e.g. Bronstein): + // p = a + (a o n)/(n o n)*n + + return gammaPolarization + gammaPolarization.dot(gammaDirection)/gammaDirection.dot(gammaDirection) * gammaDirection; +} + + G4ThreeVector G4LowEnergyPolarizedCompton::SetNewPolarization(G4double epsilon, G4double sinSqrTh, G4double phi, @@ -480,16 +505,16 @@ G4ThreeVector G4LowEnergyPolarizedCompton::SetNewPolarization(G4double epsilon, rand2 = G4UniformRand(); thetaProbability=0.; theta = twopi*rand1; - a = 4; + a = 4*normalisation*normalisation; b = (epsilon + 1/epsilon) - 2; thetaProbability = (b + a*cos(theta)*cos(theta))/(a+b); cosTheta = cos(theta); } - while ( rand2 > thetaProbability || abs(cosTheta) > abs(normalisation) ); + while ( rand2 > thetaProbability ); - G4double cosBeta = cosTheta/normalisation; + G4double cosBeta = cosTheta; G4double sinBeta = sqrt(1-cosBeta*cosBeta); - + G4ThreeVector gammaPolarization1; G4double xParallel = normalisation*cosBeta; @@ -517,60 +542,24 @@ void G4LowEnergyPolarizedCompton::SystemOfRefChange G4ThreeVector& polarization0,G4ThreeVector& polarization1) { - // Angles for go back to the original RS - + // direction0 is the original photon direction ---> z + // polarization0 is the original photon polarization ---> x + // need to specify y axis in the real reference frame ---> y + G4ThreeVector Axis_Z0 = direction0.unit(); + G4ThreeVector Axis_X0 = polarization0.unit(); + G4ThreeVector Axis_Y0 = (Axis_Z0.cross(Axis_X0)).unit(); // to be confirmed; + G4double direction_x = direction1.getX(); + G4double direction_y = direction1.getY(); + G4double direction_z = direction1.getZ(); - G4double cosTheta0 = direction0.cosTheta(); - G4double sinTheta0 = sin(direction0.theta()); - G4double cosPhi0 = cos(direction0.phi()); - G4double sinPhi0 = sin(direction0.phi()); - G4double cosPsi, sinPsi; + direction1 = (direction_x*Axis_X0 + direction_y*Axis_Y0 + direction_z*Axis_Z0).unit(); - // if (sinTheta0 >= 1.e-14 ) { - if (sinTheta0 != 0. ) - { - cosPsi = -polarization0.z()/sinTheta0; - // if (cosPhi0 >=1.e-14 ) { - if (cosPhi0 != 0. ) - { - sinPsi = (polarization0.y() - cosTheta0*sinPhi0*cosPsi)/cosPhi0; - } - else - { - sinPsi = -polarization0.x()/sinPhi0; - } - } - else - { - cosPsi = polarization0.x()/cosTheta0; - sinPsi = polarization0.y(); - } + G4double polarization_x = polarization1.getX(); + G4double polarization_y = polarization1.getY(); + G4double polarization_z = polarization1.getZ(); - // Added protection - - G4double psi = 0; - - if (sinPsi < 0.) psi = -pi/2.; - if (sinPsi > 0.) psi = pi/2.; - - if (cosPsi != 0.) - { - psi = atan(sinPsi/cosPsi); - } - - // Rotation along Z axis - direction1.rotateZ(psi); - // - direction1.rotateUz(direction0); - - aParticleChange.SetMomentumChange( direction1 ) ; - - // 3 Euler angles rotation for scattered photon polarization - - polarization1.rotateZ(psi); - polarization1.rotateUz(direction0); - aParticleChange.SetPolarizationChange( polarization1 ); + polarization1 =(polarization_x*Axis_X0+polarization_y*Axis_Y0+polarization_z*Axis_Z0).unit(); } @@ -589,7 +578,6 @@ G4double G4LowEnergyPolarizedCompton::GetMeanFreePath(const G4Track& track, G4double energy = photon->GetKineticEnergy(); G4Material* material = track.GetMaterial(); size_t materialIndex = material->GetIndex(); - G4double meanFreePath; if (energy > highEnergyLimit) meanFreePath = meanFreePathTable->FindValue(highEnergyLimit,materialIndex); else if (energy < lowEnergyLimit) meanFreePath = DBL_MAX; diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc index a9628e3c4e..a6a43ea28a 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.28 2001/11/07 21:31:16 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LowEnergyRayleigh.cc,v 1.29 2002/06/07 10:25:02 flongo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) @@ -38,6 +38,7 @@ // 24.04.01 V.Ivanchenko remove RogueWave // 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 // // -------------------------------------------------------------------- @@ -165,9 +166,9 @@ G4VParticleChange* G4LowEnergyRayleigh::PostStepDoIt(const G4Track& aTrack, G4double theta = thetaHalf*2; cosTheta = cos(theta); sinTheta = sin(theta); - G4double sqrRayl = 1 + cosTheta * cosTheta; + G4double sqrRayl = sqrt(27./32.)*(1 + cosTheta * cosTheta)*sinTheta; gReject = sqrRayl * dataFormFactor * dataFormFactor; - + } while( gReject < randomFormFactor); // Scattered photon angles. ( Z - axis along the parent photon) diff --git a/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc b/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc index 75b082da88..6ec01fd505 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RangeTest.cc,v 1.4 2001/11/07 20:47:30 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4RangeTest.cc,v 1.5 2002/05/28 09:20:21 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -37,6 +37,9 @@ #include "G4Material.hh" #include "G4EnergyLossTables.hh" +G4RangeTest::~G4RangeTest() +{ } + G4bool G4RangeTest::Escape(const G4ParticleDefinition* particle, const G4Material* material, G4double energy, diff --git a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc index 1e67ebee7d..ff96279661 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SemiLogInterpolation.cc,v 1.3 2001/09/10 18:07:35 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SemiLogInterpolation.cc,v 1.4 2002/05/28 09:20:21 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -45,6 +45,9 @@ G4SemiLogInterpolation::G4SemiLogInterpolation() G4SemiLogInterpolation::~G4SemiLogInterpolation() { } +G4VDataSetAlgorithm* G4SemiLogInterpolation::Clone() const +{ return new G4SemiLogInterpolation; } + G4double G4SemiLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& points, diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc index 9578807ecf..d955d71fd9 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellData.cc,v 1.4 2001/09/26 21:19:23 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ShellData.cc,v 1.5 2002/05/28 09:20:21 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -48,12 +48,12 @@ G4ShellData::~G4ShellData() { G4std::map >::iterator pos; - for (pos = idMap.begin(); pos != idMap.end(); pos++) + for (pos = idMap.begin(); pos != idMap.end(); ++pos) { G4DataVector* dataSet = (*pos).second; delete dataSet; } - for (pos = bindingMap.begin(); pos != bindingMap.end(); pos++) + for (pos = bindingMap.begin(); pos != bindingMap.end(); ++pos) { G4DataVector* dataSet = (*pos).second; delete dataSet; @@ -170,7 +170,7 @@ void G4ShellData::LoadData(const G4String& fileName) char* path = getenv("G4LEDATA"); if (!path) { - G4String excep = "G4EMDataSet - G4LEDATA environment variable not set"; + G4String excep("G4EMDataSet - G4LEDATA environment variable not set"); G4Exception(excep); } @@ -181,7 +181,9 @@ void G4ShellData::LoadData(const G4String& fileName) if (! (lsdp->is_open()) ) { - G4String excep = "G4ShellData - data file: " + dirFile + " not found"; + G4String s1("G4ShellData - data file: "); + G4String s2(" not found"); + G4String excep = s1 + dirFile + s2; G4Exception(excep); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc index 70fa9274d0..b5a836b4e4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellEMDataSet.cc,v 1.7 2001/10/11 14:10:40 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ShellEMDataSet.cc,v 1.8 2002/05/28 09:20:21 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -65,7 +65,8 @@ G4ShellEMDataSet::~G4ShellEMDataSet() { for (size_t i=0; iis_open()) ) { - G4String excep = "G4ShellEMDataSet - data file: " + dirFile + " not found"; + G4String s1("G4ShellEMDataSet - data file: "); + G4String s2(" not found"); + G4String excep = s1 + dirFile + s2; G4Exception(excep); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc index eea4804192..a96a7f200a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc @@ -29,6 +29,7 @@ // History: // ----------- // 21 Sept 2001 Elena Guardincerri Created +// 25 Mar 2002 V.Ivanchenko Change AverageNOfIonisations int->double // // ------------------------------------------------------------------- @@ -67,17 +68,18 @@ G4std::vector G4ShellVacancy::GenerateNumberOfIonisations(const G4Materia { G4std::vector numberOfIonisations; - size_t numberOfElements = material->GetNumberOfElements(); + G4int numberOfElements = material->GetNumberOfElements(); - for (size_t i = 0; iGetElement(i); - - G4int averageNumberOfIonisations = AverageNOfIonisations(material, - element, - incidentEnergy, - eLoss); - G4int ionisations = (G4int) G4Poisson(averageNumberOfIonisations); + G4double averageNumberOfIonisations = AverageNOfIonisations(material, + i, + incidentEnergy, + eLoss); + G4int ionisations = 0; + if(averageNumberOfIonisations > 0.0) { + ionisations = (G4int) G4Poisson(averageNumberOfIonisations); + } numberOfIonisations.push_back(ionisations); @@ -86,42 +88,21 @@ G4std::vector G4ShellVacancy::GenerateNumberOfIonisations(const G4Materia } -G4int G4ShellVacancy::AverageNOfIonisations(const G4Material* material, - const G4Element* element, - G4double energy, - G4double eLoss) const +G4double G4ShellVacancy::AverageNOfIonisations(const G4Material* material, + G4int index, + G4double energy, + G4double eLoss) const { - G4int indexOfElementInMaterial= -1; + // G4int indexOfElementInMaterial= -1; G4double averageEnergy = energy - eLoss/2.; - G4String elementName = element->GetName(); - - size_t numberOfElements = material->GetNumberOfElements(); - - for (size_t i = 0; iGetElement(i); - - G4String itsName = anElement->GetName(); - - if (itsName==elementName) - { - indexOfElementInMaterial=i; - break; - } - //else - //{break;} - } size_t indexInMaterialTable = material->GetIndex(); - G4VEMDataSet* aSetOfXsi = xsis[indexInMaterialTable]; + G4VEMDataSet* aSetOfXsi = xsis[indexInMaterialTable]; - G4double aXsi = aSetOfXsi->FindValue(averageEnergy,indexOfElementInMaterial); - - G4int averageNumberOfIonisations = (G4int)(aXsi * eLoss); - - return averageNumberOfIonisations; - + G4double aXsi = aSetOfXsi->FindValue(averageEnergy,index); + + return aXsi * eLoss; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc index c9a94b1722..b2bd025545 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCrossSectionHandler.cc,v 1.8 2001/10/10 16:46:06 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VCrossSectionHandler.cc,v 1.9 2002/05/28 09:20:21 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -405,8 +405,7 @@ G4double G4VCrossSectionHandler::ValueForMaterial(const G4Material* material, } -G4VEMDataSet* G4VCrossSectionHandler::BuildMeanFreePathForMaterials( - const G4DataVector* energyCuts) +G4VEMDataSet* G4VCrossSectionHandler::BuildMeanFreePathForMaterials(const G4DataVector* energyCuts) { // Builds a CompositeDataSet containing the mean free path for each material // in the material table diff --git a/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc index a6a657887b..dc407d09f3 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VeLowEnergyLoss.cc,v 1.17 2001/11/23 11:45:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc index 5fa9fe284b..4ec0444d3b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eBremsstrahlungSpectrum.cc,v 1.5 2001/11/30 00:52:52 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eBremsstrahlungSpectrum.cc,v 1.7 2002/05/30 17:53:09 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // @@ -37,6 +37,8 @@ // Modifications: // 10.10.01 MGP Revision to improve code quality and consistency with design // 15.11.01 VI Update spectrum model Bethe-Haitler spectrum at high energy +// 30.05.02 VI Update interpolation between 2 last energy points in the +// parametrisation // // ------------------------------------------------------------------- @@ -73,10 +75,10 @@ G4eBremsstrahlungSpectrum::~G4eBremsstrahlungSpectrum() G4double G4eBremsstrahlungSpectrum::Probability(G4int Z, - G4double tmin, - G4double tmax, - G4double e, - G4int, + G4double tmin, + G4double tmax, + G4double e, + G4int, const G4ParticleDefinition*) const { G4double tm = G4std::min(tmax, e); @@ -87,31 +89,16 @@ G4double G4eBremsstrahlungSpectrum::Probability(G4int Z, tm /= e; G4double z = lowestE/e; - G4double x, y; - - // Below 10 MeV EEDL data base spectrum - if(e < 1000000.*MeV) { - - G4int iMax = 16; - G4DataVector p; - - // Access parameters - for (G4int i=0; iParameter(i, Z, e)); - } - - x = IntSpectrum(t0, tm, p); - y = IntSpectrum(z, 1.0, p); - p.clear(); - - - // Above Bethe-Heitler formula - } else { - - x = log(tm/t0) - tm + t0 + 0.375*(tm*tm - t0*t0); - y = log(1./z) - 1.0 + z + 0.375*(1. - z*z); + G4DataVector p; + // Access parameters + for (size_t i=0; i<=length; i++) { + p.push_back(theBRparam->Parameter(i, Z, e)); } + + G4double x = IntSpectrum(t0, tm, p); + G4double y = IntSpectrum(z, 1.0, p); + if(1 < verbose) { G4cout << "tcut(MeV)= " << tmin/MeV @@ -124,60 +111,47 @@ G4double G4eBremsstrahlungSpectrum::Probability(G4int Z, << "; nor= " << y << G4endl; } + p.clear(); if(y > 0.0) x /= y; else x = 0.0; - if(x < 0.0) x = 0.0; + // if(x < 0.0) x = 0.0; return x; } G4double G4eBremsstrahlungSpectrum::AverageEnergy(G4int Z, - G4double tmin, - G4double tmax, - G4double e, - G4int, + G4double tmin, + G4double tmax, + G4double e, + G4int, const G4ParticleDefinition*) const { G4double tm = G4std::min(tmax, e); G4double t0 = G4std::max(tmin, lowestE); if(t0 >= tm) return 0.0; - G4double c = sqrt(theBRparam->ParameterC(Z)); - t0 /= e; tm /= e; - G4double z = lowestE/e; - G4double x, y, f; + G4double z0 = lowestE/e; - // Below 10 MeV EEDL data base spectrum - if(e < 1000000.*MeV) { + G4DataVector p; - G4int iMax = 16; - G4DataVector p; - - // Access parameters - for (G4int i=0; iParameter(i, Z, e)); - } - - x = AverageValue(t0, tm, p); - y = IntSpectrum(z, 1.0, p); - f = Function(z, p); - p.clear(); - - // Above Bethe-Heitler formula - } else { - - x = tm - t0 - 0.5*(tm*tm - t0*t0) + 0.25*(tm*tm*tm - t0*t0*t0); - y = log(1./z) - 1.0 + z + 0.375*(1. - z*z); - f = 1. - x + 0.75*x*x; - } - x += 0.5*f*z*(z - c*atan(z/c)); + G4double x = AverageValue(t0, tm, p); + G4double y = IntSpectrum(z0, 1.0, p); + + // Add integrant over lowest energies + + G4double c = sqrt(theBRparam->ParameterC(Z)); + G4double f = Function(z0, p); + x += 0.5*f*z0*(z0 - c*atan(z0/c)); x *= e; @@ -191,21 +165,21 @@ G4double G4eBremsstrahlungSpectrum::AverageEnergy(G4int Z, << "; x= " << x << G4endl; } - + p.clear(); if(y > 0.0) x /= y; else x = 0.0; - if(x < 0.0) x = 0.0; + // if(x < 0.0) x = 0.0; return x; } G4double G4eBremsstrahlungSpectrum::SampleEnergy(G4int Z, - G4double tmin, - G4double tmax, - G4double e, - G4int, + G4double tmin, + G4double tmax, + G4double e, + G4int, const G4ParticleDefinition*) const { G4double tm = G4std::min(tmax, e); @@ -215,34 +189,22 @@ G4double G4eBremsstrahlungSpectrum::SampleEnergy(G4int Z, t0 /= e; tm /= e; - G4int iMax = 16; G4DataVector p; - G4double amaj; - - // Below 10 MeV EEDL data base spectrum - if(e < 10000000.*MeV) { - for (G4int i=0; iParameter(i, Z, e)); - } - amaj = G4std::max(p[15], 1. - (p[1] - p[0])/9.); - - } else { - amaj = 1.0; + for (size_t i=0; i<=length; i++) { + p.push_back(theBRparam->Parameter(i, Z, e)); } - + G4double amaj = G4std::max(p[15], 1. - (p[1] - p[0])/9.); G4double amax = log(tm); G4double amin = log(t0); G4double tgam, q, fun; + do { G4double x = amin + G4UniformRand()*(amax - amin); tgam = exp(x); - if(e < 10.*MeV) { - fun = Function(tgam, p); - } else { - fun = 1. - tgam + 0.75*tgam*tgam; - } + fun = Function(tgam, p); + if(fun > amaj) { G4cout << "WARNING in G4eBremsstrahlungSpectrum::SampleEnergy:" << " Majoranta " << amaj @@ -261,13 +223,11 @@ G4double G4eBremsstrahlungSpectrum::SampleEnergy(G4int Z, } G4double G4eBremsstrahlungSpectrum::IntSpectrum(G4double xMin, - G4double xMax, - const G4DataVector& p) const + G4double xMax, + const G4DataVector& p) const { G4double x1 = G4std::min(xMin, xp[0]); G4double x2 = G4std::min(xMax, xp[0]); - G4double z1 = x1; - G4double z2 = x2; G4double sum = 0.0; if(x1 < x2) { @@ -279,8 +239,8 @@ G4double G4eBremsstrahlungSpectrum::IntSpectrum(G4double xMin, x1 = G4std::max(xMin, xp[i]); x2 = G4std::min(xMax, xp[i+1]); if(x1 < x2) { - z1 = p[i]; - z2 = p[i+1]; + G4double z1 = p[i]; + G4double z2 = p[i+1]; sum += z2 - z1 + log(x2/x1)*(z1*x2 - z2*x1)/(x2 - x1); } } @@ -289,8 +249,8 @@ G4double G4eBremsstrahlungSpectrum::IntSpectrum(G4double xMin, } G4double G4eBremsstrahlungSpectrum::AverageValue(G4double xMin, - G4double xMax, - const G4DataVector& p) const + G4double xMax, + const G4DataVector& p) const { G4double x1 = G4std::min(xMin, xp[0]); G4double x2 = G4std::min(xMax, xp[0]); @@ -303,7 +263,7 @@ G4double G4eBremsstrahlungSpectrum::AverageValue(G4double xMin, sum += (z2 - z1)*(1. - k*xp[0]); z1 *= x1; z2 *= x2; - sum += 0.5*k*(z1 - z2); + sum += 0.5*k*(z2 - z1); } for (size_t i=0; i= xp[i]) { + if(x <= xp[i+1]) { f = p[i] + (p[i+1] - p[i])*(x - xp[i])/(xp[i+1] - xp[i]); break; } } } - if(f < 0.0) f = 0.0; return f; } void G4eBremsstrahlungSpectrum::PrintData() const { theBRparam->PrintData(); } +G4double G4eBremsstrahlungSpectrum::Excitation(G4int Z, G4double kineticEnergy) const +{ + return 0.0; +} + +G4double G4eBremsstrahlungSpectrum::MaxEnergyOfSecondaries(G4double kineticEnergy, + G4int Z, + const G4ParticleDefinition*) const +{ + return kineticEnergy; +} diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc index 69fbf503b4..6c17fd8aff 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.6 2001/11/29 19:01:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eIonisationCrossSectionHandler.cc,v 1.7 2002/05/30 17:53:09 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // @@ -44,6 +44,7 @@ #include "G4DataVector.hh" #include "G4CompositeEMDataSet.hh" #include "G4VDataSetAlgorithm.hh" +#include "G4LinLogLogInterpolation.hh" #include "G4SemiLogInterpolation.hh" #include "G4VEMDataSet.hh" #include "G4EMDataSet.hh" @@ -58,7 +59,7 @@ G4eIonisationCrossSectionHandler::G4eIonisationCrossSectionHandler( theParam(spec) { G4VCrossSectionHandler::Initialise(alg, emin, emax, nbin); - interp = new G4SemiLogInterpolation(); + interp = new G4LinLogLogInterpolation(); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc index 5b8c86817a..175455e928 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eIonisationParameters.cc,v 1.17 2001/11/30 00:52:52 pia Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eIonisationParameters.cc,v 1.19 2002/05/30 17:53:09 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -34,6 +34,8 @@ // 25.10.01 MGP Many bug fixes, mostly related to the // management of pointers // 29.11.01 V.Ivanchenko New parametrisation + Excitation +// 30.05.02 V.Ivanchenko Format and names of the data files were +// chenged to "ion-..." // // ------------------------------------------------------------------- @@ -42,7 +44,10 @@ #include "G4ShellEMDataSet.hh" #include "G4EMDataSet.hh" #include "G4CompositeEMDataSet.hh" +#include "G4LinInterpolation.hh" #include "G4LogLogInterpolation.hh" +#include "G4LinLogLogInterpolation.hh" +#include "G4SemiLogInterpolation.hh" #include "G4Material.hh" #include "G4DataVector.hh" #include "g4std/fstream" @@ -51,7 +56,7 @@ G4eIonisationParameters:: G4eIonisationParameters(G4int minZ, G4int maxZ) : zMin(minZ), zMax(maxZ), - length(7) + length(24) { LoadData(); } @@ -83,7 +88,7 @@ G4double G4eIonisationParameters::Parameter(G4int Z, G4int shellIndex, G4double e) const { G4double value = 0.; - G4int id = Z*20 + parameterIndex; + G4int id = Z*100 + parameterIndex; G4std::map >::const_iterator pos; pos = param.find(id); @@ -165,12 +170,13 @@ void G4eIonisationParameters::LoadData() char* path = getenv("G4LEDATA"); if (!path) { - G4String excep = "G4eIonisationParameters - G4LEDATA environment variable not set"; + G4String excep("G4eIonisationParameters - G4LEDATA environment variable not set"); G4Exception(excep); } G4String pathString(path); - pathString += "/ioni/io-sp-"; + G4String path2("/ioni/ion-sp-"); + pathString += path2; G4double energy, sum; @@ -188,20 +194,26 @@ void G4eIonisationParameters::LoadData() G4std::filebuf* lsdp = file.rdbuf(); if (! (lsdp->is_open()) ) { - G4String excep = "G4IonisationParameters - data file: " - + name + " not found"; + G4String excep = G4String("G4IonisationParameters - data file: ") + + name + G4String(" not found. The version 1.# of G4LEDATA should be used"); G4Exception(excep); } - // - MGP - Please add some documentation about the parameters read - // The file is organized into...: - // 1st column is the energy - // The file terminates with the pattern: -1 -1 + // The file is organized into: + // For each shell there are two lines: + // 1st line: + // 1st column is the energy of incident e-, + // 2d column is the parameter of screan term; + // 2d line: + // 3 energy (MeV) subdividing different approximation area of the spectrum + // 20 point on the spectrum + // The shell terminates with the pattern: -1 -1 + // The file terminates with the pattern: -2 -2 G4std::vector p; for (size_t k=0; k> ener >> sig; file_b >> ener1 >> sig1; + if(ener != ener1) { G4cout << "G4eIonisationParameters: problem in excitation data " << "ener= " << ener << " ener1= " << ener1 << G4endl; } + // End of file if (ener == -2) { break; @@ -319,7 +335,7 @@ void G4eIonisationParameters::LoadData() // fill map if Z is used if (activeZ.contains(Z)) { - G4VDataSetAlgorithm* inter = new G4LogLogInterpolation(); + G4VDataSetAlgorithm* inter = new G4LinInterpolation(); G4DataVector* eVector = new G4DataVector; G4DataVector* dVector = new G4DataVector; size_t eSize = e.size(); @@ -335,7 +351,7 @@ void G4eIonisationParameters::LoadData() } else { - e.push_back(ener); + e.push_back(ener*MeV); d.push_back(sig1*sig*barn*MeV); } } while (ener != -2); @@ -359,7 +375,7 @@ void G4eIonisationParameters::PrintData() const for (size_t j=0; j Shell(Z, shell)->BindingEnergy(); - G4double x1 = G4std::min(0.5,(t0 + bindingEnergy)/(e + bindingEnergy)); - G4double x2 = G4std::min(0.5,(tm + bindingEnergy)/(e + bindingEnergy)); + if(e <= bindingEnergy) return 0.0; + + G4double energy = e + bindingEnergy; + + G4double x1 = G4std::min(0.5,(t0 + bindingEnergy)/energy); + G4double x2 = G4std::min(0.5,(tm + bindingEnergy)/energy); if(verbose > 1) { G4cout << "G4eIonisationSpectrum::Probability: Z= " << Z @@ -96,20 +103,25 @@ G4double G4eIonisationSpectrum::Probability(G4int Z, << G4endl; } - G4int iMax = 7; G4DataVector p; // Access parameters for (G4int i=0; iParameter(Z, shell, i, e)); + G4double x = theParam->Parameter(Z, shell, i, e); + if(i<4) x /= energy; + p.push_back(x); } - G4double g = (e + bindingEnergy)/electron_mass_c2 + 1.; + if(p[3] > 0.5) p[3] = 0.5; + + G4double g = energy/electron_mass_c2 + 1.; p.push_back((2.0*g - 1.0)/(g*g)); - + + p[iMax-1] = Function(p[3], p); + G4double val = IntSpectrum(x1, x2, p); - G4double x0 = (lowestE + bindingEnergy)/(e + bindingEnergy); + G4double x0 = (lowestE + bindingEnergy)/energy; G4double nor = IntSpectrum(x0, 0.5, p); if(verbose > 1) { @@ -131,7 +143,7 @@ G4double G4eIonisationSpectrum::Probability(G4int Z, if(nor > 0.0) val /= nor; else val = 0.0; - if(val < 0.0) val = 0.0; + // if(val < 0.0) val = 0.0; return val; } @@ -156,8 +168,12 @@ G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, G4double bindingEnergy = (G4AtomicTransitionManager::Instance())-> Shell(Z, shell)->BindingEnergy(); - G4double x1 = G4std::min(0.5,(t0 + bindingEnergy)/(e + bindingEnergy)); - G4double x2 = G4std::min(0.5,(tm + bindingEnergy)/(e + bindingEnergy)); + if(e <= bindingEnergy) return 0.0; + + G4double energy = e + bindingEnergy; + + G4double x1 = G4std::min(0.5,(t0 + bindingEnergy)/energy); + G4double x2 = G4std::min(0.5,(tm + bindingEnergy)/energy); if(verbose > 1) { G4cout << "G4eIonisationSpectrum::AverageEnergy: Z= " << Z @@ -169,22 +185,27 @@ G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, << G4endl; } - G4int iMax = 7; G4DataVector p; // Access parameters for (G4int i=0; iParameter(Z, shell, i, e)); + G4double x = theParam->Parameter(Z, shell, i, e); + if(i<4) x /= energy; + p.push_back(x); } - G4double g = (e + bindingEnergy)/electron_mass_c2 + 1.; + if(p[3] > 0.5) p[3] = 0.5; + + G4double g = energy/electron_mass_c2 + 1.; p.push_back((2.0*g - 1.0)/(g*g)); + + p[iMax-1] = Function(p[3], p); G4double val = AverageValue(x1, x2, p); - G4double x0 = (lowestE + bindingEnergy)/(e + bindingEnergy); + G4double x0 = (lowestE + bindingEnergy)/energy; G4double nor = IntSpectrum(x0, 0.5, p); - val *= (e + bindingEnergy); + val *= energy; if(verbose > 1) { G4cout << "tcut(MeV)= " << tMin/MeV @@ -205,7 +226,7 @@ G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, if(nor > 0.0) val /= nor; else val = 0.0; - if(val < 0.0) val = 0.0; + // if(val < 0.0) val = 0.0; return val; } @@ -227,8 +248,12 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, G4double bindingEnergy = (G4AtomicTransitionManager::Instance())-> Shell(Z, shell)->BindingEnergy(); - G4double x1 = G4std::min(0.5,(t0 + bindingEnergy)/(e + bindingEnergy)); - G4double x2 = G4std::min(0.5,(tm + bindingEnergy)/(e + bindingEnergy)); + if(e <= bindingEnergy) return 0.0; + + G4double energy = e + bindingEnergy; + + G4double x1 = G4std::min(0.5,(t0 + bindingEnergy)/energy); + G4double x2 = G4std::min(0.5,(tm + bindingEnergy)/energy); if(x1 >= x2) return tDelta; if(verbose > 1) { @@ -239,68 +264,112 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, } // Access parameters - G4int iMax = 7; G4DataVector p; // Access parameters for (G4int i=0; iParameter(Z, shell, i, e)); + G4double x = theParam->Parameter(Z, shell, i, e); + if(i<4) x /= energy; + p.push_back(x); } - G4double g = (e + bindingEnergy)/electron_mass_c2 + 1.; + if(p[3] > 0.5) p[3] = 0.5; + + G4double g = energy/electron_mass_c2 + 1.; p.push_back((2.0*g - 1.0)/(g*g)); + p[iMax-1] = Function(p[3], p); G4double aria1 = 0.0; - G4double a1 = G4std::min(x1,p[6]); - G4double a2 = G4std::min(x2,p[6]); + G4double a1 = G4std::max(x1,p[1]); + G4double a2 = G4std::min(x2,p[3]); if(a1 < a2) aria1 = IntSpectrum(a1, a2, p); G4double aria2 = 0.0; - G4double a3 = G4std::max(x1,p[6]); - G4double a4 = G4std::max(x2,p[6]); + G4double a3 = G4std::max(x1,p[3]); + G4double a4 = x2; if(a3 < a4) aria2 = IntSpectrum(a3, a4, p); G4double aria = (aria1 + aria2)*G4UniformRand(); - G4double amaj, fun, q, x; + G4double amaj, fun, q, x, z1, z2, dx, dx1; //======= First aria to sample ===== if(aria <= aria1) { amaj = p[4]; + for (size_t j=5; j<24; j++) { + if(p[j] > amaj) amaj = p[j]; + } + a1 = 1./a1; a2 = 1./a2; + size_t i; + do { + + x = 1./(a2 + G4UniformRand()*(a1 - a2)); + z1 = p[1]; + 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++) { + + if (i <= 8) { + z2 = z1 + dx; + } else if(22 == i) { + z2 = p[3]; + break; + } else { + z2 = z1*dx1; + } + if(x <= z2) break; + z1 = z2; + } + fun = p[i] + (x - z1) * (p[i+1] - p[i])/(z2 - z1); + + if(fun > amaj) { + G4cout << "WARNING in G4eIonisationSpectrum::SampleEnergy:" + << " Majoranta " << amaj + << " < " << fun + << " in the first aria at x= " << x + << G4endl; + } + + q = amaj*G4UniformRand(); + + } while (q >= fun); + //======= Second aria to sample ===== } else { - amaj = p[5]; + amaj = G4std::max(p[iMax-1], Function(0.5, p)) * factor; a1 = 1./a3; a2 = 1./a4; - } - amaj *= 1.25; - do { + do { - x = 1./(a2 + G4UniformRand()*(a1 - a2)); - fun = Function(x, p); + x = 1./(a2 + G4UniformRand()*(a1 - a2)); + fun = Function(x, p); - if(fun > amaj) { + if(fun > amaj) { G4cout << "WARNING in G4eIonisationSpectrum::SampleEnergy:" << " Majoranta " << amaj << " < " << fun + << " in the second aria at x= " << x << G4endl; - } + } - q = amaj*G4UniformRand(); + q = amaj*G4UniformRand(); - } while (q >= fun); + } while (q >= fun); + + } p.clear(); - tDelta = x*(e + bindingEnergy) - bindingEnergy; + tDelta = x*energy - bindingEnergy; if(verbose > 1) { G4cout << "tcut(MeV)= " << tMin/MeV @@ -326,15 +395,75 @@ G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, const G4DataVector& p) const { // Please comment what IntSpectrum does - G4double x1 = 1./xMin; - G4double x2 = 1./xMax; - G4double x = x1 - x2 - p[7]*log(xMax/xMin) + (1. - p[7])*(xMax - xMin) - + 1./(1. - xMax) - 1./(1. - xMin) - + p[7]*log((1. - xMax)/(1. - xMin)) - + 0.5*p[1]*p[3]*(x1*x1 - x2*x2); + G4double sum = 0.0; + if(xMin >= xMax) return sum; - if(x < 0.0) x = 0.0; - return x; + G4double x1, x2, xs1, xs2, y1, y2, ys1, ys2; + + // Integral over interpolation aria + if(xMin < p[3]) { + + x1 = p[1]; + y1 = p[4]; + + G4double dx = (p[2] - p[1]) / 3.0; + G4double dx1= exp(log(p[3]/p[2]) / 16.0); + + for (size_t i=0; i<19; i++) { + + if (i <= 3) { + x2 = x1 + dx; + } else { + x2 = x1*dx1; + } + + y2 = p[5 + i]; + + if (xMin >= x2 || xMax <= x1) { + continue; + } else { + + 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) + + log(xs2/xs1)*(ys2 - ys1)/(xs2 - xs1); + } + } + x1 = x2; + y1 = y2; + + } + } + + // Integral over aria with parametrised formula + + x1 = G4std::max(xMin, p[3]); + if(x1 >= xMax) return sum; + x2 = xMax; + + xs1 = 1./x1; + xs2 = 1./x2; + sum += (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); + + // if(sum < 0.0) sum = 0.0; + return sum; } @@ -342,40 +471,78 @@ G4double G4eIonisationSpectrum::AverageValue(G4double xMin, G4double xMax, const G4DataVector& p) const { + G4double sum = 0.0; + if(xMin >= xMax) return sum; - // G4double x1 = 1.; - // G4double x2 = 1.; - G4double x = log(xMax/xMin) - + 0.5*(1. - p[7])*(xMax*xMax - xMin*xMin) - + 1./(1. - xMax) - 1./(1. - xMin) - + (1. + p[7])*log((1. - xMax)/(1. - xMin)) - + p[1]*p[3]*(1./xMin - 1./xMax); + G4double x1, x2, xs1, xs2, y1, y2, ys1, ys2; - if(x < 0.0) x = 0.0; - return x; + // Integral over interpolation aria + if(xMin < p[3]) { + + x1 = p[1]; + y1 = p[4]; + + G4double dx = (p[2] - p[1]) / 3.0; + G4double dx1= exp(log(p[3]/p[2]) / 16.0); + + for (size_t i=0; i<19; i++) { + + if (i <= 3) { + x2 = x1 + dx; + } else { + x2 = x1*dx1; + } + + y2 = p[5 + i]; + + if (xMin >= x2 || xMax <= x1) { + continue; + } else { + + 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; + } + } + x1 = x2; + y1 = y2; + + } + } + + // Integral over aria with parametrised formula + + x1 = G4std::max(xMin, p[3]); + if(x1 >= xMax) return sum; + x2 = xMax; + + xs1 = 1./x1; + xs2 = 1./x2; + + sum += log(x2/x1)*(1.0 - p[0]) + + 0.5*(1. - p[iMax])*(x2*x2 - x1*x1) + + 1./(1. - x2) - 1./(1. - x1) + + (1. + p[iMax])*log((1. - x2)/(1. - x1)) + + 0.5*p[0]*(xs1 - xs2); + + // if(sum < 0.0) sum = 0.0; + return sum; } -G4double G4eIonisationSpectrum::Function(G4double x, - const G4DataVector& p) const -{ - // Please comment what Function does - - - // G4double x1 = 1.0; - G4double f = 1.0 - p[7]*x + x*x*(1.0 - p[7] - + (1.0/(1.0 - x) - p[7])/(1.0 - x) ) - + p[1]*p[3]/x; - - if(f < 0.0) f = 0.0; - return f; -} - -G4double G4eIonisationSpectrum::Excitation(G4int Z, G4double e) const -{ - return theParam->Excitation(Z, e); -} - void G4eIonisationSpectrum::PrintData() const { theParam->PrintData(); diff --git a/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc index 716f7125b8..edee1775c1 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.23 2001/11/23 11:45:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eLowEnergyLoss.cc,v 1.28 2002/06/03 00:07:18 pia Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file @@ -54,6 +54,8 @@ // 24/10/01 MGP - Protection against negative energy loss in AlongStepDoIt // 26/10/01 VI Clean up access to deexcitation // 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 // // -------------------------------------------------------------- @@ -125,7 +127,8 @@ G4eLowEnergyLoss::G4eLowEnergyLoss(const G4String& processName) RecorderOfProcess(0), fdEdx(0), fRangeNow(0), - linLossLimit(0.05) + linLossLimit(0.05), + theFluo(false) { //create (only once) EnergyLoss messenger @@ -438,8 +441,7 @@ G4VParticleChange* G4eLowEnergyLoss::AlongStepDoIt( const G4Track& trackData, if (finalT <= 0. ) { finalT = 0.; - if (Charge < 0.) aParticleChange.SetStatusChange(fStopAndKill); - else aParticleChange.SetStatusChange(fStopButAlive); + aParticleChange.SetStatusChange(fStopAndKill); } G4double edep = E - finalT; @@ -447,11 +449,11 @@ G4VParticleChange* G4eLowEnergyLoss::AlongStepDoIt( const G4Track& trackData, aParticleChange.SetEnergyChange(finalT); // Deexcitation of ionised atoms - G4std::vector* deexcitationProducts = - DeexciteAtom(aMaterial,E,edep); + G4std::vector* deexcitationProducts = 0; + if (theFluo) deexcitationProducts = DeexciteAtom(aMaterial,E,edep); - - size_t nSecondaries = deexcitationProducts->size(); + size_t nSecondaries = 0; + if (deexcitationProducts != 0) nSecondaries = deexcitationProducts->size(); aParticleChange.SetNumberOfSecondaries(nSecondaries); if (nSecondaries > 0) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc index d4dde49a6c..b688e5bec6 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc @@ -69,6 +69,18 @@ // 18 Oct. 2001 V.Ivanchenko Add fluorescence // 30 Oct. 2001 V.Ivanchenko Add minGammaEnergy and minElectronEnergy // 07 Dec 2001 V.Ivanchenko Add SetFluorescence method +// 15 Feb 2002 V.Ivanchenko Fix problem of Generic Ions +// 25 Mar 2002 V.Ivanchenko Fix problem of fluorescence below threshold +// 28 Mar 2002 V.Ivanchenko Set fluorescence off by default +// 09 Apr 2002 V.Ivanchenko Fix table problem of GenericIons +// 28 May 2002 V.Ivanchenko Remove flag fStopAndKill +// 31 May 2002 V.Ivanchenko Add path of Fluo + Auger cuts to +// AtomicDeexcitation +// 03 Jun 2002 MGP Restore fStopAndKill +// 10 Jun 2002 V.Ivanchenko Restore fStopButAlive +// 12 Jun 2002 V.Ivanchenko Fix in fluctuations - if tmax<2*Ipot Gaussian +// fluctuations enables + // ----------------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -85,6 +97,7 @@ #include "G4DynamicParticle.hh" #include "G4ParticleDefinition.hh" #include "G4AtomicDeexcitation.hh" +#include "G4AtomicTransitionManager.hh" #include "G4ShellVacancy.hh" #include "G4hShellCrossSection.hh" #include "G4VEMDataSet.hh" @@ -93,6 +106,7 @@ #include "G4Gamma.hh" #include "G4LogLogInterpolation.hh" #include "G4SemiLogInterpolation.hh" +#include "G4ProcessManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -114,7 +128,7 @@ G4hLowEnergyIonisation::G4hLowEnergyIonisation(const G4String& processName) paramStepLimit (0.005), shellVacancy(0), shellCS(0), - theFluo(true) + theFluo(false) { InitializeMe(); } @@ -221,21 +235,54 @@ void G4hLowEnergyIonisation::BuildPhysicsTable( { if(verboseLevel > 0) { G4cout << "G4hLowEnergyIonisation::BuildPhysicsTable for " - << aParticleType.GetParticleName() << G4endl; + << aParticleType.GetParticleName() + << " mass(MeV)= " << aParticleType.GetPDGMass()/MeV + << " charge= " << aParticleType.GetPDGCharge()/eplus + << " type= " << aParticleType.GetParticleType() + << 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 << "ionModel= " << theIonEffChargeModel + << " MFPtable= " << theMeanFreePathTable + << " iniMass= " << initialMass + << G4endl; + } + } + + if(aParticleType.GetParticleType() == "nucleus" && + aParticleType.GetParticleName() != "GenericIon" && + theMeanFreePathTable) { + + G4EnergyLossTables::Register(&aParticleType, + theDEDXpTable, + theRangepTable, + theInverseRangepTable, + theLabTimepTable, + theProperTimepTable, + LowestKineticEnergy, HighestKineticEnergy, + proton_mass_c2/aParticleType.GetPDGMass(), + TotBin); + + return; } - InitializeParametrisation() ; G4Proton* theProton = G4Proton::Proton(); G4AntiProton* theAntiProton = G4AntiProton::AntiProton(); - charge = aParticleType.GetPDGCharge()/eplus ; + charge = aParticleType.GetPDGCharge()/eplus; chargeSquare = charge*charge ; // ---- MGP ---- workaround for the deprecated "cuts per material" const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); const G4Material* material = (*theMaterialTable)[0]; - G4double electronCutInRange = G4Electron::Electron()->GetEnergyThreshold(material); + G4double electronCutInRange = G4Electron::Electron()->GetRangeThreshold(material); // was = G4Electron::Electron()->GetCuts(); // ---- MGP ---- @@ -324,7 +371,7 @@ void G4hLowEnergyIonisation::BuildLossTable( const G4ParticleDefinition& aParticleType) { - // Inicialisation + // Initialisation G4double lowEdgeEnergy , ionloss, ionlossBB, paramB ; G4double lowEnergy, highEnergy; G4Proton* theProton = G4Proton::Proton(); @@ -376,10 +423,13 @@ void G4hLowEnergyIonisation::BuildLossTable( ionlossBB = theBetheBlochModel->TheValue(&aParticleType,material,highE) ; ionlossBB -= DeltaRaysEnergy(material,highE,proton_mass_c2) ; + /* if(theBarkas) { ionlossBB += BarkasTerm(material,highE)*charge ; ionlossBB += BlochTerm(material,highE,1.0) ; } + */ + paramB = ionloss/ionlossBB - 1.0 ; // now comes the loop for the kinetic energy values @@ -403,10 +453,12 @@ 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) ; } @@ -461,7 +513,7 @@ void G4hLowEnergyIonisation::BuildDataForFluorescence( G4PhysicsLogVector* bVector = new G4PhysicsLogVector(LowestKineticEnergy, HighestKineticEnergy, binForFluo); - G4AtomicTransitionManager* transitionManager = + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); G4double bindingEnergy; @@ -489,34 +541,41 @@ void G4hLowEnergyIonisation::BuildDataForFluorescence( for (size_t iel=0; ielGetZ()); + G4int nShells = transitionManager->NumberOfShells(Z); energy = new G4DataVector(); ksi = new G4DataVector(); energy1= new G4DataVector(); ksi1 = new G4DataVector(); //if(NumberOfElements > 1) - elDensity = theAtomicNumDensityVector[iel]; + elDensity = theAtomicNumDensityVector[iel]/((G4double)nShells); for (size_t j = 0; jGetLowEdgeEnergy(j); G4double gamma = tkin/mass + 1.; + G4double beta2 = 1.0 - 1.0/(gamma*gamma); G4double r = electron_mass_c2/mass; - G4double tmax = 2.*mass*r*(gamma*gamma - 1.)/(1. + 2.*gamma*r + r*r); + G4double tmax = 2.*electron_mass_c2*(gamma*gamma - 1.)/(1. + 2.*gamma*r + r*r); G4double cross = 0.; G4double cross1 = 0.; G4double eAverage= 0.; - G4int nShells = transitionManager->NumberOfShells(Z); G4double tmin = G4std::min(tCut,tmax); + G4double rel; for (G4int n=0; nShell(Z, n)->BindingEnergy(); - eAverage += elDensity*log(tmin/bindingEnergy + 1.); - cross += elDensity*tmin/((bindingEnergy + tmin)*bindingEnergy); - cross1 += elDensity*(tmax - tmin)/ - ((tmax + bindingEnergy)*(tmin + bindingEnergy)); + if (tmin > bindingEnergy) { + rel = log(tmin/bindingEnergy); + eAverage += rel - beta2*(tmin - bindingEnergy)/tmax; + cross += 1.0/bindingEnergy - 1.0/tmin - beta2*rel/tmax; + } + if (tmax > tmin) { + cross1 += 1.0/tmin - 1.0/tmax - beta2*log(tmax/tmin)/tmax; + } } + cross1 *= elDensity; energy1->push_back(tkin); ksi1->push_back(cross1); @@ -566,6 +625,7 @@ void G4hLowEnergyIonisation::BuildLambdaTable( const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); charge = aParticleType.GetPDGCharge()/eplus ; chargeSquare = charge*charge ; + initialMass = aParticleType.GetPDGMass(); //create table G4int numOfMaterials = G4Material::GetNumberOfMaterials(); @@ -604,13 +664,9 @@ void G4hLowEnergyIonisation::BuildLambdaTable( for ( G4int i = 0 ; i < TotBin ; i++ ) { lowEdgeEnergy = aVector->GetLowEdgeEnergy(i) ; - chargeSquare = theIonEffChargeModel-> - TheValue(&aParticleType,material,lowEdgeEnergy) ; - G4double sigma = 0.0 ; for (G4int iel=0; ielGetKineticEnergy() ; + G4double kineticEnergy = (aParticle->GetKineticEnergy())*initialMass/(aParticle->GetMass()); + charge = aParticle->GetCharge(); + chargeSquare = theIonEffChargeModel->TheValue(aParticle, aMaterial); if(kineticEnergy < LowestKineticEnergy) meanFreePath = DBL_MAX; else { if(kineticEnergy > HighestKineticEnergy) - kineticEnergy = HighestKineticEnergy ; - meanFreePath = ((*theMeanFreePathTable)(aMaterial->GetIndex()))-> - GetValue(kineticEnergy,isOutRange) ; + kineticEnergy = HighestKineticEnergy; + meanFreePath = (((*theMeanFreePathTable)(aMaterial->GetIndex()))-> + GetValue(kineticEnergy,isOutRange))/chargeSquare; } return meanFreePath ; @@ -731,48 +789,25 @@ G4double G4hLowEnergyIonisation::GetConstraints( G4double massRatio = proton_mass_c2/(particle->GetMass()) ; G4double kineticEnergy = particle->GetKineticEnergy() ; - - - charge = (particle->GetCharge())/eplus ; // Scale the kinetic energy G4double tscaled = kineticEnergy*massRatio ; - chargeSquare = theIonEffChargeModel->TheValue(particle,material) ; if(charge > 0.0) { highEnergy = protonHighEnergy ; - //Very low energy dE/dx assumed to be according to Free Electron Gas Model - if(tscaled < MinKineticEnergy) { - fdEdx = 0.5 * ProtonParametrisedDEDX(material, MinKineticEnergy) - * sqrt(tscaled/MinKineticEnergy) ; - fRangeNow = tscaled/fdEdx ; - fdEdx *= chargeSquare ; - dx = fRangeNow/paramStepLimit ; + fRangeNow = G4EnergyLossTables::GetRange(theProton, tscaled, material); + dx = G4EnergyLossTables::GetRange(theProton, highEnergy, material); + fdEdx = G4EnergyLossTables::GetDEDX(theProton, tscaled, material) + * chargeSquare ; - // Normal energy - } else { - - fRangeNow = G4EnergyLossTables::GetRange(theProton, tscaled, material) ; - dx = G4EnergyLossTables::GetRange(theProton, highEnergy, material) ; - - if(tscaled > highEnergy) { - fdEdx = G4EnergyLossTables::GetDEDX(theProton, tscaled, material) - * chargeSquare ; + if(tscaled > highEnergy) { // Correction for positive ions - if(theBarkas && 1.0 < charge) { - G4double loss = BarkasTerm(material,tscaled)*(charge -1.0) - * chargeSquare ; - loss += BlochTerm(material,tscaled,chargeSquare) ; - loss -= BlochTerm(material,tscaled,1.0) ; - fdEdx += loss ; - } - - // Parametrisation - recalculate dE/dx - } else { - fdEdx = ProtonParametrisedDEDX(material, tscaled) * chargeSquare ; + if(theBarkas) { + fdEdx += BarkasTerm(material,tscaled)*sqrt(chargeSquare)*chargeSquare; + fdEdx += BlochTerm(material,tscaled,chargeSquare); } } @@ -780,29 +815,17 @@ G4double G4hLowEnergyIonisation::GetConstraints( } else { highEnergy = antiProtonHighEnergy ; + fRangeNow = G4EnergyLossTables::GetRange(theAntiProton, tscaled, material); + dx = G4EnergyLossTables::GetRange(theAntiProton, highEnergy, material); + fdEdx = G4EnergyLossTables::GetDEDX(theAntiProton, tscaled, material) + * chargeSquare ; - //Very low energy dE/dx assumed to be constant - if(tscaled < MinKineticEnergy) { - fdEdx = AntiProtonParametrisedDEDX(material, MinKineticEnergy) - * sqrt(tscaled/MinKineticEnergy) ; - fRangeNow = tscaled/fdEdx ; - fdEdx *= chargeSquare ; - dx = fRangeNow/paramStepLimit ; + if(tscaled > highEnergy) { - // Normal energy - } else { - - fRangeNow = G4EnergyLossTables::GetRange(theAntiProton, tscaled, - material); - dx = G4EnergyLossTables::GetRange(theAntiProton, highEnergy, material); - - if(tscaled > highEnergy) { - fdEdx = G4EnergyLossTables::GetDEDX(theAntiProton, tscaled, material) - * chargeSquare ; - - // For Bragg's peak dE/dx is recalculated - } else { - fdEdx = AntiProtonParametrisedDEDX(material, tscaled) * chargeSquare; + // Correction for positive ions + if(theBarkas) { + fdEdx -= BarkasTerm(material,tscaled)*sqrt(chargeSquare)*chargeSquare; + fdEdx += BlochTerm(material,tscaled,chargeSquare); } } } @@ -868,46 +891,6 @@ G4VParticleChange* G4hLowEnergyIonisation::AlongStepDoIt( } else if( kineticEnergy > HighestKineticEnergy) { eloss = step*fdEdx ; - // proton parametrisation model - } else if(tscaled < protonHighEnergy && charge > 0.0) { - - if(nStopping) nloss = - (theNuclearStoppingModel->TheValue(particle, material))*step ; - - G4double eFinal = kineticEnergy - step*fdEdx - nloss ; - - if(0.0 < eFinal) { - - G4double ts = eFinal*massRatio; - G4double fdEdx1 = ProtonParametrisedDEDX(material,ts)*chargeSquare; - - // Correction for positive ions - //if(theBarkas && 1.0 < charge) { - // fdEdx1 += BarkasTerm(material,ts)*(charge -1.0) * chargeSquare ; - // fdEdx1 += BlochTerm(material,ts,chargeSquare) ; - // fdEdx1 -= BlochTerm(material,ts,1.0) ; - // } - eloss = (fdEdx + fdEdx1) * step * 0.5 ; - } else { - eloss = kineticEnergy - nloss ; - } - - // antiproton parametrisation model - } else if(tscaled < antiProtonHighEnergy && charge < 0.0) { - - if(nStopping) nloss = - (theNuclearStoppingModel->TheValue(particle, material))*step ; - - G4double eFinal = kineticEnergy - step*fdEdx - nloss ; - - if(0.0 < eFinal) { - eloss = (fdEdx + - AntiProtonParametrisedDEDX(material,eFinal*massRatio)*chargeSquare) - * step * 0.5 ; - } else { - eloss = kineticEnergy - nloss ; - } - // big step } else if(step >= fRangeNow ) { eloss = kineticEnergy ; @@ -939,13 +922,23 @@ G4VParticleChange* G4hLowEnergyIonisation::AlongStepDoIt( } else { eloss = step*fdEdx ; } + // Correction for positive ions + if(theBarkas && 1.0 < charge) { + G4double ts = tscaled - eloss*0.5*massRatio; + if(ts < protonHighEnergy) ts = protonHighEnergy; + eloss += BarkasTerm(material,ts)*charge*chargeSquare*step; + eloss += BlochTerm(material,ts,chargeSquare)*step; + } + if(nStopping && tscaled < protonHighEnergy) { + nloss = (theNuclearStoppingModel->TheValue(particle, material))*step; + } } if(eloss < 0.0) eloss = 0.0; finalT = kineticEnergy - eloss - nloss; - if( EnlossFlucFlag && 0.0 < eloss ) { + if( EnlossFlucFlag && 0.0 < eloss && finalT > MinKineticEnergy) { // now the electron loss with fluctuation eloss = ElectronicLossFluctuation(particle, material, eloss, step) ; @@ -957,10 +950,11 @@ G4VParticleChange* G4hLowEnergyIonisation::AlongStepDoIt( if (finalT <= MinKineticEnergy ) { finalT = 0.0; - if( "proton" == (particle->GetDefinition()->GetParticleName()) ) - aParticleChange.SetStatusChange(fStopAndKill); - else - aParticleChange.SetStatusChange(fStopButAlive); + if(!particle->GetDefinition()->GetProcessManager()-> + GetAtRestProcessVector()->size()) + aParticleChange.SetStatusChange(fStopAndKill); + else + aParticleChange.SetStatusChange(fStopButAlive); } aParticleChange.SetEnergyChange( finalT ); @@ -1171,7 +1165,7 @@ G4VParticleChange* G4hLowEnergyIonisation::PostStepDoIt( G4double gamma= KineticEnergy/ParticleMass + 1.; G4double r = electron_mass_c2/ParticleMass; - G4double tmax = 2.*ParticleMass*r*(gamma*gamma - 1.)/(1. + 2.*gamma*r + r*r); + G4double tmax = 2.*electron_mass_c2*(gamma*gamma - 1.)/(1. + 2.*gamma*r + r*r); // Validity range for delta electron cross section G4double DeltaCut = cutForDelta[aMaterial->GetIndex()]; @@ -1248,49 +1242,52 @@ G4VParticleChange* G4hLowEnergyIonisation::PostStepDoIt( // Select atom and shell G4int Z = SelectRandomAtom(aMaterial, KineticEnergy); - G4int shell = shellCS->SelectRandomShell(Z, KineticEnergy, - ParticleMass,DeltaKineticEnergy); - const G4AtomicShell* atomicShell = + + if(theFluo && Z > 5) { + G4int shell = shellCS->SelectRandomShell(Z, KineticEnergy, + ParticleMass,DeltaKineticEnergy); + const G4AtomicShell* atomicShell = (G4AtomicTransitionManager::Instance())->Shell(Z, shell); - G4double bindingEnergy = atomicShell->BindingEnergy(); + G4double bindingEnergy = atomicShell->BindingEnergy(); - if(verboseLevel > 1) { - G4cout << "PostStep Z= " << Z << " shell= " << shell - << " bindingE(keV)= " << bindingEnergy/keV - << " finalE(keV)= " << finalKineticEnergy/keV - << G4endl; - } + if(verboseLevel > 1) { + G4cout << "PostStep Z= " << Z << " shell= " << shell + << " bindingE(keV)= " << bindingEnergy/keV + << " finalE(keV)= " << finalKineticEnergy/keV + << G4endl; + } - // Fluorescence data start from element 6 + // Fluorescence data start from element 6 - if (theFluo && Z > 5 && finalKineticEnergy >= bindingEnergy - && (bindingEnergy >= minGammaEnergy - || bindingEnergy >= minElectronEnergy) ) { + if (finalKineticEnergy >= bindingEnergy + && (bindingEnergy >= minGammaEnergy + || bindingEnergy >= minElectronEnergy) ) { - G4int shellId = atomicShell->ShellId(); - secondaryVector = deexcitationManager.GenerateParticles(Z, shellId); + G4int shellId = atomicShell->ShellId(); + secondaryVector = deexcitationManager.GenerateParticles(Z, shellId); - if (secondaryVector != 0) { + if (secondaryVector != 0) { - nSecondaries = secondaryVector->size(); - for (size_t i = 0; isize(); + for (size_t i = 0; iGetKineticEnergy(); - type = aSecondary->GetDefinition(); - if (e < finalKineticEnergy && - ((type == G4Gamma::Gamma() && e > minGammaEnergy ) || - (type == G4Electron::Electron() && e > minElectronEnergy ))) { + G4double e = aSecondary->GetKineticEnergy(); + type = aSecondary->GetDefinition(); + if (e < finalKineticEnergy && + ((type == G4Gamma::Gamma() && e > minGammaEnergy ) || + (type == G4Electron::Electron() && e > minElectronEnergy ))) { - finalKineticEnergy -= e; - totalNumber++; + finalKineticEnergy -= e; + totalNumber++; - } else { + } else { - delete aSecondary; - (*secondaryVector)[i] = 0; + delete aSecondary; + (*secondaryVector)[i] = 0; + } } } } @@ -1323,9 +1320,11 @@ G4VParticleChange* G4hLowEnergyIonisation::PostStepDoIt( finalKineticEnergy = 0.; aParticleChange.SetMomentumChange(ParticleDirection.x(), ParticleDirection.y(),ParticleDirection.z()); - if (aParticle->GetDefinition()->GetParticleName() == "proton") - aParticleChange.SetStatusChange(fStopAndKill); - else aParticleChange.SetStatusChange(fStopButAlive); + if(!aParticle->GetDefinition()->GetProcessManager()-> + GetAtRestProcessVector()->size()) + aParticleChange.SetStatusChange(fStopAndKill); + else + aParticleChange.SetStatusChange(fStopButAlive); } aParticleChange.SetEnergyChange( finalKineticEnergy ); @@ -1340,7 +1339,9 @@ G4VParticleChange* G4hLowEnergyIonisation::PostStepDoIt( for (size_t l = 0; l < nSecondaries; l++) { aSecondary = (*secondaryVector)[l]; - if(aSecondary) aParticleChange.AddSecondary(aSecondary); + if(aSecondary) { + aParticleChange.AddSecondary(aSecondary); + } } delete secondaryVector; } @@ -1352,9 +1353,9 @@ G4VParticleChange* G4hLowEnergyIonisation::PostStepDoIt( G4std::vector* G4hLowEnergyIonisation::DeexciteAtom(const G4Material* material, - G4double incidentEnergy, - G4double hMass, - G4double eLoss) + G4double incidentEnergy, + G4double hMass, + G4double eLoss) { if (verboseLevel > 1) { @@ -1366,11 +1367,14 @@ G4hLowEnergyIonisation::DeexciteAtom(const G4Material* material, if(eLoss < minGammaEnergy && eLoss < minElectronEnergy) return 0; - G4int index = material->GetIndex(); - G4double eexc = material->GetIonisation()->GetMeanExcitationEnergy(); - G4double x = cutForDelta[index]/eexc; - G4double deltaEnergy = eexc*(x + 1)*log(x + 1)/x; - G4AtomicTransitionManager* transitionManager = + G4int index = material->GetIndex(); + // G4double eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + G4double gamma = incidentEnergy/hMass + 1; + G4double beta2 = 1.0 - 1.0/(gamma*gamma); + G4double r = electron_mass_c2/hMass; + G4double tmax = 2.*electron_mass_c2*(gamma*gamma - 1.)/(1. + 2.*gamma*r + r*r); + G4double tcut = G4std::min(tmax,cutForDelta[index]); + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); size_t nElements = material->GetNumberOfElements(); @@ -1382,7 +1386,7 @@ G4hLowEnergyIonisation::DeexciteAtom(const G4Material* material, G4int Z = (G4int)((*theElementVector)[j]->GetZ()); G4double maxE = transitionManager->Shell(Z, 0)->BindingEnergy(); - if (Z>5 && (maxE>minGammaEnergy || maxE>minElectronEnergy) ) { + if (Z > 5 && maxE < tcut && (maxE > minGammaEnergy || maxE > minElectronEnergy) ) { stop = false; break; } @@ -1397,7 +1401,7 @@ G4hLowEnergyIonisation::DeexciteAtom(const G4Material* material, G4std::vector* secVector = 0; G4DynamicParticle* aSecondary = 0; G4ParticleDefinition* type = 0; - G4double e; + G4double e, tkin, grej; G4ThreeVector position; G4int shell, shellId; @@ -1413,10 +1417,18 @@ G4hLowEnergyIonisation::DeexciteAtom(const G4Material* material, G4int Z = (G4int)((*theElementVector)[i]->GetZ()); G4double maxE = transitionManager->Shell(Z, 0)->BindingEnergy(); - if (nVacancies && Z>5 && (maxE>minGammaEnergy || maxE>minElectronEnergy)) { + if (nVacancies && Z > 5 && maxE < tcut && (maxE > minGammaEnergy || maxE > minElectronEnergy)) { for(size_t j=0; jSelectRandomShell(Z,incidentEnergy,hMass,deltaEnergy); + // sampling follows + do { + tkin = tcut/(1.0 + (tcut/maxE - 1.0)*G4UniformRand()); + grej = 1.0 - beta2 * tkin/tmax; + + } while( G4UniformRand() > grej ); + + shell = shellCS->SelectRandomShell(Z,incidentEnergy,hMass,tkin); + shellId = transitionManager->Shell(Z, shell)->ShellId(); G4double maxE = transitionManager->Shell(Z, shell)->BindingEnergy(); @@ -1464,7 +1476,7 @@ G4hLowEnergyIonisation::DeexciteAtom(const G4Material* material, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4int G4hLowEnergyIonisation::SelectRandomAtom(const G4Material* material, - G4double kineticEnergy) const + G4double kineticEnergy) const { G4int nElements = material->GetNumberOfElements(); G4int Z = 0; @@ -1488,6 +1500,8 @@ G4int G4hLowEnergyIonisation::SelectRandomAtom(const G4Material* material, norm += cross; } + if(norm == 0.0) return 0; + G4double q = norm*G4UniformRand(); for (G4int i=0; i threshold) tmax = threshold; G4double beta2 = tau2/(tau1*tau1); // Gaussian fluctuation - if(meanLoss > kappa*tmax) + if(meanLoss > kappa*tmax || tmax < kappa*ipotFluct ) { siga = tmax * (1.0-0.5*beta2) * step * twopi_mc2_rcl2 * electronDensity / beta2 ; @@ -1749,14 +1762,14 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( G4double yang = theIonYangFluctuationModel->TheValue(particle, material); siga = sqrt( siga * (chargeSquare * chu + yang)) ; } - - loss = G4RandGauss::shoot(meanLoss,siga) ; - if(loss < 0.) loss = 0. ; - return loss ; + + do { + loss = G4RandGauss::shoot(meanLoss,siga); + } while (loss < 0. || loss > 2.0*meanLoss); + return loss; } // Non Gaussian fluctuation - G4double mLoss = meanLoss/chargeSquare; static const G4double probLim = 0.01 ; static const G4double sumaLim = -log(probLim) ; static const G4double alim = 10.; @@ -1780,22 +1793,19 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( w1 = tmax/ipotFluct; w2 = log(2.*electron_mass_c2*tau2); - C = mLoss*(1.-rateFluct)/(w2-ipotLogFluct-beta2); + C = meanLoss*(1.-rateFluct)/(w2-ipotLogFluct-beta2); a1 = C*f1Fluct*(w2-e1LogFluct-beta2)/e1Fluct; a2 = C*f2Fluct*(w2-e2LogFluct-beta2)/e2Fluct; - if(tmax > ipotFluct) - a3 = rateFluct*mLoss*(tmax-ipotFluct)/(ipotFluct*tmax*log(w1)); - else - { - a1 /= 1.-rateFluct ; - a2 /= 1.-rateFluct ; - a3 = 0. ; - } + a3 = rateFluct*meanLoss*(tmax-ipotFluct)/(ipotFluct*tmax*log(w1)); + if(a1 < 0.0) a1 = 0.0; + if(a2 < 0.0) a2 = 0.0; + if(a3 < 0.0) a3 = 0.0; suma = a1+a2+a3; - loss = 0. ; + loss = 0.; + if(suma < sumaLim) // very small Step { @@ -1803,12 +1813,12 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( if(tmax == ipotFluct) { - a3 = mLoss/e0; + a3 = meanLoss/e0; if(a3>alim) { siga=sqrt(a3) ; - p3 = G4std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); + p3 = G4std::max(0,G4int(G4RandGauss::shoot(a3,siga)+0.5)); } else p3 = G4Poisson(a3); @@ -1822,7 +1832,7 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( else { tmax = tmax-ipotFluct+e0 ; - a3 = mLoss*(tmax-e0)/(tmax*e0*log(tmax/e0)); + a3 = meanLoss*(tmax-e0)/(tmax*e0*log(tmax/e0)); if(a3>alim) { @@ -1856,7 +1866,7 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( if(a1>alim) { siga=sqrt(a1) ; - p1 = G4std::max(0,int(G4RandGauss::shoot(a1,siga)+0.5)); + p1 = G4std::max(0,G4int(G4RandGauss::shoot(a1,siga)+0.5)); } else p1 = G4Poisson(a1); @@ -1865,7 +1875,7 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( if(a2>alim) { siga=sqrt(a2) ; - p2 = G4std::max(0,int(G4RandGauss::shoot(a2,siga)+0.5)); + p2 = G4std::max(0,G4int(G4RandGauss::shoot(a2,siga)+0.5)); } else p2 = G4Poisson(a2); @@ -1884,7 +1894,7 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( if(a3>alim) { siga=sqrt(a3) ; - p3 = G4std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); + p3 = G4std::max(0,G4int(G4RandGauss::shoot(a3,siga)+0.5)); } else p3 = G4Poisson(a3); @@ -1923,7 +1933,6 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( loss += lossc; } } - loss *= chargeSquare; return loss ; } @@ -1933,6 +1942,8 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( void G4hLowEnergyIonisation::SetCutForSecondaryPhotons(G4double cut) { minGammaEnergy = cut; + deexcitationManager.SetCutForSecondaryPhotons(cut); + theFluo = true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -1940,6 +1951,15 @@ void G4hLowEnergyIonisation::SetCutForSecondaryPhotons(G4double cut) void G4hLowEnergyIonisation::SetCutForAugerElectrons(G4double cut) { minElectronEnergy = cut; + deexcitationManager.SetCutForAugerElectrons(cut); + theFluo = true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4hLowEnergyIonisation::ActivateAugerElectronProduction(G4bool val) +{ + deexcitationManager.ActivateAugerElectronProduction(val); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc index a0672d120c..6dc696e97d 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.14 2001/11/23 11:45:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4hLowEnergyLoss.cc,v 1.15 2002/02/27 14:38:53 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file @@ -370,7 +370,8 @@ void G4hLowEnergyLoss::BuildDEDXTable( (Charge>0)? theProperTimepTable: theProperTimepbarTable, LowestKineticEnergy, HighestKineticEnergy, - proton_mass_c2/aParticleType.GetPDGMass(),TotBin); + proton_mass_c2/aParticleType.GetPDGMass(), + TotBin); } @@ -380,7 +381,7 @@ void G4hLowEnergyLoss::BuildRangeTable( const G4ParticleDefinition& aParticleType) // Build range table from the energy loss table { - Mass = proton_mass_c2; + Mass = aParticleType.GetPDGMass(); G4int numOfMaterials = G4Material::GetNumberOfMaterials(); diff --git a/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc b/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc index 5d212ba325..4b03746f3b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc @@ -61,10 +61,9 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4hNuclearStoppingModel::G4hNuclearStoppingModel(const G4String& name): - G4VLowEnergyModel(name) +G4hNuclearStoppingModel::G4hNuclearStoppingModel(const G4String& name) + :G4VLowEnergyModel(name), modelName(name) { - modelName = name ; InitializeMe() ; } @@ -102,6 +101,7 @@ void G4hNuclearStoppingModel::InitializeMe() } // Default is nuclear stopping fluctuations On + // nStopingPowerTable->SetNuclearStoppingFluctuationsOn(); nStopingPowerTable->SetNuclearStoppingFluctuationsOff(); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc index 8b49f642c9..6cecf70b51 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc @@ -64,10 +64,9 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4hParametrisedLossModel::G4hParametrisedLossModel(const G4String& name): - G4VLowEnergyModel(name) +G4hParametrisedLossModel::G4hParametrisedLossModel(const G4String& name) + :G4VLowEnergyModel(name), modelName(name) { - modelName = name ; InitializeMe(); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc index 8d9452caa3..96322b37a7 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc @@ -64,7 +64,7 @@ G4std::vector G4hShellCrossSection::Probabilities( // V.Ivanchenko add only implementation of the formula (53) // last factor neglected because it is 1 with a good accuracy - G4AtomicTransitionManager* transitionManager = + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); size_t nShells = transitionManager->NumberOfShells(Z); diff --git a/source/processes/electromagnetic/muons/History b/source/processes/electromagnetic/muons/History index 8eae799ede..6a002aa77c 100644 --- a/source/processes/electromagnetic/muons/History +++ b/source/processes/electromagnetic/muons/History @@ -1,4 +1,4 @@ -$Id: History,v 1.26 2001/11/12 11:08:20 maire Exp $ +$Id: History,v 1.30 2002/05/29 16:30:32 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,15 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +29 may 02: mma (muons-V04-00-02) +- V.Ivanchenko G4VMuEnergyLoss - bug fixed in N of subcutoff delta + +27 feb 02: mma (muons-V04-00-01) +- V.Ivanchenko G4VMuEnergyLoss - PostStep->PreStep for touchebleHandler + +10 fev 02: mma (muons-V04-00-00) +- G4VMuEnergyLoss : error in SetMindeltaCutInRange, was set in energy ! + 12 nov 01: mma (muons-V03-02-10) - ParticleMass and Charge: local variables - merge 09 + 06a diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh index 9994bf3e37..8fb3680f3f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------- 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 b07c9ade59..06365b215b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------- G4MuBremsstrahlung physics process ------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh index c6c88304f3..6d1dea8490 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // --------------- 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 6deb21567a..1234efe297 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT 4 class inlined methods file diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh index 5a66009f11..b42cb6fcc8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------- 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 fab5a6f211..151b0ba2b8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------- G4MuPairProduction physics process ------------------ // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh index b558eaf74d..150cdeb573 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------------- // GEANT 4 class header file // diff --git a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc index fe58d16d61..144d61aa80 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // --------------------------------------------------------------- // GEANT 4 class inlined methods file // diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc index b87651f99d..6c81394b72 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------- G4MuBremsstrahlung physics process --------------------------- diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc index 8eace67194..8ff2025bca 100644 --- a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc +++ b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuIonisation.cc,v 1.24 2001/11/09 13:52:32 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // --------------- G4MuIonisation physics process ------------------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc index 3270c7710b..dc08768fea 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------- G4MuPairProduction physics process --------------------------- // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc b/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc index 4e510a0d05..c382b73546 100644 --- a/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc +++ b/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VMuEnergyLoss.cc,v 1.19 2001/11/08 15:31:06 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VMuEnergyLoss.cc,v 1.22 2002/05/29 12:26:29 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // -------------------------------------------------------------- // GEANT 4 class implementation file // @@ -46,6 +46,9 @@ // 28-09-01 suppression of theMuonPlus ..etc..data members (mma) // 29-10-01 all static functions no more inlined (mma) // 08-11-01 some small cosmetics , L.Urban +// 06-02-02 bug fixed at subcutoff definition, L.Urban +// 26-02-02 bug fixed in TouchebleHandle definition, V.Ivanchenko +// 29-05-02 bug fixed in N of subcutoff delta, V.Ivanchenko // -------------------------------------------------------------- @@ -344,15 +347,6 @@ void G4VMuEnergyLoss::BuildDEDXTable( LowerBoundEloss, UpperBoundEloss, 1.,NbinEloss); - // create array for the min. delta cuts in kinetic energy - if(!setMinDeltaCutInRange) { - MinDeltaCutInRange = (G4Electron::Electron()->GetLengthCuts())[0]; - for (size_t idxMate=1; idxMate (G4Electron::Electron()->GetLengthCuts())[idxMate]) - MinDeltaCutInRange = (G4Electron::Electron()->GetLengthCuts())[idxMate]; - } - MinDeltaCutInRange *= 0.01; - } // if((subSecFlag) && (aParticleType.GetParticleName()=="mu+")) // { // G4cout << G4endl; @@ -373,6 +367,10 @@ void G4VMuEnergyLoss::BuildDEDXTable( { LowerLimitForced[mat] = false ; + // create array for the min. delta cuts in kinetic energy + if(!setMinDeltaCutInRange) + MinDeltaCutInRange = (G4Electron::Electron()->GetLengthCuts())[mat]/10.; + MinDeltaEnergy[mat] = G4EnergyLossTables::GetPreciseEnergyFromRange( G4Electron::Electron(),MinDeltaCutInRange, (*theMaterialTable)[mat]) ; @@ -628,7 +626,7 @@ G4VParticleChange* G4VMuEnergyLoss::AlongStepDoIt( G4double deldedx=cN*aMaterial->GetDensity()* ((E+mass)*(E+mass)*log(Tc/T0)/(E*(E+mass))) ; G4double delToverTc=1.-T0/Tc ; - G4double N = G4int(deldedx*fragment*delToverTc/(T0*log(Tc/T0))+0.5) ; + G4int N = G4int(deldedx*fragment*delToverTc/(T0*log(Tc/T0))+0.5) ; if(N > Ndeltamax) N = Ndeltamax ; G4double Px,Py,Pz ; @@ -715,7 +713,7 @@ G4VParticleChange* G4VMuEnergyLoss::AlongStepDoIt( G4Track* deltaTrack = new G4Track(theDelta,DeltaTime,DeltaPosition); deltaTrack-> - SetTouchableHandle(stepData.GetPostStepPoint()->GetTouchableHandle()) ; + SetTouchableHandle(stepData.GetPreStepPoint()->GetTouchableHandle()) ; deltaTrack->SetParentID(trackData.GetTrackID()) ; aParticleChange.AddSecondary(deltaTrack) ; diff --git a/source/processes/electromagnetic/standard/History b/source/processes/electromagnetic/standard/History index f81fa5630f..5162d8a6cf 100644 --- a/source/processes/electromagnetic/standard/History +++ b/source/processes/electromagnetic/standard/History @@ -1,4 +1,4 @@ -$Id: History,v 1.43 2001/11/12 11:20:50 maire Exp $ +$Id: History,v 1.60 2002/06/10 16:10:32 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,66 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +10 june 02: mma (stand-V04-00-13) +- bug fixed for stopping hadrons, V.Ivanchenko + +04 june 02: mma (stand-V04-00-12) +- suppress the G4PAIonisation stuff which crash in TestEm8 + (back to stand-V04-00-10) + +24 may 02: mma (stand-V04-00-11) +- G4PAIonosation: production of delta-electrons > cut +- a bug fixed in G4PAIxSection.cc for GenericIon +- G4PAIxSection : new class members for transverse/longitudinal transfer + +06 may 02: mma (stand-V04-00-10) +- compilation error in G4GammaConversionToMuons + +29 apr 02: mma (stand-V04-00-09) +- G4PhotoElectric: Generate theta angle of the photoelectron from Sauter-Gravila + distribution + +18 apr 02: mma (stand-V04-00-08) +- new process: G4GammaConversionToMuons + +18 apr 02: mma (stand-V04-00-07) +- G4ComptonScattering: LowestEnergyLimit=1*keV +- G4PhotoElectric: Keep only Sandia crossSections. Remove BuildPhysicsTables. + Simplify public interface. + +27 mar 02: V.Ivanchenko (stand-V04-00-06) +- G4hIonisation: Bug fix in scaling of lambda tabledelta-electrons > cut + +26 mar 02: mma (stand-V04-00-05) +- G4eIonisation: change access to cuts in BuildLossTables (V.Ivanchenko) + +22 mar 02: V. Grichine (stand-V04-00-04) +- modifications in G4PAIxSection allowing to get additional information on + transverse and longitudinal excitations at atomic frequences. + +21 mar 02: mma (stand-V04-00-03) +- G4GammaConversion::DoIt() correction of e+e- angular distribution (bug 363) + +27 fev 02: mma (stand-V04-00-02) +- V.Ivanchenko remove the fix for GenericIons in G4VhEnergyLoss, G4hIonisation; + +27 fev 02: mma (stand-V04-00-01) +- V.Ivanchenko fix G4VhEnergyLoss, G4hIonisation for GenericIons; +- G4VeEnergyLoss and G4VhEnergyLoss : error in TouchebleHandle - take from + PreStepPoint + +10 fev 02: mma (stand-V04-00-00) +- G4VeEnergyLoss and G4VhEnergyLoss : error in SetMindeltaCutInRange, + was set in Energy ! + +11 jan 02: mma +- gammaConversion::ComputeCrossSection(): correction of extrapolation below + EnergyLimit + +>>>>>>> 1.49 +10 jan 02: mma +- photoEffect: rearrangement in the inlined functions 12 nov 01: mma (stand-V03-02-14) - ParticleMass and Charge : local variables diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh index e86b4e30c1..56c88844d8 100644 --- a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ComptonScattering.hh,v 1.8 2001/10/01 15:00:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ComptonScattering.hh,v 1.9 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //------------------ 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 dd17dd2582..32da5194f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //------------------ 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 747314bc7d..f7b8fe64e1 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversion.hh +++ b/source/processes/electromagnetic/standard/include/G4GammaConversion.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GammaConversion.hh,v 1.9 2001/10/01 15:00:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GammaConversion.hh,v 1.10 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //------------------ 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 5d61f4b8b2..ec5b3c5766 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------ G4GammaConversion physics process ------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh new file mode 100644 index 0000000000..ddcd058ba2 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.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: G4GammaConversionToMuons.hh,v 1.2 2002/05/06 09:32:41 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ------------ G4GammaConversionToMuons physics process ------ +// by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 +// ----------------------------------------------------------------------------- + +// class description +// +// gamma ---> mu+ mu- +// inherit from G4VDiscreteProcess +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4GammaConversionToMuons_h +#define G4GammaConversionToMuons_h 1 + +#include "G4ios.hh" +#include "globals.hh" +#include "Randomize.hh" +#include "G4VDiscreteProcess.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsLogVector.hh" +#include "G4Element.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4Step.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4GammaConversionToMuons : public G4VDiscreteProcess + +{ + public: // with description + + G4GammaConversionToMuons(const G4String& processName ="GammaToMuPair"); + + ~G4GammaConversionToMuons(); + + G4bool IsApplicable(const G4ParticleDefinition&); + // true for Gamma only. + + void BuildPhysicsTable(const G4ParticleDefinition&); + // here dummy, the total cross section parametrization is used rather + // than tables, just calling PrintInfoDefinition + + void PrintInfoDefinition(); + // Print few lines of informations about the process: validity range, + // origine ..etc.. + // Invoked by BuildThePhysicsTable(). + + void SetCrossSecFactor(G4double fac); + // Set the factor to artificially increase the crossSection (default 1) + + G4double inline GetCrossSecFactor() { return CrossSecFactor;} + // Get the factor to artificially increase the cross section + + G4double GetMeanFreePath(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // It returns the MeanFreePath of the process for the current track : + // (energy, material) + // The previousStepSize and G4ForceCondition* are not used. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + G4double GetCrossSectionPerAtom(const G4DynamicParticle* aDynamicGamma, + G4Element* anElement); + // It returns the total CrossSectionPerAtom of the process, + // for the current DynamicGamma (energy), in anElement. + + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep); + // It computes the final state of the process (at end of step), + // returned as a ParticleChange object. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + protected: + + virtual G4double ComputeCrossSectionPerAtom(G4double GammaEnergy, + G4double AtomicZ,G4double AtomicA); + + virtual G4double ComputeMeanFreePath (G4double GammaEnergy, + G4Material* aMaterial); + + private: + + G4Element* SelectRandomAtom(const G4DynamicParticle* aDynamicGamma, + G4Material* aMaterial); + + private: + + // hide assignment operator as private + G4GammaConversionToMuons& operator=(const G4GammaConversionToMuons &right); + G4GammaConversionToMuons(const G4GammaConversionToMuons& ); + + private: + + G4double LowestEnergyLimit ; // low energy limit of the tables + G4double HighestEnergyLimit ; // high energy limit of the tables + + G4double fminimalEnergy; // minimalEnergy of produced particles + + G4double MeanFreePath; // actual MeanFreePath (current medium) + G4double CrossSecFactor; // factor to artificially increase + // the cross section + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4GammaConversionToMuons.icc" + +#endif + diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc new file mode 100644 index 0000000000..1b04f51386 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc @@ -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: G4GammaConversionToMuons.icc,v 1.1 2002/04/19 14:44:33 hbu Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ------------ G4GammaConversionToMuons physics process ------ +// by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 +// ----------------------------------------------------------------------------- + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4bool G4GammaConversionToMuons::IsApplicable( + const G4ParticleDefinition& particle) +{ + return ( &particle == G4Gamma::Gamma() ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4double G4GammaConversionToMuons::GetCrossSectionPerAtom( + const G4DynamicParticle* aDynamicGamma, + G4Element* anElement) + +// gives the total cross section per atom in GEANT4 internal units +{ + G4double GammaEnergy = aDynamicGamma->GetKineticEnergy(); + G4double AtomicZ = anElement->GetZ(); + G4double AtomicA = anElement->GetA()/(g/mole); + G4double crossSection = + ComputeCrossSectionPerAtom(GammaEnergy,AtomicZ,AtomicA); + return crossSection; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4double G4GammaConversionToMuons::GetMeanFreePath(const G4Track& aTrack, + G4double, G4ForceCondition*) + +// returns the photon mean free path in GEANT4 internal units +// (MeanFreePath is a private member of the class) + +{ + const G4DynamicParticle* aDynamicGamma = aTrack.GetDynamicParticle(); + G4double GammaEnergy = aDynamicGamma->GetKineticEnergy(); + G4Material* aMaterial = aTrack.GetMaterial(); + + if (GammaEnergy < LowestEnergyLimit) + MeanFreePath = DBL_MAX; + else + MeanFreePath = ComputeMeanFreePath(GammaEnergy,aMaterial); + + return MeanFreePath; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4double G4GammaConversionToMuons::ComputeMeanFreePath( + G4double GammaEnergy, G4Material* aMaterial) + +// computes and returns the photon mean free path in GEANT4 internal units +{ + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + const G4double* NbOfAtomsPerVolume = aMaterial->GetVecNbOfAtomsPerVolume(); + + G4double SIGMA = 0 ; + + for ( size_t i=0 ; i < aMaterial->GetNumberOfElements() ; i++ ) + { + G4double AtomicZ = (*theElementVector)[i]->GetZ(); + G4double AtomicA = (*theElementVector)[i]->GetA()/(g/mole); + SIGMA += NbOfAtomsPerVolume[i] * + ComputeCrossSectionPerAtom(GammaEnergy,AtomicZ,AtomicA); + } + return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4PAIonisation.hh b/source/processes/electromagnetic/standard/include/G4PAIonisation.hh index dd09742202..617011edbc 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.11 2001/10/29 16:23:40 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PAIonisation.hh,v 1.12 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh index 891240f8b6..eeffb22527 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.5 2001/07/11 10:03:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PAIxSection.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4PAIxSection.hh -- header file @@ -42,6 +42,8 @@ // 2nd version 30.11.97, V. Grichine // 27.10.99, V.Grichine: Bug fixed in constructors, 3rd constructor and // GetStepEnergyLoss(step) were added, fDelta = 0.005 +// 10.02.02, V.Grichine: New functions and arrays/gets for Cerenkov and +// plasmon collisions dN/dx #ifndef G4PAIXSECTION_HH #define G4PAIXSECTION_HH @@ -92,7 +94,6 @@ public: // Physical methods - void IntegralPAIxSection() ; G4double RutherfordIntegral( G4int intervalNumber, G4double limitLow, @@ -106,12 +107,30 @@ public: G4double DifPAIxSection( G4int intervalNumber, G4double betaGammaSq ) ; + G4double PAIdNdxCerenkov( G4int intervalNumber, + G4double betaGammaSq ) ; + + G4double PAIdNdxPlasmon( G4int intervalNumber, + G4double betaGammaSq ) ; + + void IntegralPAIxSection() ; + void IntegralCerenkov() ; + void IntegralPlasmon() ; + G4double SumOverInterval(G4int intervalNumber) ; + G4double SumOverInterCerenkov(G4int intervalNumber) ; + G4double SumOverInterPlasmon(G4int intervalNumber) ; G4double SumOverBorder( G4int intervalNumber, G4double energy ) ; + G4double SumOverBordCerenkov( G4int intervalNumber, + G4double energy ) ; + G4double SumOverBordPlasmon( G4int intervalNumber, + G4double energy ) ; G4double GetStepEnergyLoss( G4double step ) ; + G4double GetStepCerenkovLoss( G4double step ) ; + G4double GetStepPlasmonLoss( G4double step ) ; // Inline access functions @@ -122,8 +141,14 @@ public: G4int GetIntervalNumber() const { return fIntervalNumber ; } G4double GetEnergyInterval(G4int i){ return fEnergyInterval[i] ; } + + G4double GetDifPAIxSection(G4int i){ return fDifPAIxSection[i] ; } + G4double GetPAIdNdxCrenkov(G4int i){ return fdNdxCerenkov[i] ; } + G4double GetPAIdNdxPlasmon(G4int i){ return fdNdxPlasmon[i] ; } G4double GetMeanEnergyLoss() const {return fIntegralPAIxSection[0] ; } + G4double GetMeanCerenkovLoss() const {return fIntegralCerenkov[0] ; } + G4double GetMeanPlasmonLoss() const {return fIntegralPlasmon[0] ; } G4double GetNormalizationCof() const { return fNormalizationCof ; } @@ -134,6 +159,8 @@ public: inline G4double GetSplineEnergy(G4int i) const ; inline G4double GetIntegralPAIxSection(G4int i) const ; + inline G4double GetIntegralCerenkov(G4int i) const ; + inline G4double GetIntegralPlasmon(G4int i) const ; protected : @@ -181,8 +208,12 @@ G4double fRePartDielectricConst[500] ; // Real part of dielectric const G4double fImPartDielectricConst[500] ; // Imaginary part of dielectric const G4double fIntegralTerm[500] ; // Integral term in PAI cross section G4double fDifPAIxSection[500] ; // Differential PAI cross section -G4double fIntegralPAIxSection[500] ; // Integral PAI cross section ? +G4double fdNdxCerenkov[500] ; // dNdx of Cerenkov collisions +G4double fdNdxPlasmon[500] ; // dNdx of Plasmon collisions +G4double fIntegralPAIxSection[500] ; // Integral PAI cross section ? +G4double fIntegralCerenkov[500] ; // Integral Cerenkov N>omega ? +G4double fIntegralPlasmon[500] ; // Integral Plasmon N>omega ? G4double fPAItable[500][112] ; // Output array @@ -220,6 +251,24 @@ inline G4double G4PAIxSection::GetIntegralPAIxSection(G4int i) const return fIntegralPAIxSection[i] ; } +inline G4double G4PAIxSection::GetIntegralCerenkov(G4int i) const +{ + if(i < 1 || i > fSplineNumber) + { + G4Exception("Invalid argument in G4PAIxSection::GetIntegralCerenkov"); + } + return fIntegralCerenkov[i] ; +} + +inline G4double G4PAIxSection::GetIntegralPlasmon(G4int i) const +{ + if(i < 1 || i > fSplineNumber) + { + G4Exception("Invalid argument in G4PAIxSection::GetIntegralPlasmon"); + } + return fIntegralPlasmon[i] ; +} + #endif // ----------------- end of G4PAIxSection header file ------------------- diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh index 7e356f696f..7faf5f7b84 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhotoElectricEffect.hh,v 1.10 2001/10/01 15:00:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PhotoElectricEffect.hh,v 1.15 2002/05/02 11:37:22 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // @@ -40,7 +40,12 @@ // 06-08-01, BuildThePhysicsTable() called from constructor (mma) // 19-09-01, come back to previous process name "phot" // 20-09-01, DoIt: fminimalEnergy = 1*eV (mma) -// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 10-01-02, moved few function from icc to cc +// 17-04-02, Keep only Sandia crossSections. Remove BuildPhysicsTables. +// Simplify public interface (mma) +// 29-04-02, Generate theta angle of the photoelectron from Sauter-Gavrila +// distribution (mma) // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -80,45 +85,19 @@ class G4PhotoElectricEffect : public G4VDiscreteProcess G4bool IsApplicable(const G4ParticleDefinition&); // true for Gamma only. - void SetPhysicsTableBining(G4double lowE, G4double highE, G4int nBins); - // Allows to define the binning of the PhysicsTables, - // before to build them. - - void BuildPhysicsTable(const G4ParticleDefinition&); - // It builds the total CrossSectionPerAtom table, for Gamma, - // and for every element contained in the elementTable. - // It builds the MeanFreePath table, for Gamma, - // and for every material contained in the materialTable. - - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store CrossSection and MeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) - - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve CrossSection and MeanFreePath tables from an external file - // specified by 'directory' - void PrintInfoDefinition(); - // Print few lines of informations about the process: validity range, - // origine ..etc.. - // Invoked by BuildThePhysicsTable(). + // Print few lines of informations about the process. - G4double GetMeanFreePath(const G4Track& aTrack, - G4double previousStepSize, + G4double GetMeanFreePath(const G4Track& aTrack, + G4double previousStepSize, G4ForceCondition* condition); // It returns the MeanFreePath of the process for the current track : // (energy, material) // The previousStepSize and G4ForceCondition* are not used. - // This function overloads a virtual function of the base class. + // This function overloads a virtual function of the base class. // It is invoked by the ProcessManager of the Particle. - - G4double GetCrossSectionPerAtom(const G4DynamicParticle* aDynamicPhoton, - G4Element* anElement); - // It returns the total CrossSectionPerAtom of the process, - // for the current DynamicGamma (energy), in anElement. + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep); // It computes the final state of the process (at end of step), @@ -126,26 +105,22 @@ class G4PhotoElectricEffect : public G4VDiscreteProcess // This function overloads a virtual function of the base class. // It is invoked by the ProcessManager of the Particle. - protected: + public: // with description - virtual inline G4double ComputeKBindingEnergy(G4double AtomicNumber); - - virtual inline G4double ComputeL1BindingEnergy(G4double AtomicNumber); - - virtual inline G4double ComputeL2BindingEnergy(G4double AtomicNumber); - - virtual G4double ComputeCrossSectionPerAtom(G4double PhotonEnergy, - G4double AtomicNumber); - - virtual G4double ComputeMeanFreePath(G4double PhotonEnergy, - G4Material* aMaterial); - - G4double ComputeSandiaCrossSection (G4double PhotonEnergy, + // utilities to access the cross Section and mean free path: + + virtual + G4double ComputeCrossSectionPerAtom(G4double PhotonEnergy, G4double AtomicNumber); - - inline G4double ComputeSandiaMeanFreePath(G4double PhotonEnergy, - G4Material* aMaterial); - + + virtual + G4double ComputeMeanFreePath(G4double PhotonEnergy, + G4Material* aMaterial); + + protected: + virtual + G4double ElecThetaDistribution(G4double ElecKineEnergy); + private: G4Element* SelectRandomAtom(const G4DynamicParticle* aDynamicPhoton, @@ -158,16 +133,9 @@ class G4PhotoElectricEffect : public G4VDiscreteProcess private: - G4PhysicsTable* theCrossSectionTable; // table for crossection - G4PhysicsTable* theMeanFreePathTable; // table for Mean free path + G4double fminimalEnergy; // minimalEnergy of produced particles - G4double LowestEnergyLimit ; // low energy limit of the tables - G4double HighestEnergyLimit ; // high energy limit of the tables - G4int NumbBinTable ; // number of bins in the tables - - G4double fminimalEnergy; // minimalEnergy of produced particles - - G4double MeanFreePath; // actual Mean Free Path (current medium) + G4double MeanFreePath; // actual Mean Free Path (current medium) }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc index 7921835156..488566de00 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhotoElectricEffect.icc,v 1.8 2001/09/17 17:07:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PhotoElectricEffect.icc,v 1.10 2002/04/18 10:12:01 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,10 @@ // 06-01-99, use Sandia crossSection, V.Grichine mma // 28-05-01, V.Ivanchenko minor changes to provide ANSI -wall compilation // 17-09-01, migration of Materials to pure STL (mma) - +// 10-01-02, moved few function from icc to cc +// 17-04-02, Keep only Sandia crossSections. Remove BuildPhysicsTables. +// Simplify public interface (mma) + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,140 +51,26 @@ inline G4bool G4PhotoElectricEffect::IsApplicable(const G4ParticleDefinition& //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4PhotoElectricEffect::GetCrossSectionPerAtom( - const G4DynamicParticle* aDynamicGamma, - G4Element* anElement) - -// gives the microscopic total cross section in GEANT4 internal units - -{ - G4double crossSection; - G4double GammaEnergy = aDynamicGamma->GetKineticEnergy(); - G4double AtomicNumber = anElement->GetZ(); - G4bool isOutRange; - - if (GammaEnergy > HighestEnergyLimit) - crossSection = 0.; - else if (GammaEnergy > LowestEnergyLimit) - crossSection = (*theCrossSectionTable)(anElement->GetIndex())-> - GetValue(GammaEnergy, isOutRange); - else - crossSection = ComputeSandiaCrossSection(GammaEnergy,AtomicNumber); - - return crossSection; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - inline G4double G4PhotoElectricEffect::GetMeanFreePath(const G4Track& aTrack, G4double, G4ForceCondition*) - // returns the gamma mean free path in GEANT4 internal units -// ( MeanFreePath is a private data member of the class) - { - const G4DynamicParticle* aDynamicGamma = aTrack.GetDynamicParticle(); - G4double GammaEnergy = aDynamicGamma->GetKineticEnergy(); - G4Material* aMaterial = aTrack.GetMaterial(); + G4double GammaEnergy = aTrack.GetDynamicParticle()->GetKineticEnergy(); + G4double* SandiaCof = aTrack.GetMaterial()->GetSandiaTable() + ->GetSandiaCofForMaterial(GammaEnergy); + + G4double energy2 = GammaEnergy*GammaEnergy, energy3 = GammaEnergy*energy2, + energy4 = energy2*energy2; - G4bool isOutRange ; - - if (GammaEnergy > HighestEnergyLimit) - MeanFreePath = DBL_MAX; - else if (GammaEnergy > LowestEnergyLimit) - MeanFreePath = (*theMeanFreePathTable)(aMaterial->GetIndex())-> - GetValue(GammaEnergy, isOutRange); - else - MeanFreePath = ComputeSandiaMeanFreePath(GammaEnergy, aMaterial); - - return MeanFreePath; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline G4double G4PhotoElectricEffect::ComputeMeanFreePath(G4double GammaEnergy, - G4Material* aMaterial) - -// returns the gamma mean free path in GEANT4 internal units - -{ - const G4ElementVector* theElementVector = aMaterial->GetElementVector(); - const G4double* NbOfAtomsPerVolume = aMaterial->GetVecNbOfAtomsPerVolume(); - - G4double SIGMA = 0; - - for ( size_t elm=0 ; elm < aMaterial->GetNumberOfElements() ; elm++ ) - { - SIGMA += NbOfAtomsPerVolume[elm] * - ComputeCrossSectionPerAtom(GammaEnergy, - (*theElementVector)[elm]->GetZ()); - } - - return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline -G4double G4PhotoElectricEffect::ComputeSandiaMeanFreePath(G4double GammaEnergy, - G4Material* aMaterial) -{ - G4double energy2 = GammaEnergy*GammaEnergy, energy3 = GammaEnergy*energy2, - energy4 = energy2*energy2; - - G4double* SandiaCof = aMaterial->GetSandiaTable() - ->GetSandiaCofForMaterial(GammaEnergy); - - G4double SIGMA = SandiaCof[0]/GammaEnergy + SandiaCof[1]/energy2 + - SandiaCof[2]/energy3 + SandiaCof[3]/energy4; + + G4double SIGMA = SandiaCof[0]/GammaEnergy + SandiaCof[1]/energy2 + + SandiaCof[2]/energy3 + SandiaCof[3]/energy4; - return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline G4double G4PhotoElectricEffect::ComputeKBindingEnergy (G4double Z) - -// Calculates the binding energy of the K electronic shell, as a function -// of the Atomic Number, from a parametrized formula of L. Urban. - -{ - const G4double - aK (6.6644*eV), bK (2.2077e-1*eV), cK (-3.2552e-3*eV), dK (1.8199e-5*eV); - - return Z*Z*(aK + Z* (bK + Z* (cK + Z* dK))); + MeanFreePath = SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; + return MeanFreePath; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4PhotoElectricEffect::ComputeL1BindingEnergy (G4double Z) - -// Calculates the binding energy of the L1 electronic shell, as a function -// of the Atomic Number, from a parametrized formula of L. Urban. - -{ - const G4double - aL1(-2.9179e-1*eV), bL1(8.7983e-2*eV), cL1(-1.2589e-3*eV), dL1(6.9602e-6*eV); - - return Z*Z*(aL1 + Z* (bL1 + Z* (cL1 + Z* dL1))); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline G4double G4PhotoElectricEffect::ComputeL2BindingEnergy (G4double Z) - -// Calculates the binding energy of the L2 electronic shell, as a function -// of the Atomic Number, from a parametrized formula of L. Urban. - -{ - const G4double - aL2(-6.8606e-1*eV), bL2(1.0078e-1*eV), cL2(-1.4496e-3*eV), dL2(7.8809e-6*eV); - - return Z*Z*(aL2 + Z* (bL2 + Z* (cL2 + Z* dL2))); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - diff --git a/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh index eaadfa4add..cef1918541 100644 --- a/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolarizedComptonScattering.hh,v 1.6 2001/08/31 14:58:47 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PolarizedComptonScattering.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // --------- 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 bbbc9265b6..477147c779 100644 --- a/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh +++ b/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SynchrotronRadiation.hh,v 1.6 2001/07/11 10:03:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SynchrotronRadiation.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh index e076a129ca..8a0835417f 100644 --- a/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPAIenergyLoss.hh,v 1.7 2001/11/08 08:13:24 urban Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VPAIenergyLoss.hh,v 1.8 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh index 2c4d7f2a66..c0fc5e8e91 100644 --- a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VeEnergyLoss.hh,v 1.10 2001/11/08 08:45:43 urban Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VeEnergyLoss.hh,v 1.11 2002/04/09 17:34:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc index 4db49ad38c..5e9f20b18d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh index 0bd3a18f76..d3eb688edd 100644 --- a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VhEnergyLoss.hh,v 1.14 2001/11/09 13:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VhEnergyLoss.hh,v 1.15 2002/04/09 17:34:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------- 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 c17bd90c8a..c3ee7792a3 100644 --- a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc +++ b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VhEnergyLoss.icc,v 1.4 2001/11/09 13:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VhEnergyLoss.icc,v 1.5 2002/02/26 18:11:33 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ---------------- G4VhEnergyLoss physics process ----------------------------- @@ -36,7 +36,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... inline G4bool G4VhEnergyLoss::IsApplicable(const G4ParticleDefinition& - particle) + particle) { return(particle.GetPDGCharge()!= 0.); } diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh index 001876ddbe..33087a8379 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eBremsstrahlung.hh,v 1.13 2001/10/29 16:23:41 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eBremsstrahlung.hh,v 1.14 2002/04/09 17:34:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------ G4eBremsstrahlung physics process ------ diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc index 4de3f3733e..a3e6395761 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------ G4eBremsstrahlung physics process --------- // by Michel Maire, 27 July 1996 diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation.hh b/source/processes/electromagnetic/standard/include/G4eIonisation.hh index 61a984c48c..a2e7d1e4af 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4eIonisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eIonisation.hh,v 1.15 2001/10/29 16:23:41 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eIonisation.hh,v 1.16 2002/04/09 17:34:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------- 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 86033e4c0c..ed5c4684e3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //----------------- G4eIonisation physics process ------------------------------ diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh index a18d7fe2e8..2bb6658ee9 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eplusAnnihilation.hh,v 1.9 2001/10/01 15:00:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eplusAnnihilation.hh,v 1.10 2002/04/09 17:34:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc index 9504e401f0..605e5715f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.hh b/source/processes/electromagnetic/standard/include/G4hIonisation.hh index 21be0a9317..df6faa6208 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4hIonisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4hIonisation.hh,v 1.17 2001/11/09 13:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4hIonisation.hh,v 1.20 2002/03/27 21:43:55 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // --------------- G4hIonisation physics process ------------------------------- // by Laszlo Urban, 30 May 1997 @@ -35,7 +35,7 @@ // 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 +// 29-10-01 all static functions no more inlined // // ----------------------------------------------------------------------------- @@ -52,7 +52,7 @@ #ifndef G4hIonisation_h #define G4hIonisation_h 1 -#include "G4VhEnergyLoss.hh" +#include "G4VhEnergyLoss.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -150,6 +150,7 @@ class G4hIonisation : public G4VhEnergyLoss G4int TotBin; G4double Tmincut; // min energy of d-rays + G4double initialMass; // mass for Lambda table public: // with description diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.icc b/source/processes/electromagnetic/standard/include/G4hIonisation.icc index 58e9d4c2c9..4003f0aae0 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.icc +++ b/source/processes/electromagnetic/standard/include/G4hIonisation.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4hIonisation.icc,v 1.7 2001/11/09 13:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4hIonisation.icc,v 1.11 2002/04/09 17:34:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //------------------ G4hIonisation physics process ----------------------------- @@ -32,6 +32,7 @@ // 24/09/97: corrected by L.Urban // 20/11/97: correction on MeanFreePath for KineticEnergy > HighestLimit // 14-08-01: 'cleanup' of GetMeanFreePath (mma) +// 09-04-02: e+- are not applicable (V.Ivanchenko) // //------------------------------------------------------------------------------ @@ -41,7 +42,7 @@ inline G4bool G4hIonisation::IsApplicable( const G4ParticleDefinition& particle) { - return(particle.GetPDGCharge() != 0.); + return(particle.GetPDGCharge() != 0. && particle.GetPDGMass() > 10.*MeV); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,16 +50,19 @@ inline G4bool G4hIonisation::IsApplicable( inline G4double G4hIonisation::GetMeanFreePath(const G4Track& track, G4double, G4ForceCondition*) { - G4double KineticEnergy = track.GetDynamicParticle()->GetKineticEnergy(); + const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); + G4double kinEnergy = (dynParticle->GetKineticEnergy())*initialMass/(dynParticle->GetMass()); + G4double q = dynParticle->GetCharge()/eplus; + G4double currentChargeSquare = q*q; G4Material* aMaterial = track.GetMaterial(); G4double MeanFreePath; G4bool isOut; - - if (KineticEnergy > HighestKineticEnergy) KineticEnergy = HighestKineticEnergy; - if (KineticEnergy > LowestKineticEnergy) - MeanFreePath = ((*theMeanFreePathTable)(aMaterial->GetIndex()))-> - GetValue(KineticEnergy, isOut); + + if(kinEnergy > UpperBoundLambda) kinEnergy = UpperBoundLambda; + if(kinEnergy > LowerBoundLambda) + MeanFreePath = (((*theMeanFreePathTable)(aMaterial->GetIndex()))-> + GetValue(kinEnergy, isOut))/currentChargeSquare; else MeanFreePath = DBL_MAX; return MeanFreePath; diff --git a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc index c70216ad3d..f21df6423e 100644 --- a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ComptonScattering.cc,v 1.14 2001/10/01 15:00:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ComptonScattering.cc,v 1.16 2002/04/18 10:12:01 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //------------ G4ComptonScattering physics process ----------------------------- @@ -46,7 +46,8 @@ // 06-08-01, BuildThePhysicsTable() called from constructor (mma) // 17-09-01, migration of Materials to pure STL (mma) // 20-09-01, DoIt: fminimalEnergy = 1*eV (mma) -// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 17-04-02, LowestEnergyLimit = 1*keV // ----------------------------------------------------------------------------- #include "G4ComptonScattering.hh" @@ -60,9 +61,9 @@ G4ComptonScattering::G4ComptonScattering(const G4String& processName) : G4VDiscreteProcess (processName), theCrossSectionTable(NULL), theMeanFreePathTable(NULL), - LowestEnergyLimit ( 10*keV), + LowestEnergyLimit ( 1*keV), HighestEnergyLimit(100*GeV), - NumbBinTable(100), + NumbBinTable(80), fminimalEnergy(1*eV) {} @@ -170,7 +171,7 @@ G4double G4ComptonScattering::ComputeCrossSectionPerAtom { G4double CrossSection = 0.0 ; if ( Z < 1. ) return CrossSection; - if ( GammaEnergy < 10.*keV ) return CrossSection; + if ( GammaEnergy < 1.*keV ) return CrossSection; if ( GammaEnergy > (100.*GeV/Z) ) return CrossSection; static const G4double a = 20.0 , b = 230.0 , c = 440.0; diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc index 222a5de1c9..82ac96264b 100644 --- a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc +++ b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc @@ -21,38 +21,40 @@ // ******************************************************************** // // -// $Id: G4GammaConversion.cc,v 1.14 2001/10/01 15:00:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4GammaConversion.cc,v 1.17 2002/04/09 17:34:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //------------------ G4GammaConversion physics process ------------------------- // by Michel Maire, 24 May 1996 // -// 11-06-96, Added SelectRandomAtom() method, M.Maire -// 21-06-96, SetCuts implementation, M.Maire -// 24-06-96, simplification in ComputeCrossSectionPerAtom, M.Maire -// 24-06-96, in DoIt : change the particleType stuff, M.Maire -// 25-06-96, modification in the generation of the teta angle, M.Maire -// 16-09-96, minors optimisations in DoIt. Thanks to P.Urban -// dynamical array PartialSumSigma -// 13-12-96, fast sampling of epsil below 2 MeV, L.Urban -// 14-01-97, crossection table + meanfreepath table. -// PartialSumSigma removed, M.Maire -// 14-01-97, in DoIt the positron is always created, even with Ekine=0, -// for further annihilation, M.Maire -// 14-03-97, new Physics scheme for geant4alpha, M.Maire -// 28-03-97, protection in BuildPhysicsTable, M.Maire -// 19-06-97, correction in ComputeCrossSectionPerAtom, L.Urban -// 04-06-98, in DoIt, secondary production condition: -// range>G4std::min(threshold,safety) -// 13-08-98, new methods SetBining() PrintInfo() -// 28-05-01, V.Ivanchenko minor changes to provide ANSI -wall compilation -// 11-07-01, PostStepDoIt - sampling epsil: power(rndm,0.333333) -// 13-07-01, DoIt: suppression of production cut for the (e-,e+) (mma) -// 06-08-01, new methods Store/Retrieve PhysicsTable (mma) -// 06-08-01, BuildThePhysicsTable() called from constructor (mma) -// 17-09-01, migration of Materials to pure STL (mma) -// 20-09-01, DoIt: fminimalEnergy = 1*eV (mma) -// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 11-06-96 Added SelectRandomAtom() method, M.Maire +// 21-06-96 SetCuts implementation, M.Maire +// 24-06-96 simplification in ComputeCrossSectionPerAtom, M.Maire +// 24-06-96 in DoIt : change the particleType stuff, M.Maire +// 25-06-96 modification in the generation of the teta angle, M.Maire +// 16-09-96 minors optimisations in DoIt. Thanks to P.Urban +// dynamical array PartialSumSigma +// 13-12-96 fast sampling of epsil below 2 MeV, L.Urban +// 14-01-97 crossection table + meanfreepath table. +// PartialSumSigma removed, M.Maire +// 14-01-97 in DoIt the positron is always created, even with Ekine=0, +// for further annihilation, M.Maire +// 14-03-97 new Physics scheme for geant4alpha, M.Maire +// 28-03-97 protection in BuildPhysicsTable, M.Maire +// 19-06-97 correction in ComputeCrossSectionPerAtom, L.Urban +// 04-06-98 in DoIt, secondary production condition: +// range>G4std::min(threshold,safety) +// 13-08-98 new methods SetBining() PrintInfo() +// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 11-07-01 PostStepDoIt - sampling epsil: power(rndm,0.333333) +// 13-07-01 DoIt: suppression of production cut for the (e-,e+) (mma) +// 06-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 06-08-01 BuildThePhysicsTable() called from constructor (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 20-09-01 DoIt: fminimalEnergy = 1*eV (mma) +// 01-10-01 come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 11-01-02 ComputeCrossSection: correction of extrapolation below EnergyLimit +// 21-03-02 DoIt: correction of the e+e- angular distribution (bug 363) mma // ----------------------------------------------------------------------------- #include "G4GammaConversion.hh" @@ -208,7 +210,8 @@ G4double G4GammaConversion::ComputeCrossSectionPerAtom if (GammaEnergySave < GammaEnergyLimit) { - X=GammaEnergySave-2.*electron_mass_c2; + X = (GammaEnergySave - 2.*electron_mass_c2) + /(GammaEnergyLimit- 2.*electron_mass_c2); CrossSection *= X*X; } @@ -325,24 +328,26 @@ G4VParticleChange* G4GammaConversion::PostStepDoIt(const G4Track& aTrack, if (9./(9.+d) >G4UniformRand()) u= - log(G4UniformRand()*G4UniformRand())/a1; else u= - log(G4UniformRand()*G4UniformRand())/a2; - G4double Teta = u*electron_mass_c2/GammaEnergy; + G4double TetEl = u*electron_mass_c2/ElectTotEnergy; + G4double TetPo = u*electron_mass_c2/PositTotEnergy; G4double Phi = twopi * G4UniformRand(); - G4double dirx=sin(Teta)*cos(Phi), diry=sin(Teta)*sin(Phi), dirz=cos(Teta); - + G4double dxEl= sin(TetEl)*cos(Phi),dyEl= sin(TetEl)*sin(Phi),dzEl=cos(TetEl); + G4double dxPo=-sin(TetPo)*cos(Phi),dyPo=-sin(TetPo)*sin(Phi),dzPo=cos(TetPo); + // // kinematic of the created pair // // the electron and positron are assumed to have a symetric // angular distribution with respect to the Z axis along the parent photon. - aParticleChange.SetNumberOfSecondaries(2) ; + aParticleChange.SetNumberOfSecondaries(2); G4double ElectKineEnergy = G4std::max(0.,ElectTotEnergy - electron_mass_c2); G4double localEnergyDeposit = 0.; if (ElectKineEnergy > fminimalEnergy) { - G4ThreeVector ElectDirection (dirx, diry, dirz); + G4ThreeVector ElectDirection (dxEl, dyEl, dzEl); ElectDirection.rotateUz(GammaDirection); // create G4DynamicParticle object for the particle1 @@ -359,7 +364,7 @@ G4VParticleChange* G4GammaConversion::PostStepDoIt(const G4Track& aTrack, if (PositKineEnergy < fminimalEnergy) { localEnergyDeposit += PositKineEnergy; PositKineEnergy = 0.;} - G4ThreeVector PositDirection (-dirx, -diry, dirz); + G4ThreeVector PositDirection (dxPo, dyPo, dzPo); PositDirection.rotateUz(GammaDirection); // create G4DynamicParticle object for the particle2 diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc b/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc new file mode 100644 index 0000000000..cb462462b9 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.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. * +// ******************************************************************** +// +// +// $Id: G4GammaConversionToMuons.cc,v 1.3 2002/05/06 09:32:41 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ------------ G4GammaConversionToMuons physics process ------ +// by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 +// --------------------------------------------------------------------------- + +#include "G4GammaConversionToMuons.hh" +#include "G4EnergyLossTables.hh" +#include "G4UnitsTable.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +// constructor + +G4GammaConversionToMuons::G4GammaConversionToMuons(const G4String& processName) + : G4VDiscreteProcess (processName), + LowestEnergyLimit (4*G4MuonPlus::MuonPlus()->GetPDGMass()), // 4*Mmuon + HighestEnergyLimit(1e21*eV), // ok to 1e21eV=1e12GeV, then LPM suppression + CrossSecFactor(1.) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +// destructor + +G4GammaConversionToMuons::~G4GammaConversionToMuons() // (empty) destructor +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +void G4GammaConversionToMuons::BuildPhysicsTable(const G4ParticleDefinition&) +// Build cross section and mean free path tables +{ //here no tables, just calling PrintInfoDefinition + PrintInfoDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +void G4GammaConversionToMuons::SetCrossSecFactor(G4double fac) +// Set the factor to artificially increase the cross section +{ CrossSecFactor=fac; + G4cout << "The cross section for GammaConversionToMuons is artificially " + << "increased by the CrossSecFactor=" << CrossSecFactor << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +G4double G4GammaConversionToMuons::ComputeCrossSectionPerAtom( + G4double Egam, G4double Z, G4double A) +// Calculates the microscopic cross section in GEANT4 internal units. +// Total cross section parametrisation from H.Burkhardt +// 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; + + static G4double CrossSection = 0.0 ; + + if ( A < 1. ) return 0; + if ( Egam < 4*Mmuon ) return 0 ; // below threshold return 0 + + static G4double EgamLast=0,Zlast=0,PowThres,Ecor,B,Dn,Zthird,Winfty,WMedAppr, + Wsatur,sigfac; + + if(Zlast==Z && Egam==EgamLast) return CrossSection; // already calculated + EgamLast=Egam; + + if(Zlast!=Z) // new element + { Zlast=Z; + if(Z==1) // special case of Hydrogen + { B=202.4; + Dn=1.49; + } + else + { B=183.; + Dn=1.54*pow(A,0.27); + } + Zthird=pow(Z,-1./3.); // Z**(-1/3) + Winfty=B*Zthird*Mmuon/(Dn*Mele); + WMedAppr=1./(4.*Dn*sqrte*Mmuon); + Wsatur=Winfty/WMedAppr; + sigfac=4.*fine_structure_const*Z*Z*Rc*Rc; + PowThres=1.479+0.00799*Dn; + Ecor=-18.+4347./(B*Zthird); + } + G4double CorFuc=1.+.04*log(1.+Ecor/Egam); + G4double Eg=pow(1.-4.*Mmuon/Egam,PowThres)*pow( pow(Wsatur,PowSat)+ + pow(Egam,PowSat),1./PowSat); // threshold and saturation + CrossSection=7./9.*sigfac*log(1.+WMedAppr*CorFuc*Eg); + CrossSection*=CrossSecFactor; // increase the CrossSection by (by default 1) + return CrossSection; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +G4VParticleChange* G4GammaConversionToMuons::PostStepDoIt( + const G4Track& aTrack, + const G4Step& aStep) +// +// generation of gamma->mu+mu- +// +{ + aParticleChange.Initialize(aTrack); + G4Material* aMaterial = aTrack.GetMaterial(); + + static const G4double Mmuon=G4MuonPlus::MuonPlus()->GetPDGMass(); + static const G4double Mele=electron_mass_c2; + static const G4double sqrte=sqrt(exp(1.)); + + // current Gamma energy and direction, return if energy too low + const G4DynamicParticle *aDynamicGamma = aTrack.GetDynamicParticle(); + G4double Egam = aDynamicGamma->GetKineticEnergy(); + if (Egam < 4*Mmuon) return G4VDiscreteProcess::PostStepDoIt(aTrack,aStep); + G4ParticleMomentum GammaDirection = aDynamicGamma->GetMomentumDirection(); + + // select randomly one element constituting the material + const G4Element& anElement = *SelectRandomAtom(aDynamicGamma, aMaterial); + G4double Z = anElement.GetZ(); + G4double A = anElement.GetA()/(g/mole); + + static G4double Zlast=0,B,Dn,Zthird,Winfty,A027,C1Num2,C2Term2; + if(Zlast!=Z) // the element has changed + { Zlast=Z; + if(Z==1) // special case of Hydrogen + { B=202.4; + Dn=1.49; + } + else + { B=183.; + Dn=1.54*pow(A,0.27); + } + Zthird=pow(Z,-1./3.); // Z**(-1/3) + Winfty=B*Zthird*Mmuon/(Dn*Mele); + A027=pow(A,0.27); + G4double C1Num=0.35*A027; + C1Num2=C1Num*C1Num; + C2Term2=Mele/(183.*Zthird*Mmuon); + } + + G4double GammaMuonInv=Mmuon/Egam; + G4double sqrtx=sqrt(.25-GammaMuonInv); + G4double xmax=.5+sqrtx; + G4double xmin=.5-sqrtx; + + // generate xPlus according to the differential cross section by rejection + G4double Ds2=(Dn*sqrte-2.); + G4double sBZ=sqrte*B*Zthird/Mele; + G4double LogWmaxInv=1./log(Winfty*(1.+2.*Ds2*GammaMuonInv) + /(1.+2.*sBZ*Mmuon*GammaMuonInv)); + G4double xPlus,xMinus,xPM,result,W; + do + { xPlus=xmin+G4UniformRand()*(xmax-xmin); + xMinus=1.-xPlus; + xPM=xPlus*xMinus; + G4double del=Mmuon*Mmuon/(2.*Egam*xPM); + W=Winfty*(1.+Ds2*del/Mmuon)/(1.+sBZ*del); + if(W<1.) W=1.; // to avoid negative cross section at xmin + G4double xxp=1.-4./3.*xPM; // the main xPlus dependence + result=xxp*log(W)*LogWmaxInv; + if(result>1.) + { G4cout << "error in dSigxPlusGen, result=" << result << " is >1" << '\n'; + exit(10); + } + } + while (G4UniformRand() > result); + + // now generate the angular variables via the auxilary variables t,psi,rho + G4double t; + G4double psi; + G4double rho; + + G4double thetaPlus,thetaMinus,phiHalf; // final angular variables + + do // t, psi, rho generation start (while angle < pi) + { + //generate t by the rejection method + G4double C1=C1Num2* GammaMuonInv/xPM; + G4double f1_max=(1.-xPM) / (1.+C1); + G4double f1; // the probability density + 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 + { G4cout << "outside allowed range f1=" << f1 << G4endl; + exit(1); + } + } + while ( G4UniformRand()*f1_max > f1); + // generate psi by the rejection method + G4double f2_max=1.-2.*xPM*(1.-4.*t*(1.-t)); + + // long version + G4double f2; + 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 + { G4cout << "outside allowed range f2=" << f2 << G4endl; + exit(1); + } + } + while ( G4UniformRand()*f2_max > f2); + + // generate rho by direct transformation + G4double C2Term1=GammaMuonInv/(2.*xPM*t); + G4double C2=4./sqrt(xPM)*pow(C2Term1*C2Term1+C2Term2*C2Term2,2); + G4double rhomax=1.9/A027*(1./t-1.); + G4double beta=log( (C2+pow(rhomax,4))/C2 ); + rho=pow(C2 *( exp(beta*G4UniformRand())-1. ) ,0.25); + + //now get from t and psi the kinematical variables + G4double u=sqrt(1./t-1.); + G4double xiHalf=0.5*rho*cos(psi); + phiHalf=0.5*rho/u*sin(psi); + + thetaPlus =GammaMuonInv*(u+xiHalf)/xPlus; + thetaMinus=GammaMuonInv*(u-xiHalf)/xMinus; + + } while ( abs(thetaPlus)>pi | abs(thetaMinus) >pi); + + // now construct the vectors + // azimuthal symmetry, take phi0 at random between 0 and 2 pi + G4double phi0=2.*pi*G4UniformRand(); + G4double EPlus=xPlus*Egam; + G4double EMinus=xMinus*Egam; + + // mu+ mu- directions for gamma in z-direction + G4ThreeVector MuPlusDirection ( sin(thetaPlus) *cos(phi0+phiHalf), + sin(thetaPlus) *sin(phi0+phiHalf), cos(thetaPlus) ); + G4ThreeVector MuMinusDirection (-sin(thetaMinus)*cos(phi0-phiHalf), + -sin(thetaMinus) *sin(phi0-phiHalf), cos(thetaMinus) ); + // rotate to actual gamma direction + MuPlusDirection.rotateUz(GammaDirection); + MuMinusDirection.rotateUz(GammaDirection); + aParticleChange.SetNumberOfSecondaries(2); + // create G4DynamicParticle object for the particle1 + G4DynamicParticle* aParticle1= new G4DynamicParticle( + G4MuonPlus::MuonPlus(),MuPlusDirection,EPlus-Mmuon); + aParticleChange.AddSecondary(aParticle1); + // create G4DynamicParticle object for the particle2 + G4DynamicParticle* aParticle2= new G4DynamicParticle( + G4MuonMinus::MuonMinus(),MuMinusDirection,EMinus-Mmuon); + aParticleChange.AddSecondary(aParticle2); + // + // Kill the incident photon + // + aParticleChange.SetMomentumChange( 0., 0., 0. ) ; + aParticleChange.SetEnergyChange( 0. ) ; + aParticleChange.SetStatusChange( fStopAndKill ) ; + // Reset NbOfInteractionLengthLeft and return aParticleChange + return G4VDiscreteProcess::PostStepDoIt( aTrack, aStep ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +G4Element* G4GammaConversionToMuons::SelectRandomAtom( + const G4DynamicParticle* aDynamicGamma, + G4Material* aMaterial) +{ + // select randomly 1 element within the material, invoked by PostStepDoIt + + const G4int NumberOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + if (NumberOfElements == 1) return (*theElementVector)[0]; + + const G4double* NbOfAtomsPerVolume = aMaterial->GetVecNbOfAtomsPerVolume(); + + G4double PartialSumSigma = 0. ; + G4double rval = G4UniformRand()/MeanFreePath; + + + for ( G4int i=0 ; i < NumberOfElements ; i++ ) + { PartialSumSigma += NbOfAtomsPerVolume[i] * + GetCrossSectionPerAtom(aDynamicGamma, (*theElementVector)[i]); + if (rval <= PartialSumSigma) return ((*theElementVector)[i]); + } + G4cout << " WARNING !!! - The Material '"<< aMaterial->GetName() + << "' has no elements, NULL pointer returned." << G4endl; + return NULL; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +void G4GammaConversionToMuons::PrintInfoDefinition() +{ + G4String comments ="gamma->mu+mu- Bethe Heitler process.\n"; + G4cout << G4endl << GetProcessName() << ": " << comments + << " good cross section parametrization from " + << G4BestUnit(LowestEnergyLimit,"Energy") + << " to " << HighestEnergyLimit/GeV << " GeV for all Z." << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4PAIonisation.cc b/source/processes/electromagnetic/standard/src/G4PAIonisation.cc index 51e8b6bf6b..42fb14d43e 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.22 2001/11/09 13:59:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PAIonisation.cc,v 1.23 2002/04/09 17:34:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ************************************************************** diff --git a/source/processes/electromagnetic/standard/src/G4PAIxSection.cc b/source/processes/electromagnetic/standard/src/G4PAIxSection.cc index fb49268233..032d6e0dc0 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.8 2001/10/17 14:01:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PAIxSection.cc,v 1.10 2002/04/09 17:34:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4PAIxSection.cc -- class implementation file @@ -298,8 +298,12 @@ G4PAIxSection::G4PAIxSection( G4int materialIndex, for(i = 1 ; i <= fSplineNumber ; i++) { fDifPAIxSection[i] = DifPAIxSection(i,betaGammaSq); + fdNdxCerenkov[i] = PAIdNdxCerenkov(i,betaGammaSq); + fdNdxPlasmon[i] = PAIdNdxPlasmon(i,betaGammaSq); } IntegralPAIxSection() ; + IntegralCerenkov() ; + IntegralPlasmon() ; delete[] fEnergyInterval ; delete[] fA1 ; @@ -428,8 +432,12 @@ G4PAIxSection::G4PAIxSection( G4int materialIndex, for(i = 1 ; i <= fSplineNumber ; i++) { fDifPAIxSection[i] = DifPAIxSection(i,betaGammaSq); + fdNdxCerenkov[i] = PAIdNdxCerenkov(i,betaGammaSq); + fdNdxPlasmon[i] = PAIdNdxPlasmon(i,betaGammaSq); } IntegralPAIxSection() ; + IntegralCerenkov() ; + IntegralPlasmon() ; // delete[] fEnergyInterval ; delete[] fA1 ; @@ -470,7 +478,10 @@ void G4PAIxSection::InitPAI() NormShift(betaGammaSq) ; SplainPAI(betaGammaSq) ; + IntegralPAIxSection() ; + IntegralCerenkov() ; + IntegralPlasmon() ; for(i = 0 ; i<=fSplineNumber ; i++) { @@ -484,17 +495,19 @@ void G4PAIxSection::InitPAI() for(G4int j = 1 ; j < 112 ; j++) // for other gammas { - if(j == fRefGammaNumber) - { - continue ; - } + if( j == fRefGammaNumber ) continue ; + betaGammaSq = fLorentzFactor[j]*fLorentzFactor[j] - 1 ; for(i = 1 ; i <= fSplineNumber ; i++) { fDifPAIxSection[i] = DifPAIxSection(i,betaGammaSq); + fdNdxCerenkov[i] = PAIdNdxCerenkov(i,betaGammaSq); + fdNdxPlasmon[i] = PAIdNdxPlasmon(i,betaGammaSq); } IntegralPAIxSection() ; + IntegralCerenkov() ; + IntegralPlasmon() ; for(i = 0 ; i <= fSplineNumber ; i++) { @@ -511,46 +524,43 @@ void G4PAIxSection::InitPAI() void G4PAIxSection::NormShift(G4double betaGammaSq) { - G4int i,j; - for(i=1;i<=fIntervalNumber-1;i++) - { - for(j=1;j<=2;j++) - { - fSplineNumber = (i-1)*2 + j ; + G4int i, j ; - if(j==1) - { - fSplineEnergy[fSplineNumber]=fEnergyInterval[i]*(1+fDelta); - } - else - { - fSplineEnergy[fSplineNumber]=fEnergyInterval[i+1]*(1-fDelta); - } - } - } - fIntegralTerm[1]=RutherfordIntegral(1,fEnergyInterval[1],fSplineEnergy[1]); - j=1; - for(i=2;i<=fSplineNumber;i++) - { - if(fSplineEnergy[i]clearAndDestroy(); - delete theCrossSectionTable; - } - - if (theMeanFreePathTable) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } -} +{ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4PhotoElectricEffect::SetPhysicsTableBining( - G4double lowE, G4double highE, G4int nBins) -{ - LowestEnergyLimit = lowE; HighestEnergyLimit = highE; NumbBinTable = nBins; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4PhotoElectricEffect::BuildPhysicsTable(const G4ParticleDefinition&) - -// Build cross section per atom and mean free path tables -{ - G4double LowEdgeEnergy, Value; - G4PhysicsLogVector* ptrVector; - -// Build cross section per atom tables for the Photo Electric Effect - - if (theCrossSectionTable) { - theCrossSectionTable->clearAndDestroy(); delete theCrossSectionTable;} - - theCrossSectionTable = new G4PhysicsTable( G4Element::GetNumberOfElements()); - const G4ElementTable* theElementTable = G4Element::GetElementTable(); - G4double AtomicNumber; - size_t J; - - for ( J=0 ; J < G4Element::GetNumberOfElements(); J++ ) - { - //create physics vector then fill it .... - ptrVector = new G4PhysicsLogVector(LowestEnergyLimit,HighestEnergyLimit, - NumbBinTable ) ; - AtomicNumber = (*theElementTable)[J]->GetZ(); - - for ( G4int i = 0 ; i < NumbBinTable ; i++ ) - { - LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; - Value = ComputeCrossSectionPerAtom( LowEdgeEnergy, AtomicNumber); - ptrVector->PutValue( i , Value ) ; - } - - theCrossSectionTable->insertAt( J , ptrVector ) ; - - } - -// Build mean free path table for the Photo Electric Effect - - if (theMeanFreePathTable) { - theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} - - theMeanFreePathTable= new G4PhysicsTable(G4Material::GetNumberOfMaterials()); - const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable() ; - G4Material* material; - - for ( J=0 ; J < G4Material::GetNumberOfMaterials(); J++ ) - { - //create physics vector then fill it .... - ptrVector = new G4PhysicsLogVector(LowestEnergyLimit,HighestEnergyLimit, - NumbBinTable ); - material = (*theMaterialTable)[J]; - - for ( G4int i = 0 ; i < NumbBinTable ; i++ ) - { - LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; - Value = ComputeMeanFreePath( LowEdgeEnergy, material); - ptrVector->PutValue( i , Value ) ; - } - - theMeanFreePathTable->insertAt( J , ptrVector ) ; - - } - - PrintInfoDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4PhotoElectricEffect::ComputeCrossSectionPerAtom( - G4double PhotonEnergy, - G4double AtomicNumber) - -// Calculates the cross section per atom in GEANT4 internal units. -// A parametrized formula from L. Urban is used to estimate the -// total cross section. -// It gives a good description of the elements : 5 < Atomic Number < 100 and -// from 10 keV to 50 MeV. - -{ - G4double CrossSection = 0.0 ; - if ( AtomicNumber < 1. ) return CrossSection; - if ( PhotonEnergy > 50.*MeV ) return CrossSection; - - static const G4double - p1K =-8.8893e+2*nanobarn, p2K = 2.4394 *nanobarn, p3K = 2.8835e+2*nanobarn, - p4K = 1.2133e+1*nanobarn, p5K =-3.1104e+2*nanobarn, p6K =-1.7284e-1*nanobarn, - p7K = 1.4400e+1*nanobarn, p8K = 6.8357e+1*nanobarn, p9K = 7.3945e-4*nanobarn, - p10K=-4.8149e-2*nanobarn, p11K= 5.5823e-1*nanobarn, p12K=-1.0089e-1*nanobarn; - static const G4double - p1L1=-1.0927e+3*nanobarn, p2L1=-9.7897e-1*nanobarn, p3L1= 1.2854e+2*nanobarn; - static const G4double - p1L2=-4.5803e+3*nanobarn, p2L2= 1.6858e-3*nanobarn, p3L2= 1.2013e+2*nanobarn; - static const G4double - p1M = 1.6924e+1*nanobarn; - - const G4double pwZ = 3.845 , pwE = 2.975 ; - - G4double Z = AtomicNumber, Z2 = Z*Z, Z3 = Z*Z*Z; - G4double Em = PhotonEnergy/electron_mass_c2, Em2 = Em*Em, Em3 = Em*Em*Em; - - CrossSection = pow(Z,pwZ)/pow(Em,pwE); - - if (PhotonEnergy > ComputeKBindingEnergy(Z) ) { - CrossSection *= (p1K/Z + p2K/Em + p3K + p4K*Z + p5K*Em - + p6K*Z2 + p7K *Z *Em + p8K *Em2 - + p9K*Z3 + p10K*Z2*Em + p11K*Z*Em2 + p12K*Em3); - if (CrossSection < 0.) CrossSection = 0. ; - } - - else if (PhotonEnergy > ComputeL1BindingEnergy(Z) ) { - CrossSection *= (p1L1/Z + p2L1/Em + p3L1 ); - if (CrossSection < 0.) CrossSection = 0. ; - } - - else if (PhotonEnergy > ComputeL2BindingEnergy(Z) ) { - CrossSection *= (p1L2/Z + p2L2/Em + p3L2 ); - if (CrossSection < 0.) CrossSection = 0. ; - } - - else CrossSection *= p1M; - - return CrossSection; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4PhotoElectricEffect::ComputeSandiaCrossSection(G4double PhotonEnergy, +G4double G4PhotoElectricEffect::ComputeCrossSectionPerAtom(G4double GammaEnergy, G4double AtomicNumber) -{ - G4double energy2 = PhotonEnergy*PhotonEnergy, energy3 = PhotonEnergy*energy2, - energy4 = energy2*energy2; - G4double* SandiaCof - = G4SandiaTable::GetSandiaCofPerAtom((int)AtomicNumber,PhotonEnergy); +// returns the photoElectric cross Section in GEANT4 internal units +{ + G4double* SandiaCof + = G4SandiaTable::GetSandiaCofPerAtom((int)AtomicNumber,GammaEnergy); + + G4double energy2 = GammaEnergy*GammaEnergy, energy3 = GammaEnergy*energy2, + energy4 = energy2*energy2; - return SandiaCof[0]/PhotonEnergy + SandiaCof[1]/energy2 + - SandiaCof[2]/energy3 + SandiaCof[3]/energy4; + return SandiaCof[0]/GammaEnergy + SandiaCof[1]/energy2 + + SandiaCof[2]/energy3 + SandiaCof[3]/energy4; + } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4PhotoElectricEffect::ComputeMeanFreePath(G4double GammaEnergy, + G4Material* aMaterial) + +// returns the gamma mean free path in GEANT4 internal units +{ + G4double* SandiaCof = aMaterial->GetSandiaTable() + ->GetSandiaCofForMaterial(GammaEnergy); + + G4double energy2 = GammaEnergy*GammaEnergy, energy3 = GammaEnergy*energy2, + energy4 = energy2*energy2; + + G4double SIGMA = SandiaCof[0]/GammaEnergy + SandiaCof[1]/energy2 + + SandiaCof[2]/energy3 + SandiaCof[3]/energy4; + + return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VParticleChange* G4PhotoElectricEffect::PostStepDoIt(const G4Track& aTrack, @@ -271,11 +152,19 @@ G4VParticleChange* G4PhotoElectricEffect::PostStepDoIt(const G4Track& aTrack, if (ElecKineEnergy > fminimalEnergy) { - // the electron is created in the direction of the incident photon ... + // direction of the photo electron + // + G4double cosTeta = ElecThetaDistribution(ElecKineEnergy); + G4double sinTeta = sqrt(1.-cosTeta*cosTeta); + G4double Phi = twopi * G4UniformRand(); + G4double dirx = sinTeta*cos(Phi),diry = sinTeta*sin(Phi),dirz = cosTeta; + G4ThreeVector ElecDirection(dirx,diry,dirz); + ElecDirection.rotateUz(PhotonDirection); + // G4DynamicParticle* aElectron = new G4DynamicParticle ( - G4Electron::Electron(),PhotonDirection, ElecKineEnergy); + G4Electron::Electron(),ElecDirection, ElecKineEnergy); aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary( aElectron ); + aParticleChange.AddSecondary(aElectron); } else { @@ -306,6 +195,7 @@ G4Element* G4PhotoElectricEffect::SelectRandomAtom( const G4ElementVector* theElementVector = aMaterial->GetElementVector(); if (NumberOfElements == 1) return (*theElementVector)[0]; + G4double GammaEnergy = aDynamicPhoton->GetKineticEnergy(); const G4double* NbOfAtomsPerVolume = aMaterial->GetVecNbOfAtomsPerVolume(); G4double PartialSumSigma = 0. ; @@ -313,8 +203,8 @@ G4Element* G4PhotoElectricEffect::SelectRandomAtom( for ( G4int elm=0 ; elm < NumberOfElements ; elm++ ) {PartialSumSigma += NbOfAtomsPerVolume[elm] * - GetCrossSectionPerAtom(aDynamicPhoton, - (*theElementVector)[elm]); + ComputeCrossSectionPerAtom(GammaEnergy, + (*theElementVector)[elm]->GetZ()); if (rval<=PartialSumSigma*MeanFreePath) return ((*theElementVector)[elm]); } return ((*theElementVector)[NumberOfElements-1]); @@ -322,90 +212,37 @@ G4Element* G4PhotoElectricEffect::SelectRandomAtom( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool G4PhotoElectricEffect::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) +G4double G4PhotoElectricEffect::ElecThetaDistribution(G4double kineEnergy) { - G4String filename; - - // store cross section table - filename = GetPhysicsTableFileName(particle,directory,"CrossSection",ascii); - if ( !theCrossSectionTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theCrossSectionTable->StorePhysicsTable in " << filename - << G4endl; - return false; - } - - // store mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - if ( !theMeanFreePathTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theMeanFreePathTable->StorePhysicsTable in " << filename - << G4endl; - return false; - } + // Compute Theta distribution of the emitted electron, with respect to the + // incident Gamma. + // The Sauter-Gavrila distribution for the K-shell is used. + // + G4double gamma = 1. + kineEnergy/electron_mass_c2; + G4double beta = sqrt(gamma*gamma-1.)/gamma; + G4double b = 0.5*gamma*(gamma-1.)*(gamma-2); + + G4double rndm,costeta,term,greject,grejsup; + if (gamma < 2.) grejsup = gamma*gamma*(1.+b-beta*b); + else grejsup = gamma*gamma*(1.+b+beta*b); - G4cout << GetProcessName() << " for " << particle->GetParticleName() - << ": Success to store the PhysicsTables in " - << directory << G4endl; - return true; -} + do { rndm = 1.-2*G4UniformRand(); + costeta = (rndm+beta)/(rndm*beta+1.); + term = 1.-beta*costeta; + greject = (1.-costeta*costeta)*(1.+b*term)/(term*term); + } while(greject < G4UniformRand()*grejsup); + + return costeta; + +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool G4PhotoElectricEffect::RetrievePhysicsTable( - G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - // delete theCrossSectionTable and theMeanFreePathTable - if (theCrossSectionTable != 0) { - theCrossSectionTable->clearAndDestroy(); - delete theCrossSectionTable; - } - if (theMeanFreePathTable != 0) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - - G4String filename; - - // retreive cross section table - filename = GetPhysicsTableFileName(particle,directory,"CrossSection",ascii); - theCrossSectionTable = new G4PhysicsTable(G4Element::GetNumberOfElements()); - if ( !theCrossSectionTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theCrossSectionTable->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theMeanFreePathTable = new G4PhysicsTable(G4Material::GetNumberOfMaterials()); - if ( !theMeanFreePathTable->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 G4PhotoElectricEffect::PrintInfoDefinition() { - G4String comments = "Total cross sections from a parametrisation. "; - comments += "Good description from 10 KeV to 50 MeV for all Z"; - comments += "\n Sandia crossSection below 50 KeV"; + G4String comments = "Total cross sections from Sandia parametrisation. "; - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " - << G4BestUnit(LowestEnergyLimit, "Energy") - << " to " << G4BestUnit(HighestEnergyLimit,"Energy") - << " in " << NumbBinTable << " bins. \n"; + G4cout << G4endl << GetProcessName() << ": " << comments << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc index 4d9f95e064..f153a6f9e6 100644 --- a/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolarizedComptonScattering.cc,v 1.8 2001/09/21 09:50:54 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PolarizedComptonScattering.cc,v 1.9 2002/04/09 17:34:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //---------- G4PolarizedComptonScattering physics process ---------------------- diff --git a/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc b/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc index 5229f86023..97b273af5f 100644 --- a/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc +++ b/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SynchrotronRadiation.cc,v 1.6 2001/10/24 16:27:45 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SynchrotronRadiation.cc,v 1.7 2002/04/09 17:34:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc index 3772a7cf1b..237956c53c 100644 --- a/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPAIenergyLoss.cc,v 1.5 2001/10/29 16:23:41 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VPAIenergyLoss.cc,v 1.6 2002/04/09 17:34:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc index f9d1f0d676..3445b9d7f4 100644 --- a/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VeEnergyLoss.cc,v 1.22 2001/11/12 11:20:51 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VeEnergyLoss.cc,v 1.25 2002/04/09 17:34:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------------------------- @@ -40,6 +40,8 @@ // 17-09-01, migration of Materials to pure STL (mma) // 29-10-01 all static functions no more inlined (mma) // 08-11-01 Charge,lastCharge not data members, L.Urban +// 06-02-02 bug fixed in MinDeltaCutInRange computation, L.Urban +// 26-02-02 bug fixed in TouchebleHandle definition, V.Ivanchenko // ----------------------------------------------------------------------------- @@ -380,7 +382,7 @@ void G4VeEnergyLoss::BuildDEDXTable( // set default MinDeltaCutInRange to rcut/10. if(!setMinDeltaCutInRange ) MinDeltaCutInRange = (G4Electron::Electron() - ->GetEnergyCuts())[mat]/10.; + ->GetLengthCuts())[mat]/10.; LowerLimitForced[mat] = false ; MinDeltaEnergy[mat] = G4EnergyLossTables::GetPreciseEnergyFromRange( @@ -395,7 +397,7 @@ void G4VeEnergyLoss::BuildDEDXTable( // if((subSecFlag) && (&aParticleType==G4Electron::Electron())) // { -// G4cout << G4std::setw(20) << (*theMaterialTable)(mat)->GetName() +// G4cout << G4std::setw(20) << (*theMaterialTable)[mat]->GetName() // << G4std::setw(15) << MinDeltaEnergy[mat]/keV ; // if(LowerLimitForced[mat]) // G4cout << " lower limit forced." << G4endl; @@ -646,7 +648,7 @@ G4VParticleChange* G4VeEnergyLoss::AlongStepDoIt( const G4Track& trackData, G4Track* deltaTrack = new G4Track(theDelta,DeltaTime,DeltaPosition); - deltaTrack->SetTouchableHandle(stepData.GetPostStepPoint() + deltaTrack->SetTouchableHandle(stepData.GetPreStepPoint() ->GetTouchableHandle()); deltaTrack->SetParentID(trackData.GetTrackID()) ; diff --git a/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc index 8e20017926..f87b87e401 100644 --- a/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VhEnergyLoss.cc,v 1.29 2001/11/12 11:20:51 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VhEnergyLoss.cc,v 1.35 2002/06/10 15:38:14 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------------------------- @@ -48,6 +48,10 @@ // 29-10-01 all static functions no more inlined (mma) // 08-11-01 BuildDEDXTable not static,Charge local variable, L.Urban // 09-11-01 cosmetics; 80 columns everywhere (mma) +// 06-02-02 bug fixed in MinDeltaCutInRange computation, L.Urban +// 26-02-02 bug fixed in TouchebleHandle definition, V.Ivanchenko +// 29-05-02 bug fixed in N of subcutoff delta, V.Ivanchenko +// 10-06-02 bug fixed for stopping hadrons, V.Ivanchenko // ----------------------------------------------------------------------------- // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,6 +61,7 @@ #include "G4Poisson.hh" #include "G4Navigator.hh" #include "G4TransportationManager.hh" +#include "G4ProcessManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -288,7 +293,6 @@ void G4VhEnergyLoss::BuildDEDXTable( // reset counter to zero if(Charge >0.) CounterOfpProcess=0; else CounterOfpbarProcess=0; - ParticleMass = aParticleType.GetPDGMass(); if(Charge > 0.) { @@ -391,7 +395,7 @@ void G4VhEnergyLoss::BuildDEDXTable( { // create array for the min. delta cuts in kinetic energy if(!setMinDeltaCutInRange) - MinDeltaCutInRange = (G4Electron::Electron()->GetEnergyCuts())[mat]/10.; + MinDeltaCutInRange = (G4Electron::Electron()->GetLengthCuts())[mat]/10.; MinDeltaEnergy[mat] = G4EnergyLossTables::GetPreciseEnergyFromRange( G4Electron::Electron(),MinDeltaCutInRange, (*theMaterialTable)[mat]); @@ -412,9 +416,9 @@ G4double G4VhEnergyLoss::GetConstraints(const G4DynamicParticle *aParticle, // it calculates dEdx and the range as well.... G4double KineticEnergy = aParticle->GetKineticEnergy(); - G4double massratio=proton_mass_c2/(aParticle->GetDefinition()->GetPDGMass()); + G4double massratio=proton_mass_c2/(aParticle->GetMass()); G4double Tscaled = KineticEnergy*massratio; - G4double Charge = aParticle->GetDefinition()->GetPDGCharge()/eplus; + G4double Charge = aParticle->GetCharge()/eplus; G4double ChargeSquare = Charge*Charge; if (Charge>0.) @@ -461,8 +465,9 @@ G4VParticleChange* G4VhEnergyLoss::AlongStepDoIt( G4int index = aMaterial->GetIndex(); const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); - G4double Charge = aParticle->GetDefinition()->GetPDGCharge()/eplus; + G4double Charge = aParticle->GetCharge()/eplus; G4double ChargeSquare = Charge*Charge; + G4double mass=aParticle->GetMass(); // get the actual (true) Step length from stepData G4double Step = stepData.GetStepLength(); @@ -479,8 +484,7 @@ G4VParticleChange* G4VhEnergyLoss::AlongStepDoIt( { if (Step>linLossLimit*fRangeNow) { - G4double massratio = proton_mass_c2/ - aParticle->GetDefinition()->GetPDGMass(); + G4double massratio = proton_mass_c2/mass; G4double rscaled = fRangeNow*massratio*ChargeSquare; G4double sscaled = Step *massratio*ChargeSquare; @@ -520,7 +524,6 @@ G4VParticleChange* G4VhEnergyLoss::AlongStepDoIt( G4double MinDeltaEnergyNow = MinDeltaEnergy[index] ; G4double Tc=(G4Electron::Electron()->GetEnergyCuts())[index]; - G4double mass=aParticle->GetDefinition()->GetPDGMass(); G4double w=mass+electron_mass_c2 ; G4double ww=2.*mass-MinDeltaEnergyNow ; G4double TmintoProduceDelta=0.5*(sqrt(ww*ww+2.*w*w*MinDeltaEnergyNow/ @@ -597,7 +600,7 @@ G4VParticleChange* G4VhEnergyLoss::AlongStepDoIt( G4double deldedx=cN*aMaterial->GetDensity()* ((E+mass)*(E+mass)*log(Tc/T0)/(E*(E+mass))); G4double delToverTc=1.-T0/Tc ; - G4double N = G4int(deldedx*fragment*delToverTc/(T0*log(Tc/T0))+0.5); + G4int N = G4int(deldedx*fragment*delToverTc/(T0*log(Tc/T0))+0.5); if(N > Ndeltamax) N = Ndeltamax; G4ThreeVector ParticleDirection = aParticle->GetMomentumDirection(); @@ -675,7 +678,7 @@ G4VParticleChange* G4VhEnergyLoss::AlongStepDoIt( G4Track* deltaTrack = new G4Track(theDelta,DeltaTime,DeltaPosition); - deltaTrack->SetTouchableHandle(stepData.GetPostStepPoint() + deltaTrack->SetTouchableHandle(stepData.GetPreStepPoint() ->GetTouchableHandle()); deltaTrack->SetParentID(trackData.GetTrackID()); @@ -711,7 +714,7 @@ G4VParticleChange* G4VhEnergyLoss::AlongStepDoIt( if (finalT <= 0.) { finalT = 0.; - if(aParticle->GetDefinition()->GetParticleName() == "proton") + if(!aParticle->GetDefinition()->GetProcessManager()->GetAtRestProcessVector()->size()) aParticleChange.SetStatusChange(fStopAndKill); else aParticleChange.SetStatusChange(fStopButAlive); } diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc index 6b9c2af27b..c3ce332d9f 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.24 2001/11/09 13:59:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eBremsstrahlung.cc,v 1.25 2002/04/09 17:34:44 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------ G4eBremsstrahlung physics process -------- diff --git a/source/processes/electromagnetic/standard/src/G4eIonisation.cc b/source/processes/electromagnetic/standard/src/G4eIonisation.cc index d8038c9fa5..524392c7d3 100644 --- a/source/processes/electromagnetic/standard/src/G4eIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4eIonisation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eIonisation.cc,v 1.22 2001/11/09 13:59:47 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eIonisation.cc,v 1.25 2002/04/09 17:34:44 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------- G4eIonisation physics process -------------------------------- // by Laszlo Urban, 20 March 1997 @@ -40,6 +40,7 @@ // 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) //------------------------------------------------------------------------------ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,7 +60,7 @@ G4int G4eIonisation::NbinLambda = 100; G4eIonisation::G4eIonisation(const G4String& processName) : G4VeEnergyLoss(processName), theMeanFreePathTable(NULL) -{ } +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -143,9 +144,22 @@ void G4eIonisation::BuildLossTable(const G4ParticleDefinition& aParticleType) if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} theLossTable = new G4PhysicsTable(numOfMaterials); + + + // get electron cuts in kinetic energy + // The electron cuts needed in the case of the positron , too! + // This is the reason why SetCut has to be called for electron first !! + + if((G4Electron::Electron()->GetEnergyCuts() == 0) && + (&aParticleType == G4Positron::Positron())) + { + G4cout << " The ELECTRON energy cuts needed to compute energy loss" + " and mean free path; and for POSITRON, too. " << G4endl; + G4Exception(" Call SetCut for e- first !!"); + } // get DeltaCut in energy - G4double* DeltaCutInKineticEnergy = aParticleType.GetEnergyCuts(); + G4double* DeltaCutInKineticEnergy = G4Electron::Electron()->GetEnergyCuts(); // loop for materials // @@ -166,6 +180,12 @@ void G4eIonisation::BuildLossTable(const G4ParticleDefinition& aParticleType) aVector->GetLowEdgeEnergy(i), material, DeltaThreshold); + if(1 < verboseLevel) { + G4cout << "Material= " << material->GetName() + << " E(MeV)= " << aVector->GetLowEdgeEnergy(i)/MeV + << " dEdx(MeV/mm)= " << dEdx*mm/MeV + << G4endl; + } aVector->PutValue(i,dEdx); } theLossTable->insert(aVector); @@ -201,7 +221,7 @@ void G4eIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) G4Exception(" Call SetCut for e- first !!"); } - G4double* DeltaCutInKineticEnergy = G4Electron::Electron()->GetEnergyCuts() ; + G4double* DeltaCutInKineticEnergy = G4Electron::Electron()->GetEnergyCuts(); // loop for materials @@ -223,7 +243,7 @@ void G4eIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) // it will be used in ComputeCrossSectionPerAtom // (--> it will be the same for all the elements in this material ) G4double DeltaThreshold = DeltaCutInKineticEnergy[J]; - + for (G4int i = 0 ; i < NbinLambda ; i++) { G4double LowEdgeEnergy = aVector->GetLowEdgeEnergy(i); diff --git a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc index a2a3732571..dc1bb71ae7 100644 --- a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc +++ b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eplusAnnihilation.cc,v 1.13 2001/10/01 15:00:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4eplusAnnihilation.cc,v 1.14 2002/04/09 17:34:44 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4hIonisation.cc b/source/processes/electromagnetic/standard/src/G4hIonisation.cc index 8725568f59..30ae7a5899 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.23 2001/11/09 13:59:47 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4hIonisation.cc,v 1.30 2002/06/10 15:50:46 vnivanch Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //---------------- G4hIonisation physics process ------------------------------- // by Laszlo Urban, 30 May 1997 @@ -46,6 +46,9 @@ // 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) +// 10-06-02 bug fixed for stopping hadrons, V.Ivanchenko // //------------------------------------------------------------------------------ @@ -53,7 +56,9 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4hIonisation.hh" +#include "G4ProcessManager.hh" #include "G4UnitsTable.hh" +#include "G4EnergyLossTables.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -112,10 +117,51 @@ G4int G4hIonisation::GetNbinLambda() void G4hIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) // just call BuildLossTable+BuildLambdaTable { + + if(verboseLevel > 0) { + G4cout << "G4hIonisation::BuildPhysicsTable for " + << aParticleType.GetParticleName() + << " mass(MeV)= " << aParticleType.GetPDGMass()/MeV + << " charge= " << aParticleType.GetPDGCharge()/eplus + << " type= " << aParticleType.GetParticleType() + << 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 + << G4endl; + } + } + + if(aParticleType.GetParticleType() == "nucleus" && + aParticleType.GetParticleName() != "GenericIon" && + theMeanFreePathTable) { + + G4EnergyLossTables::Register(&aParticleType, + theDEDXpTable, + theRangepTable, + theInverseRangepTable, + theLabTimepTable, + theProperTimepTable, + LowestKineticEnergy, HighestKineticEnergy, + proton_mass_c2/aParticleType.GetPDGMass(), + TotBin); + + return; + } + + // get bining from EnergyLoss LowestKineticEnergy = GetLowerBoundEloss(); HighestKineticEnergy = GetUpperBoundEloss(); TotBin = GetNbinEloss(); + const G4ParticleDefinition* theProton = G4Proton::Proton(); G4double* ElectronCutInRange = G4Electron::Electron()->GetLengthCuts(); @@ -124,7 +170,7 @@ void G4hIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) if( !EqualCutVectors(ptableElectronCutInRange,ElectronCutInRange) || (theDEDXpTable == NULL)) { - BuildLossTable(aParticleType); + BuildLossTable(*theProton); RecorderOfpProcess[CounterOfpProcess] = theLossTable; CounterOfpProcess++; } @@ -134,7 +180,7 @@ void G4hIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) if( !EqualCutVectors(pbartableElectronCutInRange,ElectronCutInRange) || (theDEDXpbarTable == NULL)) { - BuildLossTable(aParticleType) ; + BuildLossTable(*(G4AntiProton::AntiProton())) ; RecorderOfpbarProcess[CounterOfpbarProcess] = theLossTable; CounterOfpbarProcess++; } @@ -144,7 +190,15 @@ void G4hIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) BuildDEDXTable(aParticleType); - if (&aParticleType == G4Proton::Proton()) PrintInfoDefinition(); + if(2 < verboseLevel) { + G4cout << "MeanFreePathTable is built for " + << aParticleType.GetParticleName() << G4endl; + G4cout << (*theMeanFreePathTable) << G4endl; + } + + + if (&aParticleType == theProton) PrintInfoDefinition(); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -198,6 +252,12 @@ void G4hIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) { // Build mean free path tables for the delta ray production process // tables are built for MATERIALS + + if(0 < verboseLevel) { + G4cout << "G4hIonisation::BuildLambdaTable() for process " + << GetProcessName() << " and particle " + << aParticleType.GetParticleName() << G4endl; + } //create table // @@ -211,7 +271,7 @@ void G4hIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) theMeanFreePathTable = new G4PhysicsTable(numOfMaterials); // get electron cut in kinetic energy - G4double* DeltaCutInKinEnergy = (G4Electron::Electron())->GetEnergyCuts() ; + G4double* DeltaCutInKinEnergy = (G4Electron::Electron())->GetEnergyCuts(); // loop for materials @@ -232,6 +292,16 @@ void G4hIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) // it will be used in ComputeCrossSectionPerAtom // ( --> it will be the same for all the elements in this material) G4double DeltaThreshold =G4std::max(DeltaCutInKinEnergy[J],Tmincut); + + if(1 < verboseLevel) { + G4cout << "### For material " << material->GetName() + << " Tcut(MeV)= " << DeltaThreshold/MeV + << " Tmin(MeV)= " << LowerBoundLambda/MeV + << " Tmax(MeV)= " << UpperBoundLambda/MeV + << " nbins= " << NbinLambda + << G4endl; + } + for ( G4int i = 0 ; i < NbinLambda ; i++ ) { @@ -265,9 +335,7 @@ G4double G4hIonisation::ComputeRestrictedMeandEdx ( // calculate the dE/dx due to the ionization process (Geant4 internal units) // Bethe-Bloch formula // - G4double particleMass = aParticleType.GetPDGMass(); - G4double particleZ = aParticleType.GetPDGCharge()/eplus; - G4double zsquare = particleZ*particleZ; + G4double particleMass = proton_mass_c2; G4double ElectronDensity = material->GetElectronDensity(); G4double Eexc = material->GetIonisation()->GetMeanExcitationEnergy(); @@ -319,7 +387,7 @@ G4double G4hIonisation::ComputeRestrictedMeandEdx ( // now you can compute the total ionization loss dEdx -= (delta + sh); - dEdx *= twopi_mc2_rcl2*ElectronDensity*zsquare/beta2; + dEdx *= twopi_mc2_rcl2*ElectronDensity/beta2; if (dEdx < 0.) dEdx = 0.; } // @@ -353,7 +421,7 @@ G4double G4hIonisation::ComputeRestrictedMeandEdx ( if (aParticleType.GetPDGSpin() == 0.5) deltaloss += 0.25*(Tmax-DeltaThreshold)*(Tmax-DeltaThreshold)/ (KineticEnergy*KineticEnergy+proton_mass_c2*proton_mass_c2); - deltaloss *= twopi_mc2_rcl2*ElectronDensity*zsquare/beta2; + deltaloss *= twopi_mc2_rcl2*ElectronDensity/beta2; } dEdx -= deltaloss; if (dEdx < 0.) dEdx = 0.; @@ -374,9 +442,8 @@ G4double G4hIonisation::ComputeCrossSectionPerAtom( // // nb: cross section formula is OK for spin=0 and 1/2 only ! - G4double particleMass = aParticleType.GetPDGMass(); - G4double particleZ = aParticleType.GetPDGCharge()/eplus; - G4double zparticle2 = particleZ*particleZ; + initialMass = aParticleType.GetPDGMass(); + G4double particleMass = initialMass; G4double TotalEnergy = KineticEnergy + particleMass; @@ -405,7 +472,7 @@ G4double G4hIonisation::ComputeCrossSectionPerAtom( betasquare / (MaxKineticEnergyTransfer * DeltaThreshold)) / 3.0; - TotalCrossSection *= twopi_mc2_rcl2*AtomicNumber*zparticle2/betasquare; + TotalCrossSection *= twopi_mc2_rcl2*AtomicNumber/betasquare; } return TotalCrossSection; } @@ -420,7 +487,7 @@ G4VParticleChange* G4hIonisation::PostStepDoIt(const G4Track& trackData, G4Material* aMaterial = trackData.GetMaterial(); const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); - G4double particleMass = aParticle->GetDefinition()->GetPDGMass(); + G4double particleMass = aParticle->GetMass(); G4double KineticEnergy = aParticle->GetKineticEnergy(); G4double TotalEnergy = KineticEnergy + particleMass; G4double Psquare = KineticEnergy*(TotalEnergy+particleMass); @@ -511,7 +578,7 @@ G4VParticleChange* G4hIonisation::PostStepDoIt(const G4Track& trackData, { Edep = finalKineticEnergy; finalKineticEnergy = 0.; - if (aParticle->GetDefinition()->GetParticleName() == "proton") + if (!aParticle->GetDefinition()->GetProcessManager()->GetAtRestProcessVector()->size()) aParticleChange.SetStatusChange(fStopAndKill); else aParticleChange.SetStatusChange(fStopButAlive); } diff --git a/source/processes/electromagnetic/utils/History b/source/processes/electromagnetic/utils/History index d8aa6e15b5..39c46a5dca 100644 --- a/source/processes/electromagnetic/utils/History +++ b/source/processes/electromagnetic/utils/History @@ -1,4 +1,4 @@ -$Id: History,v 1.38 2001/11/08 15:56:51 maire Exp $ +$Id: History,v 1.52 2002/06/11 12:57:55 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,7 +16,47 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +11 jun 02: Laszlo (utils-V04-00-08) +- important bug fixed in G4MultipleScattering.cc + ComputeTransportCrossSection. The bug affected the scattering + for all the low energy ( <~ few hundred MeV) heavy particles. +24 may 02: Laszlo (utils-V04-00-07) +- G4MultipleScattering.hh,.cc: mods in angle distribution and + in boundary algorithm + +06 may 02: Laszlo (utils-V04-00-06) +- G4MultipleScattering.cc :bug fixed in GetContinuousStepLimit + +24 apr 02: Laszlo (utils-V04-00-05) +- G4MultipleScattering.hh,.cc have been committed: + some minor changes in boundary algorithm to improve the backscattering. + +22 apr 02: Laszlo (utils-V04-00-04) +- G4MultipleScattering.hh,.cc have been committed: + boundary algorithm has been modified resulting improvement ~10% + in the performance (with the same physics). + +17 apr 02: Laszlo (utils-V04-00-03) +- G4MultipleScattering.hh,.cc have been committed: + new parametrisation for angle distribution. + boundary algorithm has been modified + some other (minor) changes. + +26 feb 02: mma (utils-V04-00-02) +- initial value of data member of G4VEnergyLoss finalRange = 1 mm + (actual value of this data member is computed in + G4VeEnergyLoss,G4VhEnergyLoss and G4VMuEnergyLoss.) + +14 feb 02: L.Urban (utils-V04-00-01) +- initial value of data member of G4VEnergyLoss finalRange + has been changed + (actual value of this data member is computed in + G4VeEnergyLoss,G4VhEnergyLoss and G4VMuEnergyLoss..) + +11 feb 02: mma (utils-V04-00-00) +- subSecFlag = false --> No sucutoff generation + 08 nov 01: mma (utils-V03-02-11) - G4VEnergyLoss: some data members and functions are no more static diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh index 08b47dfebb..61b866c5cf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class Description: diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh index af19ee9a09..4a7f43d5a7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh b/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh index a9b5b06aaa..a201cc6c63 100644 --- a/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh +++ b/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh @@ -20,22 +20,26 @@ // * 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.5 2001/09/19 13:16:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ -// //------------- G4MultipleScattering physics process -------------------------- -// by Laszlo Urban, March 2001 +// by Laszlo Urban, March 2001 // -// 07-08-01 new methods Store/Retrieve PhysicsTable +// 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 -// +// 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-04-02 some minor changes in boundary algorithm, L.Urban +// 24-05-02 changes in data members, L.Urban +// //------------------------------------------------------------------------------ // class description @@ -54,6 +58,7 @@ #include "G4EnergyLossTables.hh" #include "G4GPILSelection.hh" #include "G4PhysicsLogVector.hh" +#include "G4VPhysicalVolume.hh" #include "G4ParticleChangeForMSC.hh" #include "G4UnitsTable.hh" @@ -138,27 +143,25 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess // This function overloads a virtual function of the base class. // It is invoked by the ProcessManager of the Particle. - // Set functions for the different model parameters: - void Setpalfa(G4double value) {palfa = value;}; - void Setpbeta(G4double value) {pbeta = value;}; - void Setpgamma(G4double value) {pgamma = value;}; - void Setpq0(G4double value) {pq0 = value;}; - void Setpq1(G4double value) {pq1 = value;}; - void Setpc0(G4double value) {pc0 = value;}; - // angle distribution parameters - 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 SetFactlim(G4double val) {factlim=val;}; + void SetBoundary(G4bool value) {boundary = value;}; + void SetFacrange(G4double val) {facrange=val; + nsmallstep = G4int(1./facrange) ; + G4cout << " f=" << facrange + << " n=" << 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;}; @@ -188,16 +191,14 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess G4PhysicsTable* theTransportMeanFreePathTable; - G4double fTransportMeanFreePath; + G4double fTransportMeanFreePath,kappa; - G4double biglambda,taubig,tausmall,taulim; + G4double taubig,tausmall,taulim; G4double LowestKineticEnergy; G4double HighestKineticEnergy; G4int TotBin; - G4Material* lastMaterial; - G4double lastKineticEnergy; G4int materialIndex; G4double tLast; @@ -205,20 +206,19 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess // model parameters G4bool boundary; // spec. handling near boundaries - G4double factlim; + G4double facrange,tlimit; + G4int stepno,stepnolastmsc,nsmallstep ; G4GPILSelection valueGPILSelectionMSC; G4double pcz,zmean; // z(geom.step length) // distribution - G4double palfa,pbeta,pgamma,pq0,pq1,pc0; // parameters of angle - // disrtibution - 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; diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc b/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc index 2b395919b2..fa27dbef56 100644 --- a/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc +++ b/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc @@ -20,16 +20,15 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4MultipleScattering.icc,v 1.6 2001/09/13 11:00:19 urban Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MultipleScattering.icc,v 1.7 2002/05/24 06:11:24 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //------------ G4MultipleScattering physics process --------------------------- // by Laszlo Urban, March 2001 // // Modified: // -// 18-05-01 V.Ivanchenko Clean up against Linux ANSI compilation +// 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 diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh index 336688372e..dd0952ee08 100644 --- a/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEnergyLoss.hh,v 1.13 2001/11/08 08:09:57 urban Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc index 0c984be4b9..c8fdc175f6 100644 --- a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc +++ b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4EnergyLossMessenger.cc,v 1.4 2001/07/11 10:03:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc index 340f8bf363..67742e934f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // first version created by P.Urban , 06/04/1998 diff --git a/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc b/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc index 3ef31a7b22..05adf23b25 100644 --- a/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc +++ b/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc @@ -20,14 +20,13 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4MultipleScattering.cc,v 1.16 2001/10/31 07:27:25 urban Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4MultipleScattering.cc,v 1.22 2002/06/11 08:06:47 urban Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ----------------------------------------------------------------------------- // 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) @@ -41,12 +40,21 @@ // 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 +// // ----------------------------------------------------------------------------- // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4MultipleScattering.hh" +#include "G4StepStatus.hh" #include "G4Navigator.hh" #include "G4TransportationManager.hh" #include "Randomize.hh" @@ -56,25 +64,23 @@ G4MultipleScattering::G4MultipleScattering(const G4String& processName) : G4VContinuousDiscreteProcess(processName), theTransportMeanFreePathTable(0), - fTransportMeanFreePath (1.e12), - biglambda(1.e10),taubig(10.),tausmall(1.e-12),taulim(1.e-6), + fTransportMeanFreePath (1.e12),kappa(2.5), + taubig(10.),tausmall(1.e-12),taulim(1.e-6), LowestKineticEnergy(0.1*keV), HighestKineticEnergy(100.*TeV), TotBin(100), - lastMaterial(0), - lastKineticEnergy(0.), materialIndex(0), tLast (0.0), zLast (0.0), boundary(true), - factlim(1.00), + facrange(0.199),tlimit(1.e10), + stepno(0),stepnolastmsc(-1000000),nsmallstep(5), valueGPILSelectionMSC(NotCandidateForSelection), pcz(0.17),zmean(0.), - palfa(0.9698),pbeta(0.4138),pgamma(2.0001), - pq0(0.272),pq1(50.14),pc0(4.024), range(1.0),T1(1.0),lambda1(-1.),cth1(1.),z1(1.e10),dtrl(0.15), tuning (1.00), - cparm (1.5), + cparm (0.0), + Tlim(1.e6*MeV), fLatDisplFlag(true), NuclCorrPar (0.0615), FactPar(0.40) @@ -174,108 +180,108 @@ G4double G4MultipleScattering::ComputeTransportCrossSection( const G4double Zdat[15] = { 4., 6.,13.,20.,26.,29.,32.,38.,47., 50.,56.,64.,74.,79.,82. }; - const G4double Tdat[22] = {0.0001*MeV,0.0002*MeV,0.0004*MeV,0.0007*MeV, + 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}; + 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 - const G4double celectron[15][22] = + 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 }, + 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 }, + 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 }, + 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 }, + 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.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.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.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.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.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.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 }, + 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 }, + 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 }, + 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 }, + 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, + {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 }}; - - const G4double cpositron[15][22] = { + 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 }, + 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 }, + 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 }, + 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 }, + 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.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.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.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.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.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.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.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.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.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.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.456,1.412,1.364,1.328,1.307,1.282,1.2026 }}; G4double sigma; @@ -323,7 +329,10 @@ G4double G4MultipleScattering::ComputeTransportCrossSection( } // correct this value using the corrections computed for e+/e- - KineticEnergy *= electron_mass_c2/ParticleMass; + // scaling: mass*beta*gamma does not depend on the kind of particle ! + G4double tau=KineticEnergy/electron_mass_c2 ; + KineticEnergy = sqrt(ParticleMass*ParticleMass+tau*(tau+2.)* + electron_mass_c2*electron_mass_c2)-ParticleMass ; // interpolate in AtomicNumber and beta2 // get bin number in Z @@ -337,9 +346,9 @@ G4double G4MultipleScattering::ComputeTransportCrossSection( G4double ratZ = (AtomicNumber-Z1)/(Z2-Z1); // get bin number in T (beta2) - G4int iT = 21; + G4int iT = 22; while ((iT>=0)&&(Tdat[iT]>=KineticEnergy)) iT -= 1; - if(iT==21) iT = 20; + if(iT==22) iT = 21; if(iT==-1) iT = 0 ; // calculate betasquare values @@ -348,8 +357,14 @@ G4double G4MultipleScattering::ComputeTransportCrossSection( 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 beta2lim = Tlim*(Tlim+2.*electron_mass_c2)/ + ((Tlim+electron_mass_c2)*(Tlim+electron_mass_c2)); - G4double corrfactor = tuning*(1.+cparm)/(1.+cparm*beta2); + G4double corrfactor ; + if(T < Tlim) + corrfactor = tuning*(1.+cparm*beta2lim)/(1.+cparm*beta2); + else + corrfactor = tuning ; G4double c1,c2,cc1,cc2,corr; if (Charge < 0.) @@ -416,44 +431,60 @@ G4double G4MultipleScattering::GetContinuousStepLimit( aParticle = track.GetDynamicParticle(); KineticEnergy = aParticle->GetKineticEnergy(); - if ((lastMaterial != aMaterial) || (lastKineticEnergy != KineticEnergy)) - { - lastKineticEnergy = KineticEnergy ; - materialIndex = aMaterial->GetIndex() ; + fTransportMeanFreePath = (*theTransportMeanFreePathTable) + (materialIndex)->GetValue(KineticEnergy,isOut); - fTransportMeanFreePath = (*theTransportMeanFreePathTable) - (materialIndex)->GetValue(KineticEnergy,isOut); - - lastMaterial = aMaterial; - } + range = G4EnergyLossTables::GetRange(aParticle->GetDefinition(), + KineticEnergy,aMaterial); // special treatment near boundaries ? if (boundary) { // step limitation at boundary ? - if (track.GetCurrentStepNumber() > 1) + stepno = track.GetCurrentStepNumber() ; + if(stepno == 1) { - if((track.GetStep()->GetPreStepPoint()->GetSafety() fTransportMeanFreePath)) - { - tPathLength = factlim*fTransportMeanFreePath ; - valueGPILSelectionMSC = CandidateForSelection; - } - } - } + stepnolastmsc = -1000000 ; + tlimit = 1.e10 ; + } + if(stepno > 1) + { + if(track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) + { + stepnolastmsc = stepno ; + tlimit = facrange*range ; + if(tPathLength > tlimit) + { + tPathLength = tlimit ; + valueGPILSelectionMSC = CandidateForSelection; + } + } + else if(stepno >= stepnolastmsc) + { + if((stepno - stepnolastmsc) < nsmallstep) + { + if(tPathLength > tlimit) + { + tPathLength = tlimit ; + valueGPILSelectionMSC = CandidateForSelection; + } + } + } + } + } + // do the true -> geom transformation lambda1 = -1.; - z1 = 1.e10; + z1 = 1.e10 ; + + tau = tPathLength/fTransportMeanFreePath ; + + if(tau < tausmall) zPathLength = tPathLength; - if (fTransportMeanFreePath > biglambda) zPathLength = tPathLength; else { - range = G4EnergyLossTables::GetRange(aParticle->GetDefinition(), - KineticEnergy,aMaterial); - tau = tPathLength/fTransportMeanFreePath ; - - if (tPathLength/range < dtrl) zmean = fTransportMeanFreePath*(1.-exp(-tau)); + if(tPathLength/range < dtrl) zmean = fTransportMeanFreePath*(1.-exp(-tau)); else { T1 = G4EnergyLossTables::GetPreciseEnergyFromRange( @@ -469,14 +500,16 @@ G4double G4MultipleScattering::GetContinuousStepLimit( if ((pcz > 0.) && (2.*zmean > tPathLength)) { z0 = zmean+pcz*(tPathLength-zmean); - kz = (2.*zmean-tPathLength)/(z0-zmean); - + kz = (2.*zmean-tPathLength)/(z0-zmean)+1.; if (G4UniformRand() < z0/tPathLength) - zPathLength = z0*exp(log(G4UniformRand())/(kz+1.)); + zPathLength = z0*exp(log(G4UniformRand())/kz); else zPathLength = tPathLength-(tPathLength-z0) - *exp(log(1.-G4UniformRand())/(kz+1.)); + *exp(log(1.-G4UniformRand())/kz); + } + else + { + zPathLength = zmean; } - else zPathLength = zmean; } tLast = tPathLength; @@ -495,9 +528,11 @@ G4VParticleChange* G4MultipleScattering::AlongStepDoIt( fParticleChange.Initialize(track); G4double geomPathLength = track.GetStepLength(); + G4double truePathLength; - if (fTransportMeanFreePath > biglambda) truePathLength = geomPathLength; + if (geomPathLength/fTransportMeanFreePath < tausmall) + truePathLength = geomPathLength; else if(geomPathLength == zLast) truePathLength = tLast; else { @@ -531,12 +566,11 @@ G4VParticleChange* G4MultipleScattering::PostStepDoIt( const G4Track& trackData, const G4Step& stepData) { - const G4double kappa = 2.5, kappapl1 = kappa+1., kappami1 = kappa-1. ; - + // 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(); @@ -546,41 +580,87 @@ G4VParticleChange* G4MultipleScattering::PostStepDoIt( (materialIndex)->GetValue(KineticEnergy,isOut); // change direction first ( scattering ) - G4double tau = truestep/fTransportMeanFreePath; - G4double cth; + G4double cth,tau; + tau = truestep/fTransportMeanFreePath; - if (tau < tausmall) cth = 1.; - else if(tau > taubig) cth = -1.+2.*G4UniformRand(); + if(KineticEnergy <= 0.) + cth = -1.+2.*G4UniformRand() ; 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 { - if(lambda1 > 0.) tau = 0.5*tLast/lambda1 - +(truestep-0.5*tLast)/fTransportMeanFreePath; - if(tau > taubig) cth = -1.+2.*G4UniformRand(); - else - { - G4double e=exp(-tau); - if (palfa < 0.) cth = e; - else - { - G4double a = exp( palfa*tau), ap1=a+1., am1=a-1., aw1 = 1./a; - G4double w = exp(-pbeta*tau), b = 2.*w/(1.-w), bw1=w; - G4double c = 1.+pc0*tau, cp1=c+1., cm1=c-1.; - G4double gamma1 = pgamma-1.; - G4double w1 = exp(log(cp1)*gamma1), w2=exp(log(cm1)*gamma1); - G4double cw1 = c-gamma1*(w1*cm1-w2*cp1)/((gamma1-1.)*(w1-w2)); - G4double q = 1.-exp(-pq0-pq1*tau); - G4double prob = (e-cw1)/(q*aw1+(1.-q)*bw1-cw1); - if (G4UniformRand() <= prob) - { - if (G4UniformRand() <= q) - cth = a-am1*ap1/sqrt(am1*am1+4.*a*G4UniformRand()); - else cth = -1.+2.*exp(log(G4UniformRand())/(b+1.)); - } - else cth = c-cp1*cm1/exp(log(w2+(w1-w2)*G4UniformRand())/gamma1); - } - } - } + const G4double alfa = 0.385 ; + const G4double beta = 0.0626 ; + const G4double c = 2.500 ; + const G4double x2mean3 = 1./3. ; + G4double a,b,c1,bp1,bm1,bbp1,bbm1, + xmean1,x2mean1,xmean2,x2mean2, + x2mean,xmeanth,x2meanth,pp,qq ; + + a = 2.*exp(-alfa*tau)/(1.-exp(-alfa*tau)) ; + + xmean1 = a/(a+2.) ; + x2mean1= (a*a+a+2.)/((a+2.)*(a+3.)) ; + + b = exp((1.+beta)*tau) ; + + c1 = 1.-c ; + bp1=b+1. ; + bm1=b-1. ; + bbp1=exp(log(bp1)*c1) ; + bbm1=exp(log(bm1)*c1) ; + + 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)) ; + + xmeanth = exp(-tau) ; + x2meanth = (1.+2.*exp(-kappa*tau))/3. ; + + 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) ; + + qq = (xmeanth-(1.-pp)*xmean2)/(pp*xmean1) ; + } + + 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) ; + } + + } + } + } + G4double sth = sqrt(1.-cth*cth); G4double phi = twopi*G4UniformRand(); G4double dirx = sth*cos(phi), diry = sth*sin(phi), dirz = cth; diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc index 6a9810494c..d4310ad635 100644 --- a/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc +++ b/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEnergyLoss.cc,v 1.28 2001/11/08 15:56:52 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VEnergyLoss.cc,v 1.32 2002/02/26 12:21:51 maire Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- @@ -36,6 +36,9 @@ // 17-09-01 migration of Materials to pure STL (mma) // 26-10-01 static inline functions moved from .hh file (mma) // 08.11.01 some static methods,data members are not static L.Urban +// 11.02.02 subSecFlag = false --> 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) // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -48,19 +51,19 @@ G4bool G4VEnergyLoss::rndmStepFlag = false; G4bool G4VEnergyLoss::EnlossFlucFlag = true; -G4bool G4VEnergyLoss::subSecFlag = true; -G4double G4VEnergyLoss::MinDeltaCutInRange = 0.100*mm ; -G4double* G4VEnergyLoss::MinDeltaEnergy = NULL ; -G4bool* G4VEnergyLoss::LowerLimitForced = NULL ; -G4bool G4VEnergyLoss::setMinDeltaCutInRange = false ; +G4bool G4VEnergyLoss::subSecFlag = false; +G4double G4VEnergyLoss::MinDeltaCutInRange = 0.100*mm; +G4double* G4VEnergyLoss::MinDeltaEnergy = 0; +G4bool* G4VEnergyLoss::LowerLimitForced = 0; +G4bool G4VEnergyLoss::setMinDeltaCutInRange = false; G4double G4VEnergyLoss::dRoverRange = 20*perCent; -G4double G4VEnergyLoss::finalRange = 200*micrometer; -G4double G4VEnergyLoss::c1lim = dRoverRange ; -G4double G4VEnergyLoss::c2lim = 2.*(1.-dRoverRange)*finalRange ; +G4double G4VEnergyLoss::finalRange = 1*mm; +G4double G4VEnergyLoss::c1lim = dRoverRange; +G4double G4VEnergyLoss::c2lim = 2.*(1.-dRoverRange)*finalRange; G4double G4VEnergyLoss::c3lim = -(1.-dRoverRange)*finalRange*finalRange; -G4EnergyLossMessenger* G4VEnergyLoss::ELossMessenger = NULL; +G4EnergyLossMessenger* G4VEnergyLoss::ELossMessenger = 0; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/xrays/GNUmakefile b/source/processes/electromagnetic/xrays/GNUmakefile index 1b850f003a..247054795b 100644 --- a/source/processes/electromagnetic/xrays/GNUmakefile +++ b/source/processes/electromagnetic/xrays/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2000/10/24 13:55:28 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2002/01/15 16:45:54 grichine Exp $ # -------------------------------------------------------------------- # GNUmakefile for electromagnetic sub-library. John Allison, 25/6/98. # -------------------------------------------------------------------- @@ -15,6 +15,7 @@ CPPFLAGS += \ -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/global/HEPNumerics/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/track/include \ diff --git a/source/processes/electromagnetic/xrays/History b/source/processes/electromagnetic/xrays/History index 01ba04e5cc..e044fd433b 100644 --- a/source/processes/electromagnetic/xrays/History +++ b/source/processes/electromagnetic/xrays/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2001/11/12 10:59:26 maire Exp $ +$Id: History,v 1.15 2002/05/16 21:22:10 gum Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,26 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +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' + +09 may 02: P. Gumplinger (xrays-V04-00-03) +- changed method 'DoIt' in G4Scintillation so that origin of optical photons is + the PostStepPoint location in case energy is lost to the medium by a neutral + particle. + +09 may 02: P. Gumplinger (xrays-V04-00-02) +- changed method 'IsApplicable' for G4Scintillation to return .false. when it + is called for an optical photon. + +28 mar 02: G. Cosmo (xrays-V04-00-01) +- fixed endl/G4endl compilation problem in G4VXTRenergyLoss.cc ... + +22 mar 02: V. Grichine (xrays-V04-00-00) +- new classes (G4VXTRenergyLoss,G4GammaXTRadiator and G4RegularXTRadiator) were + added for the description of X-ray transition radiation as continuous process. 12 nov 01: mma (xrays-V03-02-02) - merge of 00a and 01 diff --git a/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh b/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh index 8a11033aed..3c0cc7a48a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh index 83385455ca..27fe70a10d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4ForwardXrayTR -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh new file mode 100644 index 0000000000..be2bee7fb0 --- /dev/null +++ b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.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: G4GammaXTRadiator.hh,v 1.1 2002/01/22 15:22:53 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +/////////////////////////////////////////////////////////////////////////// +// +// Rough process describing a radiator of X-ray transition radiation. +// Thicknesses of plates and gas gaps are distributed according to gamma +// distribution. x are thicknesses of plates or gas gaps: +// +// p(x) = (alpha/)^alpha * x^(alpha-1) * exp(-alpha*x/) / G(alpha) +// +// G(alpha) is Euler's gamma function. +// Plates have mean = fPlateThick > 0 and power alpha = fAlphaPlate > 0 : +// Gas gaps have mean = fGasThick > 0 and power alpha = fAlphaGas > 0 : +// We suppose that: +// formation zone ~ mean thickness << absorption length +// for each material and in the range 1-100 keV. This allows us to simplify +// interference effects in radiator stack (GetStackFactor method). +// +// +// History: +// 21.01.02 V. Grichine, first version +// + + +#ifndef G4GammaXTRadiator_h +#define G4GammaXTRadiator_h 1 + +#include "G4VXTRenergyLoss.hh" + +class G4GammaXTRadiator : public G4VXTRenergyLoss +{ +public: + + G4GammaXTRadiator (G4LogicalVolume *anEnvelope, + G4double,G4double, + G4Material*,G4Material*, + G4double,G4double,G4int, + const G4String & processName = "XTRgammaRadiator"); + ~G4GammaXTRadiator (); + + // Pure virtual function from base class + + G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + +private: + + G4double fAlphaPlate, fAlphaGas ; +}; + +#endif + + + + + + diff --git a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh new file mode 100644 index 0000000000..0b748a6df0 --- /dev/null +++ b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.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: G4RegularXTRadiator.hh,v 1.2 2002/01/18 17:26:20 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +/////////////////////////////////////////////////////////////////////////// +// +// Process describing a radiator of X-ray transition radiation. +// Thicknesses of plates and gas gaps are fixed. +// We suppose that: +// formation zone ~ mean thickness << absorption length +// for each material and in the range 1-100 keV. This allows us to simplify +// interference effects in radiator stack (GetStackFactor method). +// +// +// History: +// 16.01.02 V. Grichine, first version +// + + +#ifndef G4RegularXTRadiator_h +#define G4RegularXTRadiator_h 1 + +#include "G4VXTRenergyLoss.hh" + +class G4RegularXTRadiator : public G4VXTRenergyLoss +{ +public: + + G4RegularXTRadiator (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, + G4double,G4double,G4int, + const G4String & processName = "XTRegularRadiator"); + ~G4RegularXTRadiator (); + + // Pure virtual function from base class + + G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); +}; + +#endif diff --git a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh index 50a573782e..865cf4fb30 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.5 2001/07/11 10:03:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Scintillation.hh,v 1.8 2002/05/16 21:19:39 gum Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// @@ -34,7 +34,9 @@ // Version: 1.0 // Created: 1998-11-07 // Author: Peter Gumplinger -// Updated: 1999-10-29 add method and class descriptors +// Updated: 2002-05-16 changed to inherit from VRestDiscreteProcess +// 2002-05-09 changed IsApplicable method +// 1999-10-29 add method and class descriptors // // mail: gum@triumf.ca // @@ -53,7 +55,7 @@ #include "G4ThreeVector.hh" #include "G4ParticleMomentum.hh" #include "G4Step.hh" -#include "G4VDiscreteProcess.hh" +#include "G4VRestDiscreteProcess.hh" #include "G4OpticalPhoton.hh" #include "G4DynamicParticle.hh" #include "G4Material.hh" @@ -62,15 +64,15 @@ #include "G4PhysicsOrderedFreeVector.hh" // Class Description: -// Discrete Process - Generation of Scintillation Photons. -// Class inherits publicly from G4VDiscreteProcess. +// RestDiscrete Process - Generation of Scintillation Photons. +// Class inherits publicly from G4VRestDiscreteProcess. // Class Description - End: ///////////////////// // Class Definition ///////////////////// -class G4Scintillation : public G4VDiscreteProcess +class G4Scintillation : public G4VRestDiscreteProcess { private: @@ -99,8 +101,13 @@ public: // Without description public: // With description + // G4Scintillation Process has both PostStepDoIt (for energy + // deposition of particles in flight) and AtRestDoIt (for energy + // given to the medium by particles at rest) + G4bool IsApplicable(const G4ParticleDefinition& aParticleType); - // Returns true -> 'is applicable', for any particle type. + // Returns true -> 'is applicable', for any particle type except + // for an 'opticalphoton' G4double GetMeanFreePath(const G4Track& aTrack, G4double , @@ -109,9 +116,18 @@ public: // With description // but sets the 'Forced' 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. + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep); - // This is the method implementing the scintillation process. + G4VParticleChange* AtRestDoIt (const G4Track& aTrack, + const G4Step& aStep); + + // These are the methods implementing the scintillation process. void SetTrackSecondariesFirst(const G4bool state); // If set, the primary particle tracking is interrupted and any @@ -178,7 +194,11 @@ private: inline G4bool G4Scintillation::IsApplicable(const G4ParticleDefinition& aParticleType) { - return true; + if (aParticleType.GetParticleName() == "opticalphoton"){ + return false; + } else { + return true; + } } inline diff --git a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh index 3b7031a0ae..618a3eb7bc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4TransitionRadiation -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh new file mode 100644 index 0000000000..96d7da8731 --- /dev/null +++ b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.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. * +// ******************************************************************** +// +// +// $Id: G4VXTRenergyLoss.hh,v 1.3 2002/01/18 17:26:21 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +/////////////////////////////////////////////////////////////////////////// +// +// base class for 'fast' parametrisation model describing X-ray transition +// created in some G4Envelope. Anglur distribuiton is very rough !!! (see DoIt +// method +// +// History: +// 15.01.02 V. Grichine first version +// + + +#ifndef G4VXTRenergyLoss_h +#define G4VXTRenergyLoss_h 1 + + +#include "globals.hh" +#include "templates.hh" +#include "g4std/complex" +#include "Randomize.hh" + +#include "G4LogicalVolume.hh" + +#include "G4PhysicsTable.hh" +#include "G4PhysicsLogVector.hh" +#include "G4Gamma.hh" +#include "G4ThreeVector.hh" +#include "G4ParticleMomentum.hh" +#include "G4Step.hh" +#include "G4Track.hh" +#include "G4VContinuousProcess.hh" +#include "G4DynamicParticle.hh" +#include "G4Material.hh" +#include "G4PhysicsTable.hh" +#include "G4MaterialPropertiesTable.hh" +#include "G4PhysicsOrderedFreeVector.hh" +#include "G4Integrator.hh" + + +class G4VXTRenergyLoss : public G4VContinuousProcess +{ +public: + + G4VXTRenergyLoss (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, + G4double,G4double,G4int, + const G4String & processName = "XTRenergyLoss"); + virtual ~G4VXTRenergyLoss (); + + // Pure virtuals must be implemented in inherited particular TR radiators + + virtual G4double GetStackFactor( G4double energy, G4double gamma, + G4double varAngle ) = 0 ; + + + G4bool IsApplicable(const G4ParticleDefinition&); + + G4double GetContinuousStepLimit(const G4Track& aTrack, + G4double , + G4double , + G4double& ); + // Returns the continuous step limit defined by the XTR process. + + G4VParticleChange* AlongStepDoIt(const G4Track& aTrack, + const G4Step& aStep); + + void BuildTable() ; + void BuildEnergyTable() ; + void BuildAngleTable() ; + + G4complex OneInterfaceXTRdEdx( G4double energy, + G4double gamma, + G4double varAngle ) ; + + G4double SpectralAngleXTRdEdx(G4double varAngle) ; + + G4double SpectralXTRdEdx(G4double energy) ; + + G4double AngleSpectralXTRdEdx(G4double energy) ; + + G4double AngleXTRdEdx(G4double varAngle) ; + + + ///////////////////////////////////////////////////////////// + + G4double OneBoundaryXTRNdensity( G4double energy, + G4double gamma, + G4double varAngle ) const ; + + + // for photon energy distribution tables + + G4double XTRNSpectralAngleDensity(G4double varAngle) ; + G4double XTRNSpectralDensity(G4double energy) ; + + // for photon angle distribution tables + + G4double XTRNAngleSpectralDensity(G4double energy) ; + G4double XTRNAngleDensity(G4double varAngle) ; + + void GetNumberOfPhotons() ; + + // Auxiliary functions for plate/gas material parameters + + G4double GetPlateFormationZone(G4double,G4double,G4double) ; + G4complex GetPlateComplexFZ(G4double,G4double,G4double) ; + void ComputePlatePhotoAbsCof() ; + G4double GetPlateLinearPhotoAbs(G4double) ; + void GetPlateZmuProduct() ; + G4double GetPlateZmuProduct(G4double,G4double,G4double) ; + + G4double GetGasFormationZone(G4double,G4double,G4double) ; + G4complex GetGasComplexFZ(G4double,G4double,G4double) ; + void ComputeGasPhotoAbsCof() ; + G4double GetGasLinearPhotoAbs(G4double) ; + void GetGasZmuProduct() ; + G4double GetGasZmuProduct(G4double,G4double,G4double) ; + + G4double GetXTRrandomEnergy( G4double scaledTkin, G4int iTkin ) ; + G4double GetXTRenergy( G4int iPlace, G4double position, G4int iTransfer ) ; + +protected: + + G4Gamma* fPtrGamma ; // pointer to TR photon + + G4double* fGammaCutInKineticEnergy ; // TR photon cut in energy array + G4double fGammaTkinCut ; // Tkin cut of TR photon in current mat. + G4LogicalVolume* fEnvelope ; + G4PhysicsTable* fAngleDistrTable ; + G4PhysicsTable* fEnergyDistrTable ; + + static G4PhysicsLogVector* fProtonEnergyVector ; + + + static G4double fTheMinEnergyTR ; // static min TR energy + static G4double fTheMaxEnergyTR ; // static max TR energy + G4double fMinEnergyTR ; // min TR energy in material + G4double fMaxEnergyTR ; // max TR energy in material + static G4double fTheMaxAngle ; // max theta of TR quanta + static G4double fTheMinAngle ; // max theta of TR quanta + G4double fMaxThetaTR ; // max theta of TR quanta + static G4int fBinTR ; // number of bins in TR vectors + + static G4double fMinProtonTkin ; // min Tkin of proton in tables + static G4double fMaxProtonTkin ; // max Tkin of proton in tables + static G4int fTotBin ; // number of bins in log scale + G4double fGamma ; // current Lorentz factor + G4double fEnergy ; // energy and + G4double fVarAngle ; // angle squared + + static G4double fPlasmaCof ; // physical consts for plasma energy + static G4double fCofTR ; + + G4double fSigma1, fSigma2 ; // plasma energy Sq of matter1/2 + + G4int fMatIndex1, fMatIndex2 ; + + G4int fPlateNumber ; + G4double fTotalDist ; + G4double** fPlatePhotoAbsCof ; + G4int fPlateIntervalNumber ; + G4double fPlateThick ; + + G4double** fGasPhotoAbsCof ; + G4int fGasIntervalNumber ; + G4double fGasThick ; +}; + +#endif diff --git a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc index 8e6dda373e..c5fa790bd8 100644 --- a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc +++ b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Cerenkov.cc,v 1.12 2001/11/07 17:07:40 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Cerenkov.cc,v 1.13 2002/05/16 21:21:14 gum Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // Cerenkov Radiation Class Implementation @@ -181,8 +181,10 @@ G4Cerenkov::AlongStepDoIt(const G4Track& aTrack, const G4Step& aStep) aParticleChange.SetNumberOfSecondaries(NumPhotons); - if (fTrackSecondariesFirst) - aParticleChange.SetStatusChange(fSuspend); + if (fTrackSecondariesFirst) { + if (aTrack.GetTrackStatus() == fAlive ) + aParticleChange.SetStatusChange(fSuspend); + } //////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc index 54255b1dec..ae8ce179e0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4ForwardXrayTR class -- implementation file diff --git a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc new file mode 100644 index 0000000000..f657688f74 --- /dev/null +++ b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc @@ -0,0 +1,120 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4GammaXTRadiator.cc,v 1.1 2002/01/22 15:22:53 grichine Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "g4std/complex" + +#include "G4GammaXTRadiator.hh" +#include "Randomize.hh" + +#include "G4Gamma.hh" + +//////////////////////////////////////////////////////////////////////////// +// +// Constructor, destructor + +G4GammaXTRadiator::G4GammaXTRadiator(G4LogicalVolume* anEnvelope, + G4double alphaPlate, + G4double alphaGas, + G4Material* foilMat,G4Material* gasMat, + G4double a, G4double b, G4int n, + const G4String& processName) : + G4VXTRenergyLoss(anEnvelope,foilMat,gasMat,a,b,n,processName) +{ + G4cout<<"Gammma distributed X-ray TR radiator model is called"< use only the PostStepPoint location for the origin of +// scintillation photons when energy is lost to the medium +// by a neutral particle +// 2000-09-18 by Peter Gumplinger // > change: aSecondaryPosition=x0+rand*aStep.GetDeltaPosition(); // aSecondaryTrack->SetTouchable(0); // 2001-09-17, migration of Materials to pure STL (mma) @@ -62,7 +66,7 @@ ///////////////// G4Scintillation::G4Scintillation(const G4String& processName) - : G4VDiscreteProcess(processName) + : G4VRestDiscreteProcess(processName) { fTrackSecondariesFirst = false; @@ -99,6 +103,19 @@ G4Scintillation::~G4Scintillation() // Methods //////////// +// AtRestDoIt +// ---------- +// +G4VParticleChange* +G4Scintillation::AtRestDoIt(const G4Track& aTrack, const G4Step& aStep) + +// This routine simply calls the equivalent PostStepDoIt since all the +// necessary information resides in aStep.GetTotalEnergyDeposit() + +{ + return G4Scintillation::PostStepDoIt(aTrack, aStep); +} + // PostStepDoIt // ------------- // @@ -113,6 +130,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) { aParticleChange.Initialize(aTrack); + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); const G4Material* aMaterial = aTrack.GetMaterial(); G4StepPoint* pPreStepPoint = aStep.GetPreStepPoint(); @@ -127,12 +145,12 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) G4MaterialPropertiesTable* aMaterialPropertiesTable = aMaterial->GetMaterialPropertiesTable(); if (!aMaterialPropertiesTable) - return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); const G4MaterialPropertyVector* Intensity = aMaterialPropertiesTable->GetProperty("SCINTILLATION"); if (!Intensity) - return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); G4double MeanNumPhotons = ScintillationYield * TotalEnergyDeposit; @@ -145,15 +163,17 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) aParticleChange.SetNumberOfSecondaries(0); - return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); } //////////////////////////////////////////////////////////////// aParticleChange.SetNumberOfSecondaries(NumPhotons); - if (fTrackSecondariesFirst) - aParticleChange.SetStatusChange(fSuspend); + if (fTrackSecondariesFirst) { + if (aTrack.GetTrackStatus() == fAlive ) + aParticleChange.SetStatusChange(fSuspend); + } //////////////////////////////////////////////////////////////// @@ -231,7 +251,13 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) // Generate new G4Track object: - G4double rand = G4UniformRand(); + G4double rand; + + if (aParticle->GetDefinition()->GetPDGCharge() != 0) { + rand = G4UniformRand(); + } else { + rand = 1.0; + } G4double delta = rand * aStep.GetStepLength(); G4double deltaTime = delta / @@ -262,7 +288,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) << aParticleChange.GetNumberOfSecondaries() << G4endl; } - return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); } // BuildThePhysicsTable for the scintillation process @@ -383,3 +409,16 @@ G4double G4Scintillation::GetMeanFreePath(const G4Track& aTrack, return DBL_MAX; } + +// GetMeanLifeTime +// --------------- +// + +G4double G4Scintillation::GetMeanLifeTime(const G4Track& aTrack, + G4ForceCondition* condition) +{ + *condition = Forced; + + return DBL_MAX; + +} diff --git a/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc b/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc index 5d7fe0cbd0..4b27c87b6b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4TransitionRadiation class -- implementation file diff --git a/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc new file mode 100644 index 0000000000..9984f5d69e --- /dev/null +++ b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc @@ -0,0 +1,1057 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VXTRenergyLoss.cc,v 1.5 2002/03/28 07:58:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// + +#include "G4Timer.hh" + +#include "G4VXTRenergyLoss.hh" +#include "Randomize.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "globals.hh" +#include "g4std/complex" + +#include "G4LogicalVolume.hh" + +#include "G4PhysicsTable.hh" +#include "G4PhysicsVector.hh" +#include "G4PhysicsLinearVector.hh" +#include "G4PhysicsLogVector.hh" +#include "G4Integrator.hh" +#include "G4Gamma.hh" + +// Initialization of local constants + +G4double G4VXTRenergyLoss::fTheMinEnergyTR = 1.0*keV ; +G4double G4VXTRenergyLoss::fTheMaxEnergyTR = 100.0*keV ; +G4double G4VXTRenergyLoss::fTheMaxAngle = 1.0e-3 ; +G4double G4VXTRenergyLoss::fTheMinAngle = 5.0e-6 ; +G4int G4VXTRenergyLoss::fBinTR = 50 ; + +G4double G4VXTRenergyLoss::fMinProtonTkin = 100.0*GeV ; +G4double G4VXTRenergyLoss::fMaxProtonTkin = 100.0*TeV ; +G4int G4VXTRenergyLoss::fTotBin = 50 ; +// Proton energy vector initialization + +G4PhysicsLogVector* G4VXTRenergyLoss:: +fProtonEnergyVector = new G4PhysicsLogVector(fMinProtonTkin, + fMaxProtonTkin, + fTotBin ) ; + +G4double G4VXTRenergyLoss::fPlasmaCof = 4.0*pi*fine_structure_const* + hbarc*hbarc*hbarc/electron_mass_c2 ; + +G4double G4VXTRenergyLoss::fCofTR = fine_structure_const/pi ; + + + + + +//////////////////////////////////////////////////////////////////////////// +// +// Constructor, destructor + +G4VXTRenergyLoss::G4VXTRenergyLoss(G4LogicalVolume *anEnvelope, + G4Material* foilMat,G4Material* gasMat, + G4double a, G4double b, + G4int n,const G4String& processName) : + G4VContinuousProcess(processName) +{ + fEnvelope = anEnvelope ; + // fPlateNumber = fEnvelope->GetNoDaughters() ; + fPlateNumber = n ; + G4cout<<"the number of TR radiator plates = "<GetIndex() ; + G4cout<<"plate material = "<GetName()<GetIndex() ; + G4cout<<"gas material = "<GetName()<GetElectronDensity() ; + // fSigma1 = (20.9*eV)*(20.9*eV) ; + G4cout<<"plate plasma energy = "<GetElectronDensity() ; + G4cout<<"gas plasma energy = "< fTheMinEnergyTR) fMinEnergyTR = fGammaTkinCut ; + else fMinEnergyTR = fTheMinEnergyTR ; + + if(fGammaTkinCut > fTheMaxEnergyTR) fMaxEnergyTR = 2.0*fGammaTkinCut ; + else fMaxEnergyTR = fTheMaxEnergyTR ; + + G4cout.precision(4) ; + G4Timer timer ; + timer.Start() ; + + for( iTkin = 0 ; iTkin < fTotBin ; iTkin++ ) // Lorentz factor loop + { + G4PhysicsLogVector* energyVector = new G4PhysicsLogVector( fMinEnergyTR, + fMaxEnergyTR, + fBinTR ) ; + + fGamma = 1.0 + (fProtonEnergyVector-> + GetLowEdgeEnergy(iTkin)/proton_mass_c2) ; + + fMaxThetaTR = 25.0/(fGamma*fGamma) ; // theta^2 + + fTheMinAngle = 1.0e-6 ; // was 5.e-6, e-5, e-4 + + if( fMaxThetaTR > fTheMaxAngle ) fMaxThetaTR = fTheMaxAngle ; + else + { + if( fMaxThetaTR < fTheMinAngle ) fMaxThetaTR = fTheMinAngle ; + } + + G4PhysicsLinearVector* angleVector = new G4PhysicsLinearVector( 0.0, + fMaxThetaTR, + fBinTR ) ; + + G4double energySum = 0.0 ; + G4double angleSum = 0.0 ; + G4Integrator integral ; + energyVector->PutValue(fBinTR-1,energySum) ; + angleVector->PutValue(fBinTR-1,angleSum) ; + + for( iTR = fBinTR - 2 ; iTR >= 0 ; iTR-- ) + { + energySum += radiatorCof*fCofTR*integral.Legendre10( + this,&G4VXTRenergyLoss::SpectralXTRdEdx, + energyVector->GetLowEdgeEnergy(iTR), + energyVector->GetLowEdgeEnergy(iTR+1) ) ; + + // angleSum += fCofTR*integral.Legendre96( + // this,&G4VXTRenergyLoss::AngleXTRdEdx, + // angleVector->GetLowEdgeEnergy(iTR), + // angleVector->GetLowEdgeEnergy(iTR+1) ) ; + + energyVector->PutValue(iTR,energySum/fTotalDist) ; + // angleVector ->PutValue(iTR,angleSum) ; + } + G4cout<GetDefinition()->GetPDGCharge(); + + + // Now we are ready to Generate TR photons + + G4double chargeSq = charge*charge ; + G4double kinEnergy = aParticle->GetKineticEnergy() ; + G4double mass = aParticle->GetDefinition()->GetPDGMass() ; + G4double gamma = 1.0 + kinEnergy/mass ; + + if(verboseLevel > 0 ) + { + G4cout<<"gamma = "<GetPosition(); + G4double startTime = pPreStepPoint->GetGlobalTime(); + + G4ParticleMomentum direction = aParticle->GetMomentumDirection(); + + G4double distance = aStep.GetStepLength() ; + + + for(iTkin=0;iTkinGetLowEdgeEnergy(iTkin)) break ; + } + iPlace = iTkin - 1 ; + + if(iTkin == 0) // Tkin is too small, neglect of TR photon generation + { + if(verboseLevel) + { + G4cout<<"Go out from G4VXTRenergyLoss::AlongStepDoIt:iTkin = "<GetLowEdgeEnergy(iTkin - 1) ; + E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; + W = 1.0/(E2 - E1) ; + W1 = (E2 - TkinScaled)*W ; + W2 = (TkinScaled - E1)*W ; + meanNumOfTR = ( (*(*fEnergyDistrTable)(iPlace ))(0)*W1+ + (*(*fEnergyDistrTable)(iPlace+1))(0)*W2 )*chargeSq*distance ; + + if(verboseLevel > 0 ) + { + G4cout<= 0.1 ) theta = 0.1 ; + + // G4cout<<" : theta = "<GetVelocity()+ + pPostStepPoint->GetVelocity())/2.); + + G4double aSecondaryTime = startTime + deltaTime; + + G4ThreeVector positionTR = startPos + delta*direction ; + + + G4Track* aSecondaryTrack = new G4Track( aPhotonTR, + aSecondaryTime,positionTR ) ; + aSecondaryTrack->SetTouchableHandle(aStep.GetPostStepPoint() + ->GetTouchableHandle()); + aSecondaryTrack->SetParentID(aTrack.GetTrackID()); + + aParticleChange.AddSecondary(aSecondaryTrack); + } + kinEnergy -= sumEnergyTR ; + aParticleChange.SetEnergyChange(kinEnergy) ; + } + } + // return G4VContinuousProcess::AlongStepDoIt(aTrack, aStep); + return &aParticleChange; +} + +/////////////////////////////////////////////////////////////////////// +// +// This function returns the spectral and angle density of TR quanta +// in X-ray energy region generated forward when a relativistic +// charged particle crosses interface between two materials. +// The high energy small theta approximation is applied. +// (matter1 -> matter2, or 2->1) +// varAngle =2* (1 - cos(theta)) or approximately = theta*theta +// + +G4complex G4VXTRenergyLoss::OneInterfaceXTRdEdx( G4double energy, + G4double gamma, + G4double varAngle ) +{ + G4complex Z1 = GetPlateComplexFZ(energy,gamma,varAngle) ; + G4complex Z2 = GetGasComplexFZ(energy,gamma,varAngle) ; + + G4complex zOut = (Z1 - Z2)*(Z1 - Z2) + * (varAngle*energy/hbarc/hbarc) ; + return zOut ; + +} + + +////////////////////////////////////////////////////////////////////////////// +// +// For photon energy distribution tables. Integrate first over angle +// + +G4double G4VXTRenergyLoss::SpectralAngleXTRdEdx(G4double varAngle) +{ + G4double result = GetStackFactor(fEnergy,fGamma,varAngle) ; + if(result < 0.0) result = 0.0 ; + return result ; +} + +///////////////////////////////////////////////////////////////////////// +// +// For second integration over energy + +G4double G4VXTRenergyLoss::SpectralXTRdEdx(G4double energy) +{ + fEnergy = energy ; + G4Integrator integral ; + return integral.Legendre96(this,&G4VXTRenergyLoss::SpectralAngleXTRdEdx, + 0.0,0.3*fMaxThetaTR) + + integral.Legendre96(this,&G4VXTRenergyLoss::SpectralAngleXTRdEdx, + 0.3*fMaxThetaTR,fMaxThetaTR) ; +} + +////////////////////////////////////////////////////////////////////////// +// +// for photon angle distribution tables +// + +G4double G4VXTRenergyLoss::AngleSpectralXTRdEdx(G4double energy) +{ + G4double result = GetStackFactor(energy,fGamma,fVarAngle) ; + if(result < 0) result = 0.0 ; + return result ; +} + +/////////////////////////////////////////////////////////////////////////// +// +// + +G4double G4VXTRenergyLoss::AngleXTRdEdx(G4double varAngle) +{ + fVarAngle = varAngle ; + G4Integrator integral ; + return integral.Legendre10(this,&G4VXTRenergyLoss::AngleSpectralXTRdEdx, + fMinEnergyTR,fMaxEnergyTR) ; +} + + + + + + + + + + + + + + + +////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////// +// +// Calculates formation zone for plates. Omega is energy !!! + +G4double G4VXTRenergyLoss::GetPlateFormationZone( G4double omega , + G4double gamma , + G4double varAngle ) +{ + G4double cof, lambda ; + lambda = 1.0/gamma/gamma + varAngle + fSigma1/omega/omega ; + cof = 2.0*hbarc/omega/lambda ; + return cof ; +} + +////////////////////////////////////////////////////////////////////// +// +// Calculates complex formation zone for plates. Omega is energy !!! + +G4complex G4VXTRenergyLoss::GetPlateComplexFZ( G4double omega , + G4double gamma , + G4double varAngle ) +{ + G4double cof, length,delta, real, image ; + + length = 0.5*GetPlateFormationZone(omega,gamma,varAngle) ; + delta = length*GetPlateLinearPhotoAbs(omega) ; + cof = 1.0/(1.0 + delta*delta) ; + + real = length*cof ; + image = real*delta ; + + G4complex zone(real,image); + return zone ; +} + +//////////////////////////////////////////////////////////////////////// +// +// Computes matrix of Sandia photo absorption cross section coefficients for +// plate material + +void G4VXTRenergyLoss::ComputePlatePhotoAbsCof() +{ + G4int i, j, numberOfElements ; + static const G4MaterialTable* + theMaterialTable = G4Material::GetMaterialTable(); + + G4SandiaTable thisMaterialSandiaTable(fMatIndex1) ; + numberOfElements = (*theMaterialTable)[fMatIndex1]->GetNumberOfElements() ; + G4int* thisMaterialZ = new G4int[numberOfElements] ; + + for(i=0;i + GetElement(i)->GetZ() ; + } + fPlateIntervalNumber = thisMaterialSandiaTable.SandiaIntervals + (thisMaterialZ,numberOfElements) ; + + fPlateIntervalNumber = thisMaterialSandiaTable.SandiaMixing + ( thisMaterialZ , + (*theMaterialTable)[fMatIndex1]->GetFractionVector() , + numberOfElements,fPlateIntervalNumber) ; + + fPlatePhotoAbsCof = new G4double*[fPlateIntervalNumber] ; + + for(i=0;iGetDensity() ; + } + } + delete[] thisMaterialZ ; + return ; +} + +////////////////////////////////////////////////////////////////////// +// +// Returns the value of linear photo absorption coefficient (in reciprocal +// length) for plate for given energy of X-ray photon omega + +G4double G4VXTRenergyLoss::GetPlateLinearPhotoAbs(G4double omega) +{ + G4int i ; + G4double omega2, omega3, omega4 ; + + omega2 = omega*omega ; + omega3 = omega2*omega ; + omega4 = omega2*omega2 ; + + for(i=0;iGetNumberOfElements() ; + G4int* thisMaterialZ = new G4int[numberOfElements] ; + + for(i=0;i + GetElement(i)->GetZ() ; + } + fGasIntervalNumber = thisMaterialSandiaTable.SandiaIntervals + (thisMaterialZ,numberOfElements) ; + + fGasIntervalNumber = thisMaterialSandiaTable.SandiaMixing + ( thisMaterialZ , + (*theMaterialTable)[fMatIndex2]->GetFractionVector() , + numberOfElements,fGasIntervalNumber) ; + + fGasPhotoAbsCof = new G4double*[fGasIntervalNumber] ; + + for(i=0;iGetDensity() ; + } + } + delete[] thisMaterialZ ; + return ; +} + +////////////////////////////////////////////////////////////////////// +// +// Returns the value of linear photo absorption coefficient (in reciprocal +// length) for gas + +G4double G4VXTRenergyLoss::GetGasLinearPhotoAbs(G4double omega) +{ + G4int i ; + G4double omega2, omega3, omega4 ; + + omega2 = omega*omega ; + omega3 = omega2*omega ; + omega4 = omega2*omega2 ; + + for(i=0;i matter2, or 2->1) +// varAngle =2* (1 - cos(theta)) or approximately = theta*theta +// + +G4double +G4VXTRenergyLoss::OneBoundaryXTRNdensity( G4double energy,G4double gamma, + G4double varAngle ) const +{ + G4double formationLength1, formationLength2 ; + formationLength1 = 1.0/ + (1.0/(gamma*gamma) + + fSigma1/(energy*energy) + + varAngle) ; + formationLength2 = 1.0/ + (1.0/(gamma*gamma) + + fSigma2/(energy*energy) + + varAngle) ; + return (varAngle/energy)*(formationLength1 - formationLength2) + *(formationLength1 - formationLength2) ; + +} + + +////////////////////////////////////////////////////////////////////////////// +// +// For photon energy distribution tables. Integrate first over angle +// + +G4double G4VXTRenergyLoss::XTRNSpectralAngleDensity(G4double varAngle) +{ + return OneBoundaryXTRNdensity(fEnergy,fGamma,varAngle)* + GetStackFactor(fEnergy,fGamma,varAngle) ; +} + +///////////////////////////////////////////////////////////////////////// +// +// For second integration over energy + +G4double G4VXTRenergyLoss::XTRNSpectralDensity(G4double energy) +{ + fEnergy = energy ; + G4Integrator integral ; + return integral.Legendre96(this,&G4VXTRenergyLoss::XTRNSpectralAngleDensity, + 0.0,0.2*fMaxThetaTR) + + integral.Legendre10(this,&G4VXTRenergyLoss::XTRNSpectralAngleDensity, + 0.2*fMaxThetaTR,fMaxThetaTR) ; +} + +////////////////////////////////////////////////////////////////////////// +// +// for photon angle distribution tables +// + +G4double G4VXTRenergyLoss::XTRNAngleSpectralDensity(G4double energy) +{ + return OneBoundaryXTRNdensity(energy,fGamma,fVarAngle)* + GetStackFactor(energy,fGamma,fVarAngle) ; +} + +/////////////////////////////////////////////////////////////////////////// +// +// + +G4double G4VXTRenergyLoss::XTRNAngleDensity(G4double varAngle) +{ + fVarAngle = varAngle ; + G4Integrator integral ; + return integral.Legendre96(this,&G4VXTRenergyLoss::XTRNAngleSpectralDensity, + fMinEnergyTR,fMaxEnergyTR) ; +} + +////////////////////////////////////////////////////////////////////////////// +// +// Check number of photons for a range of Lorentz factors from both energy +// and angular tables + +void G4VXTRenergyLoss::GetNumberOfPhotons() +{ + G4int iTkin ; + G4double gamma, numberE ; + + G4std::ofstream outEn("numberE.dat", G4std::ios::out ) ; + outEn.setf( G4std::ios::scientific, G4std::ios::floatfield ); + + G4std::ofstream outAng("numberAng.dat", G4std::ios::out ) ; + outAng.setf( G4std::ios::scientific, G4std::ios::floatfield ); + + for(iTkin=0;iTkin + GetLowEdgeEnergy(iTkin)/proton_mass_c2) ; + numberE = (*(*fEnergyDistrTable)(iTkin))(0) ; + // numberA = (*(*fAngleDistrTable)(iTkin))(0) ; + G4cout<= + ( (*(*fEnergyDistrTable)(iPlace))(iTransfer)*W1 + + (*(*fEnergyDistrTable)(iPlace+1))(iTransfer)*W2) ) break ; + } + transfer = GetXTRenergy(iPlace,position,iTransfer); + + } + // G4cout<<"XTR transfer = "<GetLowEdgeEnergy(iTransfer) ; + } + else + { + y1 = (*(*fEnergyDistrTable)(iPlace))(iTransfer-1) ; + y2 = (*(*fEnergyDistrTable)(iPlace))(iTransfer) ; + + x1 = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer-1) ; + x2 = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer) ; + + if ( x1 == x2 ) result = x2 ; + else + { + if ( y1 == y2 ) result = x1 + (x2 - x1)*G4UniformRand() ; + else + { + result = x1 + (position - y1)*(x2 - x1)/(y2 - y1) ; + } + } + } + return result ; +} + + + +// +// +/////////////////////////////////////////////////////////////////////// + diff --git a/source/processes/hadronic/GNUmakefile b/source/processes/hadronic/GNUmakefile index 4864315297..45d108aa61 100644 --- a/source/processes/hadronic/GNUmakefile +++ b/source/processes/hadronic/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2001/11/16 14:19:15 hpw Exp $ +# $Id: GNUmakefile,v 1.9 2002/06/13 18:01:48 jwellisc Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic processes library. G.Folger 10-Dec-97. # ---------------------------------------------------------------- @@ -30,6 +30,7 @@ SUBDIRS += models/chiral_inv_phase_space/interface SUBDIRS += models/coherent_elastic SUBDIRS += models/cascade/evaporation SUBDIRS += models/cascade/utils +SUBDIRS += models/leading_particle SUBLIBS = G4hadronic_mgt G4hadronic_util G4hadronic_proc SUBLIBS += G4hadronic_xsect G4hadronic_stop @@ -43,6 +44,7 @@ SUBLIBS += G4hadronic_interface_ci SUBLIBS += G4hadronic_coherent_elastic SUBLIBS += G4hadronic_hetcpp_evaporation SUBLIBS += G4hadronic_hetcpp_utils +SUBLIBS += G4hadronic_leading_particle ifndef G4INSTALL G4INSTALL = ../../.. diff --git a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh index 9fafd8f30f..5329fa0291 100644 --- a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4ElectroNuclearCrossSection.hh,v 1.6 2001/11/30 14:58:04 stesting Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ElectroNuclearCrossSection.hh,v 1.7 2002/05/22 11:48:44 mkossov Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT4 physics class: G4ElectroNuclearCrossSection -- header file // M.V. Kossov, ITEP(Moscow), 24-OCT-01 +// The last update: M.V. Kossov, CERN/ITEP (Moscow) 17-May-02 // #ifndef G4ElectroNuclearCrossSection_h @@ -65,32 +66,42 @@ public: } G4double GetCrossSection(const G4DynamicParticle* aParticle, const G4Element* anElement, - G4double temperature=0.); + G4double T=0.); - G4double GetEffectivePhotonEnergy(); + G4double GetEquivalentPhotonEnergy(); + + G4double GetVirtualFactor(G4double nu, G4double Q2); + + G4double GetEquivalentPhotonQ2(G4double nu); void BuildPhysicsTable(const G4ParticleDefinition&) {} void DumpPhysicsTable(const G4ParticleDefinition&) {} private: - G4int GetFunctions(G4double a, G4double* y, G4double* z); - G4double LinearFit(G4double X, G4int N, const G4double* XN, const G4double* YN); + G4int GetFunctions(G4double a, G4double* x, G4double* y, G4double* z); + //G4double LinearFit(G4double X, G4int N, const G4double* XN, const G4double* YN); G4double ThresholdEnergy(G4int Z, G4int N); - G4double HighEnergyPhi(G4double lE); - G4double HighEnergyFun(G4double lE); + G4double HighEnergyJ1(G4double lE); + G4double HighEnergyJ2(G4double lE); + G4double HighEnergyJ3(G4double lE); G4double SolveTheEquation(G4double f); G4double Fun(G4double x); G4double DFun(G4double x); // Body private: + static G4int lastN; // The last N of calculated nucleus + static G4int lastZ; // The last Z of calculated nucleus static G4int lastF; // Last used in the cross section TheFirstBin - static G4double* lastPhi; // Pointer to the last array of the Phi function - static G4double* lastFun; // Pointer to the last array of the Fun function + static G4double* lastJ1; // Pointer to the last array of the J1 function + static G4double* lastJ2; // Pointer to the last array of the J2 function + static G4double* lastJ3; // Pointer to the last array of the J3 function static G4int lastL; // Last used in the cross section TheLastBin - static G4double lastLE; // Last used in the cross section TheLogE + static G4double lastE; // Last used in the cross section Energy + static G4double lastTH; // Last value of the Energy Threshold static G4double lastSig; // Last value of the Cross Section + static G4double lastG; // Last value of gamma=lnE-ln(me) static G4double lastH; // Last value of the High energy A-dependence }; @@ -128,59 +139,68 @@ inline G4double G4ElectroNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) return dN; } -inline G4double G4ElectroNuclearCrossSection::DFun(G4double x) +inline G4double G4ElectroNuclearCrossSection::DFun(G4double x) // Original PhoNuc cross section { - static const G4double f21=.75; - static const G4double f22=.78; - static const G4double f23=.9; - G4double f2=1.; - if (lastH<.005) f2=f21; - else if(lastH<0.01) f2=f22; - else if(lastH<0.07) f2=f23; - return (lastLE-x)*(0.0116*exp(0.16*x)+f2*exp(-0.26*x)); + static const G4double shd=1.0734; // HE PomShadowing(D) + static const G4double poc=0.0375; // HE Pomeron coefficient + static const G4double pos=16.5; // HE Pomeron shift + static const G4double reg=.11; // HE Reggeon slope + static const G4double mel=0.5109989; // Mass of electron in MeV + static const G4double lmel=log(mel); // Log of electron mass + G4double lE=lastG+lmel; + return poc*(lE-pos)+shd*exp(-reg*lE); } -inline G4double G4ElectroNuclearCrossSection::Fun(G4double x) -{return (lastLE*HighEnergyPhi(x)-HighEnergyFun(x));} - -inline G4double G4ElectroNuclearCrossSection::HighEnergyPhi(G4double lEn) +inline G4double G4ElectroNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section { - static const G4double le=log(2000.); - static const G4double c1=0.16; - static const G4double f1=.0116/c1; - static const G4double e1=exp(c1*le); - static const G4double c2=-0.26; - static const G4double f21=.75/c2; - static const G4double f22=.78/c2; - static const G4double f23=.9/c2; - static const G4double f24=1./c2; - static const G4double e2=exp(c2*le); - G4double f2=f24; - if (lastH<.005) f2=f21; - else if(lastH<0.01) f2=f22; - else if(lastH<0.07) f2=f23; - return f1*(exp(c1*lEn)-e1)+f2*(exp(c2*lEn)-e2); + static const G4double mel=0.5109989; // Mass of electron in MeV + static const G4double lmel=log(mel); // Log of electron mass + G4double dlg1=lastG+lastG-1.; + G4double lgoe=lastG/lastE; + G4double lE=lastG+lmel; + G4double HE2=HighEnergyJ2(lE); + return dlg1*HighEnergyJ1(lE)-lgoe*(HE2+HE2-HighEnergyJ3(lE)/lastE); } -inline G4double G4ElectroNuclearCrossSection::HighEnergyFun(G4double lEn) +inline G4double G4ElectroNuclearCrossSection::HighEnergyJ1(G4double lEn) { - static const G4double le=log(2000.); - static const G4double c1=0.16; - static const G4double f1=.0116/c1/c1; - static const G4double e1=(c1*le-1.)*exp(c1*le); - static const G4double c2=-0.26; - static const G4double f21=.75/c2/c2; - static const G4double f22=.78/c2/c2; - static const G4double f23=.9/c2/c2; - static const G4double f24=1./c2/c2; - static const G4double e2=(c2*le-1.)*exp(c2*le); - G4double f2=f24; - if (lastH<.005) f2=f21; - else if(lastH<0.01) f2=f22; - else if(lastH<0.07) f2=f23; - G4double h1=c1*lEn; - G4double h2=c2*lEn; - return f1*((h1-1.)*exp(h1)-e1)+f2*((h2-1.)*exp(h2)-e2); + static const G4double le=log(50000.); // log(E0) + static const G4double le2=le*le; // log(E0)^2 + static const G4double a=.0375; // a + static const G4double ha=a*.5; // a/2 + static const G4double ab=a*16.5; // a*b + static const G4double d=0.11; // d + static const G4double cd=1.0734/d; // c/d + static const G4double ele=exp(-d*le); // E0^(-d) + return ha*(lEn*lEn-le2)-ab*(lEn-le)-cd*(exp(-d*lEn)-ele); +} + +inline G4double G4ElectroNuclearCrossSection::HighEnergyJ2(G4double lEn) +{ + static const G4double e=50000.; // E0 + static const G4double le=log(e); // log(E0) + static const G4double le1=(le-1.)*e; // (log(E0)-1)*E0 + static const G4double a=.0375; // a + static const G4double ab=a*16.5; // a*b + static const G4double d=1.-0.11; // 1-d + static const G4double cd=1.0734/d; // c/(1-d) + static const G4double ele=exp(d*le); // E0^(1-d) + return a*((lEn-1.)*lastE-le1)-ab*(lastE-e)+cd*(exp(d*lEn)-ele); +} + +inline G4double G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn) +{ + static const G4double e=50000.; // E0 + static const G4double le=log(e); // log(E0) + static const G4double e2=e*e; // E0^2 + static const G4double leh=(le-.5)*e2; // (log(E0)-.5)*E0^2 + static const G4double ha=.0375*.5; // a/2 + static const G4double hab=ha*16.5; // a*b/2 + static const G4double d=2.-.11; // 2-d + static const G4double cd=1.0734/d; // c/(2-d) + static const G4double ele=exp(d*le); // E0^(2-d) + G4double lastE2=lastE*lastE; + return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(exp(d*lEn)-ele); } #endif diff --git a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh index b85e5d8677..3b8ba5460c 100644 --- a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh +++ b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh @@ -22,7 +22,7 @@ // // // $Id: G4HadronCrossSections.hh,v 1.7 2001/10/04 20:00:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT4 Hadron physics class -- header file diff --git a/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh index 32a4af2647..1bb3210da2 100644 --- a/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4PhotoNuclearCrossSection.hh,v 1.5 2001/11/26 22:04:34 stesting Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PhotoNuclearCrossSection.hh,v 1.6 2002/05/22 11:48:45 mkossov Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT4 physics class: G4PhotoNuclearCrossSection -- header file -// M.V. Kossov, ITEP(Moscow), 24-OCT-01 +// Created: M.V. Kossov, CERN/ITEP(Moscow), 10-OCT-01 +// The last update: M.V. Kossov, CERN/ITEP (Moscow) 17-May-02 // #ifndef G4PhotoNuclearCrossSection_h @@ -63,7 +64,7 @@ public: } G4double GetCrossSection(const G4DynamicParticle* aParticle, const G4Element* anElement, - G4double temperature=0.); + G4double T=0.); //{ // return theHadronCrossSections->GetInelasticCrossSection(aParticle, // anElement); @@ -74,190 +75,25 @@ public: void DumpPhysicsTable(const G4ParticleDefinition&) {} private: - G4double GetGDRc1(G4int Z, G4int N); - G4double GetGDRp1(G4int Z, G4int N); - G4double GetGDRt1(G4int Z, G4int N); - G4double GetGDRs1(G4int Z, G4int N); - G4double GetGDRc2(G4int Z, G4int N); - G4double GetGDRp2(G4int Z, G4int N); - G4double GetGDRt2(G4int Z, G4int N); - G4double GetGDRs2(G4int Z, G4int N); - G4double GetQDAmp(G4int Z, G4int N); - G4double GetDelAm(G4int Z, G4int N); - G4double GetDelWd(G4int Z, G4int N); - G4double GetDelPs(G4int Z, G4int N); - G4double GetDelTh(G4int Z, G4int N); - G4double GetDelSl(G4int Z, G4int N); - G4double GetRopAm(G4int Z, G4int N); - G4double GetRopWd(G4int Z, G4int N); - G4double GetRopPs(G4int Z, G4int N); - G4double LinearFit(G4double X, G4int N, const G4double* XN, const G4double* YN); + G4int GetFunctions(G4double a, G4double* y, G4double* z); + //G4double LinearFit(G4double X, G4int N, const G4double* XN, const G4double* YN); + G4double EquLinearFit(G4double X, G4int N,const G4double X0,const G4double XD, const G4double* Y); G4double ThresholdEnergy(G4int Z, G4int N); // Body -//private: +private: + static G4int lastN; // The last N of calculated nucleus + static G4int lastZ; // The last Z of calculated nucleus + static G4double lastSig; // Last value of the Cross Section + static G4double* lastGDR; // Pointer to the last array of GDR cross sections + static G4double* lastHEN; // Pointer to the last array of HEn cross sections + static G4double lastE; // Last used in the cross section Energy + static G4double lastTH; // Last value of the Energy Threshold (A-dependent) + static G4double lastSP; // Last value of the ShadowingPomeron (A-dependent) //G4HadronCrossSections* theHadronCrossSections; }; -// Calculate the logAmplitude of the 1-st GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRc1(G4int Z, G4int N) -{ - static const G4int nN=13; - static G4double X[nN]={0.693,1.386,1.792,1.946,2.197,2.485,2.773,3.296,3.689,4.152,4.777,5.334, - 5.472}; - static G4double Y[nN]={4.2,13.9,13.9,13.6,20.5,28.2,28.7,28.5,29.,28.4,28.15,27.8,25.9}; - - return LinearFit(log(G4double(Z+N)), nN, X, Y); -} - -// Calculate the A-power of the 1-st GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRp1(G4int Z, G4int N) -{ - G4double p=8.; - G4int A=Z+N; - if(A<12) p=6.; - if(A< 8) p=4.; - if(A< 4) p=2.; - return p; -} - -// Calculate the Threshold of the 1-st GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRt1(G4int Z, G4int N) -{ - static const G4int nN=13; - static G4double X[nN]={0.693,1.386,1.792,1.946,2.197,2.485,2.773,3.296,3.689,4.152,4.777,5.334, - 5.472}; - static G4double Y[nN]={1.4,3.13,3.08,2.9,3.09,3.09,3.09,3.02,2.98,2.9,2.745,2.585,2.42}; - - return LinearFit(log(G4double(Z+N)), nN, X, Y); -} - -// Calculate the Slope of the 1-st GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRs1(G4int Z, G4int N) -{ - static const G4int nN=13; - static G4double X[nN]={0.693,1.386,1.792,1.946,2.197,2.485,2.773,3.296,3.689,4.152,4.777,5.334, - 5.472}; - static G4double Y[nN]={.12,.12,.12,.12,.06,.03,.03,.06,.05,.065,.06,.059,.061}; - - return LinearFit(log(G4double(Z+N)), nN, X, Y); -} - -// Calculate the logAmplitude of the 2-nd GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRc2(G4int Z, G4int N) -{ - static const G4int nN=13; - static G4double X[nN]={0.693,1.386,1.792,1.946,2.197,2.485,2.773,3.296,3.689,4.152,4.777,5.334, - 5.472}; - static G4double Y[nN]={1.85,7.5,6.3,8.2,12.35,15.8,16.1,16.2,16.8,17.1,16.1,15.5,16.6}; - - return LinearFit(log(G4double(Z+N)), nN, X, Y); -} - -// Calculate the A-power of the 2-nd GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRp2(G4int Z, G4int N) -{ - G4double p=4.; - G4int A=Z+N; - if(A<12) p=3.; - if(A< 8) p=2.; - if(A< 4) p=1.; - return p; -} - -// Calculate the Threshold of the 2-nd GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRt2(G4int Z, G4int N) -{ - static const G4int nN=13; - static G4double X[nN]={0.693,1.386,1.792,1.946,2.197,2.485,2.773,3.296,3.689,4.152,4.777,5.334, - 5.472}; - static G4double Y[nN]={1.4,3.22,3.11,3.39,3.48,3.34,3.46,3.35,3.4,3.22,3.09,3.05,2.6}; - - return LinearFit(log(G4double(Z+N)), nN, X, Y); -} - -// Calculate the Slope of the 2-nd GDR maximum -inline G4double G4PhotoNuclearCrossSection::GetGDRs2(G4int Z, G4int N) -{ - static const G4int nN=13; - static G4double X[nN]={0.693,1.386,1.792,1.946,2.197,2.485,2.773,3.296,3.689,4.152,4.777,5.334, - 5.472}; - static G4double Y[nN]={.12,.094,.09,.088,.14,.082,.079,.074,.071,.065,.061,.058,.05}; - - return LinearFit(log(G4double(Z+N)), nN, X, Y); -} - -// Calculate the Amplitude of the QuasiDeuteron region [exp/(1+exp)] -inline G4double G4PhotoNuclearCrossSection::GetQDAmp(G4int Z, G4int N) -{ - G4double A=Z+N; - G4double lnA=log(A); - return exp(-1.7+lnA*0.84)/(1.+exp(7*(2.38-lnA))); -} - -// Calculate the Amplitude of the Delta Resonance [.41*(Z+N)] -inline G4double G4PhotoNuclearCrossSection::GetDelAm(G4int Z, G4int N) -{ - G4double A=Z+N; - return .41*A; -} - -// Calculate the Width of the Delta Resonance [11.9-ln(A)*1.24] -inline G4double G4PhotoNuclearCrossSection::GetDelWd(G4int Z, G4int N) -{ - G4double A=Z+N; - G4double lnA=log(A); - return 11.9-lnA*1.24; -} - -// Calculate the Position of the Delta Resonance [5.84-.09/(1+.003*A*A)] -inline G4double G4PhotoNuclearCrossSection::GetDelPs(G4int Z, G4int N) -{ - G4double A=Z+N; - return 5.84-.09/(1+.003*A*A); -} - -// Calculate the Threshold of the Delta Resonance [5.13-.00075*A] -inline G4double G4PhotoNuclearCrossSection::GetDelTh(G4int Z, G4int N) -{ - G4double A=Z+N; - return 5.13-0.00075*A; -} - -// Calculate the Threshold of the Delta Resonance [.04->.09] -inline G4double G4PhotoNuclearCrossSection::GetDelSl(G4int Z, G4int N) -{ - G4double A=Z+N; - if(A<7) return .04; - return .09; -} - -// Calculate the Amplitude of the Roper Resonance [-2.+ln(A)*0.84] -inline G4double G4PhotoNuclearCrossSection::GetRopAm(G4int Z, G4int N) -{ - G4double A=Z+N; - G4double lnA=log(A); - return exp(-2.+lnA*0.84); -} - -// Calculate the Width of the Roper Resonance [.1+1.65*ln(A)] -inline G4double G4PhotoNuclearCrossSection::GetRopWd(G4int Z, G4int N) -{ - G4double A=Z+N; - G4double lnA=log(A); - return .1+1.65*lnA; -} - -// Calculate the Position of the Roper Resonance [6.46+.061*ln(A)] -inline G4double G4PhotoNuclearCrossSection::GetRopPs(G4int Z, G4int N) -{ - G4double A=Z+N; - G4double lnA=log(A); - return 6.46+.061*lnA; -} - - // Gives the threshold energy for different nuclei (min of p- and n-threshold) inline G4double G4PhotoNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) { @@ -276,16 +112,26 @@ inline G4double G4PhotoNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0); G4double mT= 0.; if(G4NucleiPropertiesTable::IsInTable(Z,A)) mT=G4NucleiProperties::GetNuclearMass(A,Z); - else return 0.; // If it is not in the Table of Stable Nuclei, then the Threshold=0 + else + { + G4cerr<<"G4PhotoNucCrossSect.hh::ThreshEn:Z="< +#include + +// Implements Physical Review C61, 034607 (2000) +// Rewrite starting from EPAX Version 2 + +class G4ProjectileFragmentCrossSection +{ + public: + G4ProjectileFragmentCrossSection() + { + p_S[1] = -2.38; // scale factor for xsect in barn + p_S[2] = 0.27; + + p_P[1] = -2.5840E+00; // slope of mass yield curve + p_P[2] = -7.5700E-03; + + p_Delta[1] = -1.0870E+00; // centroid rel. to beta-stability + p_Delta[2] = +3.0470E-02; + p_Delta[3] = +2.1353E-04; + p_Delta[4] = +7.1350E+01; + + p_R[1] = +0.885E+00; // width parameter R + p_R[2] = -9.8160E-03; + + p_Un[1] = 1.65; // slope par. n-rich ride of Z distr. + + p_Up[1] = 1.7880; // slope par. p-rich ride of Z distr. + p_Up[2] = +4.7210E-03; + p_Up[3] = -1.3030E-05; + + p_mn[1] = 0.400; // memory effect n-rich projectiles + p_mn[2] = 0.600; + + p_mp[1] = -10.25; // memory effect p-rich projectiles + p_mp[2] = +10.1; + + corr_d[1] = -25.0; // correction close to proj.: centroid dzp + corr_d[2] = 0.800; + corr_r[1] = +20.0; // correction close to proj.: width R + corr_r[2] = 0.820; + corr_y[1] = 200.0; // correction close to proj.: Yield_a + corr_y[2] = 0.90; + } + + inline G4double doit(G4double Ap, G4double Zp, G4double At, G4double Zt, G4double A, G4double Z) + { +// calculate mass yield + G4double Ap13 = pow(Ap, 1./3.); + G4double At13 = pow(At, 1./3.); + G4double S = p_S[2] * (At13 + Ap13 + p_S[1]); +// cout << "debug0 "< corr_y[2]) + { + f_mod_y=corr_y[1]*pow(A/Ap-corr_y[2], 2) + 1.0; + } + yield_a= yield_a * f_mod_y; + cout << "debug1 "< p_Delta[4]) + { + delta = p_Delta[1] + p_Delta[2]*A; + } + else + { + delta = p_Delta[3]*A*A; + } + +// modification close to projectile + G4double f_mod=1.0; + if(A/Ap > corr_d[2]) + { + f_mod = corr_d[1]*pow(A/Ap-corr_d[2], 2) + 1.0; + } + delta = delta*f_mod; + G4double zprob = zbeta+delta; + +// correction for proton- and neutron-rich projectiles + G4double dq; + if((Zp-zbeta_p)>0) + { + dq = exp(p_mp[1] + G4double(A)/G4double(Ap)*p_mp[2]); + cout << "dq "< corr_r[2]) + { + f_mod = corr_r[1]*Ap*pow(A/Ap-corr_r[2], 4.0)+1.0; + } + r = r*f_mod; + +// change width according to dev. from beta-stability + if ((Zp-zbeta_p) < 0.0) + { + r=r*(1.0-0.0833*abs(Zp-zbeta_p)); + } + +// calculate slope parameters u_n, u_p + G4double u_n = p_Un[1]; + G4double u_p = p_Up[1] + p_Up[2]*A + p_Up[3]*A*A; + +// calculate charge dispersion + G4double expo, fract; + if((zprob-Z) > 0) + { +// neutron-rich + expo = -r*pow(abs(zprob-Z), u_n); + fract = exp(expo)*sqrt(r/3.14159); + } + else + { +// proton-rich + expo = -r*pow(abs(zprob-Z), u_p); + fract = exp(expo)*sqrt(r/3.14159); + cout << "1 "<z_exp ) + { + expo = -r*pow(abs(zprob-z_exp), u_p); + fract = exp(expo)*sqrt(r/3.14159) + / pow(pow(10, dfdz), Z-z_exp); + } + } + + cout << "debug "<50000.) + static const G4double mel=0.5109989; // Mass of electron in MeV + static const G4double lmel=log(mel); // Log of electron mass // Associative memory for acceleration - static G4int lastN; // The last N of calculated nucleus - static G4int lastZ; // The last Z of calculated nucleus static G4std::vector colN; // Vector of N for calculated nucleus static G4std::vector colZ; // Vector of Z for calculated nucleus - static G4std::vector colF; // Vector of LastZeroPosition in the phi-function + static G4std::vector colF; // Vector of LastZeroPosition in the J-functions + static G4std::vector colTH; // Vector of energy thresholds static G4std::vector colH; // Vector of high energy coefficient - static G4std::vector Phi; // Vector of pointers to the Phi functions - static G4std::vector Fun; // Vector of pointers to the Fun functions + static G4std::vector J1; // Vector of pointers to the J1 functions + static G4std::vector J2; // Vector of pointers to the J2 functions + static G4std::vector J3; // Vector of pointers to the J3 functions // *** End of Static Definitions (Associative Memory) *** - const G4double Energy = aPart->GetKineticEnergy()/MeV; - const G4double lE=log(Energy); - const G4int targetAtomicNumber = static_cast(anEle->GetN()+.499); //@@ Nat mixture + const G4double Energy = aPart->GetKineticEnergy()/MeV; // Energy of the electron + const G4int targetAtomicNumber = static_cast(anEle->GetN()+.499); //@@ Nat mixture (?!) const G4int targZ = static_cast(anEle->GetZ()); - const G4int targN = targetAtomicNumber-targZ; - if (Energy<=ThresholdEnergy(targZ, targN) || Energy<=lEMi) - { - lastLE=lE; - return 0.; - } + const G4int targN = targetAtomicNumber-targZ; // @@ Get minimum isotop (can change initial A) + if (Energy<=EMi) return 0.; // Energy is below the minimum energy in the table G4int PDG=aPart->GetDefinition()->GetPDGEncoding(); - if( PDG == 11 || PDG == -11) + if( PDG == 11 || PDG == -11) // @@ Now only for electrons, but can be fo muons { - G4double A=targN+targZ; - if(targN!=lastN || targZ!=lastZ) // This nucleus was not the last in use + G4double A=targN+targZ; // New A (can differ from G4double targetAtomicNumber) + if(targN!=lastN || targZ!=lastZ) // This nucleus was not the last used isotop { - lastLE = 0.; + lastE = 0.; // New history in Energy + lastG = 0.; // New history in Energy lastN = targN; // The last N of calculated nucleus lastZ = targZ; // The last Z of calculated nucleus - G4int n=colN.size(); - G4bool in=false; - if(n) for(G4int i=0; i=Xh) return YN[N-1];//-| - G4double Xp=0.; // | - G4int j=0; // | - while (X>Xj && j=Xh) return YN[N-1];//-| +// G4double Xp=0.; // | +// G4int j=0; // | +// while (X>Xj && j=0) + for(G4int i=0; iL[h]) r=L[h]; - G4double xi=A[f]; - G4double xa=A[h]; - G4double b=(a-xi)/(xa-xi); - for(G4int m=0; m=nN) k=nN-1; // Extrapolation from the last bin (U) + G4int k1=k-1; + G4double xi=A[k1]; + G4double b=(a-xi)/(A[k]-xi); + for(G4int m=0; m Make them general. + static const G4int nE=336; // !! If you change this, change it in GetFunctions() (*.hh) !! + static const G4int mL=nE-1; + static const G4double EMi=2.0612; // Minimum Energy + static const G4double EMa=50000.; // Maximum Energy + static const G4double lEMi=log(EMi); // Minimum logarithmic Energy + static const G4double lEMa=log(EMa); // Maximum logarithmic Energy + static const G4double dlnE=(lEMa-lEMi)/mL; // Logarithmic step in Energy + static const G4double mel=0.5109989; // Mass of electron in MeV + static const G4double lmel=log(mel); // Log of electron mass + G4double phLE=0.; // Prototype of the log(nu=E_gamma) + G4double Y[nE]; // Prepare the array for randomization #ifdef debug - G4cout<<"G4ElectroNuclearCrossSection::GetEffectivePhotonEnergy: called B="<"< Y[lastL=mL], then it is in the func. region #ifdef debug - G4cout<<"G4ElectroNuclearCrossSection::GetEffectivePhotonEnergy:r="<"<"< Q2max="<GetKineticEnergy()/MeV; - const G4double lE=log(kinEnergy); - const G4int targetAtomicNumber = static_cast(anEle->GetN()+.499); //@@ Nat mixture + static const G4double THmin=2.; // minimum Energy Threshold + static const G4double dE=1.; // step for the GDR table + static const G4int nL=105; // A#of GDResonance points in E (each MeV from 2 to 106) + static const G4double Emin=THmin+(nL-1)*dE; // minE for the HighE part + static const G4double Emax=50000.; // maxE for the HighE part + static const G4int nH=224; // A#of HResonance points in lnE + static const G4double milE=log(Emin); // Low logarithm energy for the HighE part + static const G4double malE=log(Emax); // High logarithm energy (each 2.75 percent) + static const G4double dlE=(malE-milE)/(nH-1); // Step in logarithm energy in the HighE part + // + //static const G4double shd=1.075-.0023*log(2.); // HE PomShadowing(D) + static const G4double shd=1.0734; // HE PomShadowing(D) + static const G4double shc=0.072; // HE Shadowing constant + static const G4double poc=0.0375; // HE Pomeron coefficient + static const G4double pos=16.5; // HE Pomeron shift + static const G4double reg=.11; // HE Reggeon slope + //static const G4double shp=1.075; // HE PomShadowing(P) + // + // Associative memory for acceleration + static G4std::vector colN; // N of calculated nuclei + static G4std::vector colZ; // Z of calculated nuclei + static G4std::vector spA; // shadowing coefficients (A-dependent) + static G4std::vector eTH; // energy threshold (A-dependent) + static G4std::vector GDR; // Vector of pointers to the GDRPhotonuclearCrossSection + static G4std::vector HEN; // Vector of pointers to the HighEnPhotonuclearCrossSect + // + const G4double Energy = aPart->GetKineticEnergy()/MeV; + const G4int targetAtomicNumber = static_cast(anEle->GetN()+.499); //@@ Nat mixture (?!) const G4int targZ = static_cast(anEle->GetZ()); const G4int targN = targetAtomicNumber-targZ; - if (kinEnergy0.09] - static G4double lastRopAm; // The last Amplitude of the Roper Resonance [-2.+ln(A)*0.84] - static G4double lastRopWd; // The last Width of the Roper Resonance [.1+1.65*ln(A)] - static G4double lastRopPs; // The last Position of the Roper Resonance [6.46+.061*ln(A)] - static G4std::vector colN; // N of calculated nucleus - static G4std::vector colZ; // Z of calculated nucleus - static G4std::vector HighE; // High Energy A-dependence - static G4std::vector GDRc1; // logAmplitude of the 1-st GDR maximum - static G4std::vector GDRp1; // A-power of the 1-st GDR maximum - static G4std::vector GDRt1; // Threshold of the 1-st GDR maximum - static G4std::vector GDRs1; // Slope of the 1-st GDR maximum - static G4std::vector GDRc2; // logAmplitude of the 2-nd GDR maximum - static G4std::vector GDRp2; // A-power of the 2-nd GDR maximum - static G4std::vector GDRt2; // Threshold of the 2-nd GDR maximum - static G4std::vector GDRs2; // Slope of the 2-nd GDR maximum - static G4std::vector QDAmp; // Amplitude of the QuasiDeuteron region [exp/(1+exp)] - static G4std::vector QDWid; // Width of the QuasiDeuteron region [.4] or R(H1,H2) - static G4std::vector QDPos; // Position of the QuasiDeuteron region [3.7] or R(H1,H2) - static G4std::vector DelAm; // Amplitude of the Delta Resonance [.41*(Z+N)] - static G4std::vector DelWd; // Width of the Delta Resonance [11.9-ln(A)*1.24] - static G4std::vector DelPs; // Position of the Delta Resonance [5.84-.09/(1+.003*A2)] - static G4std::vector DelTh; // Threshold of the Delta Resonance [5.13-.00075*A] - static G4std::vector DelSl; // Slope of the Delta Resonance [0.04->0.09] - static G4std::vector RopAm; // Amplitude of the Roper Resonance [-2.+ln(A)*0.84] - static G4std::vector RopWd; // Width of the Roper Resonance [.1+1.65*ln(A)] - static G4std::vector RopPs; // Position of the Roper Resonance [6.46+.061*ln(A)] +#ifdef debug + G4cout<<"G4PhotoNuclearCrossSection::GetCS:N="<GetDefinition()->GetPDGEncoding() == 22 ) { @@ -96,138 +94,1455 @@ G4double G4PhotoNuclearCrossSection::GetCrossSection(const G4DynamicParticle* aP { lastN = targN; // The last N of calculated nucleus lastZ = targZ; // The last Z of calculated nucleus - G4int n=colN.size(); - G4bool in=false; - if(n) for(G4int i=0; i=Xh) return YN[N-1];//-| +// G4double Xp=0.; // | +// G4int j=0; // | +// while (X>Xj && j=Xh) return YN[N-1];//-| - G4double Xp=0.; // | - G4int j=0; // | - while (X>Xj && j=nLA) k=nLA-1; // Extrapolation from the last bin (U) + G4int k1=k-1; + G4double xi=LA[k1]; + G4double b=(a-xi)/(LA[k]-xi); + for(G4int m=0; m1.5) + { + G4double yi=SL[k1][m]; + y[m]=yi+(SL[k][m]-yi)*b; +#ifdef debugs + if(y[m]<0.)G4cout<<"G4PhotNucCS::GetF:y="< #include "G4HadronicProcess.hh" +#include "G4EffectiveCharge.hh" + //@@ add model name info, once typeinfo available #include G4IsoParticleChange * G4HadronicProcess::theIsoResult = NULL; @@ -88,9 +90,22 @@ G4double kineticEnergy = aParticle->GetKineticEnergy(); G4Element * anElement = ChooseAandZ( aParticle, aMaterial ); theInteraction = ChooseHadronicInteraction( kineticEnergy, - aMaterial, anElement ); + aMaterial, anElement ); G4VParticleChange *result = theInteraction->ApplyYourself( aTrack, targetNucleus); + for(G4int i=0; iGetNumberOfSecondaries(); i++) + { + G4Track* aSecTrack = result->GetSecondary(i); + if(aSecTrack->GetDefinition()->GetPDGCharge()>1.5) + { + G4EffectiveCharge aCalculator; + G4double charge = aCalculator.GetCharge(aMaterial, kineticEnergy, + aSecTrack->GetDefinition()->GetPDGMass(), + aSecTrack->GetDefinition()->GetPDGCharge()); + (const_cast(aSecTrack->GetDynamicParticle()))->SetCharge(charge); + } + } + if(getenv("HadronicDoitLogging") ) { G4cout << "HadronicDoitLogging " diff --git a/source/processes/hadronic/management/src/G4InelasticInteraction.cc b/source/processes/hadronic/management/src/G4InelasticInteraction.cc index 3884b18272..0c1bfe040d 100644 --- a/source/processes/hadronic/management/src/G4InelasticInteraction.cc +++ b/source/processes/hadronic/management/src/G4InelasticInteraction.cc @@ -211,7 +211,7 @@ const G4double tarmas = originalTarget->GetDefinition()->GetPDGMass()/GeV; if( ek > 1.0 )ekcor = 1./ek; const G4double atomicWeight = targetNucleus.GetN(); - ek = 2*tarmas + ek*(1.+ekcor/atomicWeight); +// ek = 2*tarmas + ek*(1.+ekcor/atomicWeight); modifiedOriginal.SetKineticEnergy( ek*GeV ); // // evaporation -- re-calculate black track energies diff --git a/source/processes/hadronic/models/GNUmakefile b/source/processes/hadronic/models/GNUmakefile index 3255384c56..6f4861b587 100644 --- a/source/processes/hadronic/models/GNUmakefile +++ b/source/processes/hadronic/models/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2001/11/16 14:19:19 hpw Exp $ +# $Id: GNUmakefile,v 1.9 2002/06/13 18:02:03 jwellisc Exp $ # -------------------------------------------------------------- # GNUmakefile for hadronic models library. G.Folger 10-Dec-97 # -------------------------------------------------------------- @@ -25,6 +25,7 @@ SUBDIRS += chiral_inv_phase_space/interface SUBDIRS += coherent_elastic SUBDIRS += cascade/evaporation SUBDIRS += cascade/utils +SUBDIRS += leading_particle SUBLIBS = G4hadronic_HE G4hadronic_LE G4hadronic_neu G4hadronic_iso SUBLIBS += G4hadronic_deex G4hadronic_diffstring G4hadronic_HE_gen G4hadronic_kinetic @@ -36,6 +37,7 @@ SUBLIBS += G4hadronic_interface_ci SUBLIBS += G4hadronic_coherent_elastic SUBLIBS += G4hadronic_hetcpp_evaporation SUBLIBS += G4hadronic_hetcpp_utils +SUBLIBS += G4hadronic_leading_particle ifndef G4INSTALL G4INSTALL = ../../../.. diff --git a/source/processes/hadronic/models/cascade/README b/source/processes/hadronic/models/cascade/README new file mode 100644 index 0000000000..6d1bedd982 --- /dev/null +++ b/source/processes/hadronic/models/cascade/README @@ -0,0 +1,6 @@ +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/evaporation/src/G4BertiniEvaporation.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc index 98d1e650b0..9b472aa8cd 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc @@ -380,10 +380,10 @@ void G4BertiniEvaporation::fillResult( G4std::vector second G4FragmentVector * aResult ) { // Fill the vector pParticleChange with secondary particles stored in vector. - for ( G4int i = 0 ; i < secondaryParticleVector.size() ; i++ ) + for ( size_t i = 0 ; i < secondaryParticleVector.size() ; i++ ) { - G4int aZ = secondaryParticleVector[i]->GetDefinition()->GetPDGCharge(); - G4int aA = secondaryParticleVector[i]->GetDefinition()->GetBaryonNumber(); + G4int aZ = static_cast (secondaryParticleVector[i]->GetDefinition()->GetPDGCharge() ); + G4int aA = static_cast (secondaryParticleVector[i]->GetDefinition()->GetBaryonNumber()); G4LorentzVector aMomentum = secondaryParticleVector[i]->Get4Momentum(); if(aA>0) { diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc index 9178c3b1ee..1bf9ff9f28 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc @@ -127,8 +127,8 @@ G4double G4BertiniEvaporationChannel::getQ() // secondary particle and the initial and residual nuclei G4int residualZ = nucleusZ - particleZ; G4int residualA = nucleusA - particleA; - G4int residualN = residualA - residualZ; - G4int nucleusN = nucleusA - nucleusZ; +// G4int residualN = residualA - residualZ; +// G4int nucleusN = nucleusA - nucleusZ; // All the following are by default in MeV const G4double e1 = G4NucleiProperties::GetMassExcess( residualA, residualZ ); diff --git a/source/processes/hadronic/models/cascade/hetc.wst b/source/processes/hadronic/models/cascade/hetc.wst new file mode 100644 index 0000000000..694af536c4 --- /dev/null +++ b/source/processes/hadronic/models/cascade/hetc.wst @@ -0,0 +1,85 @@ +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/chiral_inv_phase_space/body/include/G4Chips.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh index d158725fd8..c399a2f1b4 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 @@ -22,7 +22,7 @@ // // // $Id: G4Chips.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 505fd98252..0fc6aaaa33 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 @@ -22,7 +22,7 @@ // // // $Id: G4QCHIPSWorld.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 09ffad84de..c771b2c651 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 @@ -22,7 +22,7 @@ // // // $Id: G4QCandidate.hh,v 1.13 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QCandidate ---------------- // by Mikhail Kossov, Sept 1999. 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 b368b7cc5a..df5eaf82b6 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 @@ -22,7 +22,7 @@ // // // $Id: G4QCandidateVector.hh,v 1.11 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 3b52e06ea9..43f1303193 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 @@ -22,7 +22,7 @@ // // // $Id: G4QChipolino.hh,v 1.9 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 b949499e21..027c27e8b4 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 @@ -22,7 +22,7 @@ // // // $Id: G4QContent.hh,v 1.14 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 f5981f2c5a..b5db62e143 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 @@ -22,7 +22,7 @@ // // // $Id: G4QDecayChan.hh,v 1.9 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 ed1a570eac..36a6dbf51b 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 @@ -22,7 +22,7 @@ // // // $Id: G4QDecayChanVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 3abd218014..0d99cd920e 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 @@ -22,7 +22,7 @@ // // // $Id: G4QEnvironment.hh,v 1.9 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 eeb268b04c..c35f49dce6 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 @@ -22,7 +22,7 @@ // // // $Id: G4QHadron.hh,v 1.15 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. 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 07bfcd0673..ab6b8a2128 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 @@ -22,7 +22,7 @@ // // // $Id: G4QHadronVector.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 5cb6c6a0d7..5135b4d0cb 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 @@ -22,7 +22,7 @@ // // // $Id: G4QNucleus.hh,v 1.12 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 2a61b757a1..ecdc79f076 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 @@ -22,7 +22,7 @@ // // // $Id: G4QPDGCode.hh,v 1.11 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 9d3f3371a4..6fe912d800 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 @@ -22,7 +22,7 @@ // // // $Id: G4QPDGCodeVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 0c1c294461..ab0ae56394 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 @@ -22,7 +22,7 @@ // // // $Id: G4QParentCluster.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 7a79168ce4..4f30a3792d 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 @@ -22,7 +22,7 @@ // // // $Id: G4QParentClusterVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 c56d3276f8..302d9686f0 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 @@ -22,7 +22,7 @@ // // // $Id: G4QParticle.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 6ec44357eb..91afea5a25 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 @@ -22,7 +22,7 @@ // // // $Id: G4QParticleVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 8fe4a2f3d8..4e0e39f287 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 @@ -22,7 +22,7 @@ // // // $Id: G4QSelector.hh,v 1.7 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 79e53b1ce1..9c2b7bbe87 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 @@ -22,7 +22,7 @@ // // // $Id: G4Quasmon.hh,v 1.19 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 b2358ac297..5ef5d77d79 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 @@ -22,7 +22,7 @@ // // // $Id: G4QuasmonVector.hh,v 1.9 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- 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 2802600521..b35e1be048 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 @@ -22,7 +22,7 @@ // // // $Id: G4QCHIPSWorld.cc,v 1.17 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QCHIPSWorld ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc index 82c895bec1..daa977f3d9 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc @@ -22,7 +22,7 @@ // // // $Id: G4QCandidate.cc,v 1.18 2001/12/13 12:04:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QCandidate ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc index 8d5a1ef2d7..14189a724a 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc @@ -22,7 +22,7 @@ // // // $Id: G4QChipolino.cc,v 1.14 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QChipolino ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc index 78c9f60b11..32b92dfe76 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc @@ -22,7 +22,7 @@ // // // $Id: G4QContent.cc,v 1.20 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QContent ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc index 4e2e02f7be..e46d31226c 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc @@ -22,7 +22,7 @@ // // // $Id: G4QDecayChan.cc,v 1.14 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QDecayChan ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc index 95740dd875..e0b6c930bd 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QEnvironment.cc,v 1.42 2001/11/28 13:32:07 stesting Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4QEnvironment.cc,v 1.43 2002/02/25 16:03:57 mkossov Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QEnvironment ---------------- // by Mikhail Kossov, August 2000. @@ -2019,7 +2019,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() { G4cerr<<"***G4QEnv::HadrQE:M="<0)DecayAntiStrange(evH); else if(dM>0.001&&totBN>2)EvaporateResidual(evH); // Evaporate ResidNucl (del.equiv) 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 f5862ac4d9..bc56d2869c 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 @@ -22,7 +22,7 @@ // // // $Id: G4QHadron.cc,v 1.22 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc index 201b1991be..f33da7208b 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc @@ -22,7 +22,7 @@ // // // $Id: G4QNucleus.cc,v 1.26 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QNucleus ---------------- // by Mikhail Kossov, Sept 1999. 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 fe0b78c7ff..62c6241337 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QPDGCode.cc,v 1.25 2001/11/28 13:47:07 stesting Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4QPDGCode.cc,v 1.27 2002/06/13 09:12:22 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ---------------- G4QPDGCode ---------------- // by Mikhail Kossov, Sept 1999. @@ -445,7 +445,7 @@ G4int G4QPDGCode::MakeQCode(const G4int& PDGCode) #ifdef pdebug G4cout<<"***G4QPDGCode::MakeQCode: () Unknown in Q-System code: "< theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + G4ElectroNuclearCrossSection theElectronData; + G4PhotoNuclearCrossSection thePhotonData; G4ParticleChange theResult; }; -inline -G4VParticleChange * G4ElectroNuclearReaction:: +inline G4VParticleChange* G4ElectroNuclearReaction:: ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) { - const G4ParticleDefinition* aD = aTrack.GetDynamicParticle()->GetDefinition(); + static const G4double dM=G4Proton::Proton()->GetPDGMass()+G4Neutron::Neutron()->GetPDGMass(); // Mean double nucleon mass = m_n+m_p (@@ no binding) + static const G4double me=G4Electron::Electron()->GetPDGMass(); // electron mass + static const G4double me2=me*me; // squared electron mass + static const G4double dpi=2*M_PI; // 2*pi + const G4DynamicParticle* theElectron=aTrack.GetDynamicParticle(); + const G4ParticleDefinition* aD = theElectron->GetDefinition(); if((aD != G4Electron::ElectronDefinition()) && (aD != G4Positron::PositronDefinition())) - { - G4Exception("Called G4ElectroNuclearReaction for particle other than electron or positron"); - } + G4Exception("G4ElectroNuclearReaction::ApplyYourself called for neither electron or positron"); theResult.Initialize(aTrack); @@ -70,28 +99,85 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) } if(0==anElement) { - G4cout << "G4ElectroNuclearReaction::ApplyYourself - trying to react on an element"<3.*GeV) - { - xSec = theData.GetCrossSection(aTrack.GetDynamicParticle(), anElement); - photonEnergy = theData.GetEffectivePhotonEnergy(); - } - if(aTrack.GetDynamicParticle()->GetKineticEnergy() - photonEnergy < 0) - { - G4Exception("G4ElectroNuclearReaction: photonEnergy above electron energy"); - } - theResult.SetEnergyChange(aTrack.GetDynamicParticle()->GetKineticEnergy() - photonEnergy); + + // Note: high energy gamma nuclear now implemented. - G4ThreeVector photonDirection = aTrack.GetMomentumDirection(); - G4DynamicParticle localGamma(G4Gamma::GammaDefinition(), photonDirection, photonEnergy); + G4double xSec = theElectronData.GetCrossSection(theElectron, anElement); // Check cross section + if(xSec<=0.) return &theResult; // DO-NOTHING condition + G4double photonEnergy = theElectronData.GetEquivalentPhotonEnergy(); + G4double theElectronKinEnergy=theElectron->GetKineticEnergy(); + if( theElectronKinEnergy < photonEnergy ) + { + G4cout << "G4ElectroNuclearReaction::ApplyYourself: photonEnergy is very high"<-* + G4double sigNu=thePhotonData.GetCrossSection(theDynamicPhoton, anElement); // | + theDynamicPhoton->SetKineticEnergy(W); // Redefine photon with equivalent energy | + G4double sigK =thePhotonData.GetCrossSection(theDynamicPhoton, anElement); // | + delete theDynamicPhoton; // <-------------------------------------------------------* + G4double rndFraction = theElectronData.GetVirtualFactor(photonEnergy, photonQ2); + if(sigNu*G4UniformRand()>sigK*rndFraction) + { + return &theResult; // DO-NOTHING condition + } + // Scatter an electron and make gamma+A reaction + G4double iniE=theElectronKinEnergy+me; // Initial total energy of electron + G4double finE=iniE-photonEnergy; // Final total energy of electron + theResult.SetEnergyChange(finE-me); // Modifies the KINETIC ENERGY (Why not in the name?) + G4double EEm=iniE*finE-me2; // Just an intermediate value to avoid "2*" + G4double iniP=sqrt(iniE*iniE-me2); // Initial momentum of the electron + G4double finP=sqrt(finE*finE-me2); // Final momentum of the electron + G4double cost=(EEm+EEm-photonQ2)/iniP/finP; // cos(theta) for the electron scattering + if(cost>1.) cost=1.; + if(cost<-1.) cost=-1.; + G4ThreeVector dir=theElectron->GetMomentumDirection(); // Direction of primary electron + G4ThreeVector ort=dir.orthogonal(); // Not normed orthogonal vector (!) (to dir) + G4ThreeVector ortx = ort.unit(); // First unit vector orthogonal to the direction + G4ThreeVector orty = dir.cross(ortx); // Second unit vector orthoganal to the direction + G4double sint=sqrt(1.-cost*cost); // Perpendicular component + G4double phi=dpi*G4UniformRand(); // phi of scattered electron + G4double sinx=sint*sin(phi); // x-component + G4double siny=sint*cos(phi); // y-component + G4ThreeVector findir=cost*dir+sinx*ortx+siny*orty; + theResult.SetMomentumDirectionChange(findir); // new direction for the electron + G4ThreeVector photonMomentum=iniP*dir-finP*findir; + G4DynamicParticle localGamma(G4Gamma::GammaDefinition(), photonEnergy, photonMomentum); + //G4DynamicParticle localGamma(G4Gamma::GammaDefinition(), photonDirection, photonEnergy); + //G4DynamicParticle localGamma(G4Gamma::GammaDefinition(), photonLorentzVector); G4ThreeVector position(0,0,0); G4Track localTrack(&localGamma, 0., position); - G4VParticleChange * result = theModel.ApplyYourself(localTrack, aTargetNucleus, &theResult); + G4VParticleChange * result; + if(photonEnergy < 3*GeV) + { + result = theLEModel.ApplyYourself(localTrack, aTargetNucleus, &theResult); + } + else + { + theHEModel->SetTransport(theCascade); + theHEModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); + theHEModel->SetMinEnergy(2.5*GeV); + theHEModel->SetMaxEnergy(100*TeV); + + G4VParticleChange * aResult = theHEModel->ApplyYourself(localTrack, aTargetNucleus); + theResult.SetNumberOfSecondaries(aResult->GetNumberOfSecondaries()); + for(G4int all = 0; all < aResult->GetNumberOfSecondaries(); all++) + { + theResult.AddSecondary(aResult->GetSecondary(all)); + } + result = &theResult; + } return result; } diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh index 24b3750b85..25c7e6cceb 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh @@ -20,6 +20,15 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: G4GammaNuclearReaction.hh,v 1.8 2002/06/06 10:44:13 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// GEANT4 physics class: G4GammaNuclearReaction -- header file +// Created: J.P. Wellisch, 2000/08/18 +// The last update: J.P. Wellisch, Thu Jun 6 2002. +// #ifndef G4GammaNuclearReaction_h #define G4GammaNuclearReaction_h diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc index 4c4e44793c..590fcd6471 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc @@ -35,7 +35,7 @@ G4StringChipsInterface::G4StringChipsInterface() G4cin >> theEnergyLossPerFermi; #endif - theEnergyLossPerFermi *= GeV; + theEnergyLossPerFermi = 0.5*GeV; // theEnergyLossPerFermi = 1.*GeV; } @@ -283,9 +283,9 @@ Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) if (particleCount!=0) { G4QEnvironment* pan= new G4QEnvironment(projHV, targetPDGCode); + output = pan->Fragment(); G4std::for_each(projHV.begin(), projHV.end(), DeleteQHadron()); projHV.clear(); - output = pan->Fragment(); delete pan; } else diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.hh b/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.hh index 885faed0ee..be9dcf2582 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.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. * // ******************************************************************** // // - // G4 Low energy model: n-n or p-p scattering + // G4 Low energy model: n-p scattering // F.W. Jones, L.G. Greeniaus, H.P. Wellisch // // For further comments see G4LEnpData.hh and G4LEnp.cc @@ -43,11 +43,13 @@ #include "G4TrackStatus.hh" #include "G4HadronicInteraction.hh" + + class G4LEnp : public G4HadronicInteraction { private: - enum { NENERGY=22, NANGLE=180 }; + enum { NENERGY=21, NANGLE=180 }; public: @@ -58,13 +60,16 @@ class G4LEnp : public G4HadronicInteraction G4VParticleChange* ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus); - void SetCoulombSuppression(G4int State); - + private: + // The following arrays are declared static to allow the use of initializers. + // They are initialized in G4LEnpData.hh + static G4float sig[NENERGY][NANGLE]; static G4float pcm[NENERGY], elab[NENERGY], dsigmax[NENERGY], sigtot[NENERGY]; + }; #endif diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4LEnpData.hh b/source/processes/hadronic/models/coherent_elastic/include/G4LEnpData.hh index 1fbe6b9018..c5d85a1051 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4LEnpData.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4LEnpData.hh @@ -40,7 +40,7 @@ G4float G4LEnp::sig[NENERGY][NANGLE] = { //------------ 0.01 GeV - 0.00007, 0.00030, 0.00066, 0.00118, 0.00184, 0.00265, 0.00360, + {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, @@ -65,9 +65,9 @@ 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.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.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, @@ -92,9 +92,9 @@ 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.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.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, @@ -119,9 +119,9 @@ 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.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.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, @@ -146,9 +146,9 @@ 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.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.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, @@ -173,9 +173,9 @@ 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.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.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, @@ -200,9 +200,9 @@ 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.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.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, @@ -227,9 +227,9 @@ 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.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.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, @@ -254,9 +254,9 @@ 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.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.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, @@ -281,9 +281,9 @@ 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.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.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, @@ -308,9 +308,9 @@ 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.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.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, @@ -335,9 +335,9 @@ 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.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.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, @@ -362,9 +362,9 @@ 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.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.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, @@ -389,9 +389,9 @@ 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.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.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, @@ -416,9 +416,9 @@ 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.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.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, @@ -443,9 +443,9 @@ 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.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.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, @@ -470,9 +470,9 @@ 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.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.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, @@ -497,9 +497,9 @@ 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.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.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, @@ -524,9 +524,9 @@ 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, + 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.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, @@ -551,9 +551,9 @@ 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, + 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.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, @@ -578,9 +578,9 @@ 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, + 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.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, @@ -605,7 +605,7 @@ 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 + 0.99502, 0.99707, 0.99865, 0.99965, 1.00000} }; // CM momentum (GeV/c) diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh b/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh index 5a0e25fd3e..c15b6c78b8 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh @@ -59,7 +59,7 @@ class G4LEpp : public G4HadronicInteraction G4VParticleChange* ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus); - void SetCoulombSuppression(G4int State); + void SetCoulombEffects(G4int State); private: diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4LEppData.hh b/source/processes/hadronic/models/coherent_elastic/include/G4LEppData.hh index 1ca5791a96..5ed816d2b6 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4LEppData.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4LEppData.hh @@ -66,7 +66,7 @@ G4float G4LEpp::Sig[NENERGY][NANGLE] = { //------------ 0.01 GeV - 0.00008, 0.00031, 0.00070, 0.00124, 0.00193, 0.00278, 0.00378, + {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, @@ -91,9 +91,9 @@ 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.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.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, @@ -118,9 +118,9 @@ 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.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.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, @@ -145,9 +145,9 @@ 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.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.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, @@ -172,9 +172,9 @@ 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.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.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, @@ -199,9 +199,9 @@ 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.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.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, @@ -226,9 +226,9 @@ 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.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.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, @@ -253,9 +253,9 @@ 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.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.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, @@ -280,9 +280,9 @@ 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.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.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, @@ -307,9 +307,9 @@ 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.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.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, @@ -334,9 +334,9 @@ 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.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.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, @@ -361,9 +361,9 @@ 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.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.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, @@ -388,9 +388,9 @@ 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.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.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, @@ -415,9 +415,9 @@ 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.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.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, @@ -442,9 +442,9 @@ 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.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.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, @@ -469,9 +469,9 @@ 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.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.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, @@ -496,9 +496,9 @@ 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.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.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, @@ -523,9 +523,9 @@ 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.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.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, @@ -550,9 +550,9 @@ 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.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.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, @@ -577,9 +577,9 @@ 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, + 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.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, @@ -604,9 +604,9 @@ 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, + 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.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, @@ -631,9 +631,9 @@ 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, + 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.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, @@ -658,7 +658,7 @@ 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 + 0.99168, 0.99528, 0.99789, 0.99947, 1.00000} }; @@ -677,7 +677,7 @@ G4float G4LEpp::SigCoul[NENERGY][NANGLE] = { //------------ 0.01 GeV - 0.47617, 0.49374, 0.49750, 0.49885, 0.49948, 0.49982, 0.50002, + {0.47617, 0.49374, 0.49750, 0.49885, 0.49948, 0.49982, 0.50002, 0.50015, 0.50023, 0.50029, 0.50033, 0.50037, 0.50039, 0.50041, 0.50043, 0.50044, 0.50046, 0.50047, 0.50048, 0.50049, 0.50049, 0.50050, 0.50051, 0.50052, 0.50053, 0.50054, 0.50054, 0.50055, @@ -702,9 +702,9 @@ 0.50249, 0.50250, 0.50251, 0.50252, 0.50252, 0.50253, 0.50254, 0.50255, 0.50256, 0.50257, 0.50259, 0.50261, 0.50263, 0.50265, 0.50268, 0.50273, 0.50279, 0.50287, 0.50300, 0.50320, 0.50354, - 0.50416, 0.50552, 0.50927, 0.52679, 1.00000, + 0.50416, 0.50552, 0.50927, 0.52679, 1.00000}, //--------- 0.02 GeV - 0.47546, 0.49296, 0.49670, 0.49803, 0.49865, 0.49897, 0.49917, + {0.47546, 0.49296, 0.49670, 0.49803, 0.49865, 0.49897, 0.49917, 0.49929, 0.49937, 0.49943, 0.49947, 0.49950, 0.49952, 0.49954, 0.49956, 0.49958, 0.49959, 0.49960, 0.49962, 0.49963, 0.49964, 0.49965, 0.49967, 0.49968, 0.49969, 0.49971, 0.49972, 0.49974, @@ -729,9 +729,9 @@ 0.50332, 0.50334, 0.50335, 0.50336, 0.50337, 0.50339, 0.50340, 0.50341, 0.50342, 0.50344, 0.50345, 0.50347, 0.50349, 0.50352, 0.50355, 0.50359, 0.50365, 0.50373, 0.50385, 0.50404, 0.50437, - 0.50498, 0.50632, 0.51004, 0.52751, 1.00000, + 0.50498, 0.50632, 0.51004, 0.52751, 1.00000}, //--------- 0.04 GeV - 0.47428, 0.49167, 0.49535, 0.49665, 0.49724, 0.49755, 0.49773, + {0.47428, 0.49167, 0.49535, 0.49665, 0.49724, 0.49755, 0.49773, 0.49784, 0.49791, 0.49796, 0.49800, 0.49802, 0.49805, 0.49807, 0.49809, 0.49810, 0.49812, 0.49814, 0.49815, 0.49817, 0.49819, 0.49821, 0.49823, 0.49826, 0.49828, 0.49830, 0.49833, 0.49836, @@ -756,9 +756,9 @@ 0.50473, 0.50475, 0.50477, 0.50480, 0.50482, 0.50483, 0.50485, 0.50487, 0.50489, 0.50490, 0.50492, 0.50494, 0.50496, 0.50498, 0.50501, 0.50505, 0.50510, 0.50517, 0.50528, 0.50546, 0.50577, - 0.50636, 0.50765, 0.51133, 0.52867, 1.00000, + 0.50636, 0.50765, 0.51133, 0.52867, 1.00000}, //--------- 0.07 GeV - 0.47246, 0.48968, 0.49329, 0.49454, 0.49510, 0.49538, 0.49554, + {0.47246, 0.48968, 0.49329, 0.49454, 0.49510, 0.49538, 0.49554, 0.49564, 0.49570, 0.49574, 0.49577, 0.49580, 0.49582, 0.49585, 0.49587, 0.49589, 0.49591, 0.49594, 0.49597, 0.49600, 0.49603, 0.49606, 0.49610, 0.49613, 0.49617, 0.49622, 0.49626, 0.49630, @@ -783,9 +783,9 @@ 0.50682, 0.50686, 0.50690, 0.50694, 0.50697, 0.50700, 0.50703, 0.50706, 0.50708, 0.50711, 0.50713, 0.50715, 0.50717, 0.50720, 0.50722, 0.50726, 0.50730, 0.50736, 0.50746, 0.50762, 0.50790, - 0.50846, 0.50971, 0.51330, 0.53049, 1.00000, + 0.50846, 0.50971, 0.51330, 0.53049, 1.00000}, //--------- 0.1 GeV - 0.47009, 0.48715, 0.49068, 0.49189, 0.49242, 0.49269, 0.49283, + {0.47009, 0.48715, 0.49068, 0.49189, 0.49242, 0.49269, 0.49283, 0.49292, 0.49298, 0.49302, 0.49305, 0.49308, 0.49311, 0.49314, 0.49317, 0.49321, 0.49324, 0.49328, 0.49333, 0.49337, 0.49342, 0.49347, 0.49353, 0.49359, 0.49365, 0.49371, 0.49378, 0.49385, @@ -810,9 +810,9 @@ 0.50934, 0.50940, 0.50946, 0.50951, 0.50956, 0.50961, 0.50966, 0.50970, 0.50974, 0.50977, 0.50981, 0.50984, 0.50987, 0.50990, 0.50993, 0.50996, 0.51000, 0.51006, 0.51015, 0.51030, 0.51056, - 0.51109, 0.51230, 0.51583, 0.53285, 1.00000, + 0.51109, 0.51230, 0.51583, 0.53285, 1.00000}, //--------- 0.12 GeV - 0.46810, 0.48504, 0.48853, 0.48972, 0.49023, 0.49049, 0.49063, + {0.46810, 0.48504, 0.48853, 0.48972, 0.49023, 0.49049, 0.49063, 0.49072, 0.49078, 0.49082, 0.49086, 0.49089, 0.49093, 0.49097, 0.49101, 0.49105, 0.49110, 0.49115, 0.49120, 0.49126, 0.49132, 0.49139, 0.49146, 0.49154, 0.49161, 0.49170, 0.49178, 0.49187, @@ -837,9 +837,9 @@ 0.51136, 0.51143, 0.51151, 0.51158, 0.51165, 0.51171, 0.51177, 0.51182, 0.51187, 0.51192, 0.51196, 0.51200, 0.51204, 0.51208, 0.51211, 0.51215, 0.51219, 0.51225, 0.51234, 0.51248, 0.51274, - 0.51325, 0.51444, 0.51792, 0.53482, 1.00000, + 0.51325, 0.51444, 0.51792, 0.53482, 1.00000}, //--------- 0.14 GeV - 0.46571, 0.48253, 0.48598, 0.48715, 0.48765, 0.48790, 0.48804, + {0.46571, 0.48253, 0.48598, 0.48715, 0.48765, 0.48790, 0.48804, 0.48812, 0.48818, 0.48823, 0.48827, 0.48831, 0.48836, 0.48841, 0.48846, 0.48851, 0.48857, 0.48864, 0.48871, 0.48878, 0.48886, 0.48895, 0.48904, 0.48913, 0.48923, 0.48933, 0.48943, 0.48955, @@ -864,9 +864,9 @@ 0.51373, 0.51383, 0.51392, 0.51401, 0.51409, 0.51417, 0.51425, 0.51432, 0.51438, 0.51444, 0.51450, 0.51455, 0.51460, 0.51464, 0.51468, 0.51473, 0.51477, 0.51483, 0.51492, 0.51506, 0.51531, - 0.51581, 0.51698, 0.52042, 0.53720, 1.00000, + 0.51581, 0.51698, 0.52042, 0.53720, 1.00000}, //--------- 0.18 GeV - 0.45978, 0.47631, 0.47968, 0.48082, 0.48130, 0.48154, 0.48168, + {0.45978, 0.47631, 0.47968, 0.48082, 0.48130, 0.48154, 0.48168, 0.48177, 0.48184, 0.48191, 0.48197, 0.48203, 0.48209, 0.48217, 0.48224, 0.48233, 0.48242, 0.48252, 0.48262, 0.48273, 0.48285, 0.48298, 0.48311, 0.48324, 0.48339, 0.48354, 0.48369, 0.48385, @@ -891,9 +891,9 @@ 0.51953, 0.51967, 0.51981, 0.51994, 0.52007, 0.52018, 0.52029, 0.52040, 0.52050, 0.52059, 0.52067, 0.52075, 0.52082, 0.52089, 0.52095, 0.52101, 0.52107, 0.52114, 0.52124, 0.52137, 0.52162, - 0.52210, 0.52323, 0.52660, 0.54309, 1.00000, + 0.52210, 0.52323, 0.52660, 0.54309, 1.00000}, //--------- 0.22 GeV - 0.45250, 0.46873, 0.47203, 0.47313, 0.47360, 0.47385, 0.47399, + {0.45250, 0.46873, 0.47203, 0.47313, 0.47360, 0.47385, 0.47399, 0.47409, 0.47418, 0.47426, 0.47434, 0.47443, 0.47453, 0.47463, 0.47474, 0.47486, 0.47499, 0.47513, 0.47527, 0.47543, 0.47559, 0.47576, 0.47594, 0.47613, 0.47632, 0.47653, 0.47674, 0.47696, @@ -918,9 +918,9 @@ 0.52655, 0.52674, 0.52693, 0.52711, 0.52728, 0.52745, 0.52760, 0.52775, 0.52788, 0.52801, 0.52813, 0.52824, 0.52835, 0.52844, 0.52853, 0.52861, 0.52869, 0.52878, 0.52888, 0.52903, 0.52927, - 0.52974, 0.53085, 0.53413, 0.55032, 1.00000, + 0.52974, 0.53085, 0.53413, 0.55032, 1.00000}, //--------- 0.26 GeV - 0.44429, 0.46019, 0.46342, 0.46450, 0.46497, 0.46522, 0.46537, + {0.44429, 0.46019, 0.46342, 0.46450, 0.46497, 0.46522, 0.46537, 0.46550, 0.46560, 0.46571, 0.46582, 0.46594, 0.46607, 0.46621, 0.46635, 0.46651, 0.46669, 0.46687, 0.46706, 0.46727, 0.46748, 0.46771, 0.46794, 0.46819, 0.46844, 0.46871, 0.46899, 0.46927, @@ -945,9 +945,9 @@ 0.53438, 0.53463, 0.53488, 0.53511, 0.53534, 0.53555, 0.53576, 0.53595, 0.53613, 0.53631, 0.53647, 0.53662, 0.53675, 0.53688, 0.53700, 0.53711, 0.53722, 0.53733, 0.53745, 0.53760, 0.53785, - 0.53832, 0.53940, 0.54262, 0.55849, 1.00000, + 0.53832, 0.53940, 0.54262, 0.55849, 1.00000}, //--------- 0.28 GeV - 0.43989, 0.45563, 0.45882, 0.45990, 0.46037, 0.46062, 0.46079, + {0.43989, 0.45563, 0.45882, 0.45990, 0.46037, 0.46062, 0.46079, 0.46092, 0.46104, 0.46116, 0.46129, 0.46143, 0.46157, 0.46173, 0.46190, 0.46208, 0.46228, 0.46249, 0.46271, 0.46294, 0.46318, 0.46344, 0.46370, 0.46398, 0.46427, 0.46457, 0.46489, 0.46521, @@ -972,9 +972,9 @@ 0.53852, 0.53881, 0.53909, 0.53936, 0.53961, 0.53985, 0.54009, 0.54031, 0.54051, 0.54071, 0.54089, 0.54106, 0.54122, 0.54137, 0.54150, 0.54163, 0.54175, 0.54187, 0.54200, 0.54217, 0.54242, - 0.54290, 0.54397, 0.54715, 0.56286, 1.00000, + 0.54290, 0.54397, 0.54715, 0.56286, 1.00000}, //--------- 0.30 GeV - 0.43539, 0.45097, 0.45413, 0.45520, 0.45567, 0.45593, 0.45611, + {0.43539, 0.45097, 0.45413, 0.45520, 0.45567, 0.45593, 0.45611, 0.45625, 0.45639, 0.45653, 0.45667, 0.45683, 0.45699, 0.45717, 0.45737, 0.45757, 0.45779, 0.45803, 0.45828, 0.45854, 0.45881, 0.45910, 0.45940, 0.45971, 0.46004, 0.46038, 0.46073, 0.46109, @@ -999,9 +999,9 @@ 0.54273, 0.54305, 0.54337, 0.54367, 0.54395, 0.54423, 0.54449, 0.54474, 0.54497, 0.54519, 0.54540, 0.54559, 0.54577, 0.54594, 0.54609, 0.54624, 0.54638, 0.54651, 0.54666, 0.54683, 0.54709, - 0.54757, 0.54863, 0.55179, 0.56733, 1.00000, + 0.54757, 0.54863, 0.55179, 0.56733, 1.00000}, //--------- 0.34 GeV - 0.42589, 0.44111, 0.44420, 0.44526, 0.44574, 0.44602, 0.44622, + {0.42589, 0.44111, 0.44420, 0.44526, 0.44574, 0.44602, 0.44622, 0.44640, 0.44657, 0.44674, 0.44693, 0.44713, 0.44734, 0.44757, 0.44782, 0.44808, 0.44837, 0.44866, 0.44897, 0.44930, 0.44965, 0.45001, 0.45039, 0.45078, 0.45119, 0.45161, 0.45205, 0.45250, @@ -1026,9 +1026,9 @@ 0.55152, 0.55193, 0.55232, 0.55269, 0.55306, 0.55340, 0.55373, 0.55404, 0.55434, 0.55462, 0.55488, 0.55513, 0.55536, 0.55558, 0.55578, 0.55596, 0.55614, 0.55631, 0.55648, 0.55668, 0.55696, - 0.55744, 0.55850, 0.56159, 0.57677, 1.00000, + 0.55744, 0.55850, 0.56159, 0.57677, 1.00000}, //--------- 0.42 GeV - 0.40579, 0.42028, 0.42324, 0.42428, 0.42479, 0.42512, 0.42538, + {0.40579, 0.42028, 0.42324, 0.42428, 0.42479, 0.42512, 0.42538, 0.42564, 0.42589, 0.42617, 0.42646, 0.42677, 0.42711, 0.42747, 0.42785, 0.42826, 0.42869, 0.42914, 0.42962, 0.43012, 0.43064, 0.43119, 0.43175, 0.43234, 0.43294, 0.43357, 0.43422, 0.43489, @@ -1053,9 +1053,9 @@ 0.56963, 0.57024, 0.57083, 0.57139, 0.57193, 0.57246, 0.57296, 0.57343, 0.57389, 0.57432, 0.57472, 0.57511, 0.57547, 0.57581, 0.57612, 0.57641, 0.57668, 0.57694, 0.57719, 0.57746, 0.57779, - 0.57829, 0.57933, 0.58229, 0.59675, 1.00000, + 0.57829, 0.57933, 0.58229, 0.59675, 1.00000}, //--------- 0.52 GeV - 0.38031, 0.39387, 0.39666, 0.39769, 0.39825, 0.39867, 0.39905, + {0.38031, 0.39387, 0.39666, 0.39769, 0.39825, 0.39867, 0.39905, 0.39944, 0.39985, 0.40030, 0.40078, 0.40130, 0.40186, 0.40245, 0.40309, 0.40375, 0.40446, 0.40520, 0.40598, 0.40678, 0.40762, 0.40849, 0.40939, 0.41032, 0.41128, 0.41227, 0.41328, 0.41432, @@ -1080,9 +1080,9 @@ 0.59113, 0.59209, 0.59302, 0.59392, 0.59479, 0.59563, 0.59644, 0.59721, 0.59796, 0.59866, 0.59933, 0.59996, 0.60056, 0.60112, 0.60164, 0.60212, 0.60257, 0.60298, 0.60337, 0.60375, 0.60416, - 0.60472, 0.60575, 0.60854, 0.62207, 1.00000, + 0.60472, 0.60575, 0.60854, 0.62207, 1.00000}, //--------- 0.62 GeV - 0.35864, 0.37149, 0.37423, 0.37533, 0.37603, 0.37662, 0.37721, + {0.35864, 0.37149, 0.37423, 0.37533, 0.37603, 0.37662, 0.37721, 0.37784, 0.37851, 0.37925, 0.38006, 0.38092, 0.38185, 0.38283, 0.38388, 0.38498, 0.38614, 0.38735, 0.38861, 0.38992, 0.39127, 0.39266, 0.39410, 0.39557, 0.39708, 0.39862, 0.40020, 0.40180, @@ -1107,9 +1107,9 @@ 0.60520, 0.60671, 0.60818, 0.60962, 0.61101, 0.61236, 0.61367, 0.61493, 0.61614, 0.61730, 0.61840, 0.61945, 0.62043, 0.62136, 0.62222, 0.62302, 0.62376, 0.62444, 0.62507, 0.62566, 0.62625, - 0.62694, 0.62805, 0.63078, 0.64360, 1.00000, + 0.62694, 0.62805, 0.63078, 0.64360, 1.00000}, //--------- 0.70 GeV - 0.34350, 0.35601, 0.35884, 0.36012, 0.36104, 0.36190, 0.36278, + {0.34350, 0.35601, 0.35884, 0.36012, 0.36104, 0.36190, 0.36278, 0.36374, 0.36477, 0.36590, 0.36712, 0.36842, 0.36981, 0.37128, 0.37283, 0.37446, 0.37616, 0.37792, 0.37975, 0.38163, 0.38356, 0.38554, 0.38757, 0.38963, 0.39173, 0.39386, 0.39602, 0.39821, @@ -1134,9 +1134,9 @@ 0.61045, 0.61255, 0.61461, 0.61664, 0.61862, 0.62055, 0.62243, 0.62426, 0.62602, 0.62772, 0.62935, 0.63090, 0.63237, 0.63376, 0.63507, 0.63628, 0.63741, 0.63844, 0.63940, 0.64028, 0.64114, - 0.64206, 0.64334, 0.64616, 0.65865, 1.00000, + 0.64206, 0.64334, 0.64616, 0.65865, 1.00000}, //--------- 0.80 GeV - 0.32580, 0.33801, 0.34101, 0.34257, 0.34382, 0.34504, 0.34633, + {0.32580, 0.33801, 0.34101, 0.34257, 0.34382, 0.34504, 0.34633, 0.34774, 0.34926, 0.35090, 0.35267, 0.35456, 0.35656, 0.35868, 0.36089, 0.36319, 0.36558, 0.36806, 0.37060, 0.37320, 0.37587, 0.37858, 0.38133, 0.38413, 0.38695, 0.38979, 0.39265, 0.39553, @@ -1161,9 +1161,9 @@ 0.61512, 0.61794, 0.62073, 0.62349, 0.62620, 0.62886, 0.63147, 0.63401, 0.63648, 0.63887, 0.64118, 0.64339, 0.64550, 0.64750, 0.64939, 0.65116, 0.65281, 0.65433, 0.65573, 0.65703, 0.65825, - 0.65949, 0.66105, 0.66405, 0.67623, 1.00000, + 0.65949, 0.66105, 0.66405, 0.67623, 1.00000}, //--------- 0.90 GeV - 0.31155, 0.32353, 0.32669, 0.32849, 0.33003, 0.33159, 0.33326, + {0.31155, 0.32353, 0.32669, 0.32849, 0.33003, 0.33159, 0.33326, 0.33508, 0.33705, 0.33917, 0.34145, 0.34387, 0.34643, 0.34912, 0.35192, 0.35483, 0.35783, 0.36093, 0.36409, 0.36732, 0.37061, 0.37394, 0.37730, 0.38069, 0.38410, 0.38752, 0.39094, 0.39436, @@ -1188,9 +1188,9 @@ 0.61787, 0.62128, 0.62467, 0.62804, 0.63137, 0.63465, 0.63788, 0.64105, 0.64414, 0.64715, 0.65006, 0.65286, 0.65554, 0.65810, 0.66052, 0.66280, 0.66493, 0.66689, 0.66871, 0.67038, 0.67194, - 0.67348, 0.67529, 0.67844, 0.69039, 1.00000, + 0.67348, 0.67529, 0.67844, 0.69039, 1.00000}, //--------- 1.00 GeV - 0.30023, 0.31202, 0.31534, 0.31738, 0.31921, 0.32110, 0.32315, + {0.30023, 0.31202, 0.31534, 0.31738, 0.31921, 0.32110, 0.32315, 0.32537, 0.32778, 0.33037, 0.33315, 0.33609, 0.33919, 0.34243, 0.34579, 0.34927, 0.35285, 0.35652, 0.36025, 0.36404, 0.36788, 0.37175, 0.37564, 0.37954, 0.38344, 0.38733, 0.39120, 0.39504, @@ -1215,9 +1215,9 @@ 0.61847, 0.62237, 0.62627, 0.63015, 0.63402, 0.63786, 0.64165, 0.64539, 0.64905, 0.65263, 0.65611, 0.65948, 0.66271, 0.66581, 0.66875, 0.67153, 0.67412, 0.67653, 0.67875, 0.68080, 0.68269, - 0.68452, 0.68656, 0.68987, 0.70164, 1.00000, + 0.68452, 0.68656, 0.68987, 0.70164, 1.00000}, //--------- 1.10 GeV - 0.29087, 0.30256, 0.30604, 0.30832, 0.31045, 0.31269, 0.31511, + {0.29087, 0.30256, 0.30604, 0.30832, 0.31045, 0.31269, 0.31511, 0.31775, 0.32061, 0.32369, 0.32697, 0.33044, 0.33407, 0.33786, 0.34179, 0.34582, 0.34996, 0.35417, 0.35844, 0.36276, 0.36710, 0.37145, 0.37581, 0.38015, 0.38447, 0.38876, 0.39300, 0.39718, @@ -1242,9 +1242,9 @@ 0.61737, 0.62169, 0.62603, 0.63039, 0.63474, 0.63909, 0.64340, 0.64767, 0.65188, 0.65602, 0.66005, 0.66398, 0.66777, 0.67140, 0.67487, 0.67815, 0.68123, 0.68409, 0.68673, 0.68915, 0.69139, - 0.69351, 0.69580, 0.69928, 0.71094, 1.00000, + 0.69351, 0.69580, 0.69928, 0.71094, 1.00000}, //--------- 1.20 GeV - 0.28281, 0.29444, 0.29810, 0.30065, 0.30308, 0.30567, 0.30849, + {0.28281, 0.29444, 0.29810, 0.30065, 0.30308, 0.30567, 0.30849, 0.31156, 0.31489, 0.31846, 0.32226, 0.32626, 0.33044, 0.33479, 0.33927, 0.34386, 0.34853, 0.35328, 0.35807, 0.36288, 0.36769, 0.37250, 0.37728, 0.38202, 0.38670, 0.39132, 0.39587, 0.40032, @@ -1269,7 +1269,7 @@ 0.61509, 0.61977, 0.62451, 0.62929, 0.63410, 0.63891, 0.64372, 0.64851, 0.65326, 0.65793, 0.66252, 0.66700, 0.67134, 0.67553, 0.67953, 0.68333, 0.68690, 0.69022, 0.69330, 0.69612, 0.69871, - 0.70114, 0.70368, 0.70735, 0.71894, 1.00000 + 0.70114, 0.70368, 0.70735, 0.71894, 1.00000} }; // CM momentum (GeV/c) diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc b/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc index 276564b569..5b908336cc 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc @@ -211,7 +211,7 @@ G4LEnp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) // Rotate according to the direction of the incident particle if (px*px + py*py > 0) { - G4double cost, sint, ph, cosp, sinp, a, b, c; + G4double cost, sint, ph, cosp, sinp; cost = pz/p; sint = (sqrt(abs((1-cost)*(1+cost))) + sqrt(px*px+py*py)/p)/2; py < 0 ? ph = 3*halfpi : ph = halfpi; diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc b/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc index c604cce783..83b0978740 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc @@ -39,7 +39,7 @@ G4LEpp::G4LEpp() : // SetMinEnergy(10.*MeV); // SetMaxEnergy(1200.*MeV); - SetCoulombSuppression(1); + SetCoulombEffects(0); SetMinEnergy(0.); SetMaxEnergy(1200.*GeV); @@ -52,22 +52,22 @@ G4LEpp::~G4LEpp() void -G4LEpp::SetCoulombSuppression(G4int State) +G4LEpp::SetCoulombEffects(G4int State) { if (State) { - for(G4int i=0; i 0) { - G4double cost, sint, ph, cosp, sinp, a, b, c; + G4double cost, sint, ph, cosp, sinp; cost = pz/p; sint = (sqrt(abs((1-cost)*(1+cost))) + sqrt(px*px+py*py)/p)/2; py < 0 ? ph = 3*halfpi : ph = halfpi; 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 417e8b880a..9e880f93ae 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaCoulombBarrier.hh,v 1.4 2001/08/01 17:04:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 888ae72e90..51808ca4fc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationChannel.hh,v 1.4 2001/08/01 17:04:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 58d74e0f1e..0d4454e901 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationProbability.hh,v 1.4 2001/08/01 17:04:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..90b6d43464 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4AlphaGEMChannel.hh,v 1.1 2002/06/06 17:37:06 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4AlphaGEMChannel_h +#define G4AlphaGEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4AlphaCoulombBarrier.hh" +#include "G4AlphaGEMProbability.hh" + +class G4AlphaGEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4AlphaGEMChannel() : G4GEMChannel(4,2,"Alpha", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4AlphaGEMChannel() {}; + +private: + const G4AlphaGEMChannel & operator=(const G4AlphaGEMChannel & right); + + G4AlphaGEMChannel(const G4AlphaGEMChannel & right); + +public: + G4bool operator==(const G4AlphaGEMChannel & right) const; + G4bool operator!=(const G4AlphaGEMChannel & right) const; + +private: + + G4AlphaCoulombBarrier theCoulombBarrier; + + G4AlphaGEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh new file mode 100644 index 0000000000..456c46a2a5 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.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: G4AlphaGEMProbability.hh,v 1.1 2002/06/06 17:37:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4AlphaGEMProbability_h +#define G4AlphaGEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4AlphaGEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4AlphaGEMProbability(); + + ~G4AlphaGEMProbability() {} +private: + // Copy constructor + G4AlphaGEMProbability(const G4AlphaGEMProbability &right); + + const G4AlphaGEMProbability & operator=(const G4AlphaGEMProbability &right); + G4bool operator==(const G4AlphaGEMProbability &right) const; + G4bool operator!=(const G4AlphaGEMProbability &right) const; + + +private: + + virtual G4double CalcAlphaParam(const G4Fragment & fragment) const + { + return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ())); + } + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + G4double CCoeficient(const G4double aZ) const; + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh new file mode 100644 index 0000000000..d943995903 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4B10GEMChannel.hh,v 1.1 2002/06/06 17:37:09 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4B10GEMChannel_h +#define G4B10GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4B10GEMCoulombBarrier.hh" +#include "G4B10GEMProbability.hh" + +class G4B10GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4B10GEMChannel() : G4GEMChannel(10,5,"B10", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4B10GEMChannel() {}; + +private: + const G4B10GEMChannel & operator=(const G4B10GEMChannel & right); + + G4B10GEMChannel(const G4B10GEMChannel & right); + +public: + G4bool operator==(const G4B10GEMChannel & right) const; + G4bool operator!=(const G4B10GEMChannel & right) const; + +private: + + G4B10GEMCoulombBarrier theCoulombBarrier; + + G4B10GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh new file mode 100644 index 0000000000..98b2a55a64 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4B10GEMCoulombBarrier_h +#define G4B10GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4B10GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4B10GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,5) {}; + ~G4B10GEMCoulombBarrier() {}; + +private: + G4B10GEMCoulombBarrier(const G4B10GEMCoulombBarrier & right); + + const G4B10GEMCoulombBarrier & operator=(const G4B10GEMCoulombBarrier & right); + G4bool operator==(const G4B10GEMCoulombBarrier & right) const; + G4bool operator!=(const G4B10GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh new file mode 100644 index 0000000000..2c5b9c2119 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.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: G4B10GEMProbability.hh,v 1.1 2002/06/06 17:37:11 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4B10GEMProbability_h +#define G4B10GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4B10GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4B10GEMProbability(); + + ~G4B10GEMProbability() {} +private: + // Copy constructor + G4B10GEMProbability(const G4B10GEMProbability &right); + + const G4B10GEMProbability & operator=(const G4B10GEMProbability &right); + G4bool operator==(const G4B10GEMProbability &right) const; + G4bool operator!=(const G4B10GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh new file mode 100644 index 0000000000..2622d45711 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4B11GEMChannel.hh,v 1.1 2002/06/06 17:37:12 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4B11GEMChannel_h +#define G4B11GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4B11GEMCoulombBarrier.hh" +#include "G4B11GEMProbability.hh" + +class G4B11GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4B11GEMChannel() : G4GEMChannel(11,5,"B11", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4B11GEMChannel() {}; + +private: + const G4B11GEMChannel & operator=(const G4B11GEMChannel & right); + + G4B11GEMChannel(const G4B11GEMChannel & right); + +public: + G4bool operator==(const G4B11GEMChannel & right) const; + G4bool operator!=(const G4B11GEMChannel & right) const; + +private: + + G4B11GEMCoulombBarrier theCoulombBarrier; + + G4B11GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh new file mode 100644 index 0000000000..e50374d5d1 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4B11GEMCoulombBarrier_h +#define G4B11GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4B11GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4B11GEMCoulombBarrier() : G4GEMCoulombBarrierHE(11,5) {}; + ~G4B11GEMCoulombBarrier() {}; + +private: + G4B11GEMCoulombBarrier(const G4B11GEMCoulombBarrier & right); + + const G4B11GEMCoulombBarrier & operator=(const G4B11GEMCoulombBarrier & right); + G4bool operator==(const G4B11GEMCoulombBarrier & right) const; + G4bool operator!=(const G4B11GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh new file mode 100644 index 0000000000..1f89ecb75e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.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: G4B11GEMProbability.hh,v 1.1 2002/06/06 17:37:15 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4B11GEMProbability_h +#define G4B11GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4B11GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4B11GEMProbability(); + + ~G4B11GEMProbability() {} +private: + // Copy constructor + G4B11GEMProbability(const G4B11GEMProbability &right); + + const G4B11GEMProbability & operator=(const G4B11GEMProbability &right); + G4bool operator==(const G4B11GEMProbability &right) const; + G4bool operator!=(const G4B11GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh new file mode 100644 index 0000000000..e83e7139fa --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4B12GEMChannel.hh,v 1.1 2002/06/06 17:37:16 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4B12GEMChannel_h +#define G4B12GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4B12GEMCoulombBarrier.hh" +#include "G4B12GEMProbability.hh" + +class G4B12GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4B12GEMChannel() : G4GEMChannel(12,5,"B12", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4B12GEMChannel() {}; + +private: + const G4B12GEMChannel & operator=(const G4B12GEMChannel & right); + + G4B12GEMChannel(const G4B12GEMChannel & right); + +public: + G4bool operator==(const G4B12GEMChannel & right) const; + G4bool operator!=(const G4B12GEMChannel & right) const; + +private: + + G4B12GEMCoulombBarrier theCoulombBarrier; + + G4B12GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh new file mode 100644 index 0000000000..8921443849 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4B12GEMCoulombBarrier_h +#define G4B12GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4B12GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4B12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(12,5) {}; + ~G4B12GEMCoulombBarrier() {}; + +private: + G4B12GEMCoulombBarrier(const G4B12GEMCoulombBarrier & right); + + const G4B12GEMCoulombBarrier & operator=(const G4B12GEMCoulombBarrier & right); + G4bool operator==(const G4B12GEMCoulombBarrier & right) const; + G4bool operator!=(const G4B12GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh new file mode 100644 index 0000000000..1f5809066e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.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: G4B12GEMProbability.hh,v 1.1 2002/06/06 17:37:18 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4B12GEMProbability_h +#define G4B12GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4B12GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4B12GEMProbability(); + + ~G4B12GEMProbability() {} +private: + // Copy constructor + G4B12GEMProbability(const G4B12GEMProbability &right); + + const G4B12GEMProbability & operator=(const G4B12GEMProbability &right); + G4bool operator==(const G4B12GEMProbability &right) const; + G4bool operator!=(const G4B12GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh new file mode 100644 index 0000000000..4b7f064082 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4B13GEMChannel.hh,v 1.1 2002/06/06 17:37:19 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4B13GEMChannel_h +#define G4B13GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4B13GEMCoulombBarrier.hh" +#include "G4B13GEMProbability.hh" + +class G4B13GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4B13GEMChannel() : G4GEMChannel(13,5,"B13", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4B13GEMChannel() {}; + +private: + const G4B13GEMChannel & operator=(const G4B13GEMChannel & right); + + G4B13GEMChannel(const G4B13GEMChannel & right); + +public: + G4bool operator==(const G4B13GEMChannel & right) const; + G4bool operator!=(const G4B13GEMChannel & right) const; + +private: + + G4B13GEMCoulombBarrier theCoulombBarrier; + + G4B13GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh new file mode 100644 index 0000000000..4cb6cf893b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4B13GEMCoulombBarrier_h +#define G4B13GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4B13GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4B13GEMCoulombBarrier() : G4GEMCoulombBarrierHE(13,5) {}; + ~G4B13GEMCoulombBarrier() {}; + +private: + G4B13GEMCoulombBarrier(const G4B13GEMCoulombBarrier & right); + + const G4B13GEMCoulombBarrier & operator=(const G4B13GEMCoulombBarrier & right); + G4bool operator==(const G4B13GEMCoulombBarrier & right) const; + G4bool operator!=(const G4B13GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh new file mode 100644 index 0000000000..cc6d0bc5e0 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.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: G4B13GEMProbability.hh,v 1.1 2002/06/06 17:37:23 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4B13GEMProbability_h +#define G4B13GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4B13GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4B13GEMProbability(); + + ~G4B13GEMProbability() {} +private: + // Copy constructor + G4B13GEMProbability(const G4B13GEMProbability &right); + + const G4B13GEMProbability & operator=(const G4B13GEMProbability &right); + G4bool operator==(const G4B13GEMProbability &right) const; + G4bool operator!=(const G4B13GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh new file mode 100644 index 0000000000..b495ab5e30 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4B8GEMChannel.hh,v 1.1 2002/06/06 17:37:24 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4B8GEMChannel_h +#define G4B8GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4B8GEMCoulombBarrier.hh" +#include "G4B8GEMProbability.hh" + +class G4B8GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4B8GEMChannel() : G4GEMChannel(8,5,"B8", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4B8GEMChannel() {}; + +private: + const G4B8GEMChannel & operator=(const G4B8GEMChannel & right); + + G4B8GEMChannel(const G4B8GEMChannel & right); + +public: + G4bool operator==(const G4B8GEMChannel & right) const; + G4bool operator!=(const G4B8GEMChannel & right) const; + +private: + + G4B8GEMCoulombBarrier theCoulombBarrier; + + G4B8GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh new file mode 100644 index 0000000000..00ad238ccc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4B8GEMCoulombBarrier_h +#define G4B8GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4B8GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4B8GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,5) {}; + ~G4B8GEMCoulombBarrier() {}; + +private: + G4B8GEMCoulombBarrier(const G4B8GEMCoulombBarrier & right); + + const G4B8GEMCoulombBarrier & operator=(const G4B8GEMCoulombBarrier & right); + G4bool operator==(const G4B8GEMCoulombBarrier & right) const; + G4bool operator!=(const G4B8GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh new file mode 100644 index 0000000000..2f7ef45155 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.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: G4B8GEMProbability.hh,v 1.1 2002/06/06 17:37:26 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4B8GEMProbability_h +#define G4B8GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4B8GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4B8GEMProbability(); + + ~G4B8GEMProbability() {} +private: + // Copy constructor + G4B8GEMProbability(const G4B8GEMProbability &right); + + const G4B8GEMProbability & operator=(const G4B8GEMProbability &right); + G4bool operator==(const G4B8GEMProbability &right) const; + G4bool operator!=(const G4B8GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 66e5d8dc32..1f1ff40c01 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4B9FermiFragment.hh,v 1.5 2001/08/01 17:04:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..e857331516 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Be10GEMChannel.hh,v 1.1 2002/06/06 17:39:25 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Be10GEMChannel_h +#define G4Be10GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Be10GEMCoulombBarrier.hh" +#include "G4Be10GEMProbability.hh" + +class G4Be10GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Be10GEMChannel() : G4GEMChannel(10,4,"Be10", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Be10GEMChannel() {}; + +private: + const G4Be10GEMChannel & operator=(const G4Be10GEMChannel & right); + + G4Be10GEMChannel(const G4Be10GEMChannel & right); + +public: + G4bool operator==(const G4Be10GEMChannel & right) const; + G4bool operator!=(const G4Be10GEMChannel & right) const; + +private: + + G4Be10GEMCoulombBarrier theCoulombBarrier; + + G4Be10GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh new file mode 100644 index 0000000000..c6f95ddf51 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Be10GEMCoulombBarrier_h +#define G4Be10GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Be10GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Be10GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,4) {}; + ~G4Be10GEMCoulombBarrier() {}; + +private: + G4Be10GEMCoulombBarrier(const G4Be10GEMCoulombBarrier & right); + + const G4Be10GEMCoulombBarrier & operator=(const G4Be10GEMCoulombBarrier & right); + G4bool operator==(const G4Be10GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Be10GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh new file mode 100644 index 0000000000..c58ac99594 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.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: G4Be10GEMProbability.hh,v 1.1 2002/06/06 17:39:28 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Be10GEMProbability_h +#define G4Be10GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Be10GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Be10GEMProbability(); + + ~G4Be10GEMProbability() {} +private: + // Copy constructor + G4Be10GEMProbability(const G4Be10GEMProbability &right); + + const G4Be10GEMProbability & operator=(const G4Be10GEMProbability &right); + G4bool operator==(const G4Be10GEMProbability &right) const; + G4bool operator!=(const G4Be10GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh new file mode 100644 index 0000000000..2b7648c9ad --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Be11GEMChannel.hh,v 1.1 2002/06/06 17:39:30 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Be11GEMChannel_h +#define G4Be11GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Be11GEMCoulombBarrier.hh" +#include "G4Be11GEMProbability.hh" + +class G4Be11GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Be11GEMChannel() : G4GEMChannel(11,4,"Be11", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Be11GEMChannel() {}; + +private: + const G4Be11GEMChannel & operator=(const G4Be11GEMChannel & right); + + G4Be11GEMChannel(const G4Be11GEMChannel & right); + +public: + G4bool operator==(const G4Be11GEMChannel & right) const; + G4bool operator!=(const G4Be11GEMChannel & right) const; + +private: + + G4Be11GEMCoulombBarrier theCoulombBarrier; + + G4Be11GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh new file mode 100644 index 0000000000..362a64c897 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Be11GEMCoulombBarrier_h +#define G4Be11GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Be11GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Be11GEMCoulombBarrier() : G4GEMCoulombBarrierHE(11,4) {}; + ~G4Be11GEMCoulombBarrier() {}; + +private: + G4Be11GEMCoulombBarrier(const G4Be11GEMCoulombBarrier & right); + + const G4Be11GEMCoulombBarrier & operator=(const G4Be11GEMCoulombBarrier & right); + G4bool operator==(const G4Be11GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Be11GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh new file mode 100644 index 0000000000..ffe3fe944a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.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: G4Be11GEMProbability.hh,v 1.1 2002/06/06 17:39:32 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Be11GEMProbability_h +#define G4Be11GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Be11GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Be11GEMProbability(); + + ~G4Be11GEMProbability() {} +private: + // Copy constructor + G4Be11GEMProbability(const G4Be11GEMProbability &right); + + const G4Be11GEMProbability & operator=(const G4Be11GEMProbability &right); + G4bool operator==(const G4Be11GEMProbability &right) const; + G4bool operator!=(const G4Be11GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh new file mode 100644 index 0000000000..6ab7da72c0 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Be12GEMChannel.hh,v 1.1 2002/06/06 17:39:34 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Be12GEMChannel_h +#define G4Be12GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Be12GEMCoulombBarrier.hh" +#include "G4Be12GEMProbability.hh" + +class G4Be12GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Be12GEMChannel() : G4GEMChannel(12,4,"Be12", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Be12GEMChannel() {}; + +private: + const G4Be12GEMChannel & operator=(const G4Be12GEMChannel & right); + + G4Be12GEMChannel(const G4Be12GEMChannel & right); + +public: + G4bool operator==(const G4Be12GEMChannel & right) const; + G4bool operator!=(const G4Be12GEMChannel & right) const; + +private: + + G4Be12GEMCoulombBarrier theCoulombBarrier; + + G4Be12GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh new file mode 100644 index 0000000000..96b2414547 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Be12GEMCoulombBarrier_h +#define G4Be12GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Be12GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Be12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(12,4) {}; + ~G4Be12GEMCoulombBarrier() {}; + +private: + G4Be12GEMCoulombBarrier(const G4Be12GEMCoulombBarrier & right); + + const G4Be12GEMCoulombBarrier & operator=(const G4Be12GEMCoulombBarrier & right); + G4bool operator==(const G4Be12GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Be12GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh new file mode 100644 index 0000000000..c02be985ed --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.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: G4Be12GEMProbability.hh,v 1.1 2002/06/06 17:39:36 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Be12GEMProbability_h +#define G4Be12GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Be12GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Be12GEMProbability(); + + ~G4Be12GEMProbability() {} +private: + // Copy constructor + G4Be12GEMProbability(const G4Be12GEMProbability &right); + + const G4Be12GEMProbability & operator=(const G4Be12GEMProbability &right); + G4bool operator==(const G4Be12GEMProbability &right) const; + G4bool operator!=(const G4Be12GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh new file mode 100644 index 0000000000..d1ea5e170e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Be7GEMChannel.hh,v 1.1 2002/06/06 17:39:37 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Be7GEMChannel_h +#define G4Be7GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Be7GEMCoulombBarrier.hh" +#include "G4Be7GEMProbability.hh" + +class G4Be7GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Be7GEMChannel() : G4GEMChannel(7,4,"Be7", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Be7GEMChannel() {}; + +private: + const G4Be7GEMChannel & operator=(const G4Be7GEMChannel & right); + + G4Be7GEMChannel(const G4Be7GEMChannel & right); + +public: + G4bool operator==(const G4Be7GEMChannel & right) const; + G4bool operator!=(const G4Be7GEMChannel & right) const; + +private: + + G4Be7GEMCoulombBarrier theCoulombBarrier; + + G4Be7GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh new file mode 100644 index 0000000000..99b7031ead --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Be7GEMCoulombBarrier_h +#define G4Be7GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Be7GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Be7GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,4) {}; + ~G4Be7GEMCoulombBarrier() {}; + +private: + G4Be7GEMCoulombBarrier(const G4Be7GEMCoulombBarrier & right); + + const G4Be7GEMCoulombBarrier & operator=(const G4Be7GEMCoulombBarrier & right); + G4bool operator==(const G4Be7GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Be7GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh new file mode 100644 index 0000000000..b727e06e5a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.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: G4Be7GEMProbability.hh,v 1.1 2002/06/06 17:39:40 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Be7GEMProbability_h +#define G4Be7GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Be7GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Be7GEMProbability(); + + ~G4Be7GEMProbability() {} +private: + // Copy constructor + G4Be7GEMProbability(const G4Be7GEMProbability &right); + + const G4Be7GEMProbability & operator=(const G4Be7GEMProbability &right); + G4bool operator==(const G4Be7GEMProbability &right) const; + G4bool operator!=(const G4Be7GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 4ee180185a..fcccb9a521 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be8FermiFragment.hh,v 1.5 2001/08/01 17:04:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..25eda3a599 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Be9GEMChannel.hh,v 1.1 2002/06/06 17:40:20 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Be9GEMChannel_h +#define G4Be9GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Be9GEMCoulombBarrier.hh" +#include "G4Be9GEMProbability.hh" + +class G4Be9GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Be9GEMChannel() : G4GEMChannel(9,4,"Be9", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Be9GEMChannel() {}; + +private: + const G4Be9GEMChannel & operator=(const G4Be9GEMChannel & right); + + G4Be9GEMChannel(const G4Be9GEMChannel & right); + +public: + G4bool operator==(const G4Be9GEMChannel & right) const; + G4bool operator!=(const G4Be9GEMChannel & right) const; + +private: + + G4Be9GEMCoulombBarrier theCoulombBarrier; + + G4Be9GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh new file mode 100644 index 0000000000..06b3379a34 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Be9GEMCoulombBarrier_h +#define G4Be9GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Be9GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Be9GEMCoulombBarrier() : G4GEMCoulombBarrierHE(9,4) {}; + ~G4Be9GEMCoulombBarrier() {}; + +private: + G4Be9GEMCoulombBarrier(const G4Be9GEMCoulombBarrier & right); + + const G4Be9GEMCoulombBarrier & operator=(const G4Be9GEMCoulombBarrier & right); + G4bool operator==(const G4Be9GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Be9GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh new file mode 100644 index 0000000000..4266966eec --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.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: G4Be9GEMProbability.hh,v 1.1 2002/06/06 17:40:22 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Be9GEMProbability_h +#define G4Be9GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Be9GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Be9GEMProbability(); + + ~G4Be9GEMProbability() {} +private: + // Copy constructor + G4Be9GEMProbability(const G4Be9GEMProbability &right); + + const G4Be9GEMProbability & operator=(const G4Be9GEMProbability &right); + G4bool operator==(const G4Be9GEMProbability &right) const; + G4bool operator!=(const G4Be9GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh new file mode 100644 index 0000000000..6592469553 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C10GEMChannel.hh,v 1.1 2002/06/06 17:40:23 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4C10GEMChannel_h +#define G4C10GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4C10GEMCoulombBarrier.hh" +#include "G4C10GEMProbability.hh" + +class G4C10GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4C10GEMChannel() : G4GEMChannel(10,6,"C10", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4C10GEMChannel() {}; + +private: + const G4C10GEMChannel & operator=(const G4C10GEMChannel & right); + + G4C10GEMChannel(const G4C10GEMChannel & right); + +public: + G4bool operator==(const G4C10GEMChannel & right) const; + G4bool operator!=(const G4C10GEMChannel & right) const; + +private: + + G4C10GEMCoulombBarrier theCoulombBarrier; + + G4C10GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh new file mode 100644 index 0000000000..bc339c500b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4C10GEMCoulombBarrier_h +#define G4C10GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4C10GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4C10GEMCoulombBarrier() : G4GEMCoulombBarrierHE(10,6) {}; + ~G4C10GEMCoulombBarrier() {}; + +private: + G4C10GEMCoulombBarrier(const G4C10GEMCoulombBarrier & right); + + const G4C10GEMCoulombBarrier & operator=(const G4C10GEMCoulombBarrier & right); + G4bool operator==(const G4C10GEMCoulombBarrier & right) const; + G4bool operator!=(const G4C10GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh new file mode 100644 index 0000000000..8cf11451eb --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.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: G4C10GEMProbability.hh,v 1.1 2002/06/06 17:40:25 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4C10GEMProbability_h +#define G4C10GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4C10GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4C10GEMProbability(); + + ~G4C10GEMProbability() {} +private: + // Copy constructor + G4C10GEMProbability(const G4C10GEMProbability &right); + + const G4C10GEMProbability & operator=(const G4C10GEMProbability &right); + G4bool operator==(const G4C10GEMProbability &right) const; + G4bool operator!=(const G4C10GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh new file mode 100644 index 0000000000..7329598d6f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C11GEMChannel.hh,v 1.1 2002/06/06 17:40:26 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4C11GEMChannel_h +#define G4C11GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4C11GEMCoulombBarrier.hh" +#include "G4C11GEMProbability.hh" + +class G4C11GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4C11GEMChannel() : G4GEMChannel(11,6,"C11", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4C11GEMChannel() {}; + +private: + const G4C11GEMChannel & operator=(const G4C11GEMChannel & right); + + G4C11GEMChannel(const G4C11GEMChannel & right); + +public: + G4bool operator==(const G4C11GEMChannel & right) const; + G4bool operator!=(const G4C11GEMChannel & right) const; + +private: + + G4C11GEMCoulombBarrier theCoulombBarrier; + + G4C11GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh new file mode 100644 index 0000000000..2d17b0b820 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4C11GEMCoulombBarrier_h +#define G4C11GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4C11GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4C11GEMCoulombBarrier() : G4GEMCoulombBarrierHE(11,6) {}; + ~G4C11GEMCoulombBarrier() {}; + +private: + G4C11GEMCoulombBarrier(const G4C11GEMCoulombBarrier & right); + + const G4C11GEMCoulombBarrier & operator=(const G4C11GEMCoulombBarrier & right); + G4bool operator==(const G4C11GEMCoulombBarrier & right) const; + G4bool operator!=(const G4C11GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh new file mode 100644 index 0000000000..a2be34c870 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.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: G4C11GEMProbability.hh,v 1.1 2002/06/06 17:40:28 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4C11GEMProbability_h +#define G4C11GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4C11GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4C11GEMProbability(); + + ~G4C11GEMProbability() {} +private: + // Copy constructor + G4C11GEMProbability(const G4C11GEMProbability &right); + + const G4C11GEMProbability & operator=(const G4C11GEMProbability &right); + G4bool operator==(const G4C11GEMProbability &right) const; + G4bool operator!=(const G4C11GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh new file mode 100644 index 0000000000..d569bf278c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C12GEMChannel.hh,v 1.1 2002/06/06 17:40:29 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4C12GEMChannel_h +#define G4C12GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4C12GEMCoulombBarrier.hh" +#include "G4C12GEMProbability.hh" + +class G4C12GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4C12GEMChannel() : G4GEMChannel(12,6,"C12", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4C12GEMChannel() {}; + +private: + const G4C12GEMChannel & operator=(const G4C12GEMChannel & right); + + G4C12GEMChannel(const G4C12GEMChannel & right); + +public: + G4bool operator==(const G4C12GEMChannel & right) const; + G4bool operator!=(const G4C12GEMChannel & right) const; + +private: + + G4C12GEMCoulombBarrier theCoulombBarrier; + + G4C12GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh new file mode 100644 index 0000000000..eda612fb3d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4C12GEMCoulombBarrier_h +#define G4C12GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4C12GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4C12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(12,6) {}; + ~G4C12GEMCoulombBarrier() {}; + +private: + G4C12GEMCoulombBarrier(const G4C12GEMCoulombBarrier & right); + + const G4C12GEMCoulombBarrier & operator=(const G4C12GEMCoulombBarrier & right); + G4bool operator==(const G4C12GEMCoulombBarrier & right) const; + G4bool operator!=(const G4C12GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh new file mode 100644 index 0000000000..b5bdb70525 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.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: G4C12GEMProbability.hh,v 1.1 2002/06/06 17:40:31 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4C12GEMProbability_h +#define G4C12GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4C12GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4C12GEMProbability(); + + ~G4C12GEMProbability() {} +private: + // Copy constructor + G4C12GEMProbability(const G4C12GEMProbability &right); + + const G4C12GEMProbability & operator=(const G4C12GEMProbability &right); + G4bool operator==(const G4C12GEMProbability &right) const; + G4bool operator!=(const G4C12GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh new file mode 100644 index 0000000000..b09ccfa7dc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C13GEMChannel.hh,v 1.1 2002/06/06 17:40:32 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4C13GEMChannel_h +#define G4C13GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4C13GEMCoulombBarrier.hh" +#include "G4C13GEMProbability.hh" + +class G4C13GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4C13GEMChannel() : G4GEMChannel(13,6,"C13", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4C13GEMChannel() {}; + +private: + const G4C13GEMChannel & operator=(const G4C13GEMChannel & right); + + G4C13GEMChannel(const G4C13GEMChannel & right); + +public: + G4bool operator==(const G4C13GEMChannel & right) const; + G4bool operator!=(const G4C13GEMChannel & right) const; + +private: + + G4C13GEMCoulombBarrier theCoulombBarrier; + + G4C13GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh new file mode 100644 index 0000000000..2d83f29b3b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4C13GEMCoulombBarrier_h +#define G4C13GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4C13GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4C13GEMCoulombBarrier() : G4GEMCoulombBarrierHE(13,6) {}; + ~G4C13GEMCoulombBarrier() {}; + +private: + G4C13GEMCoulombBarrier(const G4C13GEMCoulombBarrier & right); + + const G4C13GEMCoulombBarrier & operator=(const G4C13GEMCoulombBarrier & right); + G4bool operator==(const G4C13GEMCoulombBarrier & right) const; + G4bool operator!=(const G4C13GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh new file mode 100644 index 0000000000..02c2dcc1af --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.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: G4C13GEMProbability.hh,v 1.1 2002/06/06 17:40:35 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4C13GEMProbability_h +#define G4C13GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4C13GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4C13GEMProbability(); + + ~G4C13GEMProbability() {} +private: + // Copy constructor + G4C13GEMProbability(const G4C13GEMProbability &right); + + const G4C13GEMProbability & operator=(const G4C13GEMProbability &right); + G4bool operator==(const G4C13GEMProbability &right) const; + G4bool operator!=(const G4C13GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh new file mode 100644 index 0000000000..11e74a1c0f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C14GEMChannel.hh,v 1.1 2002/06/06 17:40:36 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4C14GEMChannel_h +#define G4C14GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4C14GEMCoulombBarrier.hh" +#include "G4C14GEMProbability.hh" + +class G4C14GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4C14GEMChannel() : G4GEMChannel(14,6,"C14", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4C14GEMChannel() {}; + +private: + const G4C14GEMChannel & operator=(const G4C14GEMChannel & right); + + G4C14GEMChannel(const G4C14GEMChannel & right); + +public: + G4bool operator==(const G4C14GEMChannel & right) const; + G4bool operator!=(const G4C14GEMChannel & right) const; + +private: + + G4C14GEMCoulombBarrier theCoulombBarrier; + + G4C14GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh new file mode 100644 index 0000000000..b5dfcfb884 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4C14GEMCoulombBarrier_h +#define G4C14GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4C14GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4C14GEMCoulombBarrier() : G4GEMCoulombBarrierHE(14,6) {}; + ~G4C14GEMCoulombBarrier() {}; + +private: + G4C14GEMCoulombBarrier(const G4C14GEMCoulombBarrier & right); + + const G4C14GEMCoulombBarrier & operator=(const G4C14GEMCoulombBarrier & right); + G4bool operator==(const G4C14GEMCoulombBarrier & right) const; + G4bool operator!=(const G4C14GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh new file mode 100644 index 0000000000..4015b8d441 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.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: G4C14GEMProbability.hh,v 1.1 2002/06/06 17:40:39 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4C14GEMProbability_h +#define G4C14GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4C14GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4C14GEMProbability(); + + ~G4C14GEMProbability() {} +private: + // Copy constructor + G4C14GEMProbability(const G4C14GEMProbability &right); + + const G4C14GEMProbability & operator=(const G4C14GEMProbability &right); + G4bool operator==(const G4C14GEMProbability &right) const; + G4bool operator!=(const G4C14GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh new file mode 100644 index 0000000000..5c7ea97ce2 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C15GEMChannel.hh,v 1.1 2002/06/06 17:40:40 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4C15GEMChannel_h +#define G4C15GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4C15GEMCoulombBarrier.hh" +#include "G4C15GEMProbability.hh" + +class G4C15GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4C15GEMChannel() : G4GEMChannel(15,6,"C15", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4C15GEMChannel() {}; + +private: + const G4C15GEMChannel & operator=(const G4C15GEMChannel & right); + + G4C15GEMChannel(const G4C15GEMChannel & right); + +public: + G4bool operator==(const G4C15GEMChannel & right) const; + G4bool operator!=(const G4C15GEMChannel & right) const; + +private: + + G4C15GEMCoulombBarrier theCoulombBarrier; + + G4C15GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh new file mode 100644 index 0000000000..2bf19c7eff --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4C15GEMCoulombBarrier_h +#define G4C15GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4C15GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4C15GEMCoulombBarrier() : G4GEMCoulombBarrierHE(15,6) {}; + ~G4C15GEMCoulombBarrier() {}; + +private: + G4C15GEMCoulombBarrier(const G4C15GEMCoulombBarrier & right); + + const G4C15GEMCoulombBarrier & operator=(const G4C15GEMCoulombBarrier & right); + G4bool operator==(const G4C15GEMCoulombBarrier & right) const; + G4bool operator!=(const G4C15GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh new file mode 100644 index 0000000000..40079300cc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.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: G4C15GEMProbability.hh,v 1.1 2002/06/06 17:40:42 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4C15GEMProbability_h +#define G4C15GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4C15GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4C15GEMProbability(); + + ~G4C15GEMProbability() {} +private: + // Copy constructor + G4C15GEMProbability(const G4C15GEMProbability &right); + + const G4C15GEMProbability & operator=(const G4C15GEMProbability &right); + G4bool operator==(const G4C15GEMProbability &right) const; + G4bool operator!=(const G4C15GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh new file mode 100644 index 0000000000..55f9e73f69 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C16GEMChannel.hh,v 1.1 2002/06/06 17:40:43 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4C16GEMChannel_h +#define G4C16GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4C16GEMCoulombBarrier.hh" +#include "G4C16GEMProbability.hh" + +class G4C16GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4C16GEMChannel() : G4GEMChannel(16,6,"C16", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4C16GEMChannel() {}; + +private: + const G4C16GEMChannel & operator=(const G4C16GEMChannel & right); + + G4C16GEMChannel(const G4C16GEMChannel & right); + +public: + G4bool operator==(const G4C16GEMChannel & right) const; + G4bool operator!=(const G4C16GEMChannel & right) const; + +private: + + G4C16GEMCoulombBarrier theCoulombBarrier; + + G4C16GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh new file mode 100644 index 0000000000..8a098121cf --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4C16GEMCoulombBarrier_h +#define G4C16GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4C16GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4C16GEMCoulombBarrier() : G4GEMCoulombBarrierHE(16,6) {}; + ~G4C16GEMCoulombBarrier() {}; + +private: + G4C16GEMCoulombBarrier(const G4C16GEMCoulombBarrier & right); + + const G4C16GEMCoulombBarrier & operator=(const G4C16GEMCoulombBarrier & right); + G4bool operator==(const G4C16GEMCoulombBarrier & right) const; + G4bool operator!=(const G4C16GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh new file mode 100644 index 0000000000..d3f389f9bc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.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: G4C16GEMProbability.hh,v 1.1 2002/06/06 17:40:46 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4C16GEMProbability_h +#define G4C16GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4C16GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4C16GEMProbability(); + + ~G4C16GEMProbability() {} +private: + // Copy constructor + G4C16GEMProbability(const G4C16GEMProbability &right); + + const G4C16GEMProbability & operator=(const G4C16GEMProbability &right); + G4bool operator==(const G4C16GEMProbability &right) const; + G4bool operator!=(const G4C16GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 d17526d480..2d117df76e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertPairingCorrections.hh,v 1.5 2001/08/01 17:04:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronGilbertPairingCorrections.hh,v 1.7 2002/01/15 12:01:51 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -33,44 +33,74 @@ #include "globals.hh" + +//#define verbose 1 + class G4CameronGilbertPairingCorrections { private: - // Dummy constructor - G4CameronGilbertPairingCorrections(G4double dummy); + // Dummy constructor + G4CameronGilbertPairingCorrections(); - static G4CameronGilbertPairingCorrections theInstance; + static G4CameronGilbertPairingCorrections* theInstance; public: - - ~G4CameronGilbertPairingCorrections() {}; + static G4CameronGilbertPairingCorrections* GetInstance(); - G4double GetPairingZ(const G4int Z) { - if (Z <= ZTableSize && Z > 1) return PairingZTable[Z-1]*MeV; - else { - G4cerr << "G4CameronGilbertPairingCorrections: out of table for Z = " << Z << G4endl; - return 0.0; - } + ~G4CameronGilbertPairingCorrections() {}; + + G4double GetPairingCorrection(const G4int A, const G4int Z) const + { + return GetPairingZ(Z) + GetPairingN(A-Z); + } + + G4double GetPairingZ(const G4int Z) const + { + if (IsInTableThisZ(Z)) return PairingZTable[Z-ZTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronGilbertPairingCorrections: out of table for Z = " << Z << G4endl; +#endif + return 0.0; } + } + + G4bool IsInTableThisZ(const G4int Z) const + { + if ( Z >= ZTableMin && Z <= ZTableMax ) return true; + else return false; + } + - G4double GetPairingN(const G4int N) { - if (N <= NTableSize && N > 0) return PairingNTable[N-1]*MeV; - else { - G4cerr << "G4CameronGilbertPairingCorrections: out of table for N = " << N << G4endl; - return 0.0; - } + G4double GetPairingN(const G4int N) const + { + if (IsInTableThisN(N)) return PairingNTable[N-NTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronGilbertPairingCorrections: out of table for N = " << N << G4endl; +#endif + return 0.0; } - - - enum { ZTableSize = 98, NTableSize = 150 }; + } + + G4bool IsInTableThisN(const G4int N) const + { + if ( N >= NTableMin && N <= NTableMax ) return true; + else return false; + } + + + enum { ZTableSize = 88, NTableSize = 140, ZTableMin = 11, ZTableMax = 98, + NTableMin = 11, NTableMax = 150 }; + private: - static G4double PairingZTable[ZTableSize]; + static const G4double PairingZTable[ZTableSize]; - static G4double PairingNTable[NTableSize]; + static const G4double PairingNTable[NTableSize]; }; #endif 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 5b3b6a7dd0..43d3d7739f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertShellCorrections.hh,v 1.5 2001/08/01 17:04:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronGilbertShellCorrections.hh,v 1.7 2002/01/15 12:02:45 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -32,44 +32,75 @@ #include "globals.hh" +//#define verbose 1 + class G4CameronGilbertShellCorrections { private: - // Dummy constructor - G4CameronGilbertShellCorrections(G4double dummy); - - static G4CameronGilbertShellCorrections theInstance; + + G4CameronGilbertShellCorrections(); + + static G4CameronGilbertShellCorrections* theInstance; public: - - ~G4CameronGilbertShellCorrections() {}; + + static G4CameronGilbertShellCorrections* GetInstance(); - G4double GetShellZ(const G4int Z) const { - if (Z <= ZTableSize && Z > 1) return ShellZTable[Z-1]*MeV; - else { - G4cerr << "G4CameronGilbertShellCorrections: out of table for Z = " << Z << G4endl; - return 0.0; - } + ~G4CameronGilbertShellCorrections() {}; + + G4double GetShellCorrection(const G4int A, const G4int Z) const + { + return GetShellZ(Z) + GetShellN(A-Z); + } + + G4double GetShellZ(const G4int Z) const + { + if (IsInTableThisZ(Z)) return ShellZTable[Z-ZTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronGilbertShellCorrections: out of table for Z = " << Z << G4endl; +#endif + return 0.0; } + } + + G4bool IsInTableThisZ(const G4int Z) const + { + if ( Z >= ZTableMin && Z <= ZTableMax ) return true; + else return false; + } + - G4double GetShellN(const G4int N) const { - if (N <= NTableSize && N > 0) return ShellNTable[N-1]*MeV; - else { - G4cerr << "G4CameronGilbertShellCorrections: out of table for N = " << N << G4endl; - return 0.0; - } + G4double GetShellN(const G4int N) const + { + if (IsInTableThisN(N)) return ShellNTable[N-NTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronGilbertShellCorrections: out of table for N = " << N << G4endl; +#endif + return 0.0; } - - - enum { ZTableSize = 98, NTableSize = 150 }; + } + + G4bool IsInTableThisN(const G4int N) const + { + if ( N >= NTableMin && N <= NTableMax ) return true; + else return false; + } + + + + enum { ZTableSize = 88, NTableSize = 140, ZTableMin = 11, ZTableMax = 98, + NTableMin = 11, NTableMax = 150 }; + private: - - - static const G4double ShellZTable[ZTableSize]; - - static const G4double ShellNTable[NTableSize]; + + + static const G4double ShellZTable[ZTableSize]; + + static const G4double ShellNTable[NTableSize]; }; #endif 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 c89d53ca20..64a0fe683a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronShellPlusPairingCorrections.hh,v 1.5 2001/08/01 17:04:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronShellPlusPairingCorrections.hh,v 1.8 2002/06/07 15:53:50 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -32,43 +32,53 @@ #include "globals.hh" +//#define verbose 1 + class G4CameronShellPlusPairingCorrections { private: - // Dummy constructor - G4CameronShellPlusPairingCorrections(G4double dummy); + // Dummy constructor + G4CameronShellPlusPairingCorrections(); - static G4CameronShellPlusPairingCorrections theInstance; + static G4CameronShellPlusPairingCorrections* theInstance; public: - ~G4CameronShellPlusPairingCorrections() {}; + static G4CameronShellPlusPairingCorrections* GetInstance(); - static G4double GetShellPlusPairingZ(const G4int Z) { - if (Z <= TableSize && Z > 1) return SPZTable[Z-1]*MeV; - else { - G4cerr << "G4CameronShellPlusPairingCorrections: out of table for Z = " << Z << G4endl; - return 0.0; - } + ~G4CameronShellPlusPairingCorrections() {}; + + G4double GetShellPlusPairingZ(const G4int Z) const + { + if (Z <= TableSize && Z > 1) return SPZTable[Z-1]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronShellPlusPairingCorrections: out of table for Z = " << Z << G4endl; +#endif + return 0.0; } - - static G4double GetShellPlusPairingN(const G4int N) { - if (N <= TableSize && N > 0) return SPNTable[N-1]*MeV; - else { - G4cerr << "G4CameronShellPlusPairingCorrections: out of table for N = " << N << G4endl; - return 0.0; - } + } + + G4double GetShellPlusPairingN(const G4int N) const + { + if (N <= TableSize && N > 0) return SPNTable[N-1]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronShellPlusPairingCorrections: out of table for N = " << N << G4endl; +#endif + return 0.0; } - - - enum { TableSize = 200 }; - + } + + + enum { TableSize = 200 }; + private: - - static G4double SPZTable[TableSize]; - - static G4double SPNTable[TableSize]; - + + static const G4double SPZTable[TableSize]; + + static const G4double SPNTable[TableSize]; + }; #endif 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 8843b94a29..0914e409e5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfPairingCorrections.hh,v 1.5 2001/08/01 17:04:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronTruranHilfPairingCorrections.hh,v 1.7 2002/01/15 12:03:12 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -32,37 +32,66 @@ #include "globals.hh" +//#define verbose 1 + class G4CameronTruranHilfPairingCorrections { private: - // Dummy constructor - G4CameronTruranHilfPairingCorrections(G4double dummy); + + G4CameronTruranHilfPairingCorrections(); - static G4CameronTruranHilfPairingCorrections theInstance; + static G4CameronTruranHilfPairingCorrections* theInstance; public: - - ~G4CameronTruranHilfPairingCorrections() {}; + static G4CameronTruranHilfPairingCorrections* GetInstance(); - G4double GetPairingZ(const G4int Z) const { - if (Z <= ZTableSize && Z > 1) return PairingZTable[Z-1]*MeV; - else { - G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for Z = " << Z << G4endl; - return 0.0; - } + ~G4CameronTruranHilfPairingCorrections() {}; + + G4double GetParingCorrection(const G4int A, const G4int Z) const + { + return GetPairingZ(Z) + GetPairingN(A-Z); + } + + + G4double GetPairingZ(const G4int Z) const + { + if (IsInTableThisZ(Z)) return -PairingZTable[Z-ZTableMin]*MeV; // Notice the sign + else { +#ifdef verbose + G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for Z = " << Z << G4endl; +#endif + return 0.0; } + } + + G4bool IsInTableThisZ(const G4int Z) const + { + if ( Z >= ZTableMin && Z <= ZTableMax ) return true; + else return false; + } + - G4double GetPairingN(const G4int N) const { - if (N <= NTableSize && N > 0) return PairingNTable[N-1]*MeV; - else { - G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for N = " << N << G4endl; - return 0.0; - } + G4double GetPairingN(const G4int N) const + { + if (IsInTableThisN(N)) return -PairingNTable[N-NTableMin]*MeV; // Notice the sign + else { +#ifdef verbose + G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for N = " << N << G4endl; +#endif + return 0.0; } - - - enum { ZTableSize = 102, NTableSize = 155 }; + } + + G4bool IsInTableThisN(const G4int N) const + { + if ( N >= NTableMin && N <= NTableMax ) return true; + else return false; + } + + + enum { ZTableSize = 93, NTableSize = 146, ZTableMin = 10, ZTableMax = 102, + NTableMin = 10, NTableMax = 155 }; private: 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 7e6e2db0ce..62f484f126 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfShellCorrections.hh,v 1.5 2001/08/01 17:04:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronTruranHilfShellCorrections.hh,v 1.7 2002/01/15 12:03:23 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -32,45 +32,71 @@ #include "globals.hh" +//#define verbose 1 + class G4CameronTruranHilfShellCorrections { private: - // Dummy constructor - G4CameronTruranHilfShellCorrections(G4double dummy); + G4CameronTruranHilfShellCorrections(); - static G4CameronTruranHilfShellCorrections theInstance; + static G4CameronTruranHilfShellCorrections* theInstance; public: - - ~G4CameronTruranHilfShellCorrections() {}; + static G4CameronTruranHilfShellCorrections* GetInstance(); + + ~G4CameronTruranHilfShellCorrections() {}; - static G4double GetShellZ(const G4int Z) { - if (Z <= ZTableSize && Z > 1) return ShellZTable[Z-1]*MeV; - else { - G4cerr << "G4CameronTruranHilfShellCorrections: out of table for Z = " << Z << G4endl; - return 0.0; - } + G4double GetShellCorrection(const G4int A, const G4int Z) const + { + return GetShellZ(Z) + GetShellN(A-Z); + } + + G4double GetShellZ(const G4int Z) const + { + if (IsInTableThisZ(Z)) return ShellZTable[Z-ZTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronTruranHilfShellCorrections: out of table for Z = " << Z << G4endl; +#endif + return 0.0; } - - static G4double GetShellN(const G4int N) { - if (N <= NTableSize && N > 0) return ShellNTable[N-1]*MeV; - else { - G4cerr << "G4CameronTruranHilfShellCorrections: out of table for N = " << N << G4endl; - return 0.0; - } + } + + G4bool IsInTableThisZ(const G4int Z) const + { + if ( Z >= ZTableMin && Z <= ZTableMax ) return true; + else return false; + } + + G4double GetShellN(const G4int N) const + { + if (IsInTableThisN(N)) return ShellNTable[N-NTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CameronTruranHilfShellCorrections: out of table for N = " << N << G4endl; +#endif + return 0.0; } - - - enum { ZTableSize = 102, NTableSize = 155 }; + } + + G4bool IsInTableThisN(const G4int N) const + { + if ( N >= NTableMin && N <= NTableMax ) return true; + else return false; + } + + enum { ZTableSize = 93, NTableSize = 146, ZTableMin = 10, ZTableMax = 102, + NTableMin = 10, NTableMax = 155 }; + private: - static G4double ShellZTable[ZTableSize]; - - static G4double ShellNTable[NTableSize]; + static const G4double ShellZTable[ZTableSize]; + + static const G4double ShellNTable[NTableSize]; }; #endif 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 b9c1989d4c..39817e5063 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompetitiveFission.hh,v 1.6 2001/08/01 17:04:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CompetitiveFission.hh,v 1.7 2002/01/15 12:22:37 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -44,6 +44,7 @@ #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 d070a49b8c..894e3361e4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4ConstantLevelDensityParameter.hh,v 1.5 2001/08/01 17:04:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations (photon evaporation) // by C. Dallapiccola (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh new file mode 100644 index 0000000000..13cde8ee06 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.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: G4CookPairingCorrections.hh,v 1.3 2002/06/07 15:53:50 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#ifndef G4CookPairingCorrections_h +#define G4CookPairingCorrections_h 1 + +#include "globals.hh" + +//#define verbose 1 + +class G4CookPairingCorrections +{ +private: + G4CookPairingCorrections(); + + static G4CookPairingCorrections* theInstance; + + +public: + static G4CookPairingCorrections* GetInstance(); + + ~G4CookPairingCorrections() {}; + + G4double GetParingCorrection(const G4int A, const G4int Z) const { + return GetPairingZ(Z) + GetPairingN(A-Z); + } + + + G4double GetPairingZ(const G4int Z) const { + if ( this->IsInTableThisZ(Z) ) return PairingZTable[Z-ZTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CookPairingCorrections: out of table for Z = " << Z << G4endl; +#endif + return 0.0; + } + } + + G4bool IsInTableThisZ(const G4int Z) const { + if ( Z >= ZTableMin && Z <= ZTableMax ) return true; + else return false; + } + + G4double GetPairingN(const G4int N) const { + if ( this->IsInTableThisN(N) ) return PairingNTable[N-NTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CookPairingCorrections: out of table for N = " << N << G4endl; +#endif + return 0.0; + } + } + + G4bool IsInTableThisN(const G4int N) const { + if ( N >= NTableMin && N <= NTableMax ) return true; + else return false; + } + + enum { ZTableSize = 68, NTableSize = 118, ZTableMin = 28, ZTableMax = 95, + NTableMin = 33, NTableMax = 150 }; +private: + + + + static const G4double PairingZTable[ZTableSize]; + + static const G4double PairingNTable[NTableSize]; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh new file mode 100644 index 0000000000..8e45093d0d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.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. * +// ******************************************************************** +// +// +// $Id: G4CookShellCorrections.hh,v 1.3 2002/06/07 15:53:50 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#ifndef G4CookShellCorrections_h +#define G4CookShellCorrections_h 1 + +#include "globals.hh" + +//#define verbose 1 + +class G4CookShellCorrections +{ +private: + + G4CookShellCorrections(); + + static G4CookShellCorrections* theInstance; + + +public: + + static G4CookShellCorrections* GetInstance(); + + ~G4CookShellCorrections() {}; + + G4double GetShellCorrection(const G4int A, const G4int Z) const + { + return GetShellZ(Z) + GetShellN(A-Z); + } + + G4double GetShellZ(const G4int Z) const + { + if ( this->IsInTableThisZ(Z) ) return ShellZTable[Z-ZTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CookShellCorrections: out of table for Z = " << Z << G4endl; +#endif + return 0.0; + } + } + + G4bool IsInTableThisZ(const G4int Z) const + { + if ( Z >= ZTableMin && Z <= ZTableMax ) return true; + else return false; + } + + G4double GetShellN(const G4int N) const + { + if ( this->IsInTableThisN(N) ) return ShellNTable[N-NTableMin]*MeV; + else { +#ifdef verbose + G4cerr << "G4CookShellCorrections: out of table for N = " << N << G4endl; +#endif + return 0.0; + } + } + + G4bool IsInTableThisN(const G4int N) const + { + if ( N >= NTableMin && N <= NTableMax ) return true; + else return false; + } + + enum { ZTableSize = 68, NTableSize = 118, ZTableMin = 28, ZTableMax = 95, + NTableMin = 33, NTableMax = 150 }; +private: + + + + static const G4double ShellZTable[ZTableSize]; + + static const G4double ShellNTable[NTableSize]; + +}; +#endif 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 e36c5a54f0..cacbc67c6b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4CoulombBarrier.hh,v 1.5 2001/10/08 17:15:48 larazb Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 ec08780b17..d1a6a46cab 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronCoulombBarrier.hh,v 1.3 2001/08/01 17:04:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 308f1aefe0..8dfe63e825 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationChannel.hh,v 1.4 2001/08/01 17:04:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 494bf55d18..06bb1ea42c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationProbability.hh,v 1.4 2001/08/01 17:04:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..0702c8bb02 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4DeuteronGEMChannel.hh,v 1.1 2002/06/06 17:41:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4DeuteronGEMChannel_h +#define G4DeuteronGEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4DeuteronCoulombBarrier.hh" +#include "G4DeuteronGEMProbability.hh" + +class G4DeuteronGEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4DeuteronGEMChannel() : G4GEMChannel(2,1,"deuteron", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + + } + // destructor + ~G4DeuteronGEMChannel() {}; + +private: + const G4DeuteronGEMChannel & operator=(const G4DeuteronGEMChannel & right); + + G4DeuteronGEMChannel(const G4DeuteronGEMChannel & right); + +public: + G4bool operator==(const G4DeuteronGEMChannel & right) const; + G4bool operator!=(const G4DeuteronGEMChannel & right) const; + +private: + + G4DeuteronCoulombBarrier theCoulombBarrier; + + G4DeuteronGEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh new file mode 100644 index 0000000000..7853f99dea --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.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: G4DeuteronGEMProbability.hh,v 1.1 2002/06/06 17:41:08 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4DeuteronGEMProbability_h +#define G4DeuteronGEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4DeuteronGEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4DeuteronGEMProbability(); + + ~G4DeuteronGEMProbability() {} +private: + // Copy constructor + G4DeuteronGEMProbability(const G4DeuteronGEMProbability &right); + + const G4DeuteronGEMProbability & operator=(const G4DeuteronGEMProbability &right); + G4bool operator==(const G4DeuteronGEMProbability &right) const; + G4bool operator!=(const G4DeuteronGEMProbability &right) const; + + +private: + + virtual G4double CalcAlphaParam(const G4Fragment & fragment) const + { + return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ())); + } + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + G4double CCoeficient(const G4double aZ) const; + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 d68f5692a9..e6ea4cc4da 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Evaporation.hh,v 1.8 2001/10/05 16:13:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Evaporation.hh,v 1.10 2002/06/18 16:39:23 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -32,22 +32,21 @@ #include "globals.hh" -#include "G4ios.hh" #include "G4VEvaporation.hh" #include "G4VEvaporationChannel.hh" #include "G4Fragment.hh" -#include "G4NucleiProperties.hh" -#include "Randomize.hh" + +class G4VEvaporationFactory; //#define debug +//#define pctest class G4Evaporation : public G4VEvaporation { public: G4Evaporation(); G4Evaporation(G4std::vector * aChannelsVector) : - myOwnChannelsVector(false), - theChannels(aChannelsVector) + theChannels(aChannelsVector), theChannelFactory(0) {}; ~G4Evaporation(); @@ -61,7 +60,10 @@ private: public: G4FragmentVector * BreakItUp(const G4Fragment &theNucleus); - + + void SetDefaultChannel(); + void SetGEMChannel(); + private: #ifdef debug @@ -69,9 +71,27 @@ private: G4FragmentVector * Result) const; #endif - G4bool myOwnChannelsVector; G4std::vector * theChannels; + G4VEvaporationFactory * theChannelFactory; + + + class SumProbabilities : public G4std::binary_function + { + public: + SumProbabilities() : total(0.0) {} + G4double operator() (G4double& probSoFar, G4VEvaporationChannel*& frag) + { + total += frag->GetEmissionProbability(); + return total; + } + + G4double GetTotal() { return total; } + public: + G4double total; + + }; + }; #endif 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 fef0a6dc0b..5fe09f2bef 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationChannel.hh,v 1.7 2001/08/01 17:04:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4EvaporationChannel.hh,v 1.8 2002/01/15 12:23:36 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -43,6 +43,7 @@ #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 new file mode 100644 index 0000000000..724c1622cd --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#ifndef G4EvaporationFactory_hh +#define G4EvaporationFactory_hh + + +#include "G4VEvaporationFactory.hh" + +class G4EvaporationFactory : public G4VEvaporationFactory +{ +public: + G4EvaporationFactory() {}; + virtual ~G4EvaporationFactory() {}; + +private: + G4EvaporationFactory(const G4EvaporationFactory & val) {}; + const G4EvaporationFactory & operator=(const G4EvaporationFactory & val); + G4bool operator==(const G4EvaporationFactory & val) const; + G4bool operator!=(const G4EvaporationFactory & val) const; + +private: + G4std::vector * CreateChannel(); + + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh new file mode 100644 index 0000000000..94278d3464 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#ifndef G4EvaporationGEMFactory_hh +#define G4EvaporationGEMFactory_hh + + +#include "G4VEvaporationFactory.hh" + +class G4EvaporationGEMFactory : public G4VEvaporationFactory +{ +public: + G4EvaporationGEMFactory() {}; + virtual ~G4EvaporationGEMFactory() {}; + +private: + G4EvaporationGEMFactory(const G4EvaporationGEMFactory & val) {}; + const G4EvaporationGEMFactory & operator=(const G4EvaporationGEMFactory & val); + G4bool operator==(const G4EvaporationGEMFactory & val) const; + G4bool operator!=(const G4EvaporationGEMFactory & val) const; + +private: + G4std::vector * CreateChannel(); + + +}; +#endif 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 a3189b0650..01981ab50f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationLevelDensityParameter.hh,v 1.6 2001/08/01 17:04:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4EvaporationLevelDensityParameter.hh,v 1.7 2001/11/08 10:14:54 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -59,8 +59,10 @@ public: private: G4double ShellCorrection(const G4int Z, const G4int N) const - { return G4CameronTruranHilfShellCorrections::GetShellZ(Z) + - G4CameronTruranHilfShellCorrections::GetShellN(N);} + { + G4CameronTruranHilfShellCorrections* SPtr = G4CameronTruranHilfShellCorrections::GetInstance(); + return SPtr->GetShellZ(Z) + SPtr->GetShellN(N); + } private: 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 f1ed216012..b8301894dd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationProbability.hh,v 1.6 2001/08/01 17:04:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 3038e38914..c43dfddd7f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitationHandler.hh,v 1.7 2001/08/01 17:04:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ExcitationHandler.hh,v 1.9 2002/06/06 17:25:35 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -57,7 +57,7 @@ #include "G4IonConstructor.hh" //#define debug - +//#define pctest class G4ExcitationHandler { @@ -130,6 +130,16 @@ private: G4bool MyOwnFermiBreakUpClass; G4bool MyOwnPhotonEvaporationClass; + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + + }; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh new file mode 100644 index 0000000000..366587f1de --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4F17GEMChannel.hh,v 1.1 2002/06/06 17:41:46 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4F17GEMChannel_h +#define G4F17GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4F17GEMCoulombBarrier.hh" +#include "G4F17GEMProbability.hh" + +class G4F17GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4F17GEMChannel() : G4GEMChannel(17,9,"F17", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4F17GEMChannel() {}; + +private: + const G4F17GEMChannel & operator=(const G4F17GEMChannel & right); + + G4F17GEMChannel(const G4F17GEMChannel & right); + +public: + G4bool operator==(const G4F17GEMChannel & right) const; + G4bool operator!=(const G4F17GEMChannel & right) const; + +private: + + G4F17GEMCoulombBarrier theCoulombBarrier; + + G4F17GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh new file mode 100644 index 0000000000..4d24fe359e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4F17GEMCoulombBarrier_h +#define G4F17GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4F17GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4F17GEMCoulombBarrier() : G4GEMCoulombBarrierHE(17,9) {}; + ~G4F17GEMCoulombBarrier() {}; + +private: + G4F17GEMCoulombBarrier(const G4F17GEMCoulombBarrier & right); + + const G4F17GEMCoulombBarrier & operator=(const G4F17GEMCoulombBarrier & right); + G4bool operator==(const G4F17GEMCoulombBarrier & right) const; + G4bool operator!=(const G4F17GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh new file mode 100644 index 0000000000..92490d897a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.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: G4F17GEMProbability.hh,v 1.1 2002/06/06 17:41:48 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4F17GEMProbability_h +#define G4F17GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4F17GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4F17GEMProbability(); + + ~G4F17GEMProbability() {} +private: + // Copy constructor + G4F17GEMProbability(const G4F17GEMProbability &right); + + const G4F17GEMProbability & operator=(const G4F17GEMProbability &right); + G4bool operator==(const G4F17GEMProbability &right) const; + G4bool operator!=(const G4F17GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh new file mode 100644 index 0000000000..743dfd80c8 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4F18GEMChannel.hh,v 1.1 2002/06/06 17:41:49 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4F18GEMChannel_h +#define G4F18GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4F18GEMCoulombBarrier.hh" +#include "G4F18GEMProbability.hh" + +class G4F18GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4F18GEMChannel() : G4GEMChannel(18,9,"F18", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4F18GEMChannel() {}; + +private: + const G4F18GEMChannel & operator=(const G4F18GEMChannel & right); + + G4F18GEMChannel(const G4F18GEMChannel & right); + +public: + G4bool operator==(const G4F18GEMChannel & right) const; + G4bool operator!=(const G4F18GEMChannel & right) const; + +private: + + G4F18GEMCoulombBarrier theCoulombBarrier; + + G4F18GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh new file mode 100644 index 0000000000..339c9068f3 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4F18GEMCoulombBarrier_h +#define G4F18GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4F18GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4F18GEMCoulombBarrier() : G4GEMCoulombBarrierHE(18,9) {}; + ~G4F18GEMCoulombBarrier() {}; + +private: + G4F18GEMCoulombBarrier(const G4F18GEMCoulombBarrier & right); + + const G4F18GEMCoulombBarrier & operator=(const G4F18GEMCoulombBarrier & right); + G4bool operator==(const G4F18GEMCoulombBarrier & right) const; + G4bool operator!=(const G4F18GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh new file mode 100644 index 0000000000..2cc06a0c08 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.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: G4F18GEMProbability.hh,v 1.1 2002/06/06 17:41:51 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4F18GEMProbability_h +#define G4F18GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4F18GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4F18GEMProbability(); + + ~G4F18GEMProbability() {} +private: + // Copy constructor + G4F18GEMProbability(const G4F18GEMProbability &right); + + const G4F18GEMProbability & operator=(const G4F18GEMProbability &right); + G4bool operator==(const G4F18GEMProbability &right) const; + G4bool operator!=(const G4F18GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh new file mode 100644 index 0000000000..f8947b4c9c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4F19GEMChannel.hh,v 1.1 2002/06/06 17:41:52 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4F19GEMChannel_h +#define G4F19GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4F19GEMCoulombBarrier.hh" +#include "G4F19GEMProbability.hh" + +class G4F19GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4F19GEMChannel() : G4GEMChannel(19,9,"F19", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4F19GEMChannel() {}; + +private: + const G4F19GEMChannel & operator=(const G4F19GEMChannel & right); + + G4F19GEMChannel(const G4F19GEMChannel & right); + +public: + G4bool operator==(const G4F19GEMChannel & right) const; + G4bool operator!=(const G4F19GEMChannel & right) const; + +private: + + G4F19GEMCoulombBarrier theCoulombBarrier; + + G4F19GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh new file mode 100644 index 0000000000..6fbc397e9a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4F19GEMCoulombBarrier_h +#define G4F19GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4F19GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4F19GEMCoulombBarrier() : G4GEMCoulombBarrierHE(19,9) {}; + ~G4F19GEMCoulombBarrier() {}; + +private: + G4F19GEMCoulombBarrier(const G4F19GEMCoulombBarrier & right); + + const G4F19GEMCoulombBarrier & operator=(const G4F19GEMCoulombBarrier & right); + G4bool operator==(const G4F19GEMCoulombBarrier & right) const; + G4bool operator!=(const G4F19GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh new file mode 100644 index 0000000000..b0c4c92ee7 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.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: G4F19GEMProbability.hh,v 1.1 2002/06/06 17:41:55 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4F19GEMProbability_h +#define G4F19GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4F19GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4F19GEMProbability(); + + ~G4F19GEMProbability() {} +private: + // Copy constructor + G4F19GEMProbability(const G4F19GEMProbability &right); + + const G4F19GEMProbability & operator=(const G4F19GEMProbability &right); + G4bool operator==(const G4F19GEMProbability &right) const; + G4bool operator!=(const G4F19GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh new file mode 100644 index 0000000000..0682098edf --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4F20GEMChannel.hh,v 1.1 2002/06/06 17:41:56 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4F20GEMChannel_h +#define G4F20GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4F20GEMCoulombBarrier.hh" +#include "G4F20GEMProbability.hh" + +class G4F20GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4F20GEMChannel() : G4GEMChannel(20,9,"F20", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4F20GEMChannel() {}; + +private: + const G4F20GEMChannel & operator=(const G4F20GEMChannel & right); + + G4F20GEMChannel(const G4F20GEMChannel & right); + +public: + G4bool operator==(const G4F20GEMChannel & right) const; + G4bool operator!=(const G4F20GEMChannel & right) const; + +private: + + G4F20GEMCoulombBarrier theCoulombBarrier; + + G4F20GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh new file mode 100644 index 0000000000..3ed3309785 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4F20GEMCoulombBarrier_h +#define G4F20GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4F20GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4F20GEMCoulombBarrier() : G4GEMCoulombBarrierHE(20,9) {}; + ~G4F20GEMCoulombBarrier() {}; + +private: + G4F20GEMCoulombBarrier(const G4F20GEMCoulombBarrier & right); + + const G4F20GEMCoulombBarrier & operator=(const G4F20GEMCoulombBarrier & right); + G4bool operator==(const G4F20GEMCoulombBarrier & right) const; + G4bool operator!=(const G4F20GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh new file mode 100644 index 0000000000..aa2f919687 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.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: G4F20GEMProbability.hh,v 1.1 2002/06/06 17:41:58 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4F20GEMProbability_h +#define G4F20GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4F20GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4F20GEMProbability(); + + ~G4F20GEMProbability() {} +private: + // Copy constructor + G4F20GEMProbability(const G4F20GEMProbability &right); + + const G4F20GEMProbability & operator=(const G4F20GEMProbability &right); + G4bool operator==(const G4F20GEMProbability &right) const; + G4bool operator!=(const G4F20GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh new file mode 100644 index 0000000000..5475d894f7 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4F21GEMChannel.hh,v 1.1 2002/06/06 17:42:00 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4F21GEMChannel_h +#define G4F21GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4F21GEMCoulombBarrier.hh" +#include "G4F21GEMProbability.hh" + +class G4F21GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4F21GEMChannel() : G4GEMChannel(21,9,"F21", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4F21GEMChannel() {}; + +private: + const G4F21GEMChannel & operator=(const G4F21GEMChannel & right); + + G4F21GEMChannel(const G4F21GEMChannel & right); + +public: + G4bool operator==(const G4F21GEMChannel & right) const; + G4bool operator!=(const G4F21GEMChannel & right) const; + +private: + + G4F21GEMCoulombBarrier theCoulombBarrier; + + G4F21GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh new file mode 100644 index 0000000000..6794ecb93a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4F21GEMCoulombBarrier_h +#define G4F21GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4F21GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4F21GEMCoulombBarrier() : G4GEMCoulombBarrierHE(21,9) {}; + ~G4F21GEMCoulombBarrier() {}; + +private: + G4F21GEMCoulombBarrier(const G4F21GEMCoulombBarrier & right); + + const G4F21GEMCoulombBarrier & operator=(const G4F21GEMCoulombBarrier & right); + G4bool operator==(const G4F21GEMCoulombBarrier & right) const; + G4bool operator!=(const G4F21GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh new file mode 100644 index 0000000000..7cb77cce39 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.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: G4F21GEMProbability.hh,v 1.1 2002/06/06 17:42:02 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4F21GEMProbability_h +#define G4F21GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4F21GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4F21GEMProbability(); + + ~G4F21GEMProbability() {} +private: + // Copy constructor + G4F21GEMProbability(const G4F21GEMProbability &right); + + const G4F21GEMProbability & operator=(const G4F21GEMProbability &right); + G4bool operator==(const G4F21GEMProbability &right) const; + G4bool operator!=(const G4F21GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 63109c7057..b52df7534a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FermiBreakUp.hh,v 1.5 2001/08/01 17:04:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FermiBreakUp.hh,v 1.6 2002/01/15 12:21:53 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -36,6 +36,9 @@ #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 4db6b92212..e7ec3911ed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FermiConfiguration.hh,v 1.8 2001/10/22 11:52:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FermiConfiguration.hh,v 1.9 2002/06/06 17:26:31 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -210,6 +210,17 @@ private: // G4int Index[MaxConfigSize]; G4std::vector Index; + + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + + }; 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 e2043e37af..6e37612df6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh @@ -22,7 +22,7 @@ // // // $Id: G4FermiConfigurationList.hh,v 1.6 2001/08/01 17:04:27 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 411c8c9b61..d8bc72453a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionBarrier.hh,v 1.5 2001/08/01 17:04:27 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FissionBarrier.hh,v 1.6 2001/11/08 10:15:16 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -56,9 +56,10 @@ private: G4double BarashenkovFissionBarrier(const G4int A, const G4int Z); G4double SellPlusPairingCorrection(const G4int Z, const G4int N) - { return G4CameronShellPlusPairingCorrections::GetShellPlusPairingZ(Z) + - G4CameronShellPlusPairingCorrections::GetShellPlusPairingN(N); - } + { + G4CameronShellPlusPairingCorrections* SPtr = G4CameronShellPlusPairingCorrections::GetInstance(); + return SPtr->GetShellPlusPairingZ(Z) + SPtr->GetShellPlusPairingN(N); + } }; 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 4e41b29ae3..38ec82d47e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4FissionLevelDensityParameter.hh,v 1.6 2001/08/01 17:04:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0d4009221a..bb3f5cf403 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4FissionParameters.hh,v 1.6 2001/08/01 17:04:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 1b6e1a52ef..baff564ce5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4FissionProbability.hh,v 1.6 2001/08/01 17:04:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..c9c0a3ead3 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh @@ -0,0 +1,182 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4GEMChannel.hh,v 1.2 2002/06/07 15:30:54 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Oct 1998) +// + + +#ifndef G4GEMChannel_h +#define G4GEMChannel_h 1 + +#include "G4VEvaporationChannel.hh" +#include "G4GEMProbability.hh" +#include "G4EvaporationProbability.hh" +#include "G4VLevelDensityParameter.hh" +#include "G4VCoulombBarrier.hh" +#include "G4EvaporationLevelDensityParameter.hh" +#include "G4NucleiProperties.hh" +#include "Randomize.hh" +#include "G4ParticleTable.hh" +#include "G4IonTable.hh" + +//#define debug +//#define pctest + +class G4GEMChannel : public G4VEvaporationChannel +{ +public: + // Available constructors + G4GEMChannel(const G4int theA, const G4int theZ, + G4GEMProbability * aEmissionStrategy, + G4VCoulombBarrier * aCoulombBarrier); + + G4GEMChannel(const G4int theA, const G4int theZ, const G4String & aName, + G4GEMProbability * aEmissionStrategy, + G4VCoulombBarrier * aCoulombBarrier); + + G4GEMChannel(const G4int theA, const G4int theZ, const G4String * aName, + G4GEMProbability * aEmissionStrategy, + G4VCoulombBarrier * aCoulombBarrier); + +public: + // destructor + ~G4GEMChannel(); + + void SetEmissionStrategy(G4GEMProbability * aEmissionStrategy) + { + theEvaporationProbabilityPtr = aEmissionStrategy; + } + + void SetCoulombBarrierStrategy(G4VCoulombBarrier * aCoulombBarrier) + { + theCoulombBarrierPtr = aCoulombBarrier; + } + +protected: + // default constructor + G4GEMChannel() {}; + +private: + // copy constructor + G4GEMChannel(const G4GEMChannel & right); + +private: + const G4GEMChannel & operator=(const G4GEMChannel & right); + +public: + G4bool operator==(const G4GEMChannel & right) const; + G4bool operator!=(const G4GEMChannel & right) const; + +public: + void Initialize(const G4Fragment & fragment); + + G4FragmentVector * BreakUp(const G4Fragment & theNucleus); + + inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity) + { + if (MyOwnLevelDensity) delete theLevelDensityPtr; + theLevelDensityPtr = aLevelDensity; + MyOwnLevelDensity = false; + } + +public: + + + inline G4double GetEmissionProbability(void) const + { + return EmissionProbability; + } + + + inline G4double GetMaximalKineticEnergy(void) const + { + return MaximalKineticEnergy; + } + + // ---------------------- + +private: + + // Calculate Binding Energy for separate fragment from nucleus + G4double CalcBindingEnergy(const G4int anA, const G4int aZ); + + // Calculate maximal kinetic energy that can be carried by fragment (in MeV) + G4double CalcMaximalKineticEnergy(const G4double U); + + // Samples fragment kinetic energy. + G4double CalcKineticEnergy(const G4Fragment & fragment); + + // This has to be removed and put in Random Generator + G4ThreeVector IsotropicVector(const G4double Magnitude = 1.0); + + // Data Members + // ************ +private: + + // This data member define the channel. + // They are intializated at object creation (constructor) time. + + // Atomic Number + G4int A; + + // Charge + G4int Z; + + + // For evaporation probability calcualtion + G4GEMProbability * theEvaporationProbabilityPtr; + + // For Level Density calculation + G4bool MyOwnLevelDensity; + G4VLevelDensityParameter * theLevelDensityPtr; + + // For Coulomb Barrier calculation + G4VCoulombBarrier * theCoulombBarrierPtr; + G4double CoulombBarrier; + + //--------------------------------------------------- + + // These values depend on the nucleus that is being evaporated. + // They are calculated through the Initialize method which takes as parameters + // the atomic number, charge and excitation energy of nucleus. + + // Residual Atomic Number + G4int AResidual; + + // Residual Charge + G4int ZResidual; + + // Emission Probability + G4double EmissionProbability; + + + // Maximal Kinetic Energy that can be carried by fragment + G4double MaximalKineticEnergy; +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh new file mode 100644 index 0000000000..c9b3789895 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4GEMCoulombBarrierHE_h +#define G4GEMCoulombBarrierHE_h 1 + +#include "G4VCoulombBarrier.hh" +#include "globals.hh" + + +class G4GEMCoulombBarrierHE : public G4VCoulombBarrier +{ +public: + G4GEMCoulombBarrierHE() : G4VCoulombBarrier(1,0) {}; + G4GEMCoulombBarrierHE(const G4int anA,const G4int aZ) : + G4VCoulombBarrier(anA,aZ) {}; + ~G4GEMCoulombBarrierHE() {}; + +private: + G4GEMCoulombBarrierHE(const G4GEMCoulombBarrierHE & right); + + const G4GEMCoulombBarrierHE & operator=(const G4GEMCoulombBarrierHE & right); + G4bool operator==(const G4GEMCoulombBarrierHE & right) const; + G4bool operator!=(const G4GEMCoulombBarrierHE & right) const; + +public: + G4double GetCoulombBarrier(const G4int ARes, const G4int ZRes, + const G4double U) const; + + +private: + + G4double BarrierPenetrationFactor(const G4double aZ) const; + + virtual G4double CalcCompoundRadius(const G4double ARes) const; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMProbability.hh new file mode 100644 index 0000000000..e3cf47197c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMProbability.hh @@ -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. * +// ******************************************************************** +// +// +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept 2001) +// + + + +#ifndef G4GEMProbability_h +#define G4GEMProbability_h 1 + + +#include "G4VEmissionProbability.hh" +#include "G4VLevelDensityParameter.hh" +#include "G4EvaporationLevelDensityParameter.hh" +#include "G4VCoulombBarrier.hh" + +class G4GEMProbability : public G4VEmissionProbability +{ +public: + // Only available constructor + G4GEMProbability(const G4int anA, const G4int aZ, const G4double aSpin) : + theA(anA), theZ(aZ), Spin(aSpin), theCoulombBarrierPtr(0), + ExcitationEnergies(0), ExcitationSpins(0), ExcitationLifetimes(0), Normalization(1.0) + { + theEvapLDPptr = new G4EvaporationLevelDensityParameter; + } + + ~G4GEMProbability() + { + if (theEvapLDPptr != 0) delete theEvapLDPptr; + } + + + + G4double GetZ(void) const { return theZ; } + + G4double GetA(void) const { return theA;} + + G4double GetSpin(void) const { return Spin; } + + G4double GetNormalization(void) const { return Normalization; } + + void SetCoulomBarrier(const G4VCoulombBarrier * aCoulombBarrierStrategy) + { + theCoulombBarrierPtr = aCoulombBarrierStrategy; + } + + G4double GetCoulombBarrier(const G4Fragment& fragment) const + { + if (theCoulombBarrierPtr) return theCoulombBarrierPtr->GetCoulombBarrier( + static_cast(fragment.GetA()-theA),static_cast(fragment.GetZ()-theZ),fragment.GetExcitationEnergy()); + else return 0.0; + } + + + virtual G4double CalcAlphaParam(const G4Fragment & fragment) const {return 1.0;} + virtual G4double CalcBetaParam(const G4Fragment & fragment) const {return 1.0;} + +protected: + + void SetExcitationEnergiesPtr(G4std::vector * anExcitationEnergiesPtr) + { + ExcitationEnergies = anExcitationEnergiesPtr; + } + + void SetExcitationSpinsPtr(G4std::vector * anExcitationSpinsPtr) + { + ExcitationSpins = anExcitationSpinsPtr; + } + + void SetExcitationLifetimesPtr(G4std::vector * anExcitationLifetimesPtr) + { + ExcitationLifetimes = anExcitationLifetimesPtr; + } + + void SetCoulombBarrierStrategy(G4VCoulombBarrier * aCoulombBarrier) + { + theCoulombBarrierPtr = aCoulombBarrier; + } + + + // Default constructor + G4GEMProbability() {} +private: + // Copy constructor + G4GEMProbability(const G4GEMProbability &right); + + const G4GEMProbability & operator=(const G4GEMProbability &right); + G4bool operator==(const G4GEMProbability &right) const; + G4bool operator!=(const G4GEMProbability &right) const; + +public: + G4double EmissionProbability(const G4Fragment & fragment, const G4double anEnergy); + +private: + + G4double CalcProbability(const G4Fragment & fragment, const G4double MaximalKineticEnergy, + const G4double V); + virtual G4double CCoeficient(const G4double aZ) const {return 0.0;}; + + + G4double I0(const G4double t); + G4double I1(const G4double t, const G4double tx); + G4double I2(const G4double s, const G4double sx); + G4double I3(const G4double s, const G4double sx); + + // Data Members + + G4VLevelDensityParameter * theEvapLDPptr; + + G4int theA; + G4int theZ; + + // Spin is fragment spin + G4double Spin; + + // Coulomb Barrier + const G4VCoulombBarrier * theCoulombBarrierPtr; + + + // Resonances Energy + G4std::vector * ExcitationEnergies; + + // Resonances Spin + G4std::vector * ExcitationSpins; + + // Resonances half lifetime + G4std::vector * ExcitationLifetimes; + + + // Normalization + G4double Normalization; + +}; + + +#endif 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 85079c3f5a..f83acbe7ab 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3CoulombBarrier.hh,v 1.3 2001/08/01 17:04:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0bde115070..ce0630a252 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationChannel.hh,v 1.4 2001/08/01 17:04:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 1886cb0fe4..5a558f79e1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationProbability.hh,v 1.4 2001/08/01 17:04:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..da7040db80 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4He3GEMChannel.hh,v 1.1 2002/06/06 17:43:08 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4He3GEMChannel_h +#define G4He3GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4He3CoulombBarrier.hh" +#include "G4He3GEMProbability.hh" + +class G4He3GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4He3GEMChannel() : G4GEMChannel(3,2,"He3", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4He3GEMChannel() {}; + +private: + const G4He3GEMChannel & operator=(const G4He3GEMChannel & right); + + G4He3GEMChannel(const G4He3GEMChannel & right); + +public: + G4bool operator==(const G4He3GEMChannel & right) const; + G4bool operator!=(const G4He3GEMChannel & right) const; + +private: + + G4He3CoulombBarrier theCoulombBarrier; + + G4He3GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh new file mode 100644 index 0000000000..e95ddf5476 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.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: G4He3GEMProbability.hh,v 1.1 2002/06/06 17:43:09 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4He3GEMProbability_h +#define G4He3GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4He3GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4He3GEMProbability(); + + ~G4He3GEMProbability() {} +private: + // Copy constructor + G4He3GEMProbability(const G4He3GEMProbability &right); + + const G4He3GEMProbability & operator=(const G4He3GEMProbability &right); + G4bool operator==(const G4He3GEMProbability &right) const; + G4bool operator!=(const G4He3GEMProbability &right) const; + + +private: + + virtual G4double CalcAlphaParam(const G4Fragment & fragment) const + { + return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ())); + } + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + G4double CCoeficient(const G4double aZ) const; + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 ac6ba3727d..1f7db33fd2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4He5FermiFragment.hh,v 1.5 2001/08/01 17:04:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..f463ee3ee2 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4He6GEMChannel.hh,v 1.1 2002/06/06 17:43:10 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4He6GEMChannel_h +#define G4He6GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4He6GEMCoulombBarrier.hh" +#include "G4He6GEMProbability.hh" + +class G4He6GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4He6GEMChannel() : G4GEMChannel(6,2,"He6", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4He6GEMChannel() {}; + +private: + const G4He6GEMChannel & operator=(const G4He6GEMChannel & right); + + G4He6GEMChannel(const G4He6GEMChannel & right); + +public: + G4bool operator==(const G4He6GEMChannel & right) const; + G4bool operator!=(const G4He6GEMChannel & right) const; + +private: + + G4He6GEMCoulombBarrier theCoulombBarrier; + + G4He6GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh new file mode 100644 index 0000000000..806bb5eff2 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4He6GEMCoulombBarrier_h +#define G4He6GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4He6GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4He6GEMCoulombBarrier() : G4GEMCoulombBarrierHE(6,2) {}; + ~G4He6GEMCoulombBarrier() {}; + +private: + G4He6GEMCoulombBarrier(const G4He6GEMCoulombBarrier & right); + + const G4He6GEMCoulombBarrier & operator=(const G4He6GEMCoulombBarrier & right); + G4bool operator==(const G4He6GEMCoulombBarrier & right) const; + G4bool operator!=(const G4He6GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh new file mode 100644 index 0000000000..12403f388c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.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: G4He6GEMProbability.hh,v 1.1 2002/06/06 17:43:12 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4He6GEMProbability_h +#define G4He6GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4He6GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4He6GEMProbability(); + + ~G4He6GEMProbability() {} +private: + // Copy constructor + G4He6GEMProbability(const G4He6GEMProbability &right); + + const G4He6GEMProbability & operator=(const G4He6GEMProbability &right); + G4bool operator==(const G4He6GEMProbability &right) const; + G4bool operator!=(const G4He6GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh new file mode 100644 index 0000000000..9e836821e7 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4He8GEMChannel.hh,v 1.1 2002/06/06 17:43:14 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4He8GEMChannel_h +#define G4He8GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4He8GEMCoulombBarrier.hh" +#include "G4He8GEMProbability.hh" + +class G4He8GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4He8GEMChannel() : G4GEMChannel(8,2,"He8", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4He8GEMChannel() {}; + +private: + const G4He8GEMChannel & operator=(const G4He8GEMChannel & right); + + G4He8GEMChannel(const G4He8GEMChannel & right); + +public: + G4bool operator==(const G4He8GEMChannel & right) const; + G4bool operator!=(const G4He8GEMChannel & right) const; + +private: + + G4He8GEMCoulombBarrier theCoulombBarrier; + + G4He8GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh new file mode 100644 index 0000000000..91fd9b5395 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4He8GEMCoulombBarrier_h +#define G4He8GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4He8GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4He8GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,2) {}; + ~G4He8GEMCoulombBarrier() {}; + +private: + G4He8GEMCoulombBarrier(const G4He8GEMCoulombBarrier & right); + + const G4He8GEMCoulombBarrier & operator=(const G4He8GEMCoulombBarrier & right); + G4bool operator==(const G4He8GEMCoulombBarrier & right) const; + G4bool operator!=(const G4He8GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh new file mode 100644 index 0000000000..eb57363167 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.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: G4He8GEMProbability.hh,v 1.1 2002/06/06 17:43:16 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4He8GEMProbability_h +#define G4He8GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4He8GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4He8GEMProbability(); + + ~G4He8GEMProbability() {} +private: + // Copy constructor + G4He8GEMProbability(const G4He8GEMProbability &right); + + const G4He8GEMProbability & operator=(const G4He8GEMProbability &right); + G4bool operator==(const G4He8GEMProbability &right) const; + G4bool operator!=(const G4He8GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 062ba2cb5e..2e9a14dfba 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li5FermiFragment.hh,v 1.5 2001/08/01 17:04:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..fb0c5c27fe --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Li6GEMChannel.hh,v 1.1 2002/06/06 17:48:45 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Li6GEMChannel_h +#define G4Li6GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Li6GEMCoulombBarrier.hh" +#include "G4Li6GEMProbability.hh" + +class G4Li6GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Li6GEMChannel() : G4GEMChannel(6,3,"Li6", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Li6GEMChannel() {}; + +private: + const G4Li6GEMChannel & operator=(const G4Li6GEMChannel & right); + + G4Li6GEMChannel(const G4Li6GEMChannel & right); + +public: + G4bool operator==(const G4Li6GEMChannel & right) const; + G4bool operator!=(const G4Li6GEMChannel & right) const; + +private: + + G4Li6GEMCoulombBarrier theCoulombBarrier; + + G4Li6GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh new file mode 100644 index 0000000000..308618b631 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Li6GEMCoulombBarrier_h +#define G4Li6GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Li6GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Li6GEMCoulombBarrier() : G4GEMCoulombBarrierHE(6,3) {}; + ~G4Li6GEMCoulombBarrier() {}; + +private: + G4Li6GEMCoulombBarrier(const G4Li6GEMCoulombBarrier & right); + + const G4Li6GEMCoulombBarrier & operator=(const G4Li6GEMCoulombBarrier & right); + G4bool operator==(const G4Li6GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Li6GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh new file mode 100644 index 0000000000..3b8550c170 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.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: G4Li6GEMProbability.hh,v 1.1 2002/06/06 17:48:48 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Li6GEMProbability_h +#define G4Li6GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Li6GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Li6GEMProbability(); + + ~G4Li6GEMProbability() {} +private: + // Copy constructor + G4Li6GEMProbability(const G4Li6GEMProbability &right); + + const G4Li6GEMProbability & operator=(const G4Li6GEMProbability &right); + G4bool operator==(const G4Li6GEMProbability &right) const; + G4bool operator!=(const G4Li6GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh new file mode 100644 index 0000000000..743fb5d445 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Li7GEMChannel.hh,v 1.1 2002/06/06 17:48:49 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Li7GEMChannel_h +#define G4Li7GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Li7GEMCoulombBarrier.hh" +#include "G4Li7GEMProbability.hh" + +class G4Li7GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Li7GEMChannel() : G4GEMChannel(7,3,"Li7", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Li7GEMChannel() {}; + +private: + const G4Li7GEMChannel & operator=(const G4Li7GEMChannel & right); + + G4Li7GEMChannel(const G4Li7GEMChannel & right); + +public: + G4bool operator==(const G4Li7GEMChannel & right) const; + G4bool operator!=(const G4Li7GEMChannel & right) const; + +private: + + G4Li7GEMCoulombBarrier theCoulombBarrier; + + G4Li7GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh new file mode 100644 index 0000000000..83331d1f3b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Li7GEMCoulombBarrier_h +#define G4Li7GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Li7GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Li7GEMCoulombBarrier() : G4GEMCoulombBarrierHE(7,3) {}; + ~G4Li7GEMCoulombBarrier() {}; + +private: + G4Li7GEMCoulombBarrier(const G4Li7GEMCoulombBarrier & right); + + const G4Li7GEMCoulombBarrier & operator=(const G4Li7GEMCoulombBarrier & right); + G4bool operator==(const G4Li7GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Li7GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh new file mode 100644 index 0000000000..bbc3bf6402 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.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: G4Li7GEMProbability.hh,v 1.1 2002/06/06 17:48:51 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Li7GEMProbability_h +#define G4Li7GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Li7GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Li7GEMProbability(); + + ~G4Li7GEMProbability() {} +private: + // Copy constructor + G4Li7GEMProbability(const G4Li7GEMProbability &right); + + const G4Li7GEMProbability & operator=(const G4Li7GEMProbability &right); + G4bool operator==(const G4Li7GEMProbability &right) const; + G4bool operator!=(const G4Li7GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh new file mode 100644 index 0000000000..5fa955d4b0 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Li8GEMChannel.hh,v 1.1 2002/06/06 17:48:52 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Li8GEMChannel_h +#define G4Li8GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Li8GEMCoulombBarrier.hh" +#include "G4Li8GEMProbability.hh" + +class G4Li8GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Li8GEMChannel() : G4GEMChannel(8,3,"Li8", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Li8GEMChannel() {}; + +private: + const G4Li8GEMChannel & operator=(const G4Li8GEMChannel & right); + + G4Li8GEMChannel(const G4Li8GEMChannel & right); + +public: + G4bool operator==(const G4Li8GEMChannel & right) const; + G4bool operator!=(const G4Li8GEMChannel & right) const; + +private: + + G4Li8GEMCoulombBarrier theCoulombBarrier; + + G4Li8GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh new file mode 100644 index 0000000000..f5dc180917 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Li8GEMCoulombBarrier_h +#define G4Li8GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Li8GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Li8GEMCoulombBarrier() : G4GEMCoulombBarrierHE(8,3) {}; + ~G4Li8GEMCoulombBarrier() {}; + +private: + G4Li8GEMCoulombBarrier(const G4Li8GEMCoulombBarrier & right); + + const G4Li8GEMCoulombBarrier & operator=(const G4Li8GEMCoulombBarrier & right); + G4bool operator==(const G4Li8GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Li8GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh new file mode 100644 index 0000000000..ac3c75cddc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.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: G4Li8GEMProbability.hh,v 1.1 2002/06/06 17:48:54 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Li8GEMProbability_h +#define G4Li8GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Li8GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Li8GEMProbability(); + + ~G4Li8GEMProbability() {} +private: + // Copy constructor + G4Li8GEMProbability(const G4Li8GEMProbability &right); + + const G4Li8GEMProbability & operator=(const G4Li8GEMProbability &right); + G4bool operator==(const G4Li8GEMProbability &right) const; + G4bool operator!=(const G4Li8GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh new file mode 100644 index 0000000000..0645101483 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Li9GEMChannel.hh,v 1.1 2002/06/06 17:48:55 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Li9GEMChannel_h +#define G4Li9GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Li9GEMCoulombBarrier.hh" +#include "G4Li9GEMProbability.hh" + +class G4Li9GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Li9GEMChannel() : G4GEMChannel(9,3,"Li9", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Li9GEMChannel() {}; + +private: + const G4Li9GEMChannel & operator=(const G4Li9GEMChannel & right); + + G4Li9GEMChannel(const G4Li9GEMChannel & right); + +public: + G4bool operator==(const G4Li9GEMChannel & right) const; + G4bool operator!=(const G4Li9GEMChannel & right) const; + +private: + + G4Li9GEMCoulombBarrier theCoulombBarrier; + + G4Li9GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh new file mode 100644 index 0000000000..dddab3bb38 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Li9GEMCoulombBarrier_h +#define G4Li9GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Li9GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Li9GEMCoulombBarrier() : G4GEMCoulombBarrierHE(9,3) {}; + ~G4Li9GEMCoulombBarrier() {}; + +private: + G4Li9GEMCoulombBarrier(const G4Li9GEMCoulombBarrier & right); + + const G4Li9GEMCoulombBarrier & operator=(const G4Li9GEMCoulombBarrier & right); + G4bool operator==(const G4Li9GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Li9GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh new file mode 100644 index 0000000000..aff4ab4d50 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.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: G4Li9GEMProbability.hh,v 1.1 2002/06/06 17:48:57 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Li9GEMProbability_h +#define G4Li9GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Li9GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Li9GEMProbability(); + + ~G4Li9GEMProbability() {} +private: + // Copy constructor + G4Li9GEMProbability(const G4Li9GEMProbability &right); + + const G4Li9GEMProbability & operator=(const G4Li9GEMProbability &right); + G4bool operator==(const G4Li9GEMProbability &right) const; + G4bool operator!=(const G4Li9GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh new file mode 100644 index 0000000000..3b6d625ca7 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg22GEMChannel.hh,v 1.1 2002/06/06 17:48:59 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Mg22GEMChannel_h +#define G4Mg22GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Mg22GEMCoulombBarrier.hh" +#include "G4Mg22GEMProbability.hh" + +class G4Mg22GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Mg22GEMChannel() : G4GEMChannel(22,12,"Mg22", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Mg22GEMChannel() {}; + +private: + const G4Mg22GEMChannel & operator=(const G4Mg22GEMChannel & right); + + G4Mg22GEMChannel(const G4Mg22GEMChannel & right); + +public: + G4bool operator==(const G4Mg22GEMChannel & right) const; + G4bool operator!=(const G4Mg22GEMChannel & right) const; + +private: + + G4Mg22GEMCoulombBarrier theCoulombBarrier; + + G4Mg22GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh new file mode 100644 index 0000000000..67c95c0868 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Mg22GEMCoulombBarrier_h +#define G4Mg22GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Mg22GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Mg22GEMCoulombBarrier() : G4GEMCoulombBarrierHE(22,12) {}; + ~G4Mg22GEMCoulombBarrier() {}; + +private: + G4Mg22GEMCoulombBarrier(const G4Mg22GEMCoulombBarrier & right); + + const G4Mg22GEMCoulombBarrier & operator=(const G4Mg22GEMCoulombBarrier & right); + G4bool operator==(const G4Mg22GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Mg22GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh new file mode 100644 index 0000000000..616d78c7f4 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.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: G4Mg22GEMProbability.hh,v 1.1 2002/06/06 17:49:01 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Mg22GEMProbability_h +#define G4Mg22GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Mg22GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Mg22GEMProbability(); + + ~G4Mg22GEMProbability() {} +private: + // Copy constructor + G4Mg22GEMProbability(const G4Mg22GEMProbability &right); + + const G4Mg22GEMProbability & operator=(const G4Mg22GEMProbability &right); + G4bool operator==(const G4Mg22GEMProbability &right) const; + G4bool operator!=(const G4Mg22GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh new file mode 100644 index 0000000000..162605dd16 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg23GEMChannel.hh,v 1.1 2002/06/06 17:49:02 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Mg23GEMChannel_h +#define G4Mg23GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Mg23GEMCoulombBarrier.hh" +#include "G4Mg23GEMProbability.hh" + +class G4Mg23GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Mg23GEMChannel() : G4GEMChannel(23,12,"Mg23", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Mg23GEMChannel() {}; + +private: + const G4Mg23GEMChannel & operator=(const G4Mg23GEMChannel & right); + + G4Mg23GEMChannel(const G4Mg23GEMChannel & right); + +public: + G4bool operator==(const G4Mg23GEMChannel & right) const; + G4bool operator!=(const G4Mg23GEMChannel & right) const; + +private: + + G4Mg23GEMCoulombBarrier theCoulombBarrier; + + G4Mg23GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh new file mode 100644 index 0000000000..aab050dc19 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Mg23GEMCoulombBarrier_h +#define G4Mg23GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Mg23GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Mg23GEMCoulombBarrier() : G4GEMCoulombBarrierHE(23,12) {}; + ~G4Mg23GEMCoulombBarrier() {}; + +private: + G4Mg23GEMCoulombBarrier(const G4Mg23GEMCoulombBarrier & right); + + const G4Mg23GEMCoulombBarrier & operator=(const G4Mg23GEMCoulombBarrier & right); + G4bool operator==(const G4Mg23GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Mg23GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh new file mode 100644 index 0000000000..a4fb199faf --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.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: G4Mg23GEMProbability.hh,v 1.1 2002/06/06 17:49:04 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Mg23GEMProbability_h +#define G4Mg23GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Mg23GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Mg23GEMProbability(); + + ~G4Mg23GEMProbability() {} +private: + // Copy constructor + G4Mg23GEMProbability(const G4Mg23GEMProbability &right); + + const G4Mg23GEMProbability & operator=(const G4Mg23GEMProbability &right); + G4bool operator==(const G4Mg23GEMProbability &right) const; + G4bool operator!=(const G4Mg23GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh new file mode 100644 index 0000000000..90d969415c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg24GEMChannel.hh,v 1.1 2002/06/06 17:49:05 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Mg24GEMChannel_h +#define G4Mg24GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Mg24GEMCoulombBarrier.hh" +#include "G4Mg24GEMProbability.hh" + +class G4Mg24GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Mg24GEMChannel() : G4GEMChannel(24,12,"Mg24", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Mg24GEMChannel() {}; + +private: + const G4Mg24GEMChannel & operator=(const G4Mg24GEMChannel & right); + + G4Mg24GEMChannel(const G4Mg24GEMChannel & right); + +public: + G4bool operator==(const G4Mg24GEMChannel & right) const; + G4bool operator!=(const G4Mg24GEMChannel & right) const; + +private: + + G4Mg24GEMCoulombBarrier theCoulombBarrier; + + G4Mg24GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh new file mode 100644 index 0000000000..c18753d2de --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Mg24GEMCoulombBarrier_h +#define G4Mg24GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Mg24GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Mg24GEMCoulombBarrier() : G4GEMCoulombBarrierHE(24,12) {}; + ~G4Mg24GEMCoulombBarrier() {}; + +private: + G4Mg24GEMCoulombBarrier(const G4Mg24GEMCoulombBarrier & right); + + const G4Mg24GEMCoulombBarrier & operator=(const G4Mg24GEMCoulombBarrier & right); + G4bool operator==(const G4Mg24GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Mg24GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh new file mode 100644 index 0000000000..b8a9c97f7b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.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: G4Mg24GEMProbability.hh,v 1.1 2002/06/06 17:49:08 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Mg24GEMProbability_h +#define G4Mg24GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Mg24GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Mg24GEMProbability(); + + ~G4Mg24GEMProbability() {} +private: + // Copy constructor + G4Mg24GEMProbability(const G4Mg24GEMProbability &right); + + const G4Mg24GEMProbability & operator=(const G4Mg24GEMProbability &right); + G4bool operator==(const G4Mg24GEMProbability &right) const; + G4bool operator!=(const G4Mg24GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh new file mode 100644 index 0000000000..2dc7472d64 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg25GEMChannel.hh,v 1.1 2002/06/06 17:49:09 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Mg25GEMChannel_h +#define G4Mg25GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Mg25GEMCoulombBarrier.hh" +#include "G4Mg25GEMProbability.hh" + +class G4Mg25GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Mg25GEMChannel() : G4GEMChannel(25,12,"Mg25", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Mg25GEMChannel() {}; + +private: + const G4Mg25GEMChannel & operator=(const G4Mg25GEMChannel & right); + + G4Mg25GEMChannel(const G4Mg25GEMChannel & right); + +public: + G4bool operator==(const G4Mg25GEMChannel & right) const; + G4bool operator!=(const G4Mg25GEMChannel & right) const; + +private: + + G4Mg25GEMCoulombBarrier theCoulombBarrier; + + G4Mg25GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh new file mode 100644 index 0000000000..2281d93192 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Mg25GEMCoulombBarrier_h +#define G4Mg25GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Mg25GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Mg25GEMCoulombBarrier() : G4GEMCoulombBarrierHE(25,12) {}; + ~G4Mg25GEMCoulombBarrier() {}; + +private: + G4Mg25GEMCoulombBarrier(const G4Mg25GEMCoulombBarrier & right); + + const G4Mg25GEMCoulombBarrier & operator=(const G4Mg25GEMCoulombBarrier & right); + G4bool operator==(const G4Mg25GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Mg25GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh new file mode 100644 index 0000000000..76bf6776dc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.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: G4Mg25GEMProbability.hh,v 1.1 2002/06/06 17:49:11 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Mg25GEMProbability_h +#define G4Mg25GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Mg25GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Mg25GEMProbability(); + + ~G4Mg25GEMProbability() {} +private: + // Copy constructor + G4Mg25GEMProbability(const G4Mg25GEMProbability &right); + + const G4Mg25GEMProbability & operator=(const G4Mg25GEMProbability &right); + G4bool operator==(const G4Mg25GEMProbability &right) const; + G4bool operator!=(const G4Mg25GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh new file mode 100644 index 0000000000..0c935cef8a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg26GEMChannel.hh,v 1.1 2002/06/06 17:49:12 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Mg26GEMChannel_h +#define G4Mg26GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Mg26GEMCoulombBarrier.hh" +#include "G4Mg26GEMProbability.hh" + +class G4Mg26GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Mg26GEMChannel() : G4GEMChannel(26,12,"Mg26", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Mg26GEMChannel() {}; + +private: + const G4Mg26GEMChannel & operator=(const G4Mg26GEMChannel & right); + + G4Mg26GEMChannel(const G4Mg26GEMChannel & right); + +public: + G4bool operator==(const G4Mg26GEMChannel & right) const; + G4bool operator!=(const G4Mg26GEMChannel & right) const; + +private: + + G4Mg26GEMCoulombBarrier theCoulombBarrier; + + G4Mg26GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh new file mode 100644 index 0000000000..f94d97e7bc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Mg26GEMCoulombBarrier_h +#define G4Mg26GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Mg26GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Mg26GEMCoulombBarrier() : G4GEMCoulombBarrierHE(26,12) {}; + ~G4Mg26GEMCoulombBarrier() {}; + +private: + G4Mg26GEMCoulombBarrier(const G4Mg26GEMCoulombBarrier & right); + + const G4Mg26GEMCoulombBarrier & operator=(const G4Mg26GEMCoulombBarrier & right); + G4bool operator==(const G4Mg26GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Mg26GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh new file mode 100644 index 0000000000..fddd05aed9 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.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: G4Mg26GEMProbability.hh,v 1.1 2002/06/06 17:49:14 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Mg26GEMProbability_h +#define G4Mg26GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Mg26GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Mg26GEMProbability(); + + ~G4Mg26GEMProbability() {} +private: + // Copy constructor + G4Mg26GEMProbability(const G4Mg26GEMProbability &right); + + const G4Mg26GEMProbability & operator=(const G4Mg26GEMProbability &right); + G4bool operator==(const G4Mg26GEMProbability &right) const; + G4bool operator!=(const G4Mg26GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh new file mode 100644 index 0000000000..8312a20fe9 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg27GEMChannel.hh,v 1.1 2002/06/06 17:49:16 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Mg27GEMChannel_h +#define G4Mg27GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Mg27GEMCoulombBarrier.hh" +#include "G4Mg27GEMProbability.hh" + +class G4Mg27GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Mg27GEMChannel() : G4GEMChannel(27,12,"Mg27", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Mg27GEMChannel() {}; + +private: + const G4Mg27GEMChannel & operator=(const G4Mg27GEMChannel & right); + + G4Mg27GEMChannel(const G4Mg27GEMChannel & right); + +public: + G4bool operator==(const G4Mg27GEMChannel & right) const; + G4bool operator!=(const G4Mg27GEMChannel & right) const; + +private: + + G4Mg27GEMCoulombBarrier theCoulombBarrier; + + G4Mg27GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh new file mode 100644 index 0000000000..af3d3edc0d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Mg27GEMCoulombBarrier_h +#define G4Mg27GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Mg27GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Mg27GEMCoulombBarrier() : G4GEMCoulombBarrierHE(27,12) {}; + ~G4Mg27GEMCoulombBarrier() {}; + +private: + G4Mg27GEMCoulombBarrier(const G4Mg27GEMCoulombBarrier & right); + + const G4Mg27GEMCoulombBarrier & operator=(const G4Mg27GEMCoulombBarrier & right); + G4bool operator==(const G4Mg27GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Mg27GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh new file mode 100644 index 0000000000..783a7a5dca --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.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: G4Mg27GEMProbability.hh,v 1.1 2002/06/06 17:49:18 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Mg27GEMProbability_h +#define G4Mg27GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Mg27GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Mg27GEMProbability(); + + ~G4Mg27GEMProbability() {} +private: + // Copy constructor + G4Mg27GEMProbability(const G4Mg27GEMProbability &right); + + const G4Mg27GEMProbability & operator=(const G4Mg27GEMProbability &right); + G4bool operator==(const G4Mg27GEMProbability &right) const; + G4bool operator!=(const G4Mg27GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh new file mode 100644 index 0000000000..2f8880e8d1 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg28GEMChannel.hh,v 1.1 2002/06/06 17:49:19 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Mg28GEMChannel_h +#define G4Mg28GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Mg28GEMCoulombBarrier.hh" +#include "G4Mg28GEMProbability.hh" + +class G4Mg28GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Mg28GEMChannel() : G4GEMChannel(28,12,"Mg28", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Mg28GEMChannel() {}; + +private: + const G4Mg28GEMChannel & operator=(const G4Mg28GEMChannel & right); + + G4Mg28GEMChannel(const G4Mg28GEMChannel & right); + +public: + G4bool operator==(const G4Mg28GEMChannel & right) const; + G4bool operator!=(const G4Mg28GEMChannel & right) const; + +private: + + G4Mg28GEMCoulombBarrier theCoulombBarrier; + + G4Mg28GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh new file mode 100644 index 0000000000..25d352703e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Mg28GEMCoulombBarrier_h +#define G4Mg28GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Mg28GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Mg28GEMCoulombBarrier() : G4GEMCoulombBarrierHE(28,12) {}; + ~G4Mg28GEMCoulombBarrier() {}; + +private: + G4Mg28GEMCoulombBarrier(const G4Mg28GEMCoulombBarrier & right); + + const G4Mg28GEMCoulombBarrier & operator=(const G4Mg28GEMCoulombBarrier & right); + G4bool operator==(const G4Mg28GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Mg28GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh new file mode 100644 index 0000000000..73b37ec61b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.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: G4Mg28GEMProbability.hh,v 1.1 2002/06/06 17:49:21 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Mg28GEMProbability_h +#define G4Mg28GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Mg28GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Mg28GEMProbability(); + + ~G4Mg28GEMProbability() {} +private: + // Copy constructor + G4Mg28GEMProbability(const G4Mg28GEMProbability &right); + + const G4Mg28GEMProbability & operator=(const G4Mg28GEMProbability &right); + G4bool operator==(const G4Mg28GEMProbability &right) const; + G4bool operator!=(const G4Mg28GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh new file mode 100644 index 0000000000..7c0b0ee1fd --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N12GEMChannel.hh,v 1.1 2002/06/06 17:49:24 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4N12GEMChannel_h +#define G4N12GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4N12GEMCoulombBarrier.hh" +#include "G4N12GEMProbability.hh" + +class G4N12GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4N12GEMChannel() : G4GEMChannel(12,7,"N12", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4N12GEMChannel() {}; + +private: + const G4N12GEMChannel & operator=(const G4N12GEMChannel & right); + + G4N12GEMChannel(const G4N12GEMChannel & right); + +public: + G4bool operator==(const G4N12GEMChannel & right) const; + G4bool operator!=(const G4N12GEMChannel & right) const; + +private: + + G4N12GEMCoulombBarrier theCoulombBarrier; + + G4N12GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh new file mode 100644 index 0000000000..c4532036ba --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4N12GEMCoulombBarrier_h +#define G4N12GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4N12GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4N12GEMCoulombBarrier() : G4GEMCoulombBarrierHE(12,7) {}; + ~G4N12GEMCoulombBarrier() {}; + +private: + G4N12GEMCoulombBarrier(const G4N12GEMCoulombBarrier & right); + + const G4N12GEMCoulombBarrier & operator=(const G4N12GEMCoulombBarrier & right); + G4bool operator==(const G4N12GEMCoulombBarrier & right) const; + G4bool operator!=(const G4N12GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh new file mode 100644 index 0000000000..8f4074c9e2 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.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: G4N12GEMProbability.hh,v 1.1 2002/06/06 17:49:26 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4N12GEMProbability_h +#define G4N12GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4N12GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4N12GEMProbability(); + + ~G4N12GEMProbability() {} +private: + // Copy constructor + G4N12GEMProbability(const G4N12GEMProbability &right); + + const G4N12GEMProbability & operator=(const G4N12GEMProbability &right); + G4bool operator==(const G4N12GEMProbability &right) const; + G4bool operator!=(const G4N12GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh new file mode 100644 index 0000000000..604914e96a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N13GEMChannel.hh,v 1.1 2002/06/06 17:49:28 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4N13GEMChannel_h +#define G4N13GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4N13GEMCoulombBarrier.hh" +#include "G4N13GEMProbability.hh" + +class G4N13GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4N13GEMChannel() : G4GEMChannel(13,7,"N13", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4N13GEMChannel() {}; + +private: + const G4N13GEMChannel & operator=(const G4N13GEMChannel & right); + + G4N13GEMChannel(const G4N13GEMChannel & right); + +public: + G4bool operator==(const G4N13GEMChannel & right) const; + G4bool operator!=(const G4N13GEMChannel & right) const; + +private: + + G4N13GEMCoulombBarrier theCoulombBarrier; + + G4N13GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh new file mode 100644 index 0000000000..0ba12d64ee --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4N13GEMCoulombBarrier_h +#define G4N13GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4N13GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4N13GEMCoulombBarrier() : G4GEMCoulombBarrierHE(13,7) {}; + ~G4N13GEMCoulombBarrier() {}; + +private: + G4N13GEMCoulombBarrier(const G4N13GEMCoulombBarrier & right); + + const G4N13GEMCoulombBarrier & operator=(const G4N13GEMCoulombBarrier & right); + G4bool operator==(const G4N13GEMCoulombBarrier & right) const; + G4bool operator!=(const G4N13GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh new file mode 100644 index 0000000000..5a3df4bd95 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.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: G4N13GEMProbability.hh,v 1.1 2002/06/06 17:49:51 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4N13GEMProbability_h +#define G4N13GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4N13GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4N13GEMProbability(); + + ~G4N13GEMProbability() {} +private: + // Copy constructor + G4N13GEMProbability(const G4N13GEMProbability &right); + + const G4N13GEMProbability & operator=(const G4N13GEMProbability &right); + G4bool operator==(const G4N13GEMProbability &right) const; + G4bool operator!=(const G4N13GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh new file mode 100644 index 0000000000..0eebe5c7a1 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N14GEMChannel.hh,v 1.1 2002/06/06 17:49:52 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4N14GEMChannel_h +#define G4N14GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4N14GEMCoulombBarrier.hh" +#include "G4N14GEMProbability.hh" + +class G4N14GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4N14GEMChannel() : G4GEMChannel(14,7,"N14", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4N14GEMChannel() {}; + +private: + const G4N14GEMChannel & operator=(const G4N14GEMChannel & right); + + G4N14GEMChannel(const G4N14GEMChannel & right); + +public: + G4bool operator==(const G4N14GEMChannel & right) const; + G4bool operator!=(const G4N14GEMChannel & right) const; + +private: + + G4N14GEMCoulombBarrier theCoulombBarrier; + + G4N14GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh new file mode 100644 index 0000000000..732cd904aa --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4N14GEMCoulombBarrier_h +#define G4N14GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4N14GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4N14GEMCoulombBarrier() : G4GEMCoulombBarrierHE(14,7) {}; + ~G4N14GEMCoulombBarrier() {}; + +private: + G4N14GEMCoulombBarrier(const G4N14GEMCoulombBarrier & right); + + const G4N14GEMCoulombBarrier & operator=(const G4N14GEMCoulombBarrier & right); + G4bool operator==(const G4N14GEMCoulombBarrier & right) const; + G4bool operator!=(const G4N14GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh new file mode 100644 index 0000000000..57051a1785 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.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: G4N14GEMProbability.hh,v 1.1 2002/06/06 17:49:55 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4N14GEMProbability_h +#define G4N14GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4N14GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4N14GEMProbability(); + + ~G4N14GEMProbability() {} +private: + // Copy constructor + G4N14GEMProbability(const G4N14GEMProbability &right); + + const G4N14GEMProbability & operator=(const G4N14GEMProbability &right); + G4bool operator==(const G4N14GEMProbability &right) const; + G4bool operator!=(const G4N14GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh new file mode 100644 index 0000000000..6356c137b9 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N15GEMChannel.hh,v 1.1 2002/06/06 17:49:56 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4N15GEMChannel_h +#define G4N15GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4N15GEMCoulombBarrier.hh" +#include "G4N15GEMProbability.hh" + +class G4N15GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4N15GEMChannel() : G4GEMChannel(15,7,"N15", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4N15GEMChannel() {}; + +private: + const G4N15GEMChannel & operator=(const G4N15GEMChannel & right); + + G4N15GEMChannel(const G4N15GEMChannel & right); + +public: + G4bool operator==(const G4N15GEMChannel & right) const; + G4bool operator!=(const G4N15GEMChannel & right) const; + +private: + + G4N15GEMCoulombBarrier theCoulombBarrier; + + G4N15GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh new file mode 100644 index 0000000000..fbde2778ee --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4N15GEMCoulombBarrier_h +#define G4N15GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4N15GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4N15GEMCoulombBarrier() : G4GEMCoulombBarrierHE(15,7) {}; + ~G4N15GEMCoulombBarrier() {}; + +private: + G4N15GEMCoulombBarrier(const G4N15GEMCoulombBarrier & right); + + const G4N15GEMCoulombBarrier & operator=(const G4N15GEMCoulombBarrier & right); + G4bool operator==(const G4N15GEMCoulombBarrier & right) const; + G4bool operator!=(const G4N15GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh new file mode 100644 index 0000000000..19cfda4772 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.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: G4N15GEMProbability.hh,v 1.1 2002/06/06 17:49:58 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4N15GEMProbability_h +#define G4N15GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4N15GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4N15GEMProbability(); + + ~G4N15GEMProbability() {} +private: + // Copy constructor + G4N15GEMProbability(const G4N15GEMProbability &right); + + const G4N15GEMProbability & operator=(const G4N15GEMProbability &right); + G4bool operator==(const G4N15GEMProbability &right) const; + G4bool operator!=(const G4N15GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh new file mode 100644 index 0000000000..bd5540a31b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N16GEMChannel.hh,v 1.1 2002/06/06 17:49:59 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4N16GEMChannel_h +#define G4N16GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4N16GEMCoulombBarrier.hh" +#include "G4N16GEMProbability.hh" + +class G4N16GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4N16GEMChannel() : G4GEMChannel(16,7,"N16", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4N16GEMChannel() {}; + +private: + const G4N16GEMChannel & operator=(const G4N16GEMChannel & right); + + G4N16GEMChannel(const G4N16GEMChannel & right); + +public: + G4bool operator==(const G4N16GEMChannel & right) const; + G4bool operator!=(const G4N16GEMChannel & right) const; + +private: + + G4N16GEMCoulombBarrier theCoulombBarrier; + + G4N16GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh new file mode 100644 index 0000000000..371781112c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4N16GEMCoulombBarrier_h +#define G4N16GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4N16GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4N16GEMCoulombBarrier() : G4GEMCoulombBarrierHE(16,7) {}; + ~G4N16GEMCoulombBarrier() {}; + +private: + G4N16GEMCoulombBarrier(const G4N16GEMCoulombBarrier & right); + + const G4N16GEMCoulombBarrier & operator=(const G4N16GEMCoulombBarrier & right); + G4bool operator==(const G4N16GEMCoulombBarrier & right) const; + G4bool operator!=(const G4N16GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh new file mode 100644 index 0000000000..587d580d9b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.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: G4N16GEMProbability.hh,v 1.1 2002/06/06 17:50:01 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4N16GEMProbability_h +#define G4N16GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4N16GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4N16GEMProbability(); + + ~G4N16GEMProbability() {} +private: + // Copy constructor + G4N16GEMProbability(const G4N16GEMProbability &right); + + const G4N16GEMProbability & operator=(const G4N16GEMProbability &right); + G4bool operator==(const G4N16GEMProbability &right) const; + G4bool operator!=(const G4N16GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh new file mode 100644 index 0000000000..0df6bdc389 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N17GEMChannel.hh,v 1.1 2002/06/06 17:50:02 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4N17GEMChannel_h +#define G4N17GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4N17GEMCoulombBarrier.hh" +#include "G4N17GEMProbability.hh" + +class G4N17GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4N17GEMChannel() : G4GEMChannel(17,7,"N17", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4N17GEMChannel() {}; + +private: + const G4N17GEMChannel & operator=(const G4N17GEMChannel & right); + + G4N17GEMChannel(const G4N17GEMChannel & right); + +public: + G4bool operator==(const G4N17GEMChannel & right) const; + G4bool operator!=(const G4N17GEMChannel & right) const; + +private: + + G4N17GEMCoulombBarrier theCoulombBarrier; + + G4N17GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh new file mode 100644 index 0000000000..8851714c1f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4N17GEMCoulombBarrier_h +#define G4N17GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4N17GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4N17GEMCoulombBarrier() : G4GEMCoulombBarrierHE(17,7) {}; + ~G4N17GEMCoulombBarrier() {}; + +private: + G4N17GEMCoulombBarrier(const G4N17GEMCoulombBarrier & right); + + const G4N17GEMCoulombBarrier & operator=(const G4N17GEMCoulombBarrier & right); + G4bool operator==(const G4N17GEMCoulombBarrier & right) const; + G4bool operator!=(const G4N17GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh new file mode 100644 index 0000000000..0b57e30a94 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.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: G4N17GEMProbability.hh,v 1.1 2002/06/06 17:50:04 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4N17GEMProbability_h +#define G4N17GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4N17GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4N17GEMProbability(); + + ~G4N17GEMProbability() {} +private: + // Copy constructor + G4N17GEMProbability(const G4N17GEMProbability &right); + + const G4N17GEMProbability & operator=(const G4N17GEMProbability &right); + G4bool operator==(const G4N17GEMProbability &right) const; + G4bool operator!=(const G4N17GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh new file mode 100644 index 0000000000..61e7fb61f6 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na21GEMChannel.hh,v 1.1 2002/06/06 17:50:05 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Na21GEMChannel_h +#define G4Na21GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Na21GEMCoulombBarrier.hh" +#include "G4Na21GEMProbability.hh" + +class G4Na21GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Na21GEMChannel() : G4GEMChannel(21,11,"Na21", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Na21GEMChannel() {}; + +private: + const G4Na21GEMChannel & operator=(const G4Na21GEMChannel & right); + + G4Na21GEMChannel(const G4Na21GEMChannel & right); + +public: + G4bool operator==(const G4Na21GEMChannel & right) const; + G4bool operator!=(const G4Na21GEMChannel & right) const; + +private: + + G4Na21GEMCoulombBarrier theCoulombBarrier; + + G4Na21GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh new file mode 100644 index 0000000000..d1cfe1768d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Na21GEMCoulombBarrier_h +#define G4Na21GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Na21GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Na21GEMCoulombBarrier() : G4GEMCoulombBarrierHE(21,11) {}; + ~G4Na21GEMCoulombBarrier() {}; + +private: + G4Na21GEMCoulombBarrier(const G4Na21GEMCoulombBarrier & right); + + const G4Na21GEMCoulombBarrier & operator=(const G4Na21GEMCoulombBarrier & right); + G4bool operator==(const G4Na21GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Na21GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh new file mode 100644 index 0000000000..9524ae4e8f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.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: G4Na21GEMProbability.hh,v 1.1 2002/06/06 17:50:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Na21GEMProbability_h +#define G4Na21GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Na21GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Na21GEMProbability(); + + ~G4Na21GEMProbability() {} +private: + // Copy constructor + G4Na21GEMProbability(const G4Na21GEMProbability &right); + + const G4Na21GEMProbability & operator=(const G4Na21GEMProbability &right); + G4bool operator==(const G4Na21GEMProbability &right) const; + G4bool operator!=(const G4Na21GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh new file mode 100644 index 0000000000..7577b098f6 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na22GEMChannel.hh,v 1.1 2002/06/06 17:50:08 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Na22GEMChannel_h +#define G4Na22GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Na22GEMCoulombBarrier.hh" +#include "G4Na22GEMProbability.hh" + +class G4Na22GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Na22GEMChannel() : G4GEMChannel(22,11,"Na22", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Na22GEMChannel() {}; + +private: + const G4Na22GEMChannel & operator=(const G4Na22GEMChannel & right); + + G4Na22GEMChannel(const G4Na22GEMChannel & right); + +public: + G4bool operator==(const G4Na22GEMChannel & right) const; + G4bool operator!=(const G4Na22GEMChannel & right) const; + +private: + + G4Na22GEMCoulombBarrier theCoulombBarrier; + + G4Na22GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh new file mode 100644 index 0000000000..e000e653e7 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Na22GEMCoulombBarrier_h +#define G4Na22GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Na22GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Na22GEMCoulombBarrier() : G4GEMCoulombBarrierHE(22,11) {}; + ~G4Na22GEMCoulombBarrier() {}; + +private: + G4Na22GEMCoulombBarrier(const G4Na22GEMCoulombBarrier & right); + + const G4Na22GEMCoulombBarrier & operator=(const G4Na22GEMCoulombBarrier & right); + G4bool operator==(const G4Na22GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Na22GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh new file mode 100644 index 0000000000..44c9441746 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.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: G4Na22GEMProbability.hh,v 1.1 2002/06/06 17:50:10 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Na22GEMProbability_h +#define G4Na22GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Na22GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Na22GEMProbability(); + + ~G4Na22GEMProbability() {} +private: + // Copy constructor + G4Na22GEMProbability(const G4Na22GEMProbability &right); + + const G4Na22GEMProbability & operator=(const G4Na22GEMProbability &right); + G4bool operator==(const G4Na22GEMProbability &right) const; + G4bool operator!=(const G4Na22GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh new file mode 100644 index 0000000000..c458900198 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na23GEMChannel.hh,v 1.1 2002/06/06 17:50:11 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Na23GEMChannel_h +#define G4Na23GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Na23GEMCoulombBarrier.hh" +#include "G4Na23GEMProbability.hh" + +class G4Na23GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Na23GEMChannel() : G4GEMChannel(23,11,"Na23", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Na23GEMChannel() {}; + +private: + const G4Na23GEMChannel & operator=(const G4Na23GEMChannel & right); + + G4Na23GEMChannel(const G4Na23GEMChannel & right); + +public: + G4bool operator==(const G4Na23GEMChannel & right) const; + G4bool operator!=(const G4Na23GEMChannel & right) const; + +private: + + G4Na23GEMCoulombBarrier theCoulombBarrier; + + G4Na23GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh new file mode 100644 index 0000000000..11b279c8ab --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Na23GEMCoulombBarrier_h +#define G4Na23GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Na23GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Na23GEMCoulombBarrier() : G4GEMCoulombBarrierHE(23,11) {}; + ~G4Na23GEMCoulombBarrier() {}; + +private: + G4Na23GEMCoulombBarrier(const G4Na23GEMCoulombBarrier & right); + + const G4Na23GEMCoulombBarrier & operator=(const G4Na23GEMCoulombBarrier & right); + G4bool operator==(const G4Na23GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Na23GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh new file mode 100644 index 0000000000..29ae710398 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.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: G4Na23GEMProbability.hh,v 1.1 2002/06/06 17:50:13 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Na23GEMProbability_h +#define G4Na23GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Na23GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Na23GEMProbability(); + + ~G4Na23GEMProbability() {} +private: + // Copy constructor + G4Na23GEMProbability(const G4Na23GEMProbability &right); + + const G4Na23GEMProbability & operator=(const G4Na23GEMProbability &right); + G4bool operator==(const G4Na23GEMProbability &right) const; + G4bool operator!=(const G4Na23GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh new file mode 100644 index 0000000000..d719bacdda --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na24GEMChannel.hh,v 1.1 2002/06/06 17:50:14 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Na24GEMChannel_h +#define G4Na24GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Na24GEMCoulombBarrier.hh" +#include "G4Na24GEMProbability.hh" + +class G4Na24GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Na24GEMChannel() : G4GEMChannel(24,11,"Na24", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Na24GEMChannel() {}; + +private: + const G4Na24GEMChannel & operator=(const G4Na24GEMChannel & right); + + G4Na24GEMChannel(const G4Na24GEMChannel & right); + +public: + G4bool operator==(const G4Na24GEMChannel & right) const; + G4bool operator!=(const G4Na24GEMChannel & right) const; + +private: + + G4Na24GEMCoulombBarrier theCoulombBarrier; + + G4Na24GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh new file mode 100644 index 0000000000..b58ce13d33 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Na24GEMCoulombBarrier_h +#define G4Na24GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Na24GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Na24GEMCoulombBarrier() : G4GEMCoulombBarrierHE(24,11) {}; + ~G4Na24GEMCoulombBarrier() {}; + +private: + G4Na24GEMCoulombBarrier(const G4Na24GEMCoulombBarrier & right); + + const G4Na24GEMCoulombBarrier & operator=(const G4Na24GEMCoulombBarrier & right); + G4bool operator==(const G4Na24GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Na24GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh new file mode 100644 index 0000000000..60c50fea84 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.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: G4Na24GEMProbability.hh,v 1.1 2002/06/06 17:50:40 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Na24GEMProbability_h +#define G4Na24GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Na24GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Na24GEMProbability(); + + ~G4Na24GEMProbability() {} +private: + // Copy constructor + G4Na24GEMProbability(const G4Na24GEMProbability &right); + + const G4Na24GEMProbability & operator=(const G4Na24GEMProbability &right); + G4bool operator==(const G4Na24GEMProbability &right) const; + G4bool operator!=(const G4Na24GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh new file mode 100644 index 0000000000..c491593d83 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na25GEMChannel.hh,v 1.1 2002/06/06 17:50:41 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Na25GEMChannel_h +#define G4Na25GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Na25GEMCoulombBarrier.hh" +#include "G4Na25GEMProbability.hh" + +class G4Na25GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Na25GEMChannel() : G4GEMChannel(25,11,"Na25", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Na25GEMChannel() {}; + +private: + const G4Na25GEMChannel & operator=(const G4Na25GEMChannel & right); + + G4Na25GEMChannel(const G4Na25GEMChannel & right); + +public: + G4bool operator==(const G4Na25GEMChannel & right) const; + G4bool operator!=(const G4Na25GEMChannel & right) const; + +private: + + G4Na25GEMCoulombBarrier theCoulombBarrier; + + G4Na25GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh new file mode 100644 index 0000000000..dbffcd7d8c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Na25GEMCoulombBarrier_h +#define G4Na25GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Na25GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Na25GEMCoulombBarrier() : G4GEMCoulombBarrierHE(25,11) {}; + ~G4Na25GEMCoulombBarrier() {}; + +private: + G4Na25GEMCoulombBarrier(const G4Na25GEMCoulombBarrier & right); + + const G4Na25GEMCoulombBarrier & operator=(const G4Na25GEMCoulombBarrier & right); + G4bool operator==(const G4Na25GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Na25GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh new file mode 100644 index 0000000000..b977271bde --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.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: G4Na25GEMProbability.hh,v 1.1 2002/06/06 17:50:43 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Na25GEMProbability_h +#define G4Na25GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Na25GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Na25GEMProbability(); + + ~G4Na25GEMProbability() {} +private: + // Copy constructor + G4Na25GEMProbability(const G4Na25GEMProbability &right); + + const G4Na25GEMProbability & operator=(const G4Na25GEMProbability &right); + G4bool operator==(const G4Na25GEMProbability &right) const; + G4bool operator!=(const G4Na25GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh new file mode 100644 index 0000000000..03d4cd51ca --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne18GEMChannel.hh,v 1.1 2002/06/06 17:50:45 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Ne18GEMChannel_h +#define G4Ne18GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Ne18GEMCoulombBarrier.hh" +#include "G4Ne18GEMProbability.hh" + +class G4Ne18GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Ne18GEMChannel() : G4GEMChannel(18,10,"Ne18", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Ne18GEMChannel() {}; + +private: + const G4Ne18GEMChannel & operator=(const G4Ne18GEMChannel & right); + + G4Ne18GEMChannel(const G4Ne18GEMChannel & right); + +public: + G4bool operator==(const G4Ne18GEMChannel & right) const; + G4bool operator!=(const G4Ne18GEMChannel & right) const; + +private: + + G4Ne18GEMCoulombBarrier theCoulombBarrier; + + G4Ne18GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh new file mode 100644 index 0000000000..1f874cafa1 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Ne18GEMCoulombBarrier_h +#define G4Ne18GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Ne18GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Ne18GEMCoulombBarrier() : G4GEMCoulombBarrierHE(18,10) {}; + ~G4Ne18GEMCoulombBarrier() {}; + +private: + G4Ne18GEMCoulombBarrier(const G4Ne18GEMCoulombBarrier & right); + + const G4Ne18GEMCoulombBarrier & operator=(const G4Ne18GEMCoulombBarrier & right); + G4bool operator==(const G4Ne18GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Ne18GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh new file mode 100644 index 0000000000..a158e76415 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.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: G4Ne18GEMProbability.hh,v 1.1 2002/06/06 17:50:47 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Ne18GEMProbability_h +#define G4Ne18GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Ne18GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Ne18GEMProbability(); + + ~G4Ne18GEMProbability() {} +private: + // Copy constructor + G4Ne18GEMProbability(const G4Ne18GEMProbability &right); + + const G4Ne18GEMProbability & operator=(const G4Ne18GEMProbability &right); + G4bool operator==(const G4Ne18GEMProbability &right) const; + G4bool operator!=(const G4Ne18GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh new file mode 100644 index 0000000000..59680b6fbc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne19GEMChannel.hh,v 1.1 2002/06/06 17:50:49 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Ne19GEMChannel_h +#define G4Ne19GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Ne19GEMCoulombBarrier.hh" +#include "G4Ne19GEMProbability.hh" + +class G4Ne19GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Ne19GEMChannel() : G4GEMChannel(19,10,"Ne19", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Ne19GEMChannel() {}; + +private: + const G4Ne19GEMChannel & operator=(const G4Ne19GEMChannel & right); + + G4Ne19GEMChannel(const G4Ne19GEMChannel & right); + +public: + G4bool operator==(const G4Ne19GEMChannel & right) const; + G4bool operator!=(const G4Ne19GEMChannel & right) const; + +private: + + G4Ne19GEMCoulombBarrier theCoulombBarrier; + + G4Ne19GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh new file mode 100644 index 0000000000..4ff875203f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Ne19GEMCoulombBarrier_h +#define G4Ne19GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Ne19GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Ne19GEMCoulombBarrier() : G4GEMCoulombBarrierHE(19,10) {}; + ~G4Ne19GEMCoulombBarrier() {}; + +private: + G4Ne19GEMCoulombBarrier(const G4Ne19GEMCoulombBarrier & right); + + const G4Ne19GEMCoulombBarrier & operator=(const G4Ne19GEMCoulombBarrier & right); + G4bool operator==(const G4Ne19GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Ne19GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh new file mode 100644 index 0000000000..be81d6bfc0 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.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: G4Ne19GEMProbability.hh,v 1.1 2002/06/06 17:50:51 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Ne19GEMProbability_h +#define G4Ne19GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Ne19GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Ne19GEMProbability(); + + ~G4Ne19GEMProbability() {} +private: + // Copy constructor + G4Ne19GEMProbability(const G4Ne19GEMProbability &right); + + const G4Ne19GEMProbability & operator=(const G4Ne19GEMProbability &right); + G4bool operator==(const G4Ne19GEMProbability &right) const; + G4bool operator!=(const G4Ne19GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh new file mode 100644 index 0000000000..d10485d992 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne20GEMChannel.hh,v 1.1 2002/06/06 17:50:52 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Ne20GEMChannel_h +#define G4Ne20GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Ne20GEMCoulombBarrier.hh" +#include "G4Ne20GEMProbability.hh" + +class G4Ne20GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Ne20GEMChannel() : G4GEMChannel(20,10,"Ne20", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Ne20GEMChannel() {}; + +private: + const G4Ne20GEMChannel & operator=(const G4Ne20GEMChannel & right); + + G4Ne20GEMChannel(const G4Ne20GEMChannel & right); + +public: + G4bool operator==(const G4Ne20GEMChannel & right) const; + G4bool operator!=(const G4Ne20GEMChannel & right) const; + +private: + + G4Ne20GEMCoulombBarrier theCoulombBarrier; + + G4Ne20GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh new file mode 100644 index 0000000000..964d28b4a6 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Ne20GEMCoulombBarrier_h +#define G4Ne20GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Ne20GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Ne20GEMCoulombBarrier() : G4GEMCoulombBarrierHE(20,10) {}; + ~G4Ne20GEMCoulombBarrier() {}; + +private: + G4Ne20GEMCoulombBarrier(const G4Ne20GEMCoulombBarrier & right); + + const G4Ne20GEMCoulombBarrier & operator=(const G4Ne20GEMCoulombBarrier & right); + G4bool operator==(const G4Ne20GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Ne20GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh new file mode 100644 index 0000000000..c03b17892d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.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: G4Ne20GEMProbability.hh,v 1.1 2002/06/06 17:50:54 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Ne20GEMProbability_h +#define G4Ne20GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Ne20GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Ne20GEMProbability(); + + ~G4Ne20GEMProbability() {} +private: + // Copy constructor + G4Ne20GEMProbability(const G4Ne20GEMProbability &right); + + const G4Ne20GEMProbability & operator=(const G4Ne20GEMProbability &right); + G4bool operator==(const G4Ne20GEMProbability &right) const; + G4bool operator!=(const G4Ne20GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh new file mode 100644 index 0000000000..5334fb3a2f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne21GEMChannel.hh,v 1.1 2002/06/06 17:50:55 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Ne21GEMChannel_h +#define G4Ne21GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Ne21GEMCoulombBarrier.hh" +#include "G4Ne21GEMProbability.hh" + +class G4Ne21GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Ne21GEMChannel() : G4GEMChannel(21,10,"Ne21", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Ne21GEMChannel() {}; + +private: + const G4Ne21GEMChannel & operator=(const G4Ne21GEMChannel & right); + + G4Ne21GEMChannel(const G4Ne21GEMChannel & right); + +public: + G4bool operator==(const G4Ne21GEMChannel & right) const; + G4bool operator!=(const G4Ne21GEMChannel & right) const; + +private: + + G4Ne21GEMCoulombBarrier theCoulombBarrier; + + G4Ne21GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh new file mode 100644 index 0000000000..adf1cec6df --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Ne21GEMCoulombBarrier_h +#define G4Ne21GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Ne21GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Ne21GEMCoulombBarrier() : G4GEMCoulombBarrierHE(21,10) {}; + ~G4Ne21GEMCoulombBarrier() {}; + +private: + G4Ne21GEMCoulombBarrier(const G4Ne21GEMCoulombBarrier & right); + + const G4Ne21GEMCoulombBarrier & operator=(const G4Ne21GEMCoulombBarrier & right); + G4bool operator==(const G4Ne21GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Ne21GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh new file mode 100644 index 0000000000..651646041d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.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: G4Ne21GEMProbability.hh,v 1.1 2002/06/06 17:50:57 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Ne21GEMProbability_h +#define G4Ne21GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Ne21GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Ne21GEMProbability(); + + ~G4Ne21GEMProbability() {} +private: + // Copy constructor + G4Ne21GEMProbability(const G4Ne21GEMProbability &right); + + const G4Ne21GEMProbability & operator=(const G4Ne21GEMProbability &right); + G4bool operator==(const G4Ne21GEMProbability &right) const; + G4bool operator!=(const G4Ne21GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh new file mode 100644 index 0000000000..bfada8e6c4 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne22GEMChannel.hh,v 1.1 2002/06/06 17:50:58 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Ne22GEMChannel_h +#define G4Ne22GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Ne22GEMCoulombBarrier.hh" +#include "G4Ne22GEMProbability.hh" + +class G4Ne22GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Ne22GEMChannel() : G4GEMChannel(22,10,"Ne22", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Ne22GEMChannel() {}; + +private: + const G4Ne22GEMChannel & operator=(const G4Ne22GEMChannel & right); + + G4Ne22GEMChannel(const G4Ne22GEMChannel & right); + +public: + G4bool operator==(const G4Ne22GEMChannel & right) const; + G4bool operator!=(const G4Ne22GEMChannel & right) const; + +private: + + G4Ne22GEMCoulombBarrier theCoulombBarrier; + + G4Ne22GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh new file mode 100644 index 0000000000..20b4e7b8de --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Ne22GEMCoulombBarrier_h +#define G4Ne22GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Ne22GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Ne22GEMCoulombBarrier() : G4GEMCoulombBarrierHE(22,10) {}; + ~G4Ne22GEMCoulombBarrier() {}; + +private: + G4Ne22GEMCoulombBarrier(const G4Ne22GEMCoulombBarrier & right); + + const G4Ne22GEMCoulombBarrier & operator=(const G4Ne22GEMCoulombBarrier & right); + G4bool operator==(const G4Ne22GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Ne22GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh new file mode 100644 index 0000000000..f9d245462a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.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: G4Ne22GEMProbability.hh,v 1.1 2002/06/06 17:51:00 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Ne22GEMProbability_h +#define G4Ne22GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Ne22GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Ne22GEMProbability(); + + ~G4Ne22GEMProbability() {} +private: + // Copy constructor + G4Ne22GEMProbability(const G4Ne22GEMProbability &right); + + const G4Ne22GEMProbability & operator=(const G4Ne22GEMProbability &right); + G4bool operator==(const G4Ne22GEMProbability &right) const; + G4bool operator!=(const G4Ne22GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh new file mode 100644 index 0000000000..4144bbfc59 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne23GEMChannel.hh,v 1.1 2002/06/06 17:51:01 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Ne23GEMChannel_h +#define G4Ne23GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Ne23GEMCoulombBarrier.hh" +#include "G4Ne23GEMProbability.hh" + +class G4Ne23GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Ne23GEMChannel() : G4GEMChannel(23,10,"Ne23", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Ne23GEMChannel() {}; + +private: + const G4Ne23GEMChannel & operator=(const G4Ne23GEMChannel & right); + + G4Ne23GEMChannel(const G4Ne23GEMChannel & right); + +public: + G4bool operator==(const G4Ne23GEMChannel & right) const; + G4bool operator!=(const G4Ne23GEMChannel & right) const; + +private: + + G4Ne23GEMCoulombBarrier theCoulombBarrier; + + G4Ne23GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh new file mode 100644 index 0000000000..d645ebafa0 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Ne23GEMCoulombBarrier_h +#define G4Ne23GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Ne23GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Ne23GEMCoulombBarrier() : G4GEMCoulombBarrierHE(23,10) {}; + ~G4Ne23GEMCoulombBarrier() {}; + +private: + G4Ne23GEMCoulombBarrier(const G4Ne23GEMCoulombBarrier & right); + + const G4Ne23GEMCoulombBarrier & operator=(const G4Ne23GEMCoulombBarrier & right); + G4bool operator==(const G4Ne23GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Ne23GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh new file mode 100644 index 0000000000..f9115bfb76 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.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: G4Ne23GEMProbability.hh,v 1.1 2002/06/06 17:51:04 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Ne23GEMProbability_h +#define G4Ne23GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Ne23GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Ne23GEMProbability(); + + ~G4Ne23GEMProbability() {} +private: + // Copy constructor + G4Ne23GEMProbability(const G4Ne23GEMProbability &right); + + const G4Ne23GEMProbability & operator=(const G4Ne23GEMProbability &right); + G4bool operator==(const G4Ne23GEMProbability &right) const; + G4bool operator!=(const G4Ne23GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh new file mode 100644 index 0000000000..e62c65e5c8 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne24GEMChannel.hh,v 1.1 2002/06/06 17:51:05 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4Ne24GEMChannel_h +#define G4Ne24GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4Ne24GEMCoulombBarrier.hh" +#include "G4Ne24GEMProbability.hh" + +class G4Ne24GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4Ne24GEMChannel() : G4GEMChannel(24,10,"Ne24", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4Ne24GEMChannel() {}; + +private: + const G4Ne24GEMChannel & operator=(const G4Ne24GEMChannel & right); + + G4Ne24GEMChannel(const G4Ne24GEMChannel & right); + +public: + G4bool operator==(const G4Ne24GEMChannel & right) const; + G4bool operator!=(const G4Ne24GEMChannel & right) const; + +private: + + G4Ne24GEMCoulombBarrier theCoulombBarrier; + + G4Ne24GEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh new file mode 100644 index 0000000000..1797c99095 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4Ne24GEMCoulombBarrier_h +#define G4Ne24GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4Ne24GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4Ne24GEMCoulombBarrier() : G4GEMCoulombBarrierHE(24,10) {}; + ~G4Ne24GEMCoulombBarrier() {}; + +private: + G4Ne24GEMCoulombBarrier(const G4Ne24GEMCoulombBarrier & right); + + const G4Ne24GEMCoulombBarrier & operator=(const G4Ne24GEMCoulombBarrier & right); + G4bool operator==(const G4Ne24GEMCoulombBarrier & right) const; + G4bool operator!=(const G4Ne24GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh new file mode 100644 index 0000000000..18a8fb1f10 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.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: G4Ne24GEMProbability.hh,v 1.1 2002/06/06 17:51:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4Ne24GEMProbability_h +#define G4Ne24GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4Ne24GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4Ne24GEMProbability(); + + ~G4Ne24GEMProbability() {} +private: + // Copy constructor + G4Ne24GEMProbability(const G4Ne24GEMProbability &right); + + const G4Ne24GEMProbability & operator=(const G4Ne24GEMProbability &right); + G4bool operator==(const G4Ne24GEMProbability &right) const; + G4bool operator!=(const G4Ne24GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 6a4249a9d5..02ad003e6f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronCoulombBarrier.hh,v 1.3 2001/08/01 17:04:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 d84389153c..dbe95a9c8f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationChannel.hh,v 1.4 2001/08/01 17:04:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a745725583..5789aee7ec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationProbability.hh,v 1.4 2001/08/01 17:04:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..89da28e784 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.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: G4NeutronGEMChannel.hh,v 1.1 2002/06/06 17:51:31 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4NeutronGEMChannel_h +#define G4NeutronGEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4NeutronCoulombBarrier.hh" +#include "G4NeutronGEMProbability.hh" + +class G4NeutronGEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4NeutronGEMChannel() : G4GEMChannel(1,0,"neutron", + &theEvaporationProbability, + &theCoulombBarrier) {}; + // destructor + ~G4NeutronGEMChannel() {}; + +private: + const G4NeutronGEMChannel & operator=(const G4NeutronGEMChannel & right); + + G4NeutronGEMChannel(const G4NeutronGEMChannel & right); + +public: + G4bool operator==(const G4NeutronGEMChannel & right) const; + G4bool operator!=(const G4NeutronGEMChannel & right) const; + +private: + + G4NeutronCoulombBarrier theCoulombBarrier; + + G4NeutronGEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh new file mode 100644 index 0000000000..513b6b5c63 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.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: G4NeutronGEMProbability.hh,v 1.1 2002/06/06 17:51:33 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4NeutronGEMProbability_h +#define G4NeutronGEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4NeutronGEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4NeutronGEMProbability(); + + ~G4NeutronGEMProbability() {} +private: + // Copy constructor + G4NeutronGEMProbability(const G4NeutronGEMProbability &right); + + const G4NeutronGEMProbability & operator=(const G4NeutronGEMProbability &right); + G4bool operator==(const G4NeutronGEMProbability &right) const; + G4bool operator!=(const G4NeutronGEMProbability &right) const; + + +private: + + virtual G4double CalcAlphaParam(const G4Fragment & fragment) const + { + return 0.76+2.2/pow(G4double(fragment.GetA()-GetA()),1.0/3.0); + } + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return (2.12/pow(G4double(fragment.GetA()-GetA()),2.0/3.0)-0.05)*MeV/CalcAlphaParam(fragment); + } + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 cfeff16b0c..86bf71830d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh @@ -44,7 +44,6 @@ #define G4NUCLEARLEVEL_HH #include "globals.hh" -#include "G4NuclearLevel.hh" #include "G4DataVector.hh" class G4NuclearLevel diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh new file mode 100644 index 0000000000..d65629bc86 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.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: G4O14GEMChannel.hh,v 1.1 2002/06/06 17:51:55 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4O14GEMChannel_h +#define G4O14GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4O14GEMCoulombBarrier.hh" +#include "G4O14GEMProbability.hh" + +class G4O14GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4O14GEMChannel() : G4GEMChannel(14,8,"O14", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4O14GEMChannel() {}; + +private: + const G4O14GEMChannel & operator=(const G4O14GEMChannel & right); + + G4O14GEMChannel(const G4O14GEMChannel & right); + +public: + G4bool operator==(const G4O14GEMChannel & right) const; + G4bool operator!=(const G4O14GEMChannel & right) const; + +private: + + G4O14GEMCoulombBarrier theCoulombBarrier; + + G4O14GEMProbability theEvaporationProbability; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh new file mode 100644 index 0000000000..2fbd500214 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4O14GEMCoulombBarrier_h +#define G4O14GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4O14GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4O14GEMCoulombBarrier() : G4GEMCoulombBarrierHE(14,8) {}; + ~G4O14GEMCoulombBarrier() {}; + +private: + G4O14GEMCoulombBarrier(const G4O14GEMCoulombBarrier & right); + + const G4O14GEMCoulombBarrier & operator=(const G4O14GEMCoulombBarrier & right); + G4bool operator==(const G4O14GEMCoulombBarrier & right) const; + G4bool operator!=(const G4O14GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh new file mode 100644 index 0000000000..1b8753ebe4 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.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: G4O14GEMProbability.hh,v 1.1 2002/06/06 17:51:58 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4O14GEMProbability_h +#define G4O14GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4O14GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4O14GEMProbability(); + + ~G4O14GEMProbability() {} +private: + // Copy constructor + G4O14GEMProbability(const G4O14GEMProbability &right); + + const G4O14GEMProbability & operator=(const G4O14GEMProbability &right); + G4bool operator==(const G4O14GEMProbability &right) const; + G4bool operator!=(const G4O14GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh new file mode 100644 index 0000000000..1f65771c65 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.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: G4O15GEMChannel.hh,v 1.1 2002/06/06 17:51:59 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4O15GEMChannel_h +#define G4O15GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4O15GEMCoulombBarrier.hh" +#include "G4O15GEMProbability.hh" + +class G4O15GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4O15GEMChannel() : G4GEMChannel(15,8,"O15", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4O15GEMChannel() {}; + +private: + const G4O15GEMChannel & operator=(const G4O15GEMChannel & right); + + G4O15GEMChannel(const G4O15GEMChannel & right); + +public: + G4bool operator==(const G4O15GEMChannel & right) const; + G4bool operator!=(const G4O15GEMChannel & right) const; + +private: + + G4O15GEMCoulombBarrier theCoulombBarrier; + + G4O15GEMProbability theEvaporationProbability; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh new file mode 100644 index 0000000000..9680d31027 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4O15GEMCoulombBarrier_h +#define G4O15GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4O15GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4O15GEMCoulombBarrier() : G4GEMCoulombBarrierHE(15,8) {}; + ~G4O15GEMCoulombBarrier() {}; + +private: + G4O15GEMCoulombBarrier(const G4O15GEMCoulombBarrier & right); + + const G4O15GEMCoulombBarrier & operator=(const G4O15GEMCoulombBarrier & right); + G4bool operator==(const G4O15GEMCoulombBarrier & right) const; + G4bool operator!=(const G4O15GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh new file mode 100644 index 0000000000..88614b8fc6 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.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: G4O15GEMProbability.hh,v 1.1 2002/06/06 17:52:02 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4O15GEMProbability_h +#define G4O15GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4O15GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4O15GEMProbability(); + + ~G4O15GEMProbability() {} +private: + // Copy constructor + G4O15GEMProbability(const G4O15GEMProbability &right); + + const G4O15GEMProbability & operator=(const G4O15GEMProbability &right); + G4bool operator==(const G4O15GEMProbability &right) const; + G4bool operator!=(const G4O15GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh new file mode 100644 index 0000000000..3330e92e83 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.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: G4O16GEMChannel.hh,v 1.1 2002/06/06 17:52:03 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4O16GEMChannel_h +#define G4O16GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4O16GEMCoulombBarrier.hh" +#include "G4O16GEMProbability.hh" + +class G4O16GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4O16GEMChannel() : G4GEMChannel(16,8,"O16", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4O16GEMChannel() {}; + +private: + const G4O16GEMChannel & operator=(const G4O16GEMChannel & right); + + G4O16GEMChannel(const G4O16GEMChannel & right); + +public: + G4bool operator==(const G4O16GEMChannel & right) const; + G4bool operator!=(const G4O16GEMChannel & right) const; + +private: + + G4O16GEMCoulombBarrier theCoulombBarrier; + + G4O16GEMProbability theEvaporationProbability; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh new file mode 100644 index 0000000000..70616b4496 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4O16GEMCoulombBarrier_h +#define G4O16GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4O16GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4O16GEMCoulombBarrier() : G4GEMCoulombBarrierHE(16,8) {}; + ~G4O16GEMCoulombBarrier() {}; + +private: + G4O16GEMCoulombBarrier(const G4O16GEMCoulombBarrier & right); + + const G4O16GEMCoulombBarrier & operator=(const G4O16GEMCoulombBarrier & right); + G4bool operator==(const G4O16GEMCoulombBarrier & right) const; + G4bool operator!=(const G4O16GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh new file mode 100644 index 0000000000..26cd072c76 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.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: G4O16GEMProbability.hh,v 1.1 2002/06/06 17:52:05 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4O16GEMProbability_h +#define G4O16GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4O16GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4O16GEMProbability(); + + ~G4O16GEMProbability() {} +private: + // Copy constructor + G4O16GEMProbability(const G4O16GEMProbability &right); + + const G4O16GEMProbability & operator=(const G4O16GEMProbability &right); + G4bool operator==(const G4O16GEMProbability &right) const; + G4bool operator!=(const G4O16GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh new file mode 100644 index 0000000000..a9a8e40fbf --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.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: G4O17GEMChannel.hh,v 1.1 2002/06/06 17:52:06 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4O17GEMChannel_h +#define G4O17GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4O17GEMCoulombBarrier.hh" +#include "G4O17GEMProbability.hh" + +class G4O17GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4O17GEMChannel() : G4GEMChannel(17,8,"O17", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4O17GEMChannel() {}; + +private: + const G4O17GEMChannel & operator=(const G4O17GEMChannel & right); + + G4O17GEMChannel(const G4O17GEMChannel & right); + +public: + G4bool operator==(const G4O17GEMChannel & right) const; + G4bool operator!=(const G4O17GEMChannel & right) const; + +private: + + G4O17GEMCoulombBarrier theCoulombBarrier; + + G4O17GEMProbability theEvaporationProbability; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh new file mode 100644 index 0000000000..64b1adc70f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4O17GEMCoulombBarrier_h +#define G4O17GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4O17GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4O17GEMCoulombBarrier() : G4GEMCoulombBarrierHE(17,8) {}; + ~G4O17GEMCoulombBarrier() {}; + +private: + G4O17GEMCoulombBarrier(const G4O17GEMCoulombBarrier & right); + + const G4O17GEMCoulombBarrier & operator=(const G4O17GEMCoulombBarrier & right); + G4bool operator==(const G4O17GEMCoulombBarrier & right) const; + G4bool operator!=(const G4O17GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh new file mode 100644 index 0000000000..b8cf60cdc6 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.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: G4O17GEMProbability.hh,v 1.1 2002/06/06 17:52:08 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4O17GEMProbability_h +#define G4O17GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4O17GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4O17GEMProbability(); + + ~G4O17GEMProbability() {} +private: + // Copy constructor + G4O17GEMProbability(const G4O17GEMProbability &right); + + const G4O17GEMProbability & operator=(const G4O17GEMProbability &right); + G4bool operator==(const G4O17GEMProbability &right) const; + G4bool operator!=(const G4O17GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh new file mode 100644 index 0000000000..08a7d7d876 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.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: G4O18GEMChannel.hh,v 1.1 2002/06/06 17:52:10 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4O18GEMChannel_h +#define G4O18GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4O18GEMCoulombBarrier.hh" +#include "G4O18GEMProbability.hh" + +class G4O18GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4O18GEMChannel() : G4GEMChannel(18,8,"O18", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4O18GEMChannel() {}; + +private: + const G4O18GEMChannel & operator=(const G4O18GEMChannel & right); + + G4O18GEMChannel(const G4O18GEMChannel & right); + +public: + G4bool operator==(const G4O18GEMChannel & right) const; + G4bool operator!=(const G4O18GEMChannel & right) const; + +private: + + G4O18GEMCoulombBarrier theCoulombBarrier; + + G4O18GEMProbability theEvaporationProbability; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh new file mode 100644 index 0000000000..af94623fd9 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4O18GEMCoulombBarrier_h +#define G4O18GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4O18GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4O18GEMCoulombBarrier() : G4GEMCoulombBarrierHE(18,8) {}; + ~G4O18GEMCoulombBarrier() {}; + +private: + G4O18GEMCoulombBarrier(const G4O18GEMCoulombBarrier & right); + + const G4O18GEMCoulombBarrier & operator=(const G4O18GEMCoulombBarrier & right); + G4bool operator==(const G4O18GEMCoulombBarrier & right) const; + G4bool operator!=(const G4O18GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh new file mode 100644 index 0000000000..be091a0c87 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.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: G4O18GEMProbability.hh,v 1.1 2002/06/06 17:52:12 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4O18GEMProbability_h +#define G4O18GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4O18GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4O18GEMProbability(); + + ~G4O18GEMProbability() {} +private: + // Copy constructor + G4O18GEMProbability(const G4O18GEMProbability &right); + + const G4O18GEMProbability & operator=(const G4O18GEMProbability &right); + G4bool operator==(const G4O18GEMProbability &right) const; + G4bool operator!=(const G4O18GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh new file mode 100644 index 0000000000..b1fd24545f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.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: G4O19GEMChannel.hh,v 1.1 2002/06/06 17:52:13 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4O19GEMChannel_h +#define G4O19GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4O19GEMCoulombBarrier.hh" +#include "G4O19GEMProbability.hh" + +class G4O19GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4O19GEMChannel() : G4GEMChannel(19,8,"O19", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4O19GEMChannel() {}; + +private: + const G4O19GEMChannel & operator=(const G4O19GEMChannel & right); + + G4O19GEMChannel(const G4O19GEMChannel & right); + +public: + G4bool operator==(const G4O19GEMChannel & right) const; + G4bool operator!=(const G4O19GEMChannel & right) const; + +private: + + G4O19GEMCoulombBarrier theCoulombBarrier; + + G4O19GEMProbability theEvaporationProbability; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh new file mode 100644 index 0000000000..16dd05d8cb --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4O19GEMCoulombBarrier_h +#define G4O19GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4O19GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4O19GEMCoulombBarrier() : G4GEMCoulombBarrierHE(19,8) {}; + ~G4O19GEMCoulombBarrier() {}; + +private: + G4O19GEMCoulombBarrier(const G4O19GEMCoulombBarrier & right); + + const G4O19GEMCoulombBarrier & operator=(const G4O19GEMCoulombBarrier & right); + G4bool operator==(const G4O19GEMCoulombBarrier & right) const; + G4bool operator!=(const G4O19GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh new file mode 100644 index 0000000000..1b01914bde --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.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: G4O19GEMProbability.hh,v 1.1 2002/06/06 17:52:15 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4O19GEMProbability_h +#define G4O19GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4O19GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4O19GEMProbability(); + + ~G4O19GEMProbability() {} +private: + // Copy constructor + G4O19GEMProbability(const G4O19GEMProbability &right); + + const G4O19GEMProbability & operator=(const G4O19GEMProbability &right); + G4bool operator==(const G4O19GEMProbability &right) const; + G4bool operator!=(const G4O19GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh new file mode 100644 index 0000000000..73a134a835 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.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: G4O20GEMChannel.hh,v 1.1 2002/06/06 17:52:16 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4O20GEMChannel_h +#define G4O20GEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4O20GEMCoulombBarrier.hh" +#include "G4O20GEMProbability.hh" + +class G4O20GEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4O20GEMChannel() : G4GEMChannel(20,8,"O20", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4O20GEMChannel() {}; + +private: + const G4O20GEMChannel & operator=(const G4O20GEMChannel & right); + + G4O20GEMChannel(const G4O20GEMChannel & right); + +public: + G4bool operator==(const G4O20GEMChannel & right) const; + G4bool operator!=(const G4O20GEMChannel & right) const; + +private: + + G4O20GEMCoulombBarrier theCoulombBarrier; + + G4O20GEMProbability theEvaporationProbability; + +}; +#endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh new file mode 100644 index 0000000000..b60f5a2fd8 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + +#ifndef G4O20GEMCoulombBarrier_h +#define G4O20GEMCoulombBarrier_h 1 + +#include "G4GEMCoulombBarrierHE.hh" +#include "globals.hh" + +class G4O20GEMCoulombBarrier : public G4GEMCoulombBarrierHE +{ +public: + G4O20GEMCoulombBarrier() : G4GEMCoulombBarrierHE(20,8) {}; + ~G4O20GEMCoulombBarrier() {}; + +private: + G4O20GEMCoulombBarrier(const G4O20GEMCoulombBarrier & right); + + const G4O20GEMCoulombBarrier & operator=(const G4O20GEMCoulombBarrier & right); + G4bool operator==(const G4O20GEMCoulombBarrier & right) const; + G4bool operator!=(const G4O20GEMCoulombBarrier & right) const; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh new file mode 100644 index 0000000000..7bdb89beca --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.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: G4O20GEMProbability.hh,v 1.1 2002/06/06 17:52:19 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4O20GEMProbability_h +#define G4O20GEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4O20GEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4O20GEMProbability(); + + ~G4O20GEMProbability() {} +private: + // Copy constructor + G4O20GEMProbability(const G4O20GEMProbability &right); + + const G4O20GEMProbability & operator=(const G4O20GEMProbability &right); + G4bool operator==(const G4O20GEMProbability &right) const; + G4bool operator!=(const G4O20GEMProbability &right) const; + + +private: + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 873f748d09..15b7f19616 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PairingCorrection.hh,v 1.3 2001/08/01 17:04:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PairingCorrection.hh,v 1.5 2002/01/15 12:12:24 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -31,31 +31,46 @@ #define G4PairingCorrection_h 1 #include "globals.hh" +#include "G4CookPairingCorrections.hh" +#include "G4CameronGilbertPairingCorrections.hh" +//#include "G4CameronTruranHilfPairingCorrections.hh" + class G4PairingCorrection { private: - + // Dummy constructor - G4PairingCorrection(G4double dummy); - - static G4PairingCorrection theInstance; + G4PairingCorrection(); + + static G4PairingCorrection* theInstance; public: + static G4PairingCorrection* GetInstance(); + ~G4PairingCorrection() {}; - static G4double GetPairingCorrection(const G4int anA, const G4int aZ) + G4double GetPairingCorrection(const G4int A, const G4int Z) const { - const G4double PairingConstant = 12.0*MeV; - const G4int N = anA - aZ; - G4double Pair = (1.0 - G4double(aZ) + 2.0*(aZ/2)) + (1.0 - G4double(N) + 2.0*(N/2)); - G4double PCorrection = Pair*PairingConstant/sqrt(G4double(anA)); - return PCorrection; + G4double PCorrection = 0.0; + const G4int N = A - Z; + if (theCookPairingCorrections->IsInTableThisN(N) && + theCookPairingCorrections->IsInTableThisZ(Z)) + PCorrection = theCookPairingCorrections->GetParingCorrection(A,Z); + else if (theCameronGilbertPairingCorrections->IsInTableThisN(N) && + theCameronGilbertPairingCorrections->IsInTableThisZ(Z)) + PCorrection = theCameronGilbertPairingCorrections->GetPairingCorrection(A,Z); + else { + const G4double PairingConstant = 12.0*MeV; + G4double Pair = (1.0 - G4double(Z) + 2.0*(Z/2)) + (1.0 - G4double(N) + 2.0*(N/2)); + PCorrection = Pair*PairingConstant/sqrt(G4double(A)); + } + return G4std::max(PCorrection,0.0); } - static G4double GetFissionPairingCorrection(const G4int A, const G4int Z) + G4double GetFissionPairingCorrection(const G4int A, const G4int Z) const { const G4double PairingConstant = 14.0*MeV; const G4int N = A - Z; @@ -64,6 +79,12 @@ public: return PCorrection; } - +private: + + + G4CookPairingCorrections* theCookPairingCorrections; +// G4CameronTruranHilfPairingCorrections* theCameronTruranHilfPairingCorrections; + G4CameronGilbertPairingCorrections* theCameronGilbertPairingCorrections; + }; #endif 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 f83681b23e..1935200dd6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh @@ -85,7 +85,7 @@ public: G4FragmentVector * theFissionResult = theFission.BreakUp(anInitialState); // deexcite the fission fragments and fill result - vector theResult; + G4std::vector theResult; G4int ll = theFissionResult->size(); for(G4int i=0; iGetExcitationEnergy(); theExcitationResult = theHandler.BreakItUp(*(*theFissionResult)[i]); // add secondaries - for(G4int j=0; jlength(); j++) + for(G4int j=0; jsize(); j++) { G4DynamicParticle* p0 = new G4DynamicParticle; - p0->SetDefinition( theExcitationResult->at(j)->GetDefinition() ); - p0->SetMomentum( theExcitationResult->at(j)->GetMomentum() ); + p0->SetDefinition( theExcitationResult->operator[](j)->GetDefinition() ); + p0->SetMomentum( theExcitationResult->operator[](j)->GetMomentum() ); theResult.push_back(p0); } } 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 06524b3e72..1191c62967 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonCoulombBarrier.hh,v 1.3 2001/08/01 17:04:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 90aaf28808..e510ffd750 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationChannel.hh,v 1.4 2001/08/01 17:04:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 5cd77595d0..2103104838 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationProbability.hh,v 1.4 2001/08/01 17:04:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..740edfd03e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ProtonGEMChannel.hh,v 1.1 2002/06/06 17:53:13 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4ProtonGEMChannel_h +#define G4ProtonGEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4ProtonCoulombBarrier.hh" +#include "G4ProtonGEMProbability.hh" + +class G4ProtonGEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4ProtonGEMChannel() : G4GEMChannel(1,1,"proton", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4ProtonGEMChannel() {}; + +private: + const G4ProtonGEMChannel & operator=(const G4ProtonGEMChannel & right); + + G4ProtonGEMChannel(const G4ProtonGEMChannel & right); + +public: + G4bool operator==(const G4ProtonGEMChannel & right) const; + G4bool operator!=(const G4ProtonGEMChannel & right) const; + +private: + + G4ProtonCoulombBarrier theCoulombBarrier; + + G4ProtonGEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh new file mode 100644 index 0000000000..29ba9de5c7 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.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: G4ProtonGEMProbability.hh,v 1.1 2002/06/06 17:53:15 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4ProtonGEMProbability_h +#define G4ProtonGEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4ProtonGEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4ProtonGEMProbability(); + + ~G4ProtonGEMProbability() {} +private: + // Copy constructor + G4ProtonGEMProbability(const G4ProtonGEMProbability &right); + + const G4ProtonGEMProbability & operator=(const G4ProtonGEMProbability &right); + G4bool operator==(const G4ProtonGEMProbability &right) const; + G4bool operator!=(const G4ProtonGEMProbability &right) const; + + +private: + + virtual G4double CalcAlphaParam(const G4Fragment & fragment) const + { + return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ())); + } + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + G4double CCoeficient(const G4double aZ) const; + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh new file mode 100644 index 0000000000..42c3432924 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +#ifndef G4ShellCorrection_h +#define G4ShellCorrection_h 1 + +#include "globals.hh" +#include "G4CookShellCorrections.hh" +#include "G4CameronGilbertShellCorrections.hh" +//#include "G4CameronTruranHilfShellCorrections.hh" + + +class G4ShellCorrection +{ +private: + + // Dummy constructor + G4ShellCorrection(); + + static G4ShellCorrection* theInstance; + +public: + static G4ShellCorrection* GetInstance(); + ~G4ShellCorrection() {}; + + G4double GetShellCorrection(const G4int A, const G4int Z) const + { + G4double SCorrection = 0.0; + if (theCookShellCorrections->IsInTableThisN(A-Z) || + theCookShellCorrections->IsInTableThisZ(Z)) + SCorrection = theCookShellCorrections->GetShellCorrection(A,Z); + else if (theCameronGilbertShellCorrections->IsInTableThisN(A-Z) || + theCameronGilbertShellCorrections->IsInTableThisZ(Z)) + SCorrection = theCameronGilbertShellCorrections->GetShellCorrection(A,Z); + + return SCorrection; + } + +private: + + G4CookShellCorrections* theCookShellCorrections; + G4CameronGilbertShellCorrections* theCameronGilbertShellCorrections; +// G4CameronTruranHilfShellCorrections* theCameronTruranHilfShellCorrections; + + +}; +#endif 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 d459f7e4d2..c3e3169cc6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Solver.hh,v 1.5 2001/08/01 17:04:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Solver.hh,v 1.6 2002/06/06 17:27:04 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -69,20 +69,22 @@ public: G4double GetIntervalUpperLimit(void) const {return b;} void SetIntervalLimits(const G4double Limit1, const G4double Limit2); - + G4double GetRoot(void) const {return root;} - + // Calculates the root by the Bisection method -// template G4bool Bisection(const Function & theFunction); G4bool Bisection(Function & theFunction); // Calculates the root by the Regula-Falsi method -// template G4bool RegulaFalsi(const Function & theFunction); G4bool RegulaFalsi(Function & theFunction); // Calculates the root by the Brent's method G4bool Brent(Function & theFunction); + + // Calculates the root by the Inverse Parabolic Interpolation method + // due to Jack Crenshaw + G4bool Crenshaw(Function & theFunction); private: 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 1685786119..ee6dcaba5e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc @@ -23,197 +23,327 @@ template G4bool G4Solver::Bisection(Function & theFunction) { - // Check the interval before start - if (a > b || abs(a-b) <= tolerance) { - G4cerr << "G4Solver::Bisection: The interval must be properly set." << G4endl; - return false; - } - G4double fa = theFunction(a); - G4double fb = theFunction(b); - if (fa*fb > 0.0) { - G4cerr << "G4Solver::Bisection: The interval must include a root." << G4endl; - return false; - } - - G4double eps=tolerance*(b-a); - - - // Finding the root - for (G4int i = 0; i < MaxIter; i++) { - G4double c = (a+b)/2.0; - if ((b-a) < eps) { - root = c; - return true; - } - G4double fc = theFunction(c); - if (fc == 0.0) { - root = c; - return true; - } - if (fa*fc < 0.0) { - a=c; - fa=fc; - } else { - b=c; - fb=fc; - } - } - G4cerr << "G4Solver::Bisection: Excedded maximum number of iterations whithout convegence." << G4endl; + // Check the interval before start + if (a > b || abs(a-b) <= tolerance) + { + G4cerr << "G4Solver::Bisection: The interval must be properly set." << G4endl; return false; + } + G4double fa = theFunction(a); + G4double fb = theFunction(b); + if (fa*fb > 0.0) + { + G4cerr << "G4Solver::Bisection: The interval must include a root." << G4endl; + return false; + } + + G4double eps=tolerance*(b-a); + + + // Finding the root + for (G4int i = 0; i < MaxIter; i++) + { + G4double c = (a+b)/2.0; + if ((b-a) < eps) + { + root = c; + return true; + } + G4double fc = theFunction(c); + if (fc == 0.0) + { + root = c; + return true; + } + if (fa*fc < 0.0) + { + a=c; + fa=fc; + } + else + { + b=c; + fb=fc; + } + } + G4cerr << "G4Solver::Bisection: Excedded maximum number of iterations whithout convegence." << G4endl; + return false; } - + template G4bool G4Solver::RegulaFalsi(Function & theFunction) { - // Check the interval before start - if (a > b || abs(a-b) <= tolerance) { - G4cerr << "G4Solver::RegulaFalsi: The interval must be properly set." << G4endl; - return false; - } - G4double fa = theFunction(a); - G4double fb = theFunction(b); - if (fa*fb > 0.0) { - G4cerr << "G4Solver::RegulaFalsi: The interval must include a root." << G4endl; - return false; - } - - G4double eps=tolerance*(b-a); - - - // Finding the root - for (G4int i = 0; i < MaxIter; i++) { - G4double c = (a*fb-b*fa)/(fb-fa); - G4double delta = G4std::min(abs(c-a),abs(b-c)); - if (delta < eps) { - root = c; - return true; - } - G4double fc = theFunction(c); - if (fc == 0.0) { - root = c; - return true; - } - if (fa*fc < 0.0) { - b=c; - fb=fc; - } else { - a=c; - fa=fc; - } - } - G4cerr << "G4Solver::Bisection: Excedded maximum number of iterations whithout convegence." << G4endl; + // Check the interval before start + if (a > b || abs(a-b) <= tolerance) + { + G4cerr << "G4Solver::RegulaFalsi: The interval must be properly set." << G4endl; return false; + } + G4double fa = theFunction(a); + G4double fb = theFunction(b); + if (fa*fb > 0.0) + { + G4cerr << "G4Solver::RegulaFalsi: The interval must include a root." << G4endl; + return false; + } + + G4double eps=tolerance*(b-a); + + + // Finding the root + for (G4int i = 0; i < MaxIter; i++) + { + G4double c = (a*fb-b*fa)/(fb-fa); + G4double delta = G4std::min(abs(c-a),abs(b-c)); + if (delta < eps) + { + root = c; + return true; + } + G4double fc = theFunction(c); + if (fc == 0.0) + { + root = c; + return true; + } + if (fa*fc < 0.0) + { + b=c; + fb=fc; + } + else + { + a=c; + fa=fc; + } + } + G4cerr << "G4Solver::Bisection: Excedded maximum number of iterations whithout convegence." << G4endl; + return false; } template G4bool G4Solver::Brent(Function & theFunction) { - - const G4double precision = 3.0e-8; - - // Check the interval before start - if (a > b || abs(a-b) <= tolerance) { - G4cerr << "G4Solver::Brent: The interval must be properly set." << G4endl; - return false; - } - G4double fa = theFunction(a); - G4double fb = theFunction(b); - if (fa*fb > 0.0) { - G4cerr << "G4Solver::Brent: The interval must include a root." << G4endl; - return false; - } - - G4double c = b; - G4double fc = fb; - G4double d = 0.0; - G4double e = 0.0; - - - - for (G4int i=0; i < MaxIter; i++) { - // Rename a,b,c and adjust bounding interval d - if (fb*fc > 0.0) { - c = a; - fc = fa; - d = b - a; - e = d; - } - if (abs(fc) < abs(fb)) { - a = b; - b = c; - c = a; - fa = fb; - fb = fc; - fc = fa; - } - G4double Tol1 = 2.0*precision*abs(b) + 0.5*tolerance; - G4double xm = 0.5*(c-b); - if (abs(xm) <= Tol1 || fb == 0.0) { - root = b; - return true; - } - // Inverse quadratic interpolation - if (abs(e) >= Tol1 && abs(fa) > abs(fb)) { - G4double s = fb/fa; - G4double p = 0.0; - G4double q = 0.0; - if (a == c) { - p = 2.0*xm*s; - q = 1.0 - s; - } else { - q = fa/fc; - G4double r = fb/fc; - p = s*(2.0*xm*q*(q-r)-(b-a)*(r-1.0)); - q = (q-1.0)*(r-1.0)*(s-1.0); - } - // Check bounds - if (p > 0.0) q = -q; - p = abs(p); - G4double min1 = 3.0*xm*q-abs(Tol1*q); - G4double min2 = abs(e*q); - if (2.0*p < G4std::min(min1,min2)) { - // Interpolation - e = d; - d = p/q; - } else { - // Bisection - d = xm; - e = d; - } - } else { - // Bounds decreasing too slowly, use bisection - d = xm; - e = d; - } - // Move last guess to a - a = b; - fa = fb; - if (abs(d) > Tol1) b += d; - else { - if (xm >= 0.0) b += abs(Tol1); - else b -= abs(Tol1); - } - fb = theFunction(b); - } - G4cerr << "G4Solver::Brent: Number of iterations exceeded." << G4endl; + + const G4double precision = 3.0e-8; + + // Check the interval before start + if (a > b || abs(a-b) <= tolerance) + { + G4cerr << "G4Solver::Brent: The interval must be properly set." << G4endl; return false; + } + G4double fa = theFunction(a); + G4double fb = theFunction(b); + if (fa*fb > 0.0) + { + G4cerr << "G4Solver::Brent: The interval must include a root." << G4endl; + return false; + } + + G4double c = b; + G4double fc = fb; + G4double d = 0.0; + G4double e = 0.0; + + for (G4int i=0; i < MaxIter; i++) + { + // Rename a,b,c and adjust bounding interval d + if (fb*fc > 0.0) + { + c = a; + fc = fa; + d = b - a; + e = d; + } + if (abs(fc) < abs(fb)) + { + a = b; + b = c; + c = a; + fa = fb; + fb = fc; + fc = fa; + } + G4double Tol1 = 2.0*precision*abs(b) + 0.5*tolerance; + G4double xm = 0.5*(c-b); + if (abs(xm) <= Tol1 || fb == 0.0) + { + root = b; + return true; + } + // Inverse quadratic interpolation + if (abs(e) >= Tol1 && abs(fa) > abs(fb)) + { + G4double s = fb/fa; + G4double p = 0.0; + G4double q = 0.0; + if (a == c) + { + p = 2.0*xm*s; + q = 1.0 - s; + } + else + { + q = fa/fc; + G4double r = fb/fc; + p = s*(2.0*xm*q*(q-r)-(b-a)*(r-1.0)); + q = (q-1.0)*(r-1.0)*(s-1.0); + } + // Check bounds + if (p > 0.0) q = -q; + p = abs(p); + G4double min1 = 3.0*xm*q-abs(Tol1*q); + G4double min2 = abs(e*q); + if (2.0*p < G4std::min(min1,min2)) + { + // Interpolation + e = d; + d = p/q; + } + else + { + // Bisection + d = xm; + e = d; + } + } + else + { + // Bounds decreasing too slowly, use bisection + d = xm; + e = d; + } + // Move last guess to a + a = b; + fa = fb; + if (abs(d) > Tol1) b += d; + else + { + if (xm >= 0.0) b += abs(Tol1); + else b -= abs(Tol1); + } + fb = theFunction(b); + } + G4cerr << "G4Solver::Brent: Number of iterations exceeded." << G4endl; + return false; } + + +template +G4bool G4Solver::Crenshaw(Function & theFunction) +{ + // Check the interval before start + if (a > b || abs(a-b) <= tolerance) + { + G4cerr << "G4Solver::Crenshaw: The interval must be properly set." << G4endl; + return false; + } + + G4double fa = theFunction(a); + if (fa == 0.0) + { + root = a; + return true; + } + + G4double Mlast = a; + + G4double fb = theFunction(b); + if (fb == 0.0) + { + root = b; + return true; + } + + if (fa*fb > 0.0) + { + G4cerr << "G4Solver::Crenshaw: The interval must include a root." << G4endl; + return false; + } + + + for (G4int i=0; i < MaxIter; i++) + { + G4double c = 0.5 * (b + a); + G4double fc = theFunction(c); + if (fc == 0.0 || abs(c - a) < tolerance) + { + root = c; + return true; + } + + if (fc * fa > 0.0) + { + G4double tmp = a; + a = b; + b = tmp; + tmp = fa; + fa = fb; + fb = tmp; + } + + G4double fc0 = fc - fa; + G4double fb1 = fb - fc; + G4double fb0 = fb - fa; + if (fb * fb0 < 2.0 * fc * fc0) + { + b = c; + fb = fc; + } + else + { + G4double B = (c - a) / fc0; + G4double C = (fc0 - fb1) / (fb1 * fb0); + G4double M = a - B * fa * (1.0 - C * fc); + G4double fM = theFunction(M); + if (fM == 0.0 || abs(M - Mlast) < tolerance) + { + root = M; + return true; + } + Mlast = M; + if (fM * fa < 0.0) + { + b = M; + fb = fM; + } + else + { + a = M; + fa = fM; + b = c; + fb = fc; + } + } + } + return false; +} + + + + template void G4Solver::SetIntervalLimits(const G4double Limit1, const G4double Limit2) { - if (abs(Limit1-Limit2) <= tolerance) { - G4cerr << "G4Solver::SetIntervalLimits: Interval must be wider than tolerance." << G4endl; - return; - } - if (Limit1 < Limit2) { - a = Limit1; - b = Limit2; - } else { - a = Limit2; - b = Limit1; - } + if (abs(Limit1-Limit2) <= tolerance) + { + G4cerr << "G4Solver::SetIntervalLimits: Interval must be wider than tolerance." << G4endl; return; + } + if (Limit1 < Limit2) + { + a = Limit1; + b = Limit2; + } + else + { + a = Limit2; + b = Limit1; + } + return; } + 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 9d6ea898b9..e78c4da1ec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4StableFermiFragment.hh,v 1.5 2001/08/01 17:04:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 04de392e99..db224e8e7a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMF.hh,v 1.6 2001/08/01 17:04:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMF.hh,v 1.7 2002/01/15 12:18:42 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -43,6 +43,7 @@ #include "Randomize.hh" +//#define pctest class G4StatMF : public G4VMultiFragmentation { 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 9bfa947bf6..1ed34c1001 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFChannel.hh,v 1.7 2001/10/22 11:52:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFChannel.hh,v 1.8 2002/06/06 17:28:15 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -48,9 +48,9 @@ public: // Destructor ~G4StatMFChannel() { - while (!_theFragments.empty()) { - delete _theFragments.back(); - _theFragments.pop_back(); + if (!_theFragments.empty()) { + G4std::for_each(_theFragments.begin(),_theFragments.end(), + DeleteFragment()); } } @@ -69,9 +69,6 @@ public: public: void CreateFragment(const G4double A, const G4double Z); -// { -// _theFragments.insert(new G4StatMFFragment(A,Z)); -// } G4int GetMultiplicity(void) { return _theFragments.size();} @@ -122,6 +119,15 @@ private: G4int _NumOfChargedFragments; + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + }; #endif 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 dd0be0d9c0..3922fd885d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFFragment.hh,v 1.6 2001/08/01 17:04:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFFragment.hh,v 1.8 2002/06/07 15:30:55 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -64,11 +64,11 @@ public: public: - G4double GetCoulombEnergy(void); + G4double GetCoulombEnergy(void) const; - G4double GetEnergy(const G4double T); + G4double GetEnergy(const G4double T) const; - G4double GetInvLevelDensity(void); + G4double GetInvLevelDensity(void) const; G4double GetA(void) const {return theA;} @@ -85,7 +85,8 @@ public: G4Fragment * GetFragment(const G4double T); G4double GetNuclearMass(void) - {return G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(theZ,theA);} + {return G4ParticleTable::GetParticleTable()->GetIonTable() + ->GetIonMass(static_cast(theZ), static_cast(theA));} private: 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 982f3c6083..14d86e059d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroBiNucleon.hh,v 1.6 2001/08/01 17:04:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 f06ba51070..92aac9927d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroChemicalPotential.hh,v 1.6 2001/08/01 17:04:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroChemicalPotential.hh,v 1.7 2002/06/18 14:13:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -30,7 +30,7 @@ #ifndef G4StatMFMacroChemicalPotential_h #define G4StatMFMacroChemicalPotential_h 1 -#include +#include "g4std/vector" #include "G4StatMFParameters.hh" #include "G4VStatMFMacroCluster.hh" 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 32c2b9b9d5..db13c3d5ce 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroMultiNucleon.hh,v 1.5 2001/08/01 17:04:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 d0f5fd35a5..1b5d4f82f1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroMultiplicity.hh,v 1.6 2001/08/01 17:04:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroMultiplicity.hh,v 1.7 2002/06/18 14:13:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -30,7 +30,7 @@ #ifndef G4StatMFMacroMultiplicity_h #define G4StatMFMacroMultiplicity_h 1 -#include +#include "g4std/vector" #include "G4StatMFParameters.hh" #include "G4VStatMFMacroCluster.hh" 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 508856f00f..c4dc3cc167 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroNucleon.hh,v 1.7 2001/10/05 16:13:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 fe21a21561..bf4779f418 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTemperature.hh,v 1.8 2001/10/05 16:13:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 17b6143296..cc5e979204 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTetraNucleon.hh,v 1.6 2001/08/01 17:04:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 80618fc81f..98289dc7a2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTriNucleon.hh,v 1.6 2001/08/01 17:04:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0c9dbf77b2..cc8ca269bd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroCanonical.hh,v 1.9 2001/10/06 08:32:27 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroCanonical.hh,v 1.10 2002/06/06 17:29:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -106,6 +106,16 @@ private: // Clusters G4std::vector _theClusters; + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + + }; #endif 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 148467abae..38a04c5e38 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroManager.hh,v 1.5 2001/08/01 17:04:49 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMicroManager.hh,v 1.6 2002/06/06 17:29:23 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -112,6 +112,16 @@ private: G4double _MeanTemperature; G4double _MeanEntropy; + + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + }; #endif 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 77b9580f56..52a384dd19 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroPartition.hh,v 1.8 2001/08/01 17:04:49 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMicroPartition.hh,v 1.9 2002/06/18 14:13:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -30,7 +30,7 @@ #ifndef G4StatMFMicroPartition_h #define G4StatMFMicroPartition_h 1 -#include +#include "g4std/vector" #include "globals.hh" #include "G4StatMFParameters.hh" 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 02fdee9971..eac25a976a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroCanonical.hh,v 1.7 2001/08/01 17:04:49 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMicroCanonical.hh,v 1.9 2002/06/18 14:13:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -30,7 +30,7 @@ #ifndef G4StatMFMicroCanonical_h #define G4StatMFMicroCanonical_h 1 -#include +#include "g4std/vector" #include "G4VStatMFEnsemble.hh" #include "G4StatMFMicroPartition.hh" @@ -102,6 +102,33 @@ private: // Statistical weight of compound nucleus G4double _WCompoundNucleus; + + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + + class SumProbabilities : public G4std::binary_function + { + public: + SumProbabilities() : total(0.0) {} + G4double operator() (G4double& probSoFar, G4StatMFMicroManager*& manager) + { + total += manager->GetProbability(); + return total; + } + + G4double GetTotal() { return total; } + public: + G4double total; + + }; + + }; #endif 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 d361b80f05..d1071146b7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFParameters.hh,v 1.5 2001/08/01 17:04:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFParameters.hh,v 1.6 2002/06/06 17:30:01 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -35,66 +35,59 @@ class G4StatMFParameters { private: - static G4StatMFParameters theStatMFParameters; - - // +----------------------+ - // | Constant Parameters: | - // +----------------------+ - // Kappa is used for calculate volume V_f for translational motion of fragments - static const G4double _Kappa; - // KappaCoulomb is used for calculate Coulomb term energy - static const G4double _KappaCoulomb; - // Inverse level density - static const G4double _Epsilon0; - // Bethe-Weizsacker coefficients - static const G4double _E0; - static const G4double _Beta0; - static const G4double _Gamma0; - // Critical temperature (for liquid-gas phase transitions) - static const G4double _CriticalTemp; - // Nuclear radius - static const G4double _r0; - - - // default constructor - G4StatMFParameters() -// : -// _Kappa(1.0), -// _KappaCoulomb(2.0), -// _Epsilon0(16.0), // MeV -// _E0(16.0), // MeV -// _Beta0(18.0), // MeV -// _Gamma0(25.0), // MeV -// _CriticalTemp(18.0), // MeV -// _r0(1.17) // fm - {} + static G4StatMFParameters theStatMFParameters; + + // +----------------------+ + // | Constant Parameters: | + // +----------------------+ + // Kappa is used for calculate volume V_f for translational motion of fragments + static const G4double _Kappa; + // KappaCoulomb is used for calculate Coulomb term energy + static const G4double _KappaCoulomb; + // Inverse level density + static const G4double _Epsilon0; + // Bethe-Weizsacker coefficients + static const G4double _E0; + static const G4double _Beta0; + static const G4double _Gamma0; + // Critical temperature (for liquid-gas phase transitions) + static const G4double _CriticalTemp; + // Nuclear radius + static const G4double _r0; + + + // default constructor + G4StatMFParameters() + {} public: - - ~G4StatMFParameters() {}; - - static G4StatMFParameters * GetAddress(); - - static G4double GetKappa() { return _Kappa; } - - static G4double GetKappaCoulomb() { return _KappaCoulomb; } - - static G4double GetEpsilon0() { return _Epsilon0; } - - static G4double GetE0() { return _E0; } - - static G4double GetBeta0() { return _Beta0; } - - static G4double GetGamma0() { return _Gamma0; } - - static G4double GetCriticalTemp() { return _CriticalTemp; } - - static G4double Getr0() { return _r0; } - static G4double Beta(const G4double T); + ~G4StatMFParameters() {}; - static G4double DBetaDT(const G4double T); + static G4StatMFParameters * GetAddress(); + + static G4double GetKappa() { return _Kappa; } + + static G4double GetKappaCoulomb() { return _KappaCoulomb; } + + static G4double GetEpsilon0() { return _Epsilon0; } + + static G4double GetE0() { return _E0; } + + static G4double GetBeta0() { return _Beta0; } + + static G4double GetGamma0() { return _Gamma0; } + + static G4double GetCriticalTemp() { return _CriticalTemp; } + + static G4double Getr0() { return _r0; } + + static G4double Beta(const G4double T); + + static G4double DBetaDT(const G4double T); + + static G4double GetMaxAverageMultiplicity(const G4int A); }; #endif 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 b59b108c6a..9921d8d6c1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonCoulombBarrier.hh,v 1.4 2001/08/01 17:04:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 d3cb72545e..93512e2632 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationChannel.hh,v 1.4 2001/08/01 17:04:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 75e199226a..d6ce500be9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationProbability.hh,v 1.4 2001/08/01 17:04:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..48dbddf772 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TritonGEMChannel.hh,v 1.1 2002/06/06 17:53:47 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept. 2001) +// + + +#ifndef G4TritonGEMChannel_h +#define G4TritonGEMChannel_h 1 + +#include "G4GEMChannel.hh" +#include "G4TritonCoulombBarrier.hh" +#include "G4TritonGEMProbability.hh" + +class G4TritonGEMChannel : public G4GEMChannel +{ +public: + // only available constructor + G4TritonGEMChannel() : G4GEMChannel(3,1,"triton", + &theEvaporationProbability, + &theCoulombBarrier) + { + theEvaporationProbability.SetCoulomBarrier(&theCoulombBarrier); + } + + // destructor + ~G4TritonGEMChannel() {}; + +private: + const G4TritonGEMChannel & operator=(const G4TritonGEMChannel & right); + + G4TritonGEMChannel(const G4TritonGEMChannel & right); + +public: + G4bool operator==(const G4TritonGEMChannel & right) const; + G4bool operator!=(const G4TritonGEMChannel & right) const; + +private: + + G4TritonCoulombBarrier theCoulombBarrier; + + G4TritonGEMProbability theEvaporationProbability; + +}; +#endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh new file mode 100644 index 0000000000..70797b1b16 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.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: G4TritonGEMProbability.hh,v 1.1 2002/06/06 17:53:49 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + + +#ifndef G4TritonGEMProbability_h +#define G4TritonGEMProbability_h 1 + + +#include "G4GEMProbability.hh" + + +class G4TritonGEMProbability : public G4GEMProbability +{ +public: + // Only available constructor + G4TritonGEMProbability(); + + ~G4TritonGEMProbability() {} +private: + // Copy constructor + G4TritonGEMProbability(const G4TritonGEMProbability &right); + + const G4TritonGEMProbability & operator=(const G4TritonGEMProbability &right); + G4bool operator==(const G4TritonGEMProbability &right) const; + G4bool operator!=(const G4TritonGEMProbability &right) const; + + +private: + + virtual G4double CalcAlphaParam(const G4Fragment & fragment) const + { + return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ())); + } + + virtual G4double CalcBetaParam(const G4Fragment & fragment) const + { + return -GetCoulombBarrier(fragment); + } + + G4double CCoeficient(const G4double aZ) const; + + + // Excitation energy levels + G4std::vector ExcitEnergies; + // Spin of excitation energy levels + G4std::vector ExcitSpins; + + G4std::vector ExcitLifetimes; + +}; + + +#endif 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 10fee0f7da..0dbb8117fb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnstableFermiFragment.hh,v 1.7 2001/10/22 11:52:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 38f30bb93c..581652be35 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCoulombBarrier.hh,v 1.4 2001/08/01 17:04:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 d1768a0fc8..b4629967b5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEmissionProbability.hh,v 1.6 2001/08/01 17:04:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 8d26128388..eb7350d910 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporation.hh,v 1.5 2001/08/01 17:04:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b0d043d6ae..f203c567a3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporationChannel.hh,v 1.6 2001/08/01 17:04:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..ad7bbff734 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#ifndef G4VEvaporationFactory_hh +#define G4VEvaporationFactory_hh + + +#include "G4VEvaporationChannel.hh" +#include "g4std/vector" + +class G4VEvaporationFactory +{ +public: + G4VEvaporationFactory() : _channel(0) {}; + virtual ~G4VEvaporationFactory(); + +private: + G4VEvaporationFactory(const G4VEvaporationFactory & val) {}; + const G4VEvaporationFactory & operator=(const G4VEvaporationFactory & val); + G4bool operator==(const G4VEvaporationFactory & val) const; + G4bool operator!=(const G4VEvaporationFactory & val) const; + +public: + + G4std::vector * GetChannel(); + +protected: + virtual G4std::vector * CreateChannel() = 0; + + + +private: + G4std::vector * _channel; + + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + +}; +#endif 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 ff6e9c4efd..bbd60d2c6f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFermiBreakUp.hh,v 1.5 2001/08/01 17:04:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 2203966e53..d417d57009 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFermiFragment.hh,v 1.5 2001/08/01 17:04:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 ed0002cc9f..a076234a96 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFissionBarrier.hh,v 1.5 2001/08/01 17:04:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) 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 5b24664214..6e88c150f6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4VLevelDensityParameter.hh,v 1.5 2001/08/01 17:04:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 cc37530b19..5bf2963956 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMultiFragmentation.hh,v 1.6 2001/08/01 17:05:00 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara 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 2ef4aeec53..4321002d96 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFEnsemble.hh,v 1.5 2001/08/01 17:05:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 88a753d244..b861f33b2c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFMacroCluster.hh,v 1.7 2001/08/01 17:05:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 2f0d517b3b..b52a984a6f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaCoulombBarrier.cc,v 1.4 2001/08/01 17:05:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 93a7f9584b..fbd7b24d27 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationChannel.cc,v 1.4 2001/08/01 17:05:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 335eb32775..26d71c152b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationProbability.cc,v 1.4 2001/08/01 17:05:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..5a2ee00b81 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.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: G4AlphaGEMChannel.cc,v 1.1 2002/06/06 17:59:05 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov. 1999) +// + +#include "G4AlphaGEMChannel.hh" + + +const G4AlphaGEMChannel & G4AlphaGEMChannel::operator=(const G4AlphaGEMChannel & right) +{ + G4Exception("G4AlphaGEMChannel::operator= meant to not be accessable"); + return *this; +} + +G4AlphaGEMChannel::G4AlphaGEMChannel(const G4AlphaGEMChannel & right) +{ + G4Exception("G4AlphaGEMChannel::CopyConstructor meant to not be accessable"); +} + +G4bool G4AlphaGEMChannel::operator==(const G4AlphaGEMChannel & right) const +{ + return (this == (G4AlphaGEMChannel *) &right); + // return false; +} + +G4bool G4AlphaGEMChannel::operator!=(const G4AlphaGEMChannel & right) const +{ + return (this != (G4AlphaGEMChannel *) &right); + // return true; +} + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc new file mode 100644 index 0000000000..1bd1746cb4 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.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: G4AlphaGEMProbability.cc,v 1.1 2002/06/06 17:59:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4AlphaGEMProbability.hh" + +G4AlphaGEMProbability::G4AlphaGEMProbability() : + G4GEMProbability(3,2,0.0) // A,Z,Gamma +{ + ExcitEnergies.push_back(20.01E+3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(207.0*keV); + + ExcitEnergies.push_back(21.18E+3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(0.73*MeV); + + ExcitEnergies.push_back(22.02E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(1.83*MeV); + + ExcitEnergies.push_back(25.33E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(2.36*MeV); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4AlphaGEMProbability::G4AlphaGEMProbability(const G4AlphaGEMProbability &right) +{ + G4Exception("G4AlphaGEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4AlphaGEMProbability & G4AlphaGEMProbability:: +operator=(const G4AlphaGEMProbability &right) +{ + G4Exception("G4AlphaGEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4AlphaGEMProbability::operator==(const G4AlphaGEMProbability &right) const +{ + return false; +} + +G4bool G4AlphaGEMProbability::operator!=(const G4AlphaGEMProbability &right) const +{ + return true; +} + + +G4double G4AlphaGEMProbability::CCoeficient(const G4double aZ) const +{ + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // G4double Zlist[5] = { 10.0, 20.0, 30.0, 50.0, 70.0}; + // G4double Calpha[5] = { 0.10, 0.10, 0.10, 0.08, 0.06}; + G4double C = 0.0; + + + if (aZ <= 30) { + C = 0.10; + } else if (aZ <= 50) { + C = 0.1 + -((aZ-50.)/20.)*0.02; + } else if (aZ < 70) { + C = 0.08 + -((aZ-70.)/20.)*0.02; + } else { + C = 0.06; + } + return C; +} + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc new file mode 100644 index 0000000000..882ac6739e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: G4B10GEMProbability.cc,v 1.1 2002/06/06 17:59:08 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4B10GEMProbability.hh" + +G4B10GEMProbability::G4B10GEMProbability() : + G4GEMProbability(10,5,3.0) // A,Z,Spin +{ + ExcitEnergies.push_back(718.35*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(0.707e-9*s); + + ExcitEnergies.push_back(1740.15*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(5.0e-15*s); + + ExcitEnergies.push_back(2154.3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(1.48e-12*s); + + ExcitEnergies.push_back(3587.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(106.0e-15*s); + + ExcitEnergies.push_back(4774.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.7*keV)); + + ExcitEnergies.push_back(5110.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.98*keV)); + + ExcitEnergies.push_back(5163.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(4.2e-15*s); + + ExcitEnergies.push_back(5180.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(5919.5*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(6025.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.05*keV)); + + ExcitEnergies.push_back(6127.2*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.36*keV)); + + ExcitEnergies.push_back(6561.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25.1*keV)); + + ExcitEnergies.push_back(6873.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(7002.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(7430.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(7467.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65.0*keV)); + + ExcitEnergies.push_back(7479.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(74.0*keV)); + + ExcitEnergies.push_back(7560.7*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.65*keV)); + + ExcitEnergies.push_back(7670.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250.0*keV)); + + ExcitEnergies.push_back(7819.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(260.0*keV)); + + ExcitEnergies.push_back(8070.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800.0*keV)); + + ExcitEnergies.push_back(8700.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(8889.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(84.0*keV)); + + ExcitEnergies.push_back(8895.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(9700.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(700.0*keV)); + + ExcitEnergies.push_back(10840.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(11520.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(12560.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(13490.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(14.4e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800.0*keV)); + + ExcitEnergies.push_back(18.2e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1500.0*keV)); + + ExcitEnergies.push_back(18430.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(340.0*keV)); + + ExcitEnergies.push_back(18800.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(19290.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4B10GEMProbability::G4B10GEMProbability(const G4B10GEMProbability &right) +{ + G4Exception("G4B10GEMProbability::copy_constructor meant to not be accessable");} + + + + +const G4B10GEMProbability & G4B10GEMProbability:: +operator=(const G4B10GEMProbability &right) +{ + G4Exception("G4B10GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4B10GEMProbability::operator==(const G4B10GEMProbability &right) const +{ + return false; +} + +G4bool G4B10GEMProbability::operator!=(const G4B10GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc new file mode 100644 index 0000000000..80586f8b31 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4B11GEMProbability.cc,v 1.1 2002/06/06 17:59:09 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4B11GEMProbability.hh" + +G4B11GEMProbability::G4B11GEMProbability() : + G4GEMProbability(11,5,3.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(2124.693*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(3.8e-15*s); + + ExcitEnergies.push_back(4444.89*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.82e-15*s); + + ExcitEnergies.push_back(5020.31*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.236e-15*s); + + ExcitEnergies.push_back(6742.9*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(15.0e-15*s); + + ExcitEnergies.push_back(6791.8*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(1.18e-15*s); + + ExcitEnergies.push_back(7285.51*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.4e-15*s); + + ExcitEnergies.push_back(7977.84*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.4e-15*s); + + ExcitEnergies.push_back(8560.3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.49e-15*s); + + ExcitEnergies.push_back(8920.2*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(4.4e-15*s); + + ExcitEnergies.push_back(9185.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.9*eV)); + + ExcitEnergies.push_back(9274.4*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(9876.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(10260.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(165.0*keV)); + + ExcitEnergies.push_back(10330.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(10597.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(10960.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4500.0*keV)); + + ExcitEnergies.push_back(11265.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(11444.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(103.0*keV)); + + ExcitEnergies.push_back(11886.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(12.0e3*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(12557.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(210.0*keV)); + + ExcitEnergies.push_back(12916.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(155.0*keV)); + + ExcitEnergies.push_back(13137.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(426.0*keV)); + + ExcitEnergies.push_back(13.16e3*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(430.0*keV)); + + ExcitEnergies.push_back(14.04e3*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(14.34e3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(254.0*keV)); + + ExcitEnergies.push_back(14565.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(15.32e3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(635.0*keV)); + + ExcitEnergies.push_back(16437.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4B11GEMProbability::G4B11GEMProbability(const G4B11GEMProbability &right) +{ + G4Exception("G4B11GEMProbability::copy_constructor meant to not be accessable");} + + + + +const G4B11GEMProbability & G4B11GEMProbability:: +operator=(const G4B11GEMProbability &right) +{ + G4Exception("G4B11GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4B11GEMProbability::operator==(const G4B11GEMProbability &right) const +{ + return false; +} + +G4bool G4B11GEMProbability::operator!=(const G4B11GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc new file mode 100644 index 0000000000..da60210375 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4B12GEMProbability.cc,v 1.1 2002/06/06 17:59:10 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4B12GEMProbability.hh" + +G4B12GEMProbability::G4B12GEMProbability() : + G4GEMProbability(12,5,1.0) // A,Z,Spin +{ + ExcitEnergies.push_back(953.14*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(180.0e-15*s); + + ExcitEnergies.push_back(1673.65*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(35.0e-15*s); + + ExcitEnergies.push_back(2620.8*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(49.0e-15*s); + + ExcitEnergies.push_back(3388.3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.1*eV)); + + ExcitEnergies.push_back(3759.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back(4301*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(9*keV)); + + ExcitEnergies.push_back(4518*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110*keV)); + + ExcitEnergies.push_back(5.00E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50*keV)); + + ExcitEnergies.push_back(5612*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110*keV)); + + ExcitEnergies.push_back(5726*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50*keV)); + + ExcitEnergies.push_back(6.6E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140*keV)); + + ExcitEnergies.push_back(7.67E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45*keV)); + + ExcitEnergies.push_back(7836*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60*keV)); + + ExcitEnergies.push_back(7937*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(27*keV)); + + ExcitEnergies.push_back(8.24E+3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65*keV)); + + ExcitEnergies.push_back(8.58E+3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(75*keV)); + + ExcitEnergies.push_back(9040*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95*keV)); + + ExcitEnergies.push_back(9585*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(34*keV)); + + ExcitEnergies.push_back(1.275E+4*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(85*keV)); + + ExcitEnergies.push_back(1.482E+4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4B12GEMProbability::G4B12GEMProbability(const G4B12GEMProbability &right) +{ + G4Exception("G4B12GEMProbability::copy_constructor meant to not be accessable");} + + + + +const G4B12GEMProbability & G4B12GEMProbability:: +operator=(const G4B12GEMProbability &right) +{ + G4Exception("G4B12GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4B12GEMProbability::operator==(const G4B12GEMProbability &right) const +{ + return false; +} + +G4bool G4B12GEMProbability::operator!=(const G4B12GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc new file mode 100644 index 0000000000..f53b3d07d5 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4B13GEMProbability.cc,v 1.1 2002/06/06 17:59:12 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4B13GEMProbability.hh" + +G4B13GEMProbability::G4B13GEMProbability() : + G4GEMProbability(13,5,3.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(3534.7*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(0.2e-15*s); + + ExcitEnergies.push_back(3712*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(0.26e-15*s); + + ExcitEnergies.push_back(4131*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(0.04e-15*s); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4B13GEMProbability::G4B13GEMProbability(const G4B13GEMProbability &right) +{ + G4Exception("G4B13GEMProbability::copy_constructor meant to not be accessable");} + + + + +const G4B13GEMProbability & G4B13GEMProbability:: +operator=(const G4B13GEMProbability &right) +{ + G4Exception("G4B13GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4B13GEMProbability::operator==(const G4B13GEMProbability &right) const +{ + return false; +} + +G4bool G4B13GEMProbability::operator!=(const G4B13GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc new file mode 100644 index 0000000000..6a858109f1 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: G4B8GEMProbability.cc,v 1.1 2002/06/06 17:59:13 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4B8GEMProbability.hh" + +G4B8GEMProbability::G4B8GEMProbability() : + G4GEMProbability(8,5,2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(778.08*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(2320.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + ExcitEnergies.push_back(10619.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4B8GEMProbability::G4B8GEMProbability(const G4B8GEMProbability &right) +{ + G4Exception("G4B8GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4B8GEMProbability & G4B8GEMProbability:: +operator=(const G4B8GEMProbability &right) +{ + G4Exception("G4B8GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4B8GEMProbability::operator==(const G4B8GEMProbability &right) const +{ + return false; +} + +G4bool G4B8GEMProbability::operator!=(const G4B8GEMProbability &right) const +{ + return true; +} + 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 cc60f0079e..23f871c49f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4B9FermiFragment.cc,v 1.6 2001/08/01 17:05:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..fc99bb6956 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.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: G4Be10GEMProbability.cc,v 1.1 2002/06/06 17:59:29 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Be10GEMProbability.hh" + +G4Be10GEMProbability::G4Be10GEMProbability() : + G4GEMProbability(10,4,0.0) // A,Z,Spin +{ + ExcitEnergies.push_back(3368.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(125.0e-15*s); + + ExcitEnergies.push_back(5958.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(55.0e-15*s); + + ExcitEnergies.push_back(5959.9*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(0.8e-12*s); + + ExcitEnergies.push_back(7371.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.7*keV)); + + ExcitEnergies.push_back(7542.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.3*keV)); + + ExcitEnergies.push_back(9270.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(9400.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(291.0*keV)); + + ExcitEnergies.push_back(11.76e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(121.0*keV)); + + ExcitEnergies.push_back(17790.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(18550.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Be10GEMProbability::G4Be10GEMProbability(const G4Be10GEMProbability &right) +{ + G4Exception("G4Be10GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Be10GEMProbability & G4Be10GEMProbability:: +operator=(const G4Be10GEMProbability &right) +{ + G4Exception("G4Be10GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Be10GEMProbability::operator==(const G4Be10GEMProbability &right) const +{ + return false; +} + +G4bool G4Be10GEMProbability::operator!=(const G4Be10GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc new file mode 100644 index 0000000000..25013f4d15 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc @@ -0,0 +1,123 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Be11GEMProbability.cc,v 1.1 2002/06/06 17:59:31 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Be11GEMProbability.hh" + +G4Be11GEMProbability::G4Be11GEMProbability() : + G4GEMProbability(11,4,1.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(320.04*keV); + ExcitSpins.push_back(1.0/2); + ExcitLifetimes.push_back(115.0e-15*s); + + ExcitEnergies.push_back(1778.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(2.69e3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(3.41e3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(125.0*keV)); + + ExcitEnergies.push_back(3887.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(3956.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.0*keV)); + + ExcitEnergies.push_back(5240.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45.0*keV)); + + ExcitEnergies.push_back(5.86e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(6.51e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(6705.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(7.03e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(8816.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(10.59e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(210.0*keV)); + + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Be11GEMProbability::G4Be11GEMProbability(const G4Be11GEMProbability &right) +{ + G4Exception("G4Be11GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Be11GEMProbability & G4Be11GEMProbability:: +operator=(const G4Be11GEMProbability &right) +{ + G4Exception("G4Be11GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Be11GEMProbability::operator==(const G4Be11GEMProbability &right) const +{ + return false; +} + +G4bool G4Be11GEMProbability::operator!=(const G4Be11GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc new file mode 100644 index 0000000000..5987da58eb --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.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: G4Be12GEMProbability.cc,v 1.1 2002/06/06 17:59:32 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Be12GEMProbability.hh" + +G4Be12GEMProbability::G4Be12GEMProbability() : + G4GEMProbability(9,4,0.0) // A,Z,Spin +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Be12GEMProbability::G4Be12GEMProbability(const G4Be12GEMProbability &right) +{ + G4Exception("G4Be12GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Be12GEMProbability & G4Be12GEMProbability:: +operator=(const G4Be12GEMProbability &right) +{ + G4Exception("G4Be12GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Be12GEMProbability::operator==(const G4Be12GEMProbability &right) const +{ + return false; +} + +G4bool G4Be12GEMProbability::operator!=(const G4Be12GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc new file mode 100644 index 0000000000..5a949ec1e8 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.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: G4Be7GEMProbability.cc,v 1.1 2002/06/06 17:59:33 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Be7GEMProbability.hh" + +G4Be7GEMProbability::G4Be7GEMProbability() : + G4GEMProbability(7,4,3.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(429.08*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(133.0e-15*s); + + ExcitEnergies.push_back(4570.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(175.0*keV)); + + ExcitEnergies.push_back(6.73e3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*MeV)); + + ExcitEnergies.push_back(7210.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*MeV)); + + ExcitEnergies.push_back(9900.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.8*MeV)); + + ExcitEnergies.push_back(11010.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(320.0*keV)); + + ExcitEnergies.push_back(17000.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.5*MeV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Be7GEMProbability::G4Be7GEMProbability(const G4Be7GEMProbability &right) +{ + G4Exception("G4Be7GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Be7GEMProbability & G4Be7GEMProbability:: +operator=(const G4Be7GEMProbability &right) +{ + G4Exception("G4Be7GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Be7GEMProbability::operator==(const G4Be7GEMProbability &right) const +{ + return false; +} + +G4bool G4Be7GEMProbability::operator!=(const G4Be7GEMProbability &right) const +{ + return true; +} + + + 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 5ca22d2111..f2acd5af18 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be8FermiFragment.cc,v 1.7 2001/08/01 17:05:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..733df39c0a --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4Be9GEMProbability.cc,v 1.1 2002/06/06 17:59:49 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Be9GEMProbability.hh" + +G4Be9GEMProbability::G4Be9GEMProbability() : + G4GEMProbability(9,4,3.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(1685.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(2429.4*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.77*keV)); + + ExcitEnergies.push_back(2.78e3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1080.0*keV)); + + ExcitEnergies.push_back(3049.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(282.0*keV)); + + ExcitEnergies.push_back(4704.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(743.0*keV)); + + ExcitEnergies.push_back(6760.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1540.0*keV)); + + ExcitEnergies.push_back(7940.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(11283.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(575.0*keV)); + + ExcitEnergies.push_back(11810.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(13790.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(590.0*keV)); + + ExcitEnergies.push_back(14392.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.381*keV)); + + ExcitEnergies.push_back(14.4e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800*keV)); + + ExcitEnergies.push_back(15970.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(16671.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(41.0*keV)); + + ExcitEnergies.push_back(16975.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.47*keV)); + + ExcitEnergies.push_back(17298.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(17493.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(47.0*keV)); + + ExcitEnergies.push_back(19200.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(310.0*keV)); + + ExcitEnergies.push_back(20740.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Be9GEMProbability::G4Be9GEMProbability(const G4Be9GEMProbability &right) +{ + G4Exception("G4Be9GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Be9GEMProbability & G4Be9GEMProbability:: +operator=(const G4Be9GEMProbability &right) +{ + G4Exception("G4Be9GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Be9GEMProbability::operator==(const G4Be9GEMProbability &right) const +{ + return false; +} + +G4bool G4Be9GEMProbability::operator!=(const G4Be9GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc new file mode 100644 index 0000000000..f0ab674f06 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.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: G4C10GEMProbability.cc,v 1.1 2002/06/06 17:59:50 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4C10GEMProbability.hh" + +G4C10GEMProbability::G4C10GEMProbability() : + G4GEMProbability(10,6,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(3353.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(107.0e-15*s); + + ExcitEnergies.push_back(6580.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4C10GEMProbability::G4C10GEMProbability(const G4C10GEMProbability &right) +{ + G4Exception("G4C10GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4C10GEMProbability & G4C10GEMProbability:: +operator=(const G4C10GEMProbability &right) +{ + G4Exception("G4C10GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4C10GEMProbability::operator==(const G4C10GEMProbability &right) const +{ + return false; +} + +G4bool G4C10GEMProbability::operator!=(const G4C10GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc new file mode 100644 index 0000000000..b11744936d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.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: G4C11GEMProbability.cc,v 1.1 2002/06/06 17:59:51 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4C11GEMProbability.hh" + +G4C11GEMProbability::G4C11GEMProbability() : + G4GEMProbability(11,6,3.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(2000.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(24.0e-15*s); + + ExcitEnergies.push_back(4318.8*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(8.3e-15*s); + + ExcitEnergies.push_back(4804.2*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(7.6e-15*s); + + ExcitEnergies.push_back(6339.2*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(77.0e-15*s); + + ExcitEnergies.push_back(6478.2*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(6.0e-15*s); + + ExcitEnergies.push_back(6904.8*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(48.0e-15*s); + + ExcitEnergies.push_back(7499.7*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(63.0e-15*s); + + ExcitEnergies.push_back(8104.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11*eV)); + + ExcitEnergies.push_back(8420*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.2*eV)); + + ExcitEnergies.push_back(8655*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(9*keV)); + + ExcitEnergies.push_back(8701*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15*keV)); + + ExcitEnergies.push_back(9.20E+3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500*keV)); + + ExcitEnergies.push_back(9.65E+3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(210*keV)); + + ExcitEnergies.push_back(9.78E+3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240*keV)); + + ExcitEnergies.push_back(9.97E+3*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120*keV)); + + ExcitEnergies.push_back(10083*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(230*keV)); + + ExcitEnergies.push_back(10679*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200*keV)); + + ExcitEnergies.push_back(12.51E+3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(490*keV)); + + ExcitEnergies.push_back(12.65E+3*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(360*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4C11GEMProbability::G4C11GEMProbability(const G4C11GEMProbability &right) +{ + G4Exception("G4C11GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4C11GEMProbability & G4C11GEMProbability:: +operator=(const G4C11GEMProbability &right) +{ + G4Exception("G4C11GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4C11GEMProbability::operator==(const G4C11GEMProbability &right) const +{ + return false; +} + +G4bool G4C11GEMProbability::operator!=(const G4C11GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc new file mode 100644 index 0000000000..fba1c97cb5 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc @@ -0,0 +1,235 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C12GEMProbability.cc,v 1.1 2002/06/06 17:59:52 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4C12GEMProbability.hh" + +G4C12GEMProbability::G4C12GEMProbability() : + G4GEMProbability(12,6,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(4438.91*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.8e-3*eV)); + + ExcitEnergies.push_back(7654.2*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.5*keV)); + + ExcitEnergies.push_back(9641*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(34*keV)); + + ExcitEnergies.push_back(1.03E+4*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0e3*keV)); + + ExcitEnergies.push_back(10844*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(315*keV)); + + ExcitEnergies.push_back(1.116E+4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(430*keV)); + + ExcitEnergies.push_back(1.1828E+4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(260*keV)); + + ExcitEnergies.push_back(12710*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(18.1*eV)); + + ExcitEnergies.push_back(13352*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(375*keV)); + + ExcitEnergies.push_back(14083*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(258*keV)); + + ExcitEnergies.push_back(15110*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(42*eV)); + + ExcitEnergies.push_back(16106.7*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.2*keV)); + + ExcitEnergies.push_back(16.57E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(17.23E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1150*keV)); + + ExcitEnergies.push_back(17.76E+3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80*keV)); + + ExcitEnergies.push_back(18.13E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600*keV)); + + ExcitEnergies.push_back(18.27E+3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(18.38E+3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(220*keV)); + + ExcitEnergies.push_back(18.39E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(43*keV)); + + ExcitEnergies.push_back(18.6E+3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(18.80E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(19.2E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1100*keV)); + + ExcitEnergies.push_back(19.39E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800*keV)); + + ExcitEnergies.push_back(19.55E+3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(490*keV)); + + ExcitEnergies.push_back(19.69E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(230*keV)); + + ExcitEnergies.push_back(20.0E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(20.27E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140*keV)); + + ExcitEnergies.push_back(20.5E+3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180*keV)); + + ExcitEnergies.push_back(20.62E+3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200*keV)); + + ExcitEnergies.push_back(21.60E+3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1200*keV)); + + ExcitEnergies.push_back(22.0E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800*keV)); + + ExcitEnergies.push_back(22.40E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(275*keV)); + + ExcitEnergies.push_back(22.65E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3200*keV)); + + ExcitEnergies.push_back(23.04E+3 *keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60*keV)); + + ExcitEnergies.push_back(23.52E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(230*keV)); + + ExcitEnergies.push_back(23.92E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400*keV)); + + ExcitEnergies.push_back(25.30E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(510*keV)); + + ExcitEnergies.push_back(25.4E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2000*keV)); + + ExcitEnergies.push_back(27.0E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1400*keV)); + + ExcitEnergies.push_back(27595.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(28.2E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1600*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4C12GEMProbability::G4C12GEMProbability(const G4C12GEMProbability &right) +{ + G4Exception("G4C12GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4C12GEMProbability & G4C12GEMProbability:: +operator=(const G4C12GEMProbability &right) +{ + G4Exception("G4C12GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4C12GEMProbability::operator==(const G4C12GEMProbability &right) const +{ + return false; +} + +G4bool G4C12GEMProbability::operator!=(const G4C12GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc new file mode 100644 index 0000000000..514846bff4 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc @@ -0,0 +1,183 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4C13GEMProbability.cc,v 1.1 2002/06/06 17:59:54 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4C13GEMProbability.hh" + +G4C13GEMProbability::G4C13GEMProbability() : + G4GEMProbability(13,6,1.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(3088.4*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(1.04e-15*s); + + ExcitEnergies.push_back(3684.37*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(1.04e-15*s); + + ExcitEnergies.push_back( 3853.62*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(7.5e-12*s); + + ExcitEnergies.push_back(6864*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6*keV)); + + ExcitEnergies.push_back(7492*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5*keV)); + + ExcitEnergies.push_back(7547*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(7677*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70*keV)); + + ExcitEnergies.push_back(8.2E3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000*keV)); + + ExcitEnergies.push_back(8860*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150*keV)); + + ExcitEnergies.push_back(9498*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5*keV)); + + ExcitEnergies.push_back(9897*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(26*keV)); + + ExcitEnergies.push_back(10753*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(55*keV)); + + ExcitEnergies.push_back(10818*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24*keV)); + + ExcitEnergies.push_back(10996*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(37*keV)); + + ExcitEnergies.push_back(11080*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4*keV)); + + ExcitEnergies.push_back(11851*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(68*keV)); + + ExcitEnergies.push_back(11970*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200*keV)); + + ExcitEnergies.push_back(12106*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(81*keV)); + + ExcitEnergies.push_back(12400*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150*keV)); + + ExcitEnergies.push_back(13280*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(340*keV)); + + ExcitEnergies.push_back(13410*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35*keV)); + + ExcitEnergies.push_back(13560*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500*keV)); + + ExcitEnergies.push_back(13760*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(14120*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200*keV)); + + ExcitEnergies.push_back(14.39E3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(260*keV)); + + ExcitEnergies.push_back(14940*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(380*keV)); + + ExcitEnergies.push_back(15106*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5*keV)); + + ExcitEnergies.push_back(19500*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(450*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4C13GEMProbability::G4C13GEMProbability(const G4C13GEMProbability &right) +{ + G4Exception("G4C13GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4C13GEMProbability & G4C13GEMProbability:: +operator=(const G4C13GEMProbability &right) +{ + G4Exception("G4C13GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4C13GEMProbability::operator==(const G4C13GEMProbability &right) const +{ + return false; +} + +G4bool G4C13GEMProbability::operator!=(const G4C13GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc new file mode 100644 index 0000000000..20283bafb1 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4C14GEMProbability.cc,v 1.1 2002/06/06 17:59:55 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4C14GEMProbability.hh" + +G4C14GEMProbability::G4C14GEMProbability() : + G4GEMProbability(14,6,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(6094.2*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(7e-15*s); + + ExcitEnergies.push_back(6589.8*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(0.4e-12*s); + + ExcitEnergies.push_back(6728.2*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(67e-12*s); + + ExcitEnergies.push_back(6902.3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(25e-15*s); + + ExcitEnergies.push_back(7012.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(9e-15*s); + + ExcitEnergies.push_back(8318.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.4*keV)); + + ExcitEnergies.push_back(9799*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45*keV)); + + ExcitEnergies.push_back(10437*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(16*keV)); + + ExcitEnergies.push_back(10509*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(26*keV)); + + ExcitEnergies.push_back(11306*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(46*keV)); + + ExcitEnergies.push_back(11397*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22*keV)); + + ExcitEnergies.push_back(11667*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(12860*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(12964*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(14667*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(57*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4C14GEMProbability::G4C14GEMProbability(const G4C14GEMProbability &right) +{ + G4Exception("G4C14GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4C14GEMProbability & G4C14GEMProbability:: +operator=(const G4C14GEMProbability &right) +{ + G4Exception("G4C14GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4C14GEMProbability::operator==(const G4C14GEMProbability &right) const +{ + return false; +} + +G4bool G4C14GEMProbability::operator!=(const G4C14GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc new file mode 100644 index 0000000000..3d69e5b109 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.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: G4C15GEMProbability.cc,v 1.1 2002/06/06 17:59:56 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4C15GEMProbability.hh" + +G4C15GEMProbability::G4C15GEMProbability() : + G4GEMProbability(15,6,1.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(740.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(2.61e-9*s); + + ExcitEnergies.push_back(3105*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back(4221*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14*keV)); + + ExcitEnergies.push_back(6370*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(6429*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50*keV)); + + ExcitEnergies.push_back(6461*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14*keV)); + + ExcitEnergies.push_back(6639*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(6845*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14*keV)); + + ExcitEnergies.push_back(6884*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(7098*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15*keV)); + + ExcitEnergies.push_back(7352*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(8470*keV); + ExcitSpins.push_back(13.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back(8559*keV); + ExcitSpins.push_back(13.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back(9789*keV); + ExcitSpins.push_back(15.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(10248*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(11123*keV); + ExcitSpins.push_back(19.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(11825*keV); + ExcitSpins.push_back(13.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4C15GEMProbability::G4C15GEMProbability(const G4C15GEMProbability &right) +{ + G4Exception("G4C15GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4C15GEMProbability & G4C15GEMProbability:: +operator=(const G4C15GEMProbability &right) +{ + G4Exception("G4C15GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4C15GEMProbability::operator==(const G4C15GEMProbability &right) const +{ + return false; +} + +G4bool G4C15GEMProbability::operator!=(const G4C15GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc new file mode 100644 index 0000000000..c665128b62 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.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: G4C16GEMProbability.cc,v 1.1 2002/06/06 17:59:57 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4C16GEMProbability.hh" + +G4C16GEMProbability::G4C16GEMProbability() : + G4GEMProbability(16,6,0.0) // A,Z,Spin +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4C16GEMProbability::G4C16GEMProbability(const G4C16GEMProbability &right) +{ + G4Exception("G4C16GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4C16GEMProbability & G4C16GEMProbability:: +operator=(const G4C16GEMProbability &right) +{ + G4Exception("G4C16GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4C16GEMProbability::operator==(const G4C16GEMProbability &right) const +{ + return false; +} + +G4bool G4C16GEMProbability::operator!=(const G4C16GEMProbability &right) const +{ + return true; +} + + + 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 eb5d84121a..e58776fb31 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertPairingCorrections.cc,v 1.5 2001/10/05 16:13:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronGilbertPairingCorrections.cc,v 1.6 2001/11/08 10:10:23 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,9 +34,8 @@ // A. Gilbert and A.G.W. Cameron, Can. J. Phys., 43, 1446(1965) // P(Z) -G4double G4CameronGilbertPairingCorrections::PairingZTable -[G4CameronGilbertPairingCorrections::ZTableSize] = { - 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, +const G4double G4CameronGilbertPairingCorrections::PairingZTable +[G4CameronGilbertPairingCorrections::ZTableSize] = { // 88 values from Z = 11 to Z = 98 0.00, 2.46, 0.00, 2.09, 0.00, 1.62, 0.00, 1.62, 0.00, 1.83, 0.00, 1.73, 0.00, 1.35, 0.00, 1.54, 0.00, 1.20, 0.00, 1.06, 0.00, 1.36, 0.00, 1.43, 0.00, 1.17, 0.00, 1.24, 0.00, 1.20, @@ -48,9 +47,8 @@ G4double G4CameronGilbertPairingCorrections::PairingZTable 0.00, 0.69, 0.00, 0.61, 0.00, 0.72, 0.00, 0.77 }; // P(N) -G4double G4CameronGilbertPairingCorrections::PairingNTable -[G4CameronGilbertPairingCorrections::NTableSize] = { - 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, +const G4double G4CameronGilbertPairingCorrections::PairingNTable +[G4CameronGilbertPairingCorrections::NTableSize] = { // 140 values from Z = 11 to Z = 150 0.00, 2.67, 0.00, 1.80, 0.00, 1.67, 0.00, 1.86, 0.00, 2.04, 0.00, 1.64, 0.00, 1.44, 0.00, 1.54, 0.00, 1.30, 0.00, 1.27, 0.00, 1.29, 0.00, 1.41, 0.00, 1.50, 0.00, 1.50, 0.00, 1.43, @@ -67,10 +65,14 @@ G4double G4CameronGilbertPairingCorrections::PairingNTable 0.00, 0.57, 0.00, 0.49, 0.00, 0.43, 0.00, 0.50, 0.00, 0.39 }; -G4CameronGilbertPairingCorrections G4CameronGilbertPairingCorrections::theInstance(10.0); +G4CameronGilbertPairingCorrections* G4CameronGilbertPairingCorrections::theInstance = 0; -G4CameronGilbertPairingCorrections::G4CameronGilbertPairingCorrections(G4double dummy) +G4CameronGilbertPairingCorrections::G4CameronGilbertPairingCorrections() +{;} + + +G4CameronGilbertPairingCorrections* G4CameronGilbertPairingCorrections::GetInstance() { - G4double even_more_dummy = dummy; - even_more_dummy/=2.; + if (!theInstance) theInstance = new G4CameronGilbertPairingCorrections(); + return theInstance; } 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 6027deb8b2..f1d5baea70 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertShellCorrections.cc,v 1.5 2001/10/05 16:13:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronGilbertShellCorrections.cc,v 1.6 2001/11/08 10:10:25 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -35,8 +35,7 @@ // S(Z) const G4double G4CameronGilbertShellCorrections::ShellZTable -[G4CameronGilbertShellCorrections::ZTableSize] = { - 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, +[G4CameronGilbertShellCorrections::ZTableSize] = { // 88 values from Z = 11 to Z = 98 -2.91, -4.17, -5.72, -7.80, -8.97, -9.70,-10.10,-10.70,-11.38,-12.07, -12.55,-13.24,-13.93,-14.71,-15.53,-16.37,-17.36,-18.52,-18.44,-18.19, -17.68,-17.09,-16.65,-16.66,-16.59,-16.35,-16.18,-16.41,-16.60,-16.54, @@ -49,8 +48,7 @@ const G4double G4CameronGilbertShellCorrections::ShellZTable }; // S(N) const G4double G4CameronGilbertShellCorrections::ShellNTable -[G4CameronGilbertShellCorrections::NTableSize] = { // 155 - 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, +[G4CameronGilbertShellCorrections::NTableSize] = { // 140 values N = 11 to N = 150 6.80, 7.53, 7.55, 7.21, 7.44, 8.07, 8.94, 9.81, 10.60, 11.39, 12.54, 13.68, 14.34, 14.19, 13.83, 13.50, 13.00, 12.13, 12.60, 13.26, 14.13, 14.92, 15.60, 16.38, 17.08, 17.55, 17.98, 18.33, 18.56, 18.71, @@ -67,10 +65,13 @@ const G4double G4CameronGilbertShellCorrections::ShellNTable 5.05, 5.04, 5.03, 4.99, 4.98, 5.11, 5.27, 5.39, 5.37, 5.30 }; -G4CameronGilbertShellCorrections G4CameronGilbertShellCorrections::theInstance(10.0); +G4CameronGilbertShellCorrections* G4CameronGilbertShellCorrections::theInstance = 0; -G4CameronGilbertShellCorrections::G4CameronGilbertShellCorrections(G4double dummy) -{ - G4double even_more_dumy = dummy; - even_more_dumy/=2.; +G4CameronGilbertShellCorrections::G4CameronGilbertShellCorrections() +{;} + +G4CameronGilbertShellCorrections* G4CameronGilbertShellCorrections::GetInstance() +{ + if (!theInstance) theInstance = new G4CameronGilbertShellCorrections(); + return theInstance; } 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 05c3c8268b..06f1b2fcea 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronShellPlusPairingCorrections.cc,v 1.5 2001/10/05 16:13:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronShellPlusPairingCorrections.cc,v 1.6 2001/11/08 10:10:26 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -31,8 +31,7 @@ // 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 G4CameronShellPlusPairingCorrections::SPZTable +const G4double G4CameronShellPlusPairingCorrections::SPZTable [G4CameronShellPlusPairingCorrections::TableSize] = { 20.80, 15.80, 21.00, 16.80, 19.80, 16.50, 18.80, 16.50, 18.50, 17.20, // 1 - 10 18.26, 15.05, 16.01, 12.04, 13.27, 11.09, 12.17, 10.26, 11.04, 8.41, // 11 - 20 @@ -58,8 +57,7 @@ G4double G4CameronShellPlusPairingCorrections::SPZTable }; // 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 G4CameronShellPlusPairingCorrections::SPNTable +const G4double G4CameronShellPlusPairingCorrections::SPNTable [G4CameronShellPlusPairingCorrections::TableSize] = { -8.40,-12.90, -8.00, 11.90, -9.20,-12.50,-10.80,-13.60,-11.20,-12.20, // 1 - 10 -12.81,-15.40,-13.07,-15.80,-13.81,-14.98,-12.63,-13.76,-11.37,-12.38, // 11 - 20 @@ -85,10 +83,12 @@ G4double G4CameronShellPlusPairingCorrections::SPNTable -G4CameronShellPlusPairingCorrections G4CameronShellPlusPairingCorrections::theInstance(10.0); +G4CameronShellPlusPairingCorrections* G4CameronShellPlusPairingCorrections::theInstance = 0; -G4CameronShellPlusPairingCorrections::G4CameronShellPlusPairingCorrections(G4double dummy) -{ - G4double even_more_dummy = dummy; - even_more_dummy/=2.; +G4CameronShellPlusPairingCorrections::G4CameronShellPlusPairingCorrections() +{;} + +G4CameronShellPlusPairingCorrections* G4CameronShellPlusPairingCorrections::GetInstance() { + if (!theInstance) theInstance = new G4CameronShellPlusPairingCorrections(); + return theInstance; } 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 3285a083d3..7183d7cf48 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfPairingCorrections.cc,v 1.5 2001/10/05 16:13:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronTruranHilfPairingCorrections.cc,v 1.6 2001/11/08 10:10:27 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -37,8 +37,7 @@ // Leysin, Switzerland, August 31 - September 4, 1970, Vol.1, p. 275 // S(Z) const G4double G4CameronTruranHilfPairingCorrections::PairingZTable -[G4CameronTruranHilfPairingCorrections::ZTableSize] = { // 102 - 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , +[G4CameronTruranHilfPairingCorrections::ZTableSize] = { // 93 from Z = 10 to Z = 42 -2.200, 0. ,-2.120, 0. ,-1.981, 0. ,-1.491, 0. ,-1.450, 0., -1.701, 0. ,-1.344, 0. ,-1.349, 0. ,-1.397, 0. ,-1.311, 0., -1.161, 0. ,-1.201, 0. ,-1.449, 0. ,-1.331, 0. ,-1.272, 0., @@ -52,8 +51,7 @@ const G4double G4CameronTruranHilfPairingCorrections::PairingZTable }; // S(N) const G4double G4CameronTruranHilfPairingCorrections::PairingNTable -[G4CameronTruranHilfPairingCorrections::NTableSize] = { - 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , +[G4CameronTruranHilfPairingCorrections::NTableSize] = { // 145 from N = 10 to N = 154 -2.400, 0. ,-2.358, 0. ,-2.057, 0. ,-1.462, 0. ,-1.592, 0., -1.528, 0. ,-1.470, 0. ,-1.310, 0. ,-1.316, 0. ,-1.265, 0., -1.279, 0. ,-1.256, 0. ,-1.285, 0. ,-1.440, 0. ,-1.517, 0., @@ -68,14 +66,16 @@ const G4double G4CameronTruranHilfPairingCorrections::PairingNTable -0.751, 0. ,-0.835, 0. ,-0.658, 0. ,-0.607, 0. ,-0.657, 0., -0.695, 0. ,-0.457, 0. ,-0.345, 0. ,-0.452, 0. ,-0.648, 0., -0.681, 0. ,-0.416, 0. ,-0.545, 0. ,-0.482, 0. ,-0.481, 0., --0.611, 0. ,-0.654, 0. ,-0.557, 0. +-0.611, 0. ,-0.654, 0. ,-0.557 }; -G4CameronTruranHilfPairingCorrections G4CameronTruranHilfPairingCorrections::theInstance(10.0); +G4CameronTruranHilfPairingCorrections* G4CameronTruranHilfPairingCorrections::theInstance = 0; -G4CameronTruranHilfPairingCorrections::G4CameronTruranHilfPairingCorrections(G4double dummy) -{ - G4double even_more_dummy = dummy; - even_more_dummy/=2.; +G4CameronTruranHilfPairingCorrections::G4CameronTruranHilfPairingCorrections() +{;} + +G4CameronTruranHilfPairingCorrections* G4CameronTruranHilfPairingCorrections::GetInstance() { + if (!theInstance) theInstance = new G4CameronTruranHilfPairingCorrections(); + return theInstance; } 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 21d5c18e93..155d1cc8d1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfShellCorrections.cc,v 1.5 2001/10/05 16:13:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CameronTruranHilfShellCorrections.cc,v 1.6 2001/11/08 10:10:28 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -35,9 +35,8 @@ // Proc. Int. Conf. on the Properties of Nuclei Far From the Beta-Stability, // Leysin, Switzerland, August 31 - September 4, 1970, Vol.1, p. 275 // S(Z) -G4double G4CameronTruranHilfShellCorrections::ShellZTable -[G4CameronTruranHilfShellCorrections::ZTableSize] = { // 102 - 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , +const G4double G4CameronTruranHilfShellCorrections::ShellZTable +[G4CameronTruranHilfShellCorrections::ZTableSize] = { // 93 from Z = 10 to Z = 102 2.349, 1.936, 1.596, 1.061, 0.341,-0.040, 0.565, 1.065, 1.536, 1.972, 1.855, 2.043, 1.931, 1.652, 1.347, 0.973, 0.579, 0.159, -0.487,-0.192, 0.443, 0.932, 1.387, 1.810, 1.969, 2.067, 2.064, @@ -51,9 +50,8 @@ G4double G4CameronTruranHilfShellCorrections::ShellZTable -2.846,-3.499,-3.042 }; // S(N) -G4double G4CameronTruranHilfShellCorrections::ShellNTable -[G4CameronTruranHilfShellCorrections::NTableSize] = { // 155 - 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , +const G4double G4CameronTruranHilfShellCorrections::ShellNTable +[G4CameronTruranHilfShellCorrections::NTableSize] = { // 146 from N = 10 to N = 155 2.439, 1.829, 1.419, 0.746,-0.082,-0.832,-0.960,-1.006,-1.045, -1.114,-0.900,-0.081, 0.334, 0.064,-0.639,-1.363,-2.138,-2.987, -4.042,-4.001,-3.582,-3.120,-2.677,-2.259,-1.778,-1.315,-0.944, @@ -73,11 +71,13 @@ G4double G4CameronTruranHilfShellCorrections::ShellNTable 2.621, 3.096 }; -G4CameronTruranHilfShellCorrections G4CameronTruranHilfShellCorrections::theInstance(10.0); +G4CameronTruranHilfShellCorrections* G4CameronTruranHilfShellCorrections::theInstance = 0; -G4CameronTruranHilfShellCorrections::G4CameronTruranHilfShellCorrections(G4double dummy) -{ - G4double even_more_dummy = dummy; - even_more_dummy/=2.; +G4CameronTruranHilfShellCorrections::G4CameronTruranHilfShellCorrections() +{;} + +G4CameronTruranHilfShellCorrections* G4CameronTruranHilfShellCorrections::GetInstance() { + if (!theInstance) theInstance = new G4CameronTruranHilfShellCorrections(); + return theInstance; } 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 89b852d130..82111b9296 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompetitiveFission.cc,v 1.9 2001/10/05 16:13:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4CompetitiveFission.cc,v 1.11 2002/01/15 12:27:30 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -84,7 +84,7 @@ void G4CompetitiveFission::Initialize(const G4Fragment & fragment) G4int anA = G4int(fragment.GetA()); G4int aZ = G4int(fragment.GetZ()); G4double ExEnergy = fragment.GetExcitationEnergy() - - G4PairingCorrection::GetFissionPairingCorrection(anA,aZ); + G4PairingCorrection::GetInstance()->GetFissionPairingCorrection(anA,aZ); // Saddle point excitation energy ---> A = 65 @@ -115,7 +115,7 @@ G4FragmentVector * G4CompetitiveFission::BreakUp(const G4Fragment & theNucleus) G4int Z = G4int(theNucleus.GetZ()); // Excitation energy (in MeV) G4double U = theNucleus.GetExcitationEnergy() - - G4PairingCorrection::GetFissionPairingCorrection(A,Z); + G4PairingCorrection::GetInstance()->GetFissionPairingCorrection(A,Z); // Check that U > 0 if (U <= 0.0) { G4FragmentVector * theResult = new G4FragmentVector; @@ -205,20 +205,24 @@ G4FragmentVector * G4CompetitiveFission::BreakUp(const G4Fragment & theNucleus) momentum2 += (theNucleusMomentum.boostVector() * (M2+U2)); - // Create 4-momentum for first fragment - // Warning!! Energy conservation is broken + // Create 4-momentum for first fragment + // Warning!! Energy conservation is broken G4LorentzVector FourMomentum1( momentum1 , sqrt(momentum1.mag2() + (M1+U1)*(M1+U1))); // Create 4-momentum for second fragment // Warning!! Energy conservation is broken G4LorentzVector FourMomentum2( momentum2 , sqrt(momentum2.mag2() + (M2+U2)*(M2+U2))); - // Create Fragments + // Create Fragments G4Fragment * Fragment1 = new G4Fragment( A1, Z1, FourMomentum1); if (!Fragment1) G4Exception("G4CompetitiveFission::BreakItUp: Can't create Fragment1! "); G4Fragment * Fragment2 = new G4Fragment( A2, Z2, FourMomentum2); if (!Fragment2) G4Exception("G4CompetitiveFission::BreakItUp: Can't create Fragment2! "); +#ifdef pctest + Fragment1->SetCreatorModel(G4String("G4CompetitiveFission")); + Fragment2->SetCreatorModel(G4String("G4CompetitiveFission")); +#endif // Create Fragment Vector G4FragmentVector * theResult = new G4FragmentVector; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc new file mode 100644 index 0000000000..1d9989d6ce --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.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. * +// ******************************************************************** +// +// +// $Id: G4CookPairingCorrections.cc,v 1.1 2001/11/08 10:14:04 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +#include "G4CookPairingCorrections.hh" + + +// Data comes from: +// J.L. Cook, H. Ferguson and A.R.de L. Musgrove, Aust. J. Phys., 20, 477(1967) + + +// P(Z) 68 values from Z = 28 to Z = 95 +const G4double G4CookPairingCorrections::PairingZTable +[G4CookPairingCorrections::ZTableSize] = { + 1.28, 0.26, 0.88, 0.19, 1.35, -0.05, 1.52, -0.09, 1.17, 0.04, + 1.24, 0.29, 1.09, 0.26, 1.17, 0.23, 1.15, -0.08, 1.35, 0.34, + 1.05, 0.28, 1.27, 0.00, 1.05, 0.00, 1.00, 0.09, 1.20, 0.20, + 1.40, 0.93, 1.00, -0.20, 1.19, 0.09, 0.97, 0.00, 0.92, 0.11, + 0.68, 0.05, 0.68, -0.22, 0.79, 0.09, 0.69, 0.01, 0.72, 0.00, + 0.40, 0.16, 0.73, 0.00, 0.46, 0.17, 0.89, 0.00, 0.79, 0.00, + 0.89, 0.00, 0.81, -0.06, 0.69, -0.20, 0.71, -0.12 +}; + + +// P(N) 118 values from N = 33 to N = 150 +const G4double G4CookPairingCorrections::PairingNTable +[G4CookPairingCorrections::NTableSize] = { + 0.08, 1.41, -0.08, 1.50, -0.05, 2.24, -0.47, 1.43, -0.15, 1.44, + 0.06, 1.56, 0.25, 1.57, -0.16, 1.46, 0.00, 0.93, 0.01, 0.62, + -0.50, 1.42, 0.13, 1.52, -0.65, 0.80, -0.08, 1.29, -0.47, 1.25, + -0.44, 0.97, 0.08, 1.65, -0.11, 1.26, -0.46, 1.06, 0.22, 1.55, + -0.07, 1.37, 0.10, 1.20, -0.27, 0.92, -0.35, 1.19, 0.00, 1.05, + -0.25, 1.61, -0.21, 0.90, -0.21, 0.74, -0.38, 0.72, -0.34, 0.92, + -0.26, 0.94, 0.01, 0.65, -0.36, 0.83, 0.11, 0.67, 0.05, 1.00, + 0.51, 1.04, 0.33, 0.68, -0.27, 0.81, 0.09, 0.75, 0.17, 0.86, + 0.14, 1.10, -0.22, 0.84, -0.47, 0.48, 0.02, 0.88, 0.24, 0.52, + 0.27, 0.41, -0.05, 0.38, 0.15, 0.67, 0.00, 0.61, 0.00, 0.78, + 0.00, 0.67, 0.00, 0.67, 0.00, 0.79, 0.00, 0.60, 0.04, 0.64, + -0.06, 0.45, 0.05, 0.26, -0.22, 0.39, 0.00, 0.39 +}; + +G4CookPairingCorrections* G4CookPairingCorrections::theInstance = 0; + +G4CookPairingCorrections::G4CookPairingCorrections() +{;} + +G4CookPairingCorrections* G4CookPairingCorrections::GetInstance() { + if (!theInstance) theInstance = new G4CookPairingCorrections(); + return theInstance; +} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc new file mode 100644 index 0000000000..110127e17d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.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: G4CookShellCorrections.cc,v 1.1 2001/11/08 10:14:05 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +#include "G4CookShellCorrections.hh" + + +// Data comes from: +// J.L. Cook, H. Ferguson and A.R.de L. Musgrove, Aust. J. Phys., 20, 477(1967) + + +// S(Z) 68 values from Z = 28 to Z = 95 +const G4double G4CookShellCorrections::ShellZTable +[G4CookShellCorrections::ZTableSize] = { + -18.60, -18.70, -18.01, -17.87, -17.08, -16.60, -16.75, -16.50, -16.35, -16.22, + -16.41, -16.89, -16.43, -16.68, -16.73, -17.45, -17.29, -17.44, -17.82, -18.62, + -18.27, -19.39, -19.91, -19.14, -18.26, -17.40, -16.42, -15.77, -14.37, -13.91, + -13.10, -13.11, -11.43, -10.89, -10.75, -10.62, -10.41, -10.21, -9.85, -9.47, + -9.03, -8.61, -8.13, -7.46, -7.48, -7.20, -7.13, -7.06, -6.78, -6.64, + -6.64, -7.68, -7.89, -8.41, -8.49, -7.88, -6.30, -5.47, -4.78, -4.37, + -4.17, -4.13, -4.32, -4.55, -5.04, -5.28, -6.06, -6.28, +}; + + +// S(N) 118 values from N = 33 to N = 150 +const G4double G4CookShellCorrections::ShellNTable +[G4CookShellCorrections::NTableSize] = { + 15.52, 16.38, 17.16, 17.55, 18.03, 17.59, 19.03, 18.71, 18.80, 18.99, + 18.46, 18.25, 17.76, 17.38, 16.72, 15.62, 14.38, 12.88, 13.23, 13.81, + 14.90, 14.86, 15.76, 16.20, 17.62, 17.73, 18.16, 18.67, 19.69, 19.51, + 20.17, 19.48, 19.98, 19.83, 20.20, 19.72, 19.87, 19.24, 18.44, 17.61, + 17.10, 16.16, 15.90, 15.33, 14.76, 13.54, 12.63, 10.65, 10.10, 8.98, + 10.25, 9.79, 11.39, 11.72, 12.43, 12.96, 13.34, 13.37, 12.96, 12.11, + 11.92, 11.00, 10.80, 10.42, 10.39, 9.69, 9.27, 8.93, 8.57, 8.02, + 7.59, 7.33, 7.23, 7.05, 7.42, 6.75, 6.60, 6.38, 6.36, 6.49, + 6.25, 5.85, 5.48, 4.53, 4.30, 3.39, 2.35, 1.66, 0.81, 0.46, + -0.96, -1.69, -2.53, -3.16, -1.87, -0.41, 0.71, 1.66, 2.62, 3.22, + 3.76, 4.10, 4.46, 4.83, 5.09, 5.18, 5.17, 5.10, 5.01, 4.97, + 5.09, 5.03, 4.93, 5.28, 5.49, 5.50, 5.37, 5.30 +}; + +G4CookShellCorrections* G4CookShellCorrections::theInstance = 0; + +G4CookShellCorrections::G4CookShellCorrections() +{;} + + +G4CookShellCorrections* G4CookShellCorrections::GetInstance() { + if (!theInstance) theInstance = new G4CookShellCorrections(); + return theInstance; +} 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 bc350c54be..2e35545a21 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4CoulombBarrier.cc,v 1.5 2001/10/08 17:15:48 larazb Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 98c622a864..7a0dba9be5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronCoulombBarrier.cc,v 1.4 2001/08/01 17:05:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 51b5dc5926..884bf1bfda 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationChannel.cc,v 1.4 2001/08/01 17:05:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a3d04bbe61..5c2b8e66d3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationProbability.cc,v 1.4 2001/08/01 17:05:22 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..c7f9022948 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.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: G4DeuteronGEMChannel.cc,v 1.1 2002/06/06 18:00:14 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov. 1999) +// + +#include "G4DeuteronGEMChannel.hh" + + +const G4DeuteronGEMChannel & G4DeuteronGEMChannel::operator=(const G4DeuteronGEMChannel & right) +{ + G4Exception("G4DeuteronGEMChannel::operator= meant to not be accessable"); + return *this; +} + +G4DeuteronGEMChannel::G4DeuteronGEMChannel(const G4DeuteronGEMChannel & right) +{ + G4Exception("G4DeuteronGEMChannel::CopyConstructor meant to not be accessable"); +} + +G4bool G4DeuteronGEMChannel::operator==(const G4DeuteronGEMChannel & right) const +{ + return (this == (G4DeuteronGEMChannel *) &right); + // return false; +} + +G4bool G4DeuteronGEMChannel::operator!=(const G4DeuteronGEMChannel & right) const +{ + return (this != (G4DeuteronGEMChannel *) &right); + // return true; +} + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc new file mode 100644 index 0000000000..bc0fab65db --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4DeuteronGEMProbability.cc,v 1.1 2002/06/06 18:00:15 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4DeuteronGEMProbability.hh" + +G4DeuteronGEMProbability::G4DeuteronGEMProbability() : + G4GEMProbability(2,1,1.0) // A,Z,Gamma +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4DeuteronGEMProbability::G4DeuteronGEMProbability(const G4DeuteronGEMProbability &right) +{ + G4Exception("G4DeuteronGEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4DeuteronGEMProbability & G4DeuteronGEMProbability:: +operator=(const G4DeuteronGEMProbability &right) +{ + G4Exception("G4DeuteronGEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4DeuteronGEMProbability::operator==(const G4DeuteronGEMProbability &right) const +{ + return false; +} + +G4bool G4DeuteronGEMProbability::operator!=(const G4DeuteronGEMProbability &right) const +{ + return true; +} + + +G4double G4DeuteronGEMProbability::CCoeficient(const G4double aZ) const +{ + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // G4double Zlist[5] = { 10.0, 20.0, 30.0, 50.0, 70.0}; + // G4double Cp[5] = { 0.50, 0.28, 0.20, 0.15, 0.10}; + // C for deuteron is equal to C for protons divided by 2 + G4double C = 0.0; + + if (aZ >= 70) { + C = 0.10; + } else { + C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; + } + + return C/2.0; + +} 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 e431e98903..341e21f7d5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc @@ -21,37 +21,22 @@ // ******************************************************************** // // -// $Id: G4Evaporation.cc,v 1.7 2001/08/01 17:05:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Evaporation.cc,v 1.9 2002/06/18 16:37:57 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) #include "G4Evaporation.hh" +#include "G4EvaporationFactory.hh" +#include "G4EvaporationGEMFactory.hh" +#include -#include "G4NeutronEvaporationChannel.hh" -#include "G4ProtonEvaporationChannel.hh" -#include "G4DeuteronEvaporationChannel.hh" -#include "G4TritonEvaporationChannel.hh" -#include "G4He3EvaporationChannel.hh" -#include "G4AlphaEvaporationChannel.hh" -#include "G4CompetitiveFission.hh" -#include "G4PhotonEvaporation.hh" -G4Evaporation::G4Evaporation() : myOwnChannelsVector(true) +G4Evaporation::G4Evaporation() { - theChannels = new G4std::vector; - theChannels->reserve(8); - - theChannels->push_back( new G4NeutronEvaporationChannel() ); // n - theChannels->push_back( new G4ProtonEvaporationChannel() ); // p - theChannels->push_back( new G4DeuteronEvaporationChannel() ); // Deuteron - theChannels->push_back( new G4TritonEvaporationChannel() ); // Triton - theChannels->push_back( new G4He3EvaporationChannel() ); // He3 - theChannels->push_back( new G4AlphaEvaporationChannel() ); // Alpha - - theChannels->push_back( new G4CompetitiveFission() ); // Fission Channel - theChannels->push_back( new G4PhotonEvaporation() ); // Photon Channel + theChannelFactory = new G4EvaporationFactory(); + theChannels = theChannelFactory->GetChannel(); } G4Evaporation::G4Evaporation(const G4Evaporation &right) @@ -62,14 +47,8 @@ G4Evaporation::G4Evaporation(const G4Evaporation &right) G4Evaporation::~G4Evaporation() { - if (myOwnChannelsVector) { - // theChannels->clearAndDestroy(); - while (!theChannels->empty()) { - delete (theChannels->back()); - theChannels->pop_back(); - } - delete theChannels; - } + if (theChannels != 0) theChannels = 0; + if (theChannelFactory != 0) delete theChannelFactory; } const G4Evaporation & G4Evaporation::operator=(const G4Evaporation &right) @@ -90,6 +69,21 @@ G4bool G4Evaporation::operator!=(const G4Evaporation &right) const } +void G4Evaporation::SetDefaultChannel() +{ + if (theChannelFactory != 0) delete theChannelFactory; + theChannelFactory = new G4EvaporationFactory(); + theChannels = theChannelFactory->GetChannel(); +} + +void G4Evaporation::SetGEMChannel() +{ + if (theChannelFactory != 0) delete theChannelFactory; + theChannelFactory = new G4EvaporationGEMFactory(); + theChannels = theChannelFactory->GetChannel(); +} + + G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) { G4FragmentVector * theResult = new G4FragmentVector; @@ -114,11 +108,14 @@ G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) for (i=theChannels->begin(); i != theChannels->end(); i++) { (*i)->Initialize(theResidualNucleus); } +// Can't use this form beacuse Initialize is a non const member function +// for_each(theChannels->begin(),theChannels->end(), +// bind2nd(mem_fun(&G4VEvaporationChannel::Initialize),theResidualNucleus)); // Work out total decay probability by summing over channels - G4double TotalProbability = 0; - for (i=theChannels->begin(); i != theChannels->end(); i++) { - TotalProbability += (*i)->GetEmissionProbability(); - } + G4double TotalProbability = G4std::accumulate(theChannels->begin(), + theChannels->end(), + 0.0,SumProbabilities()); + if (TotalProbability <= 0.0) { // Will be no evaporation more // write information about residual nucleus @@ -156,14 +153,11 @@ G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) G4FragmentVector * theEvaporationResult = (*theChannels)[j]->BreakUp(theResidualNucleus); #ifdef debug - G4cout << "---------------------------------------------" - << G4endl; - G4cout << G4endl << " After evaporate a particle test conservation " - << G4endl; + G4cout << "-----------------------------------------------------------\n"; + G4cout << G4endl << " After the evaporation of a particle, testing conservation \n"; CheckConservation(theResidualNucleus,theEvaporationResult); G4cout << G4endl - << "---------------------------------------------" - << G4endl; + << "------------------------------------------------------------\n"; #endif // Check if chosen channel is fission (there are only two EXCITED fragments) @@ -171,35 +165,40 @@ G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) if ( theEvaporationResult->size() == 1 || ((*(theEvaporationResult->begin()))->GetExcitationEnergy() > 0.0 && (*(theEvaporationResult->end()-1))->GetExcitationEnergy() > 0.0) ) { - // FISSION - while (theEvaporationResult->size() > 0) { - theResult->push_back(*(theEvaporationResult->end()-1)); - theEvaporationResult->pop_back(); + // FISSION + for (G4FragmentVector::iterator i = theEvaporationResult->begin(); + i != theEvaporationResult->end(); ++i) + { + theResult->push_back(*(i)); } - if (theEvaporationResult->empty()) delete theEvaporationResult; - else G4Exception("G4Evaporation.cc: deleting theEvaporationResult but is not empty after fission"); - break; + delete theEvaporationResult; + break; } else { - // EVAPORATION - while (theEvaporationResult->size() > 1) { - theResult->push_back(*(theEvaporationResult->begin())); - theEvaporationResult->erase(theEvaporationResult->begin()); + // EVAPORATION + for (G4FragmentVector::iterator i = theEvaporationResult->begin(); + i != theEvaporationResult->end()-1; ++i) + { +#ifdef pctest + if ((*i)->GetA() == 0) (*i)->SetCreatorModel(G4String("G4PhotonEvaporation")); +#endif + theResult->push_back(*(i)); } - theResidualNucleus = **(theEvaporationResult->begin()); - delete *(theEvaporationResult->begin()); - theEvaporationResult->pop_back(); - if (theEvaporationResult->empty()) delete theEvaporationResult; - else G4Exception("G4Evaporation.cc: deleting theEvaporationResult but is not empty after evaporation"); + theResidualNucleus = *(theEvaporationResult->back()); + delete theEvaporationResult->back(); + delete theEvaporationResult; +#ifdef pctest + theResidualNucleus.SetCreatorModel(G4String("ResidualNucleus")); +#endif } } } } - + #ifdef debug - G4cout << "======== Evaporation Conservation Test ===========" << G4endl - << "==================================================" << G4endl; + G4cout << "======== Evaporation Conservation Test ===========\n" + << "==================================================\n"; CheckConservation(theNucleus,theResult); - G4cout << "==================================================" << G4endl; + G4cout << "==================================================\n"; #endif return theResult; } 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 7612a16389..9cb4ca7179 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationChannel.cc,v 1.9 2001/10/05 16:13:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4EvaporationChannel.cc,v 1.12 2002/06/18 16:38:24 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -119,7 +119,8 @@ void G4EvaporationChannel::Initialize(const G4Fragment & fragment) ZResidual = aZ - Z; // Effective excitation energy - G4double ExEnergy = fragment.GetExcitationEnergy() - G4PairingCorrection::GetPairingCorrection(anA,aZ); + G4double ExEnergy = fragment.GetExcitationEnergy() - + G4PairingCorrection::GetInstance()->GetPairingCorrection(anA,aZ); // We only take into account channels which are physically allowed if (AResidual <= 0 || ZResidual <= 0 || AResidual < ZResidual || @@ -166,11 +167,15 @@ G4FragmentVector * G4EvaporationChannel::BreakUp(const G4Fragment & theNucleus) G4ThreeVector momentum(IsotropicVector(sqrt(EvaporatedKineticEnergy* (EvaporatedKineticEnergy+2.0*EvaporatedMass)))); + momentum.rotateUz(theNucleus.GetMomentum().vect().unit()); + G4LorentzVector EvaporatedMomentum(momentum,EvaporatedEnergy); EvaporatedMomentum.boost(theNucleus.GetMomentum().boostVector()); G4Fragment * EvaporatedFragment = new G4Fragment(A,Z,EvaporatedMomentum); - +#ifdef pctest + EvaporatedFragment->SetCreatorModel(G4String("G4Evaporation")); +#endif // ** And now the residual nucleus ** G4double theExEnergy = theNucleus.GetExcitationEnergy(); G4double theMass = G4ParticleTable::GetParticleTable()->GetIonTable()-> @@ -181,8 +186,9 @@ G4FragmentVector * G4EvaporationChannel::BreakUp(const G4Fragment & theNucleus) ResidualMomentum.boost(theNucleus.GetMomentum().boostVector()); G4Fragment * ResidualFragment = new G4Fragment( AResidual, ZResidual, ResidualMomentum ); - - +#ifdef pctest + ResidualFragment->SetCreatorModel(G4String("ResidualNucleus")); +#endif G4FragmentVector * theResult = new G4FragmentVector; #ifdef debug diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc new file mode 100644 index 0000000000..4116ebef05 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +#include "G4EvaporationFactory.hh" + + +#include "G4NeutronEvaporationChannel.hh" +#include "G4ProtonEvaporationChannel.hh" +#include "G4DeuteronEvaporationChannel.hh" +#include "G4TritonEvaporationChannel.hh" +#include "G4He3EvaporationChannel.hh" +#include "G4AlphaEvaporationChannel.hh" + +#include "G4CompetitiveFission.hh" +#include "G4PhotonEvaporation.hh" + + +const G4EvaporationFactory & +G4EvaporationFactory::operator=(const G4EvaporationFactory & val) +{ + G4Exception("G4EvaporationFactory::operator= meant to not be accessable."); + return *this; +} + +G4bool +G4EvaporationFactory::operator==(const G4EvaporationFactory & val) const +{ + G4Exception("G4EvaporationFactory::operator== meant to not be accessable."); + return false; +} + +G4bool +G4EvaporationFactory::operator!=(const G4EvaporationFactory & val) const +{ + G4Exception("G4EvaporationFactory::operator!= meant to not be accessable."); + return true; +} + + + +G4std::vector * +G4EvaporationFactory::CreateChannel() +{ + G4std::vector * theChannel = + new G4std::vector; + theChannel->reserve(8); + + theChannel->push_back( new G4NeutronEvaporationChannel() ); // n + theChannel->push_back( new G4ProtonEvaporationChannel() ); // p + theChannel->push_back( new G4DeuteronEvaporationChannel() ); // Deuteron + theChannel->push_back( new G4TritonEvaporationChannel() ); // Triton + theChannel->push_back( new G4He3EvaporationChannel() ); // He3 + theChannel->push_back( new G4AlphaEvaporationChannel() ); // Alpha + + theChannel->push_back( new G4CompetitiveFission() ); // Fission Channel + theChannel->push_back( new G4PhotonEvaporation() ); // Photon Channel + + return theChannel; + +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc new file mode 100644 index 0000000000..2b8e79fbf8 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc @@ -0,0 +1,208 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +#include "G4EvaporationGEMFactory.hh" + +#include "G4NeutronGEMChannel.hh" +#include "G4ProtonGEMChannel.hh" +#include "G4DeuteronGEMChannel.hh" +#include "G4TritonGEMChannel.hh" +#include "G4He3GEMChannel.hh" +#include "G4AlphaGEMChannel.hh" +#include "G4He6GEMChannel.hh" +#include "G4He8GEMChannel.hh" +#include "G4Li6GEMChannel.hh" +#include "G4Li7GEMChannel.hh" +#include "G4Li8GEMChannel.hh" +#include "G4Li9GEMChannel.hh" +#include "G4Be7GEMChannel.hh" +#include "G4Be9GEMChannel.hh" +#include "G4Be10GEMChannel.hh" +#include "G4Be11GEMChannel.hh" +#include "G4Be12GEMChannel.hh" +#include "G4B8GEMChannel.hh" +#include "G4B10GEMChannel.hh" +#include "G4B11GEMChannel.hh" +#include "G4B12GEMChannel.hh" +#include "G4B13GEMChannel.hh" +#include "G4C10GEMChannel.hh" +#include "G4C11GEMChannel.hh" +#include "G4C12GEMChannel.hh" +#include "G4C13GEMChannel.hh" +#include "G4C14GEMChannel.hh" +#include "G4C15GEMChannel.hh" +#include "G4C16GEMChannel.hh" +#include "G4N12GEMChannel.hh" +#include "G4N13GEMChannel.hh" +#include "G4N14GEMChannel.hh" +#include "G4N15GEMChannel.hh" +#include "G4N16GEMChannel.hh" +#include "G4N17GEMChannel.hh" +#include "G4O14GEMChannel.hh" +#include "G4O15GEMChannel.hh" +#include "G4O16GEMChannel.hh" +#include "G4O17GEMChannel.hh" +#include "G4O18GEMChannel.hh" +#include "G4O19GEMChannel.hh" +#include "G4O20GEMChannel.hh" +#include "G4F17GEMChannel.hh" +#include "G4F18GEMChannel.hh" +#include "G4F19GEMChannel.hh" +#include "G4F20GEMChannel.hh" +#include "G4F21GEMChannel.hh" +#include "G4Ne18GEMChannel.hh" +#include "G4Ne19GEMChannel.hh" +#include "G4Ne20GEMChannel.hh" +#include "G4Ne21GEMChannel.hh" +#include "G4Ne22GEMChannel.hh" +#include "G4Ne23GEMChannel.hh" +#include "G4Ne24GEMChannel.hh" +#include "G4Na21GEMChannel.hh" +#include "G4Na22GEMChannel.hh" +#include "G4Na23GEMChannel.hh" +#include "G4Na24GEMChannel.hh" +#include "G4Na25GEMChannel.hh" +#include "G4Mg22GEMChannel.hh" +#include "G4Mg23GEMChannel.hh" +#include "G4Mg24GEMChannel.hh" +#include "G4Mg25GEMChannel.hh" +#include "G4Mg26GEMChannel.hh" +#include "G4Mg27GEMChannel.hh" +#include "G4Mg28GEMChannel.hh" + +#include "G4CompetitiveFission.hh" +#include "G4PhotonEvaporation.hh" + + +const G4EvaporationGEMFactory & +G4EvaporationGEMFactory::operator=(const G4EvaporationGEMFactory & val) +{ + G4Exception("G4EvaporationGEMFactory::operator= meant to not be accessable."); + return *this; +} + +G4bool +G4EvaporationGEMFactory::operator==(const G4EvaporationGEMFactory & val) const +{ + G4Exception("G4EvaporationGEMFactory::operator== meant to not be accessable."); + return false; +} + +G4bool +G4EvaporationGEMFactory::operator!=(const G4EvaporationGEMFactory & val) const +{ + G4Exception("G4EvaporationGEMFactory::operator!= meant to not be accessable."); + return true; +} + + + +G4std::vector * +G4EvaporationGEMFactory::CreateChannel() +{ + G4std::vector * theChannel = + new G4std::vector; + theChannel->reserve(68); + + theChannel->push_back( new G4NeutronGEMChannel() ); // n + theChannel->push_back( new G4ProtonGEMChannel() ); // p + theChannel->push_back( new G4DeuteronGEMChannel() ); // Deuteron + theChannel->push_back( new G4TritonGEMChannel() ); // Triton + theChannel->push_back( new G4He3GEMChannel() ); // He3 + theChannel->push_back( new G4AlphaGEMChannel() ); // Alpha + theChannel->push_back( new G4He6GEMChannel() ); // He6 + theChannel->push_back( new G4He8GEMChannel() ); // He8 + theChannel->push_back( new G4Li6GEMChannel() ); // Li6 + theChannel->push_back( new G4Li7GEMChannel() ); // Li7 + theChannel->push_back( new G4Li8GEMChannel() ); // Li8 + theChannel->push_back( new G4Li9GEMChannel() ); // Li9 + theChannel->push_back( new G4Be7GEMChannel() ); // Be7 + theChannel->push_back( new G4Be9GEMChannel() ); // Be9 + theChannel->push_back( new G4Be10GEMChannel() ); // Be10 + theChannel->push_back( new G4Be11GEMChannel() ); // Be11 + theChannel->push_back( new G4Be12GEMChannel() ); // Be12 + theChannel->push_back( new G4B8GEMChannel() ); // B8 + theChannel->push_back( new G4B10GEMChannel() ); // B10 + theChannel->push_back( new G4B11GEMChannel() ); // B11 + theChannel->push_back( new G4B12GEMChannel() ); // B12 + theChannel->push_back( new G4B13GEMChannel() ); // B13 + theChannel->push_back( new G4C10GEMChannel() ); // C10 + theChannel->push_back( new G4C11GEMChannel() ); // C11 + theChannel->push_back( new G4C12GEMChannel() ); // C12 + theChannel->push_back( new G4C13GEMChannel() ); // C13 + theChannel->push_back( new G4C14GEMChannel() ); // C14 + theChannel->push_back( new G4C15GEMChannel() ); // C15 + theChannel->push_back( new G4C16GEMChannel() ); // C16 + theChannel->push_back( new G4N12GEMChannel() ); // N12 + theChannel->push_back( new G4N13GEMChannel() ); // N13 + theChannel->push_back( new G4N14GEMChannel() ); // N14 + theChannel->push_back( new G4N15GEMChannel() ); // N15 + theChannel->push_back( new G4N16GEMChannel() ); // N16 + theChannel->push_back( new G4N17GEMChannel() ); // N17 + theChannel->push_back( new G4O14GEMChannel() ); // O14 + theChannel->push_back( new G4O15GEMChannel() ); // O15 + theChannel->push_back( new G4O16GEMChannel() ); // O16 + theChannel->push_back( new G4O17GEMChannel() ); // O17 + theChannel->push_back( new G4O18GEMChannel() ); // O18 + theChannel->push_back( new G4O19GEMChannel() ); // O19 + theChannel->push_back( new G4O20GEMChannel() ); // O20 + theChannel->push_back( new G4F17GEMChannel() ); // F17 + theChannel->push_back( new G4F18GEMChannel() ); // F18 + theChannel->push_back( new G4F19GEMChannel() ); // F19 + theChannel->push_back( new G4F20GEMChannel() ); // F20 + theChannel->push_back( new G4F21GEMChannel() ); // F21 + theChannel->push_back( new G4Ne18GEMChannel() ); // Ne18 + theChannel->push_back( new G4Ne19GEMChannel() ); // Ne19 + theChannel->push_back( new G4Ne20GEMChannel() ); // Ne20 + theChannel->push_back( new G4Ne21GEMChannel() ); // Ne21 + theChannel->push_back( new G4Ne22GEMChannel() ); // Ne22 + theChannel->push_back( new G4Ne23GEMChannel() ); // Ne23 + theChannel->push_back( new G4Ne24GEMChannel() ); // Ne24 + theChannel->push_back( new G4Na21GEMChannel() ); // Na21 + theChannel->push_back( new G4Na22GEMChannel() ); // Na22 + theChannel->push_back( new G4Na23GEMChannel() ); // Na23 + theChannel->push_back( new G4Na24GEMChannel() ); // Na24 + theChannel->push_back( new G4Na25GEMChannel() ); // Na25 + theChannel->push_back( new G4Mg22GEMChannel() ); // Mg22 + theChannel->push_back( new G4Mg23GEMChannel() ); // Mg23 + theChannel->push_back( new G4Mg24GEMChannel() ); // Mg24 + theChannel->push_back( new G4Mg25GEMChannel() ); // Mg25 + theChannel->push_back( new G4Mg26GEMChannel() ); // Mg26 + theChannel->push_back( new G4Mg27GEMChannel() ); // Mg27 + theChannel->push_back( new G4Mg28GEMChannel() ); // Mg28 + + theChannel->push_back( new G4CompetitiveFission() ); // Fission Channel + theChannel->push_back( new G4PhotonEvaporation() ); // Photon Channel + + return theChannel; + +} + + + 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 9a0d024f90..0b420bd232 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationLevelDensityParameter.cc,v 1.6 2001/08/01 17:05:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 52da4b82d3..ac41df50d0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationProbability.cc,v 1.6 2001/08/01 17:05:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4EvaporationProbability.cc,v 1.7 2001/11/08 10:18:25 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -96,7 +96,7 @@ G4double G4EvaporationProbability::CalcProbability(const G4Fragment & fragment, G4double NuclearMass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetNucleusMass(theZ,theA); - G4double delta0 = G4PairingCorrection::GetPairingCorrection(fragment.GetA(),fragment.GetZ()); + G4double delta0 = G4PairingCorrection::GetInstance()->GetPairingCorrection(fragment.GetA(),fragment.GetZ()); G4double SystemEntropy = 2.0*sqrt(theEvapLDPptr->LevelDensityParameter(fragment.GetA(), fragment.GetZ(),U)* 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 6db7eb7613..de52cfd0c8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc @@ -37,14 +37,16 @@ #include "G4ExcitationHandler.hh" #include "g4std/list" +//#define debugphoton + G4ExcitationHandler::G4ExcitationHandler(): - maxZForFermiBreakUp(8),maxAForFermiBreakUp(16),minEForMultiFrag(1000.0*MeV), // make Multifrag. unavailable + maxZForFermiBreakUp(8),maxAForFermiBreakUp(16),minEForMultiFrag(4.0*MeV), MyOwnEvaporationClass(true), MyOwnMultiFragmentationClass(true),MyOwnFermiBreakUpClass(true), MyOwnPhotonEvaporationClass(true) -{ // change by 3.0 +{ theTableOfParticles = G4ParticleTable::GetParticleTable(); - + theEvaporation = new G4Evaporation; theMultiFragmentation = new G4StatMF; theFermiModel = new G4FermiBreakUp; @@ -100,8 +102,8 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn // Test applicability if (A > 4) { // Initial State De-Excitation - if(AG4NucleiPropertiesTable::GetBindingEnergy(Z,A)) { + if(AG4NucleiPropertiesTable::GetBindingEnergy(Z,A)) { theResult = theFermiModel->BreakItUp(theInitialState); @@ -133,13 +135,10 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn Z = G4int((*i)->GetZ()); theExcitedNucleus = *(*i); // try to de-excite this fragment - if(AG4NucleiPropertiesTable::GetBindingEnergy(Z,A)) { + if(AG4NucleiPropertiesTable::GetBindingEnergy(Z,A)) { // Fermi Breakup theTempResult = theFermiModel->BreakItUp(theExcitedNucleus); - } else if(exEnergy>GetMinE()*A) { - // Multifragmentation - theTempResult = theMultiFragmentation->BreakItUp(theExcitedNucleus); } else { // Evaporation theTempResult = theEvaporation->BreakItUp(theExcitedNucleus); @@ -151,26 +150,26 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn // Remove excited fragment from the result // delete theResult->removeAt(i--); delete (*i); - i = theResultList.erase(i--); + i = theResultList.erase(i); // and add theTempResult elements to theResult - while (!theTempResult->empty()) { - theResultList.push_back(*(theTempResult->end()-1)); - theTempResult->pop_back(); - } + for (G4FragmentVector::reverse_iterator ri = theTempResult->rbegin(); + ri != theTempResult->rend(); ++ri) + { + theResultList.push_back(*ri); + } delete theTempResult; } else { // If not : // it doesn't matter, we Follow with the next fragment but - // I have to make - while ( !theTempResult->empty() ) { - delete *(theTempResult->end()-1); - theTempResult->pop_back(); - } + // I have to clean up + G4std::for_each(theTempResult->begin(),theTempResult->end(),DeleteFragment()); delete theTempResult; } } } for (i = theResultList.begin(); i != theResultList.end(); i++) - theResult->push_back(*i); + { + theResult->push_back(*i); + } theResultList.clear(); } else { // if A > 4 theResult->push_back(new G4Fragment(theInitialState)); @@ -188,7 +187,7 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn theResult->clear(); for (j = theResultList.begin(); j != theResultList.end(); j++) { - if ((*j)->GetExcitationEnergy() > 0.0 && (*j)->GetA() > 1) { + if ((*j)->GetA() > 1 && (*j)->GetExcitationEnergy() > 0.1*eV) { theExcitedNucleus = *(*j); theTempResult = thePhotonEvaporation->BreakItUp(theExcitedNucleus); // If Gamma Evaporation has succeed then @@ -197,28 +196,28 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn delete (*j); theResultList.erase(j--); // and add theTempResult elements to theResult - while (!theTempResult->empty()) { - theResultList.push_back(*(theTempResult->end()-1)); - theTempResult->pop_back(); - } + for (G4FragmentVector::reverse_iterator ri = theTempResult->rbegin(); + ri != theTempResult->rend(); ++ri) + { +#ifdef pctest + if ((*ri)->GetA() == 0) + (*ri)->SetCreatorModel(G4String("G4PhotonEvaporation")); + else + (*ri)->SetCreatorModel(G4String("ResidualNucleus")); +#endif + theResultList.push_back(*ri); + } delete theTempResult; } // In other case, just clean theTempResult and continue else { - while (!theTempResult->empty()) { - delete *(theTempResult->end()-1); - theTempResult->pop_back(); - } + G4std::for_each(theTempResult->begin(), theTempResult->end(), DeleteFragment()); delete theTempResult; -#ifdef debug - G4cout << "G4ExcitationHandler: Gamma Evaporation could not deexcite the nucleus: " - << G4endl - << "-----------------------------------------------------------------------" - << G4endl; - G4cout << theExcitedNucleus - << G4endl - << "-----------------------------------------------------------------------" - << G4endl; +#ifdef debugphoton + G4cout << "G4ExcitationHandler: Gamma Evaporation could not deexcite the nucleus: \n" + << "-----------------------------------------------------------------------\n" + << theExcitedNucleus << '\n' + << "-----------------------------------------------------------------------\n"; #endif G4double GammaEnergy = (*j)->GetExcitationEnergy(); G4double cosTheta = 1. - 2. * G4UniformRand(); @@ -227,14 +226,30 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn G4ThreeVector GammaP(GammaEnergy * sinTheta * cos(phi), GammaEnergy * sinTheta * sin(phi), GammaEnergy * cosTheta ); - - G4LorentzVector Gamma4P(GammaP,GammaEnergy); + G4Fragment * theHandlerPhoton = new G4Fragment(Gamma4P,G4Gamma::GammaDefinition()); + + + G4double Mass = (*j)->GetGroundStateMass(); - G4ThreeVector ResidualP = (*j)->GetMomentum().vect(); - G4LorentzVector Residual4P(ResidualP,sqrt(Mass*Mass+ResidualP.mag2())); + G4ThreeVector ResidualP((*j)->GetMomentum().vect() - GammaP); + G4double ResidualE = sqrt(ResidualP*ResidualP + Mass*Mass); + G4LorentzVector Residual4P(ResidualP,ResidualE); (*j)->SetMomentum(Residual4P); - theResultList.push_back( new G4Fragment(Gamma4P,G4Gamma::GammaDefinition()) ); + + + +#ifdef pctest + theHandlerPhoton->SetCreatorModel("G4ExcitationHandler"); +#endif + theResultList.push_back( theHandlerPhoton ); +#ifdef debugphoton + G4cout << "Emmited photon:\n" + << theResultList.back() << '\n' + << "Residual nucleus after photon emission:\n" + << *(*j) << '\n' + << "-----------------------------------------------------------------------\n"; +#endif } } } @@ -299,35 +314,39 @@ G4ExcitationHandler::Transform(G4FragmentVector * theFragmentVector) const theNew->SetMomentum(theFragmentMomentum.vect()); theNew->SetTotalEnergy(theFragmentMomentum.e()); theNew->SetFormationTime((*i)->GetCreationTime()); +#ifdef pctest + theNew->SetCreatorModel((*i)->GetCreatorModel()); +#endif theReactionProductVector->push_back(theNew); } } if (theFragmentVector != 0) { - while (!theFragmentVector->empty()) { - delete *(theFragmentVector->end()-1); - theFragmentVector->pop_back(); - } + G4std::for_each(theFragmentVector->begin(), theFragmentVector->end(), DeleteFragment()); delete theFragmentVector; } G4ReactionProductVector::iterator debugit; for(debugit=theReactionProductVector->begin(); debugit!=theReactionProductVector->end(); debugit++) { - if((*debugit)->GetTotalEnergy()<1.*eV) - { - if(getenv("G4DebugPhotonevaporationData")) - { - G4cerr << "G4ExcitationHandler: Warning: Photonevaporation data not exact."<erase(debugit); - if(debugit!=theReactionProductVector->begin()) debugit--; - } - } + if((*debugit)->GetTotalEnergy()<1.*eV) + { + if(getenv("G4DebugPhotonevaporationData")) + { + G4cerr << "G4ExcitationHandler: Warning: Photonevaporation data not exact."<erase(G4std::remove_if(theReactionProductVector->begin(), + theReactionProductVector->end(), + G4std::bind2nd(G4std::equal_to(), + 0)), + theReactionProductVector->end()); return theReactionProductVector; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc new file mode 100644 index 0000000000..ccc0a579ee --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4F17GEMProbability.cc,v 1.1 2002/06/06 18:00:47 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4F17GEMProbability.hh" + +G4F17GEMProbability::G4F17GEMProbability() : + G4GEMProbability(17,9,5.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(495.33*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(286.0*picosecond); + + ExcitEnergies.push_back(3104.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19.0*keV)); + + ExcitEnergies.push_back(3857.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(4.2e-3*picosecond); + + ExcitEnergies.push_back(3857.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(4.2e-3*picosecond); + + ExcitEnergies.push_back(4696.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(225.0*keV)); + + ExcitEnergies.push_back(5103.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1530.0*keV)); + + ExcitEnergies.push_back(5521.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(68.0*keV)); + + ExcitEnergies.push_back(5672.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(5682.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.6*keV)); + + ExcitEnergies.push_back(5817.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180.0*keV)); + + ExcitEnergies.push_back(6036.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(6556.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(6699.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0*keV)); + + ExcitEnergies.push_back(6774.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.5*keV)); + + ExcitEnergies.push_back(7027.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.8*keV)); + + ExcitEnergies.push_back(7356.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(7479.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(795.0*keV)); + + ExcitEnergies.push_back(7546.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(7750.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(179.0*keV)); + + ExcitEnergies.push_back(8075.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(8200.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(700.0*keV)); + + ExcitEnergies.push_back(8383.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.0*keV)); + + ExcitEnergies.push_back(8416.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45.0*keV)); + + ExcitEnergies.push_back(8750.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(170.0*keV)); + + ExcitEnergies.push_back(8760.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(8970.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(165.0*keV)); + + ExcitEnergies.push_back(9270.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140.0*keV)); + + ExcitEnergies.push_back(9910.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(10040.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(10400.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(160.0*keV)); + + ExcitEnergies.push_back(10499.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(165.0*keV)); + + ExcitEnergies.push_back(10.91E3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(560.0*keV)); + + ExcitEnergies.push_back(11193.1*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.20*keV)); + + ExcitEnergies.push_back(12250.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(12355.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(12500.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(660.0*keV)); + + ExcitEnergies.push_back(12550.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.83*keV)); + + ExcitEnergies.push_back(13061.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(13080.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(13130.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(520.0*keV)); + + ExcitEnergies.push_back(13781.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(12.0*keV)); + + ExcitEnergies.push_back(14000.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(260.0*keV)); + + ExcitEnergies.push_back(14176.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(14304.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19.3*keV)); + + ExcitEnergies.push_back(14380.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(610.0*keV)); + + ExcitEnergies.push_back(14.71E3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(470.0*keV)); + + ExcitEnergies.push_back(14809.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(17100.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1500.0*keV)); + + ExcitEnergies.push_back(19420.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(20250.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + ExcitEnergies.push_back(20900.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(21010.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(21800.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(22700.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(23800.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(25400.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1500.0*keV)); + + ExcitEnergies.push_back(27200.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1500.0*keV)); + + ExcitEnergies.push_back(28900.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2000.0*keV)); + +} + + +G4F17GEMProbability::G4F17GEMProbability(const G4F17GEMProbability &right) +{ + G4Exception("G4F17GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4F17GEMProbability & G4F17GEMProbability:: +operator=(const G4F17GEMProbability &right) +{ + G4Exception("G4F17GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4F17GEMProbability::operator==(const G4F17GEMProbability &right) const +{ + return false; +} + +G4bool G4F17GEMProbability::operator!=(const G4F17GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc new file mode 100644 index 0000000000..a552932675 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc @@ -0,0 +1,576 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4F18GEMProbability.cc,v 1.1 2002/06/06 18:00:49 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4F18GEMProbability.hh" + +G4F18GEMProbability::G4F18GEMProbability() : + G4GEMProbability(18,9,1.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(937.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(47.0*picosecond); + + ExcitEnergies.push_back(1041.9*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(3.0e-3*picosecond); + + ExcitEnergies.push_back(1080.9*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(21.0*picosecond); + + ExcitEnergies.push_back(1121.8*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(151.0*nanosecond); + + ExcitEnergies.push_back(1700.7*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(0.60*picosecond); + + ExcitEnergies.push_back(2101.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(3.0*picosecond); + + ExcitEnergies.push_back(2524.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.45*picosecond); + + ExcitEnergies.push_back(3059.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.8e-3*picosecond); + + ExcitEnergies.push_back(3134.9*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(0.26*picosecond); + + ExcitEnergies.push_back(3356.9*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(0.33*picosecond); + + ExcitEnergies.push_back(3724.2*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(0.06*picosecond); + + ExcitEnergies.push_back(3836.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.050*picosecond); + + ExcitEnergies.push_back(4361.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(0.42*picosecond); + + ExcitEnergies.push_back(5301.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(21.0*picosecond); + + ExcitEnergies.push_back(5606.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(5674.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.8*keV)); + + ExcitEnergies.push_back(6095.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(6161.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.0*keV)); + + ExcitEnergies.push_back(6240.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.8*keV)); + + ExcitEnergies.push_back(6261.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0*keV)); + + ExcitEnergies.push_back(6280.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.5*keV)); + + ExcitEnergies.push_back(6309.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.1*keV)); + + ExcitEnergies.push_back(6385.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.5*keV)); + + ExcitEnergies.push_back(6483.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(6565.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.8*keV)); + + ExcitEnergies.push_back(6646.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(89.0*keV)); + + ExcitEnergies.push_back(6647.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.6*keV)); + + ExcitEnergies.push_back(6780.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(6808.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(7194.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(7206.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45.0*keV)); + + ExcitEnergies.push_back(7313.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(53.0*keV)); + + ExcitEnergies.push_back(7395.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(7872.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(7950.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(9145.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(108.0*keV)); + + ExcitEnergies.push_back(9260.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(9320.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(9700.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(370.0*keV)); + + ExcitEnergies.push_back(9820.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(10210.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(10268.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180.0*keV)); + + ExcitEnergies.push_back(10310.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(570.0*keV)); + + ExcitEnergies.push_back(10352.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(270.0*keV)); + + ExcitEnergies.push_back(10420.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(10541.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(10590.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(160.0*keV)); + + ExcitEnergies.push_back(10610.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(10630.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(10640.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(10680.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(10690.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(75.0*keV)); + + ExcitEnergies.push_back(10710.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(375.0*keV)); + + ExcitEnergies.push_back(10800.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(85.0*keV)); + + ExcitEnergies.push_back(10910.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(10950.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(10980.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(10990.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(220.0*keV)); + + ExcitEnergies.push_back(11030.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(11073.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(11110.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(11130.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(11260.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(11300.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(475.0*keV)); + + ExcitEnergies.push_back(11310.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(11320.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95.0*keV)); + + ExcitEnergies.push_back(11320.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65.0*keV)); + + ExcitEnergies.push_back(11510.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(125.0*keV)); + + ExcitEnergies.push_back(11560.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(11660.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(11830.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180.0*keV)); + + ExcitEnergies.push_back(11960.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(11970.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(125.0*keV)); + + ExcitEnergies.push_back(12120.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(12140.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(220.0*keV)); + + ExcitEnergies.push_back(12250.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(170.0*keV)); + + ExcitEnergies.push_back(12310.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(12340.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(12360.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(12380.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(12470.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(12480.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(12484.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(12526.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(12565.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(12630.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(210.0*keV)); + + ExcitEnergies.push_back(12670.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(290.0*keV)); + + ExcitEnergies.push_back(12683.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45.0*keV)); + + ExcitEnergies.push_back(12702.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(12810.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(440.0*keV)); + + ExcitEnergies.push_back(12900.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(12990.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(650.0*keV)); + + ExcitEnergies.push_back(13030.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250.0*keV)); + + ExcitEnergies.push_back(13030.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(13129.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(13170.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(185.0*keV)); + + ExcitEnergies.push_back(13198.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140.0*keV)); + + ExcitEnergies.push_back(13200.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(255.0*keV)); + + ExcitEnergies.push_back(13260.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(360.0*keV)); + + ExcitEnergies.push_back(13290.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(13332.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(13398.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(85.0*keV)); + + ExcitEnergies.push_back(13430.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(235.0*keV)); + + ExcitEnergies.push_back(13440.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(13464.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(13500.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65.0*keV)); + + ExcitEnergies.push_back(13597.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(13600.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(13610.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(13650.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(13652.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(13671.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(13679.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(13700.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(13770.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(205.0*keV)); + + ExcitEnergies.push_back(13780.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(130.0*keV)); + + ExcitEnergies.push_back(13810.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(265.0*keV)); + + ExcitEnergies.push_back(13960.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(13980.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(170.0*keV)); + + ExcitEnergies.push_back(14100.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(170.0*keV)); + + ExcitEnergies.push_back(14162.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(14323.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95.0*keV)); + + ExcitEnergies.push_back(16513.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(16606.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(16723.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(16870.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(16948.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + +} + + +G4F18GEMProbability::G4F18GEMProbability(const G4F18GEMProbability &right) +{ + G4Exception("G4F18GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4F18GEMProbability & G4F18GEMProbability:: +operator=(const G4F18GEMProbability &right) +{ + G4Exception("G4F18GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4F18GEMProbability::operator==(const G4F18GEMProbability &right) const +{ + return false; +} + +G4bool G4F18GEMProbability::operator!=(const G4F18GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc new file mode 100644 index 0000000000..dc31afc76e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.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: G4F19GEMProbability.cc,v 1.1 2002/06/06 18:00:50 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4F19GEMProbability.hh" + +G4F19GEMProbability::G4F19GEMProbability() : + G4GEMProbability(19,9,1.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(109.893*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.580e-3*picosecond); + + ExcitEnergies.push_back(197.147*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(89.30e-3*picosecond); + + ExcitEnergies.push_back(1345.72*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(3.3*picosecond); + + ExcitEnergies.push_back(1458.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(54.0e-3*picosecond); + + ExcitEnergies.push_back(1554.1*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(3.0e-3*picosecond); + + ExcitEnergies.push_back(2779.8*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(181.0e-3*picosecond); + + ExcitEnergies.push_back(3907.1*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3998.5*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(16.0e-3*picosecond); + + ExcitEnergies.push_back(4032.5*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(51.0e-3*picosecond); + + ExcitEnergies.push_back(4555.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(4557.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(4648.0*keV); + ExcitSpins.push_back(13.0/2.0); + ExcitLifetimes.push_back(1.5*picosecond); + + ExcitEnergies.push_back(4683.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(10.7e-3*picosecond); + + ExcitEnergies.push_back(5340.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(5464.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(13.0e-3*picosecond); + + ExcitEnergies.push_back(6076.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(6093.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(6250.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(6290.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.4*keV)); + + ExcitEnergies.push_back(6332.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.4*keV)); + + ExcitEnergies.push_back(6430.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(6525.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(6553.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.6*keV)); + + ExcitEnergies.push_back(6788.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.4*keV)); + + ExcitEnergies.push_back(6838.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(6890.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(28.0*keV)); + + ExcitEnergies.push_back(6926.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.4*keV)); + + ExcitEnergies.push_back(6990.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(51.0*keV)); + + ExcitEnergies.push_back(7110.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(32.0*keV)); + + ExcitEnergies.push_back(7120.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(7364.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(63.0*keV)); + + ExcitEnergies.push_back(7702.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(8014.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(8086.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(8136.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(8195.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(8590.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(8637.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95.0*keV)); + + ExcitEnergies.push_back(8795.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45.0*keV)); + + ExcitEnergies.push_back(8928.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.6*keV)); + + ExcitEnergies.push_back(9098.4*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0e-3*keV)); + + ExcitEnergies.push_back(9166.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.8*keV)); + + ExcitEnergies.push_back(9321.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.9*keV)); + + ExcitEnergies.push_back(9527.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(29.0*keV)); + + ExcitEnergies.push_back(9578.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(26.0*keV)); + + ExcitEnergies.push_back(9668.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.8*keV)); + + ExcitEnergies.push_back(9819.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.29*keV)); + + ExcitEnergies.push_back(9888.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(31.0*keV)); + + ExcitEnergies.push_back(10136.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.7*keV)); + + ExcitEnergies.push_back(10161.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(31.0*keV)); + + ExcitEnergies.push_back(10231.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.3*keV)); + + ExcitEnergies.push_back(10253.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(23.0*keV)); + + ExcitEnergies.push_back(10306.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(9.2*keV)); + + ExcitEnergies.push_back(10496.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.2*keV)); + + ExcitEnergies.push_back(10554.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.6*keV)); + + ExcitEnergies.push_back(10580.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22.0*keV)); + + ExcitEnergies.push_back(10613.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.8*keV)); + + ExcitEnergies.push_back(10763.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.4*keV)); + + ExcitEnergies.push_back(10858.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25.0*keV)); + + ExcitEnergies.push_back(10972.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.0*keV)); + + ExcitEnergies.push_back(11070.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(31.0*keV)); + + ExcitEnergies.push_back(11199.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(43.0*keV)); + +} + + +G4F19GEMProbability::G4F19GEMProbability(const G4F19GEMProbability &right) +{ + G4Exception("G4F19GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4F19GEMProbability & G4F19GEMProbability:: +operator=(const G4F19GEMProbability &right) +{ + G4Exception("G4F19GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4F19GEMProbability::operator==(const G4F19GEMProbability &right) const +{ + return false; +} + +G4bool G4F19GEMProbability::operator!=(const G4F19GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc new file mode 100644 index 0000000000..b56fa28926 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4F20GEMProbability.cc,v 1.1 2002/06/06 18:00:51 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4F20GEMProbability.hh" + +G4F20GEMProbability::G4F20GEMProbability() : + G4GEMProbability(20,9,2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(655.95*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(0.28*picosecond); + + ExcitEnergies.push_back(822.9*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(55*picosecond); + + ExcitEnergies.push_back(983.8*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(1.1*picosecond); + + ExcitEnergies.push_back(1056.93*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(31.0e-3*picosecond); + + ExcitEnergies.push_back(1309.22*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.62*picosecond); + + ExcitEnergies.push_back(1843.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(21.0e-3*picosecond); + + ExcitEnergies.push_back(2043.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(26.0e-3*picosecond); + + ExcitEnergies.push_back(2194.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(8.0e-3*picosecond); + + ExcitEnergies.push_back(2966.2*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(42.0e-3*picosecond); + + ExcitEnergies.push_back(3488.4*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(30.0e-3*picosecond); + + ExcitEnergies.push_back(3525.9*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(21.0e-3*picosecond); + + ExcitEnergies.push_back(3587.1*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(21.0e-3*picosecond); + + ExcitEnergies.push_back(6627.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.29*keV)); + + ExcitEnergies.push_back(6648.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.62*keV)); + + ExcitEnergies.push_back(6685.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.80*keV)); + + ExcitEnergies.push_back(6692.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.23*keV)); + + ExcitEnergies.push_back(6696.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.05*keV)); + + ExcitEnergies.push_back(6699.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.85*keV)); + + ExcitEnergies.push_back(6709.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.14*keV)); + + ExcitEnergies.push_back(6717.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.95*keV)); + + ExcitEnergies.push_back(6791.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.9*keV)); + + ExcitEnergies.push_back(6835.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.7*keV)); + + ExcitEnergies.push_back(6837.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.4*keV)); + + ExcitEnergies.push_back(6856.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.3*keV)); + + ExcitEnergies.push_back(6858.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19.0*keV)); + + ExcitEnergies.push_back(7005.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(7076.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(7171.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14.0*keV)); + + ExcitEnergies.push_back(7311.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(33.0*keV)); + + ExcitEnergies.push_back(7355.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19.0*keV)); + + ExcitEnergies.push_back(7410.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(7489.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(57.0*keV)); + + ExcitEnergies.push_back(7503.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(85.0*keV)); + + ExcitEnergies.push_back(7670.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(7800.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(8150.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(10228.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(10641.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(10807.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(330.0*keV)); + +} + + +G4F20GEMProbability::G4F20GEMProbability(const G4F20GEMProbability &right) +{ + G4Exception("G4F20GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4F20GEMProbability & G4F20GEMProbability:: +operator=(const G4F20GEMProbability &right) +{ + G4Exception("G4F20GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4F20GEMProbability::operator==(const G4F20GEMProbability &right) const +{ + return false; +} + +G4bool G4F20GEMProbability::operator!=(const G4F20GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc new file mode 100644 index 0000000000..5fac39a997 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.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: G4F21GEMProbability.cc,v 1.1 2002/06/06 18:00:53 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4F21GEMProbability.hh" + +G4F21GEMProbability::G4F21GEMProbability() : + G4GEMProbability(21,9,5.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(279.92*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(6.1*nanosecond); + + ExcitEnergies.push_back(1100.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(305.0e-3*picosecond); + + ExcitEnergies.push_back(3449.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.7*picosecond); + + ExcitEnergies.push_back(3508.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.7*picosecond); + +} + + +G4F21GEMProbability::G4F21GEMProbability(const G4F21GEMProbability &right) +{ + G4Exception("G4F21GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4F21GEMProbability & G4F21GEMProbability:: +operator=(const G4F21GEMProbability &right) +{ + G4Exception("G4F21GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4F21GEMProbability::operator==(const G4F21GEMProbability &right) const +{ + return false; +} + +G4bool G4F21GEMProbability::operator!=(const G4F21GEMProbability &right) const +{ + return true; +} + + + 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 4c12591163..6cb764bed8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FermiBreakUp.cc,v 1.6 2001/08/01 17:05:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FermiBreakUp.cc,v 1.7 2002/01/15 12:30:31 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -98,7 +98,12 @@ G4FragmentVector * G4FermiBreakUp::BreakItUp(const G4Fragment &theNucleus) // Get the fragments corresponding to chosen configuration. G4FragmentVector * theResult = theConfiguration.GetFragments(theNucleus); - +#ifdef pctest + for (G4FragmentVector::iterator i = theResult->begin(); i != theResult->end(); i++) + { + (*i)->SetCreatorModel("G4FermiBreakUp"); + } +#endif return theResult; } 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 96e2095f42..553d735c11 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FermiConfiguration.cc,v 1.8 2001/10/05 16:13:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FermiConfiguration.cc,v 1.9 2002/06/06 17:56:29 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -501,19 +501,20 @@ G4FragmentVector * G4FermiConfiguration::GetFragments(const G4Fragment & theNucl G4FragmentVector * fragment = theListOfFragments[Index[i]-1]->GetFragment(FourMomentum); - do { - theResult->push_back(*(fragment->end()-1)); - fragment->pop_back(); - } while (!fragment->empty()); - + for (G4FragmentVector::reverse_iterator ri = fragment->rbegin(); + ri != fragment->rend(); ++ri) + { + theResult->push_back(*ri); + } delete fragment; } - // MomentumComponents->clearAndDestroy(); - while (!MomentumComponents->empty()) { - delete MomentumComponents->back(); - MomentumComponents->pop_back(); + if (!MomentumComponents->empty()) + { + G4std::for_each(MomentumComponents->begin(),MomentumComponents->end(), + DeleteFragment()); } + delete MomentumComponents; return theResult; 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 7192e94c0e..3cefefb916 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc @@ -22,7 +22,7 @@ // // // $Id: G4FermiConfigurationList.cc,v 1.7 2001/08/01 17:05:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 1600708bb9..3b70c68275 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4FissionBarrier.cc,v 1.6 2001/08/01 17:05:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b7fed82757..936e9c9d11 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4FissionLevelDensityParameter.cc,v 1.6 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 93258bccfa..97e1af1996 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionParameters.cc,v 1.7 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FissionParameters.cc,v 1.8 2002/06/06 17:56:44 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -57,8 +57,7 @@ G4FissionParameters::G4FissionParameters(const G4int A, const G4int Z, const G4d G4double FsymA1A2 = exp(-((As-(A1+A2)/2.0)*(As-(A1+A2)/2.0))/(2.0*SigmaS*SigmaS)); - G4double wa; - G4double w1,w2; + G4double wa = 0.0; w = 0.0; if (Z >= 90) { // Z >= 90 if (U <= 16.25) wa = exp(0.5385*U/MeV-9.9564); // U <= 16.25 MeV @@ -74,8 +73,8 @@ G4FissionParameters::G4FissionParameters(const G4int A, const G4int Z, const G4d } if (w == 0.0) { - w1 = G4std::max(1.03*wa - FasymAsym, 0.0001); - w2 = G4std::max(1.0 - FsymA1A2*wa, 0.0001); + G4double w1 = G4std::max(1.03*wa - FasymAsym, 0.0001); + G4double w2 = G4std::max(1.0 - FsymA1A2*wa, 0.0001); w = w1/w2; 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 83973bf661..a0e7d76765 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionProbability.cc,v 1.6 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FissionProbability.cc,v 1.7 2001/11/08 10:19:31 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -68,8 +68,8 @@ G4double G4FissionProbability::EmissionProbability(const G4Fragment & fragment, G4double Z = fragment.GetZ(); G4double U = fragment.GetExcitationEnergy(); - G4double Ucompound = U - G4PairingCorrection::GetPairingCorrection(G4int(A),G4int(Z)); - G4double Ufission = U - G4PairingCorrection::GetFissionPairingCorrection(G4int(A),G4int(Z)); + G4double Ucompound = U - G4PairingCorrection::GetInstance()->GetPairingCorrection(G4int(A),G4int(Z)); + G4double Ufission = U - G4PairingCorrection::GetInstance()->GetFissionPairingCorrection(G4int(A),G4int(Z)); G4double SystemEntropy = 2.0*sqrt(theEvapLDP.LevelDensityParameter(A,Z,Ucompound)*Ucompound); diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc new file mode 100644 index 0000000000..f0dd554b68 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc @@ -0,0 +1,313 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4GEMChannel.cc,v 1.2 2002/06/18 16:38:47 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Oct 1998) +// + +#include "G4GEMChannel.hh" +#include "G4PairingCorrection.hh" + + +G4GEMChannel::G4GEMChannel(const G4int theA, const G4int theZ, + G4GEMProbability * aEmissionStrategy, + G4VCoulombBarrier * aCoulombBarrier): + A(theA), + Z(theZ), + theEvaporationProbabilityPtr(aEmissionStrategy), + theCoulombBarrierPtr(aCoulombBarrier), + EmissionProbability(0.0), + MaximalKineticEnergy(-1000.0) +{ + theLevelDensityPtr = new G4EvaporationLevelDensityParameter; + MyOwnLevelDensity = true; +} + +G4GEMChannel::G4GEMChannel(const G4int theA, const G4int theZ, const G4String & aName, + G4GEMProbability * aEmissionStrategy, + G4VCoulombBarrier * aCoulombBarrier) : + G4VEvaporationChannel(aName), + A(theA), + Z(theZ), + theEvaporationProbabilityPtr(aEmissionStrategy), + theCoulombBarrierPtr(aCoulombBarrier), + EmissionProbability(0.0), + MaximalKineticEnergy(-1000.0) +{ + theLevelDensityPtr = new G4EvaporationLevelDensityParameter; + MyOwnLevelDensity = true; +} + +G4GEMChannel::G4GEMChannel(const G4int theA, const G4int theZ, const G4String * aName, + G4GEMProbability * aEmissionStrategy, + G4VCoulombBarrier * aCoulombBarrier) : + G4VEvaporationChannel(aName), + A(theA), + Z(theZ), + theEvaporationProbabilityPtr(aEmissionStrategy), + theCoulombBarrierPtr(aCoulombBarrier), + EmissionProbability(0.0), + MaximalKineticEnergy(-1000.0) +{ + theLevelDensityPtr = new G4EvaporationLevelDensityParameter; + MyOwnLevelDensity = true; +} + + +G4GEMChannel::~G4GEMChannel() +{ + if (MyOwnLevelDensity) delete theLevelDensityPtr; +} + + + + +G4GEMChannel::G4GEMChannel(const G4GEMChannel & right) +{ + G4Exception("G4GEMChannel::copy_costructor meant to not be accessable"); +} + +const G4GEMChannel & G4GEMChannel::operator=(const G4GEMChannel & right) +{ + G4Exception("G4GEMChannel::operator= meant to not be accessable"); + return *this; +} + +G4bool G4GEMChannel::operator==(const G4GEMChannel & right) const +{ + return (this == (G4GEMChannel *) &right); + // return false; +} + +G4bool G4GEMChannel::operator!=(const G4GEMChannel & right) const +{ + return (this != (G4GEMChannel *) &right); + // return true; +} + + + +void G4GEMChannel::Initialize(const G4Fragment & fragment) +{ + + G4int anA = G4int(fragment.GetA()); + G4int aZ = G4int(fragment.GetZ()); + AResidual = anA - A; + ZResidual = aZ - Z; + + // Effective excitation energy + G4double ExEnergy = fragment.GetExcitationEnergy() - + G4PairingCorrection::GetInstance()->GetPairingCorrection(anA,aZ); + + // We only take into account channels which are physically allowed + if (AResidual <= 0 || ZResidual <= 0 || AResidual < ZResidual || + (AResidual == ZResidual && AResidual > 1) || ExEnergy <= 0.0) { + CoulombBarrier = 0.0; + MaximalKineticEnergy = -1000.0*MeV; + EmissionProbability = 0.0; + } else { + // Coulomb Barrier calculation + CoulombBarrier = theCoulombBarrierPtr->GetCoulombBarrier(AResidual,ZResidual,ExEnergy); + + // Maximal Kinetic Energy + MaximalKineticEnergy = CalcMaximalKineticEnergy(G4ParticleTable::GetParticleTable()-> + GetIonTable()->GetNucleusMass(aZ,anA)+ExEnergy); + + // Emission probability + if (MaximalKineticEnergy <= 0.0) EmissionProbability = 0.0; + else { + // Total emission probability for this channel + EmissionProbability = theEvaporationProbabilityPtr->EmissionProbability(fragment,MaximalKineticEnergy); + } + } + + return; +} + + +G4FragmentVector * G4GEMChannel::BreakUp(const G4Fragment & theNucleus) +{ + + G4double EvaporatedKineticEnergy = CalcKineticEnergy(theNucleus); + G4double EvaporatedMass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(Z,A); + G4double EvaporatedEnergy = EvaporatedKineticEnergy + EvaporatedMass; + + G4ThreeVector momentum(IsotropicVector(sqrt(EvaporatedKineticEnergy* + (EvaporatedKineticEnergy+2.0*EvaporatedMass)))); + + momentum.rotateUz(theNucleus.GetMomentum().vect().unit()); + + G4LorentzVector EvaporatedMomentum(momentum,EvaporatedEnergy); + EvaporatedMomentum.boost(theNucleus.GetMomentum().boostVector()); + + G4Fragment * EvaporatedFragment = new G4Fragment(A,Z,EvaporatedMomentum); +#ifdef pctest + EvaporatedFragment->SetCreatorModel(G4String("G4Evaporation")); +#endif + // ** And now the residual nucleus ** + G4double theExEnergy = theNucleus.GetExcitationEnergy(); + G4double theMass = G4ParticleTable::GetParticleTable()-> + GetIonTable()->GetNucleusMass(theNucleus.GetZ(),theNucleus.GetA()); + G4double ResidualEnergy = theMass + (theExEnergy - EvaporatedKineticEnergy) - EvaporatedMass; + + G4LorentzVector ResidualMomentum(-momentum,ResidualEnergy); + ResidualMomentum.boost(theNucleus.GetMomentum().boostVector()); + + G4Fragment * ResidualFragment = new G4Fragment( AResidual, ZResidual, ResidualMomentum ); + +#ifdef pctest + ResidualFragment->SetCreatorModel(G4String("ResidualNucleus")); +#endif + + + G4FragmentVector * theResult = new G4FragmentVector; + +#ifdef debug + G4double Efinal = ResidualMomentum.e() + EvaporatedMomentum.e(); + G4ThreeVector Pfinal = ResidualMomentum.vect() + EvaporatedMomentum.vect(); + if (abs(Efinal-theNucleus.GetMomentum().e()) > 10.0*eV) { + G4cout << "@@@@@@@@@@@@@@@@@@@@@ G4GEMChanel: ENERGY @@@@@@@@@@@@@@@@" << G4endl; + G4cout << "Initial : " << theNucleus.GetMomentum().e()/MeV << " MeV Final :" + < 10.0*eV || + abs(Pfinal.y()-theNucleus.GetMomentum().y()) > 10.0*eV || + abs(Pfinal.z()-theNucleus.GetMomentum().z()) > 10.0*eV ) { + G4cout << "@@@@@@@@@@@@@@@@@@@@@ G4GEMChanel: MOMENTUM @@@@@@@@@@@@@@@@" << G4endl; + G4cout << "Initial : " << theNucleus.GetMomentum().vect() << " MeV Final :" + <push_back(EvaporatedFragment); + theResult->push_back(ResidualFragment); + return theResult; +} + + + +G4double G4GEMChannel::CalcMaximalKineticEnergy(const G4double NucleusTotalE) + // Calculate maximal kinetic energy that can be carried by fragment. +{ + G4double ResidualMass = G4ParticleTable::GetParticleTable()-> + GetIonTable()->GetNucleusMass( ZResidual, AResidual ); + G4double EvaporatedMass = G4ParticleTable::GetParticleTable()-> + GetIonTable()->GetNucleusMass( Z, A ); + + G4double T = (NucleusTotalE*NucleusTotalE + EvaporatedMass*EvaporatedMass - ResidualMass*ResidualMass)/ + (2.0*NucleusTotalE) - + EvaporatedMass - CoulombBarrier; + + return T; +} + + + + +G4double G4GEMChannel::CalcKineticEnergy(const G4Fragment & fragment) + // Samples fragment kinetic energy. +{ + G4double U = fragment.GetExcitationEnergy(); + + G4double NuclearMass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetNucleusMass(Z,A); + + G4double a = theLevelDensityPtr->LevelDensityParameter(fragment.GetA(),fragment.GetZ(),U); + G4double delta0 = G4PairingCorrection::GetInstance()->GetPairingCorrection(fragment.GetA(),fragment.GetZ()); + + G4double Alpha = theEvaporationProbabilityPtr->CalcAlphaParam(fragment); + G4double Beta = theEvaporationProbabilityPtr->CalcBetaParam(fragment); + G4double Normalization = theEvaporationProbabilityPtr->GetNormalization(); + + G4double Ux = (2.5 + 150.0/AResidual)*MeV; + G4double Ex = Ux + delta0; + G4double T = 1.0/(sqrt(a/Ux) - 1.5/Ux); + G4double E0 = Ex - T*(log(T*MeV) - log(a/MeV)/4.0 - 1.25*log(Ux*MeV) + 2.0*sqrt(a*Ux)); + + G4double InitialLevelDensity; + if ( U < Ex ) { + InitialLevelDensity = (pi/12.0)*exp((U-E0)/T)/T; + } else { + InitialLevelDensity = (pi/12.0)*exp(2*sqrt(a*(U-delta0)))/pow(a*pow(U-delta0,5.0),1.0/4.0); + } + + const G4double Spin = theEvaporationProbabilityPtr->GetSpin(); + G4double g = (2.0*Spin+1.0)*NuclearMass/(pi2* hbar_Planck*hbar_Planck); + G4double RN = 0.0; + if (A > 4) + { + G4double R1 = pow(fragment.GetA()-A,1.0/3.0); + G4double R2 = pow(A,1.0/3.0); + RN = 1.12*(R1 + R2) - 0.86*((R1+R2)/(R1*R2)); + RN *= fermi; + } + else + { + RN = 1.5*fermi; + } + G4double GeometricalXS = pi*RN*RN*pow(fragment.GetA()-A,2./3.); + + + G4double ConstantFactor = g*GeometricalXS*Alpha/InitialLevelDensity; + ConstantFactor *= pi/12.0; + G4double theEnergy = MaximalKineticEnergy + CoulombBarrier; + G4double KineticEnergy; + G4double Probability; + do { + KineticEnergy = CoulombBarrier + G4UniformRand()*MaximalKineticEnergy; + Probability = ConstantFactor*(KineticEnergy + Beta); + if ( theEnergy-KineticEnergy < Ex) { + Probability *= exp((theEnergy-KineticEnergy-E0)/T)/T; + } else { + Probability *= exp(2*sqrt(a*(theEnergy-KineticEnergy-delta0)))/ + pow(a*pow(theEnergy-KineticEnergy-delta0,5.0),1.0/4.0); + } + Probability /= Normalization; + } while (G4UniformRand() > Probability); + + + // --------------------------------------------------------------------------------------------------- + + return KineticEnergy; +} + + +G4ThreeVector G4GEMChannel::IsotropicVector(const G4double Magnitude) + // Samples a isotropic random vectorwith a magnitud given by Magnitude. + // By default Magnitude = 1.0 +{ + G4double CosTheta = 1.0 - 2.0*G4UniformRand(); + G4double SinTheta = sqrt(1.0 - CosTheta*CosTheta); + G4double Phi = twopi*G4UniformRand(); + G4ThreeVector Vector(Magnitude*cos(Phi)*SinTheta, + Magnitude*sin(Phi)*SinTheta, + Magnitude*CosTheta); + return Vector; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc new file mode 100644 index 0000000000..f2695ab814 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) + + +#include "G4GEMCoulombBarrierHE.hh" +#include "g4std/strstream" + +G4GEMCoulombBarrierHE::G4GEMCoulombBarrierHE(const G4GEMCoulombBarrierHE & right) +{ + G4Exception("G4GEMCoulombBarrierHE::copy_constructor meant to not be accessable."); +} + + +const G4GEMCoulombBarrierHE & G4GEMCoulombBarrierHE::operator=(const G4GEMCoulombBarrierHE & right) +{ + G4Exception("G4GEMCoulombBarrierHE::operator= meant to not be accessable."); + return *this; +} + +G4bool G4GEMCoulombBarrierHE::operator==(const G4GEMCoulombBarrierHE & right) const +{ + return false; +} + +G4bool G4GEMCoulombBarrierHE::operator!=(const G4GEMCoulombBarrierHE & right) const +{ + return true; +} + + + +G4double G4GEMCoulombBarrierHE::GetCoulombBarrier(const G4int ARes, const G4int ZRes, const G4double U) const + // Calculation of Coulomb potential energy (barrier) for outgoing fragment +{ + G4double Barrier = 0.0; + if (ZRes > ARes || ARes < 1) { + char errMessage[1024]; + G4std::ostrstream errOs(errMessage,1024); + errOs << "G4GEMCoulombBarrierHE::GetCoulombBarrier: "; + errOs << "Wrong values for "; + errOs << "residual nucleus A = " << ARes << " "; + errOs << "and residual nucleus Z = " << ZRes << G4endl; + G4Exception(errMessage); + } + if (GetZ() == 0) { + Barrier = 0.0; // If there is no charge there is neither barrier + } else { + G4double CompoundRadius = CalcCompoundRadius(G4double(ARes)); + Barrier = ( elm_coupling *G4double(GetZ()) * G4double(ZRes) )/ + (CompoundRadius+3.75*fermi); + + // Barrier penetration coeficient +// G4double K = BarrierPenetrationFactor(ZRes); + +// Barrier *= K; + + Barrier /= (1.0 + sqrt(U/(2.0*G4double(ARes)))); + } + return Barrier; +} + + +G4double G4GEMCoulombBarrierHE::CalcCompoundRadius(const G4double ARes) const +{ + G4double AresOneThird = pow(ARes,1.0/3.0); + G4double AejectOneThird = pow(this->GetA(),1.0/3.0); + + G4double Result = 1.12*(AresOneThird + AejectOneThird) - + 0.86*(AresOneThird+AejectOneThird)/(AresOneThird*AejectOneThird); + + return Result*fermi; +} + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMProbability.cc new file mode 100644 index 0000000000..529ff66ed0 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMProbability.cc @@ -0,0 +1,207 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept 2001) +// + + +#include "G4GEMProbability.hh" +#include "G4PairingCorrection.hh" + + + +G4GEMProbability::G4GEMProbability(const G4GEMProbability &right) +{ + G4Exception("G4GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4GEMProbability & G4GEMProbability:: +operator=(const G4GEMProbability &right) +{ + G4Exception("G4GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4GEMProbability::operator==(const G4GEMProbability &right) const +{ + return false; +} + +G4bool G4GEMProbability::operator!=(const G4GEMProbability &right) const +{ + return true; +} + +G4double G4GEMProbability::EmissionProbability(const G4Fragment & fragment, + const G4double MaximalKineticEnergy) +{ + G4double EmissionProbability = 0.0; + + if (MaximalKineticEnergy > 0.0 && fragment.GetExcitationEnergy() > 0.0) { + G4double CoulombBarrier = GetCoulombBarrier(fragment); + + EmissionProbability = CalcProbability(fragment,MaximalKineticEnergy,CoulombBarrier); + Normalization = EmissionProbability; + // Next there is a loop over excited states for this channel summing probabilities + if (ExcitationEnergies && ExcitationSpins && ExcitationLifetimes) { + G4double SavedSpin = Spin; + for (unsigned int i = 0; i < ExcitationEnergies->size(); i++) { + Spin = ExcitationSpins->operator[](i); + // substract excitation energies + G4double Tmax = MaximalKineticEnergy - ExcitationEnergies->operator[](i); + if (Tmax > 0.0) { + G4double width = CalcProbability(fragment,Tmax,CoulombBarrier); + // update probability + if (hbar_Planck*log(2.0)/width < ExcitationLifetimes->operator[](i)) { + EmissionProbability += width; + } + } + } + // Restore Spin + Spin = SavedSpin; + } + } + return EmissionProbability; +} + +G4double G4GEMProbability::CalcProbability(const G4Fragment & fragment, + const G4double MaximalKineticEnergy, + const G4double V) + // Calculate integrated probability (width) for rvaporation channel +{ + G4double ResidualA = G4double(fragment.GetA() - theA); + // G4double ResidualZ = G4double(fragment.GetZ() - theZ); + G4double U = fragment.GetExcitationEnergy(); + + G4double NuclearMass = G4ParticleTable::GetParticleTable()-> + GetIonTable()->GetNucleusMass(theZ,theA); + + G4double a = theEvapLDPptr->LevelDensityParameter(fragment.GetA(),fragment.GetZ(),U); + G4double delta0 = G4PairingCorrection::GetInstance()->GetPairingCorrection(fragment.GetA(),fragment.GetZ()); + + G4double Alpha = CalcAlphaParam(fragment); + G4double Beta = CalcBetaParam(fragment); + + + G4double Ux = (2.5 + 150.0/ResidualA)*MeV; + G4double Ex = Ux + delta0; + G4double T = 1.0/(sqrt(a/Ux) - 1.5/Ux); + G4double E0 = Ex - T*(log(T*MeV) - log(a/MeV)/4.0 - 1.25*log(Ux*MeV) + 2.0*sqrt(a*Ux)); + + G4double Width; + G4double InitialLevelDensity; + if ( MaximalKineticEnergy < Ex ) { + G4double t = MaximalKineticEnergy/T; + Width = (I1(t,t) + (Beta+V)*I0(t))/exp(E0/T); + InitialLevelDensity = (pi/12.0)*exp((U-E0)/T)/T; + } else { + G4double t = MaximalKineticEnergy/T; + G4double tx = Ex/T; + G4double s = 2.0*sqrt(a*(MaximalKineticEnergy-delta0)); + G4double sx = 2.0*sqrt(a*(Ex-delta0)); + Width = I1(t,tx)/exp(E0/T) + I3(s,sx)*exp(s)/(sqrt(2.0)*a); + // For charged particles (Beta+V) = 0 beacuse Beta = -V + if (theZ == 0) { + Width += (Beta+V)*(I0(tx)/exp(E0/T) + 2.0*sqrt(2.0)*I2(s,sx)*exp(s)); + } + InitialLevelDensity = (pi/12.0)*exp(2*sqrt(a*(U-delta0)))/pow(a*pow(U-delta0,5.0),1.0/4.0); + } + + + G4double g = (2.0*Spin+1.0)*NuclearMass/(pi2* hbar_Planck*hbar_Planck); + + G4double RN = 0.0; + if (theA > 4) + { + G4double R1 = pow(ResidualA,1.0/3.0); + G4double R2 = pow(theA,1.0/3.0); + RN = 1.12*(R1 + R2) - 0.86*((R1+R2)/(R1*R2)); + RN *= fermi; + } + else + { + RN = 1.5*fermi; + } + G4double GeometricalXS = pi*RN*RN*pow(ResidualA,2./3.); + + + Width *= pi*g*GeometricalXS*Alpha/(12.0*InitialLevelDensity); + return Width; +} + + + + +G4double G4GEMProbability::I0(const G4double t) +{ + G4double result = (exp(t) - 1.0); + return result; +} + +G4double G4GEMProbability::I1(const G4double t, const G4double tx) +{ + G4double result = t - tx + 1.0; + result *= exp(tx); + result -= (t + 1.0); + return result; +} + + +G4double G4GEMProbability::I2(const G4double s, const G4double sx) +{ + G4double S = 1.0/sqrt(s); + G4double Sx = 1.0/sqrt(sx); + + G4double p1 = S*S*S*( 1.0 + S*S*( 1.5 + 3.75*S*S) ); + G4double p2 = Sx*Sx*Sx*( 1.0 + Sx*Sx*( 1.5 + 3.75*Sx*Sx) )*exp(sx-s); + + return p1-p2; +} + +G4double G4GEMProbability::I3(const G4double s, const G4double sx) +{ + G4double s2 = s*s; + G4double sx2 = sx*sx; + G4double S = 1.0/sqrt(s); + G4double S2 = S*S; + G4double Sx = 1.0/sqrt(sx); + G4double Sx2 = Sx*Sx; + + G4double p1 = S *(2.0 + S2 *( 4.0 + S2 *( 13.5 + S2 *( 60.0 + S2 * 325.125 )))); + G4double p2 = Sx*Sx2 *( + (s2-sx2) + Sx2 *( + (1.5*s2+0.5*sx2) + Sx2 *( + (3.75*s2+0.25*sx2) + Sx2 *( + (12.875*s2+0.625*sx2) + Sx2 *( + (59.0625*s2+0.9375*sx2) + Sx2 *(324.8*s2+3.28*sx2)))))); + + p2 *= exp(sx-s); + + return p1-p2; +} 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 e2bc37003f..fd839b92ec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3CoulombBarrier.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b5204516a1..bba03f6bb5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationChannel.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 cda6dce994..a4a128a6ff 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationProbability.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..2663fa1f7c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.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: G4He3GEMChannel.cc,v 1.1 2002/06/06 18:01:31 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov. 1999) +// + +#include "G4He3GEMChannel.hh" + + +const G4He3GEMChannel & G4He3GEMChannel::operator=(const G4He3GEMChannel & right) +{ + G4Exception("G4He3GEMChannel::operator= meant to not be accessable"); + return *this; +} + +G4He3GEMChannel::G4He3GEMChannel(const G4He3GEMChannel & right) +{ + G4Exception("G4He3GEMChannel::CopyConstructor meant to not be accessable"); +} + +G4bool G4He3GEMChannel::operator==(const G4He3GEMChannel & right) const +{ + return (this == (G4He3GEMChannel *) &right); + // return false; +} + +G4bool G4He3GEMChannel::operator!=(const G4He3GEMChannel & right) const +{ + return (this != (G4He3GEMChannel *) &right); + // return true; +} + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc new file mode 100644 index 0000000000..f6bfedb59c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.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: G4He3GEMProbability.cc,v 1.1 2002/06/06 18:01:32 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4He3GEMProbability.hh" + +G4He3GEMProbability::G4He3GEMProbability() : + G4GEMProbability(3,2,1.0/2.0) // A,Z,Gamma +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4He3GEMProbability::G4He3GEMProbability(const G4He3GEMProbability &right) +{ + G4Exception("G4He3GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4He3GEMProbability & G4He3GEMProbability:: +operator=(const G4He3GEMProbability &right) +{ + G4Exception("G4He3GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4He3GEMProbability::operator==(const G4He3GEMProbability &right) const +{ + return false; +} + +G4bool G4He3GEMProbability::operator!=(const G4He3GEMProbability &right) const +{ + return true; +} + + +G4double G4He3GEMProbability::CCoeficient(const G4double aZ) const +{ + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // G4double Zlist[5] = { 10.0, 20.0, 30.0, 50.0, 70.0}; + // G4double Calpha[5] = { 0.10, 0.10, 0.10, 0.08, 0.06}; + // C for He3 is equal to C for alpha times 4/3 + G4double C = 0.0; + + + if (aZ <= 30) { + C = 0.10; + } else if (aZ <= 50) { + C = 0.1 + -((aZ-50.)/20.)*0.02; + } else if (aZ < 70) { + C = 0.08 + -((aZ-70.)/20.)*0.02; + } else { + C = 0.06; + } + return C*(4.0/3.0); +} + 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 973c7e209b..c07545e6db 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4He5FermiFragment.cc,v 1.6 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..8bcea0c336 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.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: G4He6GEMProbability.cc,v 1.1 2002/06/06 18:01:34 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4He6GEMProbability.hh" + +G4He6GEMProbability::G4He6GEMProbability() : + G4GEMProbability(6,2,0.0) // A,Z,Spin +{ + + + ExcitEnergies.push_back(1797.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(113.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4He6GEMProbability::G4He6GEMProbability(const G4He6GEMProbability &right) +{ + G4Exception("G4He6GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4He6GEMProbability & G4He6GEMProbability:: +operator=(const G4He6GEMProbability &right) +{ + G4Exception("G4He6GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4He6GEMProbability::operator==(const G4He6GEMProbability &right) const +{ + return false; +} + +G4bool G4He6GEMProbability::operator!=(const G4He6GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc new file mode 100644 index 0000000000..4cfa84f6cd --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.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: G4He8GEMProbability.cc,v 1.1 2002/06/06 18:01:35 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4He8GEMProbability.hh" + +G4He8GEMProbability::G4He8GEMProbability() : + G4GEMProbability(8,2,0.0) // A,Z,Spin +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4He8GEMProbability::G4He8GEMProbability(const G4He8GEMProbability &right) +{ + G4Exception("G4He8GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4He8GEMProbability & G4He8GEMProbability:: +operator=(const G4He8GEMProbability &right) +{ + G4Exception("G4He8GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4He8GEMProbability::operator==(const G4He8GEMProbability &right) const +{ + return false; +} + +G4bool G4He8GEMProbability::operator!=(const G4He8GEMProbability &right) const +{ + return true; +} + + + 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 e4489600c5..9ef13b3ddf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li5FermiFragment.cc,v 1.6 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..d47fea4b3d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc @@ -0,0 +1,102 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Li6GEMProbability.cc,v 1.1 2002/06/06 18:02:05 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Li6GEMProbability.hh" + +G4Li6GEMProbability::G4Li6GEMProbability() : + G4GEMProbability(6,3,1.0) // A,Z,Spin +{ + ExcitEnergies.push_back(2186.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(3562.88*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.2*eV)); + + ExcitEnergies.push_back(4310.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.7*MeV)); + + ExcitEnergies.push_back(5366.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(540.0*keV)); + + ExcitEnergies.push_back(5.65E+3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.5*MeV)); + + ExcitEnergies.push_back(15800.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(17.8*MeV)); + + ExcitEnergies.push_back(23.0E+3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(12.0*MeV)); + + ExcitEnergies.push_back(25.0E+3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*MeV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Li6GEMProbability::G4Li6GEMProbability(const G4Li6GEMProbability &right) +{ + G4Exception("G4Li6GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Li6GEMProbability & G4Li6GEMProbability:: +operator=(const G4Li6GEMProbability &right) +{ + G4Exception("G4Li6GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Li6GEMProbability::operator==(const G4Li6GEMProbability &right) const +{ + return false; +} + +G4bool G4Li6GEMProbability::operator!=(const G4Li6GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc new file mode 100644 index 0000000000..b46088e72b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.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: G4Li7GEMProbability.cc,v 1.1 2002/06/06 18:02:06 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Li7GEMProbability.hh" + +G4Li7GEMProbability::G4Li7GEMProbability() : + G4GEMProbability(7,3,3.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(477.612*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(73.0E-15*second); + + ExcitEnergies.push_back(4630.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(93.0*keV)); + + ExcitEnergies.push_back(6680.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.9*MeV)); + + ExcitEnergies.push_back(7459.7*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(89.0*keV)); + + ExcitEnergies.push_back(9.67E+3*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(98500.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1200.0*keV)); + + ExcitEnergies.push_back(11240.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(260.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Li7GEMProbability::G4Li7GEMProbability(const G4Li7GEMProbability &right) +{ + G4Exception("G4Li7GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Li7GEMProbability & G4Li7GEMProbability:: +operator=(const G4Li7GEMProbability &right) +{ + G4Exception("G4Li7GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Li7GEMProbability::operator==(const G4Li7GEMProbability &right) const +{ + return false; +} + +G4bool G4Li7GEMProbability::operator!=(const G4Li7GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc new file mode 100644 index 0000000000..7c39ce1b8b --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc @@ -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: G4Li8GEMProbability.cc,v 1.1 2002/06/06 18:02:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Li8GEMProbability.hh" + +G4Li8GEMProbability::G4Li8GEMProbability() : + G4GEMProbability(8,3,2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(980.8*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(8.0E-15*second); + + ExcitEnergies.push_back(2255.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(33.0*keV)); + + ExcitEnergies.push_back(3210.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*MeV)); + + ExcitEnergies.push_back(5400.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(650.0*keV)); + + ExcitEnergies.push_back(6.1e3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*MeV)); + + ExcitEnergies.push_back(6530.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(7.1e3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(9000.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6000.0*keV)); + + ExcitEnergies.push_back(10822.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(12.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Li8GEMProbability::G4Li8GEMProbability(const G4Li8GEMProbability &right) +{ + G4Exception("G4Li8GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Li8GEMProbability & G4Li8GEMProbability:: +operator=(const G4Li8GEMProbability &right) +{ + G4Exception("G4Li8GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Li8GEMProbability::operator==(const G4Li8GEMProbability &right) const +{ + return false; +} + +G4bool G4Li8GEMProbability::operator!=(const G4Li8GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc new file mode 100644 index 0000000000..0fcd326e27 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Li9GEMProbability.cc,v 1.1 2002/06/06 18:02:08 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Li9GEMProbability.hh" + +G4Li9GEMProbability::G4Li9GEMProbability() : + G4GEMProbability(9,3,3.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(4310.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(5380.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(6430.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4Li9GEMProbability::G4Li9GEMProbability(const G4Li9GEMProbability &right) +{ + G4Exception("G4Li9GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Li9GEMProbability & G4Li9GEMProbability:: +operator=(const G4Li9GEMProbability &right) +{ + G4Exception("G4Li9GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Li9GEMProbability::operator==(const G4Li9GEMProbability &right) const +{ + return false; +} + +G4bool G4Li9GEMProbability::operator!=(const G4Li9GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc new file mode 100644 index 0000000000..91d7e872c2 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4Mg22GEMProbability.cc,v 1.1 2002/06/06 18:02:09 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Mg22GEMProbability.hh" + +G4Mg22GEMProbability::G4Mg22GEMProbability() : + G4GEMProbability(22,12,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1246.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(2.1*picosecond); + + ExcitEnergies.push_back(3308.2*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(201.0e-3*picosecond); + + ExcitEnergies.push_back(4400.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(21.0e-3*picosecond); + + ExcitEnergies.push_back(5006.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(17.0*nanosecond); + + ExcitEnergies.push_back(5037.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(69.0*picosecond); + + ExcitEnergies.push_back(5292.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(44.0e-3*picosecond); + + ExcitEnergies.push_back(5317.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(17.0*nanosecond); + + ExcitEnergies.push_back(5464.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(69.0*picosecond); + + ExcitEnergies.push_back(5713.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + +} + + +G4Mg22GEMProbability::G4Mg22GEMProbability(const G4Mg22GEMProbability &right) +{ + G4Exception("G4Mg22GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Mg22GEMProbability & G4Mg22GEMProbability:: +operator=(const G4Mg22GEMProbability &right) +{ + G4Exception("G4Mg22GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Mg22GEMProbability::operator==(const G4Mg22GEMProbability &right) const +{ + return false; +} + +G4bool G4Mg22GEMProbability::operator!=(const G4Mg22GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc new file mode 100644 index 0000000000..e98271c4c9 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg23GEMProbability.cc,v 1.1 2002/06/06 18:02:10 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Mg23GEMProbability.hh" + +G4Mg23GEMProbability::G4Mg23GEMProbability() : + G4GEMProbability(23,12,3.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(450.70*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(1.25*picosecond); + + ExcitEnergies.push_back(2051.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(55.0e-3*picosecond); + + ExcitEnergies.push_back(2359.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(575.0e-3*picosecond); + + ExcitEnergies.push_back(2715.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(97.0e-3*picosecond); + + ExcitEnergies.push_back(2771.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(107.0e-3*picosecond); + + ExcitEnergies.push_back(2908.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(3795.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(14.0*nanosecond); + + ExcitEnergies.push_back(4356.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(14.0*nanosecond); + +} + + +G4Mg23GEMProbability::G4Mg23GEMProbability(const G4Mg23GEMProbability &right) +{ + G4Exception("G4Mg23GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Mg23GEMProbability & G4Mg23GEMProbability:: +operator=(const G4Mg23GEMProbability &right) +{ + G4Exception("G4Mg23GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Mg23GEMProbability::operator==(const G4Mg23GEMProbability &right) const +{ + return false; +} + +G4bool G4Mg23GEMProbability::operator!=(const G4Mg23GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc new file mode 100644 index 0000000000..dba971ac46 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc @@ -0,0 +1,376 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Mg24GEMProbability.cc,v 1.1 2002/06/06 18:02:11 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Mg24GEMProbability.hh" + +G4Mg24GEMProbability::G4Mg24GEMProbability() : + G4GEMProbability(24,12,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1368.59*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(1.37*picosecond); + + ExcitEnergies.push_back(4122.82*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(38.0e-3*picosecond); + + ExcitEnergies.push_back(4238.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(73.0e-3*picosecond); + + ExcitEnergies.push_back(5236.1*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(76.0e-3*picosecond); + + ExcitEnergies.push_back(6010.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(55.0e-3*picosecond); + + ExcitEnergies.push_back(6432.2*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(55.0e-3*picosecond); + + ExcitEnergies.push_back(7347.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(7553.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(270.0e-3*picosecond); + + ExcitEnergies.push_back(7616.2*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(1.2*picosecond); + + ExcitEnergies.push_back(7747.2*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(12.0e-3*picosecond); + + ExcitEnergies.push_back(7812.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(24.0e-3*picosecond); + + ExcitEnergies.push_back(8113.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(4.0e-3*picosecond); + + ExcitEnergies.push_back(8357.7*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(80.0e-3*picosecond); + + ExcitEnergies.push_back(8437.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(9.0e-3*picosecond); + + ExcitEnergies.push_back(8438.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(8.0e-3*picosecond); + + ExcitEnergies.push_back(8653.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(8863.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(9.0e-3*picosecond); + + ExcitEnergies.push_back(9002.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(7.6e-3*picosecond); + + ExcitEnergies.push_back(9283.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(3.0e-3*picosecond); + + ExcitEnergies.push_back(9298.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(9306.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(173.0e-3*picosecond); + + ExcitEnergies.push_back(9455.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(19.0e-3*picosecond); + + ExcitEnergies.push_back(9515.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(9528.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(9827.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(277.0e-6*picosecond); + + ExcitEnergies.push_back(9966.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(52.0e-6*picosecond); + + ExcitEnergies.push_back(10026.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(62.0e-3*picosecond); + + ExcitEnergies.push_back(10059.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(3.0e-3*picosecond); + + ExcitEnergies.push_back(10357.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(1.5e-3*picosecond); + + ExcitEnergies.push_back(10578.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(9.0e-3*picosecond); + + ExcitEnergies.push_back(10660.3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(3.0e-3*picosecond); + + ExcitEnergies.push_back(10680.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*eV)); + + ExcitEnergies.push_back(10711.7*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(23.0e-6*picosecond); + + ExcitEnergies.push_back(10922.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.4*eV)); + + ExcitEnergies.push_back(11018.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.5*eV)); + + ExcitEnergies.push_back(11217.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.1*eV)); + + ExcitEnergies.push_back(11389.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*eV)); + + ExcitEnergies.push_back(11455.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.3*eV)); + + ExcitEnergies.push_back(11456.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*eV)); + + ExcitEnergies.push_back(11520.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*eV)); + + ExcitEnergies.push_back(11596.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(15.0e-3*picosecond); + + ExcitEnergies.push_back(11694.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.3*eV)); + + ExcitEnergies.push_back(11727.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10*keV)); + + ExcitEnergies.push_back(11861.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(11963.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.8*keV)); + + ExcitEnergies.push_back(11985.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0*eV)); + + ExcitEnergies.push_back(12014.4*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(700.0*eV)); + + ExcitEnergies.push_back(12048.6*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0*eV)); + + ExcitEnergies.push_back(12180.6*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*eV)); + + ExcitEnergies.push_back(12256.7*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(640.0*eV)); + + ExcitEnergies.push_back(12257.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*eV)); + + ExcitEnergies.push_back(12338.3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*eV)); + + ExcitEnergies.push_back(12383.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.0*keV)); + + ExcitEnergies.push_back(12397.9*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*eV)); + + ExcitEnergies.push_back(12402.5*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*eV)); + + ExcitEnergies.push_back(12445.0*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.0*keV)); + + ExcitEnergies.push_back(12465.0*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(12525.7*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.5*keV)); + + ExcitEnergies.push_back(12575.0*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(12636.0*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*eV)); + + ExcitEnergies.push_back(12658.0*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*eV)); + + ExcitEnergies.push_back(12667.4*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(12735.5*keV); + ExcitSpins.push_back(.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(12772.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(12805.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(12815.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.50*keV)); + + ExcitEnergies.push_back(12844.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*eV)); + + ExcitEnergies.push_back(12849.5*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*eV)); + + ExcitEnergies.push_back(12892.2*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*eV)); + + ExcitEnergies.push_back(12952.7*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.9*keV)); + + ExcitEnergies.push_back(12961.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.7*keV)); + + ExcitEnergies.push_back(13029.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800.0*eV)); + + ExcitEnergies.push_back(13047.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*eV)); + + ExcitEnergies.push_back(13086.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(13135.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(13181.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.5*keV)); + + ExcitEnergies.push_back(15436.4*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + +} + + +G4Mg24GEMProbability::G4Mg24GEMProbability(const G4Mg24GEMProbability &right) +{ + G4Exception("G4Mg24GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Mg24GEMProbability & G4Mg24GEMProbability:: +operator=(const G4Mg24GEMProbability &right) +{ + G4Exception("G4Mg24GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Mg24GEMProbability::operator==(const G4Mg24GEMProbability &right) const +{ + return false; +} + +G4bool G4Mg24GEMProbability::operator!=(const G4Mg24GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc new file mode 100644 index 0000000000..28b4ae36f8 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: G4Mg25GEMProbability.cc,v 1.1 2002/06/06 18:02:12 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Mg25GEMProbability.hh" + +G4Mg25GEMProbability::G4Mg25GEMProbability() : + G4GEMProbability(25,12,5.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(585.09*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(3.38*nanosecond); + + ExcitEnergies.push_back(974.79*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(11.4*picosecond); + + ExcitEnergies.push_back(1611.8*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(14.6e-3*picosecond); + + ExcitEnergies.push_back(1964.7*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.69*picosecond); + + ExcitEnergies.push_back(2563.8*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(2737.7*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(277.0e-3*picosecond); + + ExcitEnergies.push_back(2801.1*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + ExcitEnergies.push_back(3405.2*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(7.1e-3*picosecond); + + ExcitEnergies.push_back(3413.7*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(3907.8*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(3970.7*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(19.0e-3*picosecond); + + ExcitEnergies.push_back(4059.6*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(53.0e-3*picosecond); + + ExcitEnergies.push_back(4277.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(4359.4*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(4711.4*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(26.0e-3*picosecond); + + ExcitEnergies.push_back(4722.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(5012.2*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(5251.3*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(5461.7*keV); + ExcitSpins.push_back(13.0/2.0); + ExcitLifetimes.push_back(1.7*picosecond); + + ExcitEnergies.push_back(5474.8*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(5520.9*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(5533.6*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(5746.6*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.58e-3*picosecond); + + ExcitEnergies.push_back(5793.2*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(45.0e-3*picosecond); + + ExcitEnergies.push_back(5859.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(5971.6*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(5978.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(6041.2*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(6082.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(6775.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(7088.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(7282.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(7224.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(6.9e-3*picosecond); + + ExcitEnergies.push_back(7411.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.6*keV)); + + ExcitEnergies.push_back(7587.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(78.0*keV)); + + ExcitEnergies.push_back(7744.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(31.0*keV)); + + ExcitEnergies.push_back(7787.9*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14.0*eV)); + + ExcitEnergies.push_back(7809.8*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.53*keV)); + + ExcitEnergies.push_back(7864.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14.0*eV)); + + ExcitEnergies.push_back(7947.7*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.9*keV)); + + ExcitEnergies.push_back(7964.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(21.0*keV)); + + ExcitEnergies.push_back(8141.8*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(13.0*keV)); + + ExcitEnergies.push_back(8312.3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(8325.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(8363.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0*keV)); + + ExcitEnergies.push_back(8559.8*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.8*keV)); + + ExcitEnergies.push_back(8570.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.2*keV)); + + ExcitEnergies.push_back(8580.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.4*keV)); + + ExcitEnergies.push_back(8835.5*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.1*keV)); + + ExcitEnergies.push_back(8870.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.0*keV)); + + ExcitEnergies.push_back(8895.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(8972.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(9.6*keV)); +} + + +G4Mg25GEMProbability::G4Mg25GEMProbability(const G4Mg25GEMProbability &right) +{ + G4Exception("G4Mg25GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Mg25GEMProbability & G4Mg25GEMProbability:: +operator=(const G4Mg25GEMProbability &right) +{ + G4Exception("G4Mg25GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Mg25GEMProbability::operator==(const G4Mg25GEMProbability &right) const +{ + return false; +} + +G4bool G4Mg25GEMProbability::operator!=(const G4Mg25GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc new file mode 100644 index 0000000000..8a5aa575ce --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.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: G4Mg26GEMProbability.cc,v 1.1 2002/06/06 18:02:13 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Mg26GEMProbability.hh" + +G4Mg26GEMProbability::G4Mg26GEMProbability() : + G4GEMProbability(26,12,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1808.68*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(485.0e-3*picosecond); + + ExcitEnergies.push_back(2938.36*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(139.0e-3*picosecond); + + ExcitEnergies.push_back(3588.3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(6.6e-6*picosecond); + + ExcitEnergies.push_back(3940.5*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(6.2e-5*picosecond); + + ExcitEnergies.push_back(4318.4*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(201.0e-3*picosecond); + + ExcitEnergies.push_back(4331.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(55.0e-3*picosecond); + + ExcitEnergies.push_back(4349.8*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(104.0e-3*picosecond); + + ExcitEnergies.push_back(4834.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(35.0e-3*picosecond); + + ExcitEnergies.push_back(4900.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(49.0e-3*picosecond); + + ExcitEnergies.push_back(4972.2*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(444.0e-3*picosecond); + + ExcitEnergies.push_back(5290.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(5473.9*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(24.0e-3*picosecond); + + ExcitEnergies.push_back(5690.1*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(49.0e-3*picosecond); + + ExcitEnergies.push_back(5715.5*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(94.0e-3*picosecond); + + ExcitEnergies.push_back(6256.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(52.0e-3*picosecond); + + ExcitEnergies.push_back(6621.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(6744.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(55.0e-3*picosecond); + + ExcitEnergies.push_back(6877.7*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(83.0e-3*picosecond); + +} + + +G4Mg26GEMProbability::G4Mg26GEMProbability(const G4Mg26GEMProbability &right) +{ + G4Exception("G4Mg26GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Mg26GEMProbability & G4Mg26GEMProbability:: +operator=(const G4Mg26GEMProbability &right) +{ + G4Exception("G4Mg26GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Mg26GEMProbability::operator==(const G4Mg26GEMProbability &right) const +{ + return false; +} + +G4bool G4Mg26GEMProbability::operator!=(const G4Mg26GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc new file mode 100644 index 0000000000..8e524c3c97 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc @@ -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: G4Mg27GEMProbability.cc,v 1.1 2002/06/06 18:02:14 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Mg27GEMProbability.hh" + +G4Mg27GEMProbability::G4Mg27GEMProbability() : + G4GEMProbability(27,12,1.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(984.66*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(1.4*picosecond); + + ExcitEnergies.push_back(1698.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(1.2*picosecond); + + ExcitEnergies.push_back(1940.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(1.1*picosecond); + + ExcitEnergies.push_back(3109.4*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(100.0e-3*picosecond); + + ExcitEnergies.push_back(3426.9*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(100.0e-3*picosecond); + + ExcitEnergies.push_back(3475.3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(3490.7*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(15.0e-3*picosecond); + + ExcitEnergies.push_back(3559.2*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(3760.4*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(610.0e-3*picosecond); + + ExcitEnergies.push_back(3785.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(25.0e-3*picosecond); + + ExcitEnergies.push_back(3884.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(700.0e-3*picosecond); + + ExcitEnergies.push_back(4149.8*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(4398.2*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(65.0e-3*picosecond); + + ExcitEnergies.push_back(4552.8*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(15.0e-3*picosecond); + + ExcitEnergies.push_back(4827.3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(4992.3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(5028.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(40.0e-3*picosecond); + + ExcitEnergies.push_back(5172.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(15.0e-3*picosecond); + + ExcitEnergies.push_back(5372.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(25.0e-3*picosecond); + + ExcitEnergies.push_back(5422.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(5627.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(5764.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(25.0e-3*picosecond); + + ExcitEnergies.push_back(5821.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + +} + + +G4Mg27GEMProbability::G4Mg27GEMProbability(const G4Mg27GEMProbability &right) +{ + G4Exception("G4Mg27GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Mg27GEMProbability & G4Mg27GEMProbability:: +operator=(const G4Mg27GEMProbability &right) +{ + G4Exception("G4Mg27GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Mg27GEMProbability::operator==(const G4Mg27GEMProbability &right) const +{ + return false; +} + +G4bool G4Mg27GEMProbability::operator!=(const G4Mg27GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc new file mode 100644 index 0000000000..28c162d67d --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4Mg28GEMProbability.cc,v 1.1 2002/06/06 18:02:15 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Mg28GEMProbability.hh" + +G4Mg28GEMProbability::G4Mg28GEMProbability() : + G4GEMProbability(28,12,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1473.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(1.7*picosecond); + + ExcitEnergies.push_back(3862.7*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(800.0e-3*picosecond); + + ExcitEnergies.push_back(4020.2*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(150.0e-3*picosecond); + + ExcitEnergies.push_back(4557.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(40.0e-3*picosecond); + + ExcitEnergies.push_back(4878.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(120.0e-3*picosecond); + + ExcitEnergies.push_back(5171.8*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(170.0e-3*picosecond); + + ExcitEnergies.push_back(5192.7*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(30.0e-3*picosecond); + + ExcitEnergies.push_back(5271.7*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(150.0e-3*picosecond); + + ExcitEnergies.push_back(5702.3*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(300.0e-3*picosecond); + +} + + +G4Mg28GEMProbability::G4Mg28GEMProbability(const G4Mg28GEMProbability &right) +{ + G4Exception("G4Mg28GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Mg28GEMProbability & G4Mg28GEMProbability:: +operator=(const G4Mg28GEMProbability &right) +{ + G4Exception("G4Mg28GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Mg28GEMProbability::operator==(const G4Mg28GEMProbability &right) const +{ + return false; +} + +G4bool G4Mg28GEMProbability::operator!=(const G4Mg28GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc new file mode 100644 index 0000000000..247363a60e --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc @@ -0,0 +1,87 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N12GEMProbability.cc,v 1.1 2002/06/06 18:02:16 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4N12GEMProbability.hh" + +G4N12GEMProbability::G4N12GEMProbability() : + G4GEMProbability(12,7,1.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(960.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(1189*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(2415*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45*keV)); + + ExcitEnergies.push_back(3118*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(210*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4N12GEMProbability::G4N12GEMProbability(const G4N12GEMProbability &right) +{ + G4Exception("G4N12GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4N12GEMProbability & G4N12GEMProbability:: +operator=(const G4N12GEMProbability &right) +{ + G4Exception("G4N12GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4N12GEMProbability::operator==(const G4N12GEMProbability &right) const +{ + return false; +} + +G4bool G4N12GEMProbability::operator!=(const G4N12GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc new file mode 100644 index 0000000000..d76a345e97 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc @@ -0,0 +1,195 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N13GEMProbability.cc,v 1.1 2002/06/06 18:02:17 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4N13GEMProbability.hh" + +G4N13GEMProbability::G4N13GEMProbability() : + G4GEMProbability(13,7,1.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(2365.3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(33*keV)); + + ExcitEnergies.push_back(3511*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(66*keV)); + + ExcitEnergies.push_back(3547*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(47*keV)); + + ExcitEnergies.push_back(6364*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11*keV)); + + ExcitEnergies.push_back(6885*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(115*keV)); + + ExcitEnergies.push_back(7155*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(9.0*keV)); + + ExcitEnergies.push_back(7376*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(75*keV)); + + ExcitEnergies.push_back(8000*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1500*keV)); + + ExcitEnergies.push_back(8918*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(230*keV)); + + ExcitEnergies.push_back(9476*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(10.25E3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(270*keV)); + + ExcitEnergies.push_back(10360*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(10360*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(76*keV)); + + ExcitEnergies.push_back(11530*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(430*keV)); + + ExcitEnergies.push_back(11700*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(115*keV)); + + ExcitEnergies.push_back(11740*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250*keV)); + + ExcitEnergies.push_back(11740*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(530*keV)); + + ExcitEnergies.push_back(11878*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(380*keV)); + + ExcitEnergies.push_back(12130*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250*keV)); + + ExcitEnergies.push_back(13.5E3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6500*keV)); + + ExcitEnergies.push_back(14040*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(155*keV)); + + ExcitEnergies.push_back(15065.1*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.10*keV)); + + ExcitEnergies.push_back(15.3E3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350*keV)); + + ExcitEnergies.push_back(16020*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(130*keV)); + + ExcitEnergies.push_back(18230*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(18406*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(66*keV)); + + ExcitEnergies.push_back(18961*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(23*keV)); + + ExcitEnergies.push_back(19830*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000*keV)); + + ExcitEnergies.push_back(19880*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(520*keV)); + + ExcitEnergies.push_back(20.9E3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1100*keV)); + + ExcitEnergies.push_back(22.4E3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2000*keV)); + + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4N13GEMProbability::G4N13GEMProbability(const G4N13GEMProbability &right) +{ + G4Exception("G4N13GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4N13GEMProbability & G4N13GEMProbability:: +operator=(const G4N13GEMProbability &right) +{ + G4Exception("G4N13GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4N13GEMProbability::operator==(const G4N13GEMProbability &right) const +{ + return false; +} + +G4bool G4N13GEMProbability::operator!=(const G4N13GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc new file mode 100644 index 0000000000..59653f80bf --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4N14GEMProbability.cc,v 1.1 2002/06/06 18:02:18 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4N14GEMProbability.hh" + +G4N14GEMProbability::G4N14GEMProbability() : + G4GEMProbability(14,7,1.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(2312.87*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(60e-15*s); + + ExcitEnergies.push_back(3947.8*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(3.1e-15*s); + + ExcitEnergies.push_back(4915.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(5.3e-15*s); + + ExcitEnergies.push_back(5105.87*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(8.6e-12*s); + + ExcitEnergies.push_back(5689.6*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(6.9e-15*s); + + ExcitEnergies.push_back(5832.4*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(12.5e-12*s); + + ExcitEnergies.push_back(6203.5*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(86e-15*s); + + ExcitEnergies.push_back(6444.4*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(435e-15*s); + + ExcitEnergies.push_back(7027.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(3.7e-15*s); + + ExcitEnergies.push_back(7966.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.5E-3*keV)); + + ExcitEnergies.push_back(8487.7*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(27E-6*keV)); + + ExcitEnergies.push_back(8618*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.0*keV)); + + ExcitEnergies.push_back(8790*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(460*keV)); + + ExcitEnergies.push_back(8909.1*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19.7*keV)); + + ExcitEnergies.push_back(8961.2 *keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7E-6*keV)); + + ExcitEnergies.push_back(8979*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8*keV)); + + ExcitEnergies.push_back(9129*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1*keV)); + + ExcitEnergies.push_back(9170.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.074*keV)); + + ExcitEnergies.push_back(9386.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.6 *keV)); + + ExcitEnergies.push_back(9509*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(41*keV)); + + ExcitEnergies.push_back(9703 *keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15*keV)); + + ExcitEnergies.push_back(10063*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10*keV)); + + ExcitEnergies.push_back(10101*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5*keV)); + + ExcitEnergies.push_back(10228*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80*keV)); + + ExcitEnergies.push_back(10434*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(33*keV)); + + ExcitEnergies.push_back(10540*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140*keV)); + + ExcitEnergies.push_back(10811*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.39*eV)); + + ExcitEnergies.push_back(11050*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2*keV)); + + ExcitEnergies.push_back(11070*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(11240*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back(11290*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180*keV)); + + ExcitEnergies.push_back(11357*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(11513.6*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.0*keV)); + + ExcitEnergies.push_back(11680*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150*keV)); + + ExcitEnergies.push_back(11741*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back(11761*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(78*keV)); + + ExcitEnergies.push_back(11807*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(119*keV)); + + ExcitEnergies.push_back(11874*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(101*keV)); + + ExcitEnergies.push_back(12200*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(12408*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(37*keV)); + + ExcitEnergies.push_back(12418*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(41*keV)); + + ExcitEnergies.push_back(12594*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(48*keV)); + + ExcitEnergies.push_back(12688*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22*keV)); + + ExcitEnergies.push_back(12792*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(18*keV)); + + ExcitEnergies.push_back(12819*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8*keV)); + + ExcitEnergies.push_back(12923*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25*keV)); + + ExcitEnergies.push_back(13166*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15*keV)); + + ExcitEnergies.push_back(13192*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65*keV)); + + ExcitEnergies.push_back(13243*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(92*keV)); + + ExcitEnergies.push_back(13300*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000*keV)); + + ExcitEnergies.push_back(13656*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90*keV)); + + ExcitEnergies.push_back(13714*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(105*keV)); + + ExcitEnergies.push_back(13710*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180*keV)); + + ExcitEnergies.push_back(14250*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(420*keV)); + + ExcitEnergies.push_back(14660*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(16800*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(16910*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(17170*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(18100*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(18100*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600*keV)); + + ExcitEnergies.push_back(18200*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400*keV)); + + ExcitEnergies.push_back(18400*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300*keV)); + + ExcitEnergies.push_back(18500*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60 *keV)); + + ExcitEnergies.push_back(18800*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400*keV)); + + ExcitEnergies.push_back(20100*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500*keV)); + + ExcitEnergies.push_back(20800*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600*keV)); + + ExcitEnergies.push_back(20800*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500*keV)); + + ExcitEnergies.push_back(21300*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000*keV)); + + ExcitEnergies.push_back(21500*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500*keV)); + + ExcitEnergies.push_back(21700*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200*keV)); + + ExcitEnergies.push_back(23000*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3000*keV)); + + ExcitEnergies.push_back(23.3E3*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4N14GEMProbability::G4N14GEMProbability(const G4N14GEMProbability &right) +{ + G4Exception("G4N14GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4N14GEMProbability & G4N14GEMProbability:: +operator=(const G4N14GEMProbability &right) +{ + G4Exception("G4N14GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4N14GEMProbability::operator==(const G4N14GEMProbability &right) const +{ + return false; +} + +G4bool G4N14GEMProbability::operator!=(const G4N14GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc new file mode 100644 index 0000000000..fcb3390e56 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4N15GEMProbability.cc,v 1.1 2002/06/06 18:02:19 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4N15GEMProbability.hh" + +G4N15GEMProbability::G4N15GEMProbability() : + G4GEMProbability(15,7,1.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(5270.40*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(1.80e-12*s); + + ExcitEnergies.push_back(5298.87*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(1.7E-14*s); + + ExcitEnergies.push_back(6323.85*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.15E-15*s); + + ExcitEnergies.push_back(7155.36*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.019e-12*s); + + ExcitEnergies.push_back(7301.09*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.17E-15*s); + + ExcitEnergies.push_back(7567.1*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(0.040e-12*s); + + ExcitEnergies.push_back(8312.79*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.014e-12*s); + + ExcitEnergies.push_back(8571.4*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.07e-12*s); + + ExcitEnergies.push_back(9050.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.07e-12*s); + + ExcitEnergies.push_back(9152.24*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.028e-12*s); + + ExcitEnergies.push_back(9155.27*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.007e-12*s); + + ExcitEnergies.push_back(9225*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.09e-12*s); + + ExcitEnergies.push_back(9829*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(0.13e-12*s); + + ExcitEnergies.push_back(9928*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.07e-12*s); + + ExcitEnergies.push_back(10449.7*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(10701.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.2*keV)); + + ExcitEnergies.push_back(10804*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1E-3*keV)); + + ExcitEnergies.push_back(11235*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.3*keV)); + + ExcitEnergies.push_back(11292.9*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8*keV)); + + ExcitEnergies.push_back(11437.5*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(41.4*keV)); + + ExcitEnergies.push_back(11615*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(405*keV)); + + ExcitEnergies.push_back(11778*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back(11876*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25*keV)); + + ExcitEnergies.push_back(11942*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0*keV)); + + ExcitEnergies.push_back(11965*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(17*keV)); + + ExcitEnergies.push_back(12095*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14*keV)); + + ExcitEnergies.push_back(12145*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(47*keV)); + + ExcitEnergies.push_back(12327*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22*keV)); + + ExcitEnergies.push_back(12493*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back(12522*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(58*keV)); + + ExcitEnergies.push_back(12920*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(56*keV)); + + ExcitEnergies.push_back(12940*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(81*keV)); + + ExcitEnergies.push_back(13173*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7*keV)); + + ExcitEnergies.push_back(13362*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(16*keV)); + + ExcitEnergies.push_back(13390*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(56*keV)); + + ExcitEnergies.push_back(13537*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(85*keV)); + + ExcitEnergies.push_back(13608*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(18*keV)); + + ExcitEnergies.push_back(13612*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90*keV)); + + ExcitEnergies.push_back(13840*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(75*keV)); + + ExcitEnergies.push_back(13900*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(930*keV)); + + ExcitEnergies.push_back(14100*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(14162*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(27*keV)); + + ExcitEnergies.push_back(14240*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150*keV)); + + ExcitEnergies.push_back(14380*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back(16667*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90*keV)); + + ExcitEnergies.push_back(16850*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110*keV)); + + ExcitEnergies.push_back(19160*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(130*keV)); + + ExcitEnergies.push_back(19500*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400*keV)); + + ExcitEnergies.push_back(20500*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4N15GEMProbability::G4N15GEMProbability(const G4N15GEMProbability &right) +{ + G4Exception("G4N15GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4N15GEMProbability & G4N15GEMProbability:: +operator=(const G4N15GEMProbability &right) +{ + G4Exception("G4N15GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4N15GEMProbability::operator==(const G4N15GEMProbability &right) const +{ + return false; +} + +G4bool G4N15GEMProbability::operator!=(const G4N15GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc new file mode 100644 index 0000000000..2ea353dfbf --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc @@ -0,0 +1,222 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4N16GEMProbability.cc,v 1.1 2002/06/06 18:02:20 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4N16GEMProbability.hh" + +G4N16GEMProbability::G4N16GEMProbability() : + G4GEMProbability(16,7,2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(120.1*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(5.25e-6*s); + + ExcitEnergies.push_back(397.5*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(4.5e-12*s); + + ExcitEnergies.push_back( 3355*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15*keV)); + + ExcitEnergies.push_back( 3519*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3*keV)); + + ExcitEnergies.push_back( 3960*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2*keV)); + + ExcitEnergies.push_back( 4319*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20*keV)); + + ExcitEnergies.push_back( 4387*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(82*keV)); + + ExcitEnergies.push_back( 4760*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250*keV)); + + ExcitEnergies.push_back( 4776*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(59*keV)); + + ExcitEnergies.push_back( 5050*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19*keV)); + + ExcitEnergies.push_back( 5130*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7*keV)); + + ExcitEnergies.push_back( 5150*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7*keV)); + + ExcitEnergies.push_back( 5232*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4*keV)); + + ExcitEnergies.push_back( 5240*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(260*keV)); + + ExcitEnergies.push_back( 5250*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(320*keV)); + + ExcitEnergies.push_back( 5518*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7*keV)); + + ExcitEnergies.push_back( 5730*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7*keV)); + + ExcitEnergies.push_back( 6009*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(270*keV)); + + ExcitEnergies.push_back( 6168*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7*keV)); + + ExcitEnergies.push_back( 6373*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back( 6513*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(34*keV)); + + ExcitEnergies.push_back( 6840*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140*keV)); + + ExcitEnergies.push_back( 7020*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22*keV)); + + ExcitEnergies.push_back( 7250*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(17*keV)); + + ExcitEnergies.push_back( 7573*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7*keV)); + + ExcitEnergies.push_back( 7877*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back( 8365*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(18*keV)); + + ExcitEnergies.push_back( 8490*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50*keV)); + + ExcitEnergies.push_back( 8720*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40*keV)); + + ExcitEnergies.push_back( 9160*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back( 9459*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100*keV)); + + ExcitEnergies.push_back( 9928*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(12*keV)); + + ExcitEnergies.push_back(10055*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30*keV)); + + ExcitEnergies.push_back(10270*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(165*keV)); + + ExcitEnergies.push_back(10710*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120*keV)); + + ExcitEnergies.push_back(11620*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(220*keV)); + + ExcitEnergies.push_back(11701*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(12*keV)); + + ExcitEnergies.push_back(14410*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180*keV)); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4N16GEMProbability::G4N16GEMProbability(const G4N16GEMProbability &right) +{ + G4Exception("G4N16GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4N16GEMProbability & G4N16GEMProbability:: +operator=(const G4N16GEMProbability &right) +{ + G4Exception("G4N16GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4N16GEMProbability::operator==(const G4N16GEMProbability &right) const +{ + return false; +} + +G4bool G4N16GEMProbability::operator!=(const G4N16GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc new file mode 100644 index 0000000000..b8360d3816 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.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: G4N17GEMProbability.cc,v 1.1 2002/06/06 18:02:21 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4N17GEMProbability.hh" + +G4N17GEMProbability::G4N17GEMProbability() : + G4GEMProbability(17,7,1.0/2.0) // A,Z,Spin +{ + ExcitEnergies.push_back(1373.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(64e-15*s); + + ExcitEnergies.push_back(1849.6*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(28e-12*s); + + ExcitEnergies.push_back(1906.8*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(7.60e-12*s); + + ExcitEnergies.push_back(2526.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(23e-12*s); + + ExcitEnergies.push_back(3128.9*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(191e-15*s); + + ExcitEnergies.push_back(3204.2*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(21e-15*s); + + ExcitEnergies.push_back(3628.7*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(8.30e-12*s); + + ExcitEnergies.push_back(3663.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(243e-15*s); + + ExcitEnergies.push_back(3906.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(36e-15*s); + + ExcitEnergies.push_back(4006.4*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(10e-15*s); + + ExcitEnergies.push_back(4208.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(49e-15*s); + + ExcitEnergies.push_back(4415.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(42e-15*s); + + ExcitEnergies.push_back(5170.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(42e-15*s); + + ExcitEnergies.push_back(5195.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(66e-15*s); + + ExcitEnergies.push_back(5514.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(69e-15*s); + + ExcitEnergies.push_back(5770.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(83e-15*s); + + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4N17GEMProbability::G4N17GEMProbability(const G4N17GEMProbability &right) +{ + G4Exception("G4N17GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4N17GEMProbability & G4N17GEMProbability:: +operator=(const G4N17GEMProbability &right) +{ + G4Exception("G4N17GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4N17GEMProbability::operator==(const G4N17GEMProbability &right) const +{ + return false; +} + +G4bool G4N17GEMProbability::operator!=(const G4N17GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc new file mode 100644 index 0000000000..65c3bf0c53 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc @@ -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: G4Na21GEMProbability.cc,v 1.1 2002/06/06 18:02:22 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Na21GEMProbability.hh" + +G4Na21GEMProbability::G4Na21GEMProbability() : + G4GEMProbability(21,11,3.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(331.93*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(7.08*picosecond); + + ExcitEnergies.push_back(1716.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + ExcitEnergies.push_back(2424.9*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(2.0e-3*picosecond); + + ExcitEnergies.push_back(2798.2*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.4E-6*eV)); + + ExcitEnergies.push_back(2829.4*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50E-6*eV)); + + ExcitEnergies.push_back(3544.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.5*eV)); + + ExcitEnergies.push_back(3679.7*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(193.0*eV)); + + ExcitEnergies.push_back(3863.1*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.6*eV)); + + ExcitEnergies.push_back(4170.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180.0*keV)); + + ExcitEnergies.push_back(4294.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.93*keV)); + + ExcitEnergies.push_back(4468.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(21.0*keV)); + + ExcitEnergies.push_back(4980.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(5457.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(5770.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0*keV)); + + ExcitEnergies.push_back(5815.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.4*keV)); + + ExcitEnergies.push_back(5828.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25.0*keV)); + + ExcitEnergies.push_back(6094.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(6512.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(220.0*keV)); + + ExcitEnergies.push_back(6908.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(7194.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(320.0*keV)); + + ExcitEnergies.push_back(7432.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(8973.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.2*keV)); + + ExcitEnergies.push_back(9220.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.3*keV)); + +} + + +G4Na21GEMProbability::G4Na21GEMProbability(const G4Na21GEMProbability &right) +{ + G4Exception("G4Na21GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Na21GEMProbability & G4Na21GEMProbability:: +operator=(const G4Na21GEMProbability &right) +{ + G4Exception("G4Na21GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Na21GEMProbability::operator==(const G4Na21GEMProbability &right) const +{ + return false; +} + +G4bool G4Na21GEMProbability::operator!=(const G4Na21GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc new file mode 100644 index 0000000000..82b1b02f03 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: G4Na22GEMProbability.cc,v 1.1 2002/06/06 18:02:23 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Na22GEMProbability.hh" + +G4Na22GEMProbability::G4Na22GEMProbability() : + G4GEMProbability(22,11,3.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(583.03*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(244.0e-3*picosecond); + + ExcitEnergies.push_back(657.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(14.0*picosecond); + + ExcitEnergies.push_back(890.89*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(10.4*picosecond); + + ExcitEnergies.push_back(1528.06*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(3.40*picosecond); + + ExcitEnergies.push_back(1936.9*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(3.0e-3*picosecond); + + ExcitEnergies.push_back(1951.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(6.0e-3*picosecond); + + ExcitEnergies.push_back(1983.8*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(1.59*picosecond); + + ExcitEnergies.push_back(2211.5*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(14.9*picosecond); + + ExcitEnergies.push_back(2571.5*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(5.6*picosecond); + + ExcitEnergies.push_back(2968.7*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(42.0e-3*picosecond); + + ExcitEnergies.push_back(3059.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + ExcitEnergies.push_back(3519.2*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(464.0e-3*picosecond); + + ExcitEnergies.push_back(3706.6*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(76.0e-3*picosecond); + + ExcitEnergies.push_back(3943.5*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(6.0e-3*picosecond); + + ExcitEnergies.push_back(4071.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(3.0e-3*picosecond); + + ExcitEnergies.push_back(4296.1*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(3.5*picosecond); + + ExcitEnergies.push_back(4319.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(30.0e-3*picosecond); + + ExcitEnergies.push_back(4360.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(11.0e-3*picosecond); + + ExcitEnergies.push_back(4468.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(104.0e-3*picosecond); + + ExcitEnergies.push_back(4523.8*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(4582.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(4621.7*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(4710.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(42.0e-3*picosecond); + + ExcitEnergies.push_back(4771.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(69.0*picosecond); + + ExcitEnergies.push_back(5062.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(5100.6*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(38.0e-3*picosecond); + + ExcitEnergies.push_back(5167.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(69.0*picosecond); + + + ExcitEnergies.push_back(7153.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7221.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.4*keV)); + + ExcitEnergies.push_back(7241.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.3*keV)); + + ExcitEnergies.push_back(7279.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7280.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.5*keV)); + + ExcitEnergies.push_back(7361.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + + ExcitEnergies.push_back(7373.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7379.2*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7402.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.5*keV)); + + ExcitEnergies.push_back(7409.6*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.5*keV)); + + ExcitEnergies.push_back(7472.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.5*keV)); + + ExcitEnergies.push_back(7516.2*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7547.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.6*keV)); + + ExcitEnergies.push_back(7574.4*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7600.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.9*keV)); + + ExcitEnergies.push_back(7606.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.6*keV)); + + ExcitEnergies.push_back(7637.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7684.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7779.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.8*keV)); + + ExcitEnergies.push_back(7801.5*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.4*keV)); + + ExcitEnergies.push_back(7821.9*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7890.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(7920.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(17.0*keV)); + + ExcitEnergies.push_back(7978.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(8019.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + + ExcitEnergies.push_back(8041.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.5*keV)); + + ExcitEnergies.push_back(8102.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.8*keV)); + + ExcitEnergies.push_back(8108.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.5*keV)); + + ExcitEnergies.push_back(8115.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.1*keV)); + + ExcitEnergies.push_back(8166.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22.5*keV)); + + ExcitEnergies.push_back(8198.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.6*keV)); + + ExcitEnergies.push_back(8212.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.1*keV)); + + ExcitEnergies.push_back(8234.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.0*keV)); + + ExcitEnergies.push_back(8288.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.5*keV)); + + ExcitEnergies.push_back(8329.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.7*keV)); + + ExcitEnergies.push_back(8436.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.4*keV)); + + ExcitEnergies.push_back(8497.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(44.0*keV)); + + ExcitEnergies.push_back(8538.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(13.2*keV)); + + ExcitEnergies.push_back(8602.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.2*keV)); + + ExcitEnergies.push_back(8637.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.0*keV)); + +} + + +G4Na22GEMProbability::G4Na22GEMProbability(const G4Na22GEMProbability &right) +{ + G4Exception("G4Na22GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Na22GEMProbability & G4Na22GEMProbability:: +operator=(const G4Na22GEMProbability &right) +{ + G4Exception("G4Na22GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Na22GEMProbability::operator==(const G4Na22GEMProbability &right) const +{ + return false; +} + +G4bool G4Na22GEMProbability::operator!=(const G4Na22GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc new file mode 100644 index 0000000000..dfbfdda819 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc @@ -0,0 +1,384 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na23GEMProbability.cc,v 1.1 2002/06/06 18:02:24 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Na23GEMProbability.hh" + +G4Na23GEMProbability::G4Na23GEMProbability() : + G4GEMProbability(23,11,3.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(439.80*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(1109.0e-3*picosecond); + + ExcitEnergies.push_back(2076.4*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + ExcitEnergies.push_back(2390.9*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(555.0e-3*picosecond); + + ExcitEnergies.push_back(2639.8*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(2703.7*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(76.0e-3*picosecond); + + ExcitEnergies.push_back(2982.4*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(3.5e-3*picosecond); + + ExcitEnergies.push_back(3678.3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(22.0e-3*picosecond); + + ExcitEnergies.push_back(3848.2*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(90.0e-3*picosecond); + + ExcitEnergies.push_back(3914.7*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(7.6e-3*picosecond); + + ExcitEnergies.push_back(4432.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.19e-3*picosecond); + + ExcitEnergies.push_back(4775.6*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(1.4e-3*picosecond); + + ExcitEnergies.push_back(5377.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.25e-3*picosecond); + + ExcitEnergies.push_back(5533.0*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(8.0e-3*picosecond); + + ExcitEnergies.push_back(6117.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(52.0e-3*picosecond); + + ExcitEnergies.push_back(6237.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(6348.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(26e-3*picosecond); + + ExcitEnergies.push_back(7080.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(0.24e-3*picosecond); + + ExcitEnergies.push_back(7132.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.21e-3*picosecond); + + ExcitEnergies.push_back(7888.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.17e-3*picosecond); + + ExcitEnergies.push_back(8663.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.10e-3*picosecond); + + ExcitEnergies.push_back(8945.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(21.0e-3*picosecond); + + ExcitEnergies.push_back(9209.6*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.11*keV)); + + ExcitEnergies.push_back(9250.8*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.6*keV)); + + ExcitEnergies.push_back(9395.4*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.03*keV)); + + ExcitEnergies.push_back(9404.4*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65.0*keV)); + + ExcitEnergies.push_back(9425.6*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.6*keV)); + + ExcitEnergies.push_back(9485.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.22*keV)); + + ExcitEnergies.push_back(9606.6*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(9650.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.1*keV)); + + ExcitEnergies.push_back(9653.7*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(105.0*keV)); + + ExcitEnergies.push_back(9679.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.6*keV)); + + ExcitEnergies.push_back(9698.9*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(29.0*keV)); + + ExcitEnergies.push_back(9730.8*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.35*keV)); + + ExcitEnergies.push_back(9753.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(9813.8*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + + ExcitEnergies.push_back(9833.4*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(47.0*keV)); + + ExcitEnergies.push_back(9849.1*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(9998.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(475.0*keV)); + + ExcitEnergies.push_back(10014.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(69.0*keV)); + + ExcitEnergies.push_back(10083.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1270.0*keV)); + + ExcitEnergies.push_back(10110.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4200.0*keV)); + + ExcitEnergies.push_back(10167.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65.0*keV)); + + ExcitEnergies.push_back(10229.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(10239.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2450.0*keV)); + + ExcitEnergies.push_back(10313.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2000.0*keV)); + + ExcitEnergies.push_back(10334.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(10341.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.0*keV)); + + ExcitEnergies.push_back(10348.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(210.0*keV)); + + ExcitEnergies.push_back(10436.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25.0*keV)); + + ExcitEnergies.push_back(10476.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(470.0*keV)); + + ExcitEnergies.push_back(10499.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(920.0*keV)); + + ExcitEnergies.push_back(10505.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(560.0*keV)); + + ExcitEnergies.push_back(10516.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(10546.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(540.0*keV)); + + ExcitEnergies.push_back(10570.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1100.0*keV)); + + ExcitEnergies.push_back(10615.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(425.0*keV)); + + ExcitEnergies.push_back(10673.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(23000.0*keV)); + + ExcitEnergies.push_back(10702.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(10769.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(10822.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1700.0*keV)); + + ExcitEnergies.push_back(10823.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(26000.0*keV)); + + ExcitEnergies.push_back(10837.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(10869.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(21000.0*keV)); + + ExcitEnergies.push_back(10904.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(53.0*keV)); + + ExcitEnergies.push_back(10907.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2850.0*keV)); + + ExcitEnergies.push_back(10908.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(900.0*keV)); + + ExcitEnergies.push_back(10917.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(55.0*keV)); + + ExcitEnergies.push_back(10931.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3500.0*keV)); + + ExcitEnergies.push_back(10949.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5200.0*keV)); + + ExcitEnergies.push_back(10954.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65.0*keV)); + + ExcitEnergies.push_back(10972.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(10975.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(18.0*keV)); + + ExcitEnergies.push_back(10979.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6000.0*keV)); + + ExcitEnergies.push_back(10993.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20600.0*keV)); + + ExcitEnergies.push_back(10994.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(11039.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(11087.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800.0*keV)); + + ExcitEnergies.push_back(11109.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(135.0*keV)); + + ExcitEnergies.push_back(11110.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4100.0*keV)); + +} + + +G4Na23GEMProbability::G4Na23GEMProbability(const G4Na23GEMProbability &right) +{ + G4Exception("G4Na23GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Na23GEMProbability & G4Na23GEMProbability:: +operator=(const G4Na23GEMProbability &right) +{ + G4Exception("G4Na23GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Na23GEMProbability::operator==(const G4Na23GEMProbability &right) const +{ + return false; +} + +G4bool G4Na23GEMProbability::operator!=(const G4Na23GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc new file mode 100644 index 0000000000..dfad6fb0fe --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc @@ -0,0 +1,228 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na24GEMProbability.cc,v 1.1 2002/06/06 18:02:25 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Na24GEMProbability.hh" + +G4Na24GEMProbability::G4Na24GEMProbability() : + G4GEMProbability(24,11,4.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(472.29*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(20.18*millisecond); + + ExcitEnergies.push_back(563.29*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(36.0*picosecond); + + ExcitEnergies.push_back(1341.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(62.0e-3*picosecond); + + ExcitEnergies.push_back(1344.5*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(26.0e-3*picosecond); + + ExcitEnergies.push_back(1346.5*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(1040.0e-3*picosecond); + + ExcitEnergies.push_back(1512.54*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(27.0e-3*picosecond); + + ExcitEnergies.push_back(1846.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(180.0e-3*picosecond); + + ExcitEnergies.push_back(1885.44*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(26.0e-3*picosecond); + + ExcitEnergies.push_back(2513.4*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(2562.5*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(2903.7*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(35.0e-3*picosecond); + + ExcitEnergies.push_back(2977.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(3216.8*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(15.0e-3*picosecond); + + ExcitEnergies.push_back(3371.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(13.0e-3*picosecond); + + ExcitEnergies.push_back(3413.4*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3589.1*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(6.0e-3*picosecond); + + ExcitEnergies.push_back(3628.5*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3656.5*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3681.7*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3745.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(3935.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(3943.39*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3977.2*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(4048.2*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(4186.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(4196.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(4207.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(23.0e-3*picosecond); + + ExcitEnergies.push_back(4441.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(35.0e-3*picosecond); + + ExcitEnergies.push_back(4562.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(4621.5*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(10.0e-3*picosecond); + + ExcitEnergies.push_back(4692.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(24.0e-3*picosecond); + + ExcitEnergies.push_back(5044.7*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + ExcitEnergies.push_back(5059.9*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(49.0e-3*picosecond); + + ExcitEnergies.push_back(5194.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(5250.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(49.0e-3*picosecond); + + ExcitEnergies.push_back(5339.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(5398.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(5480.6*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(49.0e-3*picosecond); + + ExcitEnergies.push_back(5969.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(6074.2*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(35.0e-3*picosecond); + +} + + +G4Na24GEMProbability::G4Na24GEMProbability(const G4Na24GEMProbability &right) +{ + G4Exception("G4Na24GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Na24GEMProbability & G4Na24GEMProbability:: +operator=(const G4Na24GEMProbability &right) +{ + G4Exception("G4Na24GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Na24GEMProbability::operator==(const G4Na24GEMProbability &right) const +{ + return false; +} + +G4bool G4Na24GEMProbability::operator!=(const G4Na24GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc new file mode 100644 index 0000000000..aef364e3ba --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Na25GEMProbability.cc,v 1.1 2002/06/06 18:02:26 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Na25GEMProbability.hh" + +G4Na25GEMProbability::G4Na25GEMProbability() : + G4GEMProbability(25,11,5.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(89.53*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(5.13e-3*picosecond); + + ExcitEnergies.push_back(1069.32*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(1.6*picosecond); + + ExcitEnergies.push_back(2202.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(2417.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(0.14*picosecond); + + ExcitEnergies.push_back(2788.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(2914.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3687.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3995.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + +} + + +G4Na25GEMProbability::G4Na25GEMProbability(const G4Na25GEMProbability &right) +{ + G4Exception("G4Na25GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Na25GEMProbability & G4Na25GEMProbability:: +operator=(const G4Na25GEMProbability &right) +{ + G4Exception("G4Na25GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Na25GEMProbability::operator==(const G4Na25GEMProbability &right) const +{ + return false; +} + +G4bool G4Na25GEMProbability::operator!=(const G4Na25GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc new file mode 100644 index 0000000000..43d0b0bb93 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne18GEMProbability.cc,v 1.1 2002/06/06 18:02:27 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Ne18GEMProbability.hh" + +G4Ne18GEMProbability::G4Ne18GEMProbability() : + G4GEMProbability(18,10,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1887.3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.34*picosecond); + + ExcitEnergies.push_back(3376.2*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(3.0*picosecond); + + ExcitEnergies.push_back(3576.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(1.4*picosecond); + + ExcitEnergies.push_back(3616.4*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.040*picosecond); + + ExcitEnergies.push_back(4510.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(4580.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(7062.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180.0*keV)); + + ExcitEnergies.push_back(7915.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + +} + + +G4Ne18GEMProbability::G4Ne18GEMProbability(const G4Ne18GEMProbability &right) +{ + G4Exception("G4Ne18GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Ne18GEMProbability & G4Ne18GEMProbability:: +operator=(const G4Ne18GEMProbability &right) +{ + G4Exception("G4Ne18GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Ne18GEMProbability::operator==(const G4Ne18GEMProbability &right) const +{ + return false; +} + +G4bool G4Ne18GEMProbability::operator!=(const G4Ne18GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc new file mode 100644 index 0000000000..65454a2276 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne19GEMProbability.cc,v 1.1 2002/06/06 18:02:28 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Ne19GEMProbability.hh" + +G4Ne19GEMProbability::G4Ne19GEMProbability() : + G4GEMProbability(19,10,1.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(238.33*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(18.0*nanosecond); + + ExcitEnergies.push_back(275.20*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(42.6*picosecond); + + ExcitEnergies.push_back(1507.8*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(2.8*picosecond); + + ExcitEnergies.push_back(1536.2*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(19.0e-3*picosecond); + + ExcitEnergies.push_back(1615.2*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(125.0e-3*picosecond); + + ExcitEnergies.push_back(2794.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(229.0e-3*picosecond); + + + ExcitEnergies.push_back(10460.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(355.0*keV)); + + ExcitEnergies.push_back(10480.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45.0*keV)); + + ExcitEnergies.push_back(11510.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(12230.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(12500.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(12690.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(180.0*keV)); + +} + + +G4Ne19GEMProbability::G4Ne19GEMProbability(const G4Ne19GEMProbability &right) +{ + G4Exception("G4Ne19GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Ne19GEMProbability & G4Ne19GEMProbability:: +operator=(const G4Ne19GEMProbability &right) +{ + G4Exception("G4Ne19GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Ne19GEMProbability::operator==(const G4Ne19GEMProbability &right) const +{ + return false; +} + +G4bool G4Ne19GEMProbability::operator!=(const G4Ne19GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc new file mode 100644 index 0000000000..8c9e6f31dd --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc @@ -0,0 +1,530 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne20GEMProbability.cc,v 1.1 2002/06/06 18:02:29 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Ne20GEMProbability.hh" + +G4Ne20GEMProbability::G4Ne20GEMProbability() : + G4GEMProbability(20,10,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1633.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.83*picosecond); + + ExcitEnergies.push_back(4247.3*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(64.0e-3*picosecond); + + ExcitEnergies.push_back(4968.2*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(3.3*picosecond); + + ExcitEnergies.push_back(5621.7*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(139.0e-3*picosecond); + + ExcitEnergies.push_back(5785.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.3E-2*keV)); + + ExcitEnergies.push_back(6722.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.0*keV)); + + + ExcitEnergies.push_back(7005.5*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(305.0e-3*picosecond); + + + ExcitEnergies.push_back(7166.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(7196.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(7424.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(7834.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(8600.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800.0*keV)); + + ExcitEnergies.push_back(8720.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.5*keV)); + + ExcitEnergies.push_back(8775.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.110*keV)); + + ExcitEnergies.push_back(8800.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800.0*keV)); + + ExcitEnergies.push_back(8820.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + + ExcitEnergies.push_back(8850.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19.0*keV)); + + ExcitEnergies.push_back(9040.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0*keV)); + + ExcitEnergies.push_back(9117.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.2*keV)); + + ExcitEnergies.push_back(9489.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(29.0*keV)); + + ExcitEnergies.push_back(9950.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(9990.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(10257.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(141.0*keV)); + + ExcitEnergies.push_back(10260.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(10401.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(81.0*keV)); + + ExcitEnergies.push_back(10548.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(16.0*keV)); + + ExcitEnergies.push_back(10579.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(10609.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(16.0e-3*picosecond); + + ExcitEnergies.push_back(10790.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + ExcitEnergies.push_back(10836.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(13.0*keV)); + + ExcitEnergies.push_back(10836.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(45.0*keV)); + + ExcitEnergies.push_back(10970.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(580.0*keV)); + + ExcitEnergies.push_back(11015.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(11080.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0*keV)); + + ExcitEnergies.push_back(11230.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(172.0*keV)); + + ExcitEnergies.push_back(11270.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(11324.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(53.0*keV)); + + ExcitEnergies.push_back(11871.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(46.0*keV)); + + ExcitEnergies.push_back(11925.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.44*keV)); + + ExcitEnergies.push_back(11948.0*keV); + ExcitSpins.push_back(8.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0e-3*keV)); + + ExcitEnergies.push_back(11953.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(24.0*keV)); + + ExcitEnergies.push_back(11971.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(29.0*keV)); + + ExcitEnergies.push_back(12150.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(12224.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(142.0*keV)); + + ExcitEnergies.push_back(12245.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(12367.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(46.0*keV)); + + ExcitEnergies.push_back(12410.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(12559.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(101.0*keV)); + + ExcitEnergies.push_back(12770.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(12980.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(13060.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + + ExcitEnergies.push_back(13086.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(13168.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.3*keV)); + + ExcitEnergies.push_back(13180.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(13224.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95.0*keV)); + + ExcitEnergies.push_back(13224.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95.0*keV)); + + ExcitEnergies.push_back(13304.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.9*keV)); + + ExcitEnergies.push_back(13333.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0e-3*keV)); + + ExcitEnergies.push_back(13342.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0*keV)); + + ExcitEnergies.push_back(13411.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(13420.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(13462.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(13479.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.1*keV)); + + ExcitEnergies.push_back(13523.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(13541.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(63.0*keV)); + + ExcitEnergies.push_back(13584.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(13650.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22.0*keV)); + + ExcitEnergies.push_back(13660.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(115.0*keV)); + + ExcitEnergies.push_back(13673.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.5*keV)); + + ExcitEnergies.push_back(13700.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(320.0*keV)); + + ExcitEnergies.push_back(13730.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(170.0*keV)); + + ExcitEnergies.push_back(13733.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.7*keV)); + + ExcitEnergies.push_back(13870.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(13880.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(13903.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(48.0*keV)); + + ExcitEnergies.push_back(13946.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(14017.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(14030.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140.0*keV)); + + ExcitEnergies.push_back(14124.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.7*keV)); + + ExcitEnergies.push_back(14134.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(51.0*keV)); + + ExcitEnergies.push_back(14148.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.8*keV)); + + ExcitEnergies.push_back(14197.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(13.9*keV)); + + ExcitEnergies.push_back(14300.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(14467.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(135.0*keV)); + + ExcitEnergies.push_back(14600.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(14604.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(125.0*keV)); + + ExcitEnergies.push_back(14695.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(38.0*keV)); + + ExcitEnergies.push_back(14850.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(15030.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(15260.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(285.0*keV)); + + ExcitEnergies.push_back(15300.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(285.0*keV)); + + ExcitEnergies.push_back(15618.0*keV); + ExcitSpins.push_back(8.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(28.0*keV)); + + ExcitEnergies.push_back(16728.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(18080.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140.0*keV)); + + ExcitEnergies.push_back(18310.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(18426.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(18700.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(19160.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(19400.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(19840.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(20160.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250.0*keV)); + + ExcitEnergies.push_back(20400.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(360.0*keV)); + + ExcitEnergies.push_back(20400.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(20680.0*keV); + ExcitSpins.push_back(9.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(21000.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(21080.0*keV); + ExcitSpins.push_back(9.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(21300.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(21800.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(22300.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(22700.0*keV); + ExcitSpins.push_back(9.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(22840.0*keV); + ExcitSpins.push_back(9.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250.0*keV)); + + ExcitEnergies.push_back(23400.0*keV); + ExcitSpins.push_back(8.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(24110.0*keV); + ExcitSpins.push_back(8.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + ExcitEnergies.push_back(25000.0*keV); + ExcitSpins.push_back(8.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(28000.0*keV); + ExcitSpins.push_back(8.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1600.0*keV)); + +} + + +G4Ne20GEMProbability::G4Ne20GEMProbability(const G4Ne20GEMProbability &right) +{ + G4Exception("G4Ne20GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Ne20GEMProbability & G4Ne20GEMProbability:: +operator=(const G4Ne20GEMProbability &right) +{ + G4Exception("G4Ne20GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Ne20GEMProbability::operator==(const G4Ne20GEMProbability &right) const +{ + return false; +} + +G4bool G4Ne20GEMProbability::operator!=(const G4Ne20GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc new file mode 100644 index 0000000000..c7d72a40dd --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc @@ -0,0 +1,233 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne21GEMProbability.cc,v 1.1 2002/06/06 18:02:30 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Ne21GEMProbability.hh" + +G4Ne21GEMProbability::G4Ne21GEMProbability() : + G4GEMProbability(21,10,3.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(350.72*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(7.09*picosecond); + + ExcitEnergies.push_back(1745.6*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(55.0e-3*picosecond); + + ExcitEnergies.push_back(2788.5*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(81.0*picosecond); + + ExcitEnergies.push_back(2796.1*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(2865.6*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(35.0e-3*picosecond); + + ExcitEnergies.push_back(3662.1*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(59.0e-3*picosecond); + + ExcitEnergies.push_back(3733.7*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(3882.9*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(30.0e-3*picosecond); + + ExcitEnergies.push_back(4432.2*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(25.0e-3*picosecond); + + ExcitEnergies.push_back(4524.2*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(4683.6*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(11.0e-3*picosecond); + + ExcitEnergies.push_back(4725.7*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(5334.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(5430.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(5525.0*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(5550.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + ExcitEnergies.push_back(5629.4*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(5690.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(5775.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + ExcitEnergies.push_back(5821.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(55.0e-3*picosecond); + + ExcitEnergies.push_back(5823.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(24.0e-3*picosecond); + + ExcitEnergies.push_back(5992.9*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(7.0e-3*picosecond); + + ExcitEnergies.push_back(6030.7*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(24.0e-7*picosecond); + + ExcitEnergies.push_back(6169.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(24.0e-3*picosecond); + + ExcitEnergies.push_back(6265.1*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(24.0e-3*picosecond); + + ExcitEnergies.push_back(6446.6*keV); + ExcitSpins.push_back(13.0/2.0); + ExcitLifetimes.push_back(14.0e-3*picosecond); + + ExcitEnergies.push_back(6553.0*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(31.0e-3*picosecond); + + ExcitEnergies.push_back(6605.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(24.0e-3*picosecond); + + ExcitEnergies.push_back(6642.0*keV); + ExcitSpins.push_back(11.0/2.0); + ExcitLifetimes.push_back(66.0e-3*picosecond); + + ExcitEnergies.push_back(6747.4*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(28.0e-3*picosecond); + + + ExcitEnergies.push_back(7212.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(107.0*keV)); + + ExcitEnergies.push_back(7653.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14.0*keV)); + + ExcitEnergies.push_back(7980.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(8008.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(32.0*keV)); + + ExcitEnergies.push_back(8062.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(8281.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(27.0*keV)); + + ExcitEnergies.push_back(8352.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.0*keV)); + + ExcitEnergies.push_back(8583.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(38.0*keV)); + + ExcitEnergies.push_back(8660.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(54.0*keV)); + + ExcitEnergies.push_back(8781.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50*keV)); + + ExcitEnergies.push_back(8857.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.8*keV)); + +} + + +G4Ne21GEMProbability::G4Ne21GEMProbability(const G4Ne21GEMProbability &right) +{ + G4Exception("G4Ne21GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Ne21GEMProbability & G4Ne21GEMProbability:: +operator=(const G4Ne21GEMProbability &right) +{ + G4Exception("G4Ne21GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Ne21GEMProbability::operator==(const G4Ne21GEMProbability &right) const +{ + return false; +} + +G4bool G4Ne21GEMProbability::operator!=(const G4Ne21GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc new file mode 100644 index 0000000000..3ff86af9d7 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.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: G4Ne22GEMProbability.cc,v 1.1 2002/06/06 18:02:32 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Ne22GEMProbability.hh" + +G4Ne22GEMProbability::G4Ne22GEMProbability() : + G4GEMProbability(22,10,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1274.57*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(3.67*picosecond); + + ExcitEnergies.push_back(3357.2*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(225.0e-3*picosecond); + + ExcitEnergies.push_back(4456.7*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(5147.5*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.8*picosecond); + + ExcitEnergies.push_back(5336.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(1.2e-3*picosecond); + + ExcitEnergies.push_back(5365.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(21.0e-3*picosecond); + + ExcitEnergies.push_back(5523.2*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(35.0e-3*picosecond); + + ExcitEnergies.push_back(5641.3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(42.0e-3*picosecond); + + ExcitEnergies.push_back(5909.9*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(35.0e-3*picosecond); + + ExcitEnergies.push_back(6311.4*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(54.0e-3*picosecond); + + ExcitEnergies.push_back(6345.2*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(17.0e-3*picosecond); + + ExcitEnergies.push_back(6636.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(48.0e-3*picosecond); + + ExcitEnergies.push_back(6854.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(267.0e-6*picosecond); + + ExcitEnergies.push_back(7406.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(62.0e-3*picosecond); + + ExcitEnergies.push_back(423.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(47.0e-3*picosecond); + +} + + +G4Ne22GEMProbability::G4Ne22GEMProbability(const G4Ne22GEMProbability &right) +{ + G4Exception("G4Ne22GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Ne22GEMProbability & G4Ne22GEMProbability:: +operator=(const G4Ne22GEMProbability &right) +{ + G4Exception("G4Ne22GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Ne22GEMProbability::operator==(const G4Ne22GEMProbability &right) const +{ + return false; +} + +G4bool G4Ne22GEMProbability::operator!=(const G4Ne22GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc new file mode 100644 index 0000000000..66f9ee2979 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: G4Ne23GEMProbability.cc,v 1.1 2002/06/06 18:02:33 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Ne23GEMProbability.hh" + +G4Ne23GEMProbability::G4Ne23GEMProbability() : + G4GEMProbability(23,10,5.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1017.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(178.0*picosecond); + + ExcitEnergies.push_back(1701.51*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(1822.5*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(2315.1*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(2517.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(3221.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(3431.8*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(3458.2*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(3830.9*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(3836.8*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(3988.2*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + +} + + +G4Ne23GEMProbability::G4Ne23GEMProbability(const G4Ne23GEMProbability &right) +{ + G4Exception("G4Ne23GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Ne23GEMProbability & G4Ne23GEMProbability:: +operator=(const G4Ne23GEMProbability &right) +{ + G4Exception("G4Ne23GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Ne23GEMProbability::operator==(const G4Ne23GEMProbability &right) const +{ + return false; +} + +G4bool G4Ne23GEMProbability::operator!=(const G4Ne23GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc new file mode 100644 index 0000000000..f3cd7d0e0c --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc @@ -0,0 +1,87 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ne24GEMProbability.cc,v 1.1 2002/06/06 18:02:34 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4Ne24GEMProbability.hh" + +G4Ne24GEMProbability::G4Ne24GEMProbability() : + G4GEMProbability(24,10,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1980.8*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(658.0e-3*picosecond); + + ExcitEnergies.push_back(3867.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(69.0e-3*picosecond); + + ExcitEnergies.push_back(3962.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(21.0*nanosecond); + + ExcitEnergies.push_back(4764.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(2.3*picosecond); + + ExcitEnergies.push_back(5576.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(21.0*nanosecond); +} + + +G4Ne24GEMProbability::G4Ne24GEMProbability(const G4Ne24GEMProbability &right) +{ + G4Exception("G4Ne24GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4Ne24GEMProbability & G4Ne24GEMProbability:: +operator=(const G4Ne24GEMProbability &right) +{ + G4Exception("G4Ne24GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4Ne24GEMProbability::operator==(const G4Ne24GEMProbability &right) const +{ + return false; +} + +G4bool G4Ne24GEMProbability::operator!=(const G4Ne24GEMProbability &right) const +{ + return true; +} + + + 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 4376c80999..92f4a43211 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronCoulombBarrier.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a245f42495..bca2778a88 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationChannel.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 e3c662f07e..471dfd6125 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationProbability.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..2eba89e021 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.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: G4NeutronGEMChannel.cc,v 1.1 2002/06/06 18:03:22 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov. 1999) +// + +#include "G4NeutronGEMChannel.hh" + + +const G4NeutronGEMChannel & G4NeutronGEMChannel::operator=(const G4NeutronGEMChannel & right) +{ + G4Exception("G4NeutronGEMChannel::operator= meant to not be accessable"); + return *this; +} + +G4NeutronGEMChannel::G4NeutronGEMChannel(const G4NeutronGEMChannel & right) +{ + G4Exception("G4NeutronGEMChannel::CopyConstructor meant to not be accessable"); +} + +G4bool G4NeutronGEMChannel::operator==(const G4NeutronGEMChannel & right) const +{ + return (this == (G4NeutronGEMChannel *) &right); + // return false; +} + +G4bool G4NeutronGEMChannel::operator!=(const G4NeutronGEMChannel & right) const +{ + return (this != (G4NeutronGEMChannel *) &right); + // return true; +} + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc new file mode 100644 index 0000000000..46f43e4fef --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4NeutronGEMProbability.cc,v 1.1 2002/06/06 18:03:23 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4NeutronGEMProbability.hh" + +G4NeutronGEMProbability::G4NeutronGEMProbability() : + G4GEMProbability(1,0,1.0/2.0) // A,Z,Gamma +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4NeutronGEMProbability::G4NeutronGEMProbability(const G4NeutronGEMProbability &right) +{ + G4Exception("G4NeutronGEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4NeutronGEMProbability & G4NeutronGEMProbability:: +operator=(const G4NeutronGEMProbability &right) +{ + G4Exception("G4NeutronGEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4NeutronGEMProbability::operator==(const G4NeutronGEMProbability &right) const +{ + return false; +} + +G4bool G4NeutronGEMProbability::operator!=(const G4NeutronGEMProbability &right) const +{ + return true; +} 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 c2e11f408b..cfc67a190e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc @@ -71,7 +71,9 @@ G4NuclearLevelManager::~G4NuclearLevelManager() if ( _levels ) { if (_levels->size()>0) { - G4std::for_each(_levels->begin(), _levels->end(), DeleteLevel()); + G4std::vector::iterator pos; + for(pos=_levels->begin(); pos!=_levels->end(); pos++) + if (*pos) delete *pos; _levels->clear(); } delete _levels; @@ -140,7 +142,7 @@ const G4NuclearLevel* G4NuclearLevelManager::NearestLevel(G4double energy, G4dou unsigned int i = 0; for (i=0; i<_levels->size(); i++) { - G4double e = _levels->operator[](i)->Energy(); + G4double e = (*_levels)[i]->Energy(); G4double eDiff = abs(e - energy); if (eDiff < diff && eDiff <= eDiffMax) { @@ -150,7 +152,7 @@ const G4NuclearLevel* G4NuclearLevelManager::NearestLevel(G4double energy, G4dou } } if (_levels != 0 && iNear >= 0 && iNear < static_cast(_levels->size()) ) - { return _levels->operator[](iNear); } + { return (*_levels)[iNear]; } else { return 0; } } @@ -246,9 +248,12 @@ void G4NuclearLevelManager::MakeLevels() if (_levels != 0) { - if (_levels->size()>0) + if (_levels->size()>0) { - for(unsigned int i=0; i<_levels->size(); i++) delete _levels->operator[](i); + G4std::vector::iterator pos; + for(pos=_levels->begin(); pos!=_levels->end(); pos++) + if (*pos) delete *pos; + _levels->clear(); } delete _levels; } @@ -327,7 +332,11 @@ void G4NuclearLevelManager::MakeLevels() thisLevelPolarities); _levels->push_back(newLevel); } +#ifdef G4USE_OSPACE G4std::sort(_levels->begin(), _levels->end()); +#else + G4std::stable_sort(_levels->begin(), _levels->end()); +#endif return; } @@ -345,7 +354,7 @@ void G4NuclearLevelManager::PrintAll() G4int i = 0; for (i=0; ioperator[](i)->PrintAll(); } + { (*_levels)[i]->PrintAll(); } } @@ -368,7 +377,11 @@ 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 { diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc new file mode 100644 index 0000000000..c3c85abbeb --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4O14GEMProbability.cc,v 1.1 2002/06/06 18:03:24 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4O14GEMProbability.hh" + +G4O14GEMProbability::G4O14GEMProbability() : + G4GEMProbability(14,8,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(5920.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(6272.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(103.0*keV)); + + ExcitEnergies.push_back(6590.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(7768.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(76.0*keV)); + + ExcitEnergies.push_back(9915.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + +} + + +G4O14GEMProbability::G4O14GEMProbability(const G4O14GEMProbability &right) +{ + G4Exception("G4O14GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4O14GEMProbability & G4O14GEMProbability:: +operator=(const G4O14GEMProbability &right) +{ + G4Exception("G4O14GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4O14GEMProbability::operator==(const G4O14GEMProbability &right) const +{ + return false; +} + +G4bool G4O14GEMProbability::operator!=(const G4O14GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc new file mode 100644 index 0000000000..c302997268 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc @@ -0,0 +1,257 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4O15GEMProbability.cc,v 1.1 2002/06/06 18:03:25 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4O15GEMProbability.hh" + +G4O15GEMProbability::G4O15GEMProbability() : + G4GEMProbability(15,8,1.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(5183.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.07*picosecond); + + ExcitEnergies.push_back(5240.9*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(2.2*picosecond); + + ExcitEnergies.push_back(6176.3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(33.0E-3*picosecond); + + ExcitEnergies.push_back(6793.1*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(19.0E-3*picosecond); + + ExcitEnergies.push_back(6859.4*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(0.07*picosecond); + + ExcitEnergies.push_back(7556.8*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.6*keV)); + + ExcitEnergies.push_back(8284.3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.6*keV)); + + ExcitEnergies.push_back(8743.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(32.0*keV)); + + ExcitEnergies.push_back(8922.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(8927.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(8982.4*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.9*keV)); + + ExcitEnergies.push_back(9487.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(10.1*keV)); + + ExcitEnergies.push_back(9527.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(9610.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.8*keV)); + + ExcitEnergies.push_back(9662.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.0*keV)); + + ExcitEnergies.push_back(9720.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1185.0*keV)); + + ExcitEnergies.push_back(10291.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0*keV)); + + ExcitEnergies.push_back(10296.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(11.0*keV)); + + ExcitEnergies.push_back(10478.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25.0*keV)); + + ExcitEnergies.push_back(10506.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140.0*keV)); + + ExcitEnergies.push_back(10917.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(10938.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(99.0*keV)); + + ExcitEnergies.push_back(11025.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25.0*keV)); + + ExcitEnergies.push_back(11218.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(11569.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0*keV)); + + ExcitEnergies.push_back(11616.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(11748.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(99.0*keV)); + + ExcitEnergies.push_back(11846.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(65.0*keV)); + + ExcitEnergies.push_back(11980.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(20.0*keV)); + + ExcitEnergies.push_back(12129.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(12471.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(77.0*keV)); + + ExcitEnergies.push_back(12835.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(16.0*keV)); + + ExcitEnergies.push_back(13450.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(14030.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(160.0*keV)); + + ExcitEnergies.push_back(14270.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(340.0*keV)); + + ExcitEnergies.push_back(14465.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(15100.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(15900.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + ExcitEnergies.push_back(16430.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(560.0*keV)); + + ExcitEnergies.push_back(16900.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(17510.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(17990.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(200.0*keV)); + + ExcitEnergies.push_back(18400.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(20500.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2000.0*keV)); + + ExcitEnergies.push_back(22000.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2000.0*keV)); + + ExcitEnergies.push_back(26000.0*keV); + ExcitSpins.push_back(13.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(28000.0*keV); + ExcitSpins.push_back(9.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2500.0*keV)); + + +} + + +G4O15GEMProbability::G4O15GEMProbability(const G4O15GEMProbability &right) +{ + G4Exception("G4O15GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4O15GEMProbability & G4O15GEMProbability:: +operator=(const G4O15GEMProbability &right) +{ + G4Exception("G4O15GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4O15GEMProbability::operator==(const G4O15GEMProbability &right) const +{ + return false; +} + +G4bool G4O15GEMProbability::operator!=(const G4O15GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc new file mode 100644 index 0000000000..f5278905f0 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc @@ -0,0 +1,408 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4O16GEMProbability.cc,v 1.1 2002/06/06 18:03:26 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4O16GEMProbability.hh" + +G4O16GEMProbability::G4O16GEMProbability() : + G4GEMProbability(16,8,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(6049.4*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(67.0*picosecond); + + ExcitEnergies.push_back(6130.43*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(18.4*picosecond); + + ExcitEnergies.push_back(6917.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(4.16E-3*picosecond); + + ExcitEnergies.push_back(7116.85*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(8.30E-3*picosecond); + + ExcitEnergies.push_back(8871.9*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(125.0E-3*picosecond); + + ExcitEnergies.push_back(9632.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(510.0*keV)); + + ExcitEnergies.push_back(9847.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.9*keV)); + + ExcitEnergies.push_back(10353.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(27.0*keV)); + + ExcitEnergies.push_back(10952.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(6.E-3*picosecond); + + ExcitEnergies.push_back(11080.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(12.0*keV)); + + ExcitEnergies.push_back(11095.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.28*keV)); + + ExcitEnergies.push_back(11260.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2500.0*keV)); + + ExcitEnergies.push_back(11521.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(74.0*keV)); + + ExcitEnergies.push_back(11600.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(800.0*keV)); + + ExcitEnergies.push_back(12053.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.5*keV)); + + ExcitEnergies.push_back(12442.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(98.0*keV)); + + ExcitEnergies.push_back(12530.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.8*keV)); + + ExcitEnergies.push_back(12797.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(38.0*keV)); + + ExcitEnergies.push_back(12968.6*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.9*keV)); + + ExcitEnergies.push_back(13020.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(13094.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(130.0*keV)); + + ExcitEnergies.push_back(13129.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(110.0*keV)); + + ExcitEnergies.push_back(13254.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(21.0*keV)); + + ExcitEnergies.push_back(13664.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(64.0*keV)); + + ExcitEnergies.push_back(13875.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(75.0*keV)); + + ExcitEnergies.push_back(13979.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(22.0*keV)); + + ExcitEnergies.push_back(14000.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4800.0*keV)); + + ExcitEnergies.push_back(14032.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(185.0*keV)); + + ExcitEnergies.push_back(14.1E3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(750.0*keV)); + + ExcitEnergies.push_back(14400.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(30.0*keV)); + + ExcitEnergies.push_back(14630.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(14670.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(560.0*keV)); + + ExcitEnergies.push_back(14815.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(67.0*keV)); + + ExcitEnergies.push_back(14922.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(51.0*keV)); + + ExcitEnergies.push_back(15170.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(190.0*keV)); + + ExcitEnergies.push_back(15220.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(70.0*keV)); + + ExcitEnergies.push_back(15250.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(650.0*keV)); + + ExcitEnergies.push_back(15450.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95.0*keV)); + + ExcitEnergies.push_back(15800.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(15900.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(600.0*keV)); + + ExcitEnergies.push_back(16214.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(96.0*keV)); + + ExcitEnergies.push_back(16220.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(18.0*keV)); + + ExcitEnergies.push_back(16290.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(370.0*keV)); + + ExcitEnergies.push_back(16420.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(35.0*keV)); + + ExcitEnergies.push_back(16.8E3*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(16900.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(700.0*keV)); + + ExcitEnergies.push_back(16940.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(17000.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1400.0*keV)); + + ExcitEnergies.push_back(17140.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(36.0*keV)); + + ExcitEnergies.push_back(17200.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(160.0*keV)); + + ExcitEnergies.push_back(17290.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(17550.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(165.0*keV)); + + ExcitEnergies.push_back(17640.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(59.0*keV)); + + ExcitEnergies.push_back(17850.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(17850.0*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(14.0*keV)); + + ExcitEnergies.push_back(18400.0*keV); + ExcitSpins.push_back(5.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(510.0*keV)); + + ExcitEnergies.push_back(18480.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(18690.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(18940.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(16.0*keV)); + + ExcitEnergies.push_back(18990.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(240.0*keV)); + + ExcitEnergies.push_back(19090.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(19240.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(19340.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(19480.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(250.0*keV)); + + ExcitEnergies.push_back(19890.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(100.0*keV)); + + ExcitEnergies.push_back(20.15E3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + ExcitEnergies.push_back(20360.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(20880.0*keV); + ExcitSpins.push_back(7.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(650.0*keV)); + + ExcitEnergies.push_back(20.9E3*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(350.0*keV)); + + ExcitEnergies.push_back(20945.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(21030.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(255.0*keV)); + + ExcitEnergies.push_back(21820.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(21840.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(55.0*keV)); + + ExcitEnergies.push_back(22146.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(675.0*keV)); + + ExcitEnergies.push_back(22721.0*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(12.5*keV)); + + ExcitEnergies.push_back(22870.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(300.0*keV)); + + ExcitEnergies.push_back(23100.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(23220.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); + + ExcitEnergies.push_back(23879.0*keV); + ExcitSpins.push_back(6.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(26.0*keV)); + + ExcitEnergies.push_back(24065.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(550.0*keV)); + + ExcitEnergies.push_back(24522.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(25120.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2900.0*keV)); + + ExcitEnergies.push_back(25.50E3*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1330.0*keV)); + + ExcitEnergies.push_back(26300.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1200.0*keV)); + + ExcitEnergies.push_back(35000.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5000.0*keV)); + +} + + +G4O16GEMProbability::G4O16GEMProbability(const G4O16GEMProbability &right) +{ + G4Exception("G4O16GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4O16GEMProbability & G4O16GEMProbability:: +operator=(const G4O16GEMProbability &right) +{ + G4Exception("G4O16GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4O16GEMProbability::operator==(const G4O16GEMProbability &right) const +{ + return false; +} + +G4bool G4O16GEMProbability::operator!=(const G4O16GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc new file mode 100644 index 0000000000..d10bc6fca5 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc @@ -0,0 +1,263 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4O17GEMProbability.cc,v 1.1 2002/06/06 18:03:27 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4O17GEMProbability.hh" + +G4O17GEMProbability::G4O17GEMProbability() : + G4GEMProbability(17,9,5.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(870.81*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(179.2*picosecond); + + ExcitEnergies.push_back(3055.2*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(83.0E-3*picosecond); + + ExcitEnergies.push_back(3841.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(17.0E-3*picosecond); + + ExcitEnergies.push_back(4553.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(5086.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(95.0*keV)); + + ExcitEnergies.push_back(5380.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(28.0*keV)); + + ExcitEnergies.push_back(5698.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.4*keV)); + + ExcitEnergies.push_back(5870.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.6*keV)); + + ExcitEnergies.push_back(5940.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(32.0*keV)); + + ExcitEnergies.push_back(6357.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(124.0*keV)); + + ExcitEnergies.push_back(7168.7*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.5*keV)); + + ExcitEnergies.push_back(7202.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(280.0*keV)); + + ExcitEnergies.push_back(7383.1*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.6*keV)); + + ExcitEnergies.push_back(7386.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(0.9*keV)); + + ExcitEnergies.push_back(7560.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(500.0*keV)); + + ExcitEnergies.push_back(7577.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + + ExcitEnergies.push_back(7690.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(18.0*keV)); + + ExcitEnergies.push_back(7956.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(90.0*keV)); + + ExcitEnergies.push_back(7990.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(270.0*keV)); + + ExcitEnergies.push_back(8070.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(85.0*keV)); + + ExcitEnergies.push_back(8180.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(69.0*keV)); + + ExcitEnergies.push_back(8200.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(60.0*keV)); + + ExcitEnergies.push_back(8352.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(9.0*keV)); + + ExcitEnergies.push_back(8410.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(8474.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.0*keV)); + + ExcitEnergies.push_back(8508.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(8700.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(50.0*keV)); + + ExcitEnergies.push_back(8898.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(101.0*keV)); + + ExcitEnergies.push_back(8972.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(21.0*keV)); + + ExcitEnergies.push_back(9148.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(4.0*keV)); + + ExcitEnergies.push_back(9187.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.0*keV)); + + ExcitEnergies.push_back(9201.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.5*keV)); + + ExcitEnergies.push_back(9422.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(120.0*keV)); + + ExcitEnergies.push_back(9493.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.0*keV)); + + ExcitEnergies.push_back(9720.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(16.0*keV)); + + ExcitEnergies.push_back(9775.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(25.0*keV)); + + ExcitEnergies.push_back(9977.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(10178.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(40.0*keV)); + + ExcitEnergies.push_back(10337.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(10490.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(75.0*keV)); + + ExcitEnergies.push_back(10773.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(80.0*keV)); + + ExcitEnergies.push_back(10910.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(57.0*keV)); + + ExcitEnergies.push_back(11076.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(5.0*keV)); + + ExcitEnergies.push_back(12946.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(6.0*keV)); + + ExcitEnergies.push_back(14980.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(21.7E3*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(750.0*keV)); + + ExcitEnergies.push_back(22.1E3*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(750.0*keV)); + + ExcitEnergies.push_back(22.5E3*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1000.0*keV)); + + ExcitEnergies.push_back(23.0E3*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(400.0*keV)); +} + + +G4O17GEMProbability::G4O17GEMProbability(const G4O17GEMProbability &right) +{ + G4Exception("G4O17GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4O17GEMProbability & G4O17GEMProbability:: +operator=(const G4O17GEMProbability &right) +{ + G4Exception("G4O17GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4O17GEMProbability::operator==(const G4O17GEMProbability &right) const +{ + return false; +} + +G4bool G4O17GEMProbability::operator!=(const G4O17GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc new file mode 100644 index 0000000000..dbf3fe1d00 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4O18GEMProbability.cc,v 1.1 2002/06/06 18:03:28 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4O18GEMProbability.hh" + +G4O18GEMProbability::G4O18GEMProbability() : + G4GEMProbability(18,8,0.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(1982.*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(2.6*picosecond); + + ExcitEnergies.push_back(3552.9*keV); + ExcitSpins.push_back(4.0); + ExcitLifetimes.push_back(2.0*picosecond); + + ExcitEnergies.push_back(3631.7*keV); + ExcitSpins.push_back(0.0); + ExcitLifetimes.push_back(2.1*picosecond); + + ExcitEnergies.push_back(3919.1*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(0.12*picosecond); + + ExcitEnergies.push_back(4448.8*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(0.08*picosecond); + + ExcitEnergies.push_back(7620.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.5*keV)); + + ExcitEnergies.push_back(8039.0*keV); + ExcitSpins.push_back(1.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(2.5*keV)); + + ExcitEnergies.push_back(8213.0*keV); + ExcitSpins.push_back(2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(1.0*keV)); + + ExcitEnergies.push_back(8283.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(8.0*keV)); + + ExcitEnergies.push_back(10119.0*keV); + ExcitSpins.push_back(3.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(16.0*keV)); + +} + + +G4O18GEMProbability::G4O18GEMProbability(const G4O18GEMProbability &right) +{ + G4Exception("G4O18GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4O18GEMProbability & G4O18GEMProbability:: +operator=(const G4O18GEMProbability &right) +{ + G4Exception("G4O18GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4O18GEMProbability::operator==(const G4O18GEMProbability &right) const +{ + return false; +} + +G4bool G4O18GEMProbability::operator!=(const G4O18GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc new file mode 100644 index 0000000000..c379e2f6bc --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4O19GEMProbability.cc,v 1.1 2002/06/06 18:03:30 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4O19GEMProbability.hh" + +G4O19GEMProbability::G4O19GEMProbability() : + G4GEMProbability(19,8,5.0/2.0) // A,Z,Spin +{ + + ExcitEnergies.push_back(96.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(1.37e-3*picosecond); + + ExcitEnergies.push_back(1471.7*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(0.78*picosecond); + + ExcitEnergies.push_back(3154.5*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(1.0*picosecond); + + ExcitEnergies.push_back(4583.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(53.0*keV)); + + ExcitEnergies.push_back(4707.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(15.0*keV)); + + ExcitEnergies.push_back(5086.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(49.0*keV)); + + ExcitEnergies.push_back(5149.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(3.4*keV)); + + ExcitEnergies.push_back(5455.0*keV); + ExcitSpins.push_back(5.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(330.0*keV)); + + ExcitEnergies.push_back(5706.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(7.8*keV)); + + ExcitEnergies.push_back(6130.0*keV); + ExcitSpins.push_back(3.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(150.0*keV)); + + ExcitEnergies.push_back(6200.0*keV); + ExcitSpins.push_back(1.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(140.0*keV)); + + ExcitEnergies.push_back(6276.0*keV); + ExcitSpins.push_back(7.0/2.0); + ExcitLifetimes.push_back(hbar_Planck*log(2.0)/(19.2*keV)); +} + + +G4O19GEMProbability::G4O19GEMProbability(const G4O19GEMProbability &right) +{ + G4Exception("G4O19GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4O19GEMProbability & G4O19GEMProbability:: +operator=(const G4O19GEMProbability &right) +{ + G4Exception("G4O19GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4O19GEMProbability::operator==(const G4O19GEMProbability &right) const +{ + return false; +} + +G4bool G4O19GEMProbability::operator!=(const G4O19GEMProbability &right) const +{ + return true; +} + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc new file mode 100644 index 0000000000..9cd0c1db55 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.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: G4O20GEMProbability.cc,v 1.1 2002/06/06 18:03:31 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4O20GEMProbability.hh" + +G4O20GEMProbability::G4O20GEMProbability() : + G4GEMProbability(20,8,0.0) // A,Z,Spin +{} + + +G4O20GEMProbability::G4O20GEMProbability(const G4O20GEMProbability &right) +{ + G4Exception("G4O20GEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4O20GEMProbability & G4O20GEMProbability:: +operator=(const G4O20GEMProbability &right) +{ + G4Exception("G4O20GEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4O20GEMProbability::operator==(const G4O20GEMProbability &right) const +{ + return false; +} + +G4bool G4O20GEMProbability::operator!=(const G4O20GEMProbability &right) const +{ + return true; +} + + + 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 c1933ab349..90a8b3a9fb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PairingCorrection.cc,v 1.4 2001/10/05 16:13:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PairingCorrection.cc,v 1.5 2001/11/08 10:11:18 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -31,22 +31,17 @@ #include "G4PairingCorrection.hh" -// G4double G4PairingCorrection:: -// GetPairingCorrection(const G4int anA, const G4int aZ) -// { -// const G4double PairingConstant = 12.0*MeV; -// const G4int N = anA - aZ; -// G4double Pair = (1.0 - G4double(aZ) + 2.0*(aZ/2)) + (1.0 - G4double(N) + 2.0*(N/2)); -// G4double PCorrection = Pair*PairingConstant/sqrt(G4double(anA)); -// return PCorrection; -// } +G4PairingCorrection* G4PairingCorrection::theInstance = 0; - - -G4PairingCorrection G4PairingCorrection::theInstance(10.0); - -G4PairingCorrection::G4PairingCorrection(G4double dummy) +G4PairingCorrection::G4PairingCorrection() { - G4double even_more_dummy = dummy; - even_more_dummy/=2.; + theCookPairingCorrections = G4CookPairingCorrections::GetInstance(); + theCameronGilbertPairingCorrections = G4CameronGilbertPairingCorrections::GetInstance(); +// theCameronTruranHilfPairingCorrections = G4CameronTruranHilfPairingCorrections::GetInstance(); } + +G4PairingCorrection* G4PairingCorrection::GetInstance() +{ + if (!theInstance) theInstance = new G4PairingCorrection(); + return theInstance; +} 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 35d6b6d3b4..7ea793a378 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc @@ -144,6 +144,10 @@ G4FragmentVector* G4PhotonEvaporation::BreakUp(const G4Fragment& nucleus) if (_verbose > 0) G4cout << "*-*-*-* Photon evaporation: " << products->size() << G4endl; +#ifdef debug + CheckConservation(nucleus,products); +#endif + return products; } 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 05fc8fa5ad..da9ea3ec15 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonCoulombBarrier.cc,v 1.4 2001/08/01 17:05:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 aeb26060df..69add8ceac 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationChannel.cc,v 1.4 2001/08/01 17:05:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 08647472ce..860a8f4f89 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationProbability.cc,v 1.4 2001/08/01 17:05:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..618afddc15 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.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: G4ProtonGEMChannel.cc,v 1.1 2002/06/06 18:03:32 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov. 1999) +// + +#include "G4ProtonGEMChannel.hh" + + +const G4ProtonGEMChannel & G4ProtonGEMChannel::operator=(const G4ProtonGEMChannel & right) +{ + G4Exception("G4ProtonGEMChannel::operator= meant to not be accessable"); + return *this; +} + +G4ProtonGEMChannel::G4ProtonGEMChannel(const G4ProtonGEMChannel & right) +{ + G4Exception("G4ProtonGEMChannel::CopyConstructor meant to not be accessable"); +} + +G4bool G4ProtonGEMChannel::operator==(const G4ProtonGEMChannel & right) const +{ + return (this == (G4ProtonGEMChannel *) &right); + // return false; +} + +G4bool G4ProtonGEMChannel::operator!=(const G4ProtonGEMChannel & right) const +{ + return (this != (G4ProtonGEMChannel *) &right); + // return true; +} + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc new file mode 100644 index 0000000000..f0fd72a302 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.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. * +// ******************************************************************** +// +// +// $Id: G4ProtonGEMProbability.cc,v 1.1 2002/06/06 18:03:33 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Sept 2001) +// + + +#include "G4ProtonGEMProbability.hh" + +G4ProtonGEMProbability::G4ProtonGEMProbability() : + G4GEMProbability(1,1,1.0/2.0) // A,Z,Gamma +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4ProtonGEMProbability::G4ProtonGEMProbability(const G4ProtonGEMProbability &right) +{ + G4Exception("G4ProtonGEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4ProtonGEMProbability & G4ProtonGEMProbability:: +operator=(const G4ProtonGEMProbability &right) +{ + G4Exception("G4ProtonGEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4ProtonGEMProbability::operator==(const G4ProtonGEMProbability &right) const +{ + return false; +} + +G4bool G4ProtonGEMProbability::operator!=(const G4ProtonGEMProbability &right) const +{ + return true; +} + + +G4double G4ProtonGEMProbability::CCoeficient(const G4double aZ) const +{ + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // G4double Zlist[5] = { 10.0, 20.0, 30.0, 50.0, 70.0}; + // G4double Cp[5] = { 0.50, 0.28, 0.20, 0.15, 0.10}; + G4double C = 0.0; + + if (aZ >= 70) { + C = 0.10; + } else { + C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; + } + + return C; + +} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ShellCorrection.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ShellCorrection.cc new file mode 100644 index 0000000000..6400deca31 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ShellCorrection.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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.cc,v 1.1 2001/11/08 10:11:39 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#include "G4ShellCorrection.hh" + + +G4ShellCorrection* G4ShellCorrection::theInstance = 0; + +G4ShellCorrection::G4ShellCorrection() +{ + theCookShellCorrections = G4CookShellCorrections::GetInstance(); + theCameronGilbertShellCorrections = G4CameronGilbertShellCorrections::GetInstance(); +// theCameronTruranHilfShellCorrections = G4CameronTruranHilfShellCorrections::GetInstance(); +} + + +G4ShellCorrection* G4ShellCorrection::GetInstance() +{ + if (!theInstance) theInstance = new G4ShellCorrection(); + return theInstance; +} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Solver.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Solver.cc index abd83b1841..86e702b10d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Solver.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Solver.cc @@ -22,7 +22,7 @@ // // // $Id: G4Solver.cc,v 1.4 2001/08/01 17:05:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StableFermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StableFermiFragment.cc index c7dcac8b24..19c291e789 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StableFermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StableFermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4StableFermiFragment.cc,v 1.5 2001/08/01 17:05:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMF.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMF.cc index 5855fbf33e..b0ac5a1c4d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMF.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMF.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMF.cc,v 1.9 2001/10/05 16:13:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMF.cc,v 1.12 2002/06/13 08:59:03 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -36,7 +36,7 @@ G4StatMF::G4StatMF() : _theEnsemble(0) {} // Destructor -G4StatMF::~G4StatMF() {}; //{if (_theEnsemble != 0) delete _theEnsemble;} +G4StatMF::~G4StatMF() {} //{if (_theEnsemble != 0) delete _theEnsemble;} // Copy constructor @@ -74,23 +74,24 @@ G4bool G4StatMF::operator!=(const G4StatMF & right) G4FragmentVector * G4StatMF::BreakItUp(const G4Fragment &theFragment) { - // G4FragmentVector * theResult = new G4FragmentVector; + // G4FragmentVector * theResult = new G4FragmentVector; - if (theFragment.GetExcitationEnergy() <= 0.0) { - G4FragmentVector * theResult = new G4FragmentVector; - theResult->push_back(new G4Fragment(theFragment)); - return 0; - } + if (theFragment.GetExcitationEnergy() <= 0.0) { + G4FragmentVector * theResult = new G4FragmentVector; + theResult->push_back(new G4Fragment(theFragment)); + return 0; + } - // Maximun average multiplicity: M_0 = 2.6 for A ~ 200 - // and M_0 = 3.3 for A <= 110 - G4double MaxAverageMultiplicity = 2.6; - if (theFragment.GetA() <= 110) MaxAverageMultiplicity = 3.3; + // Maximun average multiplicity: M_0 = 2.6 for A ~ 200 + // and M_0 = 3.3 for A <= 110 + G4double MaxAverageMultiplicity = + G4StatMFParameters::GetMaxAverageMultiplicity(theFragment.GetA()); + // We'll use two kinds of ensembles - G4StatMFMicroCanonical * theMicrocanonicalEnsemble = 0; - G4StatMFMacroCanonical * theMacrocanonicalEnsemble = 0; + G4StatMFMicroCanonical * theMicrocanonicalEnsemble = 0; + G4StatMFMacroCanonical * theMacrocanonicalEnsemble = 0; //------------------------------------------------------- @@ -98,239 +99,200 @@ G4FragmentVector * G4StatMF::BreakItUp(const G4Fragment &theFragment) //------------------------------------------------------- // Microcanonical ensemble initialization - theMicrocanonicalEnsemble = new G4StatMFMicroCanonical(theFragment); + theMicrocanonicalEnsemble = new G4StatMFMicroCanonical(theFragment); - G4int Iterations = 0; - G4double Temperature = 0.0; + G4int Iterations = 0; + G4double Temperature = 0.0; - G4bool FirstTime = true; - G4StatMFChannel * theChannel = 0; + G4bool FirstTime = true; + G4StatMFChannel * theChannel = 0; - G4bool ChannelOk; - do { // Try to de-excite as much as 10 times - do { - - G4double theMeanMult = theMicrocanonicalEnsemble->GetMeanMultiplicity(); - if (theMeanMult <= MaxAverageMultiplicity) { - // G4cout << "MICROCANONICAL" << G4endl; - // choose fragments atomic numbers and charges from direct simulation - theChannel = theMicrocanonicalEnsemble->ChooseAandZ(theFragment); - _theEnsemble = theMicrocanonicalEnsemble; - } else { - //------------------------------------------------- - // Non direct simulation part (Macrocanonical Ensemble) - //------------------------------------------------- - if (FirstTime) { - // Macrocanonical ensemble initialization - theMacrocanonicalEnsemble = new G4StatMFMacroCanonical(theFragment); - _theEnsemble = theMacrocanonicalEnsemble; - FirstTime = false; - } - // G4cout << "MACROCANONICAL" << G4endl; - // Select calculated fragment total multiplicity, - // fragment atomic numbers and fragment charges. - theChannel = theMacrocanonicalEnsemble->ChooseAandZ(theFragment); - } - - if (!(ChannelOk = theChannel->CheckFragments())) delete theChannel; - - } while (!ChannelOk); - - - if (theChannel->GetMultiplicity() <= 1) { - G4FragmentVector * theResult = new G4FragmentVector; - theResult->push_back(new G4Fragment(theFragment)); - delete theMicrocanonicalEnsemble; - if (theMacrocanonicalEnsemble != 0) delete theMacrocanonicalEnsemble; - delete theChannel; - return theResult; - } - - //-------------------------------------- - // Second part of simulation procedure. - //-------------------------------------- - - // Find temperature of breaking channel. - Temperature = _theEnsemble->GetMeanTemperature(); // Initial value for Temperature - - if (FindTemperatureOfBreakingChannel(theFragment,theChannel,Temperature)) break; - - } while (Iterations++ < 10); - - - // If Iterations >= 10 means that we couldn't solve for temperature - if (Iterations >= 10) G4Exception("G4StatMF::BreakItUp: Was not possible to solve for temperature of breaking channel"); - - - G4FragmentVector * theResult = theChannel->GetFragments(theFragment.GetA(),theFragment.GetZ(),Temperature); - - - - // ~~~~~~ Energy conservation Patch !!!!!!!!!!!!!!!!!!!!!! - // Original nucleus 4-momentum in CM system - G4LorentzVector InitialMomentum(theFragment.GetMomentum()); - InitialMomentum.boost(-InitialMomentum.boostVector()); - G4double ScaleFactor = 0.0; - G4double SavedScaleFactor = 0.0; + G4bool ChannelOk; + do { // Try to de-excite as much as 10 times do { - G4double FragmentsEnergy = 0.0; - G4FragmentVector::iterator j; - for (j = theResult->begin(); j != theResult->end(); j++) - FragmentsEnergy += (*j)->GetMomentum().e(); - SavedScaleFactor = ScaleFactor; - ScaleFactor = InitialMomentum.e()/FragmentsEnergy; - G4ThreeVector ScaledMomentum(0.0,0.0,0.0); - for (j = theResult->begin(); j != theResult->end(); j++) { - ScaledMomentum = ScaleFactor * (*j)->GetMomentum().vect(); - G4double Mass = (*j)->GetMomentum().m(); - G4LorentzVector NewMomentum; - NewMomentum.setVect(ScaledMomentum); - NewMomentum.setE(sqrt(ScaledMomentum.mag2()+Mass*Mass)); - (*j)->SetMomentum(NewMomentum); + + G4double theMeanMult = theMicrocanonicalEnsemble->GetMeanMultiplicity(); + if (theMeanMult <= MaxAverageMultiplicity) { + // G4cout << "MICROCANONICAL" << G4endl; + // Choose fragments atomic numbers and charges from direct simulation + theChannel = theMicrocanonicalEnsemble->ChooseAandZ(theFragment); + _theEnsemble = theMicrocanonicalEnsemble; + } else { + //----------------------------------------------------- + // Non direct simulation part (Macrocanonical Ensemble) + //----------------------------------------------------- + if (FirstTime) { + // Macrocanonical ensemble initialization + theMacrocanonicalEnsemble = new G4StatMFMacroCanonical(theFragment); + _theEnsemble = theMacrocanonicalEnsemble; + FirstTime = false; } - } while (ScaleFactor > 1.0+1.e-5 && abs(ScaleFactor-SavedScaleFactor)/ScaleFactor > 1.e-10); - // ~~~~~~ End of patch !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - // Perform Lorentz boost - G4FragmentVector::iterator i; - for (i = theResult->begin(); i != theResult->end(); i++) { - G4LorentzVector FourMom = (*i)->GetMomentum(); - FourMom.boost(theFragment.GetMomentum().boostVector()); - (*i)->SetMomentum(FourMom); + // G4cout << "MACROCANONICAL" << G4endl; + // Select calculated fragment total multiplicity, + // fragment atomic numbers and fragment charges. + theChannel = theMacrocanonicalEnsemble->ChooseAandZ(theFragment); + } + + if (!(ChannelOk = theChannel->CheckFragments())) delete theChannel; + + } while (!ChannelOk); + + + if (theChannel->GetMultiplicity() <= 1) { + G4FragmentVector * theResult = new G4FragmentVector; + theResult->push_back(new G4Fragment(theFragment)); + delete theMicrocanonicalEnsemble; + if (theMacrocanonicalEnsemble != 0) delete theMacrocanonicalEnsemble; + delete theChannel; + return theResult; } - - // garbage collection - delete theMicrocanonicalEnsemble; - if (theMacrocanonicalEnsemble != 0) delete theMacrocanonicalEnsemble; - delete theChannel; - - return theResult; + + //-------------------------------------- + // Second part of simulation procedure. + //-------------------------------------- + + // Find temperature of breaking channel. + Temperature = _theEnsemble->GetMeanTemperature(); // Initial value for Temperature + + if (FindTemperatureOfBreakingChannel(theFragment,theChannel,Temperature)) break; + + } while (Iterations++ < 10); + + + // If Iterations >= 10 means that we couldn't solve for temperature + if (Iterations >= 10) + G4Exception("G4StatMF::BreakItUp: Was not possible to solve for temperature of breaking channel"); + + + G4FragmentVector * theResult = theChannel-> + GetFragments(theFragment.GetA(),theFragment.GetZ(),Temperature); + + + + // ~~~~~~ Energy conservation Patch !!!!!!!!!!!!!!!!!!!!!! + // Original nucleus 4-momentum in CM system + G4LorentzVector InitialMomentum(theFragment.GetMomentum()); + InitialMomentum.boost(-InitialMomentum.boostVector()); + G4double ScaleFactor = 0.0; + G4double SavedScaleFactor = 0.0; + do { + G4double FragmentsEnergy = 0.0; + G4FragmentVector::iterator j; + for (j = theResult->begin(); j != theResult->end(); j++) + FragmentsEnergy += (*j)->GetMomentum().e(); + SavedScaleFactor = ScaleFactor; + ScaleFactor = InitialMomentum.e()/FragmentsEnergy; + G4ThreeVector ScaledMomentum(0.0,0.0,0.0); + for (j = theResult->begin(); j != theResult->end(); j++) { + ScaledMomentum = ScaleFactor * (*j)->GetMomentum().vect(); + G4double Mass = (*j)->GetMomentum().m(); + G4LorentzVector NewMomentum; + NewMomentum.setVect(ScaledMomentum); + NewMomentum.setE(sqrt(ScaledMomentum.mag2()+Mass*Mass)); + (*j)->SetMomentum(NewMomentum); + } + } while (ScaleFactor > 1.0+1.e-5 && abs(ScaleFactor-SavedScaleFactor)/ScaleFactor > 1.e-10); + // ~~~~~~ End of patch !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + // Perform Lorentz boost + G4FragmentVector::iterator i; + for (i = theResult->begin(); i != theResult->end(); i++) { + G4LorentzVector FourMom = (*i)->GetMomentum(); + FourMom.boost(theFragment.GetMomentum().boostVector()); + (*i)->SetMomentum(FourMom); +#ifdef pctest + (*i)->SetCreatorModel(G4String("G4StatMF")); +#endif + } + + // garbage collection + delete theMicrocanonicalEnsemble; + if (theMacrocanonicalEnsemble != 0) delete theMacrocanonicalEnsemble; + delete theChannel; + + return theResult; } G4bool G4StatMF::FindTemperatureOfBreakingChannel(const G4Fragment & theFragment, const G4StatMFChannel * aChannel, G4double & Temperature) - // This finds temperature of breaking channel. + // This finds temperature of breaking channel. { - G4double A = theFragment.GetA(); - G4double Z = theFragment.GetZ(); - G4double U = theFragment.GetExcitationEnergy(); - - G4double T = G4std::max(Temperature,0.0012*MeV); - - G4double Ta = T; - G4double Tb = T; - - - G4double TotalEnergy = CalcEnergy(A,Z,aChannel,T); - - G4double Da = (U - TotalEnergy)/U; - G4double Db = 0.0; + G4double A = theFragment.GetA(); + G4double Z = theFragment.GetZ(); + G4double U = theFragment.GetExcitationEnergy(); + + G4double T = G4std::max(Temperature,0.0012*MeV); + + G4double Ta = T; + G4double Tb = T; + + + G4double TotalEnergy = CalcEnergy(A,Z,aChannel,T); + + G4double Da = (U - TotalEnergy)/U; + G4double Db = 0.0; + + // bracketing the solution + if (Da == 0.0) { + Temperature = T; + return true; + } else if (Da < 0.0) { + do { + Tb -= 0.5 * abs(Tb); + T = Tb; + if (Tb < 0.001*MeV) return false; + + TotalEnergy = CalcEnergy(A,Z,aChannel,T); + + Db = (U - TotalEnergy)/U; + } while (Db < 0.0); - // bracketing the solution - if (Da == 0.0) { - Temperature = T; - return true; - } else if (Da < 0.0) { - do { - Tb -= 0.5 * abs(Tb); - T = Tb; - if (Tb < 0.001*MeV) return false; - - TotalEnergy = CalcEnergy(A,Z,aChannel,T); - - Db = (U - TotalEnergy)/U; - } while (Db < 0.0); - + } else { + do { + Tb += 0.5 * abs(Tb); + T = Tb; + + TotalEnergy = CalcEnergy(A,Z,aChannel,T); + + Db = (U - TotalEnergy)/U; + } while (Db > 0.0); + } + + G4double eps = 1.0e-14 * abs(Tb-Ta); + //G4double eps = 1.0e-3 ; + + // Start the bisection method + for (G4int j = 0; j < 1000; j++) { + G4double Tc = (Ta+Tb)/2.0; + if (abs(Ta-Tc) <= eps) { + Temperature = Tc; + return true; + } + + T = Tc; + + TotalEnergy = CalcEnergy(A,Z,aChannel,T); + + G4double Dc = (U - TotalEnergy)/U; + + if (Dc == 0.0) { + Temperature = Tc; + return true; + } + + if (Da*Dc < 0.0) { + Tb = Tc; + Db = Dc; } else { - do { - Tb += 0.5 * abs(Tb); - T = Tb; - - TotalEnergy = CalcEnergy(A,Z,aChannel,T); - - Db = (U - TotalEnergy)/U; - } while (Db > 0.0); + Ta = Tc; + Da = Dc; } - - G4double eps = 1.0e-14 * abs(Tb-Ta); - //G4double eps = 1.0e-3 ; - - // Start the bisection method - for (G4int j = 0; j < 1000; j++) { - G4double Tc = (Ta+Tb)/2.0; - if (abs(Ta-Tc) <= eps) { - Temperature = Tc; - return true; - } - - T = Tc; - - TotalEnergy = CalcEnergy(A,Z,aChannel,T); - - G4double Dc = (U - TotalEnergy)/U; - - if (Dc == 0.0) { - Temperature = Tc; - return true; - } - - if (Da*Dc < 0.0) { - Tb = Tc; - Db = Dc; - } else { - Ta = Tc; - Da = Dc; - } - } - - Temperature = (Ta+Tb)/2.0; - return false; - // *********************************************************** - // const G4double HT = 0.5; - // G4double H = 0.0; - // G4int counter = 0; - // G4int id = 0; - // G4int K1 = 0, K2 = 0; - - // do { - - // G4double TotalEnergy = CalcEnergy(A,Z,aChannel,T); - // - // G4double D = (U - TotalEnergy)/U; - // if (abs(D) < 0.003) { - // Temperature = T; - // return true; - // } - // counter++; - // - // if (D < 0.0) H = -HT; - // else H = HT; - // - // if (D <= 0.0) { - // for (;;) { - // K1 = 1; - // if (K1 ==1 && K2 == 1) id++; - // if (id > 30) return false; - // T += H/pow(2.0,id); - // if ( T >= 0.001) break; - // K2 = 1; - // H = HT; - // } - // } else { - // for (;;) { - // K2 = 1; - // if (K1 ==1 && K2 == 1) id++; - // if (id > 30) return false; - // T += H/pow(2.0,id); - // if ( T >= 0.001) break; - // K1 = 1; - // H = HT; - // } - // } - // } while (counter <= 120); - // return false; + } + + Temperature = (Ta+Tb)/2.0; + return false; } 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 e9d56b2c29..8aff89ea79 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc @@ -21,13 +21,32 @@ // ******************************************************************** // // -// $Id: G4StatMFChannel.cc,v 1.8 2001/10/05 16:13:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFChannel.cc,v 1.11 2002/06/17 17:27:15 stesting Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4StatMFChannel.hh" +#include + +class SumCoulombEnergy : public G4std::binary_function +{ +public: + SumCoulombEnergy() : total(0.0) {} + G4double operator() (G4double& probSoFar, G4StatMFFragment*& frag) + { + total += frag->GetCoulombEnergy(); + return total; + } + + G4double GetTotal() { return total; } +public: + G4double total; +}; + + + // Copy constructor @@ -62,12 +81,15 @@ G4bool G4StatMFChannel::operator!=(const G4StatMFChannel & right) const G4bool G4StatMFChannel::CheckFragments(void) { - for (unsigned int i = 0; i < _theFragments.size(); i++) { - G4int A = G4int(_theFragments[i]->GetA()); - G4int Z = G4int(_theFragments[i]->GetZ()); + G4std::deque::iterator i; + for (i = _theFragments.begin(); + i != _theFragments.end(); ++i) + { + G4int A = G4int((*i)->GetA()); + G4int Z = G4int((*i)->GetZ()); if (A > 1 && (Z >= A || Z <= 0) || (A==1 && Z > A) || A <= 0) return false; } - + return true; } @@ -93,9 +115,11 @@ void G4StatMFChannel::CreateFragment(const G4double A, const G4double Z) G4double G4StatMFChannel::GetFragmentsCoulombEnergy(void) { - G4double Coulomb = 0.0; - for (unsigned int i = 0;i < _theFragments.size(); i++) - Coulomb += _theFragments[i]->GetCoulombEnergy(); + G4double Coulomb = G4std::accumulate(_theFragments.begin(),_theFragments.end(), + 0.0,SumCoulombEnergy()); +// G4double Coulomb = 0.0; +// for (unsigned int i = 0;i < _theFragments.size(); i++) +// Coulomb += _theFragments[i]->GetCoulombEnergy(); return Coulomb; } @@ -105,10 +129,13 @@ G4double G4StatMFChannel::GetFragmentsEnergy(const G4double T) const { G4double Energy = 0.0; - G4double TranslationalEnergy = (3./2.)*T*_theFragments.size(); - - for (unsigned int i = 0;i < _theFragments.size(); i++) - Energy += _theFragments[i]->GetEnergy(T); + G4double TranslationalEnergy = (3./2.)*T*G4double(_theFragments.size()); + + G4std::deque::const_iterator i; + for (i = _theFragments.begin(); i != _theFragments.end(); ++i) + { + Energy += (*i)->GetEnergy(T); + } return Energy + TranslationalEnergy; } @@ -117,7 +144,6 @@ G4FragmentVector * G4StatMFChannel::GetFragments(const G4double anA, const G4double T) // { - // calculate momenta of charged fragments CoulombImpulse(anA,anZ,T); @@ -126,8 +152,9 @@ G4FragmentVector * G4StatMFChannel::GetFragments(const G4double anA, G4FragmentVector * theResult = new G4FragmentVector; - for (unsigned int i = 0; i < _theFragments.size(); i++) - theResult->push_back(_theFragments[i]->GetFragment(T)); + G4std::deque::iterator i; + for (i = _theFragments.begin(); i != _theFragments.end(); ++i) + theResult->push_back((*i)->GetFragment(T)); return theResult; @@ -164,43 +191,47 @@ void G4StatMFChannel::PlaceFragments(const G4double anA) const G4double Rsys = 2.0*R0*pow(anA,1./3.); G4bool TooMuchIterations; - do { + do + { TooMuchIterations = false; - + // Sample the position of the first fragment G4double R = (Rsys - R0*pow(_theFragments[0]->GetA(),1./3.))* - pow(G4UniformRand(),1./3.); + pow(G4UniformRand(),1./3.); _theFragments[0]->SetPosition(IsotropicVector(R)); - - + + // Sample the position of the remaining fragments G4bool ThereAreOverlaps = false; - for (unsigned int i = 1; i < _theFragments.size(); i++) { + G4std::deque::iterator i; + for (i = _theFragments.begin()+1; i != _theFragments.end(); ++i) + { G4int counter = 0; - do { - R = (Rsys - R0*pow(_theFragments[i]->GetA(),1./3.))* - pow(G4UniformRand(),1./3.); - _theFragments[i]->SetPosition(IsotropicVector(R)); - - // Check that there are not overlapping fragments - for (unsigned int j = 0; j < i; j++) { - G4ThreeVector FragToFragVector = - _theFragments[i]->GetPosition() - _theFragments[j]->GetPosition(); - - G4double Rmin = R0*(pow(_theFragments[i]->GetA(),1./3.) + - pow(_theFragments[j]->GetA(),1./3)); + do + { + R = (Rsys - R0*pow((*i)->GetA(),1./3.))*pow(G4UniformRand(),1./3.); + (*i)->SetPosition(IsotropicVector(R)); + + // Check that there are not overlapping fragments + G4std::deque::iterator j; + for (j = _theFragments.begin(); j != i; ++j) + { + G4ThreeVector FragToFragVector = (*i)->GetPosition() - (*j)->GetPosition(); + G4double Rmin = R0*(pow((*i)->GetA(),1./3.) + + pow((*j)->GetA(),1./3)); if (ThereAreOverlaps = (FragToFragVector.mag2() < Rmin*Rmin)) break; - } + } counter++; - } while (ThereAreOverlaps && counter < 1000); - - if (counter >= 1000) { + } while (ThereAreOverlaps && counter < 1000); + + if (counter >= 1000) + { TooMuchIterations = true; break; - } - } + } + } } while (TooMuchIterations); - + return; } @@ -218,43 +249,52 @@ void G4StatMFChannel::FragmentsMomenta(const G4int NF, const G4int idx, G4ThreeVector p; if (NF <= 0) return; - else if (NF == 1) { + else if (NF == 1) + { // We have only one fragment to deal with p = IsotropicVector(sqrt(2.0*_theFragments[idx]->GetNuclearMass()*KinE)); _theFragments[idx]->SetMomentum(p); - } else if (NF == 2) { + } + else if (NF == 2) + { // We have only two fragment to deal with G4double M1 = _theFragments[idx]->GetNuclearMass(); G4double M2 = _theFragments[idx+1]->GetNuclearMass(); p = IsotropicVector(sqrt(2.0*KinE*(M1*M2)/(M1+M2))); _theFragments[idx]->SetMomentum(p); _theFragments[idx+1]->SetMomentum(-p); - } else { + } + else + { // We have more than two fragments G4double AvailableE; G4int i1,i2; G4double SummedE; G4ThreeVector SummedP; - do { + do + { // Fisrt sample momenta of NF-2 fragments // according to Boltzmann distribution AvailableE = 0.0; SummedE = 0.0; SummedP.setX(0.0);SummedP.setY(0.0);SummedP.setZ(0.0); - for (G4int i = idx; i < idx+NF-2; i++) { + for (G4int i = idx; i < idx+NF-2; i++) + { G4double E; G4double RandE; G4double Boltzmann; - do { + do + { E = 9.0*T*G4UniformRand(); Boltzmann = sqrt(E)*exp(-E/T); RandE = sqrt(T/2.)*exp(-0.5)*G4UniformRand(); - } while (RandE > Boltzmann); + } + while (RandE > Boltzmann); p = IsotropicVector(sqrt(2.0*E*_theFragments[i]->GetNuclearMass())); _theFragments[i]->SetMomentum(p); SummedE += E; SummedP += p; - } + } // Calculate momenta of last two fragments in such a way // that constraints are satisfied i1 = idx+NF-2; // before last fragment index @@ -262,19 +302,23 @@ void G4StatMFChannel::FragmentsMomenta(const G4int NF, const G4int idx, p = -SummedP; AvailableE = KinE - SummedE; // Available Kinetic Energy should be shared between two last fragments - } while (AvailableE <= p.mag2()/(2.0*(_theFragments[i1]->GetNuclearMass()+ - _theFragments[i2]->GetNuclearMass()))); + } + while (AvailableE <= p.mag2()/(2.0*(_theFragments[i1]->GetNuclearMass()+ + _theFragments[i2]->GetNuclearMass()))); - // G4double H = 1.0 + _theFragments(i2)->GetA()/_theFragments(i1)->GetA(); G4double H = 1.0 + _theFragments[i2]->GetNuclearMass()/_theFragments[i1]->GetNuclearMass(); G4double CTM12 = H*(1.0 - 2.0*_theFragments[i2]->GetNuclearMass()*AvailableE/p.mag2()); G4double CosTheta1; G4double Sign; - do { - do { + do + { + do + { CosTheta1 = 1.0 - 2.0*G4UniformRand(); - } while (CosTheta1*CosTheta1 < CTM12); - } while (CTM12 >= 0.0 && CosTheta1 < 0.0); + } + while (CosTheta1*CosTheta1 < CTM12); + } + while (CTM12 >= 0.0 && CosTheta1 < 0.0); if (CTM12 < 0.0) Sign = 1.0; else if (G4UniformRand() <= 0.5) Sign = -1.0; @@ -296,7 +340,7 @@ void G4StatMFChannel::FragmentsMomenta(const G4int NF, const G4int idx, G4ThreeVector p1(P1*SinTheta1*CosPhi1,P1*SinTheta1*SinPhi1,P1*CosTheta1); G4ThreeVector p2(P2*SinTheta2*CosPhi2,P2*SinTheta2*SinPhi2,P2*CosTheta2); G4ThreeVector b(1.0,0.0,0.0); - + p1 = RotateMomentum(p,b,p1); p2 = RotateMomentum(p,b,p2); @@ -307,7 +351,7 @@ void G4StatMFChannel::FragmentsMomenta(const G4int NF, const G4int idx, _theFragments[i1]->SetMomentum(p1); _theFragments[i2]->SetMomentum(p2); - } + } return; } @@ -317,83 +361,95 @@ void G4StatMFChannel::SolveEqOfMotion(const G4double anA, const G4double anZ, co // This method will find a solution of Newton's equation of motion // for fragments in the self-consistent time-dependent Coulomb field { - G4double CoulombEnergy = (3./5.)*(elm_coupling*anZ*anZ)* - pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)/ - (G4StatMFParameters::Getr0()*pow(anA,1./3.)) - - GetFragmentsCoulombEnergy(); - if (CoulombEnergy <= 0.0) return; - - G4int Iterations = 0; - G4double TimeN = 0.0; - G4double TimeS = 0.0; - G4double DeltaTime = 10.0; - - G4ThreeVector * Pos = new G4ThreeVector[_NumOfChargedFragments]; - G4ThreeVector * Vel = new G4ThreeVector[_NumOfChargedFragments]; - G4ThreeVector * Accel = new G4ThreeVector[_NumOfChargedFragments]; - - G4int i; - for (i = 0; i < _NumOfChargedFragments; i++) { - Vel[i] = (1.0/(_theFragments[i]->GetNuclearMass()))* - _theFragments[i]->GetMomentum(); - Pos[i] = _theFragments[i]->GetPosition(); + G4double CoulombEnergy = (3./5.)*(elm_coupling*anZ*anZ)* + pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)/ + (G4StatMFParameters::Getr0()*pow(anA,1./3.)) + - GetFragmentsCoulombEnergy(); + if (CoulombEnergy <= 0.0) return; + + G4int Iterations = 0; + G4double TimeN = 0.0; + G4double TimeS = 0.0; + G4double DeltaTime = 10.0; + + G4ThreeVector * Pos = new G4ThreeVector[_NumOfChargedFragments]; + G4ThreeVector * Vel = new G4ThreeVector[_NumOfChargedFragments]; + G4ThreeVector * Accel = new G4ThreeVector[_NumOfChargedFragments]; + + G4int i; + for (i = 0; i < _NumOfChargedFragments; i++) + { + Vel[i] = (1.0/(_theFragments[i]->GetNuclearMass()))* + _theFragments[i]->GetMomentum(); + Pos[i] = _theFragments[i]->GetPosition(); } - do { + do + { - G4ThreeVector distance; - G4ThreeVector force; + G4ThreeVector distance; + G4ThreeVector force; - for (i = 0; i < _NumOfChargedFragments; i++) { - force.setX(0.0); force.setY(0.0); force.setZ(0.0); - for (G4int j = 0; j < _NumOfChargedFragments; j++) { - if (i != j) { - distance = Pos[i] - Pos[j]; - force += (elm_coupling*(_theFragments[i]->GetZ()*_theFragments[j]->GetZ())/ - (distance.mag2()*distance.mag()))*distance; + for (i = 0; i < _NumOfChargedFragments; i++) + { + force.setX(0.0); force.setY(0.0); force.setZ(0.0); + for (G4int j = 0; j < _NumOfChargedFragments; j++) + { + if (i != j) + { + distance = Pos[i] - Pos[j]; + force += (elm_coupling*(_theFragments[i]->GetZ()*_theFragments[j]->GetZ())/ + (distance.mag2()*distance.mag()))*distance; } } - Accel[i] = (1./(_theFragments[i]->GetNuclearMass()))*force; + Accel[i] = (1./(_theFragments[i]->GetNuclearMass()))*force; } - TimeN = TimeS + DeltaTime; + TimeN = TimeS + DeltaTime; - G4ThreeVector SavedVel; - for ( i = 0; i < _NumOfChargedFragments; i++) { - SavedVel = Vel[i]; - Vel[i] += Accel[i]*(TimeN-TimeS); - Pos[i] += (SavedVel+Vel[i])*(TimeN-TimeS)*0.5; + G4ThreeVector SavedVel; + for ( i = 0; i < _NumOfChargedFragments; i++) + { + SavedVel = Vel[i]; + Vel[i] += Accel[i]*(TimeN-TimeS); + Pos[i] += (SavedVel+Vel[i])*(TimeN-TimeS)*0.5; } + + // if (Iterations >= 50 && Iterations < 75) DeltaTime = 4.; + // else if (Iterations >= 75) DeltaTime = 10.; - // if (Iterations >= 50 && Iterations < 75) DeltaTime = 4.; - // else if (Iterations >= 75) DeltaTime = 10.; + TimeS = TimeN; - TimeS = TimeN; - - } while (Iterations++ < 100); + } + while (Iterations++ < 100); - // Summed fragment kinetic energy - G4double TotalKineticEnergy = 0.0; - for (i = 0; i < _NumOfChargedFragments; i++) TotalKineticEnergy += - _theFragments[i]->GetNuclearMass()*0.5*Vel[i].mag2(); - - // Scaling of fragment velocities - G4double KineticEnergy = (3./2.)*G4double(_theFragments.size())*T; - G4double Eta = ( CoulombEnergy + KineticEnergy ) / TotalKineticEnergy; - for (i = 0; i < _NumOfChargedFragments; i++) Vel[i] *= Eta; - - - // Finally calculate fragments momenta - for (i = 0; i < _NumOfChargedFragments; i++) - _theFragments[i]->SetMomentum(_theFragments[i]->GetNuclearMass()*Vel[i]); - - - // garbage collection - delete [] Pos; - delete [] Vel; - delete [] Accel; - - return; + // Summed fragment kinetic energy + G4double TotalKineticEnergy = 0.0; + for (i = 0; i < _NumOfChargedFragments; i++) + { + TotalKineticEnergy += _theFragments[i]->GetNuclearMass()* + 0.5*Vel[i].mag2(); + } + // Scaling of fragment velocities + G4double KineticEnergy = (3./2.)*G4double(_theFragments.size())*T; + G4double Eta = ( CoulombEnergy + KineticEnergy ) / TotalKineticEnergy; + for (i = 0; i < _NumOfChargedFragments; i++) + { + Vel[i] *= Eta; + } + + // Finally calculate fragments momenta + for (i = 0; i < _NumOfChargedFragments; i++) + { + _theFragments[i]->SetMomentum(_theFragments[i]->GetNuclearMass()*Vel[i]); + } + + // garbage collection + delete [] Pos; + delete [] Vel; + delete [] Accel; + + return; } @@ -402,20 +458,20 @@ G4ThreeVector G4StatMFChannel::RotateMomentum(G4ThreeVector Pa, G4ThreeVector V, G4ThreeVector P) // Rotates a 3-vector P to close momentum triangle Pa + V + P = 0 { - G4ThreeVector U = Pa.unit(); + G4ThreeVector U = Pa.unit(); - G4double Alpha1 = U * V; + G4double Alpha1 = U * V; - G4double Alpha2 = sqrt(V.mag2() - Alpha1*Alpha1); + G4double Alpha2 = sqrt(V.mag2() - Alpha1*Alpha1); - G4ThreeVector N = (1./Alpha2)*U.cross(V); - - G4ThreeVector RotatedMomentum( - ( (V.x() - Alpha1*U.x())/Alpha2 ) * P.x() + N.x() * P.y() + U.x() * P.z(), - ( (V.y() - Alpha1*U.y())/Alpha2 ) * P.x() + N.y() * P.y() + U.y() * P.z(), - ( (V.z() - Alpha1*U.z())/Alpha2 ) * P.x() + N.z() * P.y() + U.z() * P.z() - ); - return RotatedMomentum; + G4ThreeVector N = (1./Alpha2)*U.cross(V); + + G4ThreeVector RotatedMomentum( + ( (V.x() - Alpha1*U.x())/Alpha2 ) * P.x() + N.x() * P.y() + U.x() * P.z(), + ( (V.y() - Alpha1*U.y())/Alpha2 ) * P.x() + N.y() * P.y() + U.y() * P.z(), + ( (V.z() - Alpha1*U.z())/Alpha2 ) * P.x() + N.z() * P.y() + U.z() * P.z() + ); + return RotatedMomentum; } 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 2e657c82ff..e0d94be18a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFFragment.cc,v 1.8 2001/08/01 17:05:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFFragment.cc,v 1.9 2002/06/06 17:57:34 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -62,7 +62,7 @@ G4bool G4StatMFFragment::operator!=(const G4StatMFFragment & right) const -G4double G4StatMFFragment::GetCoulombEnergy(void) +G4double G4StatMFFragment::GetCoulombEnergy(void) const { if (theZ <= 0.1) return 0.0; G4double Coulomb = (3./5.)*(elm_coupling*theZ*theZ)* @@ -73,7 +73,7 @@ G4double G4StatMFFragment::GetCoulombEnergy(void) } -G4double G4StatMFFragment::GetEnergy(const G4double T) +G4double G4StatMFFragment::GetEnergy(const G4double T) const { if (theA < 1 || theZ < 0 || theZ > theA) { G4cerr << "G4StatMFFragment::GetEnergy: A = " << theA @@ -101,13 +101,13 @@ G4double G4StatMFFragment::GetEnergy(const G4double T) } -G4double G4StatMFFragment::GetInvLevelDensity(void) +G4double G4StatMFFragment::GetInvLevelDensity(void) const { // Calculate Inverse Density Level // Epsilon0*(1 + 3 /(Af - 1)) if (theA == 1) return 0.0; else return - G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(theA - 1.0)); + G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(theA - 1.0)); } 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 40d7f0edf4..40b2f84b61 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroBiNucleon.cc,v 1.8 2001/08/01 17:05:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroBiNucleon.cc,v 1.9 2002/06/06 17:57:35 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -59,19 +59,24 @@ G4double G4StatMFMacroBiNucleon::CalcMeanMultiplicity(const G4double FreeVol, co const G4double ThermalWaveLenght = 16.15*fermi/sqrt(T); const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght; - + const G4double degeneracy = 3.0; - + const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* (1.0 - 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); - + const G4double BindingE = G4NucleiPropertiesTable::GetBindingEnergy(1,theA); //old value was 2.796*MeV - + G4double exponent = (BindingE + theA*(mu+nu*theZARatio) - + Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T; + + // To avoid numerical problems + if (exponent < -700.0) exponent = -700.0; + else if (exponent > 700.0) exponent = 700.0; + _MeanMultiplicity = (degeneracy*FreeVol*G4double(theA)*sqrt(G4double(theA))/lambda3)* - exp((BindingE+ theA*(mu+nu*theZARatio) - - Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T); + exp(exponent); - return _MeanMultiplicity; + return _MeanMultiplicity; } 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 2b8b1cc5cd..63057d9786 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroChemicalPotential.cc,v 1.6 2001/08/01 17:05:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroChemicalPotential.cc,v 1.7 2002/06/06 17:57:38 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -86,10 +86,12 @@ G4double G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu(void) } } - G4Solver * theSolver = new G4Solver(100,1.e-4); + G4Solver * theSolver = + new G4Solver(100,1.e-4); theSolver->SetIntervalLimits(ChemPa,ChemPb); + // if (!theSolver->Crenshaw(*this)) if (!theSolver->Brent(*this)) - G4Exception("G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu: I couldn't find the root."); + G4Exception("G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu: I couldn't find the root."); _ChemPotentialNu = theSolver->GetRoot(); delete theSolver; return _ChemPotentialNu; @@ -99,36 +101,41 @@ G4double G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu(void) G4double G4StatMFMacroChemicalPotential::CalcMeanZ(const G4double nu) { - G4int i; - for (i=1; i < theA; i++) { - _theClusters->operator[](i)->CalcZARatio(nu); + G4std::vector::iterator i; + for (i= _theClusters->begin()+1; i != _theClusters->end(); ++i) + { + (*i)->CalcZARatio(nu); } - CalcChemicalPotentialMu(nu); - // This is important, the Z over A ratio for proton and neutron depends on the - // chemical potential Mu, while for the first guess for Chemical potential mu - // some values of Z over A ratio. This is the reason for that. - _theClusters->operator[](0)->CalcZARatio(nu); - - G4double MeanZ = 0.0; - for (i = 0; i < theA; i++) - MeanZ += G4double(i+1)*_theClusters->operator[](i)->GetZARatio()* - _theClusters->operator[](i)->GetMeanMultiplicity(); - return MeanZ; + CalcChemicalPotentialMu(nu); + // This is important, the Z over A ratio for proton and neutron depends on the + // chemical potential Mu, while for the first guess for Chemical potential mu + // some values of Z over A ratio. This is the reason for that. + (*_theClusters->begin())->CalcZARatio(nu); + + G4double MeanZ = 0.0; + G4int n = 1; + for (i = _theClusters->begin(); i != _theClusters->end(); ++i) + { + MeanZ += G4double(n++) * + (*i)->GetZARatio() * + (*i)->GetMeanMultiplicity(); + } + return MeanZ; } void G4StatMFMacroChemicalPotential::CalcChemicalPotentialMu(const G4double nu) - // Calculate Chemical potential \mu - // For that is necesary to calculate mean multiplicities + // Calculate Chemical potential \mu + // For that is necesary to calculate mean multiplicities { - G4StatMFMacroMultiplicity * theMultip = new - G4StatMFMacroMultiplicity(theA,_Kappa,_MeanTemperature,nu,_theClusters); - - _ChemPotentialMu = theMultip->CalcChemicalPotentialMu(); - _MeanMultiplicity = theMultip->GetMeanMultiplicity(); - - delete theMultip; - - return; - + G4StatMFMacroMultiplicity * theMultip = new + G4StatMFMacroMultiplicity(theA,_Kappa,_MeanTemperature,nu,_theClusters); + + _ChemPotentialMu = theMultip->CalcChemicalPotentialMu(); + _MeanMultiplicity = theMultip->GetMeanMultiplicity(); + + delete theMultip; + + return; + } 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 5530b3710b..8f6eaa2b4b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroMultiNucleon.cc,v 1.9 2001/08/01 17:05:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroMultiNucleon.cc,v 1.10 2002/06/06 17:57:39 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -83,7 +83,8 @@ G4double G4StatMFMacroMultiNucleon::CalcMeanMultiplicity(const G4double FreeVol, (1.0 - 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); G4double exponent = (mu + nu*theZARatio+ G4StatMFParameters::GetE0() + T*T/_InvLevelDensity - - G4StatMFParameters::GetGamma0()*(1.0 - 2.0*theZARatio)*(1.0 - 2.0*theZARatio))*theA + - G4StatMFParameters::GetGamma0()*(1.0 - 2.0*theZARatio)* + (1.0 - 2.0*theZARatio))*theA - G4StatMFParameters::Beta(T)*A23 - Coulomb*theZARatio*theZARatio*A23*theA; exponent /= T; 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 d3a8e032f1..a738c57271 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroMultiplicity.cc,v 1.5 2001/08/01 17:05:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroMultiplicity.cc,v 1.6 2002/06/06 17:57:40 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -85,24 +85,32 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void) // bracketing the solution G4int iterations = 0; - while (fChemPa*fChemPb > 0.0 && iterations < 10) { - if (abs(fChemPa) <= abs(fChemPb)) { + while (fChemPa*fChemPb > 0.0 && iterations < 10) + { + if (abs(fChemPa) <= abs(fChemPb)) + { ChemPa += 0.6*(ChemPa-ChemPb); fChemPa = this->operator()(ChemPa); - } else { + } + else + { ChemPb += 0.6*(ChemPb-ChemPa); fChemPb = this->operator()(ChemPb); } } - if (fChemPa*fChemPb > 0.0) { + if (fChemPa*fChemPb > 0.0) + { G4Exception("G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't bracket the root."); } G4Solver * theSolver = new G4Solver(100,1.e-4); theSolver->SetIntervalLimits(ChemPa,ChemPb); + // if (!theSolver->Crenshaw(*this)) if (!theSolver->Brent(*this)) + { G4Exception("G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't find the root."); + } _ChemPotentialMu = theSolver->GetRoot(); delete theSolver; return _ChemPotentialMu; @@ -112,20 +120,22 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void) G4double G4StatMFMacroMultiplicity::CalcMeanA(const G4double mu) { - G4double r03 = G4StatMFParameters::Getr0(); r03 *= r03*r03; - G4double V0 = (4.0/3.0)*pi*theA*r03; + G4double r03 = G4StatMFParameters::Getr0(); r03 *= r03*r03; + G4double V0 = (4.0/3.0)*pi*theA*r03; - G4double MeanA = 0.0; + G4double MeanA = 0.0; - _MeanMultiplicity = 0.0; + _MeanMultiplicity = 0.0; - for (G4int i = 0; i < theA; i++) { - G4double multip = _theClusters->operator[](i)->CalcMeanMultiplicity(V0*_Kappa, - mu,_ChemPotentialNu, - _MeanTemperature); - MeanA += multip*G4double(i+1); - _MeanMultiplicity += multip; - } + + G4int n = 1; + for (G4std::vector::iterator i = _theClusters->begin(); + i != _theClusters->end(); ++i) + { + G4double multip = (*i)->CalcMeanMultiplicity(V0*_Kappa,mu,_ChemPotentialNu,_MeanTemperature); + MeanA += multip*G4double(n++); + _MeanMultiplicity += multip; + } - return MeanA; + return MeanA; } 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 eb78405e63..c3a1665d55 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroNucleon.cc,v 1.7 2001/08/01 17:05:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroNucleon.cc,v 1.8 2002/06/06 17:57:41 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -65,6 +65,12 @@ G4double G4StatMFMacroNucleon::CalcMeanMultiplicity(const G4double FreeVol, cons const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* (1.0 - 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); + G4double exponent_proton = (mu+nu-Coulomb)/T; + G4double exponent_neutron = mu/T; + + if (exponent_neutron > 700.0) exponent_proton = 700.0; + if (exponent_proton > 700.0) exponent_proton = 700.0; + _NeutronMeanMultiplicity = (degeneracy*FreeVol/lambda3)*exp(mu/T); _ProtonMeanMultiplicity = (degeneracy*FreeVol/lambda3)* 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 0c096fce4e..48178e94cd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTemperature.cc,v 1.8 2001/08/01 17:05:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroTemperature.cc,v 1.9 2002/06/06 17:57:43 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -91,6 +91,7 @@ G4double G4StatMFMacroTemperature::CalcTemperature(void) G4Solver * theSolver = new G4Solver(100,1.e-4); theSolver->SetIntervalLimits(Ta,Tb); + // if (!theSolver->Crenshaw(*this)) if (!theSolver->Brent(*this)) G4Exception("G4StatMFMacroTemperature::CalcTemperature: I couldn't find the root."); _MeanTemperature = theSolver->GetRoot(); @@ -116,19 +117,21 @@ G4double G4StatMFMacroTemperature::FragsExcitEnergy(const G4double T) // Average total fragment energy G4double AverageEnergy = 0.0; - G4int i; - for (i = 0; i < theA; i++) AverageEnergy += - _theClusters->operator[](i)->GetMeanMultiplicity()* - _theClusters->operator[](i)->CalcEnergy(T); - - + G4std::vector::iterator i; + for (i = _theClusters->begin(); i != _theClusters->end(); ++i) + { + AverageEnergy += (*i)->GetMeanMultiplicity() * (*i)->CalcEnergy(T); + } + // Add Coulomb energy AverageEnergy += (3./5.)*elm_coupling*theZ*theZ/R; - + // Calculate mean entropy _MeanEntropy = 0.0; - for (i = 0; i < theA; i++) _MeanEntropy += - _theClusters->operator[](i)->CalcEntropy(T,FreeVol); + for (i = _theClusters->begin(); i != _theClusters->end(); ++i) + { + _MeanEntropy += (*i)->CalcEntropy(T,FreeVol); + } // Excitation energy per nucleon G4double FragsExcitEnergy = AverageEnergy - _FreeInternalE0; 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 aa331e4d32..dadc748f1d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTetraNucleon.cc,v 1.8 2001/08/01 17:05:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroTetraNucleon.cc,v 1.9 2002/06/06 17:57:44 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -76,9 +76,12 @@ G4double G4StatMFMacroTetraNucleon::CalcMeanMultiplicity(const G4double FreeVol, const G4double BindingE = G4NucleiPropertiesTable::GetBindingEnergy(2,theA); //old value was 30.11*MeV - _MeanMultiplicity = (degeneracy*FreeVol*G4double(theA)*sqrt(G4double(theA))/lambda3)* - exp((BindingE+ theA*(mu+nu*theZARatio+T*T/_InvLevelDensity) - - Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T); + G4double exponent = (BindingE + theA*(mu+nu*theZARatio+T*T/_InvLevelDensity) - + Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T; + if (exponent > 700.0) exponent = 700.0; + + _MeanMultiplicity = ( degeneracy*FreeVol* G4double(theA)* sqrt(G4double(theA))/lambda3)* + exp(exponent); return _MeanMultiplicity; } 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 9ed0289da9..5b236ad6b8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTriNucleon.cc,v 1.8 2001/08/01 17:05:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroTriNucleon.cc,v 1.9 2002/06/06 17:57:45 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -69,10 +69,12 @@ G4double G4StatMFMacroTriNucleon::CalcMeanMultiplicity(const G4double FreeVol, c const G4double BindingE = G4NucleiPropertiesTable::GetBindingEnergy(1,theA); // old value was 9.224*MeV // + G4NucleiProperties::GetBindingEnergy(2,theA); - + G4double exponent = (BindingE+ theA*(mu+nu*theZARatio) - + Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T; + if (exponent > 700.0) exponent = 700.0; + _MeanMultiplicity = (degeneracy*FreeVol*G4double(theA)*sqrt(G4double(theA))/lambda3)* - exp((BindingE+ theA*(mu+nu*theZARatio) - - Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T); + exp(exponent); return _MeanMultiplicity; } 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 720c639bc5..9854536019 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroCanonical.cc,v 1.10 2001/10/06 07:33:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMacroCanonical.cc,v 1.11 2002/06/06 17:57:37 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara // -------------------------------------------------------------------- @@ -51,11 +51,10 @@ G4StatMFMacroCanonical::G4StatMFMacroCanonical(const G4Fragment & theFragment) // destructor G4StatMFMacroCanonical::~G4StatMFMacroCanonical() { - // garbage collection - while (!_theClusters.empty()) { - delete _theClusters.back(); - _theClusters.pop_back(); - } + // garbage collection + if (!_theClusters.empty()) { + G4std::for_each(_theClusters.begin(),_theClusters.end(),DeleteFragment()); + } } // operators definitions @@ -84,26 +83,22 @@ G4bool G4StatMFMacroCanonical::operator!=(const G4StatMFMacroCanonical & right) void G4StatMFMacroCanonical::Initialize(const G4Fragment & theFragment) { - // Excitation Energy -// G4double U = theFragment.GetExcitationEnergy(); + G4double A = theFragment.GetA(); + G4double Z = theFragment.GetZ(); + + // Free Internal energy at T = 0 + __FreeInternalE0 = A*( -G4StatMFParameters::GetE0() + // Volume term (for T = 0) + G4StatMFParameters::GetGamma0()* // Symmetry term + (1.0-2.0*Z/A)*(1.0-2.0*Z/A) ) + + G4StatMFParameters::GetBeta0()*pow(A,2.0/3.0) + // Surface term (for T = 0) + (3.0/5.0)*elm_coupling*Z*Z/(G4StatMFParameters::Getr0()* // Coulomb term + pow(A,1.0/3.0)); - G4double A = theFragment.GetA(); - G4double Z = theFragment.GetZ(); - - // Free Internal energy at T = 0 - __FreeInternalE0 = A*( -G4StatMFParameters::GetE0() + // Volume term (for T = 0) - G4StatMFParameters::GetGamma0()* - (1.0-2.0*Z/A)*(1.0-2.0*Z/A) ) + // Symmetry term - G4StatMFParameters::GetBeta0()*pow(A,2.0/3.0) + // Surface term (for T = 0) - (3.0/5.0)*elm_coupling*Z*Z/(G4StatMFParameters::Getr0()* - pow(A,1.0/3.0)); // Coulomb term + CalculateTemperature(theFragment); - - CalculateTemperature(theFragment); - - return; + return; } @@ -112,34 +107,34 @@ void G4StatMFMacroCanonical::Initialize(const G4Fragment & theFragment) void G4StatMFMacroCanonical::CalculateTemperature(const G4Fragment & theFragment) { - // Excitation Energy - G4double U = theFragment.GetExcitationEnergy(); + // Excitation Energy + G4double U = theFragment.GetExcitationEnergy(); - G4double A = theFragment.GetA(); - G4double Z = theFragment.GetZ(); + G4double A = theFragment.GetA(); + G4double Z = theFragment.GetZ(); - // Fragment Multiplicity - G4double FragMult = G4std::max((1.0+(2.31/MeV)*(U/A - 3.5*MeV))*A/100.0, 2.0); + // Fragment Multiplicity + G4double FragMult = G4std::max((1.0+(2.31/MeV)*(U/A - 3.5*MeV))*A/100.0, 2.0); - // Parameter Kappa - _Kappa = (1.0+elm_coupling*(pow(FragMult,1./3.)-1)/ - (G4StatMFParameters::Getr0()*pow(A,1./3.))); - _Kappa = _Kappa*_Kappa*_Kappa - 1.0; + // Parameter Kappa + _Kappa = (1.0+elm_coupling*(pow(FragMult,1./3.)-1)/ + (G4StatMFParameters::Getr0()*pow(A,1./3.))); + _Kappa = _Kappa*_Kappa*_Kappa - 1.0; - G4StatMFMacroTemperature * theTemp = new - G4StatMFMacroTemperature(A,Z,U,__FreeInternalE0,_Kappa,&_theClusters); - - __MeanTemperature = theTemp->CalcTemperature(); - _ChemPotentialNu = theTemp->GetChemicalPotentialNu(); - _ChemPotentialMu = theTemp->GetChemicalPotentialMu(); - __MeanMultiplicity = theTemp->GetMeanMultiplicity(); - __MeanEntropy = theTemp->GetEntropy(); + G4StatMFMacroTemperature * theTemp = new + G4StatMFMacroTemperature(A,Z,U,__FreeInternalE0,_Kappa,&_theClusters); + + __MeanTemperature = theTemp->CalcTemperature(); + _ChemPotentialNu = theTemp->GetChemicalPotentialNu(); + _ChemPotentialMu = theTemp->GetChemicalPotentialMu(); + __MeanMultiplicity = theTemp->GetMeanMultiplicity(); + __MeanEntropy = theTemp->GetEntropy(); - delete theTemp; - - return; + delete theTemp; + + return; } @@ -148,92 +143,93 @@ void G4StatMFMacroCanonical::CalculateTemperature(const G4Fragment & theFragment G4StatMFChannel * G4StatMFMacroCanonical::ChooseAandZ(const G4Fragment &theFragment) // Calculate total fragments multiplicity, fragment atomic numbers and charges { - G4double A = theFragment.GetA(); - G4double Z = theFragment.GetZ(); + G4double A = theFragment.GetA(); + G4double Z = theFragment.GetZ(); - G4std::vector ANumbers(A); + G4std::vector ANumbers(A); - G4double Multiplicity = ChooseA(A,ANumbers); + G4double Multiplicity = ChooseA(A,ANumbers); - G4std::vector FragmentsA; + G4std::vector FragmentsA; G4int i = 0; - for (i = 0; i < A; i++) { -// if (ANumbers(i) == 0) continue; + for (i = 0; i < A; i++) + { for (G4int j = 0; j < ANumbers[i]; j++) FragmentsA.push_back(i+1); - } + } -// Sort fragments in decreasing order + // Sort fragments in decreasing order G4int im = 0; - for (G4int j = 0; j < Multiplicity; j++) { + for (G4int j = 0; j < Multiplicity; j++) + { G4double FragmentsAMax = 0.0; im = j; - for (i = j; i < Multiplicity; i++) { + for (i = j; i < Multiplicity; i++) + { if (FragmentsA[i] <= FragmentsAMax) continue; - else { + else + { im = i; FragmentsAMax = FragmentsA[im]; - } - } + } + } - if (im != j) { + if (im != j) + { FragmentsA[im] = FragmentsA[j]; FragmentsA[j] = FragmentsAMax; - } - } - + } + } + return ChooseZ(Z,FragmentsA); } G4double G4StatMFMacroCanonical::ChooseA(const G4double A, G4std::vector & ANumbers) - // Determines fragments multiplicities and compute total fragment multiplicity + // Determines fragments multiplicities and compute total fragment multiplicity { - G4double multiplicity = 0.0; - G4int i; + G4double multiplicity = 0.0; + G4int i; -// G4double GH = 0.0; -// for (i = 0; i < A; i++) GH += _theClusters(i)->GetMeanMultiplicity(); -// It is the same that _MeanMultiplicity - - -// G4double SqrtGH = sqrt(GH) + 0.5; - - - G4std::vector AcumMultiplicity(A); + G4std::vector AcumMultiplicity; + AcumMultiplicity.reserve(A); - AcumMultiplicity[0] = _theClusters[0]->GetMeanMultiplicity(); - for (i = 1; i < A; i++) AcumMultiplicity[i] = AcumMultiplicity[i-1] + - _theClusters[i]->GetMeanMultiplicity(); - G4int CheckA; + AcumMultiplicity.push_back((*(_theClusters.begin()))->GetMeanMultiplicity()); + for (G4std::vector::iterator it = _theClusters.begin()+1; + it != _theClusters.end(); ++it) + { + AcumMultiplicity.push_back((*it)->GetMeanMultiplicity()+AcumMultiplicity.back()); + } + + G4int CheckA; + do { + CheckA = -1; + G4int SumA = 0; + G4int ThisOne = 0; + multiplicity = 0.0; + for (i = 0; i < A; i++) ANumbers[i] = 0.0; do { - CheckA = -1; - G4int SumA = 0; - G4int ThisOne = 0; - multiplicity = 0.0; - for (i = 0; i < A; i++) ANumbers[i] = 0.0; - do { - G4double RandNumber = G4UniformRand()*__MeanMultiplicity; - for (i = 0; i < A; i++) { - if (RandNumber < AcumMultiplicity[i]) { - ThisOne = i; - break; - } - } - multiplicity++; - ANumbers[ThisOne] = ANumbers[ThisOne]+1; - SumA += ThisOne+1; - CheckA = G4int(A) - SumA; - - } while (CheckA > 0); - - } while (CheckA < 0 || abs(__MeanMultiplicity - multiplicity) > sqrt(__MeanMultiplicity) + 1./2.); + G4double RandNumber = G4UniformRand()*__MeanMultiplicity; + for (i = 0; i < A; i++) { + if (RandNumber < AcumMultiplicity[i]) { + ThisOne = i; + break; + } + } + multiplicity++; + ANumbers[ThisOne] = ANumbers[ThisOne]+1; + SumA += ThisOne+1; + CheckA = G4int(A) - SumA; + + } while (CheckA > 0); + + } while (CheckA < 0 || abs(__MeanMultiplicity - multiplicity) > sqrt(__MeanMultiplicity) + 1./2.); - return multiplicity; + return multiplicity; } @@ -249,43 +245,51 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseZ(const G4int & Z, G4int multiplicity = FragmentsA.size(); - do { - G4int SumZ = 0; - for (G4int i = 0; i < multiplicity; i++) { - G4double A = FragmentsA[i]; - if (A <= 1.0) { - G4double RandNumber = G4UniformRand(); - if (RandNumber < _theClusters[0]->GetZARatio()) { - FragmentsZ.push_back(1.0); - SumZ += G4int(FragmentsZ[i]); - } else FragmentsZ.push_back(0.0); - } else { - G4double RandZ; - G4double CC = 8.0*G4StatMFParameters::GetGamma0()+2.0*CP*pow(FragmentsA[i],2./3.); - G4double ZMean; - if (FragmentsA[i] > 1.5 && FragmentsA[i] < 4.5) ZMean = 0.5*FragmentsA[i]; - else ZMean = FragmentsA[i]*(4.0*G4StatMFParameters::GetGamma0()+_ChemPotentialNu)/CC; - G4double ZDispersion = sqrt(FragmentsA[i]*__MeanTemperature/CC); - G4int z; - do { - RandZ = G4RandGauss::shoot(ZMean,ZDispersion); - z = G4int(RandZ+0.5); + do + { + FragmentsZ.clear(); + G4int SumZ = 0; + for (G4int i = 0; i < multiplicity; i++) + { + G4double A = FragmentsA[i]; + if (A <= 1.0) + { + G4double RandNumber = G4UniformRand(); + if (RandNumber < (*_theClusters.begin())->GetZARatio()) + { + FragmentsZ.push_back(1.0); + SumZ += G4int(FragmentsZ[i]); + } + else FragmentsZ.push_back(0.0); + } + else + { + G4double RandZ; + G4double CC = 8.0*G4StatMFParameters::GetGamma0()+2.0*CP*pow(FragmentsA[i],2./3.); + G4double ZMean; + if (FragmentsA[i] > 1.5 && FragmentsA[i] < 4.5) ZMean = 0.5*FragmentsA[i]; + else ZMean = FragmentsA[i]*(4.0*G4StatMFParameters::GetGamma0()+_ChemPotentialNu)/CC; + G4double ZDispersion = sqrt(FragmentsA[i]*__MeanTemperature/CC); + G4int z; + do + { + RandZ = G4RandGauss::shoot(ZMean,ZDispersion); + z = G4int(RandZ+0.5); } while (z < 0 || z > A); -// FragmentsZ[i] = z; - FragmentsZ.push_back(z); - SumZ += z; + FragmentsZ.push_back(z); + SumZ += z; } } - DeltaZ = Z - SumZ; + DeltaZ = Z - SumZ; } while (abs(DeltaZ) > 1.1); - + // DeltaZ can be 0, 1 or -1 FragmentsZ[0] += DeltaZ; G4StatMFChannel * theChannel = new G4StatMFChannel; for (G4int i = multiplicity-1; i >= 0; i--) - theChannel->CreateFragment(FragmentsA[i],FragmentsZ[i]); - - + theChannel->CreateFragment(FragmentsA[i],FragmentsZ[i]); + + return theChannel; } 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 bf64a20471..687b5a47e1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroManager.cc,v 1.5 2001/10/05 16:13:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMicroManager.cc,v 1.6 2002/06/06 17:57:47 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -74,9 +74,10 @@ G4StatMFMicroManager::G4StatMFMicroManager(const G4Fragment & theFragment, const // destructor G4StatMFMicroManager::~G4StatMFMicroManager() { - while (!_Partition.empty()) { - delete _Partition.back(); - _Partition.pop_back(); + if (!_Partition.empty()) + { + G4std::for_each(_Partition.begin(),_Partition.end(), + DeleteFragment()); } } @@ -175,8 +176,6 @@ void G4StatMFMicroManager::Normalize(const G4double Norm) _MeanTemperature /= Norm; _MeanEntropy /= Norm; -// for (G4int i = 0; i < _Partition.entries(); i++) _Partition(i)->Normalize(Norm); - return; } @@ -186,10 +185,12 @@ G4StatMFChannel * G4StatMFMicroManager::ChooseChannel(const G4double A0, const G G4double RandNumber = _Normalization * _WW * G4UniformRand(); G4double AccumWeight = 0.0; - for (unsigned int i = 0; i < _Partition.size(); i++) { - AccumWeight += _Partition[i]->GetProbability(); - if (RandNumber < AccumWeight) - return _Partition[i]->ChooseZ(A0,Z0,MeanT); + for (G4std::vector::iterator i = _Partition.begin(); + i != _Partition.end(); ++i) + { + AccumWeight += (*i)->GetProbability(); + if (RandNumber < AccumWeight) + return (*i)->ChooseZ(A0,Z0,MeanT); } G4Exception 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 6e59c788f3..3a86e7ed0c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroPartition.cc,v 1.12 2001/10/05 16:13:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMicroPartition.cc,v 1.13 2002/06/06 17:57:48 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara // -------------------------------------------------------------------- @@ -274,7 +274,9 @@ G4double G4StatMFMicroPartition::CalcPartitionProbability(const G4double U, _Entropy = PartitionEntropy; // And finally compute probability of fragment configuration - return _Probability = exp(PartitionEntropy-SCompound); + G4double exponent = PartitionEntropy-SCompound; + if (exponent > 700.0) exponent = 700.0; + return _Probability = exp(exponent); } 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 0bd38b1193..0d1d0f8ae0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroCanonical.cc,v 1.9 2001/10/06 08:32:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFMicroCanonical.cc,v 1.10 2002/06/06 17:57:46 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4StatMFMicroCanonical.hh" - +#include // Copy constructor @@ -76,12 +76,12 @@ G4StatMFMicroCanonical::G4StatMFMicroCanonical(G4Fragment const & theFragment) // destructor G4StatMFMicroCanonical::~G4StatMFMicroCanonical() { - // garbage collection -// _ThePartitionManagerVector.clearAndDestroy(); - while (!_ThePartitionManagerVector.empty()) { - delete _ThePartitionManagerVector.back(); - _ThePartitionManagerVector.pop_back(); - } + // garbage collection + if (!_ThePartitionManagerVector.empty()) { + G4std::for_each(_ThePartitionManagerVector.begin(), + _ThePartitionManagerVector.end(), + DeleteFragment()); + } } @@ -90,88 +90,91 @@ G4StatMFMicroCanonical::~G4StatMFMicroCanonical() void G4StatMFMicroCanonical::Initialize(const G4Fragment & theFragment) { - - unsigned int i; - // Excitation Energy - G4double U = theFragment.GetExcitationEnergy(); + G4std::vector::iterator it; + + // Excitation Energy + G4double U = theFragment.GetExcitationEnergy(); - G4double A = theFragment.GetA(); - G4double Z = theFragment.GetZ(); - - // Configuration temperature - G4double TConfiguration = sqrt(8.0*U/A); - - // Free internal energy at Temperature T = 0 - __FreeInternalE0 = A*( - // Volume term (for T = 0) - -G4StatMFParameters::GetE0() + - // Symmetry term - G4StatMFParameters::GetGamma0()*(1.0-2.0*Z/A)*(1.0-2.0*Z/A) - ) + - // Surface term (for T = 0) - G4StatMFParameters::GetBeta0()*pow(A,2.0/3.0) + - // Coulomb term - elm_coupling*(3.0/5.0)*Z*Z/(G4StatMFParameters::Getr0()*pow(A,1.0/3.0)); + G4double A = theFragment.GetA(); + G4double Z = theFragment.GetZ(); - // Statistical weight - G4double W = 0.0; - - - // Mean breakup multiplicity - __MeanMultiplicity = 0.0; - - // Mean channel temperature - __MeanTemperature = 0.0; - - // Mean channel entropy - __MeanEntropy = 0.0; - - // Calculate entropy of compound nucleus - G4double SCompoundNucleus = CalcEntropyOfCompoundNucleus(theFragment,TConfiguration); + // Configuration temperature + G4double TConfiguration = sqrt(8.0*U/A); - // Statistical weight of compound nucleus - _WCompoundNucleus = 1.0; // exp(SCompoundNucleus - SCompoundNucleus); + // Free internal energy at Temperature T = 0 + __FreeInternalE0 = A*( + // Volume term (for T = 0) + -G4StatMFParameters::GetE0() + + // Symmetry term + G4StatMFParameters::GetGamma0()*(1.0-2.0*Z/A)*(1.0-2.0*Z/A) + ) + + // Surface term (for T = 0) + G4StatMFParameters::GetBeta0()*pow(A,2.0/3.0) + + // Coulomb term + elm_coupling*(3.0/5.0)*Z*Z/(G4StatMFParameters::Getr0()*pow(A,1.0/3.0)); - W += _WCompoundNucleus; - - - - // Maximal fragment multiplicity allowed in direct simulation - G4int MaxMult = G4StatMFMicroCanonical::MaxAllowedMultiplicity; - if (A > 110) MaxMult -= 1; - - - - for (G4int m = 2; m <= MaxMult; m++) { - G4StatMFMicroManager * aMicroManager = - new G4StatMFMicroManager(theFragment,m,__FreeInternalE0,SCompoundNucleus); - _ThePartitionManagerVector.push_back(aMicroManager); + // Statistical weight + G4double W = 0.0; + + + // Mean breakup multiplicity + __MeanMultiplicity = 0.0; + + // Mean channel temperature + __MeanTemperature = 0.0; + + // Mean channel entropy + __MeanEntropy = 0.0; + + // Calculate entropy of compound nucleus + G4double SCompoundNucleus = CalcEntropyOfCompoundNucleus(theFragment,TConfiguration); + + // Statistical weight of compound nucleus + _WCompoundNucleus = 1.0; // exp(SCompoundNucleus - SCompoundNucleus); + + W += _WCompoundNucleus; + + + + // Maximal fragment multiplicity allowed in direct simulation + G4int MaxMult = G4StatMFMicroCanonical::MaxAllowedMultiplicity; + if (A > 110) MaxMult -= 1; + + + + for (G4int m = 2; m <= MaxMult; m++) { + G4StatMFMicroManager * aMicroManager = + new G4StatMFMicroManager(theFragment,m,__FreeInternalE0,SCompoundNucleus); + _ThePartitionManagerVector.push_back(aMicroManager); + } + + // W is the total probability + W = G4std::accumulate(_ThePartitionManagerVector.begin(), + _ThePartitionManagerVector.end(), + W,SumProbabilities()); + + // Normalization of statistical weights + for (it = _ThePartitionManagerVector.begin(); it != _ThePartitionManagerVector.end(); ++it) + { + (*it)->Normalize(W); } - // W is the total probability - for (i = 0; i < _ThePartitionManagerVector.size(); i++) { - W += _ThePartitionManagerVector[i]->GetProbability(); - } + _WCompoundNucleus /= W; + + __MeanMultiplicity += 1.0 * _WCompoundNucleus; + __MeanTemperature += TConfiguration * _WCompoundNucleus; + __MeanEntropy += SCompoundNucleus * _WCompoundNucleus; + - // Normalization of statistical weights - for (i = 0; i < _ThePartitionManagerVector.size(); i++) { - _ThePartitionManagerVector[i]->Normalize(W); + for (it = _ThePartitionManagerVector.begin(); it != _ThePartitionManagerVector.end(); ++it) + { + __MeanMultiplicity += (*it)->GetMeanMultiplicity(); + __MeanTemperature += (*it)->GetMeanTemperature(); + __MeanEntropy += (*it)->GetMeanEntropy(); } - _WCompoundNucleus /= W; - - __MeanMultiplicity += 1.0 * _WCompoundNucleus; - __MeanTemperature += TConfiguration * _WCompoundNucleus; - __MeanEntropy += SCompoundNucleus * _WCompoundNucleus; - - - for (i = 0; i < _ThePartitionManagerVector.size(); i++) { - __MeanMultiplicity += _ThePartitionManagerVector[i]->GetMeanMultiplicity(); - __MeanTemperature += _ThePartitionManagerVector[i]->GetMeanTemperature(); - __MeanEntropy += _ThePartitionManagerVector[i]->GetMeanEntropy(); - } - - return; + + return; } @@ -181,98 +184,100 @@ void G4StatMFMicroCanonical::Initialize(const G4Fragment & theFragment) G4double G4StatMFMicroCanonical::CalcFreeInternalEnergy(const G4Fragment & theFragment, const G4double T) { - G4double A = theFragment.GetA(); - G4double Z = theFragment.GetZ(); - G4double A13 = pow(A,1.0/3.0); - - G4double InvLevelDensityPar = G4StatMFParameters::GetEpsilon0()*(1.0 + 3.0/(A-1.0)); - - G4double VolumeTerm = (-G4StatMFParameters::GetE0()+T*T/InvLevelDensityPar)*A; - - G4double SymmetryTerm = G4StatMFParameters::GetGamma0()*(A - 2.0*Z)*(A - 2.0*Z)/A; - - G4double SurfaceTerm = (G4StatMFParameters::Beta(T)-T*G4StatMFParameters::DBetaDT(T))*A13*A13; - - G4double CoulombTerm = elm_coupling*(3.0/5.0)*Z*Z/(G4StatMFParameters::Getr0()*A13); - - return VolumeTerm + SymmetryTerm + SurfaceTerm + CoulombTerm; + G4double A = theFragment.GetA(); + G4double Z = theFragment.GetZ(); + G4double A13 = pow(A,1.0/3.0); + + G4double InvLevelDensityPar = G4StatMFParameters::GetEpsilon0()*(1.0 + 3.0/(A-1.0)); + + G4double VolumeTerm = (-G4StatMFParameters::GetE0()+T*T/InvLevelDensityPar)*A; + + G4double SymmetryTerm = G4StatMFParameters::GetGamma0()*(A - 2.0*Z)*(A - 2.0*Z)/A; + + G4double SurfaceTerm = (G4StatMFParameters::Beta(T)-T*G4StatMFParameters::DBetaDT(T))*A13*A13; + + G4double CoulombTerm = elm_coupling*(3.0/5.0)*Z*Z/(G4StatMFParameters::Getr0()*A13); + + return VolumeTerm + SymmetryTerm + SurfaceTerm + CoulombTerm; } G4double G4StatMFMicroCanonical::CalcEntropyOfCompoundNucleus(const G4Fragment & theFragment,G4double & TConf) - // Calculates Temperature and Entropy of compound nucleus + // Calculates Temperature and Entropy of compound nucleus { - const G4double A = theFragment.GetA(); -// const G4double Z = theFragment.GetZ(); - const G4double U = theFragment.GetExcitationEnergy(); - const G4double A13 = pow(A,1.0/3.0); - - G4double Ta = G4std::max(sqrt(U/(0.125*A)),0.0012*MeV); - G4double Tb = Ta; + const G4double A = theFragment.GetA(); + // const G4double Z = theFragment.GetZ(); + const G4double U = theFragment.GetExcitationEnergy(); + const G4double A13 = pow(A,1.0/3.0); - G4double ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Ta); - G4double Da = (U+__FreeInternalE0-ECompoundNucleus)/U; - G4double Db = 0.0; - - - G4double InvLevelDensity = CalcInvLevelDensity(A); - - - // bracketing the solution - if (Da == 0.0) { - TConf = Ta; - return 2*Ta*A/InvLevelDensity - G4StatMFParameters::DBetaDT(Ta)*A13*A13; - } else if (Da < 0.0) { - do { - Tb -= 0.5*Tb; - ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tb); - Db = (U+__FreeInternalE0-ECompoundNucleus)/U; - } while (Db < 0.0); + G4double Ta = G4std::max(sqrt(U/(0.125*A)),0.0012*MeV); + G4double Tb = Ta; + + G4double ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Ta); + G4double Da = (U+__FreeInternalE0-ECompoundNucleus)/U; + G4double Db = 0.0; + + + G4double InvLevelDensity = CalcInvLevelDensity(A); + + + // bracketing the solution + if (Da == 0.0) { + TConf = Ta; + return 2*Ta*A/InvLevelDensity - G4StatMFParameters::DBetaDT(Ta)*A13*A13; + } else if (Da < 0.0) { + do { + Tb -= 0.5*Tb; + ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tb); + Db = (U+__FreeInternalE0-ECompoundNucleus)/U; + } while (Db < 0.0); + } else { + do { + Tb += 0.5*Tb; + ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tb); + Db = (U+__FreeInternalE0-ECompoundNucleus)/U; + } while (Db > 0.0); + } + + + G4double eps = 1.0e-14 * abs(Tb-Ta); + + for (G4int i = 0; i < 1000; i++) { + G4double Tc = (Ta+Tb)/2.0; + if (abs(Ta-Tb) <= eps) { + TConf = Tc; + return 2*Tc*A/InvLevelDensity - G4StatMFParameters::DBetaDT(Tc)*A13*A13; + } + ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tc); + G4double Dc = (U+__FreeInternalE0-ECompoundNucleus)/U; + + if (Dc == 0.0) { + TConf = Tc; + return 2*Tc*A/InvLevelDensity - G4StatMFParameters::DBetaDT(Tc)*A13*A13; + } + + if (Da*Dc < 0.0) { + Tb = Tc; + Db = Dc; } else { - do { - Tb += 0.5*Tb; - ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tb); - Db = (U+__FreeInternalE0-ECompoundNucleus)/U; - } while (Db > 0.0); - } - - - G4double eps = 1.0e-14 * abs(Tb-Ta); - - for (G4int i = 0; i < 1000; i++) { - G4double Tc = (Ta+Tb)/2.0; - if (abs(Ta-Tb) <= eps) { - TConf = Tc; - return 2*Tc*A/InvLevelDensity - G4StatMFParameters::DBetaDT(Tc)*A13*A13; - } - ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tc); - G4double Dc = (U+__FreeInternalE0-ECompoundNucleus)/U; - - if (Dc == 0.0) { - TConf = Tc; - return 2*Tc*A/InvLevelDensity - G4StatMFParameters::DBetaDT(Tc)*A13*A13; - } - - if (Da*Dc < 0.0) { - Tb = Tc; - Db = Dc; - } else { - Ta = Tc; - Da = Dc; - } - } - - G4cerr << "G4StatMFMicrocanoncal::CalcEntropyOfCompoundNucleus: I can't calculate the temperature" << G4endl; - - return 0.0; + Ta = Tc; + Da = Dc; + } + } + + G4cerr << + "G4StatMFMicrocanoncal::CalcEntropyOfCompoundNucleus: I can't calculate the temperature" + << G4endl; + + return 0.0; } G4StatMFChannel * G4StatMFMicroCanonical::ChooseAandZ(const G4Fragment & theFragment) - // Choice of fragment atomic numbers and charges + // Choice of fragment atomic numbers and charges { // We choose a multiplicity (1,2,3,...) and then a channel G4double RandNumber = G4UniformRand(); @@ -286,11 +291,11 @@ G4StatMFChannel * G4StatMFMicroCanonical::ChooseAandZ(const G4Fragment & theFra } else { G4double AccumWeight = _WCompoundNucleus; - for (unsigned int i = 1; i <= _ThePartitionManagerVector.size(); i++) { - AccumWeight += _ThePartitionManagerVector[i-1]->GetProbability(); + G4std::vector::iterator it; + for (it = _ThePartitionManagerVector.begin(); it != _ThePartitionManagerVector.end(); ++it) { + AccumWeight += (*it)->GetProbability(); if (RandNumber < AccumWeight) { - return _ThePartitionManagerVector[i-1]-> - ChooseChannel(theFragment.GetA(),theFragment.GetZ(),__MeanTemperature); + return (*it)->ChooseChannel(theFragment.GetA(),theFragment.GetZ(),__MeanTemperature); } } G4Exception("G4StatMFMicroCanonical::ChooseAandZ: wrong normalization!"); 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 903db6a3a4..8ec904e74d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFParameters.cc,v 1.5 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StatMFParameters.cc,v 1.6 2002/06/06 17:57:49 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -52,29 +52,37 @@ const G4double G4StatMFParameters::_r0 = 1.17*fermi; G4double G4StatMFParameters::Beta(const G4double T) { - if (T > _CriticalTemp) return 0.0; - else { - G4double CriticalTempSqr = _CriticalTemp*_CriticalTemp; - G4double TempSqr = T*T; - G4double tmp = (CriticalTempSqr-TempSqr)/(CriticalTempSqr+TempSqr); + if (T > _CriticalTemp) return 0.0; + else { + G4double CriticalTempSqr = _CriticalTemp*_CriticalTemp; + G4double TempSqr = T*T; + G4double tmp = (CriticalTempSqr-TempSqr)/(CriticalTempSqr+TempSqr); - return _Beta0*tmp*pow(tmp,1.0/4.0); - } + return _Beta0*tmp*pow(tmp,1.0/4.0); + } } G4double G4StatMFParameters::DBetaDT(const G4double T) { - if (T > _CriticalTemp) return 0.0; - else { - G4double CriticalTempSqr = _CriticalTemp*_CriticalTemp; - G4double TempSqr = T*T; - G4double tmp = (CriticalTempSqr-TempSqr)/(CriticalTempSqr+TempSqr); + if (T > _CriticalTemp) return 0.0; + else { + G4double CriticalTempSqr = _CriticalTemp*_CriticalTemp; + G4double TempSqr = T*T; + G4double tmp = (CriticalTempSqr-TempSqr)/(CriticalTempSqr+TempSqr); - return -5.0*_Beta0*pow(tmp,1.0/4.0)*(CriticalTempSqr*T)/ - ((CriticalTempSqr+TempSqr)*(CriticalTempSqr+TempSqr)); - } + return -5.0*_Beta0*pow(tmp,1.0/4.0)*(CriticalTempSqr*T)/ + ((CriticalTempSqr+TempSqr)*(CriticalTempSqr+TempSqr)); + } } +G4double G4StatMFParameters::GetMaxAverageMultiplicity(const G4int A) +{ + // Maximun average multiplicity: M_0 = 2.6 for A ~ 200 + // and M_0 = 3.3 for A <= 110 + G4double MaxAverageMultiplicity = 2.6; + if (A <= 110) MaxAverageMultiplicity = 3.3; + return MaxAverageMultiplicity; +} G4StatMFParameters G4StatMFParameters::theStatMFParameters; 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 81a79b8097..1fafc68a54 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonCoulombBarrier.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 ce6862a963..ff765cf181 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationChannel.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 5a672922e5..560120f294 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationProbability.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..9bb440605f --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.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: G4TritonGEMChannel.cc,v 1.1 2002/06/06 18:04:25 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov. 1999) +// + +#include "G4TritonGEMChannel.hh" + + +const G4TritonGEMChannel & G4TritonGEMChannel::operator=(const G4TritonGEMChannel & right) +{ + G4Exception("G4TritonGEMChannel::operator= meant to not be accessable"); + return *this; +} + +G4TritonGEMChannel::G4TritonGEMChannel(const G4TritonGEMChannel & right) +{ + G4Exception("G4TritonGEMChannel::CopyConstructor meant to not be accessable"); +} + +G4bool G4TritonGEMChannel::operator==(const G4TritonGEMChannel & right) const +{ + return (this == (G4TritonGEMChannel *) &right); + // return false; +} + +G4bool G4TritonGEMChannel::operator!=(const G4TritonGEMChannel & right) const +{ + return (this != (G4TritonGEMChannel *) &right); + // return true; +} + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc new file mode 100644 index 0000000000..108b7e15c4 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TritonGEMProbability.cc,v 1.1 2002/06/06 18:04:26 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1999) +// + + +#include "G4TritonGEMProbability.hh" + +G4TritonGEMProbability::G4TritonGEMProbability() : + G4GEMProbability(3,1,1.0/2.0) // A,Z,Gamma +{ + SetExcitationEnergiesPtr(&ExcitEnergies); + SetExcitationSpinsPtr(&ExcitSpins); + SetExcitationLifetimesPtr(&ExcitLifetimes); +} + + +G4TritonGEMProbability::G4TritonGEMProbability(const G4TritonGEMProbability &right) +{ + G4Exception("G4TritonGEMProbability::copy_constructor meant to not be accessable"); +} + + + + +const G4TritonGEMProbability & G4TritonGEMProbability:: +operator=(const G4TritonGEMProbability &right) +{ + G4Exception("G4TritonGEMProbability::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4TritonGEMProbability::operator==(const G4TritonGEMProbability &right) const +{ + return false; +} + +G4bool G4TritonGEMProbability::operator!=(const G4TritonGEMProbability &right) const +{ + return true; +} + + +G4double G4TritonGEMProbability::CCoeficient(const G4double aZ) const +{ + // Data comes from + // Dostrovsky, Fraenkel and Friedlander + // Physical Review, vol 116, num. 3 1959 + // + // const G4int size = 5; + // G4double Zlist[5] = { 10.0, 20.0, 30.0, 50.0, 70.0}; + // G4double Cp[5] = { 0.50, 0.28, 0.20, 0.15, 0.10}; + // C for triton is equal to C for protons divided by 3 + G4double C = 0.0; + + if (aZ >= 70) { + C = 0.10; + } else { + C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; + } + + return C/3.0; + +} 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 267235c53f..bb073862d2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnstableFermiFragment.cc,v 1.6 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4UnstableFermiFragment.cc,v 1.7 2002/06/06 17:58:33 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -122,13 +122,11 @@ G4UnstableFermiFragment::FragmentsMomentum(G4double KinE, const G4int K, const G PRestLab.boost(BoostV); - // MomentumList->prepend(new G4LorentzVector(PFragLab)); MomentumList->push_front(new G4LorentzVector(PFragLab)); Mass = RestMass; } - // MomentumList->prepend(new G4LorentzVector(PRestLab)); MomentumList->push_front(new G4LorentzVector(PRestLab)); return MomentumList; } 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 2663ccc27b..b3de4b56bf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCoulombBarrier.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 e2b227b0fe..1a1334cece 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEmissionProbability.cc,v 1.6 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 02c96e7d50..4a10601a9d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporation.cc,v 1.5 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 253c68085f..5a9a4e6b3e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporationChannel.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 new file mode 100644 index 0000000000..570d216eda --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +#include "G4VEvaporationFactory.hh" + +const G4VEvaporationFactory & +G4VEvaporationFactory::operator=(const G4VEvaporationFactory & val) +{ + G4Exception("G4VEvaporationFactory::operator= meant to not be accessable."); + return *this; +} + +G4bool +G4VEvaporationFactory::operator==(const G4VEvaporationFactory & val) const +{ + G4Exception("G4VEvaporationFactory::operator== meant to not be accessable."); + return false; +} + +G4bool +G4VEvaporationFactory::operator!=(const G4VEvaporationFactory & val) const +{ + G4Exception("G4VEvaporationFactory::operator!= meant to not be accessable."); + return true; +} + + + + +G4VEvaporationFactory::~G4VEvaporationFactory() +{ + if (_channel != 0) + G4std::for_each(_channel->begin(), _channel->end(), + DeleteFragment()); + delete _channel; +} + + +G4std::vector * +G4VEvaporationFactory::GetChannel() +{ + // Lazy initialization + if (_channel == 0) + _channel = CreateChannel(); + return _channel; +} + + + 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 599658bf86..9b3dac182c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFermiBreakUp.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a2efb0f19d..0f06332901 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFermiFragment.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 be0c4d9f78..df5ff4f08f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFissionBarrier.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 3e94862f64..5bcfe27ecf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc @@ -181,7 +181,7 @@ G4Fragment* G4VGammaDeexcitation::GenerateGamma() void G4VGammaDeexcitation::UpdateNucleus(const G4Fragment* gamma) { G4LorentzVector p4Gamma = gamma->GetMomentum(); - G4ThreeVector pGamma(p4Gamma); + G4ThreeVector pGamma(p4Gamma.vect()); G4double eGamma = gamma->GetMomentum().e(); G4LorentzVector p4Nucleus(_nucleus.GetMomentum() ); @@ -201,7 +201,7 @@ void G4VGammaDeexcitation::UpdateNucleus(const G4Fragment* gamma) if(newExcitation < 0) newExcitation = 0; - G4ThreeVector p3Residual(G4ThreeVector(p4Nucleus) - pGamma); + G4ThreeVector p3Residual(G4ThreeVector(p4Nucleus.vect()) - pGamma); G4double newEnergy = sqrt(p3Residual * p3Residual + (Mass + newExcitation) * (Mass + newExcitation)); G4LorentzVector p4Residual(p3Residual, newEnergy); 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 d8a096b3e4..24417d97b7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4VLevelDensityParameter.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 e693302114..18439a1d17 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMultiFragmentation.cc,v 1.6 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) 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 a74b026c07..a7d81b4ee1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFEnsemble.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 355e796235..86c32b34bd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFMacroCluster.cc,v 1.6 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara 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 e7930ee075..3826c80a7c 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh +++ b/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh @@ -22,7 +22,7 @@ // // // $Id: G4DiffractiveSplitableHadron.hh,v 1.5 2001/08/01 17:05:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ff73ea49eb..ee4312733f 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh +++ b/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4FTFModel.hh,v 1.6 2001/08/01 17:05:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0df1ebcd56..ef71a55d08 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh +++ b/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh @@ -22,7 +22,7 @@ // // // $Id: G4FTFParticipants.hh,v 1.7 2001/10/05 16:13:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4FTFParticipants_h 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 b02a2cffc7..fc3f587abd 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc +++ b/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc @@ -22,7 +22,7 @@ // // // $Id: G4DiffractiveSplitableHadron.cc,v 1.7 2001/10/25 16:15:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ 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 2d421e655d..1e6064115b 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc +++ b/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4FTFModel.cc,v 1.9 2001/10/20 10:45:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ 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 00b6de3e67..f8a115c004 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc +++ b/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc @@ -22,7 +22,7 @@ // // // $Id: G4FTFParticipants.cc,v 1.6 2001/10/04 20:00:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 eb2db75513..4600b839c2 100644 --- a/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh +++ b/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TheoFSGenerator.hh,v 1.5 2001/08/01 17:05:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4TheoFSGenerator.hh,v 1.6 2002/06/10 13:27:06 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Class Description @@ -33,7 +33,8 @@ // the corresponding process. // Note: This class is part of an implementation framework. You need to // register corresponding high energy generators and transport codes to -// fill it with life. +// fill it with life; decay of strong resonances is done directly, +// in case there is no residual nucleus. // Class Description - End #ifndef G4TheoFSGenerator_h @@ -42,6 +43,7 @@ #include "G4VIntraNuclearTransportModel.hh" #include "G4HadronicInteraction.hh" #include "G4VHighEnergyGenerator.hh" +#include "G4DecayStrongResonances.hh" class G4TheoFSGenerator : public G4HadronicInteraction @@ -69,7 +71,7 @@ class G4TheoFSGenerator : public G4HadronicInteraction private: G4VIntraNuclearTransportModel *theTransport; G4VHighEnergyGenerator *theHighEnergyGenerator; - + G4DecayStrongResonances theDecay; G4ParticleChange *theParticleChange; }; 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 f90821e702..5aa37542af 100644 --- a/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc +++ b/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TheoFSGenerator.cc,v 1.6 2001/10/04 20:00:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4TheoFSGenerator.cc,v 1.7 2002/06/10 13:27:07 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4TheoFSGenerator #include "G4DynamicParticle.hh" @@ -77,10 +77,29 @@ G4VParticleChange * G4TheoFSGenerator::ApplyYourself(const G4Track & thePrimary, G4KineticTrackVector * theInitialResult = theHighEnergyGenerator->Scatter(theNucleus, *aPart); - // Hand over to transport for intra-nuclear transport - G4ReactionProductVector * theTransportResult = - theTransport->Propagate(theInitialResult, theHighEnergyGenerator->GetWoundedNucleus()); + G4double predecayEnergy = 0; + for(int hpw=0; hpwsize(); hpw++) + { + predecayEnergy += (*theInitialResult)[hpw]->Get4Momentum().t(); + } + G4ReactionProductVector * theTransportResult = NULL; + G4int hitCount = 0; + const G4std::vector & they = theHighEnergyGenerator->GetWoundedNucleus()->GetNucleons(); + for(size_t them=0; themAreYouHit()) hitCount ++; + } + if(hitCount != theHighEnergyGenerator->GetWoundedNucleus()->GetMassNumber() ) + { + theTransportResult = + theTransport->Propagate(theInitialResult, theHighEnergyGenerator->GetWoundedNucleus()); + } + else + { + theTransportResult = theDecay.Propagate(theInitialResult, theHighEnergyGenerator->GetWoundedNucleus()); + } + // Fill particle change unsigned int i; theParticleChange->SetNumberOfSecondaries(theTransportResult->size()); diff --git a/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh b/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh index 7ff1173be4..5a365f2be5 100644 --- a/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh +++ b/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh @@ -21,16 +21,18 @@ // ******************************************************************** // // -// $Id: G4V3DNucleus.hh,v 1.6 2001/08/01 17:08:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4V3DNucleus.hh,v 1.8 2002/06/06 10:07:14 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4V3DNucleus_h #define G4V3DNucleus_h 1 class G4Nucleon; +class G4VNuclearDensity; #include "G4DynamicParticle.hh" #include "G4Pair.hh" #include "Randomize.hh" +#include "g4std/vector" class G4V3DNucleus { @@ -49,6 +51,7 @@ class G4V3DNucleus virtual void Init(G4double theA, G4double theZ) = 0; virtual G4bool StartLoop() = 0; virtual G4Nucleon * GetNextNucleon() = 0; + virtual const G4std::vector & GetNucleons() = 0; virtual G4int GetMassNumber() = 0; virtual G4double GetMass() = 0; virtual G4int GetCharge() = 0; @@ -60,7 +63,7 @@ class G4V3DNucleus virtual void DoLorentzContraction(const G4LorentzVector & theBoost) = 0; virtual void DoLorentzContraction(const G4ThreeVector & theBeta) = 0; virtual void DoTranslation(const G4ThreeVector & theShift) = 0; - + virtual const G4VNuclearDensity * GetNuclearDensity() const = 0; public: G4Pair ChooseImpactXandY(G4double maxImpact); G4Pair RefetchImpactXandY(){return theImpactParameter;} diff --git a/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh b/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh index b918521664..a008c91581 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4VHighEnergyGenerator.hh,v 1.6 2001/08/01 17:08:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VHighEnergyGenerator_h #define G4VHighEnergyGenerator_h 1 diff --git a/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh b/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh index e1c55e7c71..d0d69fb4b3 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIntraNuclearTransportModel.hh,v 1.8 2001/08/01 17:08:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $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 0b649861bd..37f7606e34 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VKineticNucleon.hh,v 1.4 2001/08/01 17:08:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 d19770e191..705d7b6577 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VNuclearDensity.hh,v 1.5 2001/08/01 17:08:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VNuclearDensity.hh,v 1.6 2002/04/24 13:09:16 gunter Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VNuclearDensity_h #define G4VNuclearDensity_h 1 @@ -38,18 +38,18 @@ class G4VNuclearDensity G4VNuclearDensity(); virtual ~G4VNuclearDensity(); - inline G4double GetDensity(G4ThreeVector aPosition) + inline G4double GetDensity(const G4ThreeVector & aPosition) const { return rho0*GetRelativeDensity(aPosition); }; - virtual G4double GetRelativeDensity(G4ThreeVector aPosition) = 0; - virtual G4double GetRadius(const G4double maxRelativeDenisty) = 0; - virtual G4double GetDeriv(const G4ThreeVector & point) = 0; + virtual G4double GetRelativeDensity(const G4ThreeVector & aPosition) const = 0; + virtual G4double GetRadius(const G4double maxRelativeDenisty) const = 0; + virtual G4double GetDeriv(const G4ThreeVector & point) const = 0; protected: inline void Setrho0(G4double arho0) { rho0=arho0; }; - inline G4double Getrho0() { return rho0; }; + inline G4double Getrho0() const { return rho0; }; private: diff --git a/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh b/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh index 2527880086..6ba46b3f94 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundModel.hh,v 1.6 2001/08/01 17:08:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 0b0b607a09..c306fce769 100644 --- a/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc +++ b/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc @@ -22,7 +22,7 @@ // // // $Id: G4V3DNucleus.cc,v 1.4 2001/08/01 17:08:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4V3DNucleus.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc b/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc index 5d0d816e9c..30b038ca7e 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VHighEnergyGenerator.cc,v 1.4 2001/08/01 17:08:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VHighEnergyGenerator #include "G4VHighEnergyGenerator.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc b/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc index 97d5f966d8..d8bfbdfe0f 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VIntraNuclearTransportModel.cc,v 1.5 2001/08/01 17:08:23 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $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 b30afc2042..d2d7c38333 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VKineticNucleon.cc,v 1.4 2001/08/01 17:08:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 f77e044bc2..84ef43d9ed 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VNuclearDensity.cc,v 1.4 2001/08/01 17:08:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VNuclearDensity.cc,v 1.5 2002/04/24 13:10:21 gunter Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 5d4f52405b..c5ef37f8bc 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundModel.cc,v 1.4 2001/08/01 17:08:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VPreCompoundModel.hh" 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 110f160042..fd5cdb06f1 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEIonFragmentation.hh,v 1.6 2001/10/06 08:17:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 61e5818464..9a168c277b 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundAlpha.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundAlpha.hh @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: G4PreCompoundAlpha.hh,v 1.8 2001/08/01 17:08:27 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundAlpha.hh,v 1.10 2002/06/06 16:59:32 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // -// by V. Lara +// by V. Lara #ifndef G4PreCompoundAlpha_h #define G4PreCompoundAlpha_h 1 @@ -35,11 +35,12 @@ #include "G4AlphaCoulombBarrier.hh" + class G4PreCompoundAlpha : public G4VPreCompoundIon { public: // default constructor - G4PreCompoundAlpha():G4VPreCompoundIon(4,2,&theAlphaCoulombBarrier,"alpha") {} + G4PreCompoundAlpha():G4VPreCompoundIon(4,2,&theAlphaCoulombBarrier,"Alpha") {} // copy constructor G4PreCompoundAlpha(const G4PreCompoundAlpha &right): G4VPreCompoundIon(right) {} @@ -51,73 +52,72 @@ public: const G4PreCompoundAlpha & operator=(const G4PreCompoundAlpha &right) { if (&right != this) this->G4VPreCompoundIon::operator=(right); return *this; - } + }; G4bool operator==(const G4PreCompoundAlpha &right) const { return G4VPreCompoundIon::operator==(right);} + G4bool operator!=(const G4PreCompoundAlpha &right) const { return G4VPreCompoundIon::operator!=(right);} - G4ReactionProduct * GetReactionProduct() const - { - G4ReactionProduct * theReactionProduct = new G4ReactionProduct(G4Alpha::AlphaDefinition()); - theReactionProduct->SetMomentum(GetMomentum().vect()); - theReactionProduct->SetTotalEnergy(GetMomentum().e()); - return theReactionProduct; - } -public: - void CalcExcitonLevelDensityRatios(const G4double Excitons, - const G4double Particles) - { - // Level density ratios are calculated according to the formula - // (P!*(N-1)!)/((P-Af)!*(N-1-Af)!*Af!) - // where P is number of particles - // N is number of excitons - // Af atomic number of emitting fragment - // the next is a simplification for alphas (Af = 4) + G4ReactionProduct * GetReactionProduct() const + { + G4ReactionProduct * theReactionProduct = + new G4ReactionProduct(G4Alpha::AlphaDefinition()); + theReactionProduct->SetMomentum(GetMomentum().vect()); + theReactionProduct->SetTotalEnergy(GetMomentum().e()); +#ifdef pctest + theReactionProduct->SetCreatorModel("G4PrecompoundModel"); +#endif + return theReactionProduct; + } - SetExcitonLevelDensityRatio(((Particles*(Excitons-1.0))* - ((Particles-1.0)*(Excitons-2.0)/2.0)* - ((Particles-2.0)*(Excitons-3.0)/3.0)* - ((Particles-3.0)*(Excitons-4.0)/4.0))/6.0); - } +private: + virtual G4double GetAlpha() + { + G4double C = 0.0; + G4double aZ = GetZ() + GetRestZ(); + if (aZ <= 30) { + C = 0.10; + } else if (aZ <= 50) { + C = 0.1 + -((aZ-50.)/20.)*0.02; + } else if (aZ < 70) { + C = 0.08 + -((aZ-70.)/20.)*0.02; + } else { + C = 0.06; + } + return 1.0+C; + } + virtual G4double GetBeta() + { + return -GetCoulombBarrier(); + } + virtual G4double FactorialFactor(const G4double N, const G4double P) + { + return + (N-4.0)*(P-3.0)*( + (((N-3.0)*(P-2.0))/2.0) *( + (((N-2.0)*(P-1.0))/3.0) *( + (((N-1.0)*P)/2.0) + ) + ) + ); + } - void CalcCondensationProbability(const G4double A) - // This method computes condensation probability to create a fragment - // consisting from N nucleons inside a nucleus with A nucleons - // This value comes from the formula N^3 (N/A)^(N-1) with N = 4 (alpha) - { - SetCondensationProbability(4096.0/(A*A*A)); - } - + virtual G4double CoalescenceFactor(const G4double A) + { + return 4096.0/(A*A*A); + } private: - virtual G4double GetCCoef(const G4double aZ) const; - - G4AlphaCoulombBarrier theAlphaCoulombBarrier; + G4AlphaCoulombBarrier theAlphaCoulombBarrier; }; - + #endif - -inline G4double G4PreCompoundAlpha::GetCCoef(const G4double aZ) const -{ - G4double C = 0.0; - - if (aZ <= 30) { - C = 0.10; - } else if (aZ <= 50) { - C = 0.1 + -((aZ-50.)/20.)*0.02; - } else if (aZ < 70) { - C = 0.08 + -((aZ-70.)/20.)*0.02; - } else { - C = 0.06; - } - return C; -} - + 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 8ad236d689..a0c402486b 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundDeuteron.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundDeuteron.hh @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: G4PreCompoundDeuteron.hh,v 1.8 2001/08/01 17:08:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundDeuteron.hh,v 1.10 2002/06/06 17:02:25 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // -// by V. Lara +// by V. Lara #ifndef G4PreCompoundDeuteron_h #define G4PreCompoundDeuteron_h 1 @@ -35,15 +35,16 @@ #include "G4DeuteronCoulombBarrier.hh" + class G4PreCompoundDeuteron : public G4VPreCompoundIon { public: // default constructor - G4PreCompoundDeuteron():G4VPreCompoundIon(2,1,&theDeuteronCoulombBarrier,"Deuteron") {}; + G4PreCompoundDeuteron():G4VPreCompoundIon(2,1,&theDeuteronCoulombBarrier,"Deuteron") {} + // copy constructor - G4PreCompoundDeuteron(const G4PreCompoundDeuteron &right): - G4VPreCompoundIon(right) {} - + G4PreCompoundDeuteron(const G4PreCompoundDeuteron &right): G4VPreCompoundIon(right) {} + // destructor ~G4PreCompoundDeuteron() {} @@ -55,64 +56,58 @@ public: G4bool operator==(const G4PreCompoundDeuteron &right) const { return G4VPreCompoundIon::operator==(right);} + G4bool operator!=(const G4PreCompoundDeuteron &right) const { return G4VPreCompoundIon::operator!=(right);} - G4ReactionProduct * GetReactionProduct() const - { - G4ReactionProduct * theReactionProduct = new G4ReactionProduct(G4Deuteron::DeuteronDefinition()); - theReactionProduct->SetMomentum(GetMomentum().vect()); - theReactionProduct->SetTotalEnergy(GetMomentum().e()); - return theReactionProduct; - } + G4ReactionProduct * GetReactionProduct() const + { + G4ReactionProduct * theReactionProduct = + new G4ReactionProduct(G4Deuteron::DeuteronDefinition()); + theReactionProduct->SetMomentum(GetMomentum().vect()); + theReactionProduct->SetTotalEnergy(GetMomentum().e()); +#ifdef pctest + theReactionProduct->SetCreatorModel("G4PrecompoundModel"); +#endif + return theReactionProduct; + } + +private: + virtual G4double GetAlpha() + { + G4double C = 0.0; + G4double aZ = GetZ() + GetRestZ(); + if (aZ >= 70) { + C = 0.10; + } else { + C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; + } + return 1.0 + C/2.0; + } + + virtual G4double GetBeta() + { + return -GetCoulombBarrier(); + } -public: - void CalcExcitonLevelDensityRatios(const G4double Excitons, - const G4double Particles) - { - // Level density ratios are calculated according to the formula - // (P!*(N-1)!)/((P-Af)!*(N-1-Af)!*Af!) - // where P is number of particles - // N is number of excitons - // Af atomic number of emitting fragment - // the next is a simplification for deuterons (Af = 2) - - SetExcitonLevelDensityRatio(Particles*(Excitons-1.0)* - (Particles-1.0)*(Excitons-2.0)/2.0); - } - - - void CalcCondensationProbability(const G4double A) - // This method computes condensation probability to create a fragment - // consisting from N nucleons inside a nucleus with A nucleons - // This value comes from the formula N^3 (N/A)^(N-1) with N = 2 (deuteron) - { - SetCondensationProbability(16.0/A); - } + virtual G4double FactorialFactor(const G4double N, const G4double P) + { + return + (N-1.0)*(N-2.0)*(P-1.0)*P/2.0; + } + virtual G4double CoalescenceFactor(const G4double A) + { + return 16.0/A; + } private: - virtual G4double GetCCoef(const G4double aZ) const; - - G4DeuteronCoulombBarrier theDeuteronCoulombBarrier; + G4DeuteronCoulombBarrier theDeuteronCoulombBarrier; }; #endif - -inline G4double G4PreCompoundDeuteron::GetCCoef(const G4double aZ) const -{ - G4double C = 0.0; - - if (aZ >= 70) { - C = 0.10; - } else { - C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; - } - return C/2.0; -} - - + 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 e9eb79d6d1..0574d0f743 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmission.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmission.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PreCompoundEmission.hh,v 1.8 2001/12/13 12:04:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0793fc7791..b7cf1c7d33 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundFragmentVector.hh,v 1.4 2001/08/01 17:08:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundFragmentVector.hh,v 1.5 2002/06/06 17:03:57 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara @@ -33,39 +33,55 @@ #include "G4VPreCompoundFragment.hh" + class G4PreCompoundFragmentVector { + typedef G4std::vector pcfvector; public: G4PreCompoundFragmentVector(); ~G4PreCompoundFragmentVector(); private: G4PreCompoundFragmentVector(const G4PreCompoundFragmentVector &right); - const G4PreCompoundFragmentVector& operator=(const G4PreCompoundFragmentVector &right); + const G4PreCompoundFragmentVector& + operator=(const G4PreCompoundFragmentVector &right); G4bool operator==(const G4PreCompoundFragmentVector &right) const; G4bool operator!=(const G4PreCompoundFragmentVector &right) const; - + public: - void Initialize(const G4Fragment & aFragment) - { - TotalEmissionProbability = 0.0; - // for (G4int i=0; i < theChannels.entries(); i++) theChannels(i)->Init(aFragment); - for (G4std::vector::iterator i=theChannels.begin(); - i != theChannels.end(); i++) (*i)->Init(aFragment); - return; - } - + inline void Initialize(const G4Fragment & aFragment); G4double CalculateProbabilities(const G4Fragment & aFragment); G4VPreCompoundFragment * ChooseFragment(void); private: - G4std::vector theChannels; - + pcfvector theChannels; G4double TotalEmissionProbability; + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + }; + +#include "G4PreCompoundFragmentVector.icc" + #endif + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc new file mode 100644 index 0000000000..53399f0aeb --- /dev/null +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc @@ -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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// Hadronic Process: Nuclear Preequilibrium +// by V. Lara + + +inline void +G4PreCompoundFragmentVector:: +Initialize(const G4Fragment & aFragment) +{ + TotalEmissionProbability = 0.0; + for (pcfvector::iterator i=theChannels.begin(); + i != theChannels.end(); i++) (*i)->Initialize(aFragment); + return; +} 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 b87929a37f..3b20060b31 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundHe3.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundHe3.hh @@ -21,11 +21,10 @@ // ******************************************************************** // // -// $Id: G4PreCompoundHe3.hh,v 1.8 2001/08/01 17:08:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundHe3.hh,v 1.10 2002/06/06 17:06:24 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // -// by V. Lara - +// by V. Lara #ifndef G4PreCompoundHe3_h #define G4PreCompoundHe3_h 1 @@ -36,6 +35,7 @@ #include "G4He3CoulombBarrier.hh" + class G4PreCompoundHe3 : public G4VPreCompoundIon { public: @@ -45,7 +45,7 @@ public: // copy constructor G4PreCompoundHe3(const G4PreCompoundHe3 &right): G4VPreCompoundIon(right) {} - // DEstructor + // destructor ~G4PreCompoundHe3() {} // operators @@ -56,72 +56,66 @@ public: G4bool operator==(const G4PreCompoundHe3 &right) const { return G4VPreCompoundIon::operator==(right);} + G4bool operator!=(const G4PreCompoundHe3 &right) const { return G4VPreCompoundIon::operator!=(right);} - G4ReactionProduct * GetReactionProduct() const - { - G4ReactionProduct * theReactionProduct = new G4ReactionProduct(G4He3::He3Definition()); - theReactionProduct->SetMomentum(GetMomentum().vect()); - theReactionProduct->SetTotalEnergy(GetMomentum().e()); - return theReactionProduct; - } + G4ReactionProduct * GetReactionProduct() const + { + G4ReactionProduct * theReactionProduct = + new G4ReactionProduct(G4He3::He3Definition()); + theReactionProduct->SetMomentum(GetMomentum().vect()); + theReactionProduct->SetTotalEnergy(GetMomentum().e()); +#ifdef pctest + theReactionProduct->SetCreatorModel("G4PrecompoundModel"); +#endif + return theReactionProduct; + } + +private: + virtual G4double GetAlpha() + { + G4double C = 0.0; + G4double aZ = GetZ() + GetRestZ(); + if (aZ <= 30) { + C = 0.10; + } else if (aZ <= 50) { + C = 0.1 + -((aZ-50.)/20.)*0.02; + } else if (aZ < 70) { + C = 0.08 + -((aZ-70.)/20.)*0.02; + } else { + C = 0.06; + } + return 1.0 + C*(4.0/3.0); + } + virtual G4double GetBeta() + { + return -GetCoulombBarrier(); + } + virtual G4double FactorialFactor(const G4double N, const G4double P) + { + return + (N-3.0)*(P-2.0)*( + (((N-2.0)*(P-1.0))/2.0) *( + (((N-1.0)*P)/3.0) + ) + ); + } -public: - void CalcExcitonLevelDensityRatios(const G4double Excitons, - const G4double Particles) - { - // Level density ratios are calculated according to the formula - // (P!*(N-1)!)/((P-Af)!*(N-1-Af)!*Af!) - // where P is number of particles - // N is number of excitons - // Af atomic number of emitting fragment - // the next is a simplification for He3 (Af = 3) - - SetExcitonLevelDensityRatio(((Particles*(Excitons-1.0))* - ((Particles-1.0)*(Excitons-2.0)/2.0)* - ((Particles-2.0)*(Excitons-3.0)/3.0))/2.0); - } - - - - void CalcCondensationProbability(const G4double A) - // This method computes condensation probability to create a fragment - // consisting from N nucleons inside a nucleus with A nucleons - // This value comes from the formula N^3 (N/A)^(N-1) with N = 3 (He3) - { - SetCondensationProbability(243.0/(A*A)); - } - + virtual G4double CoalescenceFactor(const G4double A) + { + return 243.0/(A*A); + } private: - virtual G4double GetCCoef(const G4double aZ) const; - - G4He3CoulombBarrier theHe3CoulombBarrier; + G4He3CoulombBarrier theHe3CoulombBarrier; }; #endif - - -inline G4double G4PreCompoundHe3::GetCCoef(const G4double aZ) const -{ - G4double C = 0.0; - - if (aZ <= 30) { - C = 0.10; - } else if (aZ <= 50) { - C = 0.1 + -((aZ-50.)/20.)*0.02; - } else if (aZ < 70) { - C = 0.08 + -((aZ-70.)/20.)*0.02; - } else { - C = 0.06; - } - return C*(4.0/3.0); -} - + 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 a7ae3f276e..54405777e2 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundModel.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundModel.hh,v 1.11 2001/08/01 17:08:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundModel.hh,v 1.15 2002/06/06 17:09:10 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -42,8 +42,6 @@ #include "G4LorentzVector.hh" #include "G4NucleiProperties.hh" -#include "G4Proton.hh" -#include "G4VPreCompoundFragment.hh" #include "G4PreCompoundParameters.hh" #include "G4ExcitationHandler.hh" #include "G4Fragment.hh" @@ -52,46 +50,66 @@ //#define debug //#define verbose - +//#define pctest class G4PreCompoundModel : public G4VPreCompoundModel { public: - - G4PreCompoundModel(G4ExcitationHandler * const value) : - G4VPreCompoundModel(value) {}; + + G4PreCompoundModel(G4ExcitationHandler * const value) : + G4VPreCompoundModel(value) {}; - ~G4PreCompoundModel() {}; + ~G4PreCompoundModel() {}; private: - G4PreCompoundModel() {}; - - G4PreCompoundModel(const G4PreCompoundModel &right) {}; - - const G4PreCompoundModel& operator=(const G4PreCompoundModel &right); - G4bool operator==(const G4PreCompoundModel &right) const; - G4bool operator!=(const G4PreCompoundModel &right) const; + G4PreCompoundModel() {}; + + G4PreCompoundModel(const G4PreCompoundModel &right) {}; + + const G4PreCompoundModel& operator=(const G4PreCompoundModel &right); + G4bool operator==(const G4PreCompoundModel &right) const; + G4bool operator!=(const G4PreCompoundModel &right) const; public: - G4VParticleChange * ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus); - - G4ReactionProductVector* DeExcite(const G4Fragment& aFragment) const; + G4VParticleChange * ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus); + + G4ReactionProductVector* DeExcite(const G4Fragment& aFragment) const; + +#ifdef pctest + static G4Fragment GetInitialFragmentForTest() + { return G4PreCompoundModel::theInitialFragmentForTest; } + static G4std::vector * GetCreatorModels() + { return &G4PreCompoundModel::theCreatorModels; } +#endif private: - void PerformEquilibriumEmission(const G4Fragment & aFragment, - G4ReactionProductVector * theResult) const; + void PerformEquilibriumEmission(const G4Fragment & aFragment, + G4ReactionProductVector * theResult) const; #ifdef debug - void CheckConservation(const G4Fragment & theInitialState, - const G4Fragment & aFragment, - G4ReactionProductVector * Result) const; + void CheckConservation(const G4Fragment & theInitialState, + const G4Fragment & aFragment, + G4ReactionProductVector * Result) const; +#endif + + G4ParticleChange theResult; + +#ifdef pctest + static G4Fragment theInitialFragmentForTest; + static G4std::vector theCreatorModels; #endif - G4ParticleChange theResult; }; - - #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 c22836dc2d..98efb51254 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundNeutron.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundNeutron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundNeutron.hh,v 1.7 2001/08/01 17:08:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundNeutron.hh,v 1.10 2002/06/06 17:09:33 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -64,22 +64,34 @@ public: { return G4VPreCompoundNucleon::operator!=(right);} - G4ReactionProduct * GetReactionProduct() const - { - G4ReactionProduct * theReactionProduct = new G4ReactionProduct(G4Neutron::NeutronDefinition()); - theReactionProduct->SetMomentum(GetMomentum().vect()); - theReactionProduct->SetTotalEnergy(GetMomentum().e()); - return theReactionProduct; - } + G4ReactionProduct * GetReactionProduct() const + { + G4ReactionProduct * theReactionProduct = + new G4ReactionProduct(G4Neutron::NeutronDefinition()); + theReactionProduct->SetMomentum(GetMomentum().vect()); + theReactionProduct->SetTotalEnergy(GetMomentum().e()); +#ifdef pctest + theReactionProduct->SetCreatorModel("G4PrecompoundModel"); +#endif + return theReactionProduct; + } + +private: + virtual G4double GetAlpha() + { + return 0.76+2.2/pow(GetRestA(),1.0/3.0); + } + virtual G4double GetBeta() + { + return (2.12/pow(GetRestA(),2.0/3.0)-0.05)*MeV/GetAlpha(); + } - -public: - G4double ProbabilityDistributionFunction(const G4double & eKin, const G4Fragment & aFragment); - - // Gives the kinetic energy for fragments in pre-equilibrium decay - G4double GetKineticEnergy(const G4Fragment & aFragment); - + virtual G4bool IsItPossible(const G4Fragment& aFragment) + { + return ((aFragment.GetNumberOfParticles()-aFragment.GetNumberOfCharged()) >= 1); + } + private: @@ -89,3 +101,8 @@ private: #endif + + + + + 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 983ed0e3d2..341093b73d 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundParameters.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundParameters.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundParameters.hh,v 1.7 2001/08/01 17:08:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundParameters.hh,v 1.8 2002/06/06 17:10:07 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -35,44 +35,45 @@ class G4PreCompoundParameters { private: - static G4PreCompoundParameters thePreCompoundParameters; + static G4PreCompoundParameters thePreCompoundParameters; - // default constructor - G4PreCompoundParameters() : theLevelDensity(0.125/MeV), - r0(1.5*fermi),Transitionsr0(0.6*fermi),FermiEnergy(35.0*MeV) {} + // default constructor + G4PreCompoundParameters() : theLevelDensity(0.125/MeV), + r0(1.5*fermi),Transitions_r0(0.6*fermi),FermiEnergy(35.0*MeV) + {} public: - ~G4PreCompoundParameters() {}; + ~G4PreCompoundParameters() {}; + + static G4PreCompoundParameters * GetAddress(); - static G4PreCompoundParameters * GetAddress(); + G4double GetLevelDensity() + { return theLevelDensity; } + - G4double GetLevelDensity() - { return theLevelDensity; } - - G4double Getr0() - { return r0; } + G4double Getr0() + { return r0; } - G4double GetTransitionsr0() - { return Transitionsr0; } + G4double GetTransitionsr0() + { return Transitions_r0; } - G4double GetFermiEnergy() - { return FermiEnergy; } + G4double GetFermiEnergy() + { return FermiEnergy; } private: - // Level density parameter - const G4double theLevelDensity; + // Level density parameter + const G4double theLevelDensity; - - // Nuclear radius r0 - const G4double r0; + // Nuclear radius r0 + const G4double r0; - // Nuclear radius r0 for transitions - const G4double Transitionsr0; + // Nuclear radius r0 for transitions + const G4double Transitions_r0; - // Fermi energy level - const G4double FermiEnergy; + // Fermi energy level + const G4double FermiEnergy; }; 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 fd0a956dcd..ac133ecf47 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundProton.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundProton.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundProton.hh,v 1.8 2001/08/01 17:08:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundProton.hh,v 1.11 2002/06/06 17:10:38 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -64,22 +64,44 @@ public: { return G4VPreCompoundNucleon::operator!=(right);} - G4ReactionProduct * GetReactionProduct() const - { - G4ReactionProduct * theReactionProduct = new G4ReactionProduct(G4Proton::ProtonDefinition()); - theReactionProduct->SetMomentum(GetMomentum().vect()); - theReactionProduct->SetTotalEnergy(GetMomentum().e()); - return theReactionProduct; - } - - - G4double ProbabilityDistributionFunction(const G4double & eKin, const G4Fragment & aFragment); - - // Gives the kinetic energy for fragments in pre-equilibrium decay - G4double GetKineticEnergy(const G4Fragment & aFragment); + G4ReactionProduct * GetReactionProduct() const + { + G4ReactionProduct * theReactionProduct = + new G4ReactionProduct(G4Proton::ProtonDefinition()); + theReactionProduct->SetMomentum(GetMomentum().vect()); + theReactionProduct->SetTotalEnergy(GetMomentum().e()); +#ifdef pctest + theReactionProduct->SetCreatorModel("G4PrecompoundModel"); +#endif + return theReactionProduct; + } private: - + virtual G4double GetAlpha() + { + G4double aZ = G4double(GetRestZ()); + G4double C = 0.0; + if (aZ >= 70) { + C = 0.10; + } else { + C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; + } + return 1.0 + C; + } + + virtual G4double GetBeta() + { + return -GetCoulombBarrier(); + } + + virtual G4bool IsItPossible(const G4Fragment& aFragment) + { + return (aFragment.GetNumberOfCharged() >= 1); + } + + +private: + G4ProtonCoulombBarrier theProtonCoulombBarrier; }; 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 67af8266ea..7953a00931 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTransitions.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTransitions.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundTransitions.hh,v 1.7 2001/08/01 17:08:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b9fc6ba7e6..02e72449f0 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTriton.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTriton.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundTriton.hh,v 1.8 2001/08/01 17:08:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundTriton.hh,v 1.10 2002/06/06 17:11:43 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -35,8 +35,6 @@ #include "G4TritonCoulombBarrier.hh" -#include "G4ProtonCoulombBarrier.hh" - class G4PreCompoundTriton : public G4VPreCompoundIon { @@ -46,7 +44,7 @@ public: // copy constructor G4PreCompoundTriton(const G4PreCompoundTriton &right): G4VPreCompoundIon(right) {} - + // destructor ~G4PreCompoundTriton() {} @@ -63,65 +61,58 @@ public: G4bool operator!=(const G4PreCompoundTriton &right) const { return G4VPreCompoundIon::operator!=(right);} - G4ReactionProduct * GetReactionProduct() const - { - G4ReactionProduct * theReactionProduct = new G4ReactionProduct(G4Triton::TritonDefinition()); - theReactionProduct->SetMomentum(GetMomentum().vect()); - theReactionProduct->SetTotalEnergy(GetMomentum().e()); - return theReactionProduct; - } + G4ReactionProduct * GetReactionProduct() const + { + G4ReactionProduct * theReactionProduct = + new G4ReactionProduct(G4Triton::TritonDefinition()); + theReactionProduct->SetMomentum(GetMomentum().vect()); + theReactionProduct->SetTotalEnergy(GetMomentum().e()); +#ifdef pctest + theReactionProduct->SetCreatorModel("G4PrecompoundModel"); +#endif + return theReactionProduct; + } + +private: + virtual G4double GetAlpha() + { + G4double C = 0.0; + G4double aZ = GetZ() + GetRestZ(); + if (aZ >= 70) { + C = 0.10; + } else { + C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; + } + + return 1.0 + C/3.0; + } + virtual G4double GetBeta() + { + return -GetCoulombBarrier(); + } + virtual G4double FactorialFactor(const G4double N, const G4double P) + { + return + (N-3.0)*(P-2.0)*( + (((N-2.0)*(P-1.0))/2.0) *( + (((N-1.0)*P)/3.0) + ) + ); + } -public: - void CalcExcitonLevelDensityRatios(const G4double Excitons, - const G4double Particles) - { - // Level density ratios are calculated according to the formula - // (P!*(N-1)!)/((P-Af)!*(N-1-Af)!*Af! (Af-1)!) - // where P is number of particles - // N is number of excitons - // Af atomic number of emitting fragment - // the next is a simplification for tritons (Af = 3) - - SetExcitonLevelDensityRatio(((Particles*(Excitons-1.0))* - ((Particles-1.0)*(Excitons-2.0)/2.0)* - ((Particles-2.0)*(Excitons-3.0)/3.0)/2.0)); - } - - - void CalcCondensationProbability(const G4double A) - // This method computes condensation probability to create a fragment - // consisting from N nucleons inside a nucleus with A nucleons - // This value comes from the formula N^3 (N/A)^(N-1) with N = 3 (triton) - { - SetCondensationProbability(243.0/(A*A)); - } - - + virtual G4double CoalescenceFactor(const G4double A) + { + return 243.0/(A*A); + } private: - virtual G4double GetCCoef(const G4double aZ) const; + G4TritonCoulombBarrier theTritonCoulombBarrier; - G4TritonCoulombBarrier theTritonCoulombBarrier; }; - #endif - - -inline G4double G4PreCompoundTriton::GetCCoef(const G4double aZ) const -{ - G4double C = 0.0; - - if (aZ >= 70) { - C = 0.10; - } else { - C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; - } - - return C/3.0; -} - + 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 817f839e89..55f30ced30 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundFragment.hh,v 1.8 2001/08/01 17:08:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VPreCompoundFragment.hh,v 1.11 2002/06/06 17:12:28 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -36,6 +36,8 @@ #include "G4Fragment.hh" #include "G4VCoulombBarrier.hh" +//#define pctest + class G4ReactionProduct; @@ -44,168 +46,141 @@ class G4VPreCompoundFragment // ============================ // Constructors and destructor // ============================ - + protected: // default constructor G4VPreCompoundFragment() {}; - + public: - // copy constructor - G4VPreCompoundFragment(const G4VPreCompoundFragment &right); - + // copy constructor + G4VPreCompoundFragment(const G4VPreCompoundFragment &right); + // constructor - G4VPreCompoundFragment(const G4double anA, const G4double aZ, - G4VCoulombBarrier * aCoulombBarrier); - - G4VPreCompoundFragment(const G4double anA, const G4double aZ, + G4VPreCompoundFragment(const G4double anA, const G4double aZ, G4VCoulombBarrier * aCoulombBarrier, const G4String & aName); - + virtual ~G4VPreCompoundFragment(); - + // ========== // operators // ========== - - const G4VPreCompoundFragment& operator=(const G4VPreCompoundFragment &right); - + + const G4VPreCompoundFragment& + operator= (const G4VPreCompoundFragment &right); + G4int operator==(const G4VPreCompoundFragment &right) const; G4int operator!=(const G4VPreCompoundFragment &right) const; - - friend G4std::ostream& operator<<(G4std::ostream&, const G4VPreCompoundFragment*); - friend G4std::ostream& operator<<(G4std::ostream&, const G4VPreCompoundFragment&); - + + friend G4std::ostream& + operator<<(G4std::ostream&, const G4VPreCompoundFragment*); + friend G4std::ostream& + operator<<(G4std::ostream&, const G4VPreCompoundFragment&); + // ===================== // Pure Virtual methods // ===================== - virtual void CalcExcitonLevelDensityRatios(const G4double Excitons, const G4double Particles) = 0; - - virtual G4double GetKineticEnergy(const G4Fragment & aFragment) = 0; - - // Calculates condensation probabilities to create clusters - // consisting of N nucleons inside a nucleus with A nucleons - virtual void CalcCondensationProbability(const G4double A) = 0; - virtual G4ReactionProduct * GetReactionProduct() const = 0; - -protected: - virtual G4double ProbabilityDistributionFunction(const G4double & K, const G4Fragment & aFragment) = 0; - -public: - - // ===================== - // Initialization method - // ===================== - void Init(const G4Fragment & aFragment); +protected: + virtual G4double + ProbabilityDistributionFunction(const G4double K, + const G4Fragment & aFragment) = 0; + +public: + + // Initialization method + void Initialize(const G4Fragment & aFragment); + // ================================================ // Methods for calculating the emission probability // ================================================ - + // Calculates the total (integrated over kinetic energy) emission // probability of a fragment G4double CalcEmissionProbability(const G4Fragment & aFragment); + + G4double GetKineticEnergy(const G4Fragment & aFragment); - // See above (in virtual methods) the method ProbabilityDistributionFunction private: // This method performs integration for probability function over // fragment kinetic energy - G4double IntegrateEmissionProbability(const G4double & Low, const G4double & Up, + G4double IntegrateEmissionProbability(const G4double & Low, + const G4double & Up, const G4Fragment & aFragment); - - - // // This quantity takes account of the fact that proton and neutron degrees of - // // freedom are distinguishable - // G4double DistinguishablilityFactor(const G4Fragment & aFragment); - + // ============================ // Data members access methods // ============================ - + public: - const G4double GetA() const { return theA;} - - const G4double GetZ() const { return theZ;} + inline const G4double GetA() const; - const G4double GetRestA() const { return theRestNucleusA;} - - const G4double GetRestZ() const { return theRestNucleusZ;} + inline const G4double GetZ() const; + + inline const G4double GetRestA() const; + + inline const G4double GetRestZ() const; + + inline const G4double GetCoulombBarrier() const; + + inline const G4double GetBindingEnergy() const; + + inline const G4double GetMaximalKineticEnergy() const; + + inline const G4double GetEmissionProbability() const; + + inline const G4double GetNuclearMass() const; + + inline const G4double GetRestNuclearMass() const; + + inline const G4double GetReducedMass() const; + + inline const G4LorentzVector GetMomentum() const; + + inline void SetMomentum(const G4LorentzVector & value); + + inline void SetFragmentName(const G4String& aName); + + inline const G4String GetName() const; - const G4double GetCoulombBarrier() const {return theCoulombBarrier;} - - const G4double GetBindingEnergy() const { return theBindingEnergy;} - - const G4double GetMaximalKineticEnergy() const { return theMaximalKineticEnergy;} - - const G4double GetExcitonLevelDensityRatio() const { return theExcitonLevelDensityRatio;} - void SetExcitonLevelDensityRatio(const G4double value) { theExcitonLevelDensityRatio = value;} - void SetEmissionProbability(const G4double value) { theEmissionProbability = value;} - - const G4double GetEmissionProbability() const { return theEmissionProbability;} - - const G4double GetCondensationProbability() const { return theCondensationProbability;} - void SetCondensationProbability(const G4double value) { theCondensationProbability = value;} - - const G4double GetNuclearMass() const { - return G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(theZ,theA); - } - - const G4double GetRestNuclearMass() const { - return G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(theRestNucleusZ,theRestNucleusA); - } - - - - const G4double GetReducedMass() const { - return GetRestNuclearMass()*GetNuclearMass()/(GetNuclearMass()+GetRestNuclearMass()); - } - - const G4LorentzVector GetMomentum() const { return theMomentum;} - - void SetMomentum(const G4LorentzVector & value) { theMomentum = value;} - - - void SetFragmentName(const G4String& aName) { theFragmentName = aName; } - const G4String GetName() const { return theFragmentName; } - - - // ============= // Data members // ============= - + private: - + G4double theA; - + G4double theZ; - + G4double theRestNucleusA; - + G4double theRestNucleusZ; G4double theCoulombBarrier; G4VCoulombBarrier * theCoulombBarrierPtr; - + G4double theBindingEnergy; - + G4double theMaximalKineticEnergy; - - G4double theExcitonLevelDensityRatio; - + G4double theEmissionProbability; - - G4double theCondensationProbability; - + G4LorentzVector theMomentum; - + G4String theFragmentName; - + }; +#include "G4VPreCompoundFragment.icc" + #endif + + + diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc new file mode 100644 index 0000000000..1ea4a8112b --- /dev/null +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc @@ -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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// by V. Lara + + +inline const G4double G4VPreCompoundFragment:: +GetA() const +{ + return theA; +} + +inline const G4double G4VPreCompoundFragment:: +GetZ() const +{ + return theZ; +} + +inline const G4double G4VPreCompoundFragment:: +GetRestA() const +{ + return theRestNucleusA; +} + +inline const G4double G4VPreCompoundFragment:: +GetRestZ() const +{ + return theRestNucleusZ; +} + +inline const G4double G4VPreCompoundFragment:: +GetCoulombBarrier() const +{ + return theCoulombBarrier; +} + +inline const G4double G4VPreCompoundFragment:: +GetBindingEnergy() const +{ + return theBindingEnergy; +} + +inline const G4double G4VPreCompoundFragment:: +GetMaximalKineticEnergy() const +{ + return theMaximalKineticEnergy; +} + +inline const G4double G4VPreCompoundFragment:: +GetEmissionProbability() const +{ + return theEmissionProbability; +} + +inline const G4double G4VPreCompoundFragment:: +GetNuclearMass(void) const +{ + return G4ParticleTable::GetParticleTable()-> + GetIonTable()->GetIonMass(static_cast(theZ),static_cast(theA)); +} + + + +inline const G4double G4VPreCompoundFragment:: +GetRestNuclearMass() const +{ + return G4ParticleTable::GetParticleTable()->GetIonTable()-> + GetIonMass(static_cast(theRestNucleusZ),static_cast(theRestNucleusA)); +} + + + +inline const G4double G4VPreCompoundFragment:: +GetReducedMass() const +{ + return GetRestNuclearMass()*GetNuclearMass()/ + (GetNuclearMass()+GetRestNuclearMass()); +} + +inline const G4LorentzVector G4VPreCompoundFragment:: +GetMomentum() const +{ + return theMomentum; +} + +inline void G4VPreCompoundFragment:: +SetMomentum(const G4LorentzVector & value) +{ + theMomentum = value; +} + +inline void G4VPreCompoundFragment:: +SetFragmentName(const G4String& aName) +{ + theFragmentName = aName; +} + +inline const G4String G4VPreCompoundFragment:: +GetName() const +{ + return theFragmentName; +} + 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 d48d0502d0..4df0c06fee 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundIon.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundIon.hh @@ -21,20 +21,17 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundIon.hh,v 1.8 2001/08/01 17:08:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VPreCompoundIon.hh,v 1.10 2002/06/06 17:14:05 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara - -#ifndef G4PreCompoundIon_h -#define G4PreCompoundIon_h 1 - +#ifndef G4VPreCompoundIon_h +#define G4VPreCompoundIon_h 1 #include "G4VPreCompoundFragment.hh" -#include "G4PreCompoundParameters.hh" -#include "Randomize.hh" -//#include "G4VCoulombBarrier.hh" +#include "G4VCoulombBarrier.hh" + class G4VPreCompoundIon : public G4VPreCompoundFragment { @@ -44,45 +41,56 @@ protected: public: - // copy constructor - G4VPreCompoundIon(const G4VPreCompoundIon &right): G4VPreCompoundFragment(right) {} - - // constructor - G4VPreCompoundIon(const G4double anA, const G4double aZ, G4VCoulombBarrier* aCoulombBarrier): - G4VPreCompoundFragment(anA,aZ,aCoulombBarrier) {} - - G4VPreCompoundIon(const G4double anA, const G4double aZ, G4VCoulombBarrier* aCoulombBarrier, - const G4String & aName): - G4VPreCompoundFragment(anA,aZ,aCoulombBarrier,aName) {} - - // destructor - virtual ~G4VPreCompoundIon() {} - - // operators - const G4VPreCompoundIon & operator=(const G4VPreCompoundIon &right) { - if (&right != this) this->G4VPreCompoundFragment::operator=(right); - return *this; - } - - - G4bool operator==(const G4VPreCompoundIon &right) const - { return G4VPreCompoundFragment::operator==(right);} - - G4bool operator!=(const G4VPreCompoundIon &right) const - { return G4VPreCompoundFragment::operator!=(right);} - - - -public: - G4double ProbabilityDistributionFunction(const G4double & eKin, const G4Fragment & aFragment); - - // Gives the kinetic energy for fragments in pre-equilibrium decay - G4double GetKineticEnergy(const G4Fragment & aFragment); - + // copy constructor + G4VPreCompoundIon(const G4VPreCompoundIon &right): + G4VPreCompoundFragment(right) {} + + // constructor + G4VPreCompoundIon(const G4double anA, + const G4double aZ, + G4VCoulombBarrier* aCoulombBarrier, + const G4String & aName): + G4VPreCompoundFragment(anA,aZ,aCoulombBarrier,aName) {} + + virtual ~G4VPreCompoundIon() {} + + // operators + const G4VPreCompoundIon & + operator=(const G4VPreCompoundIon &right) { + if (&right != this) this->G4VPreCompoundFragment::operator=(right); + return *this; + } + + G4bool operator==(const G4VPreCompoundIon &right) const + { return G4VPreCompoundFragment::operator==(right);} + + G4bool operator!=(const G4VPreCompoundIon &right) const + { return G4VPreCompoundFragment::operator!=(right);} + + virtual G4double ProbabilityDistributionFunction(const G4double eKin, + const G4Fragment& aFragment); + protected: + G4bool IsItPossible(const G4Fragment& aFragment) + { + G4int pplus = aFragment.GetNumberOfCharged(); + G4int pneut = aFragment.GetNumberOfParticles()-pplus; + return (pneut >= (GetA()-GetZ()) && pplus >= GetZ()); + } - virtual G4double GetCCoef(const G4double aZ) const {return 1.0;} + virtual G4double GetAlpha() = 0; + virtual G4double GetBeta() = 0; + virtual G4double FactorialFactor(const G4double N, const G4double P) = 0; + virtual G4double CoalescenceFactor(const G4double A) = 0; + }; #endif - + + + + + + + + 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 6537eb848f..450aefc652 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundNucleon.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundNucleon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundNucleon.hh,v 1.7 2001/08/01 17:08:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VPreCompoundNucleon.hh,v 1.8 2002/06/06 17:15:00 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -37,56 +37,45 @@ class G4VPreCompoundNucleon : public G4VPreCompoundFragment { protected: // default constructor - G4VPreCompoundNucleon() {}; + G4VPreCompoundNucleon() {} public: // copy constructor - G4VPreCompoundNucleon(const G4VPreCompoundNucleon &right): G4VPreCompoundFragment(right) {} + G4VPreCompoundNucleon(const G4VPreCompoundNucleon &right): + G4VPreCompoundFragment(right) {} // constructor - G4VPreCompoundNucleon(const G4double anA, const G4double aZ, G4VCoulombBarrier* aCoulombBarrier): - G4VPreCompoundFragment(anA,aZ,aCoulombBarrier) {} + G4VPreCompoundNucleon(const G4double anA, + const G4double aZ, + G4VCoulombBarrier* aCoulombBarrier, + const G4String & aName): + G4VPreCompoundFragment(anA,aZ,aCoulombBarrier,aName) {} - G4VPreCompoundNucleon(const G4double anA, const G4double aZ, G4VCoulombBarrier* aCoulombBarrier, - const G4String & aName): - G4VPreCompoundFragment(anA,aZ,aCoulombBarrier,aName) {} + virtual ~G4VPreCompoundNucleon() {} - virtual ~G4VPreCompoundNucleon() {} + // operators + const G4VPreCompoundNucleon & + operator=(const G4VPreCompoundNucleon &right) { + if (&right != this) this->G4VPreCompoundFragment::operator=(right); + return *this; + } - // operators - const G4VPreCompoundNucleon & operator=(const G4VPreCompoundNucleon &right) { - if (&right != this) this->G4VPreCompoundFragment::operator=(right); - return *this; - } - - G4bool operator==(const G4VPreCompoundNucleon &right) const - { return G4VPreCompoundFragment::operator==(right);} - - G4bool operator!=(const G4VPreCompoundNucleon &right) const - { return G4VPreCompoundFragment::operator!=(right);} - - - void CalcExcitonLevelDensityRatios(const G4double Excitons,const G4double Particles) - { - // Level density ratios are calculated according to the formula - // (P!*(N-1)!)/((P-Af)!*(N-1-Af)!*Af!) - // where P is number of particles - // N is number of excitons - // Af atomic number of emitting fragment - // the next is a simplification for nucleons (Af = 1) - - SetExcitonLevelDensityRatio(Particles*(Excitons-1.0)); - } - - void CalcCondensationProbability(const G4double A) - // This method computes condensation probability to create a cluster - // consisting of N nucleons inside a nucleus with A nucleons. - // For Nucleons this probability is, of course, equal to 1 - { - SetCondensationProbability(1.0); - } + G4bool operator==(const G4VPreCompoundNucleon &right) const + { return G4VPreCompoundFragment::operator==(right);} + + G4bool operator!=(const G4VPreCompoundNucleon &right) const + { return G4VPreCompoundFragment::operator!=(right);} + + virtual G4double ProbabilityDistributionFunction(const G4double eKin, + const G4Fragment& aFragment); + +protected: + virtual G4double GetAlpha() = 0; + virtual G4double GetBeta() = 0; + virtual G4bool IsItPossible(const G4Fragment&) = 0; + + }; #endif - 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 c613ec55ba..f4fd8ee690 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4LowEIonFragmentation.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4LowEIonFragmentation.cc @@ -122,7 +122,7 @@ ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus) G4double compoundEnergy = thePrimary.GetTotalEnergy()*particlesFromProjectile/aProjectileA; G4double targetMass = G4ParticleTable::GetParticleTable() - ->GetIonTable()->GetIonMass(aTargetZ ,aTargetA); + ->GetIonTable()->GetIonMass(static_cast(aTargetZ) ,static_cast(aTargetA)); compoundEnergy += targetMass; G4LorentzVector fragment4Momentum(exciton3Momentum, compoundEnergy); @@ -152,9 +152,9 @@ ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus) G4Fragment initialState2; initialState2.SetA(aProjectileA-particlesFromProjectile); initialState2.SetZ(aProjectileZ-chargedFromProjectile); - initialState2.SetNumberOfHoles((aProjectileA-particlesFromProjectile)/2.); - initialState2.SetNumberOfParticles((aProjectileZ-chargedFromProjectile)/2.); - initialState2.SetNumberOfCharged((aProjectileZ-chargedFromProjectile)/2.); + initialState2.SetNumberOfHoles((aProjectileA-particlesFromProjectile)/2); + initialState2.SetNumberOfParticles((aProjectileZ-chargedFromProjectile)/2); + initialState2.SetNumberOfCharged((aProjectileZ-chargedFromProjectile)/2); initialState2.SetMomentum(residual4Momentum); 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 0b58cd3d75..8f6092cd01 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc @@ -21,36 +21,17 @@ // ******************************************************************** // // -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * -// * By copying, 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.7 2001/09/27 16:51:56 larazb Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundEmission.cc,v 1.10 2002/06/06 17:17:45 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara #include "G4PreCompoundEmission.hh" +#include "G4PreCompoundParameters.hh" +//#include "G4EvaporationLevelDensityParameter.hh" + const G4PreCompoundEmission & G4PreCompoundEmission::operator=(const G4PreCompoundEmission &right) { @@ -80,82 +61,97 @@ G4PreCompoundEmission::G4PreCompoundEmission(const G4Fragment& aFragment) G4ReactionProduct * G4PreCompoundEmission::PerformEmission(G4Fragment & aFragment) { - // Choose a Fragment for emission - G4VPreCompoundFragment * theFragment = theFragmentsVector.ChooseFragment(); +#ifdef debug + G4Fragment InitialState(aFragment); +#endif + // Choose a Fragment for emission + G4VPreCompoundFragment * theFragment = theFragmentsVector.ChooseFragment(); + if (theFragment == 0) + { + G4cerr << "G4PreCompoundEmission::PerformEmission : I couldn't choose a fragment\n" + << "while trying to de-excite\n" + << aFragment << '\n'; + G4Exception(""); + } + // Kinetic Energy of emitted fragment + G4double KineticEnergyOfEmittedFragment = theFragment->GetKineticEnergy(aFragment); + + // Calculate the fragment momentum (three vector) + G4ThreeVector momentum = AngularDistribution(theFragment,aFragment,KineticEnergyOfEmittedFragment); + + // Mass of emittef fragment + G4double EmittedMass = theFragment->GetNuclearMass(); + + // Now we can calculate the four momentum + // both options are valid and give the same result but 2nd one is faster + // G4LorentzVector EmittedMomentum(momentum,sqrt(momentum.mag2()+EmittedMass*EmittedMass)); + G4LorentzVector EmittedMomentum(momentum,EmittedMass+KineticEnergyOfEmittedFragment); + + // Perform Lorentz boost + EmittedMomentum.boost(aFragment.GetMomentum().boostVector()); - // Kinetic Energy of emitted fragment - G4double KineticEnergyOfEmittedFragment = theFragment->GetKineticEnergy(aFragment); + // Set emitted fragment momentum + theFragment->SetMomentum(EmittedMomentum); - // Calculate the fragment momentum (three vector) - G4ThreeVector momentum = AngularDistribution(theFragment,aFragment,KineticEnergyOfEmittedFragment); + + // NOW THE RESIDUAL NUCLEUS + // ------------------------ + + // Now the residual nucleus. + // The energy conservation says that + G4double ResidualEcm = +// aFragment.GetGroundStateMass() + aFragment.GetExcitationEnergy() // initial energy in cm + aFragment.GetMomentum().m() + - (EmittedMass+KineticEnergyOfEmittedFragment); + + // Then the four momentum for residual is + G4LorentzVector RestMomentum(-momentum,ResidualEcm); + // This could save a Lorentz boost + // G4LorentzVector RestMomentum2(aFragment.GetMomentum()-EmittedMomentum); + + // Just for test + // Excitation energy + // G4double anU = ResidualEcm - theFragment->GetRestNuclearMass(); + // This is equivalent + // G4double anU = theFragment->GetMaximalKineticEnergy() - KineticEnergyOfEmittedFragment + + // theFragment->GetCoulombBarrier(); + + // check that Excitation energy is >= 0 + G4double anU = RestMomentum.m()-theFragment->GetRestNuclearMass(); + if (anU < 0.0) G4Exception("G4PreCompoundModel::DeExcite: Excitation energy less than 0!"); + + + + // Update nucleus parameters: + // -------------------------- + // Number of excitons + aFragment.SetNumberOfParticles(aFragment.GetNumberOfParticles()- + G4int(theFragment->GetA())); + // Number of charges + aFragment.SetNumberOfCharged(aFragment.GetNumberOfCharged()- + G4int(theFragment->GetZ())); + + // Atomic number + aFragment.SetA(theFragment->GetRestA()); + + // Charge + aFragment.SetZ(theFragment->GetRestZ()); + + + // Perform Lorentz boosts + RestMomentum.boost(aFragment.GetMomentum().boostVector()); + + // Update nucleus momentum + aFragment.SetMomentum(RestMomentum); - // Mass of emittef fragment - G4double EmittedMass = theFragment->GetNuclearMass(); - - - // Now we can calculate the four momentum - // both options are valid and give the same result but 2nd one is faster - // G4LorentzVector EmittedMomentum(momentum,sqrt(momentum.mag2()+EmittedMass*EmittedMass)); - G4LorentzVector EmittedMomentum(momentum,EmittedMass+KineticEnergyOfEmittedFragment); - - // Perform Lorentz boost - EmittedMomentum.boost(aFragment.GetMomentum().boostVector()); - - // Set emitted fragment momentum - theFragment->SetMomentum(EmittedMomentum); - - - // NOW THE RESIDUAL NUCLEUS - // ------------------------ - - // Now the residual nucleus. - // The energy conservation says that - G4double ResidualEcm = - aFragment.GetGroundStateMass() + aFragment.GetExcitationEnergy() // initial energy in cm - - (EmittedMass+KineticEnergyOfEmittedFragment); - - // Then the four momentum for residual is - G4LorentzVector RestMomentum(-momentum,ResidualEcm); - G4LorentzVector RestMomentum2(aFragment.GetMomentum()-EmittedMomentum); - - - // Just for test - // Excitation energy - // G4double anU = ResidualEcm - theFragment->GetRestNuclearMass(); - // This is equivalent - // G4double anU = theFragment->GetMaximalKineticEnergy() - KineticEnergyOfEmittedFragment + - // theFragment->GetCoulombBarrier(); - - // check that Excitation energy is >= 0 - G4double anU = RestMomentum.m()-theFragment->GetRestNuclearMass(); - if (anU < 0.0) G4Exception("G4PreCompoundModel::DeExcite: Excitation energy less than 0!"); - - - - // Update nucleus parameters: - // -------------------------- - // Number of excitons - aFragment.SetNumberOfParticles(aFragment.GetNumberOfParticles()- - G4int(theFragment->GetA())); - // Number of charges - aFragment.SetNumberOfCharged(aFragment.GetNumberOfCharged()- - G4int(theFragment->GetZ())); - - // Atomic number - aFragment.SetA(theFragment->GetRestA()); - - // Charge - aFragment.SetZ(theFragment->GetRestZ()); - - - // Perform Lorentz boosts - RestMomentum.boost(aFragment.GetMomentum().boostVector()); - - // Update nucleus momentum - aFragment.SetMomentum(RestMomentum); - - // Create a G4ReactionProduct - G4ReactionProduct * MyRP = theFragment->GetReactionProduct(); + // Create a G4ReactionProduct + G4ReactionProduct * MyRP = theFragment->GetReactionProduct(); +#ifdef pctest + MyRP->SetCreatorModel("G4PreCompoundModel"); +#endif +#ifdef debug + CheckConservation(InitialState,aFragment,MyRP); +#endif return MyRP; } @@ -178,7 +174,11 @@ G4ThreeVector G4PreCompoundEmission::AngularDistribution(G4VPreCompoundFragment G4double Ef = G4PreCompoundParameters::GetAddress()->GetFermiEnergy(); // - G4double g = 0.595*aFragment.GetA()*G4PreCompoundParameters::GetAddress()->GetLevelDensity(); +// G4EvaporationLevelDensityParameter theLDP; +// G4double g = 0.595*aFragment.GetA()* +// theLDP.LevelDensityParameter(aFragment.GetA(),aFragment.GetZ(),U); + G4double g = 0.595*aFragment.GetA()* + G4PreCompoundParameters::GetAddress()->GetLevelDensity(); // Average exciton energy relative to bottom of nuclear well G4double Eav = 2.0*p*(p+1.0)/((p+h)*g); @@ -200,7 +200,7 @@ G4ThreeVector G4PreCompoundEmission::AngularDistribution(G4VPreCompoundFragment // G4double normalization = pi*bessi0(an); - // Normalization is expesive to calculate + // Normalization is expensive to calculate // And rejection method is selfnormalized // So, I only need the maximum G4double normalization = exp(an); @@ -235,27 +235,58 @@ G4ThreeVector G4PreCompoundEmission::AngularDistribution(G4VPreCompoundFragment G4double G4PreCompoundEmission::rho(const G4double p, const G4double h, const G4double g, const G4double E, const G4double Ef) const { - G4double fact[30]; - fact[0] = 1; - for (G4int n = 1; n < 21; n++) { - fact[n] = fact[n-1]*G4double(n); - } + // Values of factorial function from 0 to 50 + static const G4double fact[51] = {1.0, 2.0, 6.0, 24.0, 120.0, 720.0, 5040.0, 40320.0, 362880.0, + 3628800.0, 39916800.0, 479001600.0, 6227020800.0, 87178291200.0, + 1307674368000.0, 20922789888000.0, 355687428096000.0, + 6402373705728000.0, 121645100408832000.0, 2432902008176640000.0, + 51090942171709440000.0, 1124000727777607680000.0, + 25852016738884978212864.0, 620448401733239409999872.0, + 15511210043330986055303168.0, 403291461126605650322784256.0, + 10888869450418351940239884288.0, 304888344611713836734530715648.0, + 8841761993739700772720181510144.0, + 265252859812191032188804700045312.0, + 8222838654177922430198509928972288.0, + 263130836933693517766352317727113216.0, + 8683317618811885938715673895318323200.0, + 295232799039604119555149671006000381952.0, + 10333147966386144222209170348167175077888.0, + 371993326789901177492420297158468206329856.0, + 13763753091226343102992036262845720547033088.0, + 523022617466601037913697377988137380787257344.0, + 20397882081197441587828472941238084160318341120.0, + 815915283247897683795548521301193790359984930816.0, + 33452526613163802763987613764361857922667238129664.0, + 1405006117752879788779635797590784832178972610527232.0, + 60415263063373834074440829285578945930237590418489344.0, + 2658271574788448529134213028096241889243150262529425408.0, + 119622220865480188574992723157469373503186265858579103744.0, + 5502622159812088456668950435842974564586819473162983440384.0, + 258623241511168177673491006652997026552325199826237836492800.0, + 12413915592536072528327568319343857274511609591659416151654400.0, + 608281864034267522488601608116731623168777542102418391010639872.0, + 30414093201713375576366966406747986832057064836514787179557289984.0}; +// fact[0] = 1; +// for (G4int n = 1; n < 21; n++) { +// fact[n] = fact[n-1]*G4double(n); +// } - G4double aph = (p*p + h*h + p - 3.0*h)/(4.0*g); + G4double aph = (p*p + h*h + p - 3.0*h)/(4.0*g); - G4double tot = 0.0; - for (G4int j = 0; j <= h; j++) { - G4double t1 = pow(-1.0, G4double(j)); - G4double t2 = fact[j]/ (fact[G4int(h)-j]*fact[G4int(h)]); - G4double t3 = E - G4double(j)*Ef - aph; - if (t3 < 0.0) t3 = 0.0; - t3 = pow(t3,p+h-1); - tot += t1*t2*t3; - } - - tot *= pow(g,p+h)/(fact[G4int(p)]*fact[G4int(h)]*fact[G4int(p+h)-1]); - - return tot; + G4double tot = 0.0; + for (G4int j = 0; j <= h; j++) + { + G4double t1 = pow(-1.0, G4double(j)); + G4double t2 = fact[j]/ (fact[G4int(h)-j]*fact[G4int(h)]); + G4double t3 = E - G4double(j)*Ef - aph; + if (t3 < 0.0) t3 = 0.0; + t3 = pow(t3,p+h-1); + tot += t1*t2*t3; + } + + tot *= pow(g,p+h)/(fact[G4int(p)]*fact[G4int(h)]*fact[G4int(p+h)-1]); + + return tot; } // G4double G4PreCompoundEmission::bessi0(const G4double x) const @@ -286,3 +317,53 @@ G4double G4PreCompoundEmission::rho(const G4double p, const G4double h, const G4 // return ans; // } + + +#ifdef debug +void G4PreCompoundEmission::CheckConservation(const G4Fragment & theInitialState, + const G4Fragment & theResidual, + G4ReactionProduct * theEmitted) const +{ + G4double ProductsEnergy = theEmitted->GetTotalEnergy() + theResidual.GetMomentum().e(); + G4ThreeVector ProductsMomentum(theEmitted->GetMomentum()+theResidual.GetMomentum().vect()); + G4int ProductsA = theEmitted->GetDefinition()->GetBaryonNumber() + theResidual.GetA(); + G4int ProductsZ = theEmitted->GetDefinition()->GetPDGCharge() + theResidual.GetZ(); + + if (ProductsA != theInitialState.GetA()) { + G4cout << "!!!!!!!!!! Baryonic Number Conservation Violation !!!!!!!!!!" << G4endl; + G4cout << "G4PreCompoundEmission.cc: Barionic Number Conservation" + << G4endl; + G4cout << "Initial A = " << theInitialState.GetA() + << " Fragments A = " << ProductsA << " Diference --> " + << theInitialState.GetA() - ProductsA << G4endl; + } + if (ProductsZ != theInitialState.GetZ()) { + G4cout << "!!!!!!!!!! Charge Conservation Violation !!!!!!!!!!" << G4endl; + G4cout << "G4PreCompoundEmission.cc: Charge Conservation test" + << G4endl; + G4cout << "Initial Z = " << theInitialState.GetZ() + << " Fragments Z = " << ProductsZ << " Diference --> " + << theInitialState.GetZ() - ProductsZ << G4endl; + } + if (abs(ProductsEnergy-theInitialState.GetMomentum().e()) > 10.0*eV) { + G4cout << "!!!!!!!!!! Energy Conservation Violation !!!!!!!!!!" << G4endl; + G4cout << "G4PreCompoundEmission.cc: Energy Conservation test" + << G4endl; + G4cout << "Initial E = " << theInitialState.GetMomentum().e()/MeV << " MeV" + << " Fragments E = " << ProductsEnergy/MeV << " MeV Diference --> " + << (theInitialState.GetMomentum().e() - ProductsEnergy)/MeV << " MeV" << G4endl; + } + if (abs(ProductsMomentum.x()-theInitialState.GetMomentum().x()) > 10.0*eV || + abs(ProductsMomentum.y()-theInitialState.GetMomentum().y()) > 10.0*eV || + abs(ProductsMomentum.z()-theInitialState.GetMomentum().z()) > 10.0*eV) { + G4cout << "!!!!!!!!!! Momentum Conservation Violation !!!!!!!!!!" << G4endl; + G4cout << "G4PreCompoundEmission.cc: Momentum Conservation test" + << G4endl; + G4cout << "Initial P = " << theInitialState.GetMomentum().vect() << " MeV" + << " Fragments P = " << ProductsMomentum << " MeV Diference --> " + << theInitialState.GetMomentum().vect() - ProductsMomentum << " MeV" << G4endl; + } + return; +} + +#endif 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 0a8dd56fc2..a944bb237d 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundFragmentVector.cc,v 1.5 2001/08/01 17:08:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundFragmentVector.cc,v 1.9 2002/06/17 15:29:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara @@ -39,115 +39,114 @@ G4PreCompoundFragmentVector::G4PreCompoundFragmentVector() : TotalEmissionProbability(0.0) { - // theChannels.reserve(6) - // neutron - // theChannels.insert(new G4PreCompoundNeutron()); - theChannels.push_back(new G4PreCompoundNeutron()); - // proton - // theChannels.insert(new G4PreCompoundProton()); - theChannels.push_back(new G4PreCompoundProton()); - // deuterium - // theChannels.insert(new G4PreCompoundDeuteron()); - theChannels.push_back(new G4PreCompoundDeuteron()); - // triton - // theChannels.insert(new G4PreCompoundTriton()); - theChannels.push_back(new G4PreCompoundTriton()); - // helium3 - // theChannels.insert(new G4PreCompoundHe3()); - theChannels.push_back(new G4PreCompoundHe3()); - // alpha - // theChannels.insert(new G4PreCompoundAlpha()); - theChannels.push_back(new G4PreCompoundAlpha()); + // neutron + theChannels.push_back(new G4PreCompoundNeutron()); + // proton + theChannels.push_back(new G4PreCompoundProton()); + // deuterium + theChannels.push_back(new G4PreCompoundDeuteron()); + // triton + theChannels.push_back(new G4PreCompoundTriton()); + // helium3 + theChannels.push_back(new G4PreCompoundHe3()); + // alpha + theChannels.push_back(new G4PreCompoundAlpha()); } G4PreCompoundFragmentVector::~G4PreCompoundFragmentVector() { - // theChannels.clearAndDestroy(); - for (G4std::vector::iterator i=theChannels.begin(); - i != theChannels.end(); i++) delete *i; + G4std::for_each(theChannels.begin(), theChannels.end(), + DeleteFragment()); theChannels.clear(); } -const G4PreCompoundFragmentVector & G4PreCompoundFragmentVector::operator=(const G4PreCompoundFragmentVector &right) +const G4PreCompoundFragmentVector & +G4PreCompoundFragmentVector:: +operator=(const G4PreCompoundFragmentVector &right) { - G4Exception("G4PreCompoundFragmentVector::operator= meant to not be accessable"); - return *this; + G4Exception("G4PreCompoundFragmentVector::operator= meant to not be accessable"); + return *this; } -G4bool G4PreCompoundFragmentVector::operator==(const G4PreCompoundFragmentVector &right) const +G4bool G4PreCompoundFragmentVector:: +operator==(const G4PreCompoundFragmentVector &right) const { - return false; + return false; } -G4bool G4PreCompoundFragmentVector::operator!=(const G4PreCompoundFragmentVector &right) const +G4bool G4PreCompoundFragmentVector:: +operator!=(const G4PreCompoundFragmentVector &right) const { - return true; + return true; } -G4double G4PreCompoundFragmentVector::CalculateProbabilities(const G4Fragment & aFragment) +G4double G4PreCompoundFragmentVector:: +CalculateProbabilities(const G4Fragment & aFragment) { TotalEmissionProbability = 0.0; - G4std::vector::iterator aChannel; - for (aChannel=theChannels.begin(); aChannel != theChannels.end(); aChannel++) { - (*aChannel)->CalcExcitonLevelDensityRatios(aFragment.GetNumberOfExcitons(), - aFragment.GetNumberOfParticles()); - (*aChannel)->CalcCondensationProbability(aFragment.GetA()); - // Calculate emission probailities - if (aFragment.GetNumberOfParticles() <= (*aChannel)->GetA()-0.01) { - // if number of particles less than a fragment atomic number - // set probability to emit a fragment 0 - (*aChannel)->SetEmissionProbability(0.0); - } else if (aFragment.GetNumberOfExcitons() <= (*aChannel)->GetA()+0.01 && - aFragment.GetNumberOfExcitons() != 1) { - (*aChannel)->SetEmissionProbability(0.0); - } else if (aFragment.GetNumberOfCharged() <= (*aChannel)->GetZ()-0.01) { - // if number of charged particles (protons) is less than charge of fragment - // set probability to emit a fragment 0 - (*aChannel)->SetEmissionProbability(0.0); - } else if ((*aChannel)->GetMaximalKineticEnergy() <= 0.0) { - // if the energy threshold for emitted fragment is less or equal 0 - // set probability to emit a fragment 0 - (*aChannel)->SetEmissionProbability(0.0); - } else { + pcfvector::iterator aChannel; + for (aChannel=theChannels.begin(); aChannel != theChannels.end(); + aChannel++) + { + // Calculate emission probailities // Compute total (integrated over kinetic energy) emission // probability of a fragment and // Summing channel emission probabilities TotalEmissionProbability += (*aChannel)->CalcEmissionProbability(aFragment); } - } return TotalEmissionProbability; } -G4VPreCompoundFragment * G4PreCompoundFragmentVector::ChooseFragment(void) +G4VPreCompoundFragment * G4PreCompoundFragmentVector:: +ChooseFragment(void) { const G4int NumOfFrags = theChannels.size(); - G4double * running = new G4double[NumOfFrags]; - running[0] = (*theChannels.begin())->GetEmissionProbability(); - // G4std::vector::iterator aChannel; - G4int i; - for (i = 1; i < NumOfFrags; i++) { - running[i]=running[i-1]+theChannels[i]->GetEmissionProbability(); + G4std::vector running; + running.reserve(NumOfFrags); + + pcfvector::iterator i; + G4double accumulation = 0.0; + for (i = theChannels.begin(); i != theChannels.end(); ++i) { + accumulation += (*i)->GetEmissionProbability(); + running.push_back(accumulation); } // Choose an emission channel G4double aChannel = G4UniformRand()*TotalEmissionProbability; G4int ChosenChannel = -1; - for (i = 0; i < NumOfFrags; i++) { - if (aChannel <= running[i]) { - ChosenChannel = i; - break; + G4std::vector::iterator ich; + for (ich = running.begin(); ich != running.end(); ++ich) + { + if (aChannel <= *ich) + { +#ifdef G4NO_ISO_VECDIST + G4std::vector::difference_type n = 0; + G4std::distance(running.begin(),ich,n); + ChosenChannel = n; +#else + ChosenChannel = G4std::distance(running.begin(),ich); +#endif + break; + } } - } - delete [] running; + running.clear(); if (ChosenChannel < 0) - G4Exception("G4PreCompoundFragmentVector::ChooseFragment: I can't determine a channel"); - + { + G4cerr + << "G4PreCompoundFragmentVector::ChooseFragment: I can't determine a channel\n" + << "Probabilities: "; + for (i = theChannels.begin(); i != theChannels.end(); ++i) + { + G4cout << (*i)->GetEmissionProbability() << " "; + } + G4cout << '\n'; + return 0; + } + return theChannels[ChosenChannel]; } - - 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 c5895f3a24..b70169f023 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc @@ -21,13 +21,19 @@ // ******************************************************************** // // -// $Id: G4PreCompoundModel.cc,v 1.16 2001/10/04 20:00:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundModel.cc,v 1.21 2002/06/18 16:17:20 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara #include "G4PreCompoundModel.hh" +#include "G4EvaporationLevelDensityParameter.hh" + +#ifdef pctest +G4Fragment G4PreCompoundModel::theInitialFragmentForTest; +G4std::vector G4PreCompoundModel::theCreatorModels; +#endif const G4PreCompoundModel & G4PreCompoundModel::operator=(const G4PreCompoundModel &right) { @@ -65,15 +71,17 @@ G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary aZ += G4int(thePrimary.GetDynamicParticle()->GetDefinition()->GetPDGCharge()); anInitialState.SetZ(aZ); + // Assume the projectile is a nucleon // Number of Excited Particles - anInitialState.SetNumberOfParticles(thePrimary.GetDynamicParticle()->GetDefinition()->GetBaryonNumber()); + anInitialState.SetNumberOfParticles(1+thePrimary.GetDynamicParticle()->GetDefinition()->GetBaryonNumber()); // Number of Charged Excited Particles - anInitialState.SetNumberOfCharged(thePrimary.GetDynamicParticle()->GetDefinition()->GetPDGCharge()); + anInitialState.SetNumberOfCharged(thePrimary.GetDynamicParticle()->GetDefinition()->GetPDGCharge() + + G4int(0.5+G4UniformRand())); // Number of Holes - anInitialState.SetNumberOfHoles(0); + anInitialState.SetNumberOfHoles(1); // pre-compound nucleus energy. G4double anEnergy = 0; @@ -88,22 +96,35 @@ G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary G4LorentzVector momentum(p, anEnergy); anInitialState.SetMomentum(momentum); - +#ifdef pctest + G4PreCompoundModel::theInitialFragmentForTest = anInitialState; +#endif // call excitation handler const G4Fragment aFragment(anInitialState); G4ReactionProductVector * result = DeExcite(aFragment); - + +#ifdef pctest + for (G4std::vector::iterator icm = theCreatorModels.begin(); + icm != theCreatorModels.end(); ++icm ) + { + delete (*icm); + } + theCreatorModels.clear(); +#endif // fill particle change theResult.SetStatusChange(fStopAndKill); theResult.SetNumberOfSecondaries(result->size()); - for(unsigned int i=0; isize(); i++) + for(G4ReactionProductVector::iterator i= result->begin(); i != result->end(); ++i) { G4DynamicParticle * aNew = - new G4DynamicParticle(result->operator[](i)->GetDefinition(), - result->operator[](i)->GetTotalEnergy(), - result->operator[](i)->GetMomentum()); - delete result->operator[](i); + new G4DynamicParticle((*i)->GetDefinition(), + (*i)->GetTotalEnergy(), + (*i)->GetMomentum()); +#ifdef pctest + theCreatorModels.push_back(new G4String((*i)->GetCreatorModel())); +#endif + delete (*i); theResult.AddSecondary(aNew); } delete result; @@ -142,63 +163,80 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(const G4Fragment & theInit aEmission.Initialize(aFragment); // Equilibrium exciton number - G4double EquilibriumExcitonNumber = - sqrt(1.19*G4PreCompoundParameters::GetAddress()->GetLevelDensity()*aFragment.GetA()* - aFragment.GetExcitationEnergy()+0.5); - + // G4EvaporationLevelDensityParameter theLDP; + // G4double EquilibriumExcitonNumber = + // sqrt(1.19*theLDP.LevelDensityParameter(aFragment.GetA(),aFragment.GetZ(), + // aFragment.GetExcitationEnergy())* + // aFragment.GetA()* + // aFragment.GetExcitationEnergy()+0.5); + G4double g = 0.595*aFragment.GetA()* + G4PreCompoundParameters::GetAddress()->GetLevelDensity(); + + G4int EquilibriumExcitonNumber = G4int(sqrt(2.0*g*aFragment.GetExcitationEnergy()) + + 0.5); + // Loop for transitions, it is performed while there are preequilibrium transitions. G4bool ThereIsTransition = false; - do { - if (aFragment.GetNumberOfExcitons() < EquilibriumExcitonNumber) { -// if (aFragment.GetNumberOfParticles() < 1) { -// aFragment.SetNumberOfHoles(aFragment.GetNumberOfHoles()+1); -// aFragment.SetNumberOfParticles(aFragment.GetNumberOfParticles()+1); -// } + do + { + if (aFragment.GetNumberOfExcitons() < EquilibriumExcitonNumber && + aFragment.GetA() > 4) + { + // if (aFragment.GetNumberOfParticles() < 1) { + // aFragment.SetNumberOfHoles(aFragment.GetNumberOfHoles()+1); + // aFragment.SetNumberOfParticles(aFragment.GetNumberOfParticles()+1); + // } - G4double TotalEmissionProbability = aEmission.GetTotalProbability(aFragment); + G4double TotalEmissionProbability = aEmission.GetTotalProbability(aFragment); - // Check if number of excitons is greater than 0 - // else perform equilibrium emission - if (aFragment.GetNumberOfExcitons() <= 0) { - // Perform Equilibrium Emission -#ifdef debug - CheckConservation(theInitialState,aFragment,Result); -#endif - PerformEquilibriumEmission(aFragment,Result); - return Result; - } + // Check if number of excitons is greater than 0 + // else perform equilibrium emission + if (aFragment.GetNumberOfExcitons() <= 0) + { + // Perform Equilibrium Emission +#ifdef debug // ------------- debug ----------------------------------------- + CheckConservation(theInitialState,aFragment,Result); +#endif // ------------------- debug ----------------------------------------- + PerformEquilibriumEmission(aFragment,Result); + return Result; + } + + G4PreCompoundTransitions aTransition(aFragment); - G4PreCompoundTransitions aTransition(aFragment); + // Sum of transition probabilities + G4double TotalTransitionProbability = aTransition.GetTotalProbability(); - // Sum of transition probabilities - G4double TotalTransitionProbability = aTransition.GetTotalProbability(); + // Sum of all probabilities + G4double TotalProbability = TotalEmissionProbability + TotalTransitionProbability; - // Sum of all probabilities - G4double TotalProbability = TotalEmissionProbability + TotalTransitionProbability; - - // Select subprocess - if (G4UniformRand() > TotalEmissionProbability/TotalProbability) { - // It will be transition to state with a new number of excitons - ThereIsTransition = true; - - // Perform the transition - aFragment = aTransition.PerformTransition(aFragment); - } else { - // It will be fragment emission - ThereIsTransition = false; + // Select subprocess + if (G4UniformRand() > TotalEmissionProbability/TotalProbability) + { + // It will be transition to state with a new number of excitons + ThereIsTransition = true; + + // Perform the transition + aFragment = aTransition.PerformTransition(aFragment); + } + else + { + // It will be fragment emission + ThereIsTransition = false; - // Perform the emission and Add emitted fragment to Result - Result->push_back(aEmission.PerformEmission(aFragment)); - } - } else { - // Perform Equilibrium Emission + // Perform the emission and Add emitted fragment to Result + Result->push_back(aEmission.PerformEmission(aFragment)); + } + } + else + { + // Perform Equilibrium Emission #ifdef debug - CheckConservation(theInitialState,aFragment,Result); + CheckConservation(theInitialState,aFragment,Result); #endif - PerformEquilibriumEmission(aFragment,Result); - return Result; - } - } while (ThereIsTransition); // end of do loop + PerformEquilibriumEmission(aFragment,Result); + return Result; + } + } while (ThereIsTransition); // end of do loop } // end of for (;;) loop } @@ -211,11 +249,8 @@ void G4PreCompoundModel::PerformEquilibriumEmission(const G4Fragment & aFragment G4ReactionProductVector * theEquilibriumResult; theEquilibriumResult = GetExcitationHandler()->BreakItUp(aFragment); - while (theEquilibriumResult->size() > 0) - { - Result->push_back(*theEquilibriumResult->begin()); - theEquilibriumResult->erase(theEquilibriumResult->begin()); - } + Result->insert(Result->end(),theEquilibriumResult->begin(), theEquilibriumResult->end()); + delete theEquilibriumResult; return; } @@ -230,47 +265,49 @@ void G4PreCompoundModel::CheckConservation(const G4Fragment & theInitialState, G4ThreeVector ProductsMomentum = aFragment.GetMomentum(); G4int ProductsA = G4int(aFragment.GetA()); G4int ProductsZ = G4int(aFragment.GetZ()); - for (G4int h = 0; h < Result->entries(); h++) { - ProductsEnergy += Result->at(h)->GetTotalEnergy(); - ProductsMomentum += Result->at(h)->GetMomentum(); - ProductsA += G4int(Result->at(h)->GetDefinition()->GetBaryonNumber()); - ProductsZ += G4int(Result->at(h)->GetDefinition()->GetPDGCharge()); - } + for (G4ReactionProductVector::iterator h = Result->begin(); + h != Result->end(); ++h) + { + ProductsEnergy += (*h)->GetTotalEnergy(); + ProductsMomentum += (*h)->GetMomentum(); + ProductsA += G4int((*h)->GetDefinition()->GetBaryonNumber()); + ProductsZ += G4int((*h)->GetDefinition()->GetPDGCharge()); + } - if (ProductsA != theInitialState.GetA()) { - G4cout << "!!!!!!!!!! Baryonic Number Conservation Violation !!!!!!!!!!" << G4endl; - G4cout << "G4PreCompoundModel.cc: Barionic Number Conservation test for just preequilibrium fragments" - << G4endl; - G4cout << "Initial A = " << theInitialState.GetA() - << " Fragments A = " << ProductsA << " Diference --> " - << theInitialState.GetA() - ProductsA << G4endl; - } - if (ProductsZ != theInitialState.GetZ()) { - G4cout << "!!!!!!!!!! Charge Conservation Violation !!!!!!!!!!" << G4endl; - G4cout << "G4PreCompoundModel.cc: Charge Conservation test for just preequilibrium fragments" - << G4endl; - G4cout << "Initial Z = " << theInitialState.GetZ() - << " Fragments Z = " << ProductsZ << " Diference --> " - << theInitialState.GetZ() - ProductsZ << G4endl; - } - if (abs(ProductsEnergy-theInitialState.GetMomentum().e()) > 1.0*keV) { - G4cout << "!!!!!!!!!! Energy Conservation Violation !!!!!!!!!!" << G4endl; - G4cout << "G4PreCompoundModel.cc: Energy Conservation test for just preequilibrium fragments" - << G4endl; - G4cout << "Initial E = " << theInitialState.GetMomentum().e()/MeV << " MeV" - << " Fragments E = " << ProductsEnergy/MeV << " MeV Diference --> " - << (theInitialState.GetMomentum().e() - ProductsEnergy)/MeV << " MeV" << G4endl; - } + if (ProductsA != theInitialState.GetA()) + { + G4cout << "!!!!!!!!!! Baryonic Number Conservation Violation !!!!!!!!!!\n" + << "G4PreCompoundModel.cc: Barionic Number Conservation test for just preequilibrium fragments\n" + << "Initial A = " << theInitialState.GetA() + << " Fragments A = " << ProductsA << " Diference --> " + << theInitialState.GetA() - ProductsA << '\n'; + } + if (ProductsZ != theInitialState.GetZ()) + { + G4cout << "!!!!!!!!!! Charge Conservation Violation !!!!!!!!!!\n" + << "G4PreCompoundModel.cc: Charge Conservation test for just preequilibrium fragments\n" + << "Initial Z = " << theInitialState.GetZ() + << " Fragments Z = " << ProductsZ << " Diference --> " + << theInitialState.GetZ() - ProductsZ << '\n'; + } + if (abs(ProductsEnergy-theInitialState.GetMomentum().e()) > 1.0*keV) + { + G4cout << "!!!!!!!!!! Energy Conservation Violation !!!!!!!!!!\n" + << "G4PreCompoundModel.cc: Energy Conservation test for just preequilibrium fragments\n" + << "Initial E = " << theInitialState.GetMomentum().e()/MeV << " MeV" + << " Fragments E = " << ProductsEnergy/MeV << " MeV Diference --> " + << (theInitialState.GetMomentum().e() - ProductsEnergy)/MeV << " MeV\n"; + } if (abs(ProductsMomentum.x()-theInitialState.GetMomentum().x()) > 1.0*keV || abs(ProductsMomentum.y()-theInitialState.GetMomentum().y()) > 1.0*keV || - abs(ProductsMomentum.z()-theInitialState.GetMomentum().z()) > 1.0*keV) { - G4cout << "!!!!!!!!!! Momentum Conservation Violation !!!!!!!!!!" << G4endl; - G4cout << "G4PreCompoundModel.cc: Momentum Conservation test for just preequilibrium fragments" - << G4endl; - G4cout << "Initial P = " << theInitialState.GetMomentum().vect() << " MeV" - << " Fragments P = " << ProductsMomentum << " MeV Diference --> " - << theInitialState.GetMomentum().vect() - ProductsMomentum << " MeV" << G4endl; - } + abs(ProductsMomentum.z()-theInitialState.GetMomentum().z()) > 1.0*keV) + { + G4cout << "!!!!!!!!!! Momentum Conservation Violation !!!!!!!!!!\n" + << "G4PreCompoundModel.cc: Momentum Conservation test for just preequilibrium fragments\n" + << "Initial P = " << theInitialState.GetMomentum().vect() << " MeV" + << " Fragments P = " << ProductsMomentum << " MeV Diference --> " + << theInitialState.GetMomentum().vect() - ProductsMomentum << " MeV\n"; + } return; } diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNeutron.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNeutron.cc deleted file mode 100644 index b425c2c8ea..0000000000 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNeutron.cc +++ /dev/null @@ -1,79 +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 * -// * authors in the GEANT4 collaboration. * -// * By copying, 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.cc,v 1.9 2001/08/01 17:08:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ -// -// by V. Lara - -#include "G4PreCompoundNeutron.hh" - - -G4double G4PreCompoundNeutron::ProbabilityDistributionFunction(const G4double & eKin, - const G4Fragment & aFragment) -{ - if ( (aFragment.GetNumberOfParticles()-aFragment.GetNumberOfCharged()) < 1) - return 0.0; - - const G4double r0 = G4PreCompoundParameters::GetAddress()->Getr0(); - // g = 0.595*a*A - const G4double g = 0.595*G4PreCompoundParameters::GetAddress()->GetLevelDensity()*GetRestA(); - G4double Alpha = 0.76+2.2/pow(GetRestA(),1.0/3.0); - G4double Beta = (2.12/pow(GetRestA(),2.0/3.0)-0.05)*MeV/Alpha; - - G4double Probability = 2.0/(pi*hbarc*hbarc*hbarc) * GetReducedMass() * Alpha * - r0 * r0 * pow(GetRestA(),2.0/3.0) * - GetExcitonLevelDensityRatio()/(g*aFragment.GetExcitationEnergy()) * - pow((1.0 - (eKin+GetBindingEnergy())/aFragment.GetExcitationEnergy()), - (aFragment.GetNumberOfExcitons()-2.0))*(eKin + Beta); - - return Probability; -} - - -G4double G4PreCompoundNeutron::GetKineticEnergy(const G4Fragment & aFragment) -{ - G4double Beta = (2.12/pow(GetRestA(),2.0/3.0)-0.05)*MeV/(0.76+2.2/pow(GetRestA(),1.0/3.0)); - - G4double T = aFragment.GetNumberOfParticles() + aFragment.GetNumberOfHoles() - GetA() - 1.0; - G4double R2 = GetMaximalKineticEnergy(); - G4double R1 = R2 + GetCoulombBarrier(); - - G4double E = 0.0; - - if (T <= -0.1) { - E = R1; - } else if (T <= 0.1) { - E = -Beta + sqrt(Beta*Beta + (G4UniformRand()*(R2*R2 + 2.0*Beta*R2))); - } else { - G4double E1 = (R1 - Beta*T)/(T + 1.0); - G4double T3 = 0.0; - do { - E = GetCoulombBarrier()+G4UniformRand()*R2; - G4double T1 = (E + Beta)/(E1 + Beta); - G4double T2 = (R1 - E)/(R1 - E1); - T3 = T1*pow(T2,T); - } while (G4UniformRand() > T3); - } - return E; -} 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 e77e439d6e..9cd01bffe6 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc @@ -21,16 +21,14 @@ // ******************************************************************** // // -// $Id: G4PreCompoundParameters.cc,v 1.6 2001/08/01 17:08:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundParameters.cc,v 1.7 2002/06/06 17:19:24 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara #include "G4PreCompoundParameters.hh" -const G4double theLevelDensity = 0.125/MeV; - G4PreCompoundParameters G4PreCompoundParameters::thePreCompoundParameters; G4PreCompoundParameters * G4PreCompoundParameters::GetAddress() diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundProton.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundProton.cc deleted file mode 100644 index 4c951d8f5e..0000000000 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundProton.cc +++ /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 * -// * authors in the GEANT4 collaboration. * -// * By copying, 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.cc,v 1.8 2001/08/01 17:08:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ -// -// by V. Lara - -#include "G4PreCompoundProton.hh" - -G4double G4PreCompoundProton::ProbabilityDistributionFunction(const G4double & eKin, - const G4Fragment & aFragment) -{ - if (aFragment.GetNumberOfCharged() < 1) return 0.0; - - const G4double r0 = G4PreCompoundParameters::GetAddress()->Getr0(); - // g = 0.595*a*A; - const G4double g = 0.595*G4PreCompoundParameters::GetAddress()->GetLevelDensity()*GetRestA(); - // G4double R0J=1.2; - - G4double aZ = G4double(GetRestZ()); - G4double C = 0.0; - if (aZ >= 70) { - C = 0.10; - } else { - C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; - } - G4double alpha = 1.0 + C; - G4double beta = -GetCoulombBarrier(); - G4double XSinv = alpha * (1.0 + beta/eKin) * r0 * r0 * pow(GetRestA(),2.0/3.0); - - G4double Probability = 2.0/(pi*hbarc*hbarc*hbarc) * GetReducedMass() * - XSinv * // CalcCorrection() * - GetExcitonLevelDensityRatio()/(g*aFragment.GetExcitationEnergy()) * - pow(1.0 - (eKin+GetBindingEnergy())/aFragment.GetExcitationEnergy(), - (aFragment.GetNumberOfExcitons()-2.0))* - (eKin - GetCoulombBarrier()); - - return Probability; -} - - - - -G4double G4PreCompoundProton::GetKineticEnergy(const G4Fragment & aFragment) -{ - G4double DJ = - GetCoulombBarrier(); - - G4double T = aFragment.GetNumberOfParticles() + aFragment.GetNumberOfHoles() - GetA() - 1.0; - G4double R2 = GetMaximalKineticEnergy(); - G4double R1 = R2 + GetCoulombBarrier(); - - G4double E = 0.0; - - if (T <= -0.1) { - E = R1; - } else if (T <= 0.1) { - do { - E = sqrt(G4UniformRand())*R2; - } while (E < GetCoulombBarrier()); - } else { - G4double E1 = (R1 - DJ*T)/(T + 1.0); - G4double T3 = 0.0; - do { - E = GetCoulombBarrier() + G4UniformRand()*R2; - G4double T1 = (E + DJ)/(E1 + DJ); - G4double T2 = (R1 - E)/(R1 - E1); - T3 = T1*pow(T2,T); - } while (G4UniformRand() > T3); - } - return E; -} - - - - - - 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 1e36273b48..889b47cf82 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundTransitions.cc,v 1.9 2001/08/01 17:08:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PreCompoundTransitions.cc,v 1.10 2001/11/08 09:50:22 vlara Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara @@ -90,7 +90,7 @@ G4PreCompoundTransitions(const G4Fragment & aFragment) if (TransitionProb1 < 0.0) TransitionProb1 = 0.0; // g = 0.595aA; GE = g*E where E is Excitation Energy - G4double a = theLDP.LevelDensityParameter(A,Z,U-G4PairingCorrection::GetPairingCorrection(A,Z)); + G4double a = theLDP.LevelDensityParameter(A,Z,U-G4PairingCorrection::GetInstance()->GetPairingCorrection(A,Z)); // G4double a = G4PreCompoundParameters::GetAddress()->GetLevelDensity(); G4double GE = 0.595*a*A*U; 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 d99eed6491..b09a30cd28 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc @@ -21,15 +21,16 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundFragment.cc,v 1.11.2.1 2001/12/04 15:32:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VPreCompoundFragment.cc,v 1.15 2002/06/06 17:20:18 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara #include "G4VPreCompoundFragment.hh" -G4VPreCompoundFragment::G4VPreCompoundFragment(const G4VPreCompoundFragment & right) +G4VPreCompoundFragment:: +G4VPreCompoundFragment(const G4VPreCompoundFragment & right) { theA = right.theA; theZ = right.theZ; @@ -38,31 +39,22 @@ G4VPreCompoundFragment::G4VPreCompoundFragment(const G4VPreCompoundFragment & ri theCoulombBarrier = right.theCoulombBarrier; theCoulombBarrierPtr = right.theCoulombBarrierPtr; theMaximalKineticEnergy = right.theMaximalKineticEnergy; - theExcitonLevelDensityRatio = right.theExcitonLevelDensityRatio; theEmissionProbability = right.theEmissionProbability; - theCondensationProbability = right.theCondensationProbability; theMomentum = right.theMomentum; theFragmentName = right.theFragmentName; } - -G4VPreCompoundFragment::G4VPreCompoundFragment(const G4double anA, - const G4double aZ, G4VCoulombBarrier* aCoulombBarrier): +G4VPreCompoundFragment:: +G4VPreCompoundFragment(const G4double anA, + const G4double aZ, + G4VCoulombBarrier* aCoulombBarrier, + const G4String & aName): theA(anA),theZ(aZ), theRestNucleusA(0.0),theRestNucleusZ(0.0),theCoulombBarrier(0.0), - theCoulombBarrierPtr(aCoulombBarrier),theBindingEnergy(0.0), - theMaximalKineticEnergy(-1.0),theExcitonLevelDensityRatio(0.0),theEmissionProbability(0.0), - theCondensationProbability(0.0),theMomentum(0.0,0.0,0.0,0.0),theFragmentName("No Name") -{} - -G4VPreCompoundFragment::G4VPreCompoundFragment(const G4double anA, - const G4double aZ, G4VCoulombBarrier* aCoulombBarrier, - const G4String & aName): - theA(anA),theZ(aZ), - theRestNucleusA(0.0),theRestNucleusZ(0.0),theCoulombBarrier(0.0), - theCoulombBarrierPtr(aCoulombBarrier), theBindingEnergy(0.0), - theMaximalKineticEnergy(-1.0),theExcitonLevelDensityRatio(0.0),theEmissionProbability(0.0), - theCondensationProbability(0.0),theMomentum(0.0,0.0,0.0,0.0),theFragmentName(aName) + theCoulombBarrierPtr(aCoulombBarrier), + theBindingEnergy(0.0), theMaximalKineticEnergy(-1.0), + theEmissionProbability(0.0), theMomentum(0.0,0.0,0.0,0.0), + theFragmentName(aName) {} @@ -72,8 +64,8 @@ G4VPreCompoundFragment::~G4VPreCompoundFragment() } -const G4VPreCompoundFragment & G4VPreCompoundFragment::operator= -(const G4VPreCompoundFragment & right) +const G4VPreCompoundFragment & G4VPreCompoundFragment:: +operator= (const G4VPreCompoundFragment & right) { if (this != &right) { theA = right.theA; @@ -83,10 +75,9 @@ const G4VPreCompoundFragment & G4VPreCompoundFragment::operator= theCoulombBarrier = right.theCoulombBarrier; theCoulombBarrierPtr = right.theCoulombBarrierPtr; theMaximalKineticEnergy = right.theMaximalKineticEnergy; - theExcitonLevelDensityRatio = right.theExcitonLevelDensityRatio; theEmissionProbability = right.theEmissionProbability; - theCondensationProbability = right.theCondensationProbability; theMomentum = right.theMomentum; + theFragmentName = right.theFragmentName; } return *this; } @@ -102,14 +93,16 @@ G4int G4VPreCompoundFragment::operator!=(const G4VPreCompoundFragment & right) c } -G4std::ostream& operator << (G4std::ostream &out, const G4VPreCompoundFragment &theFragment) +G4std::ostream& +operator << (G4std::ostream &out, const G4VPreCompoundFragment &theFragment) { out << &theFragment; return out; } -G4std::ostream& operator << (G4std::ostream &out, const G4VPreCompoundFragment *theFragment) +G4std::ostream& +operator << (G4std::ostream &out, const G4VPreCompoundFragment *theFragment) { #ifdef G4USE_STD_NAMESPACE G4std::ios::fmtflags old_floatfield = out.flags(); @@ -117,29 +110,30 @@ G4std::ostream& operator << (G4std::ostream &out, const G4VPreCompoundFragment * #else long old_floatfield = out.setf(0,G4std::ios::floatfield); #endif - - out - << "PreCompound Model Emitted Fragment: A = " << G4std::setprecision(3) << theFragment->theA - << ", Z = " << G4std::setprecision(3) << theFragment->theZ; - out.setf(G4std::ios::scientific,G4std::ios::floatfield); - // out - // << ", U = " << theFragment->theExcitationEnergy/MeV - // << " MeV" << endl - // << " P = (" - // << theFragment->theMomentum.x()/MeV << "," - // << theFragment->theMomentum.y()/MeV << "," - // << theFragment->theMomentum.z()/MeV - // << ") MeV E = " - // << theFragment->theMomentum.t()/MeV << " MeV"; - - out.setf(old_floatfield,G4std::ios::floatfield); - - return out; + out + << "PreCompound Model Emitted Fragment: A = " + << G4std::setprecision(3) << theFragment->theA + << ", Z = " << G4std::setprecision(3) << theFragment->theZ; + out.setf(G4std::ios::scientific,G4std::ios::floatfield); + // out + // << ", U = " << theFragment->theExcitationEnergy/MeV + // << " MeV" << endl + // << " P = (" + // << theFragment->theMomentum.x()/MeV << "," + // << theFragment->theMomentum.y()/MeV << "," + // << theFragment->theMomentum.z()/MeV + // << ") MeV E = " + // << theFragment->theMomentum.t()/MeV << " MeV"; + + out.setf(old_floatfield,G4std::ios::floatfield); + + return out; } -void G4VPreCompoundFragment::Init(const G4Fragment & aFragment) +void G4VPreCompoundFragment:: +Initialize(const G4Fragment & aFragment) { theRestNucleusA = aFragment.GetA() - theA; @@ -147,13 +141,14 @@ void G4VPreCompoundFragment::Init(const G4Fragment & aFragment) if ((theRestNucleusA < theRestNucleusZ) || (theRestNucleusA < theA) || - (theRestNucleusZ < theZ)) { - // In order to be sure that emission probability will be 0. - theMaximalKineticEnergy = 0.0; - return; - } - - + (theRestNucleusZ < theZ)) + { + // In order to be sure that emission probability will be 0. + theMaximalKineticEnergy = 0.0; + return; + } + + // Calculate Coulomb barrier theCoulombBarrier = theCoulombBarrierPtr-> GetCoulombBarrier(theRestNucleusA,theRestNucleusZ, @@ -165,34 +160,37 @@ void G4VPreCompoundFragment::Init(const G4Fragment & aFragment) theBindingEnergy = G4NucleiProperties::GetMassExcess(theA,theZ) + G4NucleiProperties::GetMassExcess(theRestNucleusA,theRestNucleusZ) - G4NucleiProperties::GetMassExcess(aFragment.GetA(),aFragment.GetZ()); - - // Compute Maximal Kinetic Energy which can be carried by fragments after separation - // theMaximalKineticEnergy = aFragment.GetExcitationEnergy() - - // (theBindingEnergy + theCoulombBarrier); + // Compute Maximal Kinetic Energy which can be carried by fragments after separation G4double m = aFragment.GetMomentum().m(); G4double rm = GetRestNuclearMass(); G4double em = GetNuclearMass(); theMaximalKineticEnergy = ((m - rm)*(m + rm) + em*em)/(2.0*m) - em - theCoulombBarrier; - + return; } -G4double G4VPreCompoundFragment::CalcEmissionProbability(const G4Fragment & aFragment) +G4double G4VPreCompoundFragment:: +CalcEmissionProbability(const G4Fragment & aFragment) { - if (GetMaximalKineticEnergy() <= 0.0) return 0.0; - + if (GetMaximalKineticEnergy() <= 0.0) + { + theEmissionProbability = 0.0; + return 0.0; + } // Coulomb barrier is the lower limit // of integration over kinetic energy G4double LowerLimit = theCoulombBarrier; // Excitation energy of nucleus after fragment emission is the upper limit // of integration over kinetic energy - G4double UpperLimit = aFragment.GetExcitationEnergy() - theBindingEnergy; - - theEmissionProbability = IntegrateEmissionProbability(LowerLimit,UpperLimit,aFragment); + G4double UpperLimit = this->GetMaximalKineticEnergy() + + this->GetCoulombBarrier(); + theEmissionProbability = + IntegrateEmissionProbability(LowerLimit,UpperLimit,aFragment); + return theEmissionProbability; } @@ -200,35 +198,70 @@ G4double G4VPreCompoundFragment:: IntegrateEmissionProbability(const G4double & Low, const G4double & Up, const G4Fragment & aFragment) { - static const G4double w[8] = {0.1012285363, - 0.2223810345, - 0.3137066459, - 0.3626837834, - 0.3626837834, - 0.3137066459, - 0.2223810345, - 0.1012285363 + static const G4int N = 10; + // 10-Points Gauss-Legendre abcisas and weights + static const G4double w[N] = { + 0.0666713443086881, + 0.149451349150581, + 0.219086362515982, + 0.269266719309996, + 0.295524224714753, + 0.295524224714753, + 0.269266719309996, + 0.219086362515982, + 0.149451349150581, + 0.0666713443086881 }; - - static const G4double FIKS[8] = { 0.9602898565, - 0.7966664774, - 0.5255324099, - 0.1834346425, - -0.1834346425, - -0.5255324099, - -0.7966664774, - -0.9602898565 + static const G4double x[N] = { + -0.973906528517172, + -0.865063366688985, + -0.679409568299024, + -0.433395394129247, + -0.148874338981631, + 0.148874338981631, + 0.433395394129247, + 0.679409568299024, + 0.865063366688985, + 0.973906528517172 }; - + G4double Total = 0.0; - for (G4int i = 0; i < 8; i++) { - G4double KineticE = ((Up-Low)*FIKS[i]+(Up+Low))/2.0; - Total += w[i]*ProbabilityDistributionFunction(KineticE, aFragment)*(Up-Low)/2.0; + for (G4int i = 0; i < N; i++) { + G4double KineticE = ((Up-Low)*x[i]+(Up+Low))/2.0; + Total += w[i]*ProbabilityDistributionFunction(KineticE, aFragment); } - return Total; + return Total*(Up-Low)/2.0; +} + + + + +G4double G4VPreCompoundFragment:: +GetKineticEnergy(const G4Fragment & aFragment) +{ + G4double V = this->GetCoulombBarrier(); + G4double Tmax = this->GetMaximalKineticEnergy(); + + G4double T = 0.0; + G4double NormalizedProbability = 1.0; + do { + T = V + G4UniformRand()*Tmax; + NormalizedProbability = this->ProbabilityDistributionFunction(T,aFragment)/ + this->GetEmissionProbability(); + } while (G4UniformRand() > NormalizedProbability); + + return T; } + + + + + + + + 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 755ae2d247..c46f0b2325 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc @@ -21,108 +21,66 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundIon.cc,v 1.10 2001/08/01 17:08:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VPreCompoundIon.cc,v 1.13 2002/06/06 17:20:45 larazb Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // by V. Lara -#include "G4VPreCompoundIon.hh" +#include "G4VPreCompoundIon.hh" +#include "G4PreCompoundParameters.hh" +//#include "G4EvaporationLevelDensityParameter.hh" -G4double G4VPreCompoundIon::ProbabilityDistributionFunction(const G4double & eKin, - const G4Fragment & aFragment) +G4double G4VPreCompoundIon:: +ProbabilityDistributionFunction(const G4double eKin, + const G4Fragment& aFragment) { - G4int pplus = aFragment.GetNumberOfCharged(); - G4int pneut = aFragment.GetNumberOfParticles()-pplus; - if (pneut < (GetA()-GetZ()) || pplus < GetZ()) return 0.0; + if ( !IsItPossible(aFragment) ) return 0.0; - const G4double r0 = G4PreCompoundParameters::GetAddress()->Getr0(); - G4double exEnergy = aFragment.GetExcitationEnergy(); - G4double B = GetBindingEnergy(); + const G4double r0 = G4PreCompoundParameters::GetAddress()->Getr0(); - G4double Z = aFragment.GetZ(); - G4double C = GetCCoef(Z); + G4double U = aFragment.GetExcitationEnergy(); + G4double P = aFragment.GetNumberOfParticles(); + G4double H = aFragment.GetNumberOfHoles(); + G4double N = P + H; - G4double probA = (3.0/4.0)*sqrt(2.0/GetReducedMass())*(1.0+C)*GetExcitonLevelDensityRatio()* - GetCondensationProbability()*(eKin - GetCoulombBarrier())/ - (r0*pow(GetRestA(),1.0/3.0)*exEnergy*sqrt(eKin+B)); + G4double A0 = (P*P+H*H+P-H)/4.0 - H/2.0; + G4double A1 = A0 + GetA()*(GetA()-2.0*P-1.0)/4.0; + G4double Aj = GetA()*(GetA()+1.0)/4.0; - G4double base = 1.0 + B/exEnergy; - G4double exponent = GetA() - 1.0; - if (exponent > 100.0 && base < 1.0) return 0.0; - G4double probB = pow(base,exponent); + G4double E0 = G4std::max(0.0,U - A0); + if (E0 == 0.0) return 0.0; + G4double E1 = G4std::max(0.0,U - eKin - GetBindingEnergy() - A1); + G4double Ej = G4std::max(0.0,U + GetBindingEnergy() - Aj); - base = 1.0 - ((eKin+B)/exEnergy); - exponent = aFragment.GetNumberOfExcitons() - 1.0 - GetA(); - if (exponent > 100.0 && base < 1.0) return 0.0; - G4double probC = pow(base,exponent); - - G4double prob = probA * probB * probC; - + // g = 0.595*a*A +// G4EvaporationLevelDensityParameter theLDP; + G4double g0 = 0.595*aFragment.GetA() * + G4PreCompoundParameters::GetAddress()->GetLevelDensity(); +// theLDP.LevelDensityParameter(aFragment.GetA(),aFragment.GetZ(),U); + G4double g1 = 0.595*GetRestA() * + G4PreCompoundParameters::GetAddress()->GetLevelDensity(); +// theLDP.LevelDensityParameter(GetRestA(),GetRestZ(),U); + G4double gj = 0.595*GetA() * + G4PreCompoundParameters::GetAddress()->GetLevelDensity(); +// theLDP.LevelDensityParameter(GetA(),GetZ(),U); - // G4double R0J = 1.1; - // G4double probA = GetCondensationProbability()*R0J*0.104/ - // (r0*pow(GetRestA(),1.0/3.0)*sqrt(GetA()*exEnergy)); - // G4double probB = GetExcitonLevelDensityRatio()*((eKin-GetCoulombBarrier())/exEnergy); - // G4double ratio = (eKin+GetBindingEnergy())/exEnergy; - // G4double exponent = GetRestA()-1.5; - // if ( exponent>100. && ratio<1. ) return 0.; - // G4double probC = pow( ratio, exponent ); - // G4double probD = pow( 1.0 - ratio, - // aFragment.GetNumberOfExcitons()-GetA()-1.0 ); - // G4double prob = probA*probB*probC*probD; - - - if (prob < 1.e-100) return 0.; - else return prob; + G4double pA = (3.0/4.0) * sqrt(2.0/(GetReducedMass()*(eKin+GetBindingEnergy())))* + GetAlpha()*(eKin+GetBeta())/(r0*pow(GetRestA(),1.0/3.0)) * + CoalescenceFactor(aFragment.GetA()) * FactorialFactor(N,P); + + G4double pB = pow((g1*E1)/(g0*E0),N-GetA()-1.0)*(g1/g0); + + G4double pC = pow((gj*Ej)/(g0*E0),GetA()-1.0)*(gj/g0)/E0; + + G4double Probability = pA * pB * pC; + + return Probability; } -G4double G4VPreCompoundIon::GetKineticEnergy(const G4Fragment & aFragment) -{ - G4double DJ = - GetCoulombBarrier(); - G4double T = aFragment.GetNumberOfParticles() + aFragment.GetNumberOfHoles() - GetA() - 1.0; - G4double R2 = GetMaximalKineticEnergy(); - G4double R1 = R2 + GetCoulombBarrier(); - - G4double E = 0.0; - if (T <= -0.1) E = R1; - else if (T <= 0.1) { - G4double E1 = R1; - G4double T3 = 0.0; - do { - G4double PJ1 = GetA() - 1.5; - G4double AbsBindingE = abs(GetBindingEnergy()); - if (GetBindingEnergy() <= 0.0 && AbsBindingE > GetCoulombBarrier()) { - E = AbsBindingE + G4UniformRand()*aFragment.GetExcitationEnergy(); - } else { - E = GetCoulombBarrier() + G4UniformRand()*R2; - } - T3 = pow((E+GetBindingEnergy())/(E1+GetBindingEnergy()),PJ1)*((E+DJ)/(E1+DJ)); - } while (G4UniformRand() > T3); - } else { - G4double PJ1 = GetA() - 1.5; - G4double ES = aFragment.GetExcitationEnergy()*(GetA()-0.5)+ - (aFragment.GetExcitationEnergy()-R2)*(aFragment.GetNumberOfParticles()+ - aFragment.GetNumberOfHoles()-2.5); - G4double E1 = (ES + sqrt(ES*ES-(aFragment.GetExcitationEnergy()-R2)*(GetA()-1.5)* - (aFragment.GetNumberOfParticles()+aFragment.GetNumberOfHoles()-1.5)* - 4.0*aFragment.GetExcitationEnergy()))/ - ((aFragment.GetNumberOfParticles()+aFragment.GetNumberOfHoles()-1.5)*2.0) - - aFragment.GetExcitationEnergy() + R1; - // - G4double T3 = 0.0; - do { - if (GetBindingEnergy() <= 0.0 && abs(GetBindingEnergy()) > GetCoulombBarrier()) { - E = abs(GetBindingEnergy()) + G4UniformRand()*(aFragment.GetExcitationEnergy()); - } else { - E = GetCoulombBarrier() + G4UniformRand()*R2; - } - T3 = (pow((E + GetBindingEnergy())/(E1 + GetBindingEnergy()),PJ1)* - ((E+DJ)/(E1+DJ))) * pow((R1-E)/(R1-E1),T); - } while (G4UniformRand() > T3); - } - return E; -} + + + diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc new file mode 100644 index 0000000000..3767a57553 --- /dev/null +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.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 * +// * authors in the GEANT4 collaboration. * +// * By copying, 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 $ +// +// by V. Lara + +#include "G4VPreCompoundNucleon.hh" +#include "G4PreCompoundParameters.hh" +//#include "G4EvaporationLevelDensityParameter.hh" + + +G4double G4VPreCompoundNucleon:: +ProbabilityDistributionFunction(const G4double eKin, + const G4Fragment& aFragment) +{ + if ( !IsItPossible(aFragment) ) return 0.0; + + const G4double r0 = G4PreCompoundParameters::GetAddress()->Getr0(); + + G4double U = aFragment.GetExcitationEnergy(); + G4double P = aFragment.GetNumberOfParticles(); + G4double H = aFragment.GetNumberOfHoles(); + G4double N = P + H; + + G4double A0 = (P*P+H*H+P-H)/4.0 - H/2.0; + G4double A1 = A0 - P/2.0; + + G4double E0 = G4std::max(0.0,U - A0); + if (E0 == 0.0) return 0.0; + G4double E1 = G4std::max(0.0,U - eKin - GetBindingEnergy() - A1); + + // g = 0.595*a*A +// G4EvaporationLevelDensityParameter theLDP; + G4double g0 = 0.595*aFragment.GetA() * + G4PreCompoundParameters::GetAddress()->GetLevelDensity(); +// theLDP.LevelDensityParameter(aFragment.GetA(),aFragment.GetZ(),U); + G4double g1 = 0.595*GetRestA() * + G4PreCompoundParameters::GetAddress()->GetLevelDensity(); +// theLDP.LevelDensityParameter(GetRestA(),GetRestZ(),U); + + + G4double Probability = 2.0/(hbarc*hbarc*hbarc) * GetReducedMass() * + r0 * r0 * pow(GetRestA(),2.0/3.0) * GetAlpha() * (eKin + GetBeta()) * + P*(N-1.0) * pow(g1*E1/(g0*E0),N-2.0)/E0 * + g1/(g0*g0); + + return Probability; +} + + 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 new file mode 100644 index 0000000000..8cee8b3707 --- /dev/null +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.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 * +// * authors in the GEANT4 collaboration. * +// * By 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 G4GammaParticipants_h +#define G4GammaParticipants_h 1 + +// An implementation of a parton string model, re-using +// the most parts of quark gluon string model. The calculation +// of collision probabilities was implemented as a transparent +// nucleus approximation. This implies that exactely ont nucleon +// in the nucleus participates in the reaction. + +#include "G4QGSParticipants.hh" + +class G4GammaParticipants : public G4QGSParticipants +{ + public: + virtual ~G4GammaParticipants(){} + + private: + virtual G4VSplitableHadron* SelectInteractions(const G4ReactionProduct &thePrimary); + +}; + +#endif + + 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 6be6fd2209..272205c002 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4InelasticSplitableHadron.hh,v 1.4 2001/08/01 17:08:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4InelasticSplitableHadron.hh,v 1.5 2002/06/06 10:07:14 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4InelasticSplitableHadron_h 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 9158effd0b..d361ccafbd 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 @@ -72,7 +72,7 @@ void G4QGSModel::Init(const G4Nucleus & aNucleus, const G4Dynam G4ReactionProduct theProjectile; theProjectile.SetDefinition(aProjectile.GetDefinition()); theProjectile.SetTotalEnergy(Mom.e()); - theProjectile.SetMomentum(Mom); + theProjectile.SetMomentum(Mom.vect()); //--DEBUG-- cout << "PreInteractionMomentum "<DoLorentzBoost(theCurrentVelocity); 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 7240b3e3d2..ec562345ed 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 @@ -35,12 +35,11 @@ class G4QGSParticipants : public G4VParticipants { - enum { SOFT, HARD, DIFFRACTIVE }; public: G4QGSParticipants(); G4QGSParticipants(const G4QGSParticipants &right); const G4QGSParticipants & operator=(const G4QGSParticipants &right); - ~G4QGSParticipants(); + virtual ~G4QGSParticipants(); int operator==(const G4QGSParticipants &right) const; int operator!=(const G4QGSParticipants &right) const; @@ -55,12 +54,13 @@ class G4QGSParticipants : public G4VParticipants void BuildInteractions(const G4ReactionProduct &thePrimary); void StartPartonPairLoop(); - private: - void SplitHadrons(); + protected: + virtual G4VSplitableHadron* SelectInteractions(const G4ReactionProduct &thePrimary); + void SplitHadrons(); void PerformSoftCollisions(); void PerformDiffractiveCollisions(); - private: + protected: struct DeleteInteractionContent {void operator()(G4InteractionContent*aC){delete aC;}}; G4std::vector theInteractions; struct DeleteSplitableHadron{void operator()(G4VSplitableHadron*aS){delete aS;}}; @@ -75,8 +75,9 @@ class G4QGSParticipants : public G4VParticipants G4ThreeVector theBoost; - private: + protected: // model parameters HPW + enum { SOFT, DIFFRACTIVE }; const G4int nCutMax; const G4double ThersholdParameter; const G4double QGSMThershold; 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 new file mode 100644 index 0000000000..4435b84a6f --- /dev/null +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.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 * +// * authors in the GEANT4 collaboration. * +// * By 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 "G4GammaParticipants.hh" +#include "G4LorentzVector.hh" +#include "G4Pair.hh" + +// Class G4GammaParticipants + +// J.P. Wellisch, April 2002 +// new participants class for gamma nuclear, with this design more can come with +// cross-section based, and quasi-eiconal model based modelling + +G4VSplitableHadron* G4GammaParticipants::SelectInteractions(const G4ReactionProduct &thePrimary) +{ + // Check reaction threshold - goes to CheckThreshold + G4VSplitableHadron* aProjectile = new G4QGSMSplitableHadron(thePrimary, TRUE); // @@@ check the TRUE + + const G4std::vector & theTargetNuc = theNucleus->GetNucleons(); + G4LorentzVector aPrimaryMomentum(thePrimary.GetMomentum(), thePrimary.GetTotalEnergy()); + G4double s = (aPrimaryMomentum + theTargetNuc[0]->Get4Momentum()).mag2(); + G4double ThresholdMass = thePrimary.GetMass() + theTargetNuc[0]->GetDefinition()->GetPDGMass(); + ModelMode = SOFT; + if (sqr(ThresholdMass + ThersholdParameter) > s) + { + G4Exception("Initial energy is too low. The 4-vectors of the input are inconsistant with the particle masses."); + } + if (sqr(ThresholdMass + QGSMThershold) > s) // thus only diffractive in cascade! + { + ModelMode = DIFFRACTIVE; + } + + // first find the collisions HPW + G4std::for_each(theInteractions.begin(), theInteractions.end(), DeleteInteractionContent()); + theInteractions.clear(); + G4int totalCuts = 0; + G4double eK = thePrimary.GetKineticEnergy()/GeV; + G4int nucleonCount = theTargetNuc.size(); // debug + G4int theCurrent = static_cast (theTargetNuc.size()*G4UniformRand()); + G4Nucleon * pNucleon = theTargetNuc[theCurrent]; + G4QGSMSplitableHadron* aTarget = new G4QGSMSplitableHadron(*pNucleon); + theTargets.push_back(aTarget); + pNucleon->Hit(aTarget); + if ( (0.06 > G4UniformRand() &&(ModelMode==SOFT)) || (ModelMode==DIFFRACTIVE ) ) + { + // diffractive interaction occurs + if(IsSingleDiffractive()) + { + theSingleDiffExcitation.ExciteParticipants(aProjectile, aTarget); + } + else + { + theDiffExcitaton.ExciteParticipants(aProjectile, aTarget); + } + G4InteractionContent * aInteraction = new G4InteractionContent(aProjectile); + aInteraction->SetTarget(aTarget); + theInteractions.push_back(aInteraction); + aInteraction->SetNumberOfDiffractiveCollisions(1); + totalCuts += 1; + } + else + { + // nondiffractive soft interaction occurs + aTarget->IncrementCollisionCount(1); + aProjectile->IncrementCollisionCount(1); + G4InteractionContent * aInteraction = new G4InteractionContent(aProjectile); + aInteraction->SetTarget(aTarget); + aInteraction->SetNumberOfSoftCollisions(1); + theInteractions.push_back(aInteraction); + totalCuts += 1; + } + return aProjectile; +} 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 112e0ccf7b..9ec560d04d 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 @@ -93,7 +93,7 @@ void G4HeavyIonParticipants::BuildInteractions(const G4ReactionProduct &thePrim G4double s = (iNucleon->Get4Momentum() + pNucleon->Get4Momentum()).mag2(); G4double Distance2 = sqr(impactX - pNucleon->GetPosition().x() - iNucleon->GetPosition().x()) + sqr(impactY - pNucleon->GetPosition().y() - iNucleon->GetPosition().y()); - G4PomeronCrossSection * theProbability; + G4PomeronCrossSection * theProbability=NULL; G4double Probability; if(iNucleon->GetDefinition() == G4Proton::Proton()) theProbability = &theProtonProbability; if(iNucleon->GetDefinition() == G4Neutron::Neutron()) theProbability = &theNeutronProbability; 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 fabcc050e5..3c66f2540b 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 @@ -24,6 +24,7 @@ #include "G4ParticleTable.hh" #include "G4PionPlus.hh" #include "G4PionMinus.hh" +#include "G4Gamma.hh" #include "G4PionZero.hh" #include "G4KaonPlus.hh" #include "G4KaonMinus.hh" @@ -264,6 +265,7 @@ void G4QGSMSplitableHadron::SoftSplitUp() G4double ColorX, AntiColorX; G4double HPWtest = 0; if (GetDefinition() == G4PionMinus::PionMinusDefinition()) aBeta = 1.; + if (GetDefinition() == G4Gamma::GammaDefinition()) aBeta = 1.; if (GetDefinition() == G4PionPlus::PionPlusDefinition()) aBeta = 1.; if (GetDefinition() == G4PionZero::PionZeroDefinition()) aBeta = 1.; if (GetDefinition() == G4KaonPlus::KaonPlusDefinition()) aBeta = 0.; 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 04f7da2d46..b3ff89668d 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 @@ -49,6 +49,29 @@ G4QGSParticipants::~G4QGSParticipants() } void G4QGSParticipants::BuildInteractions(const G4ReactionProduct &thePrimary) +{ + + // Find the collisions and collition conditions + G4VSplitableHadron* aProjectile = SelectInteractions(thePrimary); + + // now build the parton pairs. HPW + SplitHadrons(); + + // soft collisions first HPW, ordering is vital + PerformSoftCollisions(); + + // the rest is diffractive HPW + PerformDiffractiveCollisions(); + + // clean-up, if necessary + G4std::for_each(theInteractions.begin(), theInteractions.end(), DeleteInteractionContent()); + theInteractions.clear(); + G4std::for_each(theTargets.begin(), theTargets.end(), DeleteSplitableHadron()); + theTargets.clear(); + delete aProjectile; +} + +G4VSplitableHadron* G4QGSParticipants::SelectInteractions(const G4ReactionProduct &thePrimary) { G4VSplitableHadron* aProjectile = new G4QGSMSplitableHadron(thePrimary, TRUE); // @@@ check the TRUE G4PomeronCrossSection theProbability(thePrimary.GetDefinition()); // @@@ should be data member @@ -160,21 +183,7 @@ void G4QGSParticipants::BuildInteractions(const G4ReactionProduct &thePrimary) } //--DEBUG-- cout << G4endl<<"CUTDEBUG "<< totalCuts <size(); c1++) + for(size_t c1 = 0; c1 < Hadrons->size(); c1++) { G4double SumPz = 0; G4double SumE = 0; - for(G4int c2 = 0; c2 < c1; c2++) + for(size_t c2 = 0; c2 < c1; c2++) { SumPz += Hadrons->operator[](c2)->Get4Momentum().pz(); SumE += Hadrons->operator[](c2)->Get4Momentum().e(); @@ -313,9 +313,6 @@ G4KineticTrack * G4VLongitudinalStringDecay::Splitup( G4ThreeVector Pos; Hadron = new G4KineticTrack(HadronDefinition, 0,Pos, *HadronMomentum); - G4double HadronPz=HadronMomentum->pz(); - G4double HadronE=HadronMomentum->e(); - newString=new G4FragmentingString(*string,newStringEnd, HadronMomentum); @@ -377,18 +374,16 @@ G4bool G4VLongitudinalStringDecay::SplitLast(G4FragmentingString * string, //... perform last cluster decay G4ThreeVector ClusterVel =string->Get4Momentum().boostVector(); G4double ResidualMass =string->Mass(); - G4ParticleDefinition* pLastHadron; G4double ClusterMassCut = ClusterMass; G4int cClusterInterrupt = 0; G4ParticleDefinition * LeftHadron, * RightHadron; do - { - if (cClusterInterrupt++ >= ClusterLoopInterrupt) - { + { + if (cClusterInterrupt++ >= ClusterLoopInterrupt) + { return false; - } - G4int QuarkEncoding; - G4ParticleDefinition * quark; + } + G4ParticleDefinition * quark = NULL; string->SetLeftPartonStable(); // to query quark contents.. if (string->DecayIsQuark() && string->StableIsQuark() ) { @@ -406,13 +401,13 @@ G4bool G4VLongitudinalStringDecay::SplitLast(G4FragmentingString * string, quark = QuarkPair.second; LeftHadron=hadronizer->Build(QuarkPair.first, string->GetLeftParton()); } - RightHadron = hadronizer->Build(string->GetRightParton(), quark); + RightHadron = hadronizer->Build(string->GetRightParton(), quark); //... repeat procedure, if mass of cluster is too low to produce hadrons //... ClusterMassCut = 0.15*GeV model parameter if ( quark->GetParticleSubType()== "quark" ) {ClusterMassCut = 0.;} else {ClusterMassCut = ClusterMass;} - } + } while (ResidualMass <= LeftHadron->GetPDGMass() + RightHadron->GetPDGMass() + ClusterMassCut); //... compute hadron momenta and energies @@ -510,7 +505,7 @@ G4KineticTrackVector* G4VLongitudinalStringDecay::FragmentString(const G4Excited G4LorentzRotation toObserverFrame(toCms.inverse()); - for(int C1 = 0; C1 < LeftVector->size(); C1++) + for(size_t C1 = 0; C1 < LeftVector->size(); C1++) { G4KineticTrack* Hadron = LeftVector->operator[](C1); G4LorentzVector Momentum = Hadron->Get4Momentum(); @@ -581,7 +576,7 @@ G4double G4VLongitudinalStringDecay::FragmentationMass( //---------------------------------------------------------------------------------------------------------- -G4bool G4VLongitudinalStringDecay::IsFragmentable(const G4FragmentingString * string) +G4bool G4VLongitudinalStringDecay::IsFragmentable(const G4FragmentingString * const string) { return sqr(FragmentationMass(string)+MassCut) < string->Mass2(); diff --git a/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh b/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh new file mode 100644 index 0000000000..37b4b3c7b7 --- /dev/null +++ b/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.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 * +// * authors in the GEANT4 collaboration. * +// * By 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 G4DecayStrongResonances_h +#define G4DecayStrongResonances_h 1 + +#include "G4Fancy3DNucleus.hh" +#include "G4Nucleon.hh" +#include "G4Nucleus.hh" +#include "G4KineticTrackVector.hh" +#include "G4FragmentVector.hh" +#include "G4ParticleChange.hh" +#include "G4DynamicParticleVector.hh" + +#include + +class G4DecayStrongResonances +{ +public: + G4DecayStrongResonances(){} + ~G4DecayStrongResonances(){} + +private: + G4int operator==(G4DecayStrongResonances& right) {return (this == &right);} + G4int operator!=(G4DecayStrongResonances& right) {return (this != &right);} + + G4double theEnergy; + +public: + G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) + { + // decay the strong resonances + G4ReactionProductVector * theResult = new G4ReactionProductVector; + G4KineticTrackVector *result1, *secondaries, *result; + result1=theSecondaries; + result=new G4KineticTrackVector(); + + G4ThreeVector theCurrentVelocity; + theCurrentVelocity.setX(0); + theCurrentVelocity.setY(0); + G4double vz = theEnergy/(sqrt(theEnergy*theEnergy + + G4Proton::Proton()->GetPDGMass()*G4Proton::Proton()->GetPDGMass()) + + G4Proton::Proton()->GetPDGMass()); + theCurrentVelocity.setZ(vz); + + size_t aResult=0; + for (aResult=0; aResult < result1->size(); aResult++) + { + G4ParticleDefinition * pdef; + pdef=result1->operator[](aResult)->GetDefinition(); + secondaries=NULL; + if ( pdef->GetPDGWidth() > 0 && pdef->GetPDGLifeTime() < 5E-17*s ) + { + secondaries = result1->operator[](aResult)->Decay(); + } + if ( secondaries == NULL ) + { + result->push_back(result1->operator[](aResult)); + result1->operator[](aResult)=NULL; //protect for clearAndDestroy + } + else + { + for (size_t aSecondary=0; aSecondarysize(); aSecondary++) + { + result1->push_back(secondaries->operator[](aSecondary)); + } + delete secondaries; + } + } + G4std::for_each(result1->begin(), result1->end(), DeleteKineticTrack()); + delete result1; + + // translate to ReactionProducts + G4ReactionProduct * it = NULL; + for(aResult=0; aResult < result->size(); aResult++) + { + it = new G4ReactionProduct(); + it->SetDefinition((*result)[aResult]->GetDefinition()); + it->SetMass((*result)[aResult]->GetDefinition()->GetPDGMass()); + it->SetTotalEnergy((*result)[aResult]->Get4Momentum().t()); + it->SetMomentum((*result)[aResult]->Get4Momentum().vect()); + + theResult->push_back(it); + } + G4std::for_each(result->begin(), result->end(), DeleteKineticTrack()); + delete result; + return theResult; + } + + +private: +}; + +#endif // G4DecayStrongResonances_h + + diff --git a/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh b/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh index 4e8f8404e7..140722d883 100644 --- a/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh +++ b/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedString.hh,v 1.9 2001/10/06 08:17:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 70e13645d4..bc8567ef19 100644 --- a/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedStringVector.hh,v 1.6 2001/10/04 20:00:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 7ada2b2d48..20a6ed9b92 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Fancy3DNucleus.hh,v 1.9 2001/10/04 20:00:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Fancy3DNucleus.hh,v 1.10 2002/04/24 13:10:50 gunter Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4Fancy3DNucleus_h #define G4Fancy3DNucleus_h 1 @@ -81,6 +81,7 @@ class G4Fancy3DNucleus : public G4V3DNucleus void DoLorentzContraction(const G4ThreeVector & theBeta); void CenterNucleons(); void DoTranslation(const G4ThreeVector & theShift); + const G4VNuclearDensity * GetNuclearDensity() const; private: diff --git a/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh b/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh index 47d258389b..32b7222230 100644 --- a/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh +++ b/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh @@ -22,7 +22,7 @@ // // // $Id: G4FermiMomentum.hh,v 1.5 2001/08/01 17:09:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 86a2116e5d..3aed070779 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Fragment.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Fragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Fragment.hh,v 1.11 2001/10/04 20:00:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Fragment.hh,v 1.13 2002/06/07 15:30:55 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -51,6 +51,8 @@ class G4ParticleDefinition; class G4Fragment; // Forward deckaration typedef G4std::vector G4FragmentVector; +//#define pctest + class G4Fragment { @@ -126,6 +128,12 @@ public: inline G4double GetBindingEnergy(void) const; +#ifdef pctest + G4String GetCreatorModel() const { return theCreatorModel; } + void SetCreatorModel(const G4String & aModel) + { theCreatorModel = aModel; } +#endif + private: G4double CalculateExcitationEnergy(const G4LorentzVector value) const; @@ -157,6 +165,10 @@ private: G4ParticleDefinition * theParticleDefinition; G4double theCreationTime; + +#ifdef pctest + G4String theCreatorModel; +#endif }; // Class G4Fragment @@ -280,7 +292,7 @@ inline G4double G4Fragment::GetGroundStateMass(void) const { if (theA == 0) return 0.0; // photon else return G4ParticleTable::GetParticleTable()-> - GetIonTable()->GetIonMass(theZ,theA); + GetIonTable()->GetIonMass(static_cast(theZ),static_cast(theA)); } inline G4double G4Fragment::GetBindingEnergy(void) const diff --git a/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh b/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh index cc6d9c1cf1..ae7caa52f9 100644 --- a/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4FragmentVector.hh,v 1.4 2001/08/01 17:09:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 85790457eb..dcefcc0624 100644 --- a/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh +++ b/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeneralPhaseSpaceDecay.hh,v 1.5 2001/08/01 17:09:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //$Id: G4GeneralPhaseSpaceDecay.hh,v 1.1 1997/05/21 // ---------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh b/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh index 546c14c38f..0bf749a97e 100644 --- a/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4KineticTrackVector.hh,v 1.6 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // 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 a9ea83e9c1..de64e24a06 100644 --- a/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh +++ b/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NuclearFermiDensity.hh,v 1.5 2001/08/01 17:09:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NuclearFermiDensity.hh,v 1.6 2002/04/24 13:10:50 gunter Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4NuclearFermiDensity_h #define G4NuclearFermiDensity_h 1 @@ -41,9 +41,9 @@ class G4NuclearFermiDensity : public G4VNuclearDensity G4NuclearFermiDensity(G4double anA, G4double aZ); ~G4NuclearFermiDensity(); - G4double GetRelativeDensity(G4ThreeVector aPosition); - G4double GetRadius(const G4double maxRelativeDenisty); - G4double GetDeriv(const G4ThreeVector & aPosition); + G4double GetRelativeDensity(const G4ThreeVector & aPosition) const; + G4double GetRadius(const G4double maxRelativeDenisty) const; + G4double GetDeriv(const G4ThreeVector & aPosition) const; private: diff --git a/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh b/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh index f1185b6135..d6a99ff2cd 100644 --- a/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh +++ b/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NuclearShellModelDensity.hh,v 1.5 2001/08/01 17:09:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NuclearShellModelDensity.hh,v 1.6 2002/04/24 13:10:50 gunter Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4NuclearShellModelDensity_h #define G4NuclearShellModelDensity_h 1 @@ -41,9 +41,9 @@ class G4NuclearShellModelDensity : public G4VNuclearDensity G4NuclearShellModelDensity(G4double anA, G4double aZ); ~G4NuclearShellModelDensity(); - G4double GetRelativeDensity(G4ThreeVector aPosition); - G4double GetRadius(const G4double maxRelativeDenisty); - G4double GetDeriv(const G4ThreeVector & aPosition); + G4double GetRelativeDensity(const G4ThreeVector & aPosition) const; + G4double GetRadius(const G4double maxRelativeDenisty) const; + G4double GetDeriv(const G4ThreeVector & aPosition) const; private: G4int theA; diff --git a/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh b/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh index 2860ab5e10..2750619a48 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4Nucleon.hh,v 1.5 2001/08/01 17:09:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 203c567013..e456cf751a 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Parton.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Parton.hh @@ -22,7 +22,7 @@ // // // $Id: G4Parton.hh,v 1.13 2001/08/01 17:09:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 acaba684bb..a6b54ebc4d 100644 --- a/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PartonVector.hh,v 1.6 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ea171f3052..da4abb67a6 100644 --- a/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh +++ b/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh @@ -22,7 +22,7 @@ // // // $Id: G4SampleResonance.hh,v 1.4 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 09cda0172c..bbc54f3d98 100644 --- a/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc +++ b/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedString.cc,v 1.6 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc b/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc index 0548e74f42..49a7c4ae8e 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc +++ b/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Fancy3DNucleus.cc,v 1.14 2001/10/20 10:48:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Fancy3DNucleus.cc,v 1.19 2002/06/10 13:27:54 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file @@ -83,7 +83,8 @@ void G4Fancy3DNucleus::Init(G4double theA, G4double theZ) currentNucleon=-1; if(theNucleons!=NULL) delete [] theNucleons; - G4std::for_each(theRWNucleons.begin(), theRWNucleons.end(), DeleteNucleon()); +// this was delected already: +// G4std::for_each(theRWNucleons.begin(), theRWNucleons.end(), DeleteNucleon()); theRWNucleons.clear(); myZ = G4int(theZ); @@ -241,6 +242,11 @@ void G4Fancy3DNucleus::DoTranslation(const G4ThreeVector & theShift) } } +const G4VNuclearDensity * G4Fancy3DNucleus::GetNuclearDensity() const +{ + return theDensity; +} + //----------------------- private Implementation Methods------------- void G4Fancy3DNucleus::ChooseNucleons() @@ -296,6 +302,7 @@ void G4Fancy3DNucleus::ChoosePositions() void G4Fancy3DNucleus::ChooseFermiMomenta() { G4int i; + G4double density; G4ThreeVector * momentum=new G4ThreeVector[myA]; G4double * fermiM=new G4double[myA]; @@ -304,8 +311,9 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() { for (i=0; i < myA; i++ ) // momenta for all, including last, in case we swa { - fermiM[i]=theFermi.GetFermiMomentum(theDensity->GetDensity(theNucleons[i].GetPosition())); - momentum[i]= theFermi.GetMomentum(theDensity->GetDensity(theNucleons[i].GetPosition())); + density = theDensity->GetDensity(theNucleons[i].GetPosition()); + fermiM[i] = theFermi.GetFermiMomentum(density); + momentum[i]= theFermi.GetMomentum(density); } if (ReduceSum(momentum,fermiM) ) @@ -323,8 +331,8 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() for ( i=0; i< myA ; i++ ) { energy=theNucleons[i].GetParticleType()->GetPDGMass() - + BindingEnergy()/myA; - G4LorentzVector tempV(momentum[i],sqrt(energy*energy+momentum[i].mag2())); + - BindingEnergy()/myA; + G4LorentzVector tempV(momentum[i],energy); theNucleons[i].SetMomentum(tempV); } @@ -375,7 +383,8 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() G4bool G4Fancy3DNucleus::ReduceSum(G4ThreeVector * momentum, G4double *pFermiM) { G4ThreeVector sum; - G4double PFermi=theFermi.GetFermiMomentum(theDensity->GetDensity(theNucleons[myA-1].GetPosition())); + G4double density = theDensity->GetDensity(theNucleons[myA-1].GetPosition()); + G4double PFermi=theFermi.GetFermiMomentum(density); for (G4int i=0; i < myA-1 ; i++ ) { sum+=momentum[i]; } @@ -436,17 +445,18 @@ G4bool G4Fancy3DNucleus::ReduceSum(G4ThreeVector * momentum, G4double *pFermiM) // try to compensate momentum using another Nucleon.... G4int swapit=-1; - while (swapit< myA-1 - && theFermi.GetFermiMomentum(theDensity->GetDensity(theNucleons[++swapit].GetPosition())) < PFermi ) - ; - + while (swapitGetDensity(theNucleons[++swapit].GetPosition()); + if ( theFermi.GetFermiMomentum(density) > 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; // G4cout << " Fermi momentum test, and better.. " << PFermi << " / " -// << theFermi.GetFermiMomentum(theDensity->GetDensity(theNucleons[swapit].GetPosition())) << G4endl; +// << theFermi.GetFermiMomentum(density) << G4endl; // cout << theNucleons[swapit]<< G4endl << theNucleons[myA-1] << G4endl; // cout << momentum[swapit] << G4endl << momentum[myA-1] << G4endl; G4Nucleon swap= theNucleons[swapit]; diff --git a/source/processes/hadronic/models/generator/util/src/G4FermiMomentum.cc b/source/processes/hadronic/models/generator/util/src/G4FermiMomentum.cc index a204e8b786..fe07104ab7 100644 --- a/source/processes/hadronic/models/generator/util/src/G4FermiMomentum.cc +++ b/source/processes/hadronic/models/generator/util/src/G4FermiMomentum.cc @@ -22,7 +22,7 @@ // // // $Id: G4FermiMomentum.cc,v 1.4 2001/08/01 17:09:26 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4FermiMomentum.hh" diff --git a/source/processes/hadronic/models/generator/util/src/G4Fragment.cc b/source/processes/hadronic/models/generator/util/src/G4Fragment.cc index f849086609..2578c6be7b 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Fragment.cc +++ b/source/processes/hadronic/models/generator/util/src/G4Fragment.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Fragment.cc,v 1.12 2001/11/29 15:41:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Fragment.cc,v 1.14 2002/06/10 13:27:54 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -42,6 +42,9 @@ G4Fragment::G4Fragment() : numberOfCharged(0), theParticleDefinition(0), theCreationTime(0.0) +#ifdef pctest + ,theCreatorModel("No name") +#endif { theAngularMomentum = IsotropicRandom3Vector(); } @@ -59,6 +62,9 @@ G4Fragment::G4Fragment(const G4Fragment &right) numberOfCharged = right.numberOfCharged; theParticleDefinition = right.theParticleDefinition; theCreationTime = right.theCreationTime; +#ifdef pctest + theCreatorModel = right.theCreatorModel; +#endif } @@ -76,8 +82,13 @@ G4Fragment::G4Fragment(const G4int A, const G4int Z, const G4LorentzVector aMome numberOfCharged(0), theParticleDefinition(0), theCreationTime(0.0) +#ifdef pctest + ,theCreatorModel("No name") +#endif { - theExcitationEnergy = theMomentum.mag() - G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass( theZ, theA ); + theExcitationEnergy = theMomentum.mag() - + G4ParticleTable::GetParticleTable()->GetIonTable() + ->GetIonMass( static_cast(theZ), static_cast(theA) ); if( theExcitationEnergy < 0.0 ) if( theExcitationEnergy > -10.0 * eV ) theExcitationEnergy = 0.0; @@ -100,7 +111,9 @@ G4Fragment::G4Fragment(const G4LorentzVector aMomentum, G4ParticleDefinition * a numberOfCharged(0), theParticleDefinition(aParticleDefinition), theCreationTime(0.0) - +#ifdef pctest + ,theCreatorModel("No name") +#endif { theExcitationEnergy = CalculateExcitationEnergy(aMomentum); theAngularMomentum = IsotropicRandom3Vector(); @@ -121,6 +134,9 @@ const G4Fragment & G4Fragment::operator=(const G4Fragment &right) numberOfCharged = right.numberOfCharged; theParticleDefinition = right.theParticleDefinition; theCreationTime = right.theCreationTime; +#ifdef pctest + theCreatorModel = right.theCreatorModel; +#endif } return *this; } @@ -151,7 +167,7 @@ G4std::ostream& operator << (G4std::ostream &out, const G4Fragment *theFragment) << ", Z = " << G4std::setprecision(3) << theFragment->theZ ; out.setf(G4std::ios::scientific,G4std::ios::floatfield); out - << ", U = " << theFragment->theExcitationEnergy/MeV + << ", U = " << theFragment->GetExcitationEnergy()/MeV << " MeV" << G4endl << " P = (" << theFragment->theMomentum.x()/MeV << "," diff --git a/source/processes/hadronic/models/generator/util/src/G4GeneralPhaseSpaceDecay.cc b/source/processes/hadronic/models/generator/util/src/G4GeneralPhaseSpaceDecay.cc index ff54fdafb1..44ca1b1b85 100644 --- a/source/processes/hadronic/models/generator/util/src/G4GeneralPhaseSpaceDecay.cc +++ b/source/processes/hadronic/models/generator/util/src/G4GeneralPhaseSpaceDecay.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeneralPhaseSpaceDecay.cc,v 1.5 2001/10/05 16:17:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: G4GeneralSpaceDecay.cc,v 1.0 1998/05/21 // ---------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/util/src/G4KineticTrack.cc b/source/processes/hadronic/models/generator/util/src/G4KineticTrack.cc index 82109dcf3a..6fd708aa44 100644 --- a/source/processes/hadronic/models/generator/util/src/G4KineticTrack.cc +++ b/source/processes/hadronic/models/generator/util/src/G4KineticTrack.cc @@ -471,7 +471,7 @@ G4KineticTrackVector* G4KineticTrack::Decay() G4double r = theTotalActualWidth * G4UniformRand(); G4ParticleDefinition* theDefinition = this->GetDefinition(); G4DecayTable* theDecayTable = theDefinition->GetDecayTable(); - G4VDecayChannel* theDecayChannel; + G4VDecayChannel* theDecayChannel=NULL; for (index = nChannels - 1; index >= 0; index--) { if (r < theCumActualWidth[index]) diff --git a/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc b/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc index 1e8889bb42..0bd013ab14 100644 --- a/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc +++ b/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NuclearFermiDensity.cc,v 1.8 2001/08/01 17:09:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NuclearFermiDensity.cc,v 1.9 2002/04/24 13:10:50 gunter Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4NuclearFermiDensity.hh" @@ -40,18 +40,18 @@ G4NuclearFermiDensity::G4NuclearFermiDensity(G4double anA, G4double aZ) G4NuclearFermiDensity::~G4NuclearFermiDensity() {} -G4double G4NuclearFermiDensity::GetRelativeDensity(G4ThreeVector aPosition) +G4double G4NuclearFermiDensity::GetRelativeDensity(const G4ThreeVector & aPosition) const { return 1./(1.+exp((aPosition.mag()-theR)/a)); } -G4double G4NuclearFermiDensity::GetRadius(const G4double maxRelativeDensity) +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) +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 b02928833f..d5b54d203b 100644 --- a/source/processes/hadronic/models/generator/util/src/G4NuclearShellModelDensity.cc +++ b/source/processes/hadronic/models/generator/util/src/G4NuclearShellModelDensity.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NuclearShellModelDensity.cc,v 1.6 2001/08/01 17:09:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NuclearShellModelDensity.cc,v 1.7 2002/04/24 13:10:50 gunter Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4NuclearShellModelDensity.hh" @@ -38,19 +38,19 @@ G4NuclearShellModelDensity::G4NuclearShellModelDensity(G4double anA, G4double aZ G4NuclearShellModelDensity::~G4NuclearShellModelDensity() {} -G4double G4NuclearShellModelDensity::GetRelativeDensity(G4ThreeVector aPosition) +G4double G4NuclearShellModelDensity::GetRelativeDensity(const G4ThreeVector & aPosition) const { return exp(-1*aPosition.mag2()/theRsquare); } -G4double G4NuclearShellModelDensity::GetRadius(const G4double maxRelativeDensity) +G4double G4NuclearShellModelDensity::GetRadius(const G4double maxRelativeDensity) const { return (maxRelativeDensity>0 && maxRelativeDensity <= 1 ) ? sqrt(theRsquare * log(1/maxRelativeDensity) ) : DBL_MAX; } -G4double G4NuclearShellModelDensity::GetDeriv(const G4ThreeVector & aPosition) +G4double G4NuclearShellModelDensity::GetDeriv(const G4ThreeVector & aPosition) const { return -2* aPosition.mag() / theRsquare * GetDensity(aPosition); } diff --git a/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc b/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc index 0a10222baf..e80930c0fd 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc +++ b/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4Nucleon.cc,v 1.5 2001/08/01 17:09:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 a1a61075d5..c11da60d89 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Parton.cc +++ b/source/processes/hadronic/models/generator/util/src/G4Parton.cc @@ -22,7 +22,7 @@ // // // $Id: G4Parton.cc,v 1.12 2001/11/15 14:10:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 df870ddaa6..873be0de40 100644 --- a/source/processes/hadronic/models/generator/util/src/G4SampleResonance.cc +++ b/source/processes/hadronic/models/generator/util/src/G4SampleResonance.cc @@ -22,7 +22,7 @@ // // // $Id: G4SampleResonance.cc,v 1.4 2001/10/06 08:17:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 3d30ace44c..18ada19ff4 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiKaonZeroInelastic.hh,v 1.8 2001/08/01 17:09:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 85e69b9cf7..0e509263f7 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiLambdaInelastic.hh,v 1.8 2001/08/01 17:09:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 acef2fb542..d592a00295 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiNeutronInelastic.hh,v 1.8 2001/08/01 17:09:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 e73847edf0..427003aa76 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiOmegaMinusInelastic.hh,v 1.8 2001/08/01 17:09:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 0f38d0a4e8..612cd1e891 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiProtonInelastic.hh,v 1.8 2001/08/01 17:09:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HEAntiProtonInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 5478178ec7..915f56aadd 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaMinusInelastic.hh,v 1.8 2001/08/01 17:09:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 941afbe7db..4981d0a9c4 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaPlusInelastic.hh,v 1.8 2001/08/01 17:09:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 c1ace89c0d..099d3502f9 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaZeroInelastic.hh,v 1.8 2001/08/01 17:09:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 d52d1a0f05..92a567f1b4 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiMinusInelastic.hh,v 1.8 2001/08/01 17:09:38 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 fc50855ef2..72053cf994 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiZeroInelastic.hh,v 1.8 2001/08/01 17:09:38 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 641b7b5bfb..5e5f051c2b 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEInelastic.hh,v 1.8 2001/08/01 17:09:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4 Gheisha High Energy (GHE) model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh index 23c9102320..1085ef39e9 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonMinusInelastic.hh,v 1.8 2001/08/01 17:09:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 0a92295893..8c2971ea61 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonPlusInelastic.hh,v 1.8 2001/08/01 17:09:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 7907b00ea7..d637fe3827 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroInelastic.hh,v 1.7 2001/08/01 17:09:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 b151b9d293..ec1622807c 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroLongInelastic.hh,v 1.8 2001/08/01 17:09:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 daa82d8656..40eda00e9f 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroShortInelastic.hh,v 1.8 2001/08/01 17:09:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 ebafddcbf8..237a9dbfe1 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HELambdaInelastic.hh,v 1.8 2001/08/01 17:09:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 33a108154b..a691d8e5b8 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HENeutronInelastic.hh,v 1.8 2001/08/01 17:09:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HENeutronInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4 Gheisha High Energy model class -- header file @@ -41,7 +41,7 @@ class G4HENeutronInelastic : public G4HEInelastic public: G4HENeutronInelastic() : G4HEInelastic() { - theMinEnergy = 20*GeV; + theMinEnergy = 45*GeV; theMaxEnergy = 10*TeV; MAXPART = 2048; verboseLevel = 0; diff --git a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh index ebb32a35c6..d5373c2e74 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEOmegaMinusInelastic.hh,v 1.8 2001/08/01 17:09:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 23476116f2..97aab6a875 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEPionMinusInelastic.hh,v 1.8 2001/08/01 17:09:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HEPionMinusInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4 Gheisha High Energy model class -- header file @@ -41,7 +41,7 @@ class G4HEPionMinusInelastic : public G4HEInelastic public: G4HEPionMinusInelastic() : G4HEInelastic() { - theMinEnergy = 20*GeV; + theMinEnergy = 45*GeV; theMaxEnergy = 10*TeV; MAXPART = 2048; verboseLevel = 0; diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh index 653d0d642a..4f4ae5ae8e 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEPionPlusInelastic.hh,v 1.8 2001/08/01 17:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HEPionPlusInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4 Gheisha High Energy model class -- header file @@ -41,7 +41,7 @@ class G4HEPionPlusInelastic : public G4HEInelastic public: G4HEPionPlusInelastic() : G4HEInelastic() { - theMinEnergy = 20*GeV; + theMinEnergy = 45*GeV; theMaxEnergy = 10*TeV; MAXPART = 2048; verboseLevel = 0; diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh b/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh index fea742393a..64da4a83f5 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPlot.hh,v 1.6 2001/08/01 17:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 d93507b10c..eebdc18b34 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEProtonInelastic.hh,v 1.8 2001/08/01 17:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HEProtonInelastic.hh,v 1.9 2002/06/13 07:14:41 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4 Gheisha High Energy model class -- header file @@ -41,7 +41,7 @@ class G4HEProtonInelastic : public G4HEInelastic public: G4HEProtonInelastic() : G4HEInelastic() { - theMinEnergy = 20*GeV; + theMinEnergy = 45*GeV; theMaxEnergy = 10*TeV; MAXPART = 2048; verboseLevel = 0; diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh index 0002890c02..efa4bb0657 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaMinusInelastic.hh,v 1.8 2001/08/01 17:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 21372ec8eb..95b0a4e4c7 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaPlusInelastic.hh,v 1.8 2001/08/01 17:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 6f5aa8721f..7f346f57e1 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaZeroInelastic.hh,v 1.8 2001/08/01 17:09:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 a7870fcd18..1f09376f9b 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEVector.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEVector.hh,v 1.7 2001/08/01 17:09:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 88ef5368f2..6142692759 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEXiMinusInelastic.hh,v 1.8 2001/08/01 17:09:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 9d57d7b592..4fed9aee77 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEXiZeroInelastic.hh,v 1.8 2001/08/01 17:09:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 608de24369..adaac17afa 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiKaonZeroInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc index a1f64e3fb2..287db2901e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiLambdaInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc index f6a2025b19..119575b139 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiNeutronInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc index cd2538a40b..2ab286b084 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiOmegaMinusInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc index fdeb899b77..84bc860c07 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiProtonInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc index 291ff77938..5370bc8e8e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaMinusInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc index 506b9574f4..eeda600433 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaPlusInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc index 4b57f27c74..e64616a66e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaZeroInelastic.cc,v 1.6 2001/08/01 17:09:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc index 537eecaa31..e148bb032b 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiMinusInelastic.cc,v 1.7 2001/10/05 16:10:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc index 9e99e20eb2..f7f3786957 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiZeroInelastic.cc,v 1.7 2001/10/05 16:10:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc index 99930b862c..06ccfb91d9 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc @@ -55,7 +55,7 @@ void G4HEInelastic::FillParticleChange(G4HEVector pv[], G4int aVecLength) for (G4int i=0; i 1) { G4cout << "xtarg= " << xtarg << " xpnhmf = " << xpnhmf << G4endl; } @@ -1039,7 +1039,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, // process the secondary particles in reverse order G4double dndl[20]; G4double binl[20]; - G4double pvMass, pvEnergy; + G4double pvMass(0), pvEnergy(0); G4int pvCode; G4double aspar, pt, phi, et, xval; G4double ekin = 0.; @@ -1107,6 +1107,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, pt = sqrt(pow(-log(1.-G4UniformRand())/bp[j],ptex[j])); if(pt<0.05) pt = Amax(0.001, 0.3*G4UniformRand()); aspar = maspar[j]; + phi = G4UniformRand()*M_2PI; pv[i].setMomentum( pt*cos(phi), pt*sin(phi) ); // set x- and y-momentum for( j=0; j<20; j++ ) binl[j] = j/(19.*pt); // set the lambda - bins. @@ -1182,7 +1183,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, if( pvmx[6].getMomentum().y() < 0.0 ) phi = M_2PI - phi; phi += M_PI + normal()*M_PI/12.0; if( phi > M_2PI )phi -= M_2PI; - if( phi < 0.0 )phi = M_2PI - phi; + if( phi < 0.0 )phi = M_2PI + phi; outerCounter = 2; // leave outer loop eliminateThisParticle = false; // don't eliminate this particle resetEnergies = false; @@ -1211,7 +1212,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, if( pvmx[6].getMomentum().y() < 0.0 )phi = M_2PI - phi; phi += M_PI + normal() * M_PI / 12.0; if( phi > M_2PI )phi -= M_2PI; - if( phi < 0.0 )phi = M_2PI - phi; + if( phi < 0.0 )phi = M_2PI + phi; outerCounter = 2; // leave outer iteration eliminateThisParticle = false; // don't eliminate this particle resetEnergies = false; @@ -1290,7 +1291,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, if( pvmx[6].getMomentum().y() < 0.0 )phi = M_2PI - phi; phi += M_PI + normal() * M_PI / 12.0; if( phi > M_2PI )phi -= M_2PI; - if( phi < 0.0 )phi = M_2PI - phi; + if( phi < 0.0 )phi = M_2PI + phi; } } // closes main for loop if (verboseLevel > 1) @@ -1360,7 +1361,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, } if ( targ <1) targ = 1; - G4bool dum; + G4bool dum=0; if( lead ) { for( i=0; i= 0.001 ) @@ -2016,7 +2017,7 @@ G4HEInelastic::TuningOfHighEnergyCascading( G4HEVector pv[], if(pv[i].getCode() == pionZeroCode) sbqwgt = 0.15; } ppp = pvmx[5].Length(); - if ( (sbqwgt>0.) && (ppp>1.e-6)) + if ( (sbqwgt>0.) && (ppp>1.e-6) ) { G4double pthmf = ppp*sqrt(1.-cost*cost); G4double plhmf = ppp*cost*(1.-sbqwgt); @@ -2589,7 +2590,7 @@ G4HEInelastic::HighEnergyClusterProduction(G4bool &successful, for(i=0; i= 0.001 ) @@ -3392,6 +3393,7 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, if (j == 6 && pv[i].getType() == baryonType) j = 7; pt = Amax(0.001, sqrt(pow(-log(1.-G4UniformRand())/bp[j],ptex[j]))); aspar = maspar[j]; + phi = G4UniformRand()*M_2PI; pv[i].setMomentum( pt*cos(phi), pt*sin(phi) ); // set x- and y-momentum for( j=0; j<20; j++ ) binl[j] = j/(19.*pt); // set the lambda - bins. @@ -3468,7 +3470,7 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, if( pvmx[6].getMomentum().y() < 0.0 ) phi = M_2PI - phi; phi += M_PI + normal()*M_PI/12.0; if( phi > M_2PI )phi -= M_2PI; - if( phi < 0.0 )phi = M_2PI - phi; + if( phi < 0.0 )phi = M_2PI + phi; outerCounter = 2; // leave outer loop eliminateThisParticle = false; // don't eliminate this particle resetEnergies = false; @@ -3497,7 +3499,7 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, if( pvmx[6].getMomentum().y() < 0.0 )phi = M_2PI - phi; phi += M_PI + normal() * M_PI / 12.0; if( phi > M_2PI )phi -= M_2PI; - if( phi < 0.0 )phi = M_2PI - phi; + if( phi < 0.0 )phi = M_2PI + phi; outerCounter = 2; // leave outer iteration eliminateThisParticle = false; // don't eliminate this particle resetEnergies = false; @@ -3568,7 +3570,7 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, if( pvmx[6].getMomentum().y() < 0.0 )phi = M_2PI - phi; phi += M_PI + normal() * M_PI / 12.0; if( phi > M_2PI )phi -= M_2PI; - if( phi < 0.0 )phi = M_2PI - phi; + if( phi < 0.0 )phi = M_2PI + phi; } } // closes main for loop if (verboseLevel > 1) @@ -4523,7 +4525,7 @@ G4HEInelastic::MediumEnergyClusterProduction(G4bool &successful, for(i=0; i:: GetProductIsotope(G4double anEnergy) { G4double running = 0; - G4int index; + G4int index(0); G4double random = G4UniformRand(); for(G4int i=0; iGetElement(check)->GetZ()<13) return NULL; //@@@@@@ workaround to ne fixed in G4NeutronHPNames. if(theMaterial->GetElement(check)->GetZ()>83) return NULL; //@@@@@@ workaround to ne fixed in G4NeutronHPNames. } - G4int index; + G4int index(0); G4double * xSec = new G4double[nEleInMat]; G4double sum = 0; { diff --git a/source/processes/hadronic/models/leading_particle/GNUmakefile b/source/processes/hadronic/models/leading_particle/GNUmakefile new file mode 100644 index 0000000000..b7da394822 --- /dev/null +++ b/source/processes/hadronic/models/leading_particle/GNUmakefile @@ -0,0 +1,34 @@ +# $Id: GNUmakefile,v 1.1 2001/12/13 14:59:42 kurasige Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_leading_particle + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/intercoms/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)/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/leading_particle/History b/source/processes/hadronic/models/leading_particle/History new file mode 100644 index 0000000000..db7c022db2 --- /dev/null +++ b/source/processes/hadronic/models/leading_particle/History @@ -0,0 +1,20 @@ +$Id: History,v 1.1 2001/12/13 14:59:43 kurasige Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + leading_particle biasing model History file + ---------------------------------------------- +This file should be used by responsible rdm 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 * + ---------------------------------------------------------- +13 Dec 2001 Hisaya Kurashige (leading_particle-V04-00-00) +- Introduce Mars5GeV code based on MARS13 by Nikolai(Naoko) + + diff --git a/source/track/include/G4Mars5GeVMechanism.hh b/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh similarity index 83% rename from source/track/include/G4Mars5GeVMechanism.hh rename to source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh index 1c09d3c681..84025924e6 100644 --- a/source/track/include/G4Mars5GeVMechanism.hh +++ b/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mars5GeVMechanism.hh,v 1.4 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Mars5GeV.hh,v 1.1 2001/12/13 14:59:46 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -32,6 +32,8 @@ // ------------------------------------------------------------ // First Implemention 17 Nov. 1998 M.Asai, H.Kurahige // +// History: +// modified as hadronic model 28 Oct 2001 N.Kanaya // ------------------------------------------------------------ // Class Description // This is a Event Biasing mechanism based on MARS code @@ -55,40 +57,39 @@ //* IP+A -> N/P(CASC)+ PI+/PI-(K+/K-) + PI0 // -#ifndef G4Mars5GeVMechanism_h -#define G4Mars5GeVMechanism_h 1 +#ifndef G4Mars5GeV_h +#define G4Mars5GeV_h 1 +#include "G4Element.hh" +#include "G4ElementVector.hh" +#include "G4ElementTable.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsVector.hh" +#include "G4LPhysicsFreeVector.hh" +#include "G4LightMedia.hh" +#include "G4Step.hh" +#include "G4TrackStatus.hh" +#include "G4InelasticInteraction.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" -#include "globals.hh" -#include "G4ios.hh" -#include "G4VEvtBiasMechanism.hh" - -class G4Material; -class G4DynamicParticle; -class G4VParticleChange; -class G4ParticleTable; -class G4ParticleDefinition; -#include "G4ThreeVector.hh" -#include "G4FastVector.hh" - -class G4Mars5GeVMechanism :public G4VEvtBiasMechanism +class G4Mars5GeV : public G4InelasticInteraction { - public: // with description +public: // with description // constructors - G4Mars5GeVMechanism(const G4String& name = "MARS5GeV"); - G4Mars5GeVMechanism(const G4Mars5GeVMechanism&); - + G4Mars5GeV(); + //destructor - virtual ~G4Mars5GeVMechanism(); - + ~G4Mars5GeV() { ; }; + // virtual methods derived from G4VEvtBiasMechanism - virtual G4VParticleChange* ApplyMath( G4VParticleChange*, const G4Step& ); - virtual G4bool IsApplicable(G4ParticleDefinition*) const; + G4VParticleChange* ApplyYourself( const G4Track &aTrack, + G4Nucleus &targetNucleus ); private: void Treem5(); // This is the mothod which invoke MARS // secondary information will be filled up - + G4bool CoulombBarrier(G4int pType, G4double pE); // Check if coulomb barrier exists @@ -115,11 +116,19 @@ class G4Mars5GeVMechanism :public G4VEvtBiasMechanism void Trans(G4ThreeVector* d1, G4ThreeVector* d2); // Direction cosine transformation using selec2(cs,ss,ch,sh) + G4double GetMaxWeight() const; + G4double GetMinWeight() const; + void SetMaxWeight(G4double); + void SetMinWeight(G4double); + public: enum {FastVectorSize = 16}; typedef G4FastVector G4MarsSecondaryVector; private: + // weight max/min + G4double maxWeight; + G4double minWeight; // information of secondary G4int numberOfSecondaries; @@ -127,10 +136,11 @@ class G4Mars5GeVMechanism :public G4VEvtBiasMechanism G4MarsSecondaryVector secondaries; private: - const G4double EthForIncident; G4bool IsApplicable(G4int marsEncoding) const; private: + // Particle Change + // Particle Table G4ParticleTable* theParticleTable; @@ -143,7 +153,6 @@ class G4Mars5GeVMechanism :public G4VEvtBiasMechanism G4int GetMarsEncoding(const G4ParticleDefinition* )const; const G4String& GetParticleName(G4int marsEncoding) const; G4ParticleDefinition* GetParticleDefinition(G4int marsEncoding) const; - G4double ProtonMass; private: @@ -177,10 +186,30 @@ class G4Mars5GeVMechanism :public G4VEvtBiasMechanism }; #include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" +inline + G4double G4Mars5GeV::GetMaxWeight() const +{ + return maxWeight; +} +inline + G4double G4Mars5GeV::GetMinWeight() const +{ + return minWeight; +} inline - G4int G4Mars5GeVMechanism::GetMarsEncoding(const G4ParticleDefinition* particle) const{ + void G4Mars5GeV::SetMaxWeight(G4double value) +{ + maxWeight = value; +} +inline + void G4Mars5GeV::SetMinWeight(G4double value) +{ + minWeight = value; +} + +inline + G4int G4Mars5GeV::GetMarsEncoding(const G4ParticleDefinition* particle) const{ const G4String& name = particle->GetParticleName(); G4int encoding = MarsUndefined; if (name == "proton") { @@ -222,7 +251,7 @@ inline } inline - const G4String& G4Mars5GeVMechanism::GetParticleName(G4int encoding) const + const G4String& G4Mars5GeV::GetParticleName(G4int encoding) const { static G4String name; name = "None"; @@ -286,7 +315,7 @@ inline } inline - G4ParticleDefinition* G4Mars5GeVMechanism::GetParticleDefinition(G4int encoding) const +G4ParticleDefinition* G4Mars5GeV::GetParticleDefinition(G4int encoding) const { G4String name = GetParticleName(encoding); G4ParticleDefinition* particle = 0; @@ -297,18 +326,11 @@ inline } inline - G4bool G4Mars5GeVMechanism::IsApplicable(G4int marsEncoding) const + G4bool G4Mars5GeV::IsApplicable(G4int marsEncoding) const { return ( ((marsEncoding!=MarsUndefined) && (marsEncoding<=MarsKminus) )|| (marsEncoding==MarsGAM) || (marsEncoding==MarsAP) ); } -inline - G4bool G4Mars5GeVMechanism::IsApplicable(G4ParticleDefinition* particle) const -{ - return IsApplicable(GetMarsEncoding(particle)); -} - #endif - diff --git a/source/track/src/G4Mars5GeVMechanism.cc b/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc similarity index 82% rename from source/track/src/G4Mars5GeVMechanism.cc rename to source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc index 259b521b13..421f4a6db2 100644 --- a/source/track/src/G4Mars5GeVMechanism.cc +++ b/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mars5GeVMechanism.cc,v 1.7 2001/09/19 11:05:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Mars5GeV.cc,v 1.3 2001/12/15 07:07:21 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -31,7 +31,9 @@ // // ------------------------------------------------------------ // First Implemention 17 Nov. 1998 M.Asai, H.Kurahige -// +// +// History: +// modified as hadronic model 28 Oct 2001 N.Kanaya // ------------------------------------------------------------ // This is a Event Biasing mechanism based on MARS code // This model is applicable to @@ -51,46 +53,108 @@ //* //* INCLUSIVE HADRON(photon)-NUCLEUS VERTEX AT E < 5 GEV !!! //* THREE WEIGHTED HADRONS IN FINAL STATE: !!! -//* IP+A -> N/P(CASC)+ PI+/PI-(K+/K-) + PI0 -// +//* IP+A -> N/P(CASC)+ PI+/PI-(K+/K-) + PI0 *// -#include "G4Mars5GeVMechanism.hh" #include "globals.hh" -#include "G4ios.hh" -#include "Randomize.hh" -#include "G4VParticleChange.hh" -#include "G4Material.hh" -#include "G4Track.hh" -#include "G4Step.hh" -//------------------------------------------------------- +#include "G4Mars5GeV.hh" -G4Mars5GeVMechanism::G4Mars5GeVMechanism(const G4String& name): - G4VEvtBiasMechanism(name), - EthForIncident(5.0*GeV) +G4Mars5GeV::G4Mars5GeV() : G4InelasticInteraction(), + maxWeight(1000.0), + minWeight(perMillion) { - theParticleTable = G4ParticleTable::GetParticleTable(); - G4ParticleDefinition* pProton = theParticleTable->FindParticle("proton"); - if(pProton) ProtonMass = pProton->GetPDGMass(); + SetMinEnergy( 1.0*MeV ); + SetMaxEnergy( 5.0*GeV ); - // set some constants - selec3.Eth = 1.0*MeV; -} - -G4Mars5GeVMechanism::G4Mars5GeVMechanism(const G4Mars5GeVMechanism& right): - G4VEvtBiasMechanism(right), - EthForIncident(right.EthForIncident) -{ theParticleTable = G4ParticleTable::GetParticleTable(); - ProtonMass = right.ProtonMass; - // set some constants - selec3.Eth = right.selec3.Eth; + G4ParticleDefinition* pProton = + theParticleTable->FindParticle("proton"); + if(pProton) ProtonMass = pProton->GetPDGMass(); + + // set some constants + selec3.Eth = 1.0*MeV; } -G4Mars5GeVMechanism::~G4Mars5GeVMechanism() +G4VParticleChange* G4Mars5GeV::ApplyYourself(const G4Track& aTrack, + G4Nucleus& targetNucleus + ) { +#ifdef G4VERBOSE + if (GetVerboseLevel() > 2) { + G4cout << " G4Mars5GeV:ApplyYourself" << G4endl; + } +#endif + + theParticleChange.Initialize(aTrack); + + // get the incident particle type + incidentParticle = aTrack.GetDynamicParticle(); + + // get the incident particle energy/momentum + incidentMarsEncoding = GetMarsEncoding(incidentParticle->GetDefinition()); + + // get weight of the parent track + incidentWeight = aTrack.GetWeight(); + + // Atomic and charge number + GetTargetNuclei( aTrack.GetMaterial() ); + + // initialize secondary information + numberOfSecondaries = 0; + secondaries.Initialize(FastVectorSize); + + G4int idx; + + // invoke MARS + Treem5(); + + // create secondaries + // set max. number of secondaries + theParticleChange.SetNumberOfSecondaries(numberOfSecondaries); + // secondary weight is determined by this model + theParticleChange.SetSecondaryWeightByProcess(true); + + for (idx=0; idx maxWeight) { +#ifdef G4VERBOSE + if (GetVerboseLevel() > 0) { + G4cout << "G4Mars5GeV::ApplyYourself : too big secondary weight "; + G4cout << " Weight = " << fweight << G4endl; + secondaries[idx]->DumpInfo(); + } +#endif + } else if (fweight < minWeight) { + // track with small weight is neglected +#ifdef G4VERBOSE + if (GetVerboseLevel() > 2) { + G4cout << "G4Mars5GeV::ApplyYourself : too small secondary weight "; + G4cout << " Weight = " << fweight << G4endl; + secondaries[idx]->DumpInfo(); + } +#endif + } else { + G4Track* track = new G4Track( + secondaries[idx], + aTrack.GetGlobalTime(), + aTrack.GetPosition() + ); + + track->SetWeight(fweight); + theParticleChange.AddSecondary(track); + } + } + // kill incident particle + theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetLocalEnergyDeposit (0.); + + return &theParticleChange; + } + -void G4Mars5GeVMechanism::GetTargetNuclei(const G4Material* material) +void G4Mars5GeV::GetTargetNuclei(const G4Material* material) { // get elements in the actual material, const G4ElementVector* theElementVector = material->GetElementVector(); @@ -98,7 +162,7 @@ void G4Mars5GeVMechanism::GetTargetNuclei(const G4Material* material) const G4int numberOfElements = material->GetNumberOfElements() ; #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::GetTargetNuclei" << G4endl; + G4cout << " G4Mars5GeV::GetTargetNuclei" << G4endl; } #endif @@ -107,14 +171,19 @@ void G4Mars5GeVMechanism::GetTargetNuclei(const G4Material* material) G4double totNumAtoms = 0.0; for (G4int iel=0; iel < numberOfElements; iel +=1) { totNumAtoms += theAtomicNumDensityVector[iel]; - fZNucl += theAtomicNumDensityVector[iel]*((*theElementVector)[iel]->GetZ()); - fANucl += theAtomicNumDensityVector[iel]*((*theElementVector)[iel]->GetN()); + + fZNucl += + theAtomicNumDensityVector[iel]*((*theElementVector)[iel]->GetZ()); + fANucl += + theAtomicNumDensityVector[iel]*((*theElementVector)[iel]->GetN()); + #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { G4cout << iel << ": " << theAtomicNumDensityVector[iel]; - G4cout << " Z=" << (*theElementVector)[iel]->GetZ() << " A=" << (*theElementVector)[iel]->GetN(); + G4cout << " Z=" << (*theElementVector)[iel]->GetZ() << " A=" << + (*theElementVector)[iel]->GetN(); G4cout << G4endl; - } + } #endif } fANucl /= totNumAtoms; @@ -129,14 +198,16 @@ void G4Mars5GeVMechanism::GetTargetNuclei(const G4Material* material) } -void G4Mars5GeVMechanism::Treem5() +void G4Mars5GeV::Treem5() { + + G4double pMass = incidentParticle->GetDefinition()->GetPDGMass(); G4double pE = incidentParticle->GetKineticEnergy(); G4int pType = incidentMarsEncoding; - + #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::Treem5() "; + G4cout << " G4Mars5GeV::Treem5() "; G4cout << " Incident Particle: " << incidentParticle->GetDefinition()->GetParticleName(); G4cout << " : energy = " << pE/GeV << "[GeV]" << G4endl; } @@ -157,29 +228,29 @@ void G4Mars5GeVMechanism::Treem5() } else { ib = pType; } - - + selec1.Einc = pE; if (pE < 0.5*MeV) pE = 0.5*MeV; selec3.Emax = pE; selec3.X = 0.0; selec3.Pt = 0.0; selec3.P = 0.0; - + // Nucleons at E < 5GeV CreateNucleon(ib, pType, pE); - + // Pion+- or Kaon+- at E < 5GeV CreatePion(ib, pType, pE); - + // Pi0 at E < 5GeV CreatePionZero(ib, pType, pE); } -G4bool G4Mars5GeVMechanism::CoulombBarrier(G4int pType, G4double pE){ +G4bool G4Mars5GeV::CoulombBarrier(G4int pType, G4double pE){ static const G4double EthCoulombBarrier = 20.0* MeV; static const G4double AvCoulomb = 1.11*MeV; static const G4double RCoulombTh = 1.0e-5; + // CoulombBarrier if ( ( pType == MarsP) || ( pType ==MarsPIplus) || ( pType ==MarsKplus) ) { if ( ( pE < EthCoulombBarrier ) && (fANucl >=1.5) ) { @@ -200,14 +271,14 @@ G4bool G4Mars5GeVMechanism::CoulombBarrier(G4int pType, G4double pE){ return false; } -void G4Mars5GeVMechanism::CreateNucleon(G4int ib, G4int pType, G4double pE) +void G4Mars5GeV::CreateNucleon(G4int ib, G4int pType, G4double pE) { #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::CreateNucleon()" << G4endl; + G4cout << " G4Mars5GeV::CreateNucleon()" << G4endl; } #endif - if ( pType == MarsGAM) { + if ( pType == MarsGAM) { selec1.Treac = MarsPIplus; selec1.Tprod = MarsN; selec1.V10 = 2.5; @@ -232,28 +303,29 @@ void G4Mars5GeVMechanism::CreateNucleon(G4int ib, G4int pType, G4double pE) } else { selec1.Tprod = MarsP; } - selec1.V10 = 2.0; - } + selec1.V10 = 2.0; + } if ( SelBS(pType, fANucl, fZNucl) >0.0 ) AddSecondary(); - + } -void G4Mars5GeVMechanism::CreatePion(G4int ib, G4int pType, G4double pE) +void G4Mars5GeV::CreatePion(G4int ib, G4int pType, G4double pE) { #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::CreatePion()" << G4endl; + G4cout << " G4Mars5GeV::CreatePion()" << G4endl; } #endif static const G4double PionProductionEth = 0.28*GeV; - + static const G4double KaonProductionEth = 2.0*GeV; + if ( pEGetPDGMass(); } selec1.Einc = pE; - + if ( ib == MarsP ) { selec1.Treac = MarsP; } else if ( ib == MarsN ) { @@ -277,7 +349,7 @@ void G4Mars5GeVMechanism::CreatePion(G4int ib, G4int pType, G4double pE) selec1.V10 = 2.1; if ( SelBS(pType, fANucl, fZNucl) >0.0 ){ // change secondary into Kaon - if ( pE > PionProductionEth ) { + if ( pE > KaonProductionEth ) { if ( Rkaon(ib,selec1.Tprod,pE) > G4UniformRand()) { if (selec1.Tprod==MarsPIminus) { selec1.Tprod=MarsKminus; @@ -290,11 +362,11 @@ void G4Mars5GeVMechanism::CreatePion(G4int ib, G4int pType, G4double pE) } } -void G4Mars5GeVMechanism::CreatePionZero(G4int ib, G4int pType, G4double pE) +void G4Mars5GeV::CreatePionZero(G4int ib, G4int pType, G4double pE) { #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::CreatePionZero()" << G4endl; + G4cout << " G4Mars5GeV::CreatePionZero()" << G4endl; } #endif static const G4double PionProductionEth = 0.28*GeV; @@ -326,11 +398,11 @@ void G4Mars5GeVMechanism::CreatePionZero(G4int ib, G4int pType, G4double pE) } } -void G4Mars5GeVMechanism::AddSecondary() +void G4Mars5GeV::AddSecondary() { #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::AddSecondary()" << G4endl; + G4cout << " G4Mars5GeV::AddSecondary()" << G4endl; G4cout << " Particle :" << selec1.Tprod; G4cout << ":" << GetParticleName(selec1.Tprod) <GetMomentumDirection(); G4ThreeVector pout; - Trans(&pin, &pout); + Trans(&pin, &pout); if (numberOfSecondaries>=FastVectorSize) { - G4Exception(" G4Mars5GeVMechanism::AddSecondary() too many secondaries"); + G4Exception(" G4Mars5GeV::AddSecondary() too many secondaries"); } // create seconday Dynamic Particle @@ -361,12 +433,13 @@ void G4Mars5GeVMechanism::AddSecondary() pout.unit(), selec1.EN); // add secondary into list + secondaries.SetElement(numberOfSecondaries, secondary); weightOfSecondaries[numberOfSecondaries] = selec1.V * incidentWeight; numberOfSecondaries +=1; } -G4double G4Mars5GeVMechanism::SelBS(G4int pType, G4double aNucl, G4double zNucl) +G4double G4Mars5GeV::SelBS(G4int pType, G4double aNucl, G4double zNucl) { static const G4double Atau= 0.2; static const G4double Btau= 0.5*GeV; @@ -378,10 +451,10 @@ G4double G4Mars5GeVMechanism::SelBS(G4int pType, G4double aNucl, G4double zNucl) G4double e0 = selec1.Einc; G4double en; G4double v2 = 0.0; - + #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::SelBS" << G4endl; + G4cout << " G4Mars5GeV::SelBS" << G4endl; G4cout << " pType = " << pType << " e0 = " << e0 << G4endl; G4cout << " aNucl = " << aNucl << " zNucl = " << zNucl << G4endl; G4cout << " Treac = " < 2) { G4cout << "selec1.EN = " << en << G4endl; @@ -431,13 +504,13 @@ G4double G4Mars5GeVMechanism::SelBS(G4int pType, G4double aNucl, G4double zNucl) } // calculate direction cosine - G4double tau = en/Atau/e0*(Btau+e0); + G4double tau = en/Atau/e0*(Btau+e0)/GeV; G4double c5 = 1.0-exp(-pi*tau); G4double c4 = 1.0-g2*c5; G4double t1 = -log(c4)/tau; G4double rcs = cos(t1); G4double rss = sqrt(1.0-rcs*rcs); - G4double da = 2.0*pi*rss*c5/(tau+c4); + G4double da = 2.0*pi*rss*c5/(tau*c4); selec2.Cs = rcs; selec2.Ss = rss; @@ -484,7 +557,7 @@ G4double G4Mars5GeVMechanism::SelBS(G4int pType, G4double aNucl, G4double zNucl) } -G4double G4Mars5GeVMechanism::D2N2(G4int pType, G4double incidentE, +G4double G4Mars5GeV::D2N2(G4int pType, G4double incidentE, G4double prodE, G4double tin, G4int reacType, G4int proType, G4double ai, G4double z) @@ -712,17 +785,17 @@ G4double G4Mars5GeVMechanism::D2N2(G4int pType, G4double incidentE, if(i==4) i = 1; G4bool condA = a<2. && i==2; G4bool condB = a<2.; - - G4double pr =0.; + G4double az; + G4double pn; + G4double pr; if(!condB) { - G4double az; if(i==2) { az = (z+1.)/(a-z); } else { az = (a+1.-z)/z; } x1 = 0.5*e1ge; - G4double pn = az; + pn = az; if(x1<60.) pn *= 1. + exp(-x1); if(i==j) { pr = bn*pn/(1.+pn); } @@ -731,9 +804,8 @@ G4double G4Mars5GeVMechanism::D2N2(G4int pType, G4double incidentE, } if(condA || !condB) { - G4double az; if(i==1) az = z/(a-z); - else az = (a-z)/z; + if(i==2) az = (a-z)/z; G4double bp = 1.0; G4double e0g = e1ge*e2ge; if(e0g<60.) bp -= 0.5*exp(-e0g); @@ -830,7 +902,7 @@ G4double G4Mars5GeVMechanism::D2N2(G4int pType, G4double incidentE, } -G4double G4Mars5GeVMechanism::Rkaon(G4int ib, G4int jp, G4double eRaw) +G4double G4Mars5GeV::Rkaon(G4int ib, G4int jp, G4double eRaw) { // Energy dependent K/pi ratio // Parametrizations are valid for energy range of @@ -887,12 +959,12 @@ G4double G4Mars5GeVMechanism::Rkaon(G4int ib, G4int jp, G4double eRaw) return rK; } -void G4Mars5GeVMechanism::Trans(G4ThreeVector* d1,G4ThreeVector* d2) +void G4Mars5GeV::Trans(G4ThreeVector* d1,G4ThreeVector* d2) { #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::Trans() " << G4endl; + G4cout << " G4Mars5GeV::Trans() " << G4endl; } #endif // Direction cosine transformation @@ -928,74 +1000,3 @@ void G4Mars5GeVMechanism::Trans(G4ThreeVector* d1,G4ThreeVector* d2) d2->setZ(uuu/den); return; } - - -G4VParticleChange* G4Mars5GeVMechanism::ApplyMath( - G4VParticleChange* pVPChange, - const G4Step& aStep ) -{ - G4VParticleChange* pChange = (pVPChange); -#ifdef G4VERBOSE - if (GetVerboseLevel() > 2) { - G4cout << " G4Mars5GeVMechanism::ApplyMath" << G4endl; - } -#endif - G4Track* incidentTrack = aStep.GetTrack(); - incidentParticle = incidentTrack->GetDynamicParticle(); - incidentWeight = pChange->GetParentWeight(); - - // check incident energy below this model is active - if (incidentParticle->GetKineticEnergy() > EthForIncident) return pChange; - if (incidentParticle->GetKineticEnergy() < 1.0*MeV) return pChange; - // check the incident particle type - incidentMarsEncoding = GetMarsEncoding(incidentParticle->GetDefinition()); - if ( !IsApplicable(incidentMarsEncoding) ) return pChange; -#ifdef G4VERBOSE - if (GetVerboseLevel() > 2) { - G4cout << " OK the particle is applicable" << G4endl; - } -#endif - - // examine whether the current process is "hadronic interaction" - // by checking secondaries - G4int idx; - G4bool flag = false; - for (idx=0; (!flag) && (idxGetNumberOfSecondaries()); idx+=1){ - G4String type = pChange->GetSecondary(idx)->GetDefinition()->GetParticleType(); - flag |= (type=="baryon")||(type=="nucleus")||(type=="meson"); - } - if (!flag) return pChange; - - // Atomic and charge number - GetTargetNuclei( incidentTrack->GetMaterial() ); - - // initialize secondary information - numberOfSecondaries = 0; - secondaries.Initialize(FastVectorSize); - - // clean up ParticleChange - for (idx=0; idxGetNumberOfSecondaries(); idx+=1){ - delete pChange->GetSecondary(idx); - } - pChange->Clear(); - - // invoke MARS - Treem5(); - - // - pChange->SetNumberOfSecondaries(numberOfSecondaries); - G4Track* track; - for (idx=0; idxGetGlobalTime(), - incidentTrack->GetPosition() - ); - track->SetWeight( weightOfSecondaries[idx] ); - pChange->AddSecondary(track); - } - pChange->SetStatusChange(fStopAndKill); - pChange->SetLocalEnergyDeposit (0.); - return pChange; -} - diff --git a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh index 77ed59ddef..e7c1478af2 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh @@ -22,7 +22,7 @@ // // // $Id: G4LCapture.hh,v 1.7 2001/08/01 17:10:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 c6bb7a3d09..ddb2f07140 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAlphaInelastic.hh,v 1.5 2001/08/01 17:10:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy Alpha Inelastic Process // J.L. Chuma, TRIUMF, 21-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh index 1eb20259d3..8baca4e272 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiLambdaInelastic.hh,v 1.5 2001/08/01 17:10:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 eb9aa234a6..e81d294aef 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiNeutronInelastic.hh,v 1.5 2001/08/01 17:10:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 29f2d2a845..f6ac06bd3c 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiOmegaMinusInelastic.hh,v 1.5 2001/08/01 17:10:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 bd8c229904..4586e210eb 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiProtonInelastic.hh,v 1.5 2001/08/01 17:10:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 2b788bccbb..e9823cb353 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaMinusInelastic.hh,v 1.5 2001/08/01 17:10:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b480ad9e4e..2b2b1fb82f 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaPlusInelastic.hh,v 1.5 2001/08/01 17:10:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 21ebaa45aa..5c8f31b5f7 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiMinusInelastic.hh,v 1.5 2001/08/01 17:10:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 85ca490869..eeaa2add5f 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiZeroInelastic.hh,v 1.5 2001/08/01 17:10:47 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 7c031b3750..5960c58bef 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEDeuteronInelastic.hh,v 1.5 2001/08/01 17:10:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 6d00db59c7..7eda5a8b51 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonMinusInelastic.hh,v 1.5 2001/08/01 17:10:49 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 ab68bba7c4..fce2502757 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonPlusInelastic.hh,v 1.5 2001/08/01 17:10:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh index a136fca6fc..4777739942 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroLInelastic.hh,v 1.5 2001/08/01 17:10:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy KaonZeroL Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh index 05e42361ba..c5de7e0f76 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroSInelastic.hh,v 1.5 2001/08/01 17:10:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy KaonZeroS Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh index 226f939885..a45338606c 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LELambdaInelastic.hh,v 1.5 2001/08/01 17:10:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 04cdc2627f..a2ed064da6 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh @@ -42,7 +42,7 @@ G4LENeutronInelastic() : G4InelasticInteraction() { SetMinEnergy( 0.0 ); - SetMaxEnergy( 25.*GeV ); + SetMaxEnergy( 55.*GeV ); } ~G4LENeutronInelastic() diff --git a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh index cde6b37df3..6ea8825762 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEOmegaMinusInelastic.hh,v 1.5 2001/08/01 17:10:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 68add0c45c..4e329ff557 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEPionMinusInelastic.hh,v 1.5 2001/08/01 17:10:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LEPionMinusInelastic.hh,v 1.6 2002/06/13 07:14:04 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy PionMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 @@ -47,7 +47,7 @@ G4LEPionMinusInelastic() : G4InelasticInteraction() { SetMinEnergy( 0.0 ); - SetMaxEnergy( 25.*GeV ); + SetMaxEnergy( 55.*GeV ); } ~G4LEPionMinusInelastic() { } diff --git a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh index 8a0d7c8de3..a1711db1cb 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEPionPlusInelastic.hh,v 1.5 2001/08/01 17:10:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LEPionPlusInelastic.hh,v 1.6 2002/06/13 07:14:04 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 @@ -47,7 +47,7 @@ G4LEPionPlusInelastic() : G4InelasticInteraction() { SetMinEnergy( 0.0 ); - SetMaxEnergy( 25.*GeV ); + SetMaxEnergy( 55.*GeV ); } ~G4LEPionPlusInelastic() { } diff --git a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh index 83c8005cda..b6859b947b 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEProtonInelastic.hh,v 1.5 2001/08/01 17:10:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LEProtonInelastic.hh,v 1.6 2002/06/13 07:14:04 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy Proton Inelastic Process // original by H.P. Wellisch @@ -49,7 +49,7 @@ G4LEProtonInelastic() : G4InelasticInteraction() { SetMinEnergy( 0.0 ); - SetMaxEnergy( 25.*GeV ); + SetMaxEnergy( 55.*GeV ); } ~G4LEProtonInelastic() diff --git a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh index ff9991d5c8..798e503cd8 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaMinusInelastic.hh,v 1.5 2001/08/01 17:10:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 1873290f41..92f02e3e5b 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaPlusInelastic.hh,v 1.5 2001/08/01 17:10:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0c87b7ab9a..35bdda864c 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LETritonInelastic.hh,v 1.5 2001/08/01 17:10:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 79ab8635a7..adc2be0279 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEXiMinusInelastic.hh,v 1.5 2001/08/01 17:10:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 4354849973..6008007e72 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEXiZeroInelastic.hh,v 1.5 2001/08/01 17:10:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 57ebebca47..8ceceb9e3e 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LElastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LElastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LElastic.hh,v 1.7 2001/08/01 17:10:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 c613b72eca..ffcbd6ef65 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LFission.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LFission.hh @@ -22,7 +22,7 @@ // // // $Id: G4LFission.hh,v 1.7 2001/08/01 17:10:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 ff358d2901..a2b5aa9689 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LCapture.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LCapture.cc @@ -22,7 +22,7 @@ // // // $Id: G4LCapture.cc,v 1.7 2001/10/05 16:11:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4 Model: Low-energy Neutron Capture diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc index 93c22aa912..5f9247170a 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiLambdaInelastic.cc,v 1.4 2001/08/01 17:10:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 e8ee1d54db..a2b6fc006d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiNeutronInelastic.cc,v 1.6 2001/10/05 16:11:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LEAntiNeutronInelastic.cc,v 1.7 2002/06/17 11:34:49 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 @@ -529,6 +529,7 @@ currentParticle.SetMass( 0.0 ); targetParticle.SetMass( 0.0 ); } + while(np+nm+nz<3) nz++; SetUpPions( np, nm, nz, vec, vecLen ); return; } diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc index a0ca7a71e4..fcb2d948a4 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiOmegaMinusInelastic.cc,v 1.5 2001/10/05 16:11:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 4ac8c0eae2..a797dcae7b 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiProtonInelastic.cc,v 1.6 2001/10/05 16:11:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LEAntiProtonInelastic.cc,v 1.7 2002/06/17 11:34:49 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 13-Feb-1997 @@ -531,6 +531,7 @@ currentParticle.SetMass( 0.0 ); targetParticle.SetMass( 0.0 ); } + while(np+nm+nz<3) nz++; SetUpPions( np, nm, nz, vec, vecLen ); return; } diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc index 116c88a234..05e02d1145 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaMinusInelastic.cc,v 1.4 2001/08/01 17:11:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 e1d6826acb..ddcbf95835 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaPlusInelastic.cc,v 1.4 2001/08/01 17:11:03 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 c2850817aa..badeb37781 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiMinusInelastic.cc,v 1.4 2001/08/01 17:11:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 45aeea8850..04977951dc 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiZeroInelastic.cc,v 1.4 2001/08/01 17:11:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc index 7956a4448d..ce91d986f3 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonMinusInelastic.cc,v 1.7 2001/10/05 16:11:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4LEKaonMinusInelastic.cc,v 1.8 2002/06/07 15:30:55 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 @@ -158,7 +158,7 @@ static G4double protmul[numMul], protnorm[numSec]; // proton constants static G4double neutmul[numMul], neutnorm[numSec]; // neutron constants // np = number of pi+, nm = number of pi-, nz = number of pi0 - G4int nt, np, nm, nz; + G4int nt(0), np(0), nm(0), nz(0); const G4double c = 1.25; const G4double b[] = { 0.70, 0.70 }; if( first ) // compute normalization constants, this will only be Done once diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc index 5de2f091d3..5b1b86464e 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonPlusInelastic.cc,v 1.6 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroLInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroLInelastic.cc index f36c1c7b26..c91233c08a 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroLInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroLInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroLInelastic.cc,v 1.7 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy KaonZeroLong Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroSInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroSInelastic.cc index d9a6a7c25f..21dfb8d30f 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroSInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroSInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroSInelastic.cc,v 1.5 2001/08/01 17:11:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Low Energy KaonZeroShort Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc index f94850bb50..33ee782ea8 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LELambdaInelastic.cc,v 1.4 2001/08/01 17:11:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc index 07c76b86a2..77df13e50f 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEOmegaMinusInelastic.cc,v 1.5 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc index 75f85285b2..a3584d3f3f 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEPionPlusInelastic.cc,v 1.6 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 diff --git a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc index 01650084e2..7e9d45edd3 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaMinusInelastic.cc,v 1.4 2001/08/01 17:11:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 94a7bc0e29..b3de698b98 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaPlusInelastic.cc,v 1.4 2001/08/01 17:11:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: SigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc index 171e5b249b..d931909e86 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEXiMinusInelastic.cc,v 1.4 2001/08/01 17:11:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 072cea7e09..d36bf224d7 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEXiZeroInelastic.cc,v 1.4 2001/08/01 17:11:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 08bce43194..de5a64c106 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LElastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LElastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LElastic.cc,v 1.6 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 f62f991da6..e1eed6a0bb 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LFission.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LFission.cc @@ -22,7 +22,7 @@ // // // $Id: G4LFission.cc,v 1.8 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 097c659534..5e93aa55fc 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh @@ -22,7 +22,7 @@ // // // $Id: G4InterpolationIterator.hh,v 1.5 2001/07/26 09:27:49 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 2411dd1539..20ea1135ed 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4InterpolationManager.hh,v 1.7 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 3b3e08d375..c370bcd918 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh @@ -22,7 +22,7 @@ // // // $Id: G4InterpolationScheme.hh,v 1.4 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 284eda0798..2bbaeb5e0b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2AInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 54e9967775..2f0590ea0f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2N2AInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 17c9a84e48..d38dc2daa2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NAInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 90c9ffc4a7..6fc25ee027 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NDInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 b959a47296..e34ef21c72 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 f1bd0b702d..cad1a2bb00 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NPInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ac1aab54d3..9ea48e0210 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2PInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 27b33cd695..0bbd8f23d6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3AInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 75527e482b..0b2c7ef3dc 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3NAInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ad3dbc5172..28046982d5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3NInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 b004eb931c..b32df5a1b0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3NPInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 baa03f95e1..f9c097d713 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP4NInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 e0a5200f6c..7e0b1e9abd 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPAInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 5992c1146a..36042d9118 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPAngular.hh,v 1.6 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 8e664ee541..aab3a6724e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPAngularP.hh,v 1.6 2001/07/26 09:27:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ccf353e951..ebbfa504ac 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPArbitaryTab.hh,v 1.7 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 9ea08380a0..a49cc2998c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPCapture.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 d775607392..c2693dcab2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPCaptureData.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 f11a863ad8..46de27e136 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPCaptureFS.hh,v 1.7 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 beb21a438d..9aa8bf4b6a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPChannel.hh,v 1.8 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0e22926c4c..4000939a32 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPChannelList.hh,v 1.5 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 2f9add8283..dcb6240e95 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPContAngularPar.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 c9844f57d8..e477bf82ff 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPContEnergyAngular.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 6aafaff80d..0a40c318bc 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPD2AInelasticFS.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 0f46b4a4e3..e34652ec84 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDAInelasticFS.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 941c2d13a4..a9975f002f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDInelasticFS.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 08fb694558..2861f93891 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPData.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b5dbac7e62..52b5ed0560 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDataPoint.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4NeutronHPDataPoint_h #define G4NeutronHPDataPoint_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh index 2401121c33..08a88a4990 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDeExGammas.hh,v 1.7 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 5c74a37fe4..e7956d09e2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDiscreteTwoBody.hh,v 1.6 2001/07/26 09:27:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 7d4451550f..f9cc8e53a2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElastic.hh,v 1.5 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 ed1d2e796d..cbc9d38a82 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElasticData.hh,v 1.6 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 3b5e352b31..9e99eec8e0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElasticFS.hh,v 1.5 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 2e0a86f308..7cc6f2b2dd 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElementData.hh,v 1.5 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 7432691e31..c63febf956 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPEnAngCorrelation.hh,v 1.6 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 0ceb5aef2c..8500547b96 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPEnergyDistribution.hh,v 1.6 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ef6300974b..73ff3f96fb 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPEvapSpectrum.hh,v 1.6 2001/07/26 09:27:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 a34aaf2385..3e984f705e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFCFissionFS.hh,v 1.5 2001/07/26 09:27:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 7d0c6c525f..fb0f555300 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFSFissionFS.hh,v 1.5 2001/07/26 09:27:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 839b0fffb5..4660428bd8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFastLegendre.hh,v 1.8 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 f3b45b4a1e..966d915de2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPField.hh,v 1.5 2001/07/26 09:27:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 a1808591f4..27ff6c18b7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFieldPoint.hh,v 1.5 2001/07/26 09:27:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ae8258a963..379fdbbb82 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFinalState.hh,v 1.6 2001/07/26 09:27:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 09a34d916c..33295b0cc5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFission.hh,v 1.5 2001/07/26 09:28:00 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 6d5243a000..91f5afef29 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionBaseFS.hh,v 1.6 2001/07/26 09:28:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 01f28d4638..55be037677 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionData.hh,v 1.6 2001/07/26 09:28:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 6efe6887ff..5b90ac0fcd 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionERelease.hh,v 1.6 2001/07/26 09:28:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 340ba8227d..5618554840 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionFS.hh,v 1.5 2001/07/26 09:28:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 7724d4b854..f5a1ec2f07 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionSpectrum.hh,v 1.6 2001/07/26 09:28:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 5fe2d65311..7c2a1eb42a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPGamma.hh,v 1.8 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4NeutronHPGamma_h #define G4NeutronHPGamma_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh index 60ea2c241d..73e2c622f8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPHe3InelasticFS.hh,v 1.5 2001/07/26 09:28:03 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 80bb99be25..151b942ca4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelastic.hh,v 1.5 2001/07/26 09:28:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 9b4ebf737a..321c9be52e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelasticBaseFS.hh,v 1.6 2001/07/26 09:28:05 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 77243bacde..623fca137e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelasticCompFS.hh,v 1.7 2001/07/26 09:28:05 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 bd4aa1ad45..9a24c95d54 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelasticData.hh,v 1.6 2001/07/26 09:28:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 cb31e669f7..a751bd30cb 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPInterpolator.hh,v 1.7 2001/07/26 09:28:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4NeutronHPInterpolator.hh,v 1.8 2002/06/07 15:30:56 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4NeutronHPInterpolator_h #define G4NeutronHPInterpolator_h 1 @@ -79,7 +79,7 @@ inline G4double G4NeutronHPInterpolator:: Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const { - G4double result; + G4double result(0); G4int theScheme = aScheme; theScheme = theScheme%CSTART; switch(theScheme) diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh index 2a64f7afb9..3d7cc5bda4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPIsoData.hh,v 1.9 2001/07/26 09:28:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 fd56f2ae07..96a5fe6ef1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPIsotropic.hh,v 1.6 2001/07/26 09:28:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 f159dccb4d..9794dfc47a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPKallbachMannSyst.hh,v 1.5 2001/07/26 09:28:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 2db5c6462a..82971ad92f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLCFissionFS.hh,v 1.5 2001/07/26 09:28:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 f39bc56b36..5cf99a1004 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLabAngularEnergy.hh,v 1.6 2001/07/26 09:28:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 aa569de634..21fd3d5f6a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLegendreStore.hh,v 1.6 2001/07/26 09:28:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 ecd7854d88..5bfd12b850 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLegendreTable.hh,v 1.6 2001/07/26 09:28:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 83489b536b..fefcea0f6f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLevel.hh,v 1.6 2001/07/26 09:28:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4NeutronHPLevel_h #define G4NeutronHPLevel_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh index 700a3088a5..87a9cd458f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPMadlandNixSpectrum.hh,v 1.6 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 a488b3d72d..9e941f39db 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPN2AInelasticFS.hh,v 1.5 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 8906bf98f6..04cb2da6d8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPN2PInelasticFS.hh,v 1.5 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 f2caa07c2c..cd69e1a1ac 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPN3AInelasticFS.hh,v 1.5 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 e22e7fb791..e728b8aa2f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNAInelasticFS.hh,v 1.5 2001/07/26 09:28:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 09a2802ccc..2dff025d0d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNBodyPhaseSpace.hh,v 1.6 2001/07/26 09:28:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4NeutronHPNBodyPhaseSpace_h #define G4NeutronHPNBodyPhaseSpace_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh index aaf83cc0c6..a0fba58045 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPND2AInelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 fe88fad11c..a3853ee30b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNDInelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 b863779f0d..6fe636a400 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNHe3InelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 973426cd03..16e6e92dd2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNInelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 1c1c9eecd5..4184442596 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNPAInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 8f8c000e87..6df14d2a49 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNPInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 abd9cceb26..6f32fbde65 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNT2AInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 65ce36beef..3c4cf36a95 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNTInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 684863b334..3039cd15da 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNXInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 373a7a39d8..b0e39b0aab 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNames.hh,v 1.9 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 fa7d0520f2..a3dd08e7d2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNeutronYield.hh,v 1.6 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 835584ff6c..5f30294a03 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPAInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 b453ed5022..ba1f7274f5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPDInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 d0cc465bc9..cad003a5f7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 e793adccf5..2cbc914291 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPTInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 cb0b6847dc..d1a15a2126 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPartial.hh,v 1.7 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 5aded81065..a07884c768 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPhotonDist.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a66ad86a86..fbf4ca2c38 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPhotonXSection.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 cd309c4c4a..b6befce06a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPolynomExpansion.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 4c7fdfd6f4..d86d402a96 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPProduct.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 3bb73b874d..e2f4d72da3 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPSCFissionFS.hh,v 1.5 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 3fcf66819a..262fc3120e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPSimpleEvapSpectrum.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 726bd2e385..253ca2cae7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPT2AInelasticFS.hh,v 1.5 2001/07/26 09:28:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 6648c0e4a8..10419b720d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPTCFissionFS.hh,v 1.5 2001/07/26 09:28:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 e8cf018149..c06ab0745d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPTInelasticFS.hh,v 1.5 2001/07/26 09:28:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 5995766a11..21d961da85 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh @@ -58,7 +58,7 @@ public: G4Nucleus aNuc; G4double eps = 0.0001; G4double eleMass; - eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(theZ+eps, theA+eps)- + eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theZ+eps), static_cast(theA+eps))- theZ*G4Electron::ElectronDefinition()->GetPDGMass() ) / G4Neutron::Neutron()->GetPDGMass(); diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh index e6b6a4ce9f..c10d9d609b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPWattSpectrum.hh,v 1.6 2001/07/26 09:28:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 2bfdc172f8..114bfc81ec 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh @@ -22,7 +22,7 @@ // // // $Id: G4VNeutronHPEDis.hh,v 1.6 2001/07/26 09:28:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 0ef729cebd..ef381862c8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh @@ -22,7 +22,7 @@ // // // $Id: G4VNeutronHPEnergyAngular.hh,v 1.6 2001/07/26 09:28:22 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 55a29ab3b3..cf48836305 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc @@ -28,7 +28,7 @@ G4InterpolationScheme G4InterpolationManager::MakeScheme(G4int it) { - G4InterpolationScheme result; + G4InterpolationScheme result(LINLIN); switch(it) { case 1: diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPArbitaryTab.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPArbitaryTab.cc index da4c07bbad..a693959d6c 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPArbitaryTab.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPArbitaryTab.cc @@ -34,7 +34,7 @@ { if(anEnergyGetN(); G4double theZ = anE->GetZ(); G4double eleMass; - eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(theZ+eps, theA+eps)- + eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theZ+eps), static_cast(theA+eps))- theZ*G4Electron::ElectronDefinition()->GetPDGMass() ) / G4Neutron::Neutron()->GetPDGMass(); @@ -116,9 +116,9 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) boosted.Lorentz(theNeutron, aThermalNuc); G4double theEkin = boosted.GetKineticEnergy(); aXsection = (*((*theCrossSections)(index))).GetValue(theEkin, outOfRange); - // velocity correction. + // velocity correction, or luminosity factor... G4ThreeVector targetVelocity = 1./aThermalNuc.GetMass()*aThermalNuc.GetMomentum(); - aXsection *= (targetVelocity+neutronVelocity).mag()/neutronVMag; + aXsection *= (targetVelocity-neutronVelocity).mag()/neutronVMag; result += aXsection; } size += size; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc index 438042117e..dbaa72b08d 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc @@ -50,7 +50,7 @@ G4Nucleus aNucleus; G4double eps = 0.0001; if(targetMass<500*MeV) - targetMass = ( G4NucleiPropertiesTable::GetAtomicMass(theBaseZ+eps, theBaseA+eps)- + targetMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theBaseZ+eps), static_cast(theBaseA+eps))- theBaseZ* G4Electron::Electron()->GetPDGMass() ) / G4Neutron::Neutron()->GetPDGMass(); G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); @@ -72,7 +72,7 @@ { G4ThreeVector aCMSMomentum = theNeutron.GetMomentum()+theTarget.GetMomentum(); G4LorentzVector p4(aCMSMomentum, theTarget.GetTotalEnergy() + theNeutron.GetTotalEnergy()); - G4Fragment nucleus(theBaseA+1, theBaseZ ,p4); + G4Fragment nucleus(static_cast(theBaseA+1), static_cast(theBaseZ) ,p4); G4PhotonEvaporation photonEvaporation; G4FragmentVector* products = photonEvaporation.BreakItUp(nucleus); G4FragmentVector::iterator i; @@ -84,7 +84,7 @@ G4ParticleTable* theTable = G4ParticleTable::GetParticleTable(); if((*i)->GetMomentum().mag() > 10*MeV) theOne->SetDefinition( - theTable->FindIon(theBaseZ, theBaseA+1, 0, theBaseZ) ); + theTable->FindIon(static_cast(theBaseZ), static_cast(theBaseA+1), 0, static_cast(theBaseZ)) ); theOne->SetMomentum( (*i)->GetMomentum().vect() ) ; theOne->SetTotalEnergy( (*i)->GetMomentum().t() ); thePhotons->push_back(theOne); @@ -112,7 +112,7 @@ { G4DynamicParticle * theOne = new G4DynamicParticle; G4ParticleDefinition * aRecoil = G4ParticleTable::GetParticleTable() - ->FindIon(theBaseZ, theBaseA+1, 0, theBaseZ); + ->FindIon(static_cast(theBaseZ), static_cast(theBaseA+1), 0, static_cast(theBaseZ)); theOne->SetDefinition(aRecoil); // Now energy; // Can be done slightly better @ @@ -151,7 +151,7 @@ { G4String tString = "/FS/"; G4bool dbool; - G4NeutronHPDataUsed aFile = theNames.GetName(A, Z, dirName, tString, dbool); + G4NeutronHPDataUsed aFile = theNames.GetName(static_cast(A), static_cast(Z), dirName, tString, dbool); G4String filename = aFile.GetName(); theBaseA = A; theBaseZ = G4int(Z+.5); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc index 6e1722f308..044f2adf46 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc @@ -66,7 +66,7 @@ G4NeutronHPThermalBoost aThermalE; G4int i, ii; // decide on the isotope - G4int numberOfIsos; + G4int numberOfIsos(0); for(ii=0; iiGetNiso(); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc index df6eebdd7c..c42f21994b 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc @@ -94,10 +94,10 @@ { result->SetDefinition(G4ParticleTable::GetParticleTable()->FindIon(Z,A,0,Z)); } - G4int i; - G4int it; - G4double fsEnergy; - G4double cosTh; + G4int i(0); + G4int it(0); + G4double fsEnergy(0); + G4double cosTh(0); if(angularRep==1) { G4double random = G4UniformRand(); @@ -205,7 +205,7 @@ // cash the mean energy in this distribution currentMeanEnergy = weighted/running[nEnergies-1]; - G4int it; + G4int it(0); G4double randkal = G4UniformRand(); for(i=0; iGetN(); G4double theZ = anE->GetZ(); G4double eleMass; - eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(theZ+eps, theA+eps)- + eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theZ+eps), static_cast(theA+eps))- theZ*G4Electron::ElectronDefinition()->GetPDGMass() ) / G4Neutron::Neutron()->GetPDGMass(); @@ -121,7 +121,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) aXsection = (*((*theCrossSections)(index))).GetValue(theEkin, outOfRange); // velocity correction. G4ThreeVector targetVelocity = 1./aThermalNuc.GetMass()*aThermalNuc.GetMomentum(); - aXsection *= (targetVelocity+neutronVelocity).mag()/neutronVMag; + aXsection *= (targetVelocity-neutronVelocity).mag()/neutronVMag; result += aXsection; } size += size; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc index 3fbcb302ef..5ba496e8ef 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc @@ -40,7 +40,7 @@ { G4String tString = "/FS/"; G4bool dbool; - G4NeutronHPDataUsed aFile = theNames.GetName(A, Z, dirName, tString, dbool); + G4NeutronHPDataUsed aFile = theNames.GetName(static_cast(A), static_cast(Z), dirName, tString, dbool); G4String filename = aFile.GetName(); theBaseA = aFile.GetA(); theBaseZ = aFile.GetZ(); @@ -274,7 +274,8 @@ } else { - theRecoil->SetDefinition(G4ParticleTable::GetParticleTable()->FindIon(theBaseZ, theBaseA, 0, theBaseZ)); + theRecoil->SetDefinition(G4ParticleTable::GetParticleTable() + ->FindIon(static_cast(theBaseZ), static_cast(theBaseA), 0, static_cast(theBaseZ))); } theRecoil->SetMomentum(theTarget.GetMomentum()); theResult.SetNumberOfSecondaries(1); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc index c7e399346a..ae47586d28 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc @@ -49,7 +49,7 @@ { G4int count = theElement->GetNumberOfIsotopes(); if(count == 0) count += - theStableOnes.GetNumberOfIsotopes(theElement->GetZ()); + theStableOnes.GetNumberOfIsotopes(static_cast(theElement->GetZ())); theIsotopeWiseData = new G4NeutronHPIsoData[count]; // filename = ein data-set je isotope. count = 0; @@ -70,7 +70,7 @@ G4int first = theStableOnes.GetFirstIsotope(Z); // G4cout <<"first="<GetZ())<GetZ()); + i1(theElement->GetZ()) ); i1++) { // G4cout <<" Init: theStableOnes in the loop"<(A), static_cast(Z), dirName, tString, dbool); G4String filename = aFile.GetName(); if(!dbool) { diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc index bc728097b4..56a4d65594 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc @@ -39,7 +39,7 @@ { G4String tString = dirName; G4bool dbool; - G4NeutronHPDataUsed aFile = theNames.GetName(A, Z, tString, bit, dbool); + G4NeutronHPDataUsed aFile = theNames.GetName(static_cast(A), static_cast(Z), tString, bit, dbool); G4String filename = aFile.GetName(); theBaseA = aFile.GetA(); theBaseZ = aFile.GetZ(); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc index d68d79f1b0..7be3e1ff63 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc @@ -95,7 +95,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) G4double theA = anE->GetN(); G4double theZ = anE->GetZ(); G4double eleMass; - eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(theZ+eps, theA+eps)- + eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theZ+eps), static_cast(theA+eps))- theZ*G4Electron::ElectronDefinition()->GetPDGMass() ) / G4Neutron::Neutron()->GetPDGMass(); @@ -120,7 +120,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) aXsection = (*((*theCrossSections)(index))).GetValue(theEkin, outOfRange); // velocity correction. G4ThreeVector targetVelocity = 1./aThermalNuc.GetMass()*aThermalNuc.GetMomentum(); - aXsection *= (targetVelocity+neutronVelocity).mag()/neutronVMag; + aXsection *= (targetVelocity-neutronVelocity).mag()/neutronVMag; result += aXsection; } size += size; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc index 717cc1a042..9e1fd31a07 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc @@ -30,7 +30,7 @@ // and all its terms. // // $Id: G4NeutronHPInelastic.cc,v 1.12 2001/10/19 11:54:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 74db395b7c..bdb5826ced 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc @@ -48,8 +48,8 @@ void G4NeutronHPInelasticBaseFS::InitGammas(G4double AR, G4double ZR) G4double eps = 0.001; theNuclearMassDifference = - G4NucleiPropertiesTable::GetBindingEnergy(ZR+eps,AR+eps) - - G4NucleiPropertiesTable::GetBindingEnergy(theBaseZ+eps, theBaseA+eps); + G4NucleiPropertiesTable::GetBindingEnergy(static_cast(ZR+eps),static_cast(AR+eps)) - + G4NucleiPropertiesTable::GetBindingEnergy(static_cast(theBaseZ+eps), static_cast(theBaseA+eps)); theGammas.Init(theGammaData); delete aName; } @@ -63,7 +63,7 @@ void G4NeutronHPInelasticBaseFS::Init (G4double A, G4double Z, G4String & dirNam gammaPath = tBase+gammaPath; G4String tString = dirName; G4bool dbool; - G4NeutronHPDataUsed aFile = theNames.GetName(A, Z, tString, bit, dbool); + G4NeutronHPDataUsed aFile = theNames.GetName(static_cast(A), static_cast(Z), tString, bit, dbool); G4String filename = aFile.GetName(); theBaseA = aFile.GetA(); theBaseZ = aFile.GetZ(); @@ -167,7 +167,7 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, // prepare target G4double targetMass; G4double eps = 0.0001; - targetMass = ( G4NucleiPropertiesTable::GetAtomicMass(theBaseZ+eps, theBaseA+eps)- + targetMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theBaseZ+eps), static_cast(theBaseA+eps))- theBaseZ*G4Electron::ElectronDefinition()->GetPDGMass() ) / G4Neutron::Neutron()->GetPDGMass(); if(theEnergyAngData!=NULL) diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc index b3f9e92027..60658e6ce5 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc @@ -60,7 +60,7 @@ void G4NeutronHPInelasticCompFS::Init (G4double A, G4double Z, G4String & dirNam gammaPath = tBase+gammaPath; G4String tString = dirName; G4bool dbool; - G4NeutronHPDataUsed aFile = theNames.GetName(A, Z, tString, aFSType, dbool); + G4NeutronHPDataUsed aFile = theNames.GetName(static_cast(A), static_cast(Z), tString, aFSType, dbool); G4String filename = aFile.GetName(); theBaseA = aFile.GetA(); theBaseZ = aFile.GetZ(); @@ -192,7 +192,7 @@ void G4NeutronHPInelasticCompFS::CompositeApply(const G4Track & theTrack, G4Part for(i=0; i<50; i++) if(theXsection[i] != NULL) break; G4double targetMass=0; G4double eps = 0.0001; - targetMass = ( G4NucleiPropertiesTable::GetNuclearMass(theBaseZ+eps, theBaseA+eps)) / + targetMass = ( G4NucleiPropertiesTable::GetNuclearMass(static_cast(theBaseZ+eps), static_cast(theBaseA+eps))) / G4Neutron::Neutron()->GetPDGMass(); // if(theEnergyAngData[i]!=NULL) // targetMass = theEnergyAngData[i]->GetTargetMass(); @@ -209,7 +209,7 @@ void G4NeutronHPInelasticCompFS::CompositeApply(const G4Track & theTrack, G4Part G4double residualMass=0; G4double residualZ = theBaseZ - aDefinition->GetPDGCharge(); G4double residualA = theBaseA - aDefinition->GetBaryonNumber()+1; - residualMass = ( G4NucleiPropertiesTable::GetNuclearMass(residualZ+eps, residualA+eps) ) / + residualMass = ( G4NucleiPropertiesTable::GetNuclearMass(static_cast(residualZ+eps), static_cast(residualA+eps)) ) / G4Neutron::Neutron()->GetPDGMass(); // prepare energy in target rest frame @@ -451,7 +451,8 @@ void G4NeutronHPInelasticCompFS::CompositeApply(const G4Track & theTrack, G4Part aHadron.Lorentz(aHadron, theTarget); G4ReactionProduct theResidual; - theResidual.SetDefinition(G4ParticleTable::GetParticleTable()->GetIon(residualZ, residualA, 0)); + theResidual.SetDefinition(G4ParticleTable::GetParticleTable() + ->GetIon(static_cast(residualZ), static_cast(residualA), 0)); theResidual.SetKineticEnergy(aHadron.GetKineticEnergy()*aHadron.GetMass()/theResidual.GetMass()); theResidual.SetMomentum(-1.*aHadron.GetMomentum()); theResidual.Lorentz(theResidual, -1.*theTarget); @@ -482,7 +483,8 @@ void G4NeutronHPInelasticCompFS::CompositeApply(const G4Track & theTrack, G4Part if(needsSeparateRecoil && residualZ!=0) { G4ReactionProduct theResidual; - theResidual.SetDefinition(G4ParticleTable::GetParticleTable()->GetIon(residualZ, residualA, 0)); + theResidual.SetDefinition(G4ParticleTable::GetParticleTable() + ->GetIon(static_cast(residualZ), static_cast(residualA), 0)); G4double resiualKineticEnergy = theResidual.GetMass()*theResidual.GetMass(); resiualKineticEnergy += totalMomentum*totalMomentum; resiualKineticEnergy = sqrt(resiualKineticEnergy) - theResidual.GetMass(); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc index 5c1d7ebaa0..4b2f71a5ba 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc @@ -93,7 +93,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) G4double theA = anE->GetN(); G4double theZ = anE->GetZ(); G4double eleMass; - eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(theZ+eps, theA+eps)- + eleMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theZ+eps), static_cast(theA+eps))- theZ*G4Electron::ElectronDefinition()->GetPDGMass() ) / G4Neutron::Neutron()->GetPDGMass(); @@ -118,7 +118,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) aXsection = (*((*theCrossSections)(index))).GetValue(theEkin, outOfRange); // velocity correction. G4ThreeVector targetVelocity = 1./aThermalNuc.GetMass()*aThermalNuc.GetMomentum(); - aXsection *= (targetVelocity+neutronVelocity).mag()/neutronVMag; + aXsection *= (targetVelocity-neutronVelocity).mag()/neutronVMag; result += aXsection; } size += size; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc index 44f23006e4..11ef3d9347 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc @@ -93,7 +93,7 @@ G4double G4NeutronHPKallbachMannSyst::A(G4double anEnergy) G4double R3 = G4std::min(ea, Et3); G4double X3 = R3*eb/ea; G4double Ma = 1; - G4double mb; + G4double mb(0); G4int productA = theTargetA+1-theResidualA; G4int productZ = theTargetZ-theResidualZ; if(productZ==0) @@ -129,7 +129,7 @@ G4double G4NeutronHPKallbachMannSyst::SeparationEnergy(G4int Ac, G4int Nc, G4int result += 33.22*((Nc-Zc)*(Nc-Zc)/pow(Ac, 4./3.) - (NA-ZA)*(NA-ZA)/pow(AA, 4./3.)); result += -0.717*(Zc*Zc/pow(Ac,1./3.)-ZA*ZA/pow(AA,1./3.)); result += 1.211*(Zc*Zc/Ac-ZA*ZA/AA); - G4double totalBinding; + G4double totalBinding(0); G4int productA = theTargetA+1-theResidualA; G4int productZ = theTargetZ-theResidualZ; if(productZ==0&&productA==1) totalBinding=0; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc index ea1975ece8..24430c9907 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc @@ -102,7 +102,7 @@ G4ReactionProduct * G4NeutronHPLabAngularEnergy::Sample(G4double anEnergy, G4dou // get theta, E G4double cosTh, secEnergy; - G4int i, it; + G4int i, it(0); // find the energy bin for(i=0; iGetWeight(); } sum = running[nGammas-1]; - G4int it; + G4int it(0); G4double random = G4UniformRand(); for(i=0; iGetMass()); G4double energy; - G4double max; + G4double max(0); if(theTotalCount<=3) { max = maxE/2.; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc index 2c0d34206f..ad93ed65a0 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc @@ -296,7 +296,7 @@ G4ReactionProductVector * G4NeutronHPPhotonDist::GetPhotons(G4double anEnergy) else if(tabulationType==1) { // legendre polynomials - G4int it; + G4int it(0); for (iii=0; iiix) diff --git a/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc b/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc index 1b79ee0019..c2d2aa08fa 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc @@ -335,7 +335,7 @@ G4DecayProducts *G4NuclearDecayChannel::DecayIt (G4double theParentMass) // dynamicDaughter = products->PopProducts(); G4LorentzVector daughterMomentum = dynamicDaughter->Get4Momentum(); - G4ThreeVector const daughterMomentum1 = G4ThreeVector(daughterMomentum); + G4ThreeVector const daughterMomentum1(static_cast (daughterMomentum)); // // // Now define a G4Fragment with the correct A, Z and excitation, and declare and diff --git a/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh index f75d6f67b9..e140004cd6 100644 --- a/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 5c7d128244..d6180a5765 100644 --- a/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambdaInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 cf9796dab7..551de8c1d1 100644 --- a/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutronInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 583a672d2b..7baffb6eb5 100644 --- a/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 0ae09bdc59..7c0be274b7 100644 --- a/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiProtonInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 2155ccd168..c5844187f6 100644 --- a/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 f4e6d19df1..dbf7a7f66f 100644 --- a/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 c8dafe8281..cefe7c51d4 100644 --- a/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a2da2939c7..1b83fdc7bc 100644 --- a/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiZeroInelasticProcess.hh,v 1.5 2001/08/01 17:12:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 4b674748bc..b9511bd771 100644 --- a/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronInelasticProcess.hh,v 1.5 2001/08/01 17:12:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: Deuteron Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh index 585d0bbe1f..95e3d1874e 100644 --- a/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b3a0b2ca15..8a468bcd92 100644 --- a/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 12b5145774..2941dcc166 100644 --- a/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroLInelasticProcess.hh,v 1.5 2001/08/01 17:12:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 258c1b8b95..1a506e7350 100644 --- a/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroSInelasticProcess.hh,v 1.5 2001/08/01 17:12:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a0fdb2c830..49db02f489 100644 --- a/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4LambdaInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 68a17d9746..e46facdce9 100644 --- a/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 400931b90c..a1b0e2d20f 100644 --- a/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4OmegaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Hadronic Process: OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh index da85e032f3..71d4ddd332 100644 --- a/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 5720f5a3e7..f0e7f032a8 100644 --- a/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh index b8724cd4d9..5e3f355cbe 100644 --- a/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonInelasticProcess.hh,v 1.5 2001/08/01 17:12:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 6608553c79..a2cf4427d2 100644 --- a/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 22c2336170..acdacbb7ff 100644 --- a/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a15e2df256..00f00d0f11 100644 --- a/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonInelasticProcess.hh,v 1.5 2001/08/01 17:12:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 f1156d970d..134ca54e21 100644 --- a/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4XiMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 b6b3b383a7..9900b83965 100644 --- a/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4XiZeroInelasticProcess.hh,v 1.5 2001/08/01 17:12:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4 Process: XiZero Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh b/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh index 2396588ccc..67552264a6 100644 --- a/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutronAnnihilationAtRest.hh,v 1.5 2001/08/01 17:12:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 5c95574d0a..1b6f81eebf 100644 --- a/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiProtonAnnihilationAtRest.hh,v 1.5 2001/08/01 17:12:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 e1e6bfa028..9c0f787754 100644 --- a/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh +++ b/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4DistributionGenerator.hh,v 1.6 2001/10/04 20:00:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 5999142840..912c990544 100644 --- a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh +++ b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinusAbsorption.hh,v 1.5 2001/08/01 17:12:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 8be37e0f1e..b4400292e5 100644 --- a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinusAbsorptionAtRest.hh,v 1.7 2001/10/04 20:00:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh b/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh index 3daf1bb0da..6804bc1023 100644 --- a/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuonMinusCaptureAtRest.hh,v 1.6 2001/08/01 17:12:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh b/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh index 125d7819a5..d6c6e80a15 100644 --- a/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronCaptureAtRest.hh,v 1.5 2001/08/01 17:12:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 3647dc681d..49e1aadf02 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusAbsorptionAtRest.hh,v 1.5 2001/08/01 17:12:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 2192b0630e..a56eb033b4 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopAbsorption.hh,v 1.7 2001/10/04 20:00:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 7c05779f2c..02b2fd4996 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopAl.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 f69e5c8aa3..8d48c5846f 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopC.hh,v 1.6 2001/10/04 20:00:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 24c42b4bee..3f888f9366 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopCo.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 1940c90b0d..5c907b9fdc 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopCu.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 00d76d4779..1c2e428ddc 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopLi.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 92b0d5e5c1..866f695e36 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopN.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 b4d776741a..27199d415e 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopO.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 2df6fd454b..f52553a29f 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopPb.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 ce7670c64b..47d9c480d7 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopTa.hh,v 1.7 2001/10/05 16:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 ea96ae6683..f7789e75ed 100644 --- a/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionMinusAbsorptionAtRest.hh,v 1.5 2001/08/01 17:12:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 50d74a701d..0d6a5d0d6f 100644 --- a/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh @@ -22,7 +22,7 @@ // // // $Id: G4StopDeexcitation.hh,v 1.5 2001/08/01 17:12:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 c55a1d4965..b84b1cfa3e 100644 --- a/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh +++ b/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4StopDeexcitationAlgorithm.hh,v 1.5 2001/08/01 17:12:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 97f844b0e5..3ed2bf69d2 100644 --- a/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh @@ -22,7 +22,7 @@ // // // $Id: G4StopDummyDeexcitation.hh,v 1.5 2001/08/01 17:12:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh b/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh index 0820884e4e..0116110456 100644 --- a/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh @@ -22,7 +22,7 @@ // // // $Id: G4StopTheoDeexcitation.hh,v 1.5 2001/08/01 17:12:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc b/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc index 39cf632f98..56f6b924ae 100644 --- a/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiProtonAnnihilationAtRest.cc,v 1.5 2001/10/19 11:55:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // 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 d2a448827b..b5f61c3881 100644 --- a/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc +++ b/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4DistributionGenerator.cc,v 1.8 2001/10/05 16:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 5b56868095..373a93e80e 100644 --- a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc +++ b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinusAbsorption.cc,v 1.5 2001/10/19 11:55:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // 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 f9bf246fc7..287514d2c1 100644 --- a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc @@ -187,9 +187,9 @@ G4VParticleChange* G4KaonMinusAbsorptionAtRest::AtRestDoIt G4double newA = nucleus->GetN(); G4double bDiff = G4NucleiPropertiesTable::GetBindingEnergy(Z,A) - - G4NucleiPropertiesTable::GetBindingEnergy(newZ,newA); + G4NucleiPropertiesTable::GetBindingEnergy(static_cast(newZ), static_cast(newA)); - // G4double mass = G4NucleiPropertiesTable::GetAtomicMass(newZ,newA); + // G4double mass = G4NucleiPropertiesTable::GetAtomicMass(static_cast(newZ),static_cast(newA)); G4double pNucleus = pProducts.mag(); G4StopDeexcitationAlgorithm* nucleusAlgorithm = new G4StopTheoDeexcitation(); @@ -410,8 +410,8 @@ G4DynamicParticleVector* G4KaonMinusAbsorptionAtRest::KaonNucleonReaction() // equivalent to -'initialBindingEnergy+nucleus.GetBindingEnergy' ! G4double nucleonBindingEnergy = - -G4NucleiPropertiesTable::GetBindingEnergy(iniZ,iniA) - +G4NucleiPropertiesTable::GetBindingEnergy(newZ,newA); + -G4NucleiPropertiesTable::GetBindingEnergy(static_cast(iniZ), static_cast(iniA) ) + +G4NucleiPropertiesTable::GetBindingEnergy(static_cast(newZ), static_cast(newA) ); G4DynamicParticle modifiedHadron = (*stoppedHadron); modifiedHadron.SetMass(stoppedHadron->GetMass() + nucleonBindingEnergy); @@ -468,8 +468,8 @@ G4DynamicParticle* G4KaonMinusAbsorptionAtRest::SigmaLambdaConversion(G4DynamicP G4double newZ = Z; G4double nucleonMassDifference = 0; - G4ParticleDefinition* inNucleonDef; - G4ParticleDefinition* outNucleonDef; + G4ParticleDefinition* inNucleonDef=NULL; + G4ParticleDefinition* outNucleonDef=NULL; // Decide which sigma switch((int) aSigma->GetDefinition()->GetPDGCharge()) { diff --git a/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc b/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc index f8de2661b8..91b40367e4 100644 --- a/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc +++ b/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc @@ -267,12 +267,12 @@ void G4MuMinusCaptureCascade::DoBoundMuonMinusDecay(G4double Z, G4double massA, N1.boost(moment); - AddNewParticle(G4AntiNeutrinoE::AntiNeutrinoE(),G4ThreeVector(N1),0.0,nCascade,Cascade); + AddNewParticle(G4AntiNeutrinoE::AntiNeutrinoE(),G4ThreeVector(N1.vect()),0.0,nCascade,Cascade); G4LorentzVector N2 = G4LorentzVector(-p1,ecm); N2.boost(moment); - AddNewParticle(G4NeutrinoMu::NeutrinoMu(),G4ThreeVector(N2),0.0,nCascade,Cascade); + AddNewParticle(G4NeutrinoMu::NeutrinoMu(),G4ThreeVector(N2.vect()),0.0,nCascade,Cascade); return; } diff --git a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc index 7cb3f4eaf6..9608881f11 100644 --- a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonMinusCaptureAtRest.cc,v 1.7 2001/08/01 17:12:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc index f14634240b..bdd6e8bede 100644 --- a/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronCaptureAtRest.cc,v 1.5 2001/10/19 11:55:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // 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 87d7d229e8..379b3417d2 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PiMinusAbsorptionAtRest.cc,v 1.9 2001/10/19 11:55:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PiMinusAbsorptionAtRest.cc,v 1.10 2002/06/07 15:30:58 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 @@ -100,8 +100,8 @@ G4VParticleChange* G4PiMinusAbsorptionAtRest::AtRestDoIt(const G4Track& track, c // Get the current material const G4Material* material = track.GetMaterial(); - G4double A; - G4double Z; + G4double A=-1; + G4double Z=-1; G4double random = G4UniformRand(); const G4ElementVector* theElementVector = material->GetElementVector(); unsigned int i; @@ -124,7 +124,7 @@ G4VParticleChange* G4PiMinusAbsorptionAtRest::AtRestDoIt(const G4Track& track, c // Do the interaction with the nucleon cluster - G4PiMinusStopMaterial* algorithm = LoadAlgorithm(Z); + G4PiMinusStopMaterial* algorithm = LoadAlgorithm(static_cast(Z)); G4PiMinusStopAbsorption stopAbsorption(algorithm,Z,A); stopAbsorption.SetVerboseLevel(verboseLevel); diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc index 66dcc82624..41d490067d 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopAbsorption.cc,v 1.10 2001/10/05 16:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PiMinusStopAbsorption.cc,v 1.11 2002/06/07 15:30:58 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 @@ -100,8 +100,8 @@ G4DynamicParticleVector* G4PiMinusStopAbsorption::DoAbsorption() } } - G4double binding = G4NucleiPropertiesTable::GetBindingEnergy(_nucleusZ,_nucleusA) / _nucleusA; - G4double mass = G4NucleiProperties::GetNuclearMass(newA,newZ); + G4double binding = G4NucleiPropertiesTable::GetBindingEnergy(static_cast(_nucleusZ) ,static_cast(_nucleusA)) / _nucleusA; + G4double mass = G4NucleiProperties::GetNuclearMass(static_cast(newA),static_cast(newZ)); G4std::vector* p4Nucleons = _materialAlgo->P4Vector(binding,mass); @@ -191,13 +191,13 @@ G4double G4PiMinusStopAbsorption::Energy() if ((*_absorptionProducts)[i]->GetDefinition() == G4Proton::Proton()) nP++; } - G4double productBinding = (G4NucleiPropertiesTable::GetBindingEnergy(_nucleusZ,_nucleusA) / _nucleusA) * nAbsorptionProducts; + G4double productBinding = (G4NucleiPropertiesTable::GetBindingEnergy(static_cast(_nucleusZ),static_cast(_nucleusA)) / _nucleusA) * nAbsorptionProducts; G4double mass = G4NucleiProperties::GetNuclearMass(_nucleusA - (nP + nN),_nucleusZ - nP); G4double pNucleus = pProducts.mag(); G4double eNucleus = sqrt(pNucleus*pNucleus + mass*mass); G4double tNucleus = eNucleus - mass; - G4double temp = G4NucleiPropertiesTable::GetBindingEnergy(_nucleusZ - nP,_nucleusA - (nP + nN)) - - G4NucleiPropertiesTable::GetBindingEnergy(_nucleusZ,_nucleusA); + G4double temp = G4NucleiPropertiesTable::GetBindingEnergy(static_cast(_nucleusZ - nP),static_cast(_nucleusA - (nP + nN))) - + G4NucleiPropertiesTable::GetBindingEnergy(static_cast(_nucleusZ),static_cast(_nucleusA)); energy = productEnergy + productBinding + tNucleus; if (_level > 0) diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc index 50128e85a7..cbb66b335f 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopAl.cc,v 1.7 2001/10/04 20:00:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 802b64ceb9..2722fad30d 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopC.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 1f597e453d..decdc67606 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopCo.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 cc6107c898..28b7554a2b 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopCu.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 419ba82409..a2fd28ad44 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopLi.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 1ad9554a4e..a1d6f491fb 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopMaterial.cc,v 1.8 2001/10/05 16:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4PiMinusStopMaterial.cc,v 1.9 2002/02/12 19:03:00 hpw Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 @@ -132,7 +132,7 @@ G4std::vector* G4PiMinusStopMaterial::P4Vector(const G4double mass = (*_definitions)[0]->GetPDGMass(); energy = eKin1 + mass; p = sqrt(energy*energy - mass*mass); - G4double theta1 = GenerateAngle(pi); + G4double theta1 = pi*G4UniformRand(); G4double phi1 = GenerateAngle(2.*pi); p1 = MakeP4(p,theta1,phi1,energy); diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc index aaf1f0ddc1..37d1adc5f9 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopN.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 18ece0faf7..2556c5e750 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopO.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 2ac018eeec..c7531e03d7 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopPb.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 e6dfba0c7a..13126653f7 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc @@ -22,7 +22,7 @@ // // // $Id: G4PiMinusStopTa.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 1cf7c6cba9..624b9f02dd 100644 --- a/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc @@ -22,7 +22,7 @@ // // // $Id: G4PionMinusAbsorptionAtRest.cc,v 1.6 2001/10/19 11:55:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // 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 966dfb0125..ce94a823f9 100644 --- a/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc @@ -22,7 +22,7 @@ // // // $Id: G4StopDeexcitation.cc,v 1.7 2001/10/04 20:00:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // 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 a7a0f2639c..1e303eb9aa 100644 --- a/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc @@ -22,7 +22,7 @@ // // // $Id: G4StopDummyDeexcitation.cc,v 1.7 2001/10/04 20:00:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc b/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc index 993ee938fa..b1d01d8e08 100644 --- a/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StopTheoDeexcitation.cc,v 1.7 2001/10/04 20:00:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4StopTheoDeexcitation.cc,v 1.8 2002/06/07 15:30:58 jwellisc Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 @@ -79,11 +79,11 @@ G4ReactionProductVector* G4StopTheoDeexcitation::BreakUp(G4double A, G4double Z, // Deexcite the nucleus - G4double atomicMass = G4NucleiPropertiesTable::GetAtomicMass(Z,A); + G4double atomicMass = G4NucleiPropertiesTable::GetAtomicMass(static_cast(Z),static_cast(A)); G4double m = atomicMass + excitation; G4double pMag = p.mag(); G4LorentzVector initialMomentum(p.x(),p.y(),p.z(),sqrt(pMag*pMag + m*m)); - G4Fragment theExcitedNucleus(A,Z,initialMomentum); + G4Fragment theExcitedNucleus(static_cast(A),static_cast(Z),initialMomentum); // theExcitedNucleus.SetA(A); // theExcitedNucleus.SetZ(Z); diff --git a/source/processes/hadronic/util/GNUmakefile b/source/processes/hadronic/util/GNUmakefile index 5413c2e325..1fade780a0 100644 --- a/source/processes/hadronic/util/GNUmakefile +++ b/source/processes/hadronic/util/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 1999/12/06 11:23:57 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2002/02/20 18:06:22 gcosmo Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic management library. G.Folger 10-Dec-97 # ---------------------------------------------------------------- @@ -30,18 +30,16 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ include $(G4INSTALL)/config/common.gmk -# Compiling G4NucleiPropertiesTable.cc and G4ReactionDynamics.cc +# Compiling G4ReactionDynamics.cc # non-optimised on all platforms is recommended. ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) CXXFLAGS_WITH_ZM = $(filter-out -Zm%,$(CXXFLAGS)) -Zm500 -$(G4TMPDIR)/G4NucleiPropertiesTable.o: src/G4NucleiPropertiesTable.cc - $(CXX) $(CXXFLAGS_WITH_ZM) $(CPPFLAGS) -c $(OUT_OBJ)$@ \ - src/G4NucleiPropertiesTable.cc $(G4TMPDIR)/G4ReactionDynamics.o: src/G4ReactionDynamics.cc - $(CXX) $(CXXFLAGS_WITH_ZM) $(CPPFLAGS) -c $(OUT_OBJ)$@ \ + @$(ECHO) Compiling G4ReactionDynamics.cc ... + @$(CXX) $(CXXFLAGS_WITH_ZM) $(CPPFLAGS) -c $(OUT_OBJ)$@ \ src/G4ReactionDynamics.cc else @@ -49,11 +47,9 @@ else CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) -$(G4TMPDIR)/G4NucleiPropertiesTable.o: src/G4NucleiPropertiesTable.cc - $(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c -o $@ \ - src/G4NucleiPropertiesTable.cc $(G4TMPDIR)/G4ReactionDynamics.o: src/G4ReactionDynamics.cc - $(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c -o $@ \ + @$(ECHO) Compiling G4ReactionDynamics.cc ... + @$(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c -o $@ \ src/G4ReactionDynamics.cc endif diff --git a/source/processes/hadronic/util/include/G4DynamicParticleVector.hh b/source/processes/hadronic/util/include/G4DynamicParticleVector.hh index 395b01ae86..90afd0c1e9 100644 --- a/source/processes/hadronic/util/include/G4DynamicParticleVector.hh +++ b/source/processes/hadronic/util/include/G4DynamicParticleVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticleVector.hh,v 1.8 2001/10/06 06:53:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // History: first implementation, alternative to G4FastVector diff --git a/source/processes/hadronic/util/include/G4EffectiveCharge.hh b/source/processes/hadronic/util/include/G4EffectiveCharge.hh new file mode 100644 index 0000000000..93d9cd25ce --- /dev/null +++ b/source/processes/hadronic/util/include/G4EffectiveCharge.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. * +// ******************************************************************** +// +// +#ifndef G4EffectiveCharge_h +#define G4EffectiveCharge_h + +#include "SystemOfUnits.h" +#include "PhysicalConstants.h" +#include "G4Material.hh" + +class G4EffectiveCharge +{ + public: + G4double GetCharge(const G4Material* material, G4double kineticEnergy, + G4double particleMass, G4double ionCharge); +}; + +inline G4double G4EffectiveCharge::GetCharge(const G4Material* material, G4double kineticEnergy, + G4double particleMass, G4double ionCharge) +{ + // This is cut and paste from low_energy electromagnetic to avoid coupling. + // A design iteration is necessary for next time, to generate a process utility. + + // Original Author: V Ivanchenko. + // The aproximation of ion effective charge from: + // J.F.Ziegler, J.P. Biersack, U. Littmark + // The Stopping and Range of Ions in Matter, + // Vol.1, Pergamon Press, 1985 + + // Fast ions or hadrons + G4double reducedEnergy = kineticEnergy * proton_mass_c2/particleMass ; + if( (reducedEnergy > ionCharge * 10.0 * MeV) || + (ionCharge < 1.5) ) return ionCharge*ionCharge ; + + static G4double vFermi[92] = { + 1.0309, 0.15976, 0.59782, 1.0781, 1.0486, 1.0, 1.058, 0.93942, 0.74562, 0.3424, + 0.45259, 0.71074, 0.90519, 0.97411, 0.97184, 0.89852, 0.70827, 0.39816, 0.36552, 0.62712, + 0.81707, 0.9943, 1.1423, 1.2381, 1.1222, 0.92705, 1.0047, 1.2, 1.0661, 0.97411, + 0.84912, 0.95, 1.0903, 1.0429, 0.49715, 0.37755, 0.35211, 0.57801, 0.77773, 1.0207, + 1.029, 1.2542, 1.122, 1.1241, 1.0882, 1.2709, 1.2542, 0.90094, 0.74093, 0.86054, + 0.93155, 1.0047, 0.55379, 0.43289, 0.32636, 0.5131, 0.695, 0.72591, 0.71202, 0.67413, + 0.71418, 0.71453, 0.5911, 0.70263, 0.68049, 0.68203, 0.68121, 0.68532, 0.68715, 0.61884, + 0.71801, 0.83048, 1.1222, 1.2381, 1.045, 1.0733, 1.0953, 1.2381, 1.2879, 0.78654, + 0.66401, 0.84912, 0.88433, 0.80746, 0.43357, 0.41923, 0.43638, 0.51464, 0.73087, 0.81065, + 1.9578, 1.0257} ; + + static G4double lFactor[92] = { + 1.0, 1.0, 1.1, 1.06, 1.01, 1.03, 1.04, 0.99, 0.95, 0.9, + 0.82, 0.81, 0.83, 0.88, 1.0, 0.95, 0.97, 0.99, 0.98, 0.97, + 0.98, 0.97, 0.96, 0.93, 0.91, 0.9, 0.88, 0.9, 0.9, 0.9, + 0.9, 0.85, 0.9, 0.9, 0.91, 0.92, 0.9, 0.9, 0.9, 0.9, + 0.9, 0.88, 0.9, 0.88, 0.88, 0.9, 0.9, 0.88, 0.9, 0.9, + 0.9, 0.9, 0.96, 1.2, 0.9, 0.88, 0.88, 0.85, 0.9, 0.9, + 0.92, 0.95, 0.99, 1.03, 1.05, 1.07, 1.08, 1.1, 1.08, 1.08, + 1.08, 1.08, 1.09, 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.15, + 1.17, 1.2, 1.18, 1.17, 1.17, 1.16, 1.16, 1.16, 1.16, 1.16, + 1.16, 1.16} ; + + static G4double c[6] = {0.2865, 0.1266, -0.001429, + 0.02402,-0.01135, 0.001475} ; + + // get elements in the actual material, + const G4ElementVector* theElementVector = material->GetElementVector() ; + const G4double* theAtomicNumDensityVector = + material->GetAtomicNumDensityVector() ; + const G4int NumberOfElements = material->GetNumberOfElements() ; + + // loop for the elements in the material + // to find out average values Z, vF, lF + G4double z = 0.0, vF = 0.0, lF = 0.0, norm = 0.0 ; + + if( 1 == NumberOfElements ) + { + z = material->GetZ() ; + G4int iz = G4int(z) - 1 ; + if(iz < 0) iz = 0 ; + else if(iz > 91) iz = 91 ; + vF = vFermi[iz] ; + lF = lFactor[iz] ; + + } + else + { + for (G4int iel=0; ielGetZ() ; + const G4double weight = theAtomicNumDensityVector[iel] ; + norm += weight ; + z += z2 * weight ; + G4int iz = G4int(z2) - 1 ; + if(iz < 0) iz = 0 ; + else if(iz > 91) iz =91 ; + vF += vFermi[iz] * weight ; + lF += lFactor[iz] * weight ; + } + z /= norm ; + vF /= norm ; + lF /= norm ; + } + + // Helium ion case + if( ionCharge < 2.5 ) + { + G4double theHeMassAMU(4.0026); + G4double e = log(G4std::max(1.0, kineticEnergy / (keV*theHeMassAMU) )) ; + G4double x = c[0] ; + G4double y = 1.0 ; + for (G4int i=1; i<6; i++) + { + y *= e ; + x += y * c[i] ; + } + G4double q = 7.6 - e ; + q = 1.0 + ( 0.007 + 0.00005 * z ) * exp( -q*q ) ; + return 4.0 * q * q * (1.0 - exp(-x)) ; + + // Heavy ion case + } + else + { + + // v1 is ion velocity in vF unit + G4double v1 = sqrt( reducedEnergy / (25.0 * keV) )/ vF ; + G4double y ; + G4double z13 = pow(ionCharge, 0.3333) ; + + // Faster than Fermi velocity + if ( v1 > 1.0 ) + { + y = vF * v1 * ( 1.0 + 0.2 / (v1*v1) ) / (z13*z13) ; + + // Slower than Fermi velocity + } + else + { + y = 0.6923 * vF * (1.0 + 2.0*v1*v1/3.0 + v1*v1*v1*v1/15.0) / (z13*z13) ; + } + + G4double y3 = pow(y, 0.3) ; + G4double q = 1.0 - exp( 0.803*y3 - 1.3167*y3*y3 - + 0.38157*y - 0.008983*y*y ) ; + if( q < 0.0 ) q = 0.0 ; + + G4double s = 7.6 - log(G4std::max(1.0, reducedEnergy/keV)) ; + s = 1.0 + ( 0.18 + 0.0015 * z ) * exp( -s*s )/ (ionCharge*ionCharge) ; + + // Screen length 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 lambda = 10.0 * vF * pow(1.0-q, 0.6667) / (z13 * (6.0 + q)) ; + G4double qeff = ionCharge * s * + ( q + 0.5*(1.0-q) * log(1.0 + lambda*lambda) / (vF*vF) ) ; + if( 1.0 > qeff ) qeff = 1.0 ; + return qeff*qeff ; + } +} + +#endif diff --git a/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh b/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh index 5ff56cb776..5e628c4cfa 100644 --- a/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh +++ b/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4GHEKinematicsVector.hh,v 1.4 2001/08/01 17:12:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/util/include/G4LightMedia.hh b/source/processes/hadronic/util/include/G4LightMedia.hh index d90a07b421..771fb03bbe 100644 --- a/source/processes/hadronic/util/include/G4LightMedia.hh +++ b/source/processes/hadronic/util/include/G4LightMedia.hh @@ -22,7 +22,7 @@ // // // $Id: G4LightMedia.hh,v 1.4 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 7bb6136fea..8d38621d31 100644 --- a/source/processes/hadronic/util/include/G4Nucleus.hh +++ b/source/processes/hadronic/util/include/G4Nucleus.hh @@ -49,34 +49,13 @@ { public: - G4Nucleus() { pnBlackTrackEnergy = dtaBlackTrackEnergy = 0.0; - excitationEnergy = 0.0; - momentum = G4ThreeVector(0.,0.,0.); - fermiMomentum = 1.52*hbarc/fermi; - theTemp = 293.16*kelvin; - } + G4Nucleus(); - G4Nucleus( const G4double A, const G4double Z ) - { - SetParameters( A, Z ); - pnBlackTrackEnergy = dtaBlackTrackEnergy = 0.0; - excitationEnergy = 0.0; - momentum = G4ThreeVector(0.,0.,0.); - fermiMomentum = 1.52*hbarc/fermi; - theTemp = 293.16*kelvin; - } + G4Nucleus( const G4double A, const G4double Z ); - G4Nucleus( const G4Material *aMaterial ) - { - ChooseParameters( aMaterial ); - pnBlackTrackEnergy = dtaBlackTrackEnergy = 0.0; - excitationEnergy = 0.0; - momentum = G4ThreeVector(0.,0.,0.); - fermiMomentum = 1.52*hbarc/fermi; - theTemp = aMaterial->GetTemperature(); - } + G4Nucleus( const G4Material *aMaterial ); - ~G4Nucleus() {} + ~G4Nucleus(); inline G4Nucleus( const G4Nucleus &right ) { *this = right; } diff --git a/source/processes/hadronic/util/include/G4ParticleVector.hh b/source/processes/hadronic/util/include/G4ParticleVector.hh index 9af44d349a..bb7af8bf11 100644 --- a/source/processes/hadronic/util/include/G4ParticleVector.hh +++ b/source/processes/hadronic/util/include/G4ParticleVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleVector.hh,v 1.7 2001/10/05 16:10:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4ParticleVector_h diff --git a/source/processes/hadronic/util/include/G4ReactionDynamics.hh b/source/processes/hadronic/util/include/G4ReactionDynamics.hh index cfcd285505..ff513c6596 100644 --- a/source/processes/hadronic/util/include/G4ReactionDynamics.hh +++ b/source/processes/hadronic/util/include/G4ReactionDynamics.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReactionDynamics.hh,v 1.6 2001/10/04 20:00:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 457e7637be..583d648520 100644 --- a/source/processes/hadronic/util/include/G4ReactionKinematics.hh +++ b/source/processes/hadronic/util/include/G4ReactionKinematics.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReactionKinematics.hh,v 1.4 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // 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 aba53d8567..7c654a9e45 100644 --- a/source/processes/hadronic/util/include/G4ReactionProduct.hh +++ b/source/processes/hadronic/util/include/G4ReactionProduct.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReactionProduct.hh,v 1.4 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // J.L. Chuma, TRIUMF, 31-Oct-1996 // last modified: 19-Dec-1996 diff --git a/source/processes/hadronic/util/include/G4ReactionProductVector.hh b/source/processes/hadronic/util/include/G4ReactionProductVector.hh index 4c92068c6e..7062042232 100644 --- a/source/processes/hadronic/util/include/G4ReactionProductVector.hh +++ b/source/processes/hadronic/util/include/G4ReactionProductVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReactionProductVector.hh,v 1.7 2001/10/05 16:10:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 2c747560b9..72673ed2eb 100644 --- a/source/processes/hadronic/util/include/G4StableIsotopes.hh +++ b/source/processes/hadronic/util/include/G4StableIsotopes.hh @@ -22,7 +22,7 @@ // // // $Id: G4StableIsotopes.hh,v 1.6 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 1c47da2b1b..086dedfb52 100644 --- a/source/processes/hadronic/util/src/G4LightMedia.cc +++ b/source/processes/hadronic/util/src/G4LightMedia.cc @@ -22,7 +22,7 @@ // // // $Id: G4LightMedia.cc,v 1.5 2001/10/05 16:10:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 fc3dcd9d3a..4d76a5ac3a 100644 --- a/source/processes/hadronic/util/src/G4Nucleus.cc +++ b/source/processes/hadronic/util/src/G4Nucleus.cc @@ -38,6 +38,37 @@ #include "G4Nucleus.hh" #include "Randomize.hh" +G4Nucleus::G4Nucleus() +{ + pnBlackTrackEnergy = dtaBlackTrackEnergy = 0.0; + excitationEnergy = 0.0; + momentum = G4ThreeVector(0.,0.,0.); + fermiMomentum = 1.52*hbarc/fermi; + theTemp = 293.16*kelvin; +} + +G4Nucleus::G4Nucleus( const G4double A, const G4double Z ) +{ + SetParameters( A, Z ); + pnBlackTrackEnergy = dtaBlackTrackEnergy = 0.0; + excitationEnergy = 0.0; + momentum = G4ThreeVector(0.,0.,0.); + fermiMomentum = 1.52*hbarc/fermi; + theTemp = 293.16*kelvin; +} + +G4Nucleus::G4Nucleus( const G4Material *aMaterial ) +{ + ChooseParameters( aMaterial ); + pnBlackTrackEnergy = dtaBlackTrackEnergy = 0.0; + excitationEnergy = 0.0; + momentum = G4ThreeVector(0.,0.,0.); + fermiMomentum = 1.52*hbarc/fermi; + theTemp = aMaterial->GetTemperature(); +} + +G4Nucleus::~G4Nucleus() {} + G4ReactionProduct G4Nucleus:: GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp) const { @@ -295,7 +326,7 @@ G4ReactionProduct G4Nucleus::GetThermalNucleus(G4double targetMass, G4double tem ranmax = (ranmax>ranflat3? ranmax : ranflat3); // - random decay angle - G4double theta=RandFlat::shoot((HepDouble)0.,(HepDouble)pi); // isotropic decay angle theta + G4double theta=pi*G4UniformRand(); // isotropic decay angle theta G4double phi =RandFlat::shoot((HepDouble)0.,(HepDouble)2*pi); // isotropic decay angle phi // - setup ThreeVector diff --git a/source/processes/hadronic/util/src/G4ReactionDynamics.cc b/source/processes/hadronic/util/src/G4ReactionDynamics.cc index 9f14db7630..3c29919eea 100644 --- a/source/processes/hadronic/util/src/G4ReactionDynamics.cc +++ b/source/processes/hadronic/util/src/G4ReactionDynamics.cc @@ -96,6 +96,8 @@ G4ParticleDefinition *aKaonZeroL = G4KaonZeroLong::KaonZeroLong(); G4int i, l; + G4double forVeryForward = 0.; + G4bool veryForward = false; const G4double ekOriginal = modifiedOriginal.GetKineticEnergy()/GeV; const G4double etOriginal = modifiedOriginal.GetTotalEnergy()/GeV; @@ -107,8 +109,21 @@ 2.0*targetMass*etOriginal ); // GeV G4double currentMass = currentParticle.GetMass()/GeV; targetMass = targetParticle.GetMass()/GeV; + // + // randomize the order of the secondary particles + // note that the current and target particles are not affected + // + for( i=0; i DumpFrames::DumpFrame(vec, vecLen); + } if( currentMass == 0.0 && targetMass == 0.0 ) // annihilation { + // no kinetic energy in target ..... G4double ek = currentParticle.GetKineticEnergy(); G4ThreeVector m = currentParticle.GetMomentum(); currentParticle = *vec[0]; @@ -120,10 +135,13 @@ delete temp; vecLen -= 2; currentMass = currentParticle.GetMass()/GeV; + targetMass = targetParticle.GetMass()/GeV; incidentHasChanged = true; targetHasChanged = true; currentParticle.SetKineticEnergy( ek ); currentParticle.SetMomentum( m ); + forVeryForward = aProton->GetPDGMass(); + veryForward = true; } const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -151,17 +169,22 @@ G4double backwardEnergy = centerofmassEnergy/2.0 - targetMass; G4int backwardCount = 1; // number of particles in backward hemisphere - // - // randomize the order of the secondary particles - // note that the current and target particles are not affected - // - for( i=0; i DumpFrames::DumpFrame(vec, vecLen); + if(currentParticle.GetSide()==-1) + { + forwardEnergy += currentMass; + forwardCount --; + backwardEnergy -= currentMass; + backwardCount ++; + } + if(targetParticle.GetSide()!=-1) + { + backwardEnergy += targetMass; + backwardCount --; + forwardEnergy -= targetMass; + forwardCount ++; + } } for( i=0; iSetDefinition( aNeutron ); pVec->SetSide( -2 ); // -2 means backside nucleon ++extraNucleonCount; - backwardEnergy += centerofmassEnergy/2.0; + backwardEnergy += pVec->GetMass()/GeV; extraNucleonMass += pVec->GetMass()/GeV; } else { G4double ran = G4UniformRand(); - if( ran < 0.33333 ) + if( ran < 0.3181 ) pVec->SetDefinition( aPiPlus ); - else if( ran < 0.66667 ) + else if( ran < 0.6819 ) pVec->SetDefinition( aPiZero ); else pVec->SetDefinition( aPiMinus ); @@ -230,7 +253,7 @@ pVec->SetNewlyAdded( true ); // true is the same as IPA(i)<0 vec.SetElement( vecLen++, pVec ); // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); - backwardEnergy -= pVec->GetMass()/GeV;; + backwardEnergy -= pVec->GetMass()/GeV; ++backwardCount; } } @@ -248,12 +271,12 @@ { if( vec[i]->GetSide() == 1 ) { + 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; - forwardParticlesLeft = 1; G4ReactionProduct *temp = vec[vecLen-1]; delete temp; if( --vecLen == 0 )return false; // all the secondaries have been eliminated @@ -287,17 +310,18 @@ { if( vec[i]->GetSide() < 0 ) { + backwardParticlesLeft = 1; if( ++is == iskip ) // eliminate the i'th particle { if( vec[i]->GetSide() == -2 ) { --extraNucleonCount; extraNucleonMass -= vec[i]->GetMass()/GeV; + backwardEnergy -= vec[i]->GetTotalEnergy()/GeV; } - backwardEnergy += vec[i]->GetMass()/GeV; + backwardEnergy += vec[i]->GetTotalEnergy()/GeV; for( G4int j=i; j<(vecLen-1); ++j )*vec[j] = *vec[j+1]; // shift up --backwardCount; - backwardParticlesLeft = 1; G4ReactionProduct *temp = vec[vecLen-1]; delete temp; if( --vecLen == 0 )return false; // all the secondaries have been eliminated @@ -308,7 +332,7 @@ // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); if( backwardParticlesLeft == 0 ) { - backwardEnergy += targetParticle.GetMass()/GeV; + backwardEnergy += targetParticle.GetMass()/GeV; targetParticle = *vec[0]; --backwardCount; for( G4int j=0; j<(vecLen-1); ++j )*vec[j] = *vec[j+1]; @@ -598,6 +622,7 @@ { --extraNucleonCount; extraNucleonMass -= vecMass; + backwardEnergy -= vecMass; } --backwardCount; backwardEnergy += vecMass; @@ -844,11 +869,11 @@ } } } // closes outer loop - if( eliminateThisParticle ) // not enough energy, eliminate target - { - G4cerr << "Warning: eliminating target particle" << G4endl; +// if( eliminateThisParticle ) // not enough energy, eliminate target +// { +// G4cerr << "Warning: eliminating target particle" << G4endl; // exit( EXIT_FAILURE ); - } +// } } // // this finishes the target particle @@ -1063,9 +1088,13 @@ // G4double ekin0 = pseudoParticle[3].GetKineticEnergy()/GeV; + G4ParticleDefinition * aOrgDef = modifiedOriginal.GetDefinition(); + G4int diff = 0; + if(aOrgDef == G4Proton::Proton() || aOrgDef == G4Neutron::Neutron() ) diff = 1; + if(numberofFinalStateNucleons == 1) diff = 0; pseudoParticle[4].SetMomentum( 0.0, 0.0, 0.0 ); - pseudoParticle[4].SetMass( protonMass*numberofFinalStateNucleons*MeV ); - pseudoParticle[4].SetTotalEnergy( protonMass*numberofFinalStateNucleons*MeV ); + pseudoParticle[4].SetMass( protonMass*(numberofFinalStateNucleons-diff)*MeV ); + pseudoParticle[4].SetTotalEnergy( protonMass*(numberofFinalStateNucleons-diff)*MeV ); G4double theoreticalKinetic = pseudoParticle[3].GetTotalEnergy()/MeV + @@ -1106,8 +1135,8 @@ for( i=0; iSetDefinition( aPiPlus ); - else if( ran < 0.66667 ) + else if( ran < 0.6819 ) pVec->SetDefinition( aPiZero ); else pVec->SetDefinition( aPiMinus ); @@ -1810,13 +1839,16 @@ // Lorentz transformation in lab system // G4int numberofFinalStateNucleons = 0; - if( currentParticle.GetMass() > 0.5*GeV )++numberofFinalStateNucleons; + if( currentParticle.GetDefinition() ==aProton || + currentParticle.GetDefinition() == aNeutron ) ++numberofFinalStateNucleons; currentParticle.Lorentz( currentParticle, pseudoParticle[2] ); - if( targetParticle.GetMass() > 0.5*GeV )++numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==aProton || + targetParticle.GetDefinition() == aNeutron) ++numberofFinalStateNucleons; targetParticle.Lorentz( targetParticle, pseudoParticle[2] ); for( i=0; iGetMass() > 0.5*GeV )++numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==aProton || + vec[i]->GetDefinition() == aNeutron)++numberofFinalStateNucleons; vec[i]->Lorentz( *vec[i], pseudoParticle[2] ); } // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); @@ -1906,9 +1938,13 @@ pseudoParticle[4].SetTotalEnergy( etOriginal*GeV ); pseudoParticle[4].SetMomentum( 0.0, 0.0, pOriginal*GeV ); + G4ParticleDefinition * aOrgDef = modifiedOriginal.GetDefinition(); + G4int diff = 0; + if(aOrgDef == G4Proton::Proton() || aOrgDef == G4Neutron::Neutron() ) diff = 1; + if(numberofFinalStateNucleons == 1) diff = 0; pseudoParticle[5].SetMomentum( 0.0, 0.0, 0.0 ); - pseudoParticle[5].SetMass( protonMass*numberofFinalStateNucleons*MeV ); - pseudoParticle[5].SetTotalEnergy( protonMass*numberofFinalStateNucleons*MeV ); + pseudoParticle[5].SetMass( protonMass*(numberofFinalStateNucleons-diff)*MeV ); + pseudoParticle[5].SetTotalEnergy( protonMass*(numberofFinalStateNucleons-diff)*MeV ); // G4double ekin0 = pseudoParticle[4].GetKineticEnergy()/GeV; G4double theoreticalKinetic = @@ -1917,7 +1953,7 @@ pseudoParticle[6] = pseudoParticle[4] + pseudoParticle[5]; pseudoParticle[4].Lorentz( pseudoParticle[4], pseudoParticle[6] ); pseudoParticle[5].Lorentz( pseudoParticle[5], pseudoParticle[6] ); - + if( vecLen < 16 ) { G4ReactionProduct tempR[130]; @@ -2717,9 +2753,11 @@ pseudoParticle[3] = pseudoParticle[0]; pseudoParticle[1] = pseudoParticle[2].cross(pseudoParticle[3]); + G4double rotation = 2.*pi*G4UniformRand(); + pseudoParticle[1] = pseudoParticle[1].rotate(rotation, pseudoParticle[3]); pseudoParticle[2] = pseudoParticle[3].cross(pseudoParticle[1]); for(G4int ii=1; ii<=3; ii++) - { + { p = pseudoParticle[ii].mag(); if( p == 0.0 ) pseudoParticle[ii]= G4ThreeVector( 0.0, 0.0, 0.0 ); diff --git a/source/processes/hadronic/util/src/G4ReactionKinematics.cc b/source/processes/hadronic/util/src/G4ReactionKinematics.cc index cf3c55da77..cff94eef7e 100644 --- a/source/processes/hadronic/util/src/G4ReactionKinematics.cc +++ b/source/processes/hadronic/util/src/G4ReactionKinematics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReactionKinematics.cc,v 1.4 2001/08/01 17:12:47 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ReactionKinematics.cc,v 1.5 2002/02/12 18:56:58 hpw Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // CERN Geneva Switzerland // @@ -60,7 +60,7 @@ void G4ReactionKinematics::TwoBodyScattering( G4double breakupMomentum=BreakupMomentum(invariantMass, massOut1, massOut2); // - random decay angle - G4double theta=RandFlat::shoot(HepDouble(0.),HepDouble(pi)); // isotropic decay angle theta + G4double theta=pi*G4UniformRand(); // isotropic decay angle theta G4double phi =RandFlat::shoot(HepDouble(0.),HepDouble(twopi)); // isotropic decay angle phi // - setup LorentzVectors diff --git a/source/processes/hadronic/util/src/G4ReactionProduct.cc b/source/processes/hadronic/util/src/G4ReactionProduct.cc index f8af47d3e9..927b250d28 100644 --- a/source/processes/hadronic/util/src/G4ReactionProduct.cc +++ b/source/processes/hadronic/util/src/G4ReactionProduct.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReactionProduct.cc,v 1.4 2001/08/01 17:12:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // J.L. Chuma, TRIUMF, 31-Oct-1996 // last modified: 19-Dec-1996 diff --git a/source/processes/hadronic/util/src/G4StableIsotopes.cc b/source/processes/hadronic/util/src/G4StableIsotopes.cc index 2098fb07eb..db84cef6c0 100644 --- a/source/processes/hadronic/util/src/G4StableIsotopes.cc +++ b/source/processes/hadronic/util/src/G4StableIsotopes.cc @@ -22,7 +22,7 @@ // // // $Id: G4StableIsotopes.cc,v 1.4 2001/08/01 17:12:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4StableIsotopes.hh" diff --git a/source/processes/management/History b/source/processes/management/History index 94eb10b42c..8b62345668 100644 --- a/source/processes/management/History +++ b/source/processes/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.23 2001/10/11 13:53:10 gcosmo Exp $ +$Id: History,v 1.25 2002/04/15 04:29:53 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,7 +16,11 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- - +procman-V03-02-03 +- Apr.15, 2002 H.Kurashige (procman-V04-00-00) +- Add G4VProcess::GetCurrentInteractionLength() +- Fixed bugs in PostStepDoIt when MeanFreePath is equal to DBL_MAX + - Oct. 11, 2001 G.Cosmo (procman-V03-02-04) - Replaced inclusion of ctoken.h with G4Tokenizer.hh in G4ProcessTableMessenger.cc. diff --git a/source/processes/management/include/G4IVContinuousDiscreteProcess.hh b/source/processes/management/include/G4IVContinuousDiscreteProcess.hh index 18793d0c25..c3fe983080 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4IVRestDiscreteProcess.hh b/source/processes/management/include/G4IVRestDiscreteProcess.hh index 197bf6bf68..7294fb33b3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ParticleTypes.hh b/source/processes/management/include/G4ParticleTypes.hh index f2f1483832..0c2303825f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.hh b/source/processes/management/include/G4ProcTblElement.hh index bc5c45f7fe..4516ab9396 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.icc b/source/processes/management/include/G4ProcTblElement.icc index 9387f53c96..2786d955be 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessAttribute.hh b/source/processes/management/include/G4ProcessAttribute.hh index be077e57a4..2d557879a7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessManager.hh b/source/processes/management/include/G4ProcessManager.hh index f64e2efbc1..a3a0f27968 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessManager.icc b/source/processes/management/include/G4ProcessManager.icc index 60cf1cb8cf..3e3d1427ac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/management/include/G4ProcessManagerMessenger.hh b/source/processes/management/include/G4ProcessManagerMessenger.hh index 86384d406d..360b7d897d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessTable.hh b/source/processes/management/include/G4ProcessTable.hh index 0814f508b1..e9d83687f6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessTable.icc b/source/processes/management/include/G4ProcessTable.icc index 148144df1d..813bd50f76 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 eb59518d5a..91b56c22f9 100644 --- a/source/processes/management/include/G4ProcessTableMessenger.hh +++ b/source/processes/management/include/G4ProcessTableMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTableMessenger.hh,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessType.hh b/source/processes/management/include/G4ProcessType.hh index b88284a61f..18c62da52d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessVector.hh b/source/processes/management/include/G4ProcessVector.hh index 5f8d2e03ae..35670bc6dc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessVector.icc b/source/processes/management/include/G4ProcessVector.icc index fcb7564fae..3e7d479ff7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // 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 d794d89b9a..cc77a771af 100644 --- a/source/processes/management/include/G4VContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4VContinuousDiscreteProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VContinuousDiscreteProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VContinuousDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -36,11 +36,11 @@ // ------------------------------------------------------------ // New Physics scheme 8 Mar. 1997 H.Kurahige // ------------------------------------------------------------ -// modified 26 Mar. 1997 H.Kurashige -// modified 16 Apr. 1997 L.Urban -// modified AlongStepGPIL etc. 17 Dec. 1997 H.Kurashige // fix bugs in GetGPILSelection() 24 Jan. 1998 H.Kurashige // modified for new ParticleChange 12 Mar. 1998 H.Kurashige +// Fixed a bug in PostStepGetPhysicalInteractionLength +// 15 Apr. 2002 H.Kurashige +// #ifndef G4VContinuousDiscreteProcess_h #define G4VContinuousDiscreteProcess_h 1 @@ -171,7 +171,12 @@ inline G4double G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLeng } #endif - G4double value = theNumberOfInteractionLengthLeft * currentInteractionLength; + G4double value; + if (currentInteractionLength 1){ G4cout << "G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength "; diff --git a/source/processes/management/include/G4VContinuousProcess.hh b/source/processes/management/include/G4VContinuousProcess.hh index 050dd80180..6e8b0eb82b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VDiscreteProcess.hh b/source/processes/management/include/G4VDiscreteProcess.hh index 94549ec41c..0903d93f14 100644 --- a/source/processes/management/include/G4VDiscreteProcess.hh +++ b/source/processes/management/include/G4VDiscreteProcess.hh @@ -22,8 +22,8 @@ // // -// $Id: G4VDiscreteProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -40,12 +40,10 @@ // ------------------------------------------------------------ // New Physics scheme 18 Dec. 1996 H.Kurahige // ------------------------------------------------------------ -// modified 25 Feb. 1997 H.Kurahige -// modified 8 Mar. 1997 H.Kurahige -// modified 26 Mar. 1997 H.Kurahige -// modified 16 Apr. 1997 L.Urban -// modified 17 Dec. 1997 L.Urban // modified for new ParticleChange 12 Mar. 1998 H.Kurashige +// Fixed a bug in PostStepGetPhysicalInteractionLength +// 15 Apr. 2002 H.Kurashige +// #ifndef G4VDiscreteProcess_h #define G4VDiscreteProcess_h 1 @@ -160,7 +158,12 @@ inline G4double G4VDiscreteProcess::PostStepGetPhysicalInteractionLength( #endif - G4double value = theNumberOfInteractionLengthLeft * currentInteractionLength; + G4double value; + if (currentInteractionLength 1){ G4cout << "G4VDiscreteProcess::PostStepGetPhysicalInteractionLength "; diff --git a/source/processes/management/include/G4VProcess.hh b/source/processes/management/include/G4VProcess.hh index 7336f83544..25e6c7af95 100644 --- a/source/processes/management/include/G4VProcess.hh +++ b/source/processes/management/include/G4VProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VProcess.hh,v 1.11 2001/09/01 02:22:55 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VProcess.hh,v 1.13 2001/12/13 12:59:15 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -85,7 +85,7 @@ class G4VProcess // copy constructor copys the name but does not copy the // physics table (0 pointer is assigned) - G4VProcess(G4VProcess &right); + G4VProcess(const G4VProcess &right); public: // destructor @@ -169,6 +169,9 @@ class G4VProcess // this value is used for transformation of // true path length to geometrical path length + G4double GetCurrentInteractionLength() const; + // Returns currentInteractionLength + ////////// PIL factor //////// void SetPILfactor(G4double value); G4double GetPILfactor() const; @@ -295,7 +298,7 @@ class G4VProcess // !!! This method should be at the end of PostStepDoIt() // !!! and AtRestDoIt - private: + protected: G4String theProcessName; // The name of the process @@ -370,6 +373,11 @@ inline void G4VProcess::ClearNumberOfInteractionLengthLeft() theNumberOfInteractionLengthLeft = -1.0; } +inline G4double G4VProcess::GetCurrentInteractionLength() const +{ + return currentInteractionLength; +} + inline void G4VProcess::SetPILfactor(G4double value) { if (value>0.) { diff --git a/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh b/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh index 582a18ed37..8451312c4f 100644 --- a/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRestContinuousDiscreteProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRestContinuousDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -36,12 +36,11 @@ // ------------------------------------------------------------ // New Physics scheme 8 Mar. 1997 H.Kurahige // ------------------------------------------------------------ -// modified 26 Mar. 1997 H.Kurahige -// modified 16 Apr. 1997 L.Urban -// modified AlongStepGPIL etc. 17 Dec. 1997 H.Kurashige // fix bugs in GetGPILSelection() 24 Jan. 1998 H.Kurashige // modified for new ParticleChange 12 Mar. 1998 H.Kurashige - +// Fixed a bug in PostStepGetPhysicalInteractionLength +// 15 Apr. 2002 H.Kurashige +// #ifndef G4VRestContinuousDiscreteProcess_h #define G4VRestContinuousDiscreteProcess_h 1 @@ -255,7 +254,12 @@ inline G4double G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteraction } #endif - G4double value = theNumberOfInteractionLengthLeft * currentInteractionLength; + G4double value; + if (currentInteractionLength 1){ G4cout << "G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength "; diff --git a/source/processes/management/include/G4VRestContinuousProcess.hh b/source/processes/management/include/G4VRestContinuousProcess.hh index 9fe120d65b..c9f7a19a93 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestDiscreteProcess.hh b/source/processes/management/include/G4VRestDiscreteProcess.hh index ae86bb85c3..dcb846e232 100644 --- a/source/processes/management/include/G4VRestDiscreteProcess.hh +++ b/source/processes/management/include/G4VRestDiscreteProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRestDiscreteProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRestDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ @@ -36,11 +36,10 @@ // ------------------------------------------------------------ // New Physics scheme 8 Mar. 1997 H.Kurahige // ------------------------------------------------------------ -// modified 26 Mar. 1997 H.Kurahige -// modified 16 Apr. 1997 L.Urban -// modified 16 Dec. 1997 L.Urban // modified for new ParticleChange 12 Mar. 1998 H.Kurashige - +// Fixed a bug in PostStepGetPhysicalInteractionLength +// 15 Apr. 2002 H.Kurashige +// #ifndef G4VRestDiscreteProcess_h #define G4VRestDiscreteProcess_h 1 @@ -164,7 +163,12 @@ inline } #endif - G4double value = theNumberOfInteractionLengthLeft * currentInteractionLength; + G4double value; + if (currentInteractionLength 1){ G4cout << "G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength "; diff --git a/source/processes/management/include/G4VRestProcess.hh b/source/processes/management/include/G4VRestProcess.hh index b1f23509a3..e8be6a3f4f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4WrapperProcess.hh b/source/processes/management/include/G4WrapperProcess.hh new file mode 100644 index 0000000000..d784c259ec --- /dev/null +++ b/source/processes/management/include/G4WrapperProcess.hh @@ -0,0 +1,365 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4WrapperProcess.hh,v 1.1 2001/11/07 11:53:12 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// History: first implementation, based on object model of +// 2nd December 1995, G.Cosmo +// +// Class Description +// This class is the virtual class for wrapper process objects. +// +// ------------------------------------------------------------ +// New Physics scheme 18 Dec. 1996 H.Kurahige +// ------------------------------------------------------------ + +#ifndef G4WrapperProcess_h +#define G4WrapperProcess_h 1 + +#include "globals.hh" +#include "G4ios.hh" + + +#include "G4VProcess.hh" + +class G4WrapperProcess :public G4VProcess +{ + // A virtual class for wrapper process objects. + + private: + // hide default constructor and assignment operator as private + // do not hide default constructor for alpha version + G4WrapperProcess & operator=(const G4WrapperProcess &right); + + public: // with description + // constructor requires the process name and type + G4WrapperProcess(const G4String& aName = "Wrapped", + G4ProcessType aType = fNotDefined ); + + // copy constructor copys the name but does not copy the + // physics table (0 pointer is assigned) + G4WrapperProcess(const G4WrapperProcess &right); + + public: + // destructor + virtual ~G4WrapperProcess(); + + // equal opperators + G4int operator==(const G4WrapperProcess &right) const; + G4int operator!=(const G4WrapperProcess &right) const; + + public: // with description + virtual void RegisterProcess(G4VProcess*); + virtual const G4VProcess* GetRegisteredProcess() const; + + protected: + G4VProcess* pRegProcess; + + public: // with description + //////////////////////////// + // DoIt ///////////////// + /////////////////////////// + virtual G4VParticleChange* PostStepDoIt( + const G4Track& track, + const G4Step& stepData + ); + + virtual G4VParticleChange* AlongStepDoIt( + const G4Track& track, + const G4Step& stepData + ); + virtual G4VParticleChange* AtRestDoIt( + const G4Track& track, + const G4Step& stepData + ); + ////////////////////////// + // GPIL ////////////// + ///////////////////////// + virtual G4double AlongStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& proposedSafety, + G4GPILSelection* selection); + + virtual G4double AtRestGetPhysicalInteractionLength( + const G4Track& track, + G4ForceCondition* condition + ); + + virtual G4double PostStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition + ) ; + + ////////////////////// + virtual G4bool IsApplicable(const G4ParticleDefinition&); + // Returns true if this process object is applicable to + // the particle type + // Process will not be registered to a particle if IsApplicable is false + + virtual void BuildPhysicsTable(const G4ParticleDefinition&); + // Messaged by the Particle definition (via the Process manager) + // whenever cross section tables have to be rebuilt (i.e. if new + // materials have been defined). + // It is overloaded by individual processes when they need physics + // tables. + + // Processes which Build (for example in their + // constructors) physics tables independent of cuts + // should preferably use a + // private void BuildThePhysicsTable() + // function. Not another BuildPhysicsTable, please. + + + virtual G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, + G4bool ascii = false); + // Store PhysicsTable in a file. + // (return false in case of failure at I/O ) + + virtual G4bool RetrievePhysicsTable( G4ParticleDefinition* , + const G4String& directory, + G4bool ascii = false); + // 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 be defined by each process + // and the file should be placed under the directory specifed by the argument. + //////////////////////////// + virtual void StartTracking(); + virtual void EndTracking(); + // inform Start/End of tracking for each track to the physics process + + public: + virtual void SetProcessManager(const G4ProcessManager*); + // A process manager set its own pointer when the process is registered + // the process Manager + virtual const G4ProcessManager* GetProcessManager(); + // Get the process manager which the process belongs to + + public: + virtual void ResetNumberOfInteractionLengthLeft(); + // reset (determine the value of)NumberOfInteractionLengthLeft + +}; + + +inline + void G4WrapperProcess::ResetNumberOfInteractionLengthLeft() +{ + pRegProcess->ResetNumberOfInteractionLengthLeft(); +} + + +inline + G4double G4WrapperProcess::AlongStepGetPhysicalInteractionLength( const G4Track& track, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& proposedSafety, + G4GPILSelection* selection ) +{ + return pRegProcess->AlongStepGetPhysicalInteractionLength( track, + previousStepSize, + currentMinimumStep, + proposedSafety, + selection ); +} + +inline + G4double G4WrapperProcess::AtRestGetPhysicalInteractionLength( const G4Track& track, + G4ForceCondition* condition ) +{ + return pRegProcess->AtRestGetPhysicalInteractionLength( track, + condition ); +} + +inline + G4double G4WrapperProcess::PostStepGetPhysicalInteractionLength( const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition ) +{ + return pRegProcess->PostStepGetPhysicalInteractionLength( track, + previousStepSize, + condition ); +} + +inline + void G4WrapperProcess::SetProcessManager(const G4ProcessManager* procMan) +{ + pRegProcess->SetProcessManager(procMan); +} + +inline + const G4ProcessManager* G4WrapperProcess::GetProcessManager() +{ + return pRegProcess->GetProcessManager(); +} + +inline + G4VParticleChange* G4WrapperProcess::PostStepDoIt( + const G4Track& track, + const G4Step& stepData + ) +{ + return pRegProcess->PostStepDoIt( track, stepData ); +} + +inline + G4VParticleChange* G4WrapperProcess::AlongStepDoIt( + const G4Track& track, + const G4Step& stepData + ) +{ + return pRegProcess->AlongStepDoIt( track, stepData ); +} + +inline + G4VParticleChange* G4WrapperProcess::AtRestDoIt( + const G4Track& track, + const G4Step& stepData + ) +{ + return pRegProcess->AtRestDoIt( track, stepData ); +} + +inline + G4bool G4WrapperProcess::IsApplicable(const G4ParticleDefinition& particle) +{ + return pRegProcess->IsApplicable(particle); +} + +inline + void G4WrapperProcess::BuildPhysicsTable(const G4ParticleDefinition& particle) +{ + return pRegProcess->BuildPhysicsTable(particle); +} + +inline + G4bool G4WrapperProcess::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + return pRegProcess->StorePhysicsTable(particle, directory, ascii); +} + +inline + G4bool G4WrapperProcess::RetrievePhysicsTable( G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + return pRegProcess->RetrievePhysicsTable(particle, directory, ascii); +} + +inline + void G4WrapperProcess::StartTracking() +{ + pRegProcess->StartTracking(); +} + +inline + void G4WrapperProcess::EndTracking() +{ + pRegProcess->EndTracking(); +} + +inline + void G4WrapperProcess::RegisterProcess(G4VProcess* process) +{ + pRegProcess=process; + theProcessName += process->GetProcessName(); + theProcessType = process->GetProcessType(); +} + +inline + const G4VProcess* G4WrapperProcess::GetRegisteredProcess() const +{ + return pRegProcess; +} + +inline + G4WrapperProcess::G4WrapperProcess(const G4String& aName, + G4ProcessType aType) + : G4VProcess(aName,aType), pRegProcess((G4VProcess*)(0)) +{ +} + +inline +G4WrapperProcess::G4WrapperProcess(const G4WrapperProcess& right) + : G4VProcess(*((G4VProcess*)(&right))), pRegProcess(right.pRegProcess) +{ +} + +inline + G4WrapperProcess::~G4WrapperProcess() +{ + if (pRegProcess!=0) delete pRegProcess; +} + +inline + G4WrapperProcess & G4WrapperProcess::operator=(const G4WrapperProcess &) +{ + G4Exception("G4WrapperProcess::assignment operator is called"); + return *this; +} + +inline + G4int G4WrapperProcess::operator==(const G4WrapperProcess &right) const +{ + return (this == &right); +} + +inline + G4int G4WrapperProcess::operator!=(const G4WrapperProcess &right) const +{ + return (this != &right); +} + + +#endif + + + + + + + + + + + + + + + + + + + + diff --git a/source/processes/management/src/G4IVContinuousDiscreteProcess.cc b/source/processes/management/src/G4IVContinuousDiscreteProcess.cc index 178fc7e4fd..25279f28c2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4IVRestDiscreteProcess.cc b/source/processes/management/src/G4IVRestDiscreteProcess.cc index e796dde861..200adf87a4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4ProcTblElement.cc b/source/processes/management/src/G4ProcTblElement.cc index 708f2bf002..bbe1fc4547 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessAttribute.cc b/source/processes/management/src/G4ProcessAttribute.cc index 3311944f98..8acf33397d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessManager.cc b/source/processes/management/src/G4ProcessManager.cc index e780331c9f..dcdda791d3 100644 --- a/source/processes/management/src/G4ProcessManager.cc +++ b/source/processes/management/src/G4ProcessManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManager.cc,v 1.20 2001/09/01 02:22:55 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4ProcessManagerMessenger.cc b/source/processes/management/src/G4ProcessManagerMessenger.cc index b3b51465e6..1c77cd1a22 100644 --- a/source/processes/management/src/G4ProcessManagerMessenger.cc +++ b/source/processes/management/src/G4ProcessManagerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManagerMessenger.cc,v 1.5 2001/07/11 10:08:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/src/G4ProcessTable.cc b/source/processes/management/src/G4ProcessTable.cc index ba2c129862..3f7a2ec4bc 100644 --- a/source/processes/management/src/G4ProcessTable.cc +++ b/source/processes/management/src/G4ProcessTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTable.cc,v 1.8 2001/07/11 10:08:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessTableMessenger.cc b/source/processes/management/src/G4ProcessTableMessenger.cc index beaff5b007..44dc4360e7 100644 --- a/source/processes/management/src/G4ProcessTableMessenger.cc +++ b/source/processes/management/src/G4ProcessTableMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTableMessenger.cc,v 1.10 2001/10/11 13:53:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/src/G4ProcessVector.cc b/source/processes/management/src/G4ProcessVector.cc index ae99391e92..b7c3e4b5d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4VContinuousDiscreteProcess.cc b/source/processes/management/src/G4VContinuousDiscreteProcess.cc index a929632098..2b20bd45eb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VContinuousProcess.cc b/source/processes/management/src/G4VContinuousProcess.cc index 88f0dee9e1..49ead7d788 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VDiscreteProcess.cc b/source/processes/management/src/G4VDiscreteProcess.cc index ff9e93d578..0f47dd517a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VProcess.cc b/source/processes/management/src/G4VProcess.cc index 71def340ac..39df53e3b5 100644 --- a/source/processes/management/src/G4VProcess.cc +++ b/source/processes/management/src/G4VProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VProcess.cc,v 1.8 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VProcess.cc,v 1.9 2001/11/07 05:23:38 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- @@ -58,7 +58,7 @@ G4VProcess::~G4VProcess() { } -G4VProcess::G4VProcess(G4VProcess& right) +G4VProcess::G4VProcess(const G4VProcess& right) : pParticleChange(0), theNumberOfInteractionLengthLeft(-1.0), currentInteractionLength(-1.0), diff --git a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc index fce31cffc4..28ca85380f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestContinuousProcess.cc b/source/processes/management/src/G4VRestContinuousProcess.cc index 9222cfbd29..f8f03df92b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestDiscreteProcess.cc b/source/processes/management/src/G4VRestDiscreteProcess.cc index ae0a11e458..6cfc017de5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestProcess.cc b/source/processes/management/src/G4VRestProcess.cc index b008819f51..56e3086b71 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/processes/optical/History b/source/processes/optical/History index 784eb51d8c..43fc97f91a 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 * ---------------------------------------------------------- +28th March 2002 Peter Gumplinger (op-V04-00-01) + Add public inline method GetStatus and make enum + G4OpBoundaryProcessStatus public in G4OpBoundaryProcess.hh 18th October 2001 Peter Gumplinger (op-V03-02-01) Avoid warnings on Linux (gcc-2.95.2) compiler - G4OpRayleigh.cc: remove unused variable 'aMaterial' in PostStepDoIt and diff --git a/source/processes/optical/include/G4OpAbsorption.hh b/source/processes/optical/include/G4OpAbsorption.hh index c97d6e0135..13677e2364 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Definition diff --git a/source/processes/optical/include/G4OpBoundaryProcess.hh b/source/processes/optical/include/G4OpBoundaryProcess.hh index 88c98a1c74..b3e5dab79f 100644 --- a/source/processes/optical/include/G4OpBoundaryProcess.hh +++ b/source/processes/optical/include/G4OpBoundaryProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpBoundaryProcess.hh,v 1.7 2001/08/31 16:44:24 gum Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpBoundaryProcess.hh,v 1.8 2002/03/29 01:03:53 gum Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// @@ -78,16 +78,16 @@ // Class Definition ///////////////////// +enum G4OpBoundaryProcessStatus { Undefined, + FresnelRefraction, FresnelReflection, + TotalInternalReflection, + LambertianReflection, LobeReflection, + SpikeReflection, BackScattering, + Absorption, Detection }; + class G4OpBoundaryProcess : public G4VDiscreteProcess { -enum G4OpBoundaryProcessStatus { Undefined, - FresnelRefraction, FresnelReflection, - TotalInternalReflection, - LambertianReflection, LobeReflection, - SpikeReflection, BackScattering, - Absorption, Detection }; - private: ////////////// @@ -132,6 +132,9 @@ public: // With description G4OpticalSurfaceModel GetModel() const; // Returns the optical surface mode. + G4OpBoundaryProcessStatus GetStatus() const; + // Returns the current status. + void SetModel(G4OpticalSurfaceModel model); // Set the optical surface model to be followed // (glisur || unified). @@ -322,6 +325,12 @@ G4OpticalSurfaceModel G4OpBoundaryProcess::GetModel() const return theModel; } +inline +G4OpBoundaryProcessStatus G4OpBoundaryProcess::GetStatus() const +{ + return theStatus; +} + inline void G4OpBoundaryProcess::SetModel(G4OpticalSurfaceModel model) { diff --git a/source/processes/optical/include/G4OpRayleigh.hh b/source/processes/optical/include/G4OpRayleigh.hh index c1a8fc58df..f1d0fddd3e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/optical/src/G4OpAbsorption.cc b/source/processes/optical/src/G4OpAbsorption.cc index 852e9ab067..41f66d7857 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Implementation diff --git a/source/processes/optical/src/G4OpRayleigh.cc b/source/processes/optical/src/G4OpRayleigh.cc index b84fc1f0b1..8b451a11d0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/parameterisation/include/G4FastSimulationManager.hh b/source/processes/parameterisation/include/G4FastSimulationManager.hh index 38c73868c6..87b7a7b367 100644 --- a/source/processes/parameterisation/include/G4FastSimulationManager.hh +++ b/source/processes/parameterisation/include/G4FastSimulationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManager.hh,v 1.7 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh b/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh index ff14144ed4..a1f0483b2b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastSimulationMessenger.hh b/source/processes/parameterisation/include/G4FastSimulationMessenger.hh index cbfe147c9b..4e9d42b517 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT 4 class header file diff --git a/source/processes/parameterisation/include/G4FastStep.hh b/source/processes/parameterisation/include/G4FastStep.hh index 713d9b70e7..7a4a28060e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastStep.icc b/source/processes/parameterisation/include/G4FastStep.icc index 0bec1883b9..88f1de3a87 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $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 05b7473e75..2472a2fb64 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh b/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh index 3cd3695b71..d29e614d97 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh b/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh index 83d31a44cc..40f523b821 100644 --- a/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh +++ b/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4GlobalFastSimulationManager.hh,v 1.8 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4VFastSimulationModel.hh b/source/processes/parameterisation/include/G4VFastSimulationModel.hh index 33fc81bf63..595747f7a1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4FastSimulationManager.cc b/source/processes/parameterisation/src/G4FastSimulationManager.cc index 1abd5c8f76..cfae0c42df 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManager.cc,v 1.6 2001/10/26 14:43:36 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------------------------------------------------------- // diff --git a/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc b/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc index 1af6be4862..05e7ff8ab5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4FastSimulationMessenger.cc b/source/processes/parameterisation/src/G4FastSimulationMessenger.cc index 196e97c296..507598ebce 100644 --- a/source/processes/parameterisation/src/G4FastSimulationMessenger.cc +++ b/source/processes/parameterisation/src/G4FastSimulationMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationMessenger.cc,v 1.4 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4FastSimulationMessenger.hh" diff --git a/source/processes/parameterisation/src/G4FastStep.cc b/source/processes/parameterisation/src/G4FastStep.cc index ccf4af4e77..6d07579c52 100644 --- a/source/processes/parameterisation/src/G4FastStep.cc +++ b/source/processes/parameterisation/src/G4FastStep.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.cc,v 1.9 2001/10/26 14:43:36 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------------------------------------------------------- // diff --git a/source/processes/parameterisation/src/G4FastTrack.cc b/source/processes/parameterisation/src/G4FastTrack.cc index 5f49d22bc4..36f3363494 100644 --- a/source/processes/parameterisation/src/G4FastTrack.cc +++ b/source/processes/parameterisation/src/G4FastTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastTrack.cc,v 1.6 2001/10/26 14:43:37 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------------------------------------------------------- // diff --git a/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc b/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc index 2ed10dc0c2..10eca8d2ee 100644 --- a/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4GlobalFastSimulationManager.cc,v 1.8 2001/10/26 14:43:37 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4VFastSimulationModel.cc b/source/processes/parameterisation/src/G4VFastSimulationModel.cc index a3edf3b837..9c2659ced5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------------------------------------------------------- // diff --git a/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.hh b/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.hh index c9c25b288c..7073724034 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.icc b/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.icc index 4ddc9ba5b5..5b1663c5a7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // --------------------------------------------------------------- diff --git a/source/processes/photolepton_hadron/src/G4MuNuclearInteraction.cc b/source/processes/photolepton_hadron/src/G4MuNuclearInteraction.cc index e4104c3cce..426e320c69 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/photolepton_hadron/src/G4MuonNucleusInteractionModel.cc b/source/processes/photolepton_hadron/src/G4MuonNucleusInteractionModel.cc index 125edc414e..3bd44bde52 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // G4MuonNucleusInteractionModel.cc diff --git a/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc b/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc index bf2bddd341..43d1ab837e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- #include "G4ParametrizedHadronicVertex.hh" diff --git a/source/processes/transportation/GNUmakefile b/source/processes/transportation/GNUmakefile index 849fd8d7ca..e7b0abab78 100644 --- a/source/processes/transportation/GNUmakefile +++ b/source/processes/transportation/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:14:09 gunter Exp $ +# $Id: GNUmakefile,v 1.4 2002/05/17 07:08:58 gcosmo Exp $ # ------------------------------------------------------------ # GNUmakefile for transportation library. G.Folger 10-Dec-97. # ------------------------------------------------------------ @@ -17,10 +17,18 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/magneticfield/include \ + -I$(G4BASE)/geometry/biasing/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/materials/include +ifdef G4DEBUG_TRANSPORT + CPPFLAGS += -DG4DEBUG_TRANSPORT +endif +ifdef G4DEBUG_POSTSTEP_TRANSPORT + CPPFLAGS += -DG4DEBUG_POSTSTEP_TRANSPORT +endif + include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/transportation/History b/source/processes/transportation/History index e7496d294e..ddde8185ea 100644 --- a/source/processes/transportation/History +++ b/source/processes/transportation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.22 2001/12/08 15:22:44 japost Exp $ +$Id: History,v 1.38 2002/05/31 14:52:01 dressel Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,37 +16,115 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +May 31, 2002 M.Dressel transport-V04-00-08 +-------------------------------------------------------- +- made weight window sampling to apply only at inital track step 1. + +May 31, 2002 M.Dressel transport-V04-00-07 +-------------------------------------------------------- +- bug fix in G4PArallelScoreSampler.cc and remove Warning from ParallelTransport + +May 31, 2002 M.Dressel transport-V04-00-06 +-------------------------------------------------------- +- renaming of the Manager classes to Sampler classes +- substitution of G4ParallelManager inside the Sampler classes + +May 30, 2002 M.Dressel +-------------------------------------------------------- +- chamged G4VImportanceScoreConstructor to G4VSampler + +May 30, 2002 M.Dressel +-------------------------------------------------------- +- all the ImportanceScoreManagers derive form + G4VImportanceScoreConstructor + +May 30, 2002 M.Dressel internal-3-transport-V04-00-05 +-------------------------------------------------------- +- changes in Importance Manager constructors, G4ImportanceAlgorithm as + pointer + +May 29, 2002 M.Dressel internal-2-transport-V04-00-05 +-------------------------------------------------------- +- bug fix in G4PImportanceWWindowScoreManager.cc + and G4ParallelImportanceManager.hh. + +May 24, 2002 M.Dressel internal-1-transport-V04-00-05 +------------------------- +- Change in G4VProcessPlacer and G4ProcessPlacer: add member function + RemoveProcess to properly remove a process. +- Add classes for wieght window biasing. + + +May 02, 2002 M.Dressel +------------------------- +- Change in G4ProcessPlacer: set process vector via process manager not + directly. +- Change in G4ParallelTranport: use StartTracking to signal inital step. + This should help to locate "suspended" tracks. + +April 24, 2002 G.Cosmo - transport-V04-00-05 +----------------------- +- Added G4DEBUG_TRANSPORT flag in GNUmakefile and (on suggestionh of + J.Apostolakis) replaced to G4VERBOSE in G4Transportation::PostStepDoIt() + for extra-check on volume boundary. + Issues addressed by problem report #130 should now be resolved. + +April 10, 2002 M.Dressel - transport-V04-00-04 +------------------------- +- Added comments to headers of transportation classes and managers for + importance biasing, to fullfill Software Reference Manual. + +Apr 9, 2002 G.Cosmo +------------------- +- Added liability disclaimer to scorer classes and minor cosmetics. + +Apr 8, 2002 M.Dressel - transport-V04-00-03 +--------------------- +- Resolved compilation problems on HP-aCC. + +Apr 4, 2002 M.Dressel - transport-V04-00-02 +--------------------- +- Cleaned compilation problems for G4std/std. + +Apr 4, 2002 M.Dressel - transport-V04-00-01 +--------------------- +- Resolved compilation problems on SUN-CC and Linux-egcs. + +Mar 28, 2002 M.Dressel - transport-V04-00-00 +----------------------- +- First implementation of transportation classes and managers for importance + biasing and scoring. Co-works with "geometry-V04-00-01". + +Mar 25, 2002 G.Cosmo +--------------------- +- Added dependency to new module geometry/biasing in GNUmakefile. + Dec 8, 2001 J.Apostolakis - transport-V03-02-07 --------------------------- - - Activated the killing of 'looping' particles -- to be used also to -abandon (kill) particles that are stuck (eg at boundaries). - [ Fix for problems of stuck particles reported by CMS (P.Arce), - and Atlas (A.Del'Acqua, A.Rimoldi) ] +- Activated the killing of 'looping' particles -- to be used also to + abandon (kill) particles that are stuck (eg at boundaries). + [ Fix for problems of stuck particles reported by CMS (P.Arce), + and Atlas (A.Del'Acqua, A.Rimoldi) ] Nov 28, 2001 J.Apostolakis - transport-V03-02-06 --------------------------- - - Fix for the new updating of the time for fields -- correcting previous +- Fix for the new updating of the time for fields -- correcting previous tag. By keeping account whether the field changes the energy (and therefore the velocity) in the field manager. - Requires and co-works with + Requires and co-works with - "field-V03-02-07" - "geomvol-V03-02-02" - in order to compile (let alone have any effect.) - + in order to compile (let alone have any effect.) Nov 10, 2001 J.Apostolakis - transport-V03-02-05 --------------------------- - Motivated by the use case of an Electric Field, * in order to achieve reasonable accuracy in time integration, * and to enable fields that vary with the global time - - changed Transportation to try to obtain the delta_time from FieldTrack. - - Co-works with and requires "field-V03-02-03" to have any effect. - + changed Transportation to try to obtain the delta_time from FieldTrack. + Co-works with and requires "field-V03-02-03" to have any effect. Nov 9, 2001 G. Cosmo - transport-V03-02-04 ------------------------ @@ -54,30 +132,28 @@ Nov 9, 2001 G. Cosmo - transport-V03-02-04 Nov 8, 2001 G. Cosmo - transport-V03-02-03 ------------------------ -Introduced changes to G4Transportation for reference-counted -touchables (R.Chytracek). Added methods GetFreeTouchable() and -SetTheOtherTouchableFree(G4VTouchable*). +- Introduced changes to G4Transportation for reference-counted + touchables (R.Chytracek). Added methods GetFreeTouchable() and + SetTheOtherTouchableFree(G4VTouchable*). Nov 6, 2001 J. Apostolakis - transport-V03-02-02 ------------------------------ -Added protection in G4Transportation::AlongStepGPIL for messaging -"ResestStepEstimate" of ChordFinder for the case there is no global field. -** NOTE this is not a perfect resolution (see NOTE in log file). ** - ---> Thanks to Radovan Chytracek for reporting this problem (move to file log) +- Added protection in G4Transportation::AlongStepGPIL for messaging + "ResestStepEstimate" of ChordFinder for the case there is no global field. + ** NOTE this is not a perfect resolution (see NOTE in log file). ** + --> Thanks to Radovan Chytracek for reporting this problem (move to file log) Aug 16, 2001 J. Apostolakis - transport-V03-02-01 ------------------------------ -Tagged. -(This tag requires field-V03-02-00) +- Tagged. (This tag requires field-V03-02-00) Aug 16, 2001 J. Apostolakis ------------------------------ - Erasing state information from previous track at the first step of - each track. (-> this is required to ensure repeatability) - This should eliminate any non-repeatability due to the propagation - in field. - ( Requires updated version of G4ChordFinder ) + each track. (-> this is required to ensure repeatability) + This should eliminate any non-repeatability due to the propagation + in field. + ( Requires updated version of G4ChordFinder ) Jul 19, 2001 G. Cosmo transport-V03-02-00 ------------------------ @@ -86,33 +162,31 @@ Jul 19, 2001 G. Cosmo transport-V03-02-00 Apr 11, 2001 J. Apostolakis transport-V03-01-02 ------------------------------ -Corrected the last update of G4Transportation.cc, which overwrote the -value of the spin in the cases where a particle was not charged (eg photon) or -a charged particle was not in a field. +- Corrected the last update of G4Transportation.cc, which overwrote the + value of the spin in the cases where a particle was not charged (eg photon) + or a charged particle was not in a field. Apr 11, 2001 P. Gumplinger transport-V03-01-01 ----------------------------- -Updated G4Transportation.cc to make spin tracking work correctly: -- Replaced the line originally commented out: - // fTransportEndPolarization= aFieldTrack.GetSpin() ; // Not yet possible - with: - fTransportEndSpin = aFieldTrack.GetSpin(); -- Added to the AlongStepDoIt() the following call: - fParticleChange.SetPolarizationChange(fTransportEndSpin); - +- Updated G4Transportation.cc to make spin tracking work correctly: + o Replaced the line originally commented out: + // fTransportEndPolarization= aFieldTrack.GetSpin() ; // Not yet possible + with: + fTransportEndSpin = aFieldTrack.GetSpin(); + o Added to the AlongStepDoIt() the following call: + fParticleChange.SetPolarizationChange(fTransportEndSpin); Mar 19, 2001 J. Apostolakis transport-V03-00-01 ------------------------------ -G4Transportation modified to use new FieldTrack, and get Kinetic Energy from it. - -This new FieldTrack together with changes in associated Equation of Motion -classes implement the momentum vector as independent variable in place of the -velocity. - -So this tag requires - - new geometry/magneticfield tag "field-V03-00-01", and - - new geometry/volumes tag "geomvol-V03-00-03" for new G4PropagatorInField (). - +- G4Transportation modified to use new FieldTrack, and get Kinetic + Energy from it. + This new FieldTrack together with changes in associated Equation of Motion + classes implement the momentum vector as independent variable in place of + the velocity. + So this tag requires + - new geometry/magneticfield tag "field-V03-00-01", and + - new geometry/volumes tag "geomvol-V03-00-03" for new + G4PropagatorInField (). Feb 27, 2001 J. Apostolakis (transport-V03-00-00) ------------------------------ @@ -120,11 +194,10 @@ Feb 27, 2001 J. Apostolakis (transport-V03-00-00) * Modified calculation of energy at the end of field step to make it more accurate at low velocities, (while remaining correct at high gammas). - This improves the energy determination. Together with electromagnetic/standard tag "stand-V03-00-03" this addresses the main problem in propagating in an electric field - (Problem report # 108 ) + (Problem report # 108 ) Sep 22, 2000 V. Grichine (transport-V02-00-00) [recorded by G.Cosmo] --------------------------- diff --git a/source/processes/transportation/include/G4ImportancePostStepDoIt.hh b/source/processes/transportation/include/G4ImportancePostStepDoIt.hh new file mode 100644 index 0000000000..b5663733d0 --- /dev/null +++ b/source/processes/transportation/include/G4ImportancePostStepDoIt.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: G4ImportancePostStepDoIt.hh,v 1.4 2002/05/31 08:06:34 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ImportancePostStepDoIt +// +// Class description: +// +// Used internally by importance sampling. +// It is responsible for the common part of importance sampling +// for the "mass" and "parallel" geometry. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ImportancePostStepDoIt_hh +#define G4ImportancePostStepDoIt_hh G4ImportancePostStepDoIt_hh + +class G4VImportanceSplitExaminer; +class G4ParticleChange; +class G4Track; +class G4Step; +class G4Nsplit_Weight; + +class G4ImportancePostStepDoIt +{ + +public: // with description + + G4ImportancePostStepDoIt(); + // simply construct + + ~G4ImportancePostStepDoIt(); + // simple destruct + + void DoIt(const G4Track& aTrack, + G4ParticleChange *aParticleChange, + 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); +}; + +#endif diff --git a/source/processes/transportation/include/G4MScoreProcess.hh b/source/processes/transportation/include/G4MScoreProcess.hh new file mode 100644 index 0000000000..f2187f286b --- /dev/null +++ b/source/processes/transportation/include/G4MScoreProcess.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. * +// ******************************************************************** +// +// +// $Id: G4MScoreProcess.hh,v 1.3 2002/04/10 13:14:16 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4MScoreProcess +// +// Class description: +// +// Used internally by scoring in the "mass" world. +// This is a forced post step process messaging a "scorer" +// derived from G4VPScorer. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4MScoreProcess_hh +#define G4MScoreProcess_hh G4MScoreProcess_hh + +#include "G4VProcess.hh" + +class G4VPScorer; + +class G4MScoreProcess : public G4VProcess +{ + +public: // with description + + G4MScoreProcess(G4VPScorer &aScorer, + const G4String &aName = "MScoreProcess"); + // take reference to scorer and coppy particle name and + // create a G4ParticleChange + + virtual ~G4MScoreProcess(); + // delete the G4ParticleChange + + virtual G4double + PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // make processed being forced + + virtual G4VParticleChange * PostStepDoIt(const G4Track&, const G4Step&); + // message "scorer" with G4Step and a G4PStep from the "mass" + // geometry + +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;} + +private: + + G4MScoreProcess(const G4MScoreProcess &); + G4MScoreProcess &operator=(const G4MScoreProcess &); + +private: + + G4VPScorer &fScorer; +}; + +#endif diff --git a/source/processes/transportation/include/G4MassImportanceProcess.hh b/source/processes/transportation/include/G4MassImportanceProcess.hh new file mode 100644 index 0000000000..469da4faa9 --- /dev/null +++ b/source/processes/transportation/include/G4MassImportanceProcess.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: G4MassImportanceProcess.hh,v 1.3 2002/04/10 13:14:16 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4MassImportanceProcess +// +// Class description: +// +// Used internally by importance sampling in the "mass" geometry. +// This process is a forced post step process. I will apply +// importance sampling if the particle crosses a boundary in the +// "mass" geometry. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4MassImportanceProcess_hh +#define G4MassImportanceProcess_hh G4MassImportanceProcess_hh + +#include "G4VProcess.hh" +#include "G4ImportancePostStepDoIt.hh" + +class G4VImportanceAlgorithm; +class G4ImportanceFinder; +class G4VIStore; + +class G4MassImportanceProcess : public G4VProcess +{ + +public: // with description + + G4MassImportanceProcess(const G4VImportanceAlgorithm &aImportanceAlgorithm, + const G4VIStore &aIstore, + const G4String &aName = "MassImportanceProcess"); + // creates a G4ParticleChange + + ~G4MassImportanceProcess(); + // delete the G4ParticleChange + + virtual G4double + PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // make process beeing forced + virtual G4VParticleChange *PostStepDoIt(const G4Track&, const G4Step&); + // manage the importance sampling in the "mass" geometry + +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;} + +private: + + G4MassImportanceProcess(const G4MassImportanceProcess &); + G4MassImportanceProcess &operator=(const G4MassImportanceProcess &); + +private: + + G4ParticleChange *fParticleChange; + G4ImportancePostStepDoIt fImportancePostStepDoIt; + const G4VImportanceAlgorithm &fImportanceAlgorithm; + G4ImportanceFinder *fImportanceFinder; +}; + +#endif diff --git a/source/processes/transportation/include/G4MassImportanceSampler.hh b/source/processes/transportation/include/G4MassImportanceSampler.hh new file mode 100644 index 0000000000..8d375f957f --- /dev/null +++ b/source/processes/transportation/include/G4MassImportanceSampler.hh @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MassImportanceSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4MassImportanceSampler +// +// 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. + + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4MassImportanceSampler_hh +#define G4MassImportanceSampler_hh G4MassImportanceSampler_hh + +#include "globals.hh" +#include "G4VSampler.hh" + +class G4VIStore; +class G4MassImportanceProcess; +class G4VImportanceAlgorithm; +class G4VProcess; + +class G4MassImportanceSampler : public G4VSampler +{ + +public: // with description + + 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 + + ~G4MassImportanceSampler(); + // delete G4MassImportanceProcess and G4VImportanceAlgorithm + // if constructed by this object + + 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 ! + + +private: + + G4MassImportanceSampler(const G4MassImportanceSampler &); + G4MassImportanceSampler &operator=(const G4MassImportanceSampler &); + +private: + + G4VIStore &fIStore; + G4String fParticleName; + G4MassImportanceProcess *fMassImportanceProcess; + G4bool fCreatedAlgorithm; + const G4VImportanceAlgorithm *fAlgorithm; +}; + +#endif diff --git a/source/processes/transportation/include/G4MassImportanceScoreSampler.hh b/source/processes/transportation/include/G4MassImportanceScoreSampler.hh new file mode 100644 index 0000000000..761de871aa --- /dev/null +++ b/source/processes/transportation/include/G4MassImportanceScoreSampler.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: G4MassImportanceScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4MassImportanceScoreSampler +// +// 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. + + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4MassImportanceScoreSampler_hh +#define G4MassImportanceScoreSampler_hh G4MassImportanceScoreSampler_hh + +#include "globals.hh" +#include "G4VSampler.hh" + +class G4VIStore; +class G4VPScorer; +class G4VImportanceAlgorithm; +class G4MassImportanceSampler; +class G4MassScoreSampler; + +class G4MassImportanceScoreSampler : public G4VSampler +{ + +public: // with description + + 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 + + + ~G4MassImportanceScoreSampler(); + // delete G4MassScoreSampler and G4MassImportanceSampler if created + + void Initialize(); + // the G4MassImportanceScoreSampler has to be initialised after + // the initialisation of the G4RunManager ! + +private: + + G4MassImportanceScoreSampler(const G4MassImportanceScoreSampler &); + G4MassImportanceScoreSampler & + operator=(const G4MassImportanceScoreSampler &); + +private: + + G4MassImportanceSampler *fMassImportanceSampler; + G4MassScoreSampler *fMassScoreSampler; +}; + +#endif diff --git a/source/processes/transportation/include/G4MassScoreSampler.hh b/source/processes/transportation/include/G4MassScoreSampler.hh new file mode 100644 index 0000000000..826426db49 --- /dev/null +++ b/source/processes/transportation/include/G4MassScoreSampler.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: G4MassScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4MassScoreSampler +// +// 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. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4MassScoreSampler_hh +#define G4MassScoreSampler_hh G4MassScoreSampler_hh + +#include "globals.hh" +#include "G4VSampler.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 ! + +private: + + G4MassScoreSampler(const G4MassScoreSampler &); + G4MassScoreSampler &operator=(const G4MassScoreSampler &); + +private: + + G4VPScorer &fScorer; + G4String fParticleName; + G4MScoreProcess *fMScoreProcess; +}; + +#endif diff --git a/source/processes/transportation/include/G4PIScorer.hh b/source/processes/transportation/include/G4PIScorer.hh new file mode 100644 index 0000000000..b597af7766 --- /dev/null +++ b/source/processes/transportation/include/G4PIScorer.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. * +// ******************************************************************** +// +// +// $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/G4PImportanceWWindowScoreSampler.hh b/source/processes/transportation/include/G4PImportanceWWindowScoreSampler.hh new file mode 100644 index 0000000000..51aa06df46 --- /dev/null +++ b/source/processes/transportation/include/G4PImportanceWWindowScoreSampler.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: 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/G4PScoreProcess.hh b/source/processes/transportation/include/G4PScoreProcess.hh new file mode 100644 index 0000000000..7596730c3d --- /dev/null +++ b/source/processes/transportation/include/G4PScoreProcess.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. * +// ******************************************************************** +// +// +// $Id: G4PScoreProcess.hh,v 1.3 2002/04/10 13:14:16 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4PIScoreProcess +// +// 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 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 +// post step processes. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4PScoreProcess_hh +#define G4PScoreProcess_hh G4PScoreProcess_hh + +#include "G4VProcess.hh" + +class G4VParallelStepper; +class G4VPScorer; + +class G4PScoreProcess : public G4VProcess +{ + +public: // with description + + G4PScoreProcess(G4VParallelStepper &astepper, + G4VPScorer &aScorer, + const G4String &aName = "PScoreProcess"); + // create a G4ParticleChange + + virtual ~G4PScoreProcess(); + // 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&); + // get G4PStep and G4Step and message "scorer" + +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;} + +private: + + G4PScoreProcess(const G4PScoreProcess &); + G4PScoreProcess &operator=(const G4PScoreProcess &); + + G4VParallelStepper &fPstepper; + G4VPScorer &fScorer; +}; + +#endif + + + + diff --git a/source/processes/transportation/include/G4PScorer.hh b/source/processes/transportation/include/G4PScorer.hh new file mode 100644 index 0000000000..e7a69568e8 --- /dev/null +++ b/source/processes/transportation/include/G4PScorer.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PScorer.hh,v 1.5 2002/04/10 13:14:16 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4PScorer +// +// Class description: +// +// 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" + +#include "G4VPScorer.hh" +#include "G4PMapPtkTallys.hh" + +class G4Step; +class G4PStep; + +class G4PScorer : public G4VPScorer +{ + +public: // with description + + G4PScorer(); + // simple construction + + ~G4PScorer(); + // simple destruction + + void Score(const G4Step &aStep, const G4PStep &aPStep); + // perform scoring for the G4Step and G4PStep + + const G4PMapPtkTallys &GetMapPtkTallys() const {return fPtkTallys;} + // get a reference to the G4PMapPtkTallys containing + // the tallies + +private: + + G4PMapPtkTallys fPtkTallys; +}; + +G4std::ostream& operator<<(G4std::ostream &out, const G4PScorer &ps); + +#endif diff --git a/source/processes/transportation/include/G4ParallelImportanceProcess.hh b/source/processes/transportation/include/G4ParallelImportanceProcess.hh new file mode 100644 index 0000000000..5e630c3d2a --- /dev/null +++ b/source/processes/transportation/include/G4ParallelImportanceProcess.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParallelImportanceProcess.hh,v 1.5 2002/05/31 10:16:01 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelImportanceProcess +// +// Class description: +// +// Used internally by importance sampling in a "parallel" geometry. +// This is a G4ParallelTransport that also does importance +// sampling in the "parallel" geometry. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ParallelImportanceProcess_hh +#define G4ParallelImportanceProcess_hh G4ParallelImportanceProcess_hh + +#include "G4ParallelTransport.hh" +#include "G4ImportancePostStepDoIt.hh" + +class G4VImportanceSplitExaminer; +class G4Nsplit_Weight; + +class G4ParallelImportanceProcess : public G4ParallelTransport +{ + +public: // with description + + G4ParallelImportanceProcess(const G4VImportanceSplitExaminer &aImportanceSplitExaminer, + G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4String &aName = "ParallelImportanceProcess"); + // initialise G4ParallelTransport and members + + G4VParticleChange *PostStepDoIt(const G4Track&, + const G4Step&); + // do the "parallel transport" and importance sampling. + +private: + + G4ParallelImportanceProcess(const G4ParallelImportanceProcess &); + G4ParallelImportanceProcess &operator=(const G4ParallelImportanceProcess &); + + void Error(const G4String &m); + +private: + + G4ParticleChange *fParticleChange; + const G4VImportanceSplitExaminer &fImportanceSplitExaminer; + G4ImportancePostStepDoIt fImportancePostStepDoIt; +}; + +#endif diff --git a/source/processes/transportation/include/G4ParallelImportanceSampler.hh b/source/processes/transportation/include/G4ParallelImportanceSampler.hh new file mode 100644 index 0000000000..aea032d646 --- /dev/null +++ b/source/processes/transportation/include/G4ParallelImportanceSampler.hh @@ -0,0 +1,104 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: 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 new file mode 100644 index 0000000000..b3bc3c01fb --- /dev/null +++ b/source/processes/transportation/include/G4ParallelImportanceScoreSampler.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: 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/G4ParallelScoreSampler.hh b/source/processes/transportation/include/G4ParallelScoreSampler.hh new file mode 100644 index 0000000000..1594652e3a --- /dev/null +++ b/source/processes/transportation/include/G4ParallelScoreSampler.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. * +// ******************************************************************** +// +// +// $Id: G4ParallelScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelScoreSampler +// +// Class description: +// +// 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 + +#include "globals.hh" +#include "G4VSampler.hh" + +class G4ParallelWorld; +class G4VPhysicalVolume; +class G4ParallelTransport; +class G4VPScorer; +class G4PScoreProcess; + +class G4ParallelScoreSampler : 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 + + void Initialize(); + // the G4ParallelScoreSampler has to be initialised after + // the initialisation of the G4RunManager ! + +private: + + G4ParallelScoreSampler(const G4ParallelScoreSampler &); + G4ParallelScoreSampler &operator=(const G4ParallelScoreSampler&); + +private: + G4String fParticleName; + G4ParallelWorld &fParallelWorld; + G4VPScorer &fPScorer; + G4PScoreProcess *fPScorerProcess; + G4ParallelTransport *fParallelTransport; +}; + +#endif diff --git a/source/processes/transportation/include/G4ParallelTransport.hh b/source/processes/transportation/include/G4ParallelTransport.hh new file mode 100644 index 0000000000..99e874ba1c --- /dev/null +++ b/source/processes/transportation/include/G4ParallelTransport.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. * +// ******************************************************************** +// +// +// $Id: G4ParallelTransport.hh,v 1.4 2002/05/02 08:43:23 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelTransport +// +// Class description: +// +// Used internally by importance sampling and scoring in a "parallel" +// geometry. +// This process "moves" a particle in a "parallel" geometry. +// It should be placed in the post step process do it vector after the +// G4Transportation process. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ParallelTransport_hh +#define G4ParallelTransport_hh G4ParallelTransport_hh + +#include "g4std/strstream" + +#include "G4VProcess.hh" +#include "globals.hh" + +class G4VPGeoDriver; +class G4VParallelStepper; + +class G4ParallelTransport : public G4VProcess +{ + +public: // with description + + G4ParallelTransport(G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4String &aName = "ParallelTransport"); + // create G4ParticleChange + + virtual ~G4ParallelTransport(); + // delete G4ParticleChange + + // the post step pair of functions may be overwritten + // in certain derived classes like the importance process + + virtual G4double + PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // straight distance to the boundary in the "parallel" geometry + // in the direction of the track + + virtual G4VParticleChange *PostStepDoIt(const G4Track&, const G4Step&); + // move a track in a "parallel" geometry + // and update a G4PArallelStepper + + virtual void StartTracking(); + virtual void EndTracking(); + + + G4VParallelStepper &GetPStepper(){return fPStepper;} + // 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;} + +protected: + + virtual void Error(const G4String &m); + virtual void Warning(const G4String &m); + + G4ParticleChange *fParticleChange; + + +private: + + G4ParallelTransport(const G4ParallelTransport &); + G4ParallelTransport &operator=(const G4ParallelTransport &); + +private: + + G4VPGeoDriver &fPgeodriver; + G4VParallelStepper &fPStepper; + G4bool fCrossBoundary; + G4bool fInitStep; + +}; + +#endif diff --git a/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh b/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh new file mode 100644 index 0000000000..fed0e45404 --- /dev/null +++ b/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh @@ -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: 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 new file mode 100644 index 0000000000..ebf2a93f78 --- /dev/null +++ b/source/processes/transportation/include/G4ProcessPlacer.hh @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ProcessPlacer.hh,v 1.4 2002/05/24 08:17:19 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4ProcessPlacer +// +// Class description: +// +// Used internally by importance sampling and scoring. +// See G4VProcessPlacer.hh. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ProcessPlacer_hh +#define G4ProcessPlacer_hh G4ProcessPlacer_hh + +#include "globals.hh" +#include "G4VProcessPlacer.hh" + +class G4ProcessManager; +class G4ProcessVector; + +class G4ProcessPlacer : public G4VProcessPlacer +{ + +public: // with description + + G4ProcessPlacer(const G4String &particlename); + // create a process placer for a particle type + + 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); + // 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); + // removes a given process + +private: + + G4ProcessManager &GetProcessManager(); + + enum SecondOrLast + { + eSecond = 1, + eLast = 0 + }; + + void AddProcessAs(G4VProcess *process, SecondOrLast); + + void PrintProcVec(G4ProcessVector* processVec); + void PrintPostStepGPILVec(); + void PrintPostStepDoItVec(); + +private: + + G4String fParticleName; + +}; + +#endif diff --git a/source/processes/transportation/include/G4Transportation.hh b/source/processes/transportation/include/G4Transportation.hh index e193e40139..95e4d1a9ac 100644 --- a/source/processes/transportation/include/G4Transportation.hh +++ b/source/processes/transportation/include/G4Transportation.hh @@ -22,7 +22,7 @@ // // // $Id: G4Transportation.hh,v 1.6 2001/11/28 18:27:50 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/processes/transportation/include/G4Transportation.icc b/source/processes/transportation/include/G4Transportation.icc index 6c2e30bbf9..6fa3dbcf8f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/processes/transportation/include/G4UserSpecialCuts.hh b/source/processes/transportation/include/G4UserSpecialCuts.hh index e60e139cc8..fda2b6649d 100644 --- a/source/processes/transportation/include/G4UserSpecialCuts.hh +++ b/source/processes/transportation/include/G4UserSpecialCuts.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserSpecialCuts.hh,v 1.4 2001/07/11 10:08:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // ------------------------------------------------------------ // 15 April 1998 M.Maire // ------------------------------------------------------------ diff --git a/source/processes/transportation/include/G4VProcessPlacer.hh b/source/processes/transportation/include/G4VProcessPlacer.hh new file mode 100644 index 0000000000..cd0676a56b --- /dev/null +++ b/source/processes/transportation/include/G4VProcessPlacer.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. * +// ******************************************************************** +// +// +// $Id: G4VProcessPlacer.hh,v 1.4 2002/05/24 08:17:19 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VProcessPlacer +// +// Class description: +// +// Used internally by importance sampling and scoring to place +// processes as second or last PostStepDoit processes. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4VProcessPlacer_hh +#define G4VProcessPlacer_hh G4VProcessPlacer_hh + +#include "globals.hh" + +class G4VProcess; + +class G4VProcessPlacer +{ + +public: // with description + + G4VProcessPlacer(const G4String &particlename){} + virtual ~G4VProcessPlacer(){} + + virtual void AddProcessAsLastDoIt(G4VProcess *process) = 0; + // place a post step do it process such that the + // PostStepDoIt function is called last + // THE ORDER CHANGES BY SUBSEQUENT CALLS + + virtual void AddProcessAsSecondDoIt(G4VProcess *process) = 0; + // 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); + // removes a given process + + +}; + +#endif diff --git a/source/processes/transportation/include/G4VSampler.hh b/source/processes/transportation/include/G4VSampler.hh new file mode 100644 index 0000000000..42912d6747 --- /dev/null +++ b/source/processes/transportation/include/G4VSampler.hh @@ -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: G4VSampler.hh,v 1.1 2002/05/31 08:08:22 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// Class G4VSampler +// +// Class description: +// The base class for importance sampling and scoring. +// + +// 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 +}; + +#endif diff --git a/source/processes/transportation/src/G4ImportancePostStepDoIt.cc b/source/processes/transportation/src/G4ImportancePostStepDoIt.cc new file mode 100644 index 0000000000..f8df7d2e96 --- /dev/null +++ b/source/processes/transportation/src/G4ImportancePostStepDoIt.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: G4ImportancePostStepDoIt.cc,v 1.5 2002/05/31 08:06:34 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ImportancePostStepDoIt.cc +// +// ---------------------------------------------------------------------- + +#include "g4std/strstream" + +#include "G4ImportancePostStepDoIt.hh" +#include "G4Track.hh" +#include "G4ParticleChange.hh" +#include "G4VImportanceSplitExaminer.hh" +#include "G4Nsplit_Weight.hh" + +G4ImportancePostStepDoIt::G4ImportancePostStepDoIt(){} +G4ImportancePostStepDoIt::~G4ImportancePostStepDoIt(){} + +void G4ImportancePostStepDoIt::DoIt(const G4Track& aTrack, + G4ParticleChange *aParticleChange, + const G4Nsplit_Weight nw) +{ + // evaluate results from sampler + if (nw.fN>1) { + // split track + Split(aTrack, nw, aParticleChange); + } + else if (nw.fN==1) { + // don't split, but weight may be changed ! + aParticleChange->SetWeightChange(nw.fW); + } + else if (nw.fN==0) { + // kill track + aParticleChange->SetStatusChange(fStopAndKill); + } + else { + // wrong answer + G4std::ostrstream os; + os << "G4ImportancePostStepDoIt::DoIt: sampler returned nw = " + << nw << '\0' << G4endl; + G4Exception(os.str()); + } +} + +void G4ImportancePostStepDoIt::Split(const G4Track &aTrack, + const G4Nsplit_Weight &nw, + G4ParticleChange *aParticleChange) +{ + aParticleChange->SetWeightChange(nw.fW); + aParticleChange->SetNumberOfSecondaries(nw.fN-1); + + for (G4int i=1;iSetCreatorProcess(aTrack.GetCreatorProcess()); + ptrack->SetWeight(nw.fW); + + if (ptrack->GetMomentumDirection() != aTrack.GetMomentumDirection()) { + G4Exception("ERROR - G4ImportancePostStepDoIt::Split: (ptrack->GetMomentumDirection() != aTrack.GetMomentumDirection()"); + } + + aParticleChange->AddSecondary(ptrack); + } + return; +} diff --git a/source/processes/transportation/src/G4MScoreProcess.cc b/source/processes/transportation/src/G4MScoreProcess.cc new file mode 100644 index 0000000000..2b34cf92e2 --- /dev/null +++ b/source/processes/transportation/src/G4MScoreProcess.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: G4MScoreProcess.cc,v 1.3 2002/04/09 17:40:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MScoreProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4MScoreProcess.hh" +#include "G4VPScorer.hh" +#include "G4PStep.hh" +#include "G4VParallelStepper.hh" + +G4MScoreProcess::G4MScoreProcess(G4VPScorer &aScorer, + const G4String &aName) + : G4VProcess(aName), + fScorer(aScorer) +{ + G4VProcess::pParticleChange = new G4ParticleChange; +} + +G4MScoreProcess::~G4MScoreProcess() +{ + delete pParticleChange; +} + +G4double G4MScoreProcess:: +PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition) +{ + *condition = Forced; + return kInfinity; +} + +G4VParticleChange * +G4MScoreProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) +{ + pParticleChange->Initialize(aTrack); + + if (aStep.GetStepLength() > kCarTolerance) { + G4StepPoint *prepoint = aStep.GetPreStepPoint(); + G4StepPoint *postpoint = aStep.GetPostStepPoint(); + + + G4PTouchableKey prekey(*(prepoint->GetPhysicalVolume()), + prepoint->GetTouchable()->GetReplicaNumber()); + G4PTouchableKey postkey(*(postpoint->GetPhysicalVolume()), + postpoint->GetTouchable()->GetReplicaNumber()); + + G4PStep pstep(prekey, postkey); + pstep.fCrossBoundary = false; + + if (prekey != postkey) pstep.fCrossBoundary = true; + + fScorer.Score(aStep, pstep); + } + return G4VProcess::pParticleChange; +} diff --git a/source/processes/transportation/src/G4MassImportanceProcess.cc b/source/processes/transportation/src/G4MassImportanceProcess.cc new file mode 100644 index 0000000000..468d81ff9a --- /dev/null +++ b/source/processes/transportation/src/G4MassImportanceProcess.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: G4MassImportanceProcess.cc,v 1.3 2002/04/09 17:40:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MassImportanceProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4MassImportanceProcess.hh" +#include "G4VImportanceAlgorithm.hh" +#include "G4ImportanceFinder.hh" +#include "G4PTouchableKey.hh" + +G4MassImportanceProcess:: +G4MassImportanceProcess(const G4VImportanceAlgorithm &aImportanceAlgorithm, + const G4VIStore &aIstore, + const G4String &aName) + : G4VProcess(aName), + fImportanceAlgorithm(aImportanceAlgorithm), + fImportanceFinder(new G4ImportanceFinder(aIstore)) +{ + fParticleChange = new G4ParticleChange; + G4VProcess::pParticleChange = fParticleChange; +} + +G4MassImportanceProcess::~G4MassImportanceProcess() +{ + delete fImportanceFinder; + delete fParticleChange; +} + +G4double G4MassImportanceProcess:: +PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition) +{ + *condition = Forced; + return kInfinity; +} + +G4VParticleChange * +G4MassImportanceProcess::PostStepDoIt(const G4Track &aTrack, + const G4Step &aStep) +{ + fParticleChange->Initialize(aTrack); + if (aStep.GetPostStepPoint()->GetStepStatus() == fGeomBoundary + && aStep.GetStepLength() > kCarTolerance) { + if (aTrack.GetTrackStatus()==fStopAndKill) { + G4cout << "G4MassImportanceProcess::PostStepDoIt StopAndKill" << G4endl; + } + + G4StepPoint *prepoint = aStep.GetPreStepPoint(); + G4StepPoint *postpoint = aStep.GetPostStepPoint(); + + + G4PTouchableKey prekey(*(prepoint->GetPhysicalVolume()), + prepoint->GetTouchable()->GetReplicaNumber()); + G4PTouchableKey postkey(*(postpoint->GetPhysicalVolume()), + postpoint->GetTouchable()->GetReplicaNumber()); + + G4Nsplit_Weight nw = fImportanceAlgorithm. + Calculate(fImportanceFinder-> + GetIPre_over_IPost(prekey, postkey), + aTrack.GetWeight()); + fImportancePostStepDoIt.DoIt(aTrack, fParticleChange, nw); + } + return fParticleChange; +} diff --git a/source/processes/transportation/src/G4MassImportanceSampler.cc b/source/processes/transportation/src/G4MassImportanceSampler.cc new file mode 100644 index 0000000000..9c6fff880c --- /dev/null +++ b/source/processes/transportation/src/G4MassImportanceSampler.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: G4MassImportanceSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MassImportanceSampler.cc +// +// ---------------------------------------------------------------------- + +#include "G4MassImportanceSampler.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)) +{} + +G4MassImportanceSampler::~G4MassImportanceSampler() +{ + if (fMassImportanceProcess) { + G4ProcessPlacer placer(fParticleName); + placer.RemoveProcess(fMassImportanceProcess); + delete fMassImportanceProcess; + } + if (fCreatedAlgorithm) delete fAlgorithm; +} + + +G4MassImportanceProcess *G4MassImportanceSampler::CreateMassImportanceProcess() +{ + if (!fMassImportanceProcess) { + fMassImportanceProcess = + new G4MassImportanceProcess(*fAlgorithm, fIStore); + } + return fMassImportanceProcess; +} + +void G4MassImportanceSampler::Initialize() +{ + G4ProcessPlacer placer(fParticleName); + placer.AddProcessAsSecondDoIt(CreateMassImportanceProcess()); +} diff --git a/source/processes/transportation/src/G4MassImportanceScoreSampler.cc b/source/processes/transportation/src/G4MassImportanceScoreSampler.cc new file mode 100644 index 0000000000..1b75d93dc3 --- /dev/null +++ b/source/processes/transportation/src/G4MassImportanceScoreSampler.cc @@ -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: G4MassImportanceScoreSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MassImportanceScoreSampler.cc +// +// ---------------------------------------------------------------------- + +#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() +{ + delete fMassScoreSampler; + delete fMassImportanceSampler; +} + +void G4MassImportanceScoreSampler::Initialize() +{ + fMassScoreSampler->Initialize(); + fMassImportanceSampler->Initialize(); +} diff --git a/source/processes/transportation/src/G4MassScoreSampler.cc b/source/processes/transportation/src/G4MassScoreSampler.cc new file mode 100644 index 0000000000..7cac654425 --- /dev/null +++ b/source/processes/transportation/src/G4MassScoreSampler.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. * +// ******************************************************************** +// +// +// $Id: G4MassScoreSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MassScoreSampler.cc +// +// ---------------------------------------------------------------------- + +#include "G4MassScoreSampler.hh" +#include "G4MScoreProcess.hh" +#include "G4ProcessPlacer.hh" + + +G4MassScoreSampler::G4MassScoreSampler(G4VPScorer &ascorer, + const G4String &particlename) + : fScorer(ascorer), + fParticleName(particlename), + fMScoreProcess(0) +{} + +G4MassScoreSampler::~G4MassScoreSampler() +{ + if (fMScoreProcess) { + G4ProcessPlacer placer(fParticleName); + placer.RemoveProcess(fMScoreProcess); + delete fMScoreProcess; + } +} + +G4MScoreProcess *G4MassScoreSampler::CreateMassScoreProcess() +{ + if (!fMScoreProcess) { + fMScoreProcess = new G4MScoreProcess(fScorer); + } + return fMScoreProcess; +} + +void G4MassScoreSampler::Initialize() +{ + G4ProcessPlacer placer(fParticleName); + placer.AddProcessAsSecondDoIt(CreateMassScoreProcess()); +} diff --git a/source/processes/transportation/src/G4PIScorer.cc b/source/processes/transportation/src/G4PIScorer.cc new file mode 100644 index 0000000000..dc51cf946e --- /dev/null +++ b/source/processes/transportation/src/G4PIScorer.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: 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/G4PImportanceWWindowScoreSampler.cc b/source/processes/transportation/src/G4PImportanceWWindowScoreSampler.cc new file mode 100644 index 0000000000..76ffa23b7d --- /dev/null +++ b/source/processes/transportation/src/G4PImportanceWWindowScoreSampler.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: 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/G4PScoreProcess.cc b/source/processes/transportation/src/G4PScoreProcess.cc new file mode 100644 index 0000000000..ecb8a3ec21 --- /dev/null +++ b/source/processes/transportation/src/G4PScoreProcess.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: G4PScoreProcess.cc,v 1.2 2002/04/09 17:40:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4PIScoreProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4PScoreProcess.hh" +#include "G4VPScorer.hh" +#include "G4PStep.hh" +#include "G4VParallelStepper.hh" + +G4PScoreProcess::G4PScoreProcess(G4VParallelStepper &astepper, + G4VPScorer &aScorer, + const G4String &aName) + : G4VProcess(aName), + fPstepper(astepper), + fScorer(aScorer) +{ + G4VProcess::pParticleChange = new G4ParticleChange; +} + +G4PScoreProcess::~G4PScoreProcess() +{ + delete pParticleChange; +} + +G4double G4PScoreProcess:: +PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition) +{ + *condition = Forced; + return kInfinity; +} + +G4VParticleChange * +G4PScoreProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) +{ + pParticleChange->Initialize(aTrack); + fScorer.Score(aStep, fPstepper.GetPStep()); + + return G4VProcess::pParticleChange; +} diff --git a/source/processes/transportation/src/G4PScorer.cc b/source/processes/transportation/src/G4PScorer.cc new file mode 100644 index 0000000000..51c66b3e31 --- /dev/null +++ b/source/processes/transportation/src/G4PScorer.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: G4PScorer.cc,v 1.7 2002/04/09 17:40:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4PScorer.cc +// +// ---------------------------------------------------------------------- + +#include "G4PScorer.hh" +#include "G4Step.hh" +#include "G4PStep.hh" +#include "G4Sigma.hh" +#include "G4StateManager.hh" + +G4PScorer::G4PScorer(){} +G4PScorer::~G4PScorer(){} + +void G4PScorer::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 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 G4PScorer &ps) +{ + out << ps.GetMapPtkTallys(); + return out; +} diff --git a/source/processes/transportation/src/G4ParallelImportanceProcess.cc b/source/processes/transportation/src/G4ParallelImportanceProcess.cc new file mode 100644 index 0000000000..697a2ab55c --- /dev/null +++ b/source/processes/transportation/src/G4ParallelImportanceProcess.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: G4ParallelImportanceProcess.cc,v 1.3 2002/05/31 08:06:34 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelImportanceProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4ParallelImportanceProcess.hh" +#include "G4VImportanceSplitExaminer.hh" +#include "g4std/strstream" + +G4ParallelImportanceProcess:: +G4ParallelImportanceProcess(const G4VImportanceSplitExaminer &aImportanceSplitExaminer, + G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4String &aName) + : G4ParallelTransport(pgeodriver, aStepper, aName), + fParticleChange(G4ParallelTransport::fParticleChange), + fImportanceSplitExaminer(aImportanceSplitExaminer) +{} + + +G4VParticleChange *G4ParallelImportanceProcess:: +PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) +{ + if (aTrack.GetTrackStatus()==fStopAndKill) { + G4cout << "G4ParallelImportanceProcess::PostStepDoIt StopAndKill" << G4endl; + } + G4ParallelTransport::PostStepDoIt(aTrack, aStep); + + // get new weight and number of clones + G4Nsplit_Weight nw(fImportanceSplitExaminer.Examine(aTrack.GetWeight())); + + fImportancePostStepDoIt.DoIt(aTrack, fParticleChange, nw); + return fParticleChange; +} + +void G4ParallelImportanceProcess::Error(const G4String &m) +{ + G4cout << "ERROR - G4ImportanceProcess::" << m << G4endl; + G4Exception("Program aborted."); +} diff --git a/source/processes/transportation/src/G4ParallelImportanceSampler.cc b/source/processes/transportation/src/G4ParallelImportanceSampler.cc new file mode 100644 index 0000000000..84d7c56c4e --- /dev/null +++ b/source/processes/transportation/src/G4ParallelImportanceSampler.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: 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 new file mode 100644 index 0000000000..0258bcc2cf --- /dev/null +++ b/source/processes/transportation/src/G4ParallelImportanceScoreSampler.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: 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/G4ParallelScoreSampler.cc b/source/processes/transportation/src/G4ParallelScoreSampler.cc new file mode 100644 index 0000000000..a95b338c63 --- /dev/null +++ b/source/processes/transportation/src/G4ParallelScoreSampler.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParallelScoreSampler.cc,v 1.2 2002/05/31 13:49:46 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelScoreSampler.cc +// +// ---------------------------------------------------------------------- + +#include "G4ParallelScoreSampler.hh" +#include "G4PScoreProcess.hh" +#include "G4ProcessPlacer.hh" +#include "G4ParallelWorld.hh" +#include "G4ParallelTransport.hh" + +G4ParallelScoreSampler:: +G4ParallelScoreSampler(G4VPhysicalVolume &worldvolume, + const G4String &particlename, + G4VPScorer &scorer) : + fParticleName(particlename), + fParallelWorld(*(new G4ParallelWorld(worldvolume))), + fPScorer(scorer), + fPScorerProcess(0), + fParallelTransport(0) +{} + +G4ParallelScoreSampler::~G4ParallelScoreSampler() +{ + if (fPScorerProcess) { + G4ProcessPlacer placer(fParticleName); + placer.RemoveProcess(fPScorerProcess); + delete fPScorerProcess; + } + delete &fParallelWorld; +} + + +G4PScoreProcess *G4ParallelScoreSampler::CreateParallelScoreProcess() +{ + if (!fPScorerProcess) { + fPScorerProcess = + new G4PScoreProcess(fParallelWorld.GetParallelStepper(), + fPScorer); + } + return fPScorerProcess; +} + +G4ParallelTransport *G4ParallelScoreSampler::CreateParallelTransport() +{ + if (!fParallelTransport) { + fParallelTransport = new G4ParallelTransport(fParallelWorld. + GetGeoDriver(), + fParallelWorld. + GetParallelStepper()); + } + return fParallelTransport; +} + +void G4ParallelScoreSampler::Initialize() +{ + G4ProcessPlacer placer(fParticleName); + placer.AddProcessAsSecondDoIt(CreateParallelScoreProcess()); + placer.AddProcessAsSecondDoIt(CreateParallelTransport()); +} diff --git a/source/processes/transportation/src/G4ParallelTransport.cc b/source/processes/transportation/src/G4ParallelTransport.cc new file mode 100644 index 0000000000..38e6d0364f --- /dev/null +++ b/source/processes/transportation/src/G4ParallelTransport.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. * +// ******************************************************************** +// +// +// $Id: G4ParallelTransport.cc,v 1.4 2002/05/31 13:49:47 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelTransport.cc +// +// ---------------------------------------------------------------------- + +#include "G4ParallelTransport.hh" +#include "G4VPGeoDriver.hh" +#include "G4VParallelStepper.hh" +#include "G4Pstring.hh" + +G4ParallelTransport::G4ParallelTransport(G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4String &aName) + : G4VProcess(aName), + fPgeodriver(pgeodriver), + fPStepper(aStepper), + fCrossBoundary(false), + fInitStep(false) +{ + fParticleChange = new G4ParticleChange; + G4VProcess::pParticleChange = fParticleChange; +} + +G4ParallelTransport::~G4ParallelTransport() +{ + delete fParticleChange; +} + + +void G4ParallelTransport::StartTracking(){ + fInitStep = true; +} +void G4ParallelTransport::EndTracking(){} + +G4double +G4ParallelTransport:: +PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition) +{ + G4double stepLength; + + // if this function is called on a new track let the navigator + // know about it + // G4bool initStep = (aTrack.GetCurrentStepNumber() == 1); + + if (fInitStep) { + fInitStep = false; + stepLength = fPgeodriver. + ComputeStepLengthInit(aTrack.GetPosition(), + aTrack.GetMomentumDirection()); + fPStepper.Init(fPgeodriver.GetCurrentTouchableKey()); + fCrossBoundary = false; + } + else if (fCrossBoundary) { + stepLength = fPgeodriver. + ComputeStepLengthCrossBoundary(aTrack.GetPosition(), + aTrack.GetMomentumDirection()); + fPStepper.UnSetCrossBoundary(); + fCrossBoundary = false; + } + else { + stepLength = fPgeodriver. + ComputeStepLengthInVolume(aTrack.GetPosition(), + aTrack.GetMomentumDirection()); + } + + *condition = NotForced; + return stepLength; +} + +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"; + Warning(m); + } + + fParticleChange->Initialize(aTrack); + + fCrossBoundary = true; + fPgeodriver.LocateOnBoundary(aTrack.GetPosition(), + aTrack.GetMomentumDirection()); + fPStepper.Update(fPgeodriver.GetCurrentTouchableKey()); + + return fParticleChange; +} + +void G4ParallelTransport::Error(const G4String &m) +{ + G4cout << "ERROR - G4ParallelTransport::" << m << G4endl; + G4Exception("Program aborted."); +} + +void G4ParallelTransport::Warning(const G4String &m) +{ + G4cout << "WARNING - G4ParallelTransport: " << G4endl; + G4cout << m << G4endl; +} diff --git a/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc b/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc new file mode 100644 index 0000000000..8cdb6ed02d --- /dev/null +++ b/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc @@ -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. * +// ******************************************************************** +// +// +// $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 new file mode 100644 index 0000000000..10242ec7cb --- /dev/null +++ b/source/processes/transportation/src/G4ProcessPlacer.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. * +// ******************************************************************** +// +// +// $Id: G4ProcessPlacer.cc,v 1.6 2002/05/31 10:16:02 dressel Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ProcessPlacer.cc +// +// ---------------------------------------------------------------------- + +#include "G4ProcessPlacer.hh" +#include "G4ProcessManager.hh" +#include "G4VProcess.hh" +#include "G4ParticleTable.hh" + +G4ProcessPlacer::G4ProcessPlacer(const G4String &particlename) + : G4VProcessPlacer(particlename), + fParticleName(particlename) +{ + G4cout << "+++ G4ProcessPlacer::G4ProcessPlacer: for: " << particlename + << G4endl; +} + +void G4ProcessPlacer::RemoveProcess(G4VProcess *process){ + G4cout << " ProcessName: " << process->GetProcessName() + << ", will be removed!" << G4endl; + + G4cout << "The initial Vectors: " << G4endl; + PrintPostStepGPILVec(); + PrintPostStepDoItVec(); + + GetProcessManager().RemoveProcess(process); + + G4cout << "The final Vectors: " << G4endl; + PrintPostStepGPILVec(); + PrintPostStepDoItVec(); + + +} + +void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) +{ + G4cout << " ProcessName: " << process->GetProcessName() << G4endl; + + G4cout << "The initial Vectors: " << G4endl; + PrintPostStepGPILVec(); + PrintPostStepDoItVec(); + + + if (sol == eLast) { + GetProcessManager().AddProcess(process, + ordInActive, + ordInActive, + ordLast); + } + else if (sol == eSecond) { + // get transportation process + G4VProcess *transportation = + (* (GetProcessManager().GetProcessList()))[0]; + + if (!transportation) { + G4Exception(" G4ProcessPlacer:: could not get process id=0"); + } + if (transportation->GetProcessName() != "Transportation") { + G4cout << transportation->GetProcessName() << G4endl; + G4Exception(" G4ProcessPlacer:: process id=0 is not Transportation"); + } + + // place the given proces as first for the moment + GetProcessManager().AddProcess(process); + GetProcessManager().SetProcessOrderingToFirst(process, + idxPostStep); + // place transportation first again + GetProcessManager().SetProcessOrderingToFirst(transportation, + idxPostStep); + } + + // for verification inly + G4cout << "The final Vectors: " << G4endl; + PrintPostStepGPILVec(); + PrintPostStepDoItVec(); + + G4cout << "================================================" << G4endl; + +} + +void G4ProcessPlacer::AddProcessAsSecondDoIt(G4VProcess *process) +{ + G4cout << "=== G4ProcessPlacer::AddProcessAsSecondDoIt ===" << G4endl; + AddProcessAs(process, eSecond); +} + +void G4ProcessPlacer::AddProcessAsLastDoIt(G4VProcess *process) +{ + G4cout << "=== G4ProcessPlacer::AddProcessAsLastDoIt ===" << G4endl; + AddProcessAs(process, eLast); +} + +G4ProcessManager &G4ProcessPlacer::GetProcessManager() +{ + // get particle iterator to add processes --------------------- + G4ParticleTable* theParticleTable; + G4ParticleTable::G4PTblDicIterator* theParticleIterator; + theParticleTable = G4ParticleTable::GetParticleTable(); + theParticleIterator = theParticleTable->GetIterator(); + // ------------------------------------------------------- + G4ProcessManager *processmanager = 0; + // add parallel transport processe --------------------------- + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + if (particle->GetParticleName() == fParticleName) { + processmanager = particle->GetProcessManager(); + break; + } + } + // --------------------------------------------------------- + if (!processmanager) G4Exception(" G4ProcessPlacer::GetProcessManager: no ProcessSampler"); + return *processmanager; +} + + +void G4ProcessPlacer::PrintPostStepGPILVec(){ + G4cout << "GPIL Vector: " << G4endl; + G4ProcessVector* processGPILVec = + GetProcessManager().GetPostStepProcessVector(typeGPIL); + PrintProcVec(processGPILVec); +} + +void G4ProcessPlacer::PrintPostStepDoItVec(){ + G4cout << "DoIt Vector: " << G4endl; + G4ProcessVector* processDoItVec = + GetProcessManager().GetPostStepProcessVector(typeDoIt); + PrintProcVec(processDoItVec); +} + + +void G4ProcessPlacer::PrintProcVec(G4ProcessVector* processVec) +{ + if (!processVec) G4Exception("G4ProcessPlacer::G4ProcessPlacer: no processVec"); + G4int len = processVec->length(); + if (len==0) G4Exception("G4ProcessPlacer::G4ProcessPlacer:processVec len = 0"); + for (int pi=0; piGetProcessName() << G4endl; + } + else { + G4cout << " " << "no process found for position: " << pi + << ", in vector of length: " << len << G4endl; + } + } +} + + diff --git a/source/processes/transportation/src/G4Transportation.cc b/source/processes/transportation/src/G4Transportation.cc index 0a13f6b028..f705e54c61 100644 --- a/source/processes/transportation/src/G4Transportation.cc +++ b/source/processes/transportation/src/G4Transportation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Transportation.cc,v 1.27 2001/12/08 15:20:30 japost Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Transportation.cc,v 1.29 2002/05/17 07:10:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // ------------------------------------------------------------ // GEANT 4 include file implementation @@ -497,8 +497,7 @@ G4VParticleChange* G4Transportation::PostStepDoIt( const G4Track& track, } else { // fGeometryLimitedStep is false -//#ifdef G4DEBUG -#ifdef G4VERBOSE +#ifdef G4DEBUG_POSTSTEP_TRANSPORT // Although the location is changed, we know that the physical // volume remains constant. // In order to help in checking the user geometry @@ -574,7 +573,7 @@ G4VParticleChange* G4Transportation::PostStepDoIt( const G4Track& track, fLinearNavigator->LocateGlobalPointWithinVolume( track.GetPosition()) ; #else - // ie #ifndef G4DEBUG does a quick relocation + // ie #ifndef G4DEBUG_POSTSTEP_TRANSPORT does a quick relocation // The serves only to move the Navigator's location diff --git a/source/processes/transportation/src/G4UserSpecialCuts.cc b/source/processes/transportation/src/G4UserSpecialCuts.cc index 8753ec8d6f..428c758916 100644 --- a/source/processes/transportation/src/G4UserSpecialCuts.cc +++ b/source/processes/transportation/src/G4UserSpecialCuts.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserSpecialCuts.cc,v 1.4 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // -------------------------------------------------------------- // History diff --git a/source/readout/include/G4DCtable.hh b/source/readout/include/G4DCtable.hh index ffe5bd3f0c..393a7a8071 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4DCtable_H diff --git a/source/readout/include/G4DMmessenger.hh b/source/readout/include/G4DMmessenger.hh index 91f2e208dc..f9228e0fb2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4DMmessenger_h diff --git a/source/readout/include/G4DigiManager.hh b/source/readout/include/G4DigiManager.hh index dcdae3b698..2af48a0fb0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4DigiManager_h diff --git a/source/readout/include/G4VDigitizerModule.hh b/source/readout/include/G4VDigitizerModule.hh index ae1196314c..3a5a919b01 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VDigitizerModule_H diff --git a/source/readout/src/G4DCtable.cc b/source/readout/src/G4DCtable.cc index 2509d00b9a..87f2e9ab8a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4DCtable.hh" diff --git a/source/readout/src/G4DMmessenger.cc b/source/readout/src/G4DMmessenger.cc index dbb771a68d..c7d458c29f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // --------------------------------------------------------------------- diff --git a/source/readout/src/G4DigiManager.cc b/source/readout/src/G4DigiManager.cc index 0045647ccc..648dc745cf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4DigiManager.hh" diff --git a/source/readout/src/G4VDigitizerModule.cc b/source/readout/src/G4VDigitizerModule.cc index d4f9ced640..30892a3cc2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VDigitizerModule.hh" diff --git a/source/run/History b/source/run/History index de72ff02f2..e6a84532c8 100644 --- a/source/run/History +++ b/source/run/History @@ -1,4 +1,4 @@ -$Id: History,v 1.50 2001/12/07 08:45:40 gcosmo Exp $ +$Id: History,v 1.55 2002/06/25 12:49:55 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,22 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 25, 2002 G.Cosmo (run-V04-00-04) +- Changed date to G4RunManager.cc for release 4.1. + +May 29, 2002 H.Kurashige (run-V04-00-03) +- Add G4VModularPhysicsList.cc +- Use "virtual" inheritance for G4VVModularPhysicsList + +Apr 26, 2002 M.Asai (run-V04-00-02) +- G4RunManager re-opens geometry when G4 state becomes QUIT. + +Feb 26, 2002 G.Cosmo (run-V04-00-01) +- G4RunManager.cc: fixed new date for the public patch "geant4-04-00-patch-02". + +Jan 29, 2002 G.Cosmo (run-V04-00-00) +- G4RunManager.cc: fixed new date for the public patch "geant4-04-00-patch-01". + Dec 07, 2001 G.Cosmo (run-V03-02-11) - G4RunManager.cc: fixed new date for the December public release. diff --git a/source/run/include/G4Run.hh b/source/run/include/G4Run.hh index f0ffebf477..3d7561b454 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4Run_h diff --git a/source/run/include/G4RunManager.hh b/source/run/include/G4RunManager.hh index b4a5750c6e..1e85b7ded3 100644 --- a/source/run/include/G4RunManager.hh +++ b/source/run/include/G4RunManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4RunManager.hh,v 1.22 2001/11/23 16:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/run/include/G4RunMessenger.hh b/source/run/include/G4RunMessenger.hh index 1558c31d0d..cde31cf6b4 100644 --- a/source/run/include/G4RunMessenger.hh +++ b/source/run/include/G4RunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4RunMessenger.hh,v 1.8 2001/11/23 16:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT 4 class header file diff --git a/source/run/include/G4UserPhysicsListMessenger.hh b/source/run/include/G4UserPhysicsListMessenger.hh index 1bacb1665a..13a1812367 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/run/include/G4UserRunAction.hh b/source/run/include/G4UserRunAction.hh index 23a3799f85..42cbb3efb5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4UserRunAction_h diff --git a/source/run/include/G4VModularPhysicsList.hh b/source/run/include/G4VModularPhysicsList.hh index 1a3221de68..dcd34f5fb6 100644 --- a/source/run/include/G4VModularPhysicsList.hh +++ b/source/run/include/G4VModularPhysicsList.hh @@ -21,27 +21,28 @@ // ******************************************************************** // // -// $Id: G4VModularPhysicsList.hh,v 1.2 2001/07/11 10:08:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VModularPhysicsList.hh,v 1.4 2002/05/29 12:11:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ // GEANT 4 class header file -// Class Description: -// This class is an derived class of G4VUserPhysicsList. -// User should regsiter his/her physics constructors -// by using -// G4VModularPhysicsList::RegsiterPhysics() -// to construt particles and processes. -// In addition User must implement following four virtual methods -// in his own concrete class derived from this class. -// G4VModularPhysicsList::SetCuts() -// set cut values in range to all particles -// (and rebuilding physics table will be invoked ) // -// ------------------------------------------- -// History -// first version 12 Nov. 2000 by H.Kurashige +// Class Description: +// This class is a subclass of G4VUserPhysicsList. +// The user should register his/her physics constructors +// by using +// G4VModularPhysicsList::RegsiterPhysics() +// to construt particles and processes. +// In addition the user must implement the four virtual methods +// in his own concrete class derived from this class. +// G4VModularPhysicsList::SetCuts() +// to set cut values in range to all particles +// (rebuild of physics table will be invoked). + +// ------------------------------------------------------------ +// History +// - first version 12 Nov 2000 by H.Kurashige // ------------------------------------------------------------ #ifndef G4VModularPhysicsList_h #define G4VModularPhysicsList_h 1 @@ -53,7 +54,7 @@ #include "G4VUserPhysicsList.hh" #include "G4VPhysicsConstructor.hh" -class G4VModularPhysicsList: public G4VUserPhysicsList +class G4VModularPhysicsList: public virtual G4VUserPhysicsList { public: G4VModularPhysicsList(); @@ -80,51 +81,14 @@ class G4VModularPhysicsList: public G4VUserPhysicsList const G4VPhysicsConstructor* GetPhysics(G4int index) const; const G4VPhysicsConstructor* GetPhysics(const G4String& name) const; - ///////////////////////////////////// + protected: // with description // vector of pointers to G4VPhysicsConstructor typedef G4std::vector G4PhysConstVector; G4PhysConstVector* physicsVector; }; -inline - G4VModularPhysicsList::G4VModularPhysicsList() - : G4VUserPhysicsList() -{ - physicsVector = new G4PhysConstVector(); -} - -inline - G4VModularPhysicsList::~G4VModularPhysicsList() -{ - G4PhysConstVector::iterator itr; - for (itr = physicsVector->begin(); itr!= physicsVector->end(); ++itr) { - delete (*itr); - } - physicsVector->clear(); -} - -inline - void G4VModularPhysicsList::ConstructParticle() -{ - // create particles - G4PhysConstVector::iterator itr; - for (itr = physicsVector->begin(); itr!= physicsVector->end(); ++itr) { - (*itr)->ConstructParticle();; - } -} - -inline - void G4VModularPhysicsList::ConstructProcess() -{ - AddTransportation(); - - G4PhysConstVector::iterator itr; - for (itr = physicsVector->begin(); itr!= physicsVector->end(); ++itr) { - (*itr)->ConstructProcess(); - } -} inline void G4VModularPhysicsList::RegisterPhysics(G4VPhysicsConstructor* fPhysics) diff --git a/source/run/include/G4VPersistencyManager.hh b/source/run/include/G4VPersistencyManager.hh index 8d7b17a479..07e64a388c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VPersistencyManager_h diff --git a/source/run/include/G4VPhysicsConstructor.hh b/source/run/include/G4VPhysicsConstructor.hh index 21e62b7f11..0b0bbc67fd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VUserDetectorConstruction.hh b/source/run/include/G4VUserDetectorConstruction.hh index ca121b3518..f3336805f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VUserDetectorConstruction_h diff --git a/source/run/include/G4VUserPhysicsList.hh b/source/run/include/G4VUserPhysicsList.hh index 358f9132f4..a61c977a9c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VUserPrimaryGeneratorAction.hh b/source/run/include/G4VUserPrimaryGeneratorAction.hh index 826385d77e..6426ab381f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VUserPrimaryGeneratorAction_h diff --git a/source/run/src/G4Run.cc b/source/run/src/G4Run.cc index 456d2c7b85..b02fd8c857 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4Run.hh" diff --git a/source/run/src/G4RunManager.cc b/source/run/src/G4RunManager.cc index c224ddd44d..016c9fbf0e 100644 --- a/source/run/src/G4RunManager.cc +++ b/source/run/src/G4RunManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunManager.cc,v 1.40 2001/12/06 16:54:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4RunManager.cc,v 1.44 2002/06/25 12:49:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // @@ -82,7 +82,7 @@ G4RunManager::G4RunManager() G4ParticleTable::GetParticleTable()->CreateMessenger(); G4ProcessTable::GetProcessTable()->CreateMessenger(); randomNumberStatusDir = "./"; - versionString = " Geant4 version $Name: geant4-04-00 $\n (14-Dec-2001)"; + versionString = " Geant4 version $Name: geant4-04-01 $\n (28-Jun-2002)"; G4cout << "**********************************************" << G4endl << versionString << G4endl @@ -99,6 +99,7 @@ G4RunManager::~G4RunManager() if(verboseLevel>1) G4cout << "Deletion of G4 kernel class start." << G4endl; delete timer; delete runMessenger; + G4GeometryManager::GetInstance()->OpenGeometry(); physicsList->RemoveProcessManager(); G4ParticleTable::GetParticleTable()->DeleteMessenger(); G4ProcessTable::GetProcessTable()->DeleteMessenger(); diff --git a/source/run/src/G4RunMessenger.cc b/source/run/src/G4RunMessenger.cc index 9da87ca66b..613af44e7e 100644 --- a/source/run/src/G4RunMessenger.cc +++ b/source/run/src/G4RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4RunMessenger.cc,v 1.10 2001/11/23 16:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4RunMessenger.hh" diff --git a/source/run/src/G4UserPhysicsListMessenger.cc b/source/run/src/G4UserPhysicsListMessenger.cc index b84c5ea703..f839550388 100644 --- a/source/run/src/G4UserPhysicsListMessenger.cc +++ b/source/run/src/G4UserPhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserPhysicsListMessenger.cc,v 1.10 2001/10/11 13:44:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/run/src/G4UserRunAction.cc b/source/run/src/G4UserRunAction.cc index 3c29586eb5..8a1541ce97 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4UserRunAction.hh" diff --git a/source/run/src/G4VModularPhysicsList.cc b/source/run/src/G4VModularPhysicsList.cc new file mode 100644 index 0000000000..ba7fece663 --- /dev/null +++ b/source/run/src/G4VModularPhysicsList.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: G4VModularPhysicsList.cc,v 1.2 2002/05/29 12:11:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation file +// ------------------------------------------------------------ + +#include "G4VModularPhysicsList.hh" + +G4VModularPhysicsList::G4VModularPhysicsList() + : G4VUserPhysicsList() +{ + physicsVector = new G4PhysConstVector(); +} + +G4VModularPhysicsList::~G4VModularPhysicsList() +{ + G4PhysConstVector::iterator itr; + for (itr = physicsVector->begin(); itr!= physicsVector->end(); ++itr) { + delete (*itr); + } + physicsVector->clear(); +} + +void G4VModularPhysicsList::ConstructParticle() +{ + // create particles + G4PhysConstVector::iterator itr; + for (itr = physicsVector->begin(); itr!= physicsVector->end(); ++itr) { + (*itr)->ConstructParticle();; + } +} + + +void G4VModularPhysicsList::ConstructProcess() +{ + AddTransportation(); + + G4PhysConstVector::iterator itr; + for (itr = physicsVector->begin(); itr!= physicsVector->end(); ++itr) { + (*itr)->ConstructProcess(); + } +} + diff --git a/source/run/src/G4VPersistencyManager.cc b/source/run/src/G4VPersistencyManager.cc index f08611d235..210ab8fbbe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VPersistencyManager.hh" diff --git a/source/run/src/G4VUserDetectorConstruction.cc b/source/run/src/G4VUserDetectorConstruction.cc index f7b41f956e..1b36d97525 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VUserDetectorConstruction.hh" diff --git a/source/run/src/G4VUserPhysicsList.cc b/source/run/src/G4VUserPhysicsList.cc index e797d73346..b585a1f0e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4VUserPrimaryGeneratorAction.cc b/source/run/src/G4VUserPrimaryGeneratorAction.cc index fb25e1f572..09b0166a8b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VUserPrimaryGeneratorAction.hh" diff --git a/source/track/History b/source/track/History index b54b8ca59c..f9a1f62d00 100644 --- a/source/track/History +++ b/source/track/History @@ -1,4 +1,4 @@ -$Id: History,v 1.40 2001/12/10 08:39:57 kurasige Exp $ +$Id: History,v 1.45 2002/02/12 01:48:52 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,20 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Feb. 09 ,02 H.Kurashige (track-V04-00-02) +- Modify G4Track::GetVelocity to get better performance for massless particles + +Dec. 24 ,01 H.Kurashige (track-V04-00-01) +- Remove event biasing mechanism from track category + ( it is moved to hadronic/models ) +- Add G4Track::CopyTrackInfo +- Modified G4ParticleChange::AddSecondary to use touchable handle +- Fixed a bug of changing parent weight in G4ParticleChange::UpdateStepForAlongStep + +Dec. 12, 01 H.Kurashige (track-V04-00-00) +- Added initialization of fStepLength in constructors. +- Fixed a bug that fStepLength is not copied in assginment operator + Dec. 10, 01 H.Kurashige (track-V03-02-08) - Modified assignment operator so that fCurrentStepNumber is set to 0 diff --git a/source/track/include/G4EvtBiasMechanism.hh b/source/track/include/G4EvtBiasMechanism.hh deleted file mode 100644 index a29898fcf9..0000000000 --- a/source/track/include/G4EvtBiasMechanism.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: G4EvtBiasMechanism.hh,v 1.4 2001/07/11 10:08:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// -// ------------------------------------------------------------ -// Class Description -// This is a simple example for Event Biasing -// This mechanism is applied to only particleToBeBiased. -// If a track currently processed is the specifed particle type, -// ApplyMath methods multiply all secondaries in particle change -// by factor of MultiplicationForSecondaries with their weights of -// (parent weight)/(MultiplicationForSecondaries) - -#ifndef G4EvtBiasMechanism_h -#define G4EvtBiasMechanism_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4ParticleDefinition.hh" -#include "G4VEvtBiasMechanism.hh" - -class G4VParticleChange; - -class G4EvtBiasMechanism :public G4VEvtBiasMechanism -{ -public: //with description - // constructors - G4EvtBiasMechanism(const G4String& name = "EBSample", G4int mulFactor=10); - G4EvtBiasMechanism(const G4EvtBiasMechanism&); - -public: - virtual ~G4EvtBiasMechanism(); - -public: //with description - // virtual methods derived from G4VEvtBiasMechanism - virtual G4VParticleChange* ApplyMath( G4VParticleChange*, const G4Step& ); - virtual G4bool IsApplicable(G4ParticleDefinition*) const; - - // Set/Get particle type to be biased - void SetParticleBiased( G4ParticleDefinition* ); - const G4ParticleDefinition* GetParticleBiased( ) const; - - - private: - G4ParticleDefinition* particleToBeBiased; - const G4int MultiplicationForSecondaries; -}; - -inline - G4bool G4EvtBiasMechanism::IsApplicable(G4ParticleDefinition* particle) const -{ - return (particle == particleToBeBiased); -} - -inline - void G4EvtBiasMechanism::SetParticleBiased(G4ParticleDefinition* particle) -{ - particleToBeBiased = particle; -} - -inline - const G4ParticleDefinition* G4EvtBiasMechanism::GetParticleBiased() const -{ - return particleToBeBiased; -} - -#endif - diff --git a/source/track/include/G4ForceCondition.hh b/source/track/include/G4ForceCondition.hh index 0804061136..e595bf36e0 100644 --- a/source/track/include/G4ForceCondition.hh +++ b/source/track/include/G4ForceCondition.hh @@ -22,7 +22,7 @@ // // // $Id: G4ForceCondition.hh,v 1.3 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4GPILSelection.hh b/source/track/include/G4GPILSelection.hh index aa9ca43d38..f6ddcbd4cf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4ParticleChange.hh b/source/track/include/G4ParticleChange.hh index c683d0fbaa..1e3c098f7c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChange.icc b/source/track/include/G4ParticleChange.icc index 2f6b4dc66b..4e7831ec80 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // inline diff --git a/source/track/include/G4ParticleChangeForDecay.hh b/source/track/include/G4ParticleChangeForDecay.hh index cd9b1bd482..2a33a0ef83 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForLoss.hh b/source/track/include/G4ParticleChangeForLoss.hh index d5d241f68e..6ed42597fd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForMSC.icc b/source/track/include/G4ParticleChangeForMSC.icc index 1398535a41..cbb434af35 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/track/include/G4ParticleChangeForRadDecay.hh b/source/track/include/G4ParticleChangeForRadDecay.hh index 71ef9a8e56..b389c421e5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForTransport.hh b/source/track/include/G4ParticleChangeForTransport.hh index b0b9ff2fe0..5d9c1789a6 100644 --- a/source/track/include/G4ParticleChangeForTransport.hh +++ b/source/track/include/G4ParticleChangeForTransport.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForTransport.hh,v 1.8 2001/10/22 04:19:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForTransport.icc b/source/track/include/G4ParticleChangeForTransport.icc index 3d7c047ac5..c92762f2d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // inline diff --git a/source/track/include/G4Step.hh b/source/track/include/G4Step.hh index 0b61003761..ba14c38f58 100644 --- a/source/track/include/G4Step.hh +++ b/source/track/include/G4Step.hh @@ -22,7 +22,7 @@ // // // $Id: G4Step.hh,v 1.8 2001/07/11 10:08:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Step.icc b/source/track/include/G4Step.icc index 5436abdc8c..ef308a8c15 100644 --- a/source/track/include/G4Step.icc +++ b/source/track/include/G4Step.icc @@ -22,7 +22,7 @@ // // // $Id: G4Step.icc,v 1.7 2001/10/22 04:19:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4StepPoint.hh b/source/track/include/G4StepPoint.hh index 300696061d..f42ba9aa04 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4StepPoint.icc b/source/track/include/G4StepPoint.icc index 8717ae49db..8448ba25c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // inline const G4ThreeVector& G4StepPoint::GetPosition() const diff --git a/source/track/include/G4StepStatus.hh b/source/track/include/G4StepStatus.hh index fa78042288..1dec912cdb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4SteppingControl.hh b/source/track/include/G4SteppingControl.hh index c3823402e9..04db46701f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Track.hh b/source/track/include/G4Track.hh index a102a12543..61a42224a0 100644 --- a/source/track/include/G4Track.hh +++ b/source/track/include/G4Track.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Track.hh,v 1.13 2001/11/13 05:13:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Track.hh,v 1.15 2001/12/14 09:59:35 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- @@ -67,15 +67,19 @@ public: // With description // Constructor G4Track(); - G4Track(const G4Track&); G4Track(G4DynamicParticle* apValueDynamicParticle, G4double aValueTime, const G4ThreeVector& aValuePosition); // aValueTime is a global time - + G4Track(const G4Track&); + // Copy Constructor copys members other than tracking information + +private: + // Hide assignment operator as private G4Track& operator=(const G4Track&); + //-------- -public: +public: // With description // Destrcutor ~G4Track(); @@ -86,12 +90,12 @@ public: inline void operator delete(void *aTrack); // Override "delete" for "G4Allocator". - int operator==( const G4Track& s); - // Define "==" operator because "G4TrackVector" uses - //"RWPtrOrderdVector" which requires this. - + G4bool operator==( const G4Track& ); + //-------- public: // With description +// Copy information of the track (w/o tracking information) + void CopyTrackInfo(const G4Track&); // Get/Set functions // track ID @@ -252,9 +256,7 @@ public: // With description // this will be set equal to 'StepLength' in G4Step. G4double fWeight; - // This is a weight for this track used by G4VEvtBiasMechanism - // to execute inclusive simulation for hadronic/electomagnetic shower - // and neutron transportation etc. + // This is a weight for this track const G4Step* fpStep; diff --git a/source/track/include/G4Track.icc b/source/track/include/G4Track.icc index 47c6fa1f3f..4eac2be7e6 100644 --- a/source/track/include/G4Track.icc +++ b/source/track/include/G4Track.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Track.icc,v 1.8 2001/10/22 04:19:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Track.icc,v 1.9 2001/12/13 15:31:24 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //----------------------------------------------------------------- // Definitions of inline functions @@ -42,8 +42,8 @@ { aTrackAllocator.FreeSingle((G4Track *) aTrack);} // Override "delete" for "G4Allocator". - inline int G4Track::operator==( const G4Track& s) - { return (this==&s) ? 1 : 0; } + inline G4bool G4Track::operator==( const G4Track& s) + { return (this==&s); } // Define "==" operator because "G4TrackVector" uses // "RWPtrOrderdVector" which requires this. diff --git a/source/track/include/G4TrackFastVector.hh b/source/track/include/G4TrackFastVector.hh index b5868c4eb9..f03459a7b6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4TrackStatus.hh b/source/track/include/G4TrackStatus.hh index efdd84043d..8584333c7a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4VParticleChange.hh b/source/track/include/G4VParticleChange.hh index c1e9874a71..cfafd2d7d4 100644 --- a/source/track/include/G4VParticleChange.hh +++ b/source/track/include/G4VParticleChange.hh @@ -22,7 +22,7 @@ // // // $Id: G4VParticleChange.hh,v 1.7 2001/11/13 05:13:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4VParticleChange.icc b/source/track/include/G4VParticleChange.icc index 6fed227261..3586f5c44c 100644 --- a/source/track/include/G4VParticleChange.icc +++ b/source/track/include/G4VParticleChange.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticleChange.icc,v 1.8 2001/11/13 05:13:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VParticleChange.icc,v 1.9 2001/12/24 05:14:39 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //---------------------------------------------------------------- // Virtual methods for updating G4Step @@ -50,7 +50,8 @@ inline G4Step* G4VParticleChange::UpdateStepForAlongStep(G4Step* Step) { if (!fSetParentWeightByProcess){ - Step->GetPostStepPoint()->SetWeight( theParentWeight ); + G4double newWeight= theParentWeight/(Step->GetPreStepPoint()->GetWeight())*(Step->GetPostStepPoint()->GetWeight()); + Step->GetPostStepPoint()->SetWeight( newWeight ); } return UpdateStepInfo(Step); } diff --git a/source/track/include/G4VUserTrackInformation.hh b/source/track/include/G4VUserTrackInformation.hh index fcbed1e2b3..6a54aa78ea 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4EvtBiasMechanism.cc b/source/track/src/G4EvtBiasMechanism.cc deleted file mode 100644 index 12ab602e0e..0000000000 --- a/source/track/src/G4EvtBiasMechanism.cc +++ /dev/null @@ -1,109 +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: G4EvtBiasMechanism.cc,v 1.5 2001/08/16 08:17:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ -// -// -// -------------------------------------------------------------- -// GEANT 4 class implementation file -// -// -// -// ------------------------------------------------------------ -// Implemented for the new scheme 9 Nov. 1998 H.Kurahige -// -------------------------------------------------------------- - -#include "G4EvtBiasMechanism.hh" -#include "G4VParticleChange.hh" -#include "G4Track.hh" -#include "G4Step.hh" - - -G4EvtBiasMechanism::G4EvtBiasMechanism(const G4String& name, G4int mulFactor): - G4VEvtBiasMechanism(name), - particleToBeBiased(0), - MultiplicationForSecondaries(mulFactor) -{ -} - -G4EvtBiasMechanism::G4EvtBiasMechanism(const G4EvtBiasMechanism& right): - G4VEvtBiasMechanism(right), - MultiplicationForSecondaries(right.MultiplicationForSecondaries) -{ - particleToBeBiased = right.particleToBeBiased; -} - -G4EvtBiasMechanism::~G4EvtBiasMechanism() -{ -} - -G4VParticleChange* G4EvtBiasMechanism::ApplyMath( G4VParticleChange* pChange, - const G4Step& aStep ) -{ - if (particleToBeBiased != 0) { - G4int currentNumberOfSecondaries = pChange->GetNumberOfSecondaries(); - G4int totalNumberOfSecondaries = currentNumberOfSecondaries; - G4int idx; - G4Track* track; - G4double theParentWeight = pChange->GetParentWeight(); - - G4TrackFastVector* tempList = new G4TrackFastVector(); - tempList->Initialize(currentNumberOfSecondaries); - - // fill tempList - for (idx=0; idxGetSecondary(idx); - tempList->SetElement(idx, track); - if ( particleToBeBiased == track->GetDefinition() ) { - totalNumberOfSecondaries += (MultiplicationForSecondaries-1); - } - } - - pChange->Clear(); - pChange->SetNumberOfSecondaries(totalNumberOfSecondaries); - for (idx=0; idxGetDefinition()) { - track->SetWeight( theParentWeight/double( MultiplicationForSecondaries) ); - pChange->AddSecondary(track); - for (G4int i=0; iGetDynamicParticle()) ), - track->GetGlobalTime(), - track->GetPosition() - ); - newTrack->SetWeight( theParentWeight/double( MultiplicationForSecondaries) ); - pChange->AddSecondary(newTrack); - } - } else { - track->SetWeight( theParentWeight ); - pChange->AddSecondary(track); - } - } - delete tempList; - } - return pChange; -} - diff --git a/source/track/src/G4ParticleChange.cc b/source/track/src/G4ParticleChange.cc index e083859fec..6fbeee01fc 100644 --- a/source/track/src/G4ParticleChange.cc +++ b/source/track/src/G4ParticleChange.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleChange.cc,v 1.18 2001/11/21 14:05:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4ParticleChange.cc,v 1.21 2001/12/24 05:14:40 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- @@ -128,10 +128,10 @@ void G4ParticleChange::AddSecondary(G4DynamicParticle* aParticle, // set IsGoodGorTrackingFlag if (IsGoodForTracking) aTrack->SetGoodForTrackingFlag(); - // Touchable is a temporary object, so you cannot keep the pointer - aTrack->SetTouchableHandle((G4VTouchable*)0); - - // add a secondary + // Touchable handle is copied to keep the pointer + aTrack->SetTouchableHandle(theCurrentTrack->GetTouchableHandle()); + + // add a secondary G4VParticleChange::AddSecondary(aTrack); } @@ -163,7 +163,7 @@ void G4ParticleChange::AddSecondary(G4DynamicParticle* aParticle, if (IsGoodForTracking) aTrack->SetGoodForTrackingFlag(); // Touchable handle is copied to keep the pointer - aTrack->SetTouchableHandle(theCurrentTrack->GetTouchableHandle()); + aTrack->SetTouchableHandle(theCurrentTrack->GetTouchableHandle()); // add a secondary G4VParticleChange::AddSecondary(aTrack); @@ -268,7 +268,8 @@ G4Step* G4ParticleChange::UpdateStepForAlongStep(G4Step* pStep) - pPreStepPoint->GetProperTime()); // update weight - pPostStepPoint->SetWeight( theWeightChange ); + G4double newWeight= theWeightChange/(pPreStepPoint->GetWeight())*(pPostStepPoint->GetWeight()); + pPostStepPoint->SetWeight( newWeight ); #ifdef G4VERBOSE if (debugFlag) CheckIt(*aTrack); diff --git a/source/track/src/G4ParticleChangeForDecay.cc b/source/track/src/G4ParticleChangeForDecay.cc index 1cf23b8809..8514b97a1a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForLoss.cc b/source/track/src/G4ParticleChangeForLoss.cc index 61e059ffc7..e56e0984ba 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForMSC.cc b/source/track/src/G4ParticleChangeForMSC.cc index af841c04ee..ed62da2ca8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForTransport.cc b/source/track/src/G4ParticleChangeForTransport.cc index ddef62931d..99ae2be156 100644 --- a/source/track/src/G4ParticleChangeForTransport.cc +++ b/source/track/src/G4ParticleChangeForTransport.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForTransport.cc,v 1.11 2001/10/22 04:19:41 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4Step.cc b/source/track/src/G4Step.cc index 450627a874..6674a2d39b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4StepPoint.cc b/source/track/src/G4StepPoint.cc index 205d7f2fbd..79cd20eeba 100644 --- a/source/track/src/G4StepPoint.cc +++ b/source/track/src/G4StepPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepPoint.cc,v 1.7 2001/08/16 08:17:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4Track.cc b/source/track/src/G4Track.cc index 13586f6025..b86ceb6267 100644 --- a/source/track/src/G4Track.cc +++ b/source/track/src/G4Track.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Track.cc,v 1.15 2001/12/10 08:36:54 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4Track.cc,v 1.18 2002/02/12 01:48:53 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- @@ -49,8 +49,9 @@ G4Track::G4Track(G4DynamicParticle* apValueDynamicParticle, fpDynamicParticle(apValueDynamicParticle), fTrackStatus(fAlive), fBelowThreshold(false), fGoodForTracking(false), - fWeight(1.0), + fStepLength(0.0), fWeight(1.0), fpStep(0), + fVtxKineticEnergy(0.0), fpLVAtVertex(0), fpCreatorProcess(0), fpUserInformation(0) { @@ -66,8 +67,9 @@ G4Track::G4Track() fpDynamicParticle(0), fTrackStatus(fAlive), fBelowThreshold(false), fGoodForTracking(false), - fWeight(1.0), + fStepLength(0.0), fWeight(1.0), fpStep(0), + fVtxKineticEnergy(0.0), fpLVAtVertex(0), fpCreatorProcess(0), fpUserInformation(0) { @@ -97,6 +99,7 @@ G4Track & G4Track::operator=(const G4Track &right) fLocalTime = right.fLocalTime; fTrackLength = right.fTrackLength; fWeight = right.fWeight; + fStepLength = right.fStepLength; // Track ID (and Parent ID) is not copied and set to zero for new track fTrackID = 0; @@ -131,10 +134,27 @@ G4Track & G4Track::operator=(const G4Track &right) return *this; } +/////////////////// +void G4Track::CopyTrackInfo(const G4Track& right) +////////////////// +{ + *this = right; +} + +#include "G4ParticleTable.hh" /////////////////// G4double G4Track::GetVelocity() const /////////////////// { + static G4bool isFirstTime = true; + static G4ParticleDefinition* fOpticalPhoton =0; + + if ( isFirstTime ) { + isFirstTime = false; + // set fOpticalPhoton + fOpticalPhoton = G4ParticleTable::GetParticleTable()->FindParticle("opticalphoton"); + } + G4double velocity ; G4double mass = fpDynamicParticle->GetMass(); @@ -144,8 +164,9 @@ G4double G4Track::GetVelocity() const velocity = c_light ; // special case for photons - if(fpDynamicParticle->GetDefinition()->GetParticleName()=="opticalphoton"){ - G4Material* + if ( (fOpticalPhoton !=0) && + (fpDynamicParticle->GetDefinition()==fOpticalPhoton) ){ + G4Material* mat=fpTouchable->GetVolume()->GetLogicalVolume()->GetMaterial(); if(mat->GetMaterialPropertiesTable() != 0){ diff --git a/source/track/src/G4VParticleChange.cc b/source/track/src/G4VParticleChange.cc index f6be5f72b2..575b5087da 100644 --- a/source/track/src/G4VParticleChange.cc +++ b/source/track/src/G4VParticleChange.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticleChange.cc,v 1.9 2001/11/13 05:13:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VParticleChange.cc,v 1.10 2001/12/14 09:59:36 kurasige Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // -------------------------------------------------------------- @@ -37,7 +37,6 @@ #include "G4Track.hh" #include "G4Step.hh" #include "G4TrackFastVector.hh" -#include "G4Mars5GeVMechanism.hh" const G4double G4VParticleChange::accuracyForWarning = 1.0e-9; const G4double G4VParticleChange::accuracyForException = 0.001; diff --git a/source/tracking/History b/source/tracking/History index bb129ff357..1b4490c010 100644 --- a/source/tracking/History +++ b/source/tracking/History @@ -1,4 +1,4 @@ -$Id: History,v 1.27 2001/12/06 10:06:43 gcosmo Exp $ +$Id: History,v 1.34 2002/04/25 20:21:13 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,41 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Apr 25, 02 M.Asai (tracking-V04-00-05) +- G4TrackingManager.cc + o Implement EventAborted() method + +Feb 07. 02 T.Sasaki (tracking-V04-00-04) +- G4SteppingManager.cc + o Withdrawal of the fix in tracking-V04-00-02 + +Feb 04, 02 G.Cosmo (tracking-V04-00-03) +- G4SteppingManager.hh + o moved 'SizeOfSelectedDoItVector' to global scope again, to allow porting on + WIN-VC compiler. As private member, the following error is reported: + - illegal pure syntax, must be '= 0' - + - 'SizeOfSelectedDoItVector' : pure specifier can only be specified for functions - + +Feb 03, 02 T.Sasaki and H.Kurashige +- G4SteppingManager2.cc + o fix for extra steps when the ApplyCuts flag is set + +Jan 23, 02 T.Sasaki(tracking-V04-00-02) +- G4SteppingManager.cc + o safe comparison between floating numbers (0.0->DBL_MIN) + +Jan 22, 02 M.Asai (tracking-V04-00-01) +- G4SteppingManager.cc + o Issue G4Exception if a primary track starts outside of the world. + +Jan 21, 02 T.Sasaki (tracking-V04-00-00) +- G4SteppingManager[.hh.cc]: + o Fixed a bug for particles below threshold. Avoid double steps. + If any of decay process might not set the GoodForTracking flag + properly, the particle will be killed. + o moved static variable SizeOfSelectedDoItVector from the global + to class scope. + Dec 06, 01 G.Cosmo (tracking-V03-02-05) - G4SteppingVerbose.cc: removed trigraph warning on Linux-g++. diff --git a/source/tracking/include/G4SteppingManager.hh b/source/tracking/include/G4SteppingManager.hh index e8eac36f72..ef68546d2f 100644 --- a/source/tracking/include/G4SteppingManager.hh +++ b/source/tracking/include/G4SteppingManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager.hh,v 1.18 2001/11/07 13:02:07 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SteppingManager.hh,v 1.20 2002/02/04 07:58:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // //--------------------------------------------------------------- // @@ -51,19 +51,18 @@ class G4SteppingManager; #ifndef G4SteppingManager_h #define G4SteppingManager_h 1 -#include "G4ios.hh" // Include from 'system' -#include "g4std/iomanip" // Include from 'system' -#include "g4std/vector" // Include from 'system' +class G4VSensitiveDetector; + +#include "G4ios.hh" // Include from 'system' +#include "g4std/iomanip" // Include from 'system' +#include "g4std/vector" // Include from 'system' #include "globals.hh" // Include from 'global' #include "Randomize.hh" // Include from 'global' + #include "G4Navigator.hh" // Include from 'geometry' #include "G4LogicalVolume.hh" // Include from 'geometry' #include "G4VPhysicalVolume.hh" // Include from 'geometry' -//#include "G4VSensitiveDetector.hh" // Include from 'hits/digi' -class G4VSensitiveDetector; #include "G4ProcessManager.hh" // Include from 'piim' -//#include "G4DynamicParticleVector.hh" // Include from 'piim' -//#include "G4Hit.hh" // Include from 'Hit/dig' #include "G4Track.hh" // Include from 'tracking' #include "G4TrackVector.hh" // Include from 'tracking' @@ -72,13 +71,11 @@ class G4VSensitiveDetector; #include "G4UserSteppingAction.hh" // Include from 'tracking' #include "G4Step.hh" // Include from 'tracking' #include "G4StepPoint.hh" // Include from 'tracking' -#include "G4VSteppingVerbose.hh" // Include from 'tracking' -#include "G4TouchableHandle.hh" // Include from 'geometry' +#include "G4VSteppingVerbose.hh" // Include from 'tracking' +#include "G4TouchableHandle.hh" // Include from 'geometry' #include "G4TouchableHistoryHandle.hh" // Include from 'geometry' -// must be changed in elegant way -static const size_t SizeOfSelectedDoItVector=100; -// RogueWave Tools.h++ +// typedef G4std::vector G4SelectedAtRestDoItVector; typedef G4std::vector @@ -86,10 +83,14 @@ static const size_t SizeOfSelectedDoItVector=100; typedef G4std::vector G4SelectedPostStepDoItVector; + static const size_t SizeOfSelectedDoItVector=100; + // In global scope for porting on WIN-VC compiler... + /////////////////////// class G4SteppingManager /////////////////////// { + //-------- public: //without description //-------- @@ -499,8 +500,3 @@ public: //without description #endif - - - - - diff --git a/source/tracking/include/G4SteppingVerbose.hh b/source/tracking/include/G4SteppingVerbose.hh index 30fdd414d6..036d0b6771 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackVector.hh b/source/tracking/include/G4TrackVector.hh index 1986d1ff5e..878d19cf51 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackingManager.hh b/source/tracking/include/G4TrackingManager.hh index e939f54a61..c186013f58 100644 --- a/source/tracking/include/G4TrackingManager.hh +++ b/source/tracking/include/G4TrackingManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackingManager.hh,v 1.13 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackingMessenger.hh b/source/tracking/include/G4TrackingMessenger.hh index 709e2fad35..60637701d7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4Trajectory.hh b/source/tracking/include/G4Trajectory.hh index ec4232f0ed..8318fd2985 100644 --- a/source/tracking/include/G4Trajectory.hh +++ b/source/tracking/include/G4Trajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4Trajectory.hh,v 1.14 2001/11/07 10:39:46 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrajectoryPoint.hh b/source/tracking/include/G4TrajectoryPoint.hh index a6440bffbe..c79ad5d93d 100644 --- a/source/tracking/include/G4TrajectoryPoint.hh +++ b/source/tracking/include/G4TrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryPoint.hh,v 1.7 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4UserSteppingAction.hh b/source/tracking/include/G4UserSteppingAction.hh index 8a471a8644..46ab9cd772 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4UserTrackingAction.hh b/source/tracking/include/G4UserTrackingAction.hh index 4c769d3be8..fe24018685 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VSteppingVerbose.hh b/source/tracking/include/G4VSteppingVerbose.hh index 3a47ee94b5..a4dcb2d617 100644 --- a/source/tracking/include/G4VSteppingVerbose.hh +++ b/source/tracking/include/G4VSteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: G4VSteppingVerbose.hh,v 1.13 2001/11/07 13:04:50 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VTrajectory.hh b/source/tracking/include/G4VTrajectory.hh index ae2e205fe3..4c0482182f 100644 --- a/source/tracking/include/G4VTrajectory.hh +++ b/source/tracking/include/G4VTrajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTrajectory.hh,v 1.6 2001/07/11 10:08:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VTrajectoryPoint.hh b/source/tracking/include/G4VTrajectoryPoint.hh index bb659fe283..20b9c80c9b 100644 --- a/source/tracking/include/G4VTrajectoryPoint.hh +++ b/source/tracking/include/G4VTrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTrajectoryPoint.hh,v 1.5 2001/07/11 10:08:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class description diff --git a/source/tracking/src/.cvsignore b/source/tracking/src/.cvsignore deleted file mode 100644 index 4674a1dd59..0000000000 --- a/source/tracking/src/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.d -TAGS diff --git a/source/tracking/src/G4SteppingManager.cc b/source/tracking/src/G4SteppingManager.cc index 8e15fa96ce..5c5eeed7f1 100644 --- a/source/tracking/src/G4SteppingManager.cc +++ b/source/tracking/src/G4SteppingManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager.cc,v 1.23 2001/12/04 17:15:50 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SteppingManager.cc,v 1.28 2002/02/07 04:00:22 tsasaki Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- @@ -259,9 +259,10 @@ void G4SteppingManager::SetInitialStep(G4Track* valueTrack) // If the primary track has 'zero' kinetic energy, set the track // state to 'StopButAlive'. if(fTrack->GetKineticEnergy() <= 0.0){ - fTrack->SetTrackStatus( fStopButAlive ); + fTrack->SetTrackStatus( fStopButAlive ); } + // Set Touchable to track and a private attribute of G4SteppingManager @@ -296,6 +297,15 @@ void G4SteppingManager::SetInitialStep(G4Track* valueTrack) // If track is already outside the world boundary, kill it if( fCurrentVolume==0 ){ + // If the track is a primary, stop processing + if(fTrack->GetParentID()==0) + { + G4cerr << "Primary particle starting at " + << fTrack->GetPosition() + << " is outside of the world volume." << G4endl; + G4Exception("G4SteppingManager::Primary vertex outside of the world"); + } + fTrack->SetTrackStatus( fStopAndKill ); G4cerr << "G4SteppingManager::SetInitialStep(): warning: " << "initial track position is outside world! " diff --git a/source/tracking/src/G4SteppingManager2.cc b/source/tracking/src/G4SteppingManager2.cc index ae04019ff1..dc8ef23dee 100644 --- a/source/tracking/src/G4SteppingManager2.cc +++ b/source/tracking/src/G4SteppingManager2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager2.cc,v 1.4 2001/11/07 13:14:45 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4SteppingManager2.cc,v 1.5 2002/02/04 01:49:08 tsasaki Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- @@ -301,15 +301,16 @@ void G4SteppingManager::InvokeAtRestDoItProcs() -> GetEnergyThreshold(tMaterial); if( tempSecondaryTrack->GetKineticEnergy()GetDefinition(), - tempSecondaryTrack->GetKineticEnergy(), - tMaterial - ); - if (currentRange < CalculateSafety() ){ - tBelowCutEnergyAndSafety = true; - } + tBelowCutEnergyAndSafety = true; + if (tempSecondaryTrack-> GetDynamicParticle()->GetCharge() !=0.0) { + G4double currentRange + = G4EnergyLossTables::GetRange( + tempSecondaryTrack->GetDefinition(), + tempSecondaryTrack->GetKineticEnergy(), + tMaterial + ); + tBelowCutEnergyAndSafety = (currentRange < CalculateSafety() ); + } } if( tBelowCutEnergyAndSafety ){ @@ -328,20 +329,27 @@ void G4SteppingManager::InvokeAtRestDoItProcs() } } - // If this 2ndry particle has 'zero' kinetic energy, make sure - // it invokes a rest process at the beginning of the tracking - if(tempSecondaryTrack->GetKineticEnergy() <= 0.){ - tempSecondaryTrack->SetTrackStatus( fStopButAlive ); - } - // Set parentID tempSecondaryTrack->SetParentID( fTrack->GetTrackID() ); // Set the process pointer which created this track tempSecondaryTrack->SetCreatorProcess( fCurrentProcess ); + + // If this 2ndry particle has 'zero' kinetic energy, make sure + // it invokes a rest process at the beginning of the tracking + if(tempSecondaryTrack->GetKineticEnergy() <= 0.){ + G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager(); + if (pm->GetAtRestProcessVector()->entries()>0){ + tempSecondaryTrack->SetTrackStatus( fStopButAlive ); + fSecondary->push_back( tempSecondaryTrack ); + } else { + delete tempSecondaryTrack; + } + } else { + fSecondary->push_back( tempSecondaryTrack ); + } + } //end of loop on secondary - fSecondary->push_back ( tempSecondaryTrack ); - } // clear ParticleChange fParticleChange->Clear(); @@ -405,16 +413,17 @@ void G4SteppingManager::InvokeAlongStepDoItProcs() tProdThreshold = tempSecondaryTrack->GetDefinition() -> GetEnergyThreshold(tMaterial); - if( tempSecondaryTrack->GetKineticEnergy()GetDefinition(), - tempSecondaryTrack->GetKineticEnergy(), - tMaterial - ); - if (currentRange < CalculateSafety() ){ - tBelowCutEnergyAndSafety = true; - } + if( tempSecondaryTrack->GetKineticEnergy() GetDynamicParticle()->GetCharge() !=0.0) { + G4double currentRange + = G4EnergyLossTables::GetRange( + tempSecondaryTrack->GetDefinition(), + tempSecondaryTrack->GetKineticEnergy(), + tMaterial + ); + tBelowCutEnergyAndSafety = (currentRange < CalculateSafety() ); + } } if( tBelowCutEnergyAndSafety ){ @@ -433,21 +442,27 @@ void G4SteppingManager::InvokeAlongStepDoItProcs() } } - // If this 2ndry particle has 'zero' kinetic energy, make sure - // it invokes a rest process at the beginning of the tracking - if(tempSecondaryTrack->GetKineticEnergy() <= 0.){ - tempSecondaryTrack->SetTrackStatus( fStopButAlive ); - } - // Set parentID tempSecondaryTrack->SetParentID( fTrack->GetTrackID() ); // Set the process pointer which created this track tempSecondaryTrack->SetCreatorProcess( fCurrentProcess ); - fSecondary->push_back( tempSecondaryTrack ); - } - + // If this 2ndry particle has 'zero' kinetic energy, make sure + // it invokes a rest process at the beginning of the tracking + if(tempSecondaryTrack->GetKineticEnergy() <= 0.){ + G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager(); + if (pm->GetAtRestProcessVector()->entries()>0){ + tempSecondaryTrack->SetTrackStatus( fStopButAlive ); + fSecondary->push_back( tempSecondaryTrack ); + } else { + delete tempSecondaryTrack; + } + } else { + fSecondary->push_back( tempSecondaryTrack ); + } + } //end of loop on secondary + // Set the track status according to what the process defined fTrack->SetTrackStatus( fParticleChange->GetStatusChange() ); @@ -511,53 +526,60 @@ void G4SteppingManager::InvokePostStepDoItProcs() // Check if the particle should be passed without coherent cut if(tApplyCutFlag){ - tBelowCutEnergyAndSafety = false; - tMaterial = fPostStepPoint->GetMaterial(); - tProdThreshold = tempSecondaryTrack->GetDefinition() - -> GetEnergyThreshold(tMaterial); - - if( tempSecondaryTrack->GetKineticEnergy()GetDefinition(), - tempSecondaryTrack->GetKineticEnergy(), - tMaterial - ); - if (currentRange < CalculateSafety() ){ - tBelowCutEnergyAndSafety = true; - } - } - - if( tBelowCutEnergyAndSafety ){ - if( !(tempSecondaryTrack->IsGoodForTracking()) ){ - + tBelowCutEnergyAndSafety = false; + tMaterial = fPostStepPoint->GetMaterial(); + tProdThreshold = tempSecondaryTrack->GetDefinition() + -> GetEnergyThreshold(tMaterial); + + if( tempSecondaryTrack->GetKineticEnergy() GetDynamicParticle()->GetCharge() !=0.0) { + G4double currentRange + = G4EnergyLossTables::GetRange( + tempSecondaryTrack->GetDefinition(), + tempSecondaryTrack->GetKineticEnergy(), + tMaterial + ); + tBelowCutEnergyAndSafety = (currentRange < CalculateSafety() ); + } + } + + if( tBelowCutEnergyAndSafety ){ + if( !(tempSecondaryTrack->IsGoodForTracking()) ){ + //// G4cout << "!! Warning - G4SteppingManager:" << G4endl; //// << " This physics process generated a secondary" //// << " of which energy is below cut but" //// << " GoodForTracking is off !!!!!" << G4endl; - // Add kinetic energy to the total energy deposit - fStep->AddTotalEnergyDeposit( - tempSecondaryTrack->GetKineticEnergy() ); - tempSecondaryTrack->SetKineticEnergy(0.0); - } - } + // Add kinetic energy to the total energy deposit + fStep->AddTotalEnergyDeposit( + tempSecondaryTrack->GetKineticEnergy() ); + tempSecondaryTrack->SetKineticEnergy(0.0); + } + } } - - // If this 2ndry particle has 'zero' kinetic energy, make sure - // it invokes a rest process at the beginning of the tracking - if(tempSecondaryTrack->GetKineticEnergy() <= 0.){ - tempSecondaryTrack->SetTrackStatus( fStopButAlive ); - } - + // Set parentID tempSecondaryTrack->SetParentID( fTrack->GetTrackID() ); // Set the process pointer which created this track tempSecondaryTrack->SetCreatorProcess( fCurrentProcess ); - fSecondary->push_back( tempSecondaryTrack ); - } + // If this 2ndry particle has 'zero' kinetic energy, make sure + // it invokes a rest process at the beginning of the tracking + if(tempSecondaryTrack->GetKineticEnergy() <= 0.){ + G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager(); + if (pm->GetAtRestProcessVector()->entries()>0){ + tempSecondaryTrack->SetTrackStatus( fStopButAlive ); + fSecondary->push_back( tempSecondaryTrack ); + } else { + delete tempSecondaryTrack; + } + } else { + fSecondary->push_back( tempSecondaryTrack ); + } + } //end of loop on secondary // Set the track status according to what the process defined fTrack->SetTrackStatus( fParticleChange->GetStatusChange() ); diff --git a/source/tracking/src/G4SteppingVerbose.cc b/source/tracking/src/G4SteppingVerbose.cc index 76ca636abd..425d600c06 100644 --- a/source/tracking/src/G4SteppingVerbose.cc +++ b/source/tracking/src/G4SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: G4SteppingVerbose.cc,v 1.10 2001/12/06 10:04:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4TrackingManager.cc b/source/tracking/src/G4TrackingManager.cc index db0d77d484..e34b26af0c 100644 --- a/source/tracking/src/G4TrackingManager.cc +++ b/source/tracking/src/G4TrackingManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackingManager.cc,v 1.10 2001/11/07 12:39:11 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4TrackingManager.cc,v 1.11 2002/04/25 20:21:14 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- @@ -149,6 +149,7 @@ void G4TrackingManager::SetTrajectory(G4VTrajectory* aTrajectory) void G4TrackingManager::EventAborted() ////////////////////////////////////// { + fpTrack->SetTrackStatus( fKillTrackAndSecondaries ); } //************************************************************************ diff --git a/source/tracking/src/G4TrackingMessenger.cc b/source/tracking/src/G4TrackingMessenger.cc index 3062c92485..ac958d4b40 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4Trajectory.cc b/source/tracking/src/G4Trajectory.cc index 5b616b8439..bd698cb874 100644 --- a/source/tracking/src/G4Trajectory.cc +++ b/source/tracking/src/G4Trajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4Trajectory.cc,v 1.14 2001/11/07 10:45:37 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4TrajectoryPoint.cc b/source/tracking/src/G4TrajectoryPoint.cc index ed1bcccc42..96337c0c6f 100644 --- a/source/tracking/src/G4TrajectoryPoint.cc +++ b/source/tracking/src/G4TrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryPoint.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4UserSteppingAction.cc b/source/tracking/src/G4UserSteppingAction.cc index 915ae87d52..d59574cb53 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4UserTrackingAction.cc b/source/tracking/src/G4UserTrackingAction.cc index 494602429b..53cbeb8ae3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4VSteppingVerbose.cc b/source/tracking/src/G4VSteppingVerbose.cc index 79d06617a9..54073296ad 100644 --- a/source/tracking/src/G4VSteppingVerbose.cc +++ b/source/tracking/src/G4VSteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSteppingVerbose.cc,v 1.7 2001/11/07 13:15:18 radoone Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //--------------------------------------------------------------- diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh index 8c038b4741..125cdc4b1b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Satoshi TANAKA // DAWNFILE driver factory. diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh index 4294aa4979..e6c541b808 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILESceneHandler.hh,v 1.10 2001/09/17 07:40:32 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh index 3d4fbee387..fbf24a9887 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a6f22b22e7..15e460ddf7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 a8074ee58e..f95507afea 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 3ef2c1459e..75382a246f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #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 96bdfdf053..2bef66498d 100644 --- a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc +++ b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc @@ -22,7 +22,7 @@ // // // $Id: G4FRSceneFunc.icc,v 1.1 2001/12/01 20:59:59 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // diff --git a/source/visualization/FukuiRenderer/include/G4FRofstream.hh b/source/visualization/FukuiRenderer/include/G4FRofstream.hh index dc06e44448..4ebd4dc2f7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include"g4std/fstream" diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh b/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh index 591fc77540..7497493598 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh index 623dffd8b7..a9d6c2b957 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererSceneHandler.hh,v 1.9 2001/09/17 07:40:32 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Satoshi TANAKA, Fri Jun 28 11:19:19 JST 1996 diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh b/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh index f4c0c4fb28..a81bf0854e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 0de9bbd4b5..2bc531fa56 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Satoshi TANAKA // DAWNFILE factory. diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc index bfac1d77d3..acb079ba1d 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILESceneHandler.cc,v 1.11 2001/12/01 20:52:06 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Satoshi TANAKA // DAWNFILE scene. diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc index 13400b0e48..c5c0fec5dd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 9383fb3456..7bb8562e4a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 69bf4a04cd..319adfa0ff 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc index 8bf77a87de..78eea6a688 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererSceneHandler.cc,v 1.8 2001/12/01 20:52:06 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Satoshi TANAKA, Fri Jun 28 11:34:24 JST 1996 diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc index 38fdbbe175..d060f64e82 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Satoshi TANAKA, Fri Jun 28 12:09:11 JST 1996 diff --git a/source/visualization/HepRep/History b/source/visualization/HepRep/History index ef7f09818b..cb8c60b94c 100644 --- a/source/visualization/HepRep/History +++ b/source/visualization/HepRep/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2001/11/19 15:08:37 johna Exp $ +$Id: History,v 1.16 2002/02/10 07:12:52 perl Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,32 @@ committal in the CVS repository ! History file for visualization/HepRep sub-category --------------------------------------------------------------------------- +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, + but may be useful in other applications of HepRepXMLWriter). + +3rd February 2002 Joseph Perl +- Detect transient data by testing for + !fpCurrentPV || fReadyForTransients + rather than just fReadyForTransients + +1st February 2002 Joseph Perl +- Defer file opening until first real HepRepType is to be written. +- Moved HepRep code from AddThis to AddPrimitive. +- Add additional levels to hierarchy if any appear to have been + removed by culling. +- Add visibility attribute. + +29th January 2002 Joseph Perl +- Relocate file-opening logic to constructor and ShowView + (had been in SetView). + +28th January 2002 Joseph Perl +- Produce hierarchical output rather than flat HepRepType structure. +- Handle trajectories as well as detector geometry. +- Output files now named G4Data.heprep where n increments with each open. + 19th November 2001 John Allison (vis-V03-02-19) - Added G4HEPREPFILEDEBUG to control debug code. - Changed to "g4std/fstream". diff --git a/source/visualization/HepRep/include/G4HepRepFile.hh b/source/visualization/HepRep/include/G4HepRepFile.hh index 1fb91b12fe..fb96a38baf 100644 --- a/source/visualization/HepRep/include/G4HepRepFile.hh +++ b/source/visualization/HepRep/include/G4HepRepFile.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HepRepFile.hh,v 1.1 2001/11/06 11:48:04 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HepRepFile.hh,v 1.4 2002/02/02 04:00:12 perl Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh index 7a4e25633d..34d54c417f 100644 --- a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh +++ b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4HepRepFileSceneHandler.hh,v 1.4 2001/11/21 16:48:58 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HepRepFileSceneHandler.hh,v 1.7 2002/02/02 04:00:14 perl Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -// John Allison 5th April 2001 -// A base class for a scene handler to dump geometry hierarchy. +// Joseph Perl 27th January 2002 +// A base class for a scene handler to export geometry and trajectories +// to the HepRep xml file format. #ifndef G4HepRepFileSCENEHANDLER_HH #define G4HepRepFileSCENEHANDLER_HH @@ -105,8 +106,8 @@ public: // void BeginPrimitives(const G4Transform3D& objectTransformation); // void EndPrimitives(); - // void BeginModeling(); - // void EndModeling(); + void BeginModeling(); + void EndModeling(); //////////////////////////////////////////////////////////////// // Required... @@ -121,9 +122,14 @@ 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; + void AddHepRepInstance(const char* primName, + const G4Visible visible); + int fileCounter; #ifdef G4HEPREPFILEDEBUG void PrintThings(); diff --git a/source/visualization/HepRep/include/G4HepRepFileViewer.hh b/source/visualization/HepRep/include/G4HepRepFileViewer.hh index 26735a1b49..015d568718 100644 --- a/source/visualization/HepRep/include/G4HepRepFileViewer.hh +++ b/source/visualization/HepRep/include/G4HepRepFileViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HepRepFileViewer.hh,v 1.2 2001/11/19 15:06:52 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HepRepFileViewer.hh,v 1.5 2002/02/02 04:00:16 perl Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 @@ -36,6 +36,7 @@ #include "G4VViewer.hh" #include "HepRepXMLWriter.hh" +#include "G4HepRepFileSceneHandler.hh" class G4HepRepFileViewer: public G4VViewer { public: diff --git a/source/visualization/HepRep/include/HepRepXMLWriter.hh b/source/visualization/HepRep/include/HepRepXMLWriter.hh index ad4277f1b7..11d0188b19 100644 --- a/source/visualization/HepRep/include/HepRepXMLWriter.hh +++ b/source/visualization/HepRep/include/HepRepXMLWriter.hh @@ -22,7 +22,7 @@ // //-------------------------------------------------------------------------- // File and Version Information: -// $Id: HepRepXMLWriter.hh,v 1.4 2001/12/13 12:04:25 gunter Exp $ +// $Id: HepRepXMLWriter.hh,v 1.8 2002/02/02 04:00:19 perl Exp $ // // Description: // Create a HepRep XML File (HepRep version 1). @@ -47,7 +47,7 @@ class HepRepXMLWriter public: HepRepXMLWriter(); - void addType(const char* name); + void addType(const char* name, int newTypeDepth); void addInstance(); void addPrimitive(); void addPoint(double x, double y, double z); @@ -57,7 +57,6 @@ public: const char* type, const char* extra); - // Four methods to fill attValues void addAttValue(const char* name, const char* value); @@ -77,12 +76,20 @@ public: void open(const char* filespec); void close(); + + void endTypes(); + + bool isOpen; + int typeDepth; + bool inType[50]; + bool inInstance[50]; + char* prevTypeName[50]; private: G4std::ofstream fout; - bool inType; - bool inInstance; + void init(); + bool inPrimitive; bool inPoint; diff --git a/source/visualization/HepRep/src/G4HepRepFile.cc b/source/visualization/HepRep/src/G4HepRepFile.cc index 03d9ec3432..ec32912126 100644 --- a/source/visualization/HepRep/src/G4HepRepFile.cc +++ b/source/visualization/HepRep/src/G4HepRepFile.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HepRepFile.cc,v 1.1 2001/11/06 11:48:07 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HepRepFile.cc,v 1.4 2002/02/02 04:00:22 perl Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Joseph Perl 1 October 2001 diff --git a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc index 522e6d6015..5f744d025f 100644 --- a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4HepRepFileSceneHandler.cc,v 1.3 2001/11/19 15:07:28 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HepRepFileSceneHandler.cc,v 1.7 2002/02/03 22:22:58 perl Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // -// John Allison 5th April 2001 -// A base class for a scene handler to dump geometry hierarchy. -// Based on a provisional G4HepRepFileGraphicsScene (was in modeling). +// Joseph Perl 27th January 2002 +// A base class for a scene handler to export geometry and trajectories +// to the HepRep xml file format. #include "G4HepRepFileSceneHandler.hh" #include "G4HepRepFile.hh" @@ -65,12 +65,39 @@ G4HepRepFileSceneHandler::G4HepRepFileSceneHandler(G4VGraphicsSystem& system, fSceneCount++; hepRepXMLWriter = ((G4HepRepFile*)(&system))->GetHepRepXMLWriter(); - G4cout << " From scene handler const: opening file, G4HepRepFile.xml" - << G4endl; + fileCounter = 0; } G4HepRepFileSceneHandler::~G4HepRepFileSceneHandler() {} +void G4HepRepFileSceneHandler::EstablishSpecials +(G4PhysicalVolumeModel& pvModel) { + pvModel.DefinePointersToWorkingSpace (&fCurrentDepth, + &fpCurrentPV, + &fpCurrentLV); +} + +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. +} + #ifdef G4HEPREPFILEDEBUG void G4HepRepFileSceneHandler::PrintThings() { G4cout << @@ -97,7 +124,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Box& box) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(box); // Invoke default action. } @@ -109,7 +135,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Cons& cons) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(cons); // Invoke default action. } @@ -121,7 +146,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Tubs& tubs) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(tubs); // Invoke default action. } @@ -133,7 +157,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Trd& trd) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(trd); // Invoke default action. } @@ -145,7 +168,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Trap& trap) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(trap); // Invoke default action. } @@ -157,7 +179,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Sphere& sphere) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(sphere); // Invoke default action. } @@ -169,7 +190,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Para& para) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(para); // Invoke default action. } @@ -181,7 +201,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Torus& torus) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(torus); // Invoke default action. } @@ -193,7 +212,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Polycone& polycone) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(polycone); // Invoke default action. } @@ -205,7 +223,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4Polyhedra& polyhedra) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(polyhedra); // Invoke default action. } @@ -217,7 +234,6 @@ void G4HepRepFileSceneHandler::AddThis(const G4VSolid& solid) { << G4endl; PrintThings(); #endif - hepRepXMLWriter->addType(fpCurrentPV->GetName()); G4VSceneHandler::AddThis(solid); // Invoke default action. } @@ -231,11 +247,7 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Polyline& polyline) { PrintThings(); #endif - hepRepXMLWriter->addInstance(); - hepRepXMLWriter->addAttValue("DrawAs","Line"); - - G4Colour color = GetColour(polyline); - hepRepXMLWriter->addAttValue("LineColor", color.GetRed(), color.GetGreen(), color.GetBlue()); + AddHepRepInstance("Line",polyline); hepRepXMLWriter->addPrimitive(); @@ -254,15 +266,10 @@ void G4HepRepFileSceneHandler::AddPrimitive (const G4Polymarker& line) { PrintThings(); #endif - hepRepXMLWriter->addInstance(); - hepRepXMLWriter->addAttValue("DrawAs","Point"); + AddHepRepInstance("Point",line); - // FIXME: should be taken from G4 - hepRepXMLWriter->addAttValue("MarkName", "Square"); - hepRepXMLWriter->addAttValue("MarkSize", 5); - - G4Colour color = GetColour(line); - hepRepXMLWriter->addAttValue("LineColor", color.GetRed(), color.GetGreen(), color.GetBlue()); + hepRepXMLWriter->addAttValue("MarkName", "Dot"); + hepRepXMLWriter->addAttValue("MarkSize", 4); hepRepXMLWriter->addPrimitive(); @@ -292,18 +299,13 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Circle& circle) { PrintThings(); #endif - hepRepXMLWriter->addInstance(); - hepRepXMLWriter->addAttValue("DrawAs","Point"); + AddHepRepInstance("Point",circle); + hepRepXMLWriter->addAttValue("MarkName", "Dot"); - - G4Colour color = GetColour(circle); - hepRepXMLWriter->addAttValue("LineColor", color.GetRed(), color.GetGreen(), color.GetBlue()); - + hepRepXMLWriter->addAttValue("MarkSize", 4); + hepRepXMLWriter->addPrimitive(); - G4double radius = circle.GetWorldSize(); - hepRepXMLWriter->addAttValue("MarkSize", radius); - G4Point3D center = (*fpObjectTransformation) * circle.GetPosition(); hepRepXMLWriter->addPoint(center.x(), center.y(), center.z()); } @@ -317,18 +319,13 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Square& square) { PrintThings(); #endif - hepRepXMLWriter->addInstance(); - hepRepXMLWriter->addAttValue("DrawAs","Point"); - hepRepXMLWriter->addAttValue("MarkName", "Square"); + AddHepRepInstance("Point",square); - G4Colour color = GetColour(square); - hepRepXMLWriter->addAttValue("LineColor", color.GetRed(), color.GetGreen(), color.GetBlue()); + hepRepXMLWriter->addAttValue("MarkName", "Square"); + hepRepXMLWriter->addAttValue("MarkSize", 4); hepRepXMLWriter->addPrimitive(); - G4double size = square.GetWorldSize(); - hepRepXMLWriter->addAttValue("MarkSize", size); - G4Point3D center = (*fpObjectTransformation) * square.GetPosition(); hepRepXMLWriter->addPoint(center.x(), center.y(), center.z()); } @@ -340,26 +337,14 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) { << G4endl; PrintThings(); #endif + + AddHepRepInstance("Polygon",polyhedron); + if(polyhedron.GetNoFacets()==0)return; G4Normal3D surfaceNormal; G4Point3D vertex; - hepRepXMLWriter->addInstance(); - hepRepXMLWriter->addAttValue("DrawAs","Polygon"); - - G4Colour color = GetColour(polyhedron); - hepRepXMLWriter->addAttValue("LineColor", color.GetRed(), color.GetGreen(), color.GetBlue()); - - // Additional attributes. - hepRepXMLWriter->addAttValue("LVol", fpCurrentLV->GetName()); - hepRepXMLWriter->addAttValue("Solid", fpCurrentLV->GetSolid()->GetName()); - hepRepXMLWriter->addAttValue("EType", fpCurrentLV->GetSolid()->GetEntityType()); - hepRepXMLWriter->addAttValue("Material", fpCurrentLV->GetMaterial()->GetName()); - hepRepXMLWriter->addAttValue("Density", fpCurrentLV->GetMaterial()->GetDensity()); - hepRepXMLWriter->addAttValue("State", fpCurrentLV->GetMaterial()->GetState()); - hepRepXMLWriter->addAttValue("Radlen", fpCurrentLV->GetMaterial()->GetRadlen()); - G4bool notLastFace; do { hepRepXMLWriter->addPrimitive(); @@ -385,13 +370,112 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4NURBS& nurbs) { G4cout << "G4HepRepFileSceneHandler::AddPrimitive G4NURBS : not implemented. " << G4endl; } -void G4HepRepFileSceneHandler::EstablishSpecials -(G4PhysicalVolumeModel& pvModel) { - pvModel.DefinePointersToWorkingSpace(&fCurrentDepth, - &fpCurrentPV, - &fpCurrentLV); -} - HepRepXMLWriter *G4HepRepFileSceneHandler::GetHepRepXMLWriter() { return hepRepXMLWriter; } + +void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, + const G4Visible visible) { +#ifdef G4HEPREPFILEDEBUG + G4cout << + "G4HepRepFileSceneHandler::AddHepRepInstance called." + << G4endl; +#endif + + if (!hepRepXMLWriter->isOpen) { + char* newFileSpec; + newFileSpec = new char [100]; + int length; + 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",""); + hepRepXMLWriter->addAttDef("Material", "Material Name", "Physics",""); + hepRepXMLWriter->addAttDef("Density", "Material Density", "Physics",""); + hepRepXMLWriter->addAttDef("State", "Material State", "Physics",""); + hepRepXMLWriter->addAttDef("Radlen", "Material Radiation Length", "Physics",""); + } + + // Handle Type declaration for Event Data. + // Should be able to just test on fReadyForTransients, but this seems to + // be falsely false if no geometry has yet been drawn. + // So I test on both !fpCurrentPV (means no geometry has yet been drawn) + // and fReadyForTransients. + if (!fpCurrentPV || fReadyForTransients) { + if (strcmp("Event Data",hepRepXMLWriter->prevTypeName[0])!=0) { + hepRepXMLWriter->addType("Event Data",0); + hepRepXMLWriter->addInstance(); + } + + if (strcmp("Line",primName)==0) + hepRepXMLWriter->addType("Trajectories",1); + else { + if (strcmp(hepRepXMLWriter->prevTypeName[1],"Trajectories")==0) + hepRepXMLWriter->addType("Trajectory Points",2); + else + hepRepXMLWriter->addType("Trajectory Points",1); + } + + hepRepXMLWriter->addInstance(); + + // Handle Type declaration for Detector Geometry, + // replacing G4's top geometry level name "worldPhysical" with the + // name "Detector Geometry". + } else { + if (strcmp("Detector Geometry",hepRepXMLWriter->prevTypeName[0])!=0) { + hepRepXMLWriter->addType("Detector Geometry",0); + hepRepXMLWriter->addInstance(); + } + + // Re-insert any layers of the hierarchy that were removed by G4's culling process. + while (hepRepXMLWriter->typeDepth < (fCurrentDepth-1)) { + 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()); + hepRepXMLWriter->addAttValue("EType", fpCurrentLV->GetSolid()->GetEntityType()); + hepRepXMLWriter->addAttValue("Material", fpCurrentLV->GetMaterial()->GetName()); + hepRepXMLWriter->addAttValue("Density", fpCurrentLV->GetMaterial()->GetDensity()); + hepRepXMLWriter->addAttValue("State", fpCurrentLV->GetMaterial()->GetState()); + hepRepXMLWriter->addAttValue("Radlen", fpCurrentLV->GetMaterial()->GetRadlen()); + } + + hepRepXMLWriter->addAttValue("DrawAs",primName); + hepRepXMLWriter->addAttValue("Layer",hepRepXMLWriter->typeDepth); + + // Handle color attribute, avoiding drawing anything black on black. + G4Colour colour = GetColour(visible); + float redness = colour.GetRed(); + float greenness = colour.GetGreen(); + float blueness = colour.GetBlue(); + + 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); + + // Handle visibility attribute. + const G4VisAttributes* visAtts = visible.GetVisAttributes(); + if (visAtts && (visAtts->IsVisible()==0)) + hepRepXMLWriter->addAttValue("Visibility",false); + else + hepRepXMLWriter->addAttValue("Visibility",true); +} diff --git a/source/visualization/HepRep/src/G4HepRepFileViewer.cc b/source/visualization/HepRep/src/G4HepRepFileViewer.cc index ac0bf21c84..e229369b8f 100644 --- a/source/visualization/HepRep/src/G4HepRepFileViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepFileViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HepRepFileViewer.cc,v 1.3 2001/11/19 15:07:28 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HepRepFileViewer.cc,v 1.6 2002/02/02 04:00:27 perl Exp $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4HepRepFileViewer.hh" @@ -39,7 +39,6 @@ G4HepRepFileViewer::G4HepRepFileViewer (G4VSceneHandler& sceneHandler, const G4String& name): G4VViewer(sceneHandler, sceneHandler.IncrementViewCount(), name) { - hepRepXMLWriter = ((G4HepRepFileSceneHandler*)(&sceneHandler))->GetHepRepXMLWriter(); } @@ -47,16 +46,8 @@ G4HepRepFileViewer::~G4HepRepFileViewer() {} void G4HepRepFileViewer::SetView() { #ifdef G4HEPREPFILEDEBUG - G4cout << "G4HepRepFileViewer::SetView() called." << G4endl; + G4cout << "G4HepRepFileViewer::SetView() called.=" << G4endl; #endif - hepRepXMLWriter->open("G4HepRepFile.xml"); - hepRepXMLWriter->addAttDef("LVol", "Logical Volume", "Physics",""); - hepRepXMLWriter->addAttDef("Solid", "Solid Name", "Physics",""); - hepRepXMLWriter->addAttDef("EType", "Entity Type", "Physics",""); - hepRepXMLWriter->addAttDef("Material", "Material Name", "Physics",""); - hepRepXMLWriter->addAttDef("Density", "Material Density", "Physics",""); - hepRepXMLWriter->addAttDef("State", "Material State", "Physics",""); - hepRepXMLWriter->addAttDef("Radlen", "Material Radiation Length", "Physics",""); } void G4HepRepFileViewer::ClearView() { @@ -75,12 +66,9 @@ void G4HepRepFileViewer::DrawView() { void G4HepRepFileViewer::ShowView () { #ifdef G4HEPREPFILEDEBUG - G4cout << "G4HepRepFileViewer::ShowView" << G4endl; + G4cout << "G4HepRepFileViewer::ShowView" << G4endl; #endif - G4VViewer::ShowView(); - - hepRepXMLWriter->close(); + G4VViewer::ShowView(); + + hepRepXMLWriter->close(); } - - - diff --git a/source/visualization/HepRep/src/HepRepXMLWriter.cc b/source/visualization/HepRep/src/HepRepXMLWriter.cc index 59551027e3..75cd5b43a6 100644 --- a/source/visualization/HepRep/src/HepRepXMLWriter.cc +++ b/source/visualization/HepRep/src/HepRepXMLWriter.cc @@ -22,7 +22,7 @@ // //-------------------------------------------------------------------------- // File and Version Information: -// $Id: HepRepXMLWriter.cc,v 1.3 2001/12/13 12:04:26 gunter Exp $ +// $Id: HepRepXMLWriter.cc,v 1.8 2002/02/05 19:52:01 perl Exp $ // // Description: // Create a HepRep XML File (HepRep version 1). @@ -43,16 +43,69 @@ HepRepXMLWriter::HepRepXMLWriter() { + isOpen = false; + init(); } -void HepRepXMLWriter::addType(const char* name) +void HepRepXMLWriter::init() +{ + typeDepth = -1; + + int i = -1; + while (i++<49) { + prevTypeName[i] = new char[1]; + strcpy(prevTypeName[i],""); + + inType[i] = false; + inInstance[i] = false; + } + + inPrimitive = false; + inPoint = false; +} + +void HepRepXMLWriter::addType(const char* name,int newTypeDepth) { if (fout.good()) { - endType(); - fout << " " + // Flatten structure if it exceeds maximum allowed typeDepth of 49. + if (newTypeDepth > 49) + newTypeDepth = 49; + + if (newTypeDepth < 0) + newTypeDepth = 0; + + // Insert any layers that are missing from the hierarchy (protects against + // callers that skip from, say, layer 1 to layer 3 with no layer 2). + while (typeDepth < (newTypeDepth-1)) { + addType("Layer Inserted by HepRepXMLWriter", typeDepth + 1); + addInstance(); + } + + // If moving closer to the root, close previously open types. + while (newTypeDepth" << G4endl; - inType = true; + + typeDepth = newTypeDepth; + } } else { G4cout << "HepRepXMLWriter:addType No file is currently open." << G4endl; } @@ -62,13 +115,15 @@ void HepRepXMLWriter::addInstance() { if (fout.good()) { - if (inType) + if (inType[typeDepth]) { endInstance(); - fout << " " << G4endl; - inInstance = true; + inInstance[typeDepth] = true; + indent(); + fout << "" << G4endl; } else { - G4cout << "HepRepXMLWriter:addInstance No HepRep Type is currently open" + G4cout << + "HepRepXMLWriter:addInstance No HepRep Type is currently open" << G4endl; } } else { @@ -81,11 +136,12 @@ void HepRepXMLWriter::addPrimitive() { if (fout.good()) { - if (inInstance) + if (inInstance[typeDepth]) { endPrimitive(); - fout << " " << G4endl; inPrimitive = true; + indent(); + fout << "" << G4endl; } else { G4cout << "HepRepXMLWriter:addPrimitive No HepRep Instance is currently open" @@ -104,8 +160,9 @@ void HepRepXMLWriter::addPoint(double x, double y, double z) if (inPrimitive) { endPoint(); - fout << " " << G4endl; inPoint = true; + indent(); + fout << "" << G4endl; } else { G4cout << "HepRepXMLWriter:addPoint No HepRep Primitive is currently open" @@ -124,9 +181,9 @@ void HepRepXMLWriter::addAttDef(const char* name, if (fout.good()) { indent(); - fout << " " << G4endl; + fout << " desc=\"" << desc << "\"/>" << G4endl; } else { G4cout << "HepRepXMLWriter:addAttDef No file is currently open" << G4endl; } @@ -183,7 +240,10 @@ void HepRepXMLWriter::addAttValue (const char* name, indent(); fout << " " << G4endl; + if (value) + fout << " value=\"True\"/>" << G4endl; + else + fout << " value=\"False\"/>" << G4endl; } else { G4cout << "HepRepXMLWriter:addAttValue No file is currently open" << G4endl; } @@ -196,10 +256,10 @@ void HepRepXMLWriter::addAttValue (const char* name, { if (fout.good()) { - indent(); int redness = int(value1*255.); int greenness = int(value2*255.); int blueness = int(value3*255.); + indent(); fout << " " << G4endl; @@ -208,57 +268,66 @@ void HepRepXMLWriter::addAttValue (const char* name, } } -void HepRepXMLWriter::open(const char* filespec) +void HepRepXMLWriter::open(const char* fileSpec) { - if (fout.good()) - fout.close(); - - fout.open(filespec); - - if (fout.good()) - { + if (isOpen) + close(); + + fout.open(fileSpec); + + if (fout.good()) { fout << "" << G4endl; fout << "" << G4endl; - - inType = false; - inInstance = false; - inPrimitive = false; - inPoint = false; + + isOpen = true; + init(); } else { - G4cout << "HepRepXMLWriter:open Unable to write to file " << filespec << G4endl; + G4cout << "HepRepXMLWriter:open Unable to write to file " << fileSpec << G4endl; } } void HepRepXMLWriter::close() { - if (fout.good()) - { - endType(); + // Close any remaining open Types + endTypes(); + + if (fout.good()) { fout << "" << G4endl; fout.close( ); + isOpen = false; } else { G4cout << "HepRepXMLWriter:close No file is currently open" << G4endl; } } +void HepRepXMLWriter::endTypes() +{ + // Close any remaining open Types + while(typeDepth>-1) + endType(); +} + void HepRepXMLWriter::endType() { - if (inType) - { - endInstance(); - fout << " " << G4endl; - inType = false; - } + endInstance(); + indent(); + fout << "" << G4endl; + inType[typeDepth] = false; + delete [] prevTypeName[typeDepth]; + prevTypeName[typeDepth] = new char[1]; + strcpy(prevTypeName[typeDepth],""); + typeDepth--; } void HepRepXMLWriter::endInstance() { - if (inInstance) + if (inInstance[typeDepth]) { endPrimitive(); - fout << " " << G4endl; - inInstance = false; + indent(); + fout << "" << G4endl; + inInstance[typeDepth] = false; } } @@ -267,7 +336,8 @@ void HepRepXMLWriter::endPrimitive() if (inPrimitive) { endPoint(); - fout << " " << G4endl; + indent(); + fout << "" << G4endl; inPrimitive = false; } } @@ -276,7 +346,8 @@ void HepRepXMLWriter::endPoint() { if (inPoint) { - fout << " " << G4endl; + indent(); + fout << "" << G4endl; inPoint = false; } } @@ -285,10 +356,14 @@ void HepRepXMLWriter::indent() { if (fout.good()) { - if (inType) - fout << " "; - if (inInstance) + int i = 0; + while (inType[i] && i<12) { fout << " "; + if (inInstance[i]) + fout << " "; + i++; + } + if (inPrimitive) fout << " "; if (inPoint) diff --git a/source/visualization/History b/source/visualization/History index 1b2e369b59..2299e0c33d 100644 --- a/source/visualization/History +++ b/source/visualization/History @@ -1,4 +1,4 @@ -$Id: History,v 1.172 2001/12/01 21:07:26 stanaka Exp $ +$Id: History,v 1.193 2002/06/24 07:34:15 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,7 +24,84 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- -01th December 2001 vis-V03-02-21 +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). + +23th June 2002 Satshi Tanaka (vis-V04-00-09) +- Bug fixes in G4VRMLXFileSceneHandlerFunc.icc +- Protection of VRML-Newtork drivers for Windows platform. + (The compilation is skipped in the Windows platform.) + +19th June 2002 John Allison (vis-V04-00-08) +- Cosmetic changes in G4VRML2FileSceneHandler.cc and G4VRML2SceneHandler.cc + (Gabriele) + +10th June 2002 John Allison +- Cosmetic changes for SUN-CC in G4OpenGLXmConvenienceRoutines.cc + (opengl-V04-00-03). +- Improvement to /vis/scene/add/logicalVolume guidance. + +6th June 2002 John Allison +- Cosmetic changes for GNU compiler in G4OpenGLXViewer.cc (opengl-V04-00-02). + +8th May 2002 John Allison (vis-V04-00-07) +- Minor changes to warning messages and README.built_in_commands. +- Added test fro G4EllipticalTube to test/src/MyDetectorConstruction.cc. + +1st May 2002 John Allison (vis-V04-00-06) +- Deprecated /vis/viewer/set/autoRefresh. + +26th April 2002 Makoto Asai (vis-V04-00-05) +- Corresponds to the changes in intercoms-V04-00-00 +- Affected files : + G4VisManager.cc G4VisCommandsViewer.cc G4VisCommandsCompound.cc + +22nd April 2002 John Allison (vis-V04-00-04) +- Prevent copying of autoRefresh status with /vis/viewer/set/all command. +- Corrected out of date advice about /vis/set/culling, etc. +- Workaround for pseudo-parallel/orthogonal projection in Ray Tracer. + +28th February 2002 John Allison (vis-V04-00-03) +- Updated OpenGL to compile (but not run) on Windows (opengl-V04-00-01). +- Removed redundant code in GNUmakefiles in OPACS, OpenGL, OpenInventor, VRML. +- Improved README.adding_graphics_system. + +23rd February 2002 John Allison (vis-V04-00-02) +- Bug fix in modeling, which was causing nested calls to Begin/EndPrimitives. + +4th February 2002 Joseph Perl (vis-V04-00-01) +- HepRep: Check for missing hierarchy layers in HepRepXMLWriter. + (Not strictly needed since have a culled layer check in SceneHandler, + but may be useful in other applications of HepRepXMLWriter). + +3rd February 2002 Joseph Perl +- HepRep: Detect transient data by testing for + !fpCurrentPV || fReadyForTransients + rather than just fReadyForTransients + +1st February 2002 Joseph Perl +- Improvements to HepRep: +- Defer file opening until first real HepRepType is to be written. +- Moved HepRep code from AddThis to AddPrimitive. +- Add additional levels to hierarchy if any appear to have been + removed by culling. +- Add visibility attribute. + +29th January 2002 Joseph Perl +- Relocate HepRep file-opening logic to constructor and ShowView + (had been in SetView). + +28th January 2002 vis-V03-02-23 Joseph Perl +- Improvements to HepRep: +- Produce hierarchical output rather than flat HepRepType structure. +- Handle trajectories as well as detector geometry. +- Output files now named G4Data.heprep where n increments with each open. + +14th January 2002 vis-V03-02-22 Joseph Perl +- Corrected handling for already open file in HepRepXMLWriter. + +01th December 2001 vis-V03-02-21 Satoshi Tanaka - Code refinements in FukuiRenderer/ directory: * Noisy warnings for Linux-g++ are suppressed. (%lg ==> %g etc) diff --git a/source/visualization/OPACS/GNUmakefile b/source/visualization/OPACS/GNUmakefile index 0436ecd967..8c64d97d4c 100644 --- a/source/visualization/OPACS/GNUmakefile +++ b/source/visualization/OPACS/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2000/04/07 14:52:49 johna Exp $ +# $Id: GNUmakefile,v 1.4 2002/03/01 00:29:54 johna Exp $ name := G4OPACS @@ -22,14 +22,4 @@ CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/interfaces/common/include CPPFLAGS += -I$(G4BASE)/intercoms/include -ifdef G4VIS_BUILD_OPACS_DRIVER - CPPFLAGS += -I$(COROOT)/include -I$(XXROOT)/include -I$(WOROOT)/include\ - -I$(GOROOT)/include -I$(XOROOT)/include -ifeq ($(G4_OPACS_WIDGET_SET),Xm) - CPPFLAGS += -DHAS_XM $(X11FLAGS) $(XMFLAGS) -else - CPPFLAGS += -DHAS_XAW $(X11FLAGS) $(XAWFLAGS) -endif -endif - include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/OPACS/include/G4GoSceneHandler.hh b/source/visualization/OPACS/include/G4GoSceneHandler.hh index 4885c8b973..d9751d68ca 100644 --- a/source/visualization/OPACS/include/G4GoSceneHandler.hh +++ b/source/visualization/OPACS/include/G4GoSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4GoSceneHandler.hh,v 1.8 2001/08/24 21:49:59 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/include/G4Wo.hh b/source/visualization/OPACS/include/G4Wo.hh index 1553472e4f..62f39e7462 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/include/G4WoViewer.hh b/source/visualization/OPACS/include/G4WoViewer.hh index 26d06af404..b90345034c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/include/G4Xo.hh b/source/visualization/OPACS/include/G4Xo.hh index d5f3fd716e..5f4cad5b7c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/include/G4XoViewer.hh b/source/visualization/OPACS/include/G4XoViewer.hh index db782376b2..cb05c7edb5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4GoSceneHandler.cc b/source/visualization/OPACS/src/G4GoSceneHandler.cc index c2b3312642..62fd5319ad 100644 --- a/source/visualization/OPACS/src/G4GoSceneHandler.cc +++ b/source/visualization/OPACS/src/G4GoSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4GoSceneHandler.cc,v 1.13 2001/11/12 18:22:09 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4Wo.cc b/source/visualization/OPACS/src/G4Wo.cc index eebb0773f8..c4e48bcbaf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4WoViewer.cc b/source/visualization/OPACS/src/G4WoViewer.cc index 9e06c2435d..79900f44f4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4Xo.cc b/source/visualization/OPACS/src/G4Xo.cc index bc04fc542a..7fc2a79c18 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4XoViewer.cc b/source/visualization/OPACS/src/G4XoViewer.cc index 8aeb8ad958..3d2ac5c2a0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OpenGL/GNUmakefile b/source/visualization/OpenGL/GNUmakefile index 6ae11d916d..2377114b12 100644 --- a/source/visualization/OpenGL/GNUmakefile +++ b/source/visualization/OpenGL/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2000/04/07 13:32:41 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2002/03/01 00:29:39 johna Exp $ name := G4OpenGL @@ -22,17 +22,4 @@ CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/intercoms/include CPPFLAGS += -I$(G4BASE)/interfaces/common/include -ifdef G4VIS_BUILD_OPENGL_DRIVER - CPPFLAGS += $(OGLFLAGS) -endif -ifdef G4VIS_BUILD_OPENGLXAW_DRIVER - CPPFLAGS += $(XAWFLAGS) -endif -ifdef G4VIS_BUILD_OPENGLXM_DRIVER - CPPFLAGS += $(XMFLAGS) -endif -ifdef G4VIS_BUILD_OPENGLX_DRIVER - CPPFLAGS += $(X11FLAGS) -endif - include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/OpenGL/History b/source/visualization/OpenGL/History index 3d06f0447a..dd3589592b 100644 --- a/source/visualization/OpenGL/History +++ b/source/visualization/OpenGL/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2001/08/24 20:28:15 johna Exp $ +$Id: History,v 1.16 2002/02/24 01:47:46 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,11 @@ committal in the CVS repository ! History file for visualization/OpenGL ------------------------------------- +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 + glx.h, unistd.h and assert.h. + 24th August 2001 John Allison (vis-V03-02-13) - Limited the printing of warnings in G4OpenGLSceneHandler::AddPrimitive (const G4Text& text). diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh index a3ed37c562..6cf2af6be8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh index 1aecd5cae3..97e472e66a 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateViewer.hh,v 1.6 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh index 9332a6d519..661fc31f13 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateWin32.hh,v 1.5 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // OpenGLImmediateWin32 graphics system factory. diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh index 6a64011820..66a39643ce 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateWin32Viewer.hh,v 1.6 2001/07/14 21:47:41 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh index 12249dbc3d..4609876736 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh index c3939362ab..c849dc7e0d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh index 239adf05de..ed435a44a2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh index c820fe1bb0..d765a9ffa5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh index 24d6795d0a..899df71dfd 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.hh,v 1.10 2001/08/24 21:46:45 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLSceneHandler.hh,v 1.11 2002/02/24 01:47:49 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 27th March 1996 @@ -40,8 +40,6 @@ #include "G4RotationMatrix.hh" #include -#include -#include // Base class for various OpenGLScene classes. class G4OpenGLSceneHandler: public G4VSceneHandler { diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc index 480e7d38f5..e69ee59eae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 20th January 1998 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh index 61dff1a224..e81729873a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh index 290b9a15a9..27d8501b4a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh index 6df6cd3fd2..d7ad6b656e 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredWin32.hh,v 1.5 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // OpenGLStoredWin32 graphics system factory. diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh index 3b70415381..b145f1e7aa 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredWin32Viewer.hh,v 1.4 2001/07/14 21:47:45 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredX.hh b/source/visualization/OpenGL/include/G4OpenGLStoredX.hh index f71bf4f9b9..a72386d4ca 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh index 24ebc309f3..225fba7bed 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh index fbc64fb83a..4c9812db71 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh index bc91c7b2fc..a1d15cef2d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh b/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh index 740ff401ac..9b2b72e032 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/include/G4OpenGLViewer.hh b/source/visualization/OpenGL/include/G4OpenGLViewer.hh index 5629840a58..697d564eee 100644 --- a/source/visualization/OpenGL/include/G4OpenGLViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.hh,v 1.7 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLViewer.hh,v 1.8 2002/02/24 01:47:51 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 27th March 1996 @@ -60,8 +60,6 @@ protected: antialiasing_enabled, //is antialiasing enabled? haloing_enabled; //is haloing enabled for wireframe? - static int snglBuf_RGBA[10]; - static int dblBuf_RGBA[11]; G4OpenGLSceneHandler& fSceneHandler; // Graphics Scene for this view. private: diff --git a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh index 40b1a0f11d..6c58ff7288 100644 --- a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLWin32Viewer.hh,v 1.5 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific diff --git a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh index 8b96590c7e..816bc06337 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.hh,v 1.12 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLXViewer.hh,v 1.13 2002/02/24 01:47:52 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 @@ -63,6 +63,9 @@ protected: void CreateGLXContext (XVisualInfo* vi); virtual void CreateMainWindow (); + static int snglBuf_RGBA[10]; + static int dblBuf_RGBA[11]; + char print_string[50]; G4bool print_colour, vectored_ps; diff --git a/source/visualization/OpenGL/include/G4OpenGLXmBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmBox.hh index 397dcba9ee..13c84db080 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh b/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh index d3b06c69fa..c873173d06 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh index bdc6d65c80..fc5e224d62 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Framed box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh index 538a178213..015683813c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh index 0c149faef3..241eb04b4e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmResources.hh b/source/visualization/OpenGL/include/G4OpenGLXmResources.hh index 2d7e3250ff..9db88c01c1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Default resources file for GEANT4 OpenGL Motif windows. diff --git a/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh b/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh index 74dcfe4431..6cd0805bc6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh b/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh index bdcf6888bd..b05714ef04 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh b/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh index dc0223ee39..1761420920 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh index ddff149364..5cf60b9e54 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Top level shell class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh index b7d43b0c81..c5d609567e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh index e326bddcc2..822f629ed4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh index 62f73fb614..9d07357254 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh index 81c6dd7cc7..bcaccc18b2 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // //Base class for all Motif window widgets (shells) diff --git a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh index 843296a21a..dbed915ea0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc index 0862dc4fc8..fb9ee10c8f 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.6 2001/08/14 18:03:16 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.7 2002/02/24 01:47:55 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -40,8 +40,6 @@ // Also seems to be required for HP's CC and AIX xlC, at least. #include -#include -#include #include "G4OpenGLSceneHandler.hh" #include "G4OpenGLViewer.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc index 5cf8b24e5c..7aa7d9526f 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateViewer.cc,v 1.4 2001/07/11 10:08:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateViewer.cc,v 1.5 2002/02/24 01:47:56 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 @@ -34,14 +34,6 @@ #include "G4OpenGLImmediateViewer.hh" -#include -#include -#include - -#include "G4ios.hh" -#include -#include - G4OpenGLImmediateViewer::G4OpenGLImmediateViewer (G4OpenGLImmediateSceneHandler& scene): G4VViewer (scene, -1), G4OpenGLViewer (scene), diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc index 112d4bccae..074b22a6cb 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc @@ -21,18 +21,14 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32.cc,v 1.6 2001/07/11 10:08:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateWin32.cc,v 1.7 2002/02/24 01:47:58 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // OpenGLImmediateWin32 graphics system factory. #ifdef G4VIS_BUILD_OPENGLWIN32_DRIVER -#include -#include -#include - #include "G4VisFeaturesOfOpenGL.hh" #include "G4VSceneHandler.hh" #include "G4OpenGLSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc index edaf764c02..03d2c738ee 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.4 2001/07/14 21:47:49 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.5 2002/02/24 01:48:00 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -33,12 +33,8 @@ #include "G4OpenGLImmediateWin32Viewer.hh" #include -#include -#include #include "G4ios.hh" -#include -#include G4OpenGLImmediateWin32Viewer::G4OpenGLImmediateWin32Viewer (G4OpenGLImmediateSceneHandler& scene): G4OpenGLViewer (scene), diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc index 7350cafb21..6b63cd1f21 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateX.cc,v 1.7 2001/07/11 10:08:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateX.cc,v 1.8 2002/02/24 01:48:02 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 27th March 1996 @@ -30,10 +30,6 @@ #ifdef G4VIS_BUILD_OPENGLX_DRIVER -#include -#include -#include - #include "G4VisFeaturesOfOpenGL.hh" #include "G4VSceneHandler.hh" #include "G4OpenGLSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc index ff66c792a1..76ba4d645d 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXViewer.cc,v 1.6 2001/07/14 21:47:50 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateXViewer.cc,v 1.7 2002/02/24 01:48:04 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 @@ -34,15 +34,8 @@ #include "G4OpenGLImmediateXViewer.hh" #include -#include -#include #include "G4ios.hh" -#include -#include - -#include -#include G4OpenGLImmediateXViewer::G4OpenGLImmediateXViewer (G4OpenGLImmediateSceneHandler& scene, const G4String& name): diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc index d80d98a691..4ce7729219 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXm.cc,v 1.7 2001/07/11 10:08:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateXm.cc,v 1.8 2002/02/24 01:48:05 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -31,8 +31,6 @@ #ifdef G4VIS_BUILD_OPENGLXM_DRIVER #include -#include -#include #include "G4VisFeaturesOfOpenGL.hh" #include "G4VSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc index 03f27476dd..94eda1fa6d 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXmViewer.cc,v 1.6 2001/07/14 21:47:51 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLImmediateXmViewer.cc,v 1.7 2002/02/24 01:48:07 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -34,12 +34,8 @@ #include "G4OpenGLImmediateXmViewer.hh" #include -#include -#include #include "G4ios.hh" -#include -#include G4OpenGLImmediateXmViewer::G4OpenGLImmediateXmViewer (G4OpenGLImmediateSceneHandler& scene, diff --git a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc index 35ae36c345..88213f7874 100644 --- a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.cc,v 1.14 2001/08/24 18:37:09 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLSceneHandler.cc,v 1.15 2002/02/24 01:48:09 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 27th March 1996 @@ -41,7 +41,6 @@ // Also seems to be required for HP's CC and AIX xlC, at least. #include -#include #include #include "G4OpenGLSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc index 499b3d74bf..19cffe902e 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredSceneHandler.cc,v 1.13 2001/08/14 18:03:17 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredSceneHandler.cc,v 1.14 2002/02/24 01:48:11 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -39,8 +39,6 @@ // Also seems to be required for HP's CC and AIX xlC, at least. #include -#include -#include #include "G4OpenGLStoredSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc index dd6e84b899..2f28349479 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredViewer.cc,v 1.7 2001/08/14 18:03:19 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredViewer.cc,v 1.8 2002/02/24 01:48:12 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 @@ -35,12 +35,8 @@ #include "G4OpenGLStoredViewer.hh" #include -#include -#include #include "G4ios.hh" -#include -#include #include "G4OpenGLStoredSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc index 8d3d1aabe3..e9563d0ce2 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32.cc,v 1.6 2001/07/11 10:08:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredWin32.cc,v 1.7 2002/02/24 01:48:14 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // OpenGLStoredWin32 graphics system factory. @@ -31,8 +31,6 @@ #ifdef G4VIS_BUILD_OPENGLWIN32_DRIVER #include -#include -#include #include "G4VisFeaturesOfOpenGL.hh" #include "G4VSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc index b4221023c6..0048078cfe 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.4 2001/07/14 21:47:53 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.5 2002/02/24 01:48:16 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -33,12 +33,8 @@ #include "G4OpenGLStoredWin32Viewer.hh" #include -#include -#include #include "G4ios.hh" -#include -#include G4OpenGLStoredWin32Viewer::G4OpenGLStoredWin32Viewer (G4OpenGLStoredSceneHandler& scene): G4OpenGLViewer (scene), diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc index 7c2ff49bd0..f41307eb06 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredX.cc,v 1.7 2001/07/11 10:08:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredX.cc,v 1.8 2002/02/24 01:48:17 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -32,8 +32,6 @@ #ifdef G4VIS_BUILD_OPENGLX_DRIVER #include -#include -#include #include "G4VisFeaturesOfOpenGL.hh" #include "G4VSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc index 1832a17b7e..bd9ecedca3 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXViewer.cc,v 1.7 2001/08/14 18:03:20 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredXViewer.cc,v 1.8 2002/02/24 01:48:19 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 @@ -34,15 +34,8 @@ #include "G4OpenGLStoredXViewer.hh" #include -#include -#include #include "G4ios.hh" -#include -#include - -#include -#include G4OpenGLStoredXViewer::G4OpenGLStoredXViewer (G4OpenGLStoredSceneHandler& scene, const G4String& name): diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc index 316946fd39..7ee776e90b 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXm.cc,v 1.6 2001/07/11 10:08:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredXm.cc,v 1.7 2002/02/24 01:48:20 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -30,10 +30,6 @@ #ifdef G4VIS_BUILD_OPENGLXM_DRIVER -#include -#include -#include - #include "G4VisFeaturesOfOpenGL.hh" #include "G4VSceneHandler.hh" #include "G4OpenGLSceneHandler.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc index 458b0cba36..ed31be9a08 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXmViewer.cc,v 1.6 2001/07/14 21:47:55 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLStoredXmViewer.cc,v 1.7 2002/02/24 01:48:22 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -34,12 +34,8 @@ #include "G4OpenGLStoredXmViewer.hh" #include -#include -#include #include "G4ios.hh" -#include -#include G4OpenGLStoredXmViewer::G4OpenGLStoredXmViewer (G4OpenGLStoredSceneHandler& scene, const G4String& name): diff --git a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc index 168d11bb95..75e562112e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/src/G4OpenGLViewer.cc b/source/visualization/OpenGL/src/G4OpenGLViewer.cc index c7c207c305..8ca67a3731 100644 --- a/source/visualization/OpenGL/src/G4OpenGLViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.cc,v 1.12 2001/07/11 10:08:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLViewer.cc,v 1.13 2002/02/24 01:48:24 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 27th March 1996 @@ -31,15 +31,12 @@ #ifdef G4VIS_BUILD_OPENGL_DRIVER #include -#include #include #include "G4OpenGLViewer.hh" #include "G4OpenGLSceneHandler.hh" #include "G4OpenGLTransform3D.hh" #include "G4ios.hh" -#include -#include #include "G4Scene.hh" #include "G4VisExtent.hh" @@ -49,20 +46,12 @@ #include "G4Normal3D.hh" #include "G4Plane3D.hh" -int G4OpenGLViewer::snglBuf_RGBA[10] = -{ GLX_RGBA, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, - GLX_BLUE_SIZE, 1, GLX_DEPTH_SIZE, 1, None }; - -int G4OpenGLViewer::dblBuf_RGBA[11] = -{ GLX_RGBA, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, - GLX_BLUE_SIZE, 1, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 1, None }; - G4OpenGLViewer::G4OpenGLViewer (G4OpenGLSceneHandler& scene): G4VViewer (scene, -1), -white_background (False), -transparency_enabled (False), -antialiasing_enabled (False), -haloing_enabled (False), +white_background (false), +transparency_enabled (false), +antialiasing_enabled (false), +haloing_enabled (false), fSceneHandler (scene) { // Make changes to view parameters for OpenGL... diff --git a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc index ee277d6699..8768724d05 100644 --- a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLWin32Viewer.cc,v 1.3 2001/07/11 10:08:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLWin32Viewer.cc,v 1.4 2002/02/24 01:48:26 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific @@ -33,12 +33,9 @@ #include "G4OpenGLWin32Viewer.hh" #include -#include -#include +//#include Change this for Win32 #include "G4ios.hh" -#include -#include #include "G4VisExtent.hh" #include "G4LogicalVolume.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc index aa1dd0fb7f..6ddaf4815b 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.cc,v 1.13 2001/11/29 12:14:01 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLXViewer.cc,v 1.14 2002/02/24 01:48:27 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 7th February 1997 @@ -38,9 +38,6 @@ #include #include "G4ios.hh" -#include -#include -#include #include "G4VisExtent.hh" #include "G4LogicalVolume.hh" @@ -51,8 +48,15 @@ #include #include -#include -#include +#include + +int G4OpenGLXViewer::snglBuf_RGBA[10] = +{ GLX_RGBA, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, + GLX_BLUE_SIZE, 1, GLX_DEPTH_SIZE, 1, None }; + +int G4OpenGLXViewer::dblBuf_RGBA[11] = +{ GLX_RGBA, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, + GLX_BLUE_SIZE, 1, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 1, None }; #define NewString(str) \ ((str) != NULL ? (strcpy((char*)malloc((unsigned)strlen(str) + 1), str)) : (char*)NULL) diff --git a/source/visualization/OpenGL/src/G4OpenGLXmBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmBox.cc index 02c501d48a..c6bdb5d78d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc index 8fc64fdaaa..971a768c7b 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmConvenienceRoutines.cc,v 1.7 2001/11/29 12:14:02 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc b/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc index 55abc11cfe..c184a8a2fe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc index e61f33bbba..1da0f2ec89 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Framed box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc index 5c3b4859c1..2f766d40af 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc index 05e2d76e12..e88c3cbc4c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc index 72b39966de..891d850305 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc index 16292edd86..de01766ba7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc index 9802508b56..ce09bdfe66 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc b/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc index f7cc7b7812..2ecbc71ab0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc b/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc index b273ba1e86..575f4505a1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc index bed9283f2c..d770d56e0a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc index d0a2881bf0..32033496a8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc index 6a9fb8859a..3fb755b8d0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Top level shell class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc index 39ddfa5bd4..7a6af0a19e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc index 54dd07cc2d..046e78102d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc index 63d44ddf13..0cd3b35f81 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc index 3d024d80dd..b026e91340 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // //Base class for all Motif shell widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc index f3e3ee2df2..c9c9df5223 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmViewer.cc,v 1.10 2001/07/30 23:34:22 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4OpenGLXmViewer.cc,v 1.11 2002/02/24 01:48:29 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 10th February 1997 @@ -40,9 +40,6 @@ #include #include "G4ios.hh" -#include -#include -#include #include "G4VisExtent.hh" #include "G4LogicalVolume.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc index cfc621836f..c40198f8c4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 16th June 1997 diff --git a/source/visualization/OpenInventor/GNUmakefile b/source/visualization/OpenInventor/GNUmakefile index b64c8e5325..70c26b4e15 100644 --- a/source/visualization/OpenInventor/GNUmakefile +++ b/source/visualization/OpenInventor/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2000/04/07 14:52:50 johna Exp $ +# $Id: GNUmakefile,v 1.4 2002/03/01 00:29:50 johna Exp $ name := G4OpenInventor @@ -24,24 +24,6 @@ CPPFLAGS += -I$(G4BASE)/intercoms/include CPPFLAGS += -I$(G4BASE)/materials/include CPPFLAGS += -I$(G4BASE)/global/HEPRandom/include - -ifdef G4VIS_BUILD_OPENGL_DRIVER - CPPFLAGS += $(OGLFLAGS) -endif -ifdef G4VIS_BUILD_OPENGLXAW_DRIVER - CPPFLAGS += $(XAWFLAGS) -endif -ifdef G4VIS_BUILD_OPENGLXM_DRIVER - CPPFLAGS += $(XMFLAGS) -endif -ifdef G4VIS_BUILD_OPENGLX_DRIVER - CPPFLAGS += $(X11FLAGS) -endif - -ifdef G4VIS_BUILD_OI_DRIVER - CPPFLAGS += $(OIVFLAGS) $(X11FLAGS) -endif - include $(G4INSTALL)/config/common.gmk debug: diff --git a/source/visualization/OpenInventor/include/G4OpenInventor.hh b/source/visualization/OpenInventor/include/G4OpenInventor.hh index a598b85f2d..f6e742fb33 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // Guy Barrand 26 Mar 1998. // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh index e55dad8095..db0b381fcf 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorSceneHandler.hh,v 1.12 2001/08/24 21:48:32 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // J Kallenbach 27th Aug 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.icc b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.icc index 2469a582ee..feee11080e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // J Kallenbach 27th Aug 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh index 0b1992e908..5485523034 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // jck 17 Dec 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorViewer.hh index 25ef2cf7d7..7818bc82a0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh b/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh index af208ef8ef..ce2344293f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorX.hh b/source/visualization/OpenInventor/include/G4OpenInventorX.hh index c13af1546b..e948a2605b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventor.cc b/source/visualization/OpenInventor/src/G4OpenInventor.cc index 0d47755d03..13583d994b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifdef G4VIS_BUILD_OI_DRIVER diff --git a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc index 8dc7bbc500..6cd23a85bb 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorSceneHandler.cc,v 1.12 2001/07/11 10:09:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc b/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc index e32115647c..7fb46998b1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // jck 17 Dec 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc index f185841356..3235bae22b 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorViewer.cc,v 1.8 2001/11/14 14:56:12 barrand Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /* * jck 05 Feb 1997 - Initial Implementation diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWin32.cc b/source/visualization/OpenInventor/src/G4OpenInventorWin32.cc index 33a00f1216..c1d8fa9696 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/src/G4OpenInventorX.cc b/source/visualization/OpenInventor/src/G4OpenInventorX.cc index 5d92d16020..bfbbd98dcc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/README b/source/visualization/README index 26bfcfd1d0..34f294c88f 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-00 $ + Geant4 version $Name: geant4-04-01 $ (29-Jun-2001) Copyright : Geant4 Collaboration ********************************************** diff --git a/source/visualization/README.adding_graphics_system b/source/visualization/README.adding_graphics_system index 06131fc85f..5f2580dd2b 100644 --- a/source/visualization/README.adding_graphics_system +++ b/source/visualization/README.adding_graphics_system @@ -43,3 +43,84 @@ To add a graphics system: config/G4VIS_USE.gmk In any case, augment the informational printing in G4VisManager.cc. + +========================================================================= + +Frequently Asked Questions +-------------------------- + +Q: How do I implement the drawing of markers? + +A: See graphics_reps/include/G4VMarker.hh. + + +Q: What functions can a user call? + +A: The interface for the user (application developer) is G4VVisManager + defined in intercoms/include/G4VVisManager.hh. (The interface + G4VGraphicsScene in intercoms/include/G4VGraphicsScene.hh is for + visualization developers only. It is that part of the scene + handler's interface available to other categories, but must be used + with care.) + + +Q: How do I implement the drawing of trajectories? + +A: (January 2002, referring to Geant4 4.0. There are plans to improve + the handling of trajectories, so this advice might change. + Hopefully we'll keep it up to date, but who knows. Be warned.) + + The trajectories themselves have a method, + G4Trajectory::DrawTrajectory, invoked by the user or by the vis + manager, if requested, at the end of an event, which calls Draw + methods of G4VisManager, which call AddPrimitive. So AddPrimitive + is where you need to look at the vis attributes. + +void G4VisManager::Draw (const G4Polyline& line, + const G4Transform3D& objectTransform) { + if (IsValidView ()) { + ClearTransientStoreIfMarked(); + G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); + G4VModel* pModel = new G4NullModel (pMP); + fpSceneHandler -> SetModel (pModel); + fpSceneHandler -> BeginPrimitives (objectTransform); + fpSceneHandler -> AddPrimitive (line); + fpSceneHandler -> EndPrimitives (); + fpSceneHandler -> SetModel (0); + delete pModel; + delete pMP; + } +} + + It needs to go through the vis manager so that "transients" are + handled properly. The geometry model and things like axes are + "run-duration" (sometimes misleadingly called persistent) and + trajectories, etc., are "end-of-event" (sometimes misleadingly + called transient) - see G4Scene: + +class G4Scene { + ... +private: + G4String fName; + G4std::vector fRunDurationModelList; + G4std::vector fEndOfEventModelList; + G4VisExtent fExtent; + G4Point3D fStandardTargetPoint; + G4bool fRefreshAtEndOfEvent; +}; + + The user can choose to have the view refreshed at the end of event, + which means previous end-of-event objects get erased. In OpenGL, + this is done by (a) in Immediate mode, erasing everything and + redrawing run-duration and the new end-of-event objects or (b) in + Stored mode, just deleting the display lists of the end-of-event + objects and recreating them. + + Now, you will see that G4Trajectory::DrawTrajectory is very + primitive. It has not been changed for years!! It draws lots of + circles. This is a huge demand on graphical databases and we have + had on our to-do list for years to introduce AddPrimitive(const + G4VTrajectory&). Certainly, OpenInventor sags under the weight of + lots of circles, which it implements as spheres(!), and there are + great savings of efficiency to be made if graphics systems can + handle trajectories directly. diff --git a/source/visualization/README.built_in_commands b/source/visualization/README.built_in_commands index d55a576f2a..92c938c990 100644 --- a/source/visualization/README.built_in_commands +++ b/source/visualization/README.built_in_commands @@ -97,6 +97,8 @@ NI [] [] /vis/scene/add/logicalVolume [] default: 1 + Draws a logical volume in its own coordinate system, showing voxels and + boolean components (if any). /vis/scene/add/scale [ ] [x|y|z] [] [] [] [auto|manual] [ ] default: 1 m x 1 0 0 auto 0 0 0 m @@ -281,7 +283,8 @@ NI /vis/viewer/clone Magnifies by this factor relative to standard view. /vis/viewer/set/all - Copies view parameters from from-viewer to current viewer. + Copies view parameters (except the autoRefresh status) from from-viewer + to current viewer. /vis/viewer/set/autoRefresh [true|false] default: false @@ -326,7 +329,7 @@ NI /vis/viewer/set/cutawayPlane ... /vis/viewer/set/sectionPlane ... Set plane for drawing section (DCUT). Specify plane by x y z units nx ny nz, e.g., for a y-z plane at x = 1 cm: - /vis/viewer/set/section_plane on 1 0 0 cm 1 0 0 + /vis/viewer/set/sectionPlane on 1 0 0 cm 1 0 0 /vis/viewer/set/style w[ireframe]|s[urface] diff --git a/source/visualization/RayTracer/History b/source/visualization/RayTracer/History index 49d75aef0d..e434dff25f 100644 --- a/source/visualization/RayTracer/History +++ b/source/visualization/RayTracer/History @@ -1,4 +1,4 @@ -$Id: History,v 1.11 2001/11/22 17:32:04 gcosmo Exp $ +$Id: History,v 1.12 2002/04/22 14:14:38 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,10 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +22nd April 2002 John Allison +- Workaround for pseudo-parallel/orthogonal projection in Ray Tracer. It is + perspective projection with *very* small field angle (perMillion). + 22nd Nov 2001 Gabriele Cosmo (raytracer-V03-02-02) - G4RTJpegMaker.cc: added check on ISO compliance for binary mode on file streamsi, to allow compilation on non-ISO compilers. diff --git a/source/visualization/RayTracer/include/G4RTJpeg.hh b/source/visualization/RayTracer/include/G4RTJpeg.hh index 9122b6742a..e30a3a4ea3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoder.hh b/source/visualization/RayTracer/include/G4RTJpegCoder.hh index 1a04b990a8..f19970ada4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh b/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh index c5f0475df5..f2de62caaf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RTJpegMaker.hh b/source/visualization/RayTracer/include/G4RTJpegMaker.hh index 45f2cc0e9d..95bfd16ebb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTMessenger.hh b/source/visualization/RayTracer/include/G4RTMessenger.hh index e2b46c12f6..4529568c55 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTOutBitStream.hh b/source/visualization/RayTracer/include/G4RTOutBitStream.hh index 4c6170e4bb..59059bfe7d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTSteppingAction.hh b/source/visualization/RayTracer/include/G4RTSteppingAction.hh index 95c629bd32..c636b05265 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTTrackingAction.hh b/source/visualization/RayTracer/include/G4RTTrackingAction.hh index e6e9306d15..96ecc693b8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayShooter.hh b/source/visualization/RayTracer/include/G4RayShooter.hh index cea8f39411..c61ba1c3bd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RayTracer.hh b/source/visualization/RayTracer/include/G4RayTracer.hh index b1c22a7729..c009459d15 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerFeatures.hh b/source/visualization/RayTracer/include/G4RayTracerFeatures.hh index ab44c9b8c9..d5b019fc59 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh index 527910eee2..161a412ba0 100644 --- a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh +++ b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerSceneHandler.hh,v 1.5 2001/08/24 21:19:43 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // John Allison 17th March 2000 diff --git a/source/visualization/RayTracer/include/G4RayTracerViewer.hh b/source/visualization/RayTracer/include/G4RayTracerViewer.hh index bc7937f64f..0a4af88fde 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // John Allison 17th March 2000 diff --git a/source/visualization/RayTracer/include/G4RayTrajectory.hh b/source/visualization/RayTracer/include/G4RayTrajectory.hh index 5386475d7f..03025d2e6d 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectory.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectory.hh,v 1.8 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh index 78c27c6a62..709d82a2d0 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectoryPoint.hh,v 1.4 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/include/G4VFigureFileMaker.hh b/source/visualization/RayTracer/include/G4VFigureFileMaker.hh index 5864725454..7bd41c9483 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/RayTracer/src/G4RTJpegCoder.cc b/source/visualization/RayTracer/src/G4RTJpegCoder.cc index 6433ece664..2986987a86 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTJpegMaker.cc b/source/visualization/RayTracer/src/G4RTJpegMaker.cc index c84b6b9aa6..d919ddcb51 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTMessenger.cc b/source/visualization/RayTracer/src/G4RTMessenger.cc index 7b2f24d345..48fd558496 100644 --- a/source/visualization/RayTracer/src/G4RTMessenger.cc +++ b/source/visualization/RayTracer/src/G4RTMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTMessenger.cc,v 1.5 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTOutBitStream.cc b/source/visualization/RayTracer/src/G4RTOutBitStream.cc index 2ceb33cae5..419cc59d7d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTSteppingAction.cc b/source/visualization/RayTracer/src/G4RTSteppingAction.cc index 15a022acc2..02fbf3c1cd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTTrackingAction.cc b/source/visualization/RayTracer/src/G4RTTrackingAction.cc index f2736a7b60..4ee9de1b60 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RayShooter.cc b/source/visualization/RayTracer/src/G4RayShooter.cc index 6a9c7ed4f5..fe03032829 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4RayShooter.hh" diff --git a/source/visualization/RayTracer/src/G4RayTracer.cc b/source/visualization/RayTracer/src/G4RayTracer.cc index 3fe52a23cd..8461ec9f75 100644 --- a/source/visualization/RayTracer/src/G4RayTracer.cc +++ b/source/visualization/RayTracer/src/G4RayTracer.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTracer.cc,v 1.8 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc index 03912a9c16..68e5ba8dbf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4RayTracerSceneHandler.hh" diff --git a/source/visualization/RayTracer/src/G4RayTracerViewer.cc b/source/visualization/RayTracer/src/G4RayTracerViewer.cc index 16083539e7..75a554791c 100644 --- a/source/visualization/RayTracer/src/G4RayTracerViewer.cc +++ b/source/visualization/RayTracer/src/G4RayTracerViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTracerViewer.cc,v 1.9 2001/11/12 18:22:10 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4RayTracerViewer.cc,v 1.10 2002/04/22 14:14:38 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4RayTracerViewer.hh" @@ -76,12 +76,21 @@ void G4RayTracerViewer::ClearView() {} void G4RayTracerViewer::DrawView() { if (fVP.GetFieldHalfAngle() == 0.) { // Orthogonal (parallel) projection. + G4double fieldHalfAngle = perMillion; + fVP.SetFieldHalfAngle(fieldHalfAngle); G4cout << - "G4RayTracerViewer::SetView: orthogonal projection not yet implemented." + "WARNING: G4RayTracerViewer::DrawView: true orthogonal projection" + "\n not yet implemented. Doing a \"long shot\", i.e., a perspective" + "\n projection with a half field angle of " + << fieldHalfAngle << + " radians." << G4endl; - return; + SetView(); // Special graphics system - bypass ProcessView(). + fVP.SetFieldHalfAngle(0.); + } + else { + SetView(); // Special graphics system - bypass ProcessView(). } - SetView(); // Special graphics system - bypass ProcessView(). G4RayTracer* theTracer = (G4RayTracer*) fSceneHandler.GetGraphicsSystem(); char fileName [100]; diff --git a/source/visualization/RayTracer/src/G4RayTrajectory.cc b/source/visualization/RayTracer/src/G4RayTrajectory.cc index ce75668a35..2466c06267 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectory.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectory.cc,v 1.8 2001/07/11 10:09:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc b/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc index fae6b08cfa..2ac0960710 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // diff --git a/source/visualization/Tree/include/G4ASCIITree.hh b/source/visualization/Tree/include/G4ASCIITree.hh index 5a5ba8f5bc..74ca114590 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeMessenger.hh b/source/visualization/Tree/include/G4ASCIITreeMessenger.hh index 6f195d6983..84f1dadd6b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh b/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh index cb8f476f58..83f55c0e96 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeViewer.hh b/source/visualization/Tree/include/G4ASCIITreeViewer.hh index d4650bd94d..fd61bb5791 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTree.hh b/source/visualization/Tree/include/G4VTree.hh index 908a5efd63..7ff0eb1d95 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.hh b/source/visualization/Tree/include/G4VTreeSceneHandler.hh index 9332a52f24..6f7dafac6c 100644 --- a/source/visualization/Tree/include/G4VTreeSceneHandler.hh +++ b/source/visualization/Tree/include/G4VTreeSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTreeSceneHandler.hh,v 1.7 2001/08/24 21:42:13 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.icc b/source/visualization/Tree/include/G4VTreeSceneHandler.icc index a749742104..291334f39e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 18th May 2000 diff --git a/source/visualization/Tree/include/G4VTreeViewer.hh b/source/visualization/Tree/include/G4VTreeViewer.hh index b06d487c24..b7f8a9bece 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITree.cc b/source/visualization/Tree/src/G4ASCIITree.cc index 9973578b62..0e5b3cab1f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITreeMessenger.cc b/source/visualization/Tree/src/G4ASCIITreeMessenger.cc index 0800cbc815..4346a55d6f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc index 2092df8e2a..03f6fde08e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITreeViewer.cc b/source/visualization/Tree/src/G4ASCIITreeViewer.cc index 17c652dc51..37479fd616 100644 --- a/source/visualization/Tree/src/G4ASCIITreeViewer.cc +++ b/source/visualization/Tree/src/G4ASCIITreeViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeViewer.cc,v 1.4 2001/07/11 10:09:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4ASCIITreeViewer.hh" diff --git a/source/visualization/Tree/src/G4VTree.cc b/source/visualization/Tree/src/G4VTree.cc index dabb1cd82f..7bbed2e26b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4VTreeSceneHandler.cc b/source/visualization/Tree/src/G4VTreeSceneHandler.cc index 5b18e209ee..ff93b6f5f6 100644 --- a/source/visualization/Tree/src/G4VTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4VTreeSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTreeSceneHandler.cc,v 1.6 2001/07/25 21:02:28 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4VTreeViewer.cc b/source/visualization/Tree/src/G4VTreeViewer.cc index 47f64874ac..b20cd00f19 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4VTreeViewer.hh" diff --git a/source/visualization/VRML/GNUmakefile b/source/visualization/VRML/GNUmakefile index e60ca36bb6..5c6e1b41be 100644 --- a/source/visualization/VRML/GNUmakefile +++ b/source/visualization/VRML/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2001/07/27 22:33:05 johna Exp $ +# $Id: GNUmakefile,v 1.5 2002/03/01 00:29:52 johna Exp $ # lib name name := G4VRML @@ -23,10 +23,4 @@ CPPFLAGS += -I$(G4BASE)/geometry/management/include CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/visualization/VRML/include -ifdef G4VIS_BUILD_VRML_DRIVER - CPPFLAGS += -DVRML -endif - -CPPFLAGS += -DVRMLFILE - include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/VRML/g4vrmlview/g4mini.java b/source/visualization/VRML/g4vrmlview/g4mini.java index e4943e5be1..0be346d326 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/g4vrmlview/g4vrmlview.java b/source/visualization/VRML/g4vrmlview/g4vrmlview.java index f505a615bc..404f9103f9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/include/FRClient.h b/source/visualization/VRML/include/FRClient.h index 3b24d6c3e5..5aa56eedee 100644 --- a/source/visualization/VRML/include/FRClient.h +++ b/source/visualization/VRML/include/FRClient.h @@ -21,13 +21,16 @@ // ******************************************************************** // // -// $Id: FRClient.h,v 1.4 2001/09/18 07:53:07 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: FRClient.h,v 1.5 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // FRClient.h // FukuiRenderer Client // Yasuhide Sawada & Satoshi Tanaka + +#ifndef WIN32 + #ifdef G4VIS_BUILD_VRML_DRIVER #ifndef FR_CLIENT_H @@ -54,3 +57,5 @@ protected: #endif //FR_CLIENT_H #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 + diff --git a/source/visualization/VRML/include/G4FRClient.hh b/source/visualization/VRML/include/G4FRClient.hh index c7ff85fd8a..4a7dc6b386 100644 --- a/source/visualization/VRML/include/G4FRClient.hh +++ b/source/visualization/VRML/include/G4FRClient.hh @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4FRClient.hh,v 1.6 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FRClient.hh,v 1.7 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4FRClient.hh // Yasuhide Sawada and Satoshi Tanaka +#ifndef WIN32 + #ifdef G4VIS_BUILD_VRML_DRIVER #ifndef G4_FR_CLIENT_HH @@ -65,3 +67,4 @@ private: #endif //G4_FR_CLIENT_HH #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/include/G4VRML1.hh b/source/visualization/VRML/include/G4VRML1.hh index 3c29f5b120..568f1db501 100644 --- a/source/visualization/VRML/include/G4VRML1.hh +++ b/source/visualization/VRML/include/G4VRML1.hh @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML1.hh,v 1.8 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1.hh,v 1.9 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1.hh // Yasuhide Sawada and Satoshi Tanaka +#ifndef WIN32 + #if defined (G4VIS_BUILD_VRML_DRIVER) || defined (G4VIS_USE_VRML) #ifndef G4VRML1_HH @@ -62,3 +64,4 @@ private: #endif //G4VRML1_HH #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/include/G4VRML1File.hh b/source/visualization/VRML/include/G4VRML1File.hh index 3cc022aeca..730d7c5b44 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1File.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh index 70302f0edd..545a72fbc0 100644 --- a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1FileSceneHandler.hh,v 1.10 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1FileSceneHandler.hh,v 1.11 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -124,4 +124,5 @@ private: }; -#endif //G4VRML1File_SCENE_HH +#endif //G4VRML1FILE_SCENE_HANDLER_HH + diff --git a/source/visualization/VRML/include/G4VRML1FileViewer.hh b/source/visualization/VRML/include/G4VRML1FileViewer.hh index 8b99727930..30e49bc712 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1SceneHandler.hh b/source/visualization/VRML/include/G4VRML1SceneHandler.hh index 4b6b8433fb..6b28347c4c 100644 --- a/source/visualization/VRML/include/G4VRML1SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1SceneHandler.hh @@ -21,12 +21,15 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandler.hh,v 1.9 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1SceneHandler.hh,v 1.10 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1SceneHandler.hh // Yasuhide Sawada & Satoshi Tanaka +#ifndef WIN32 + + #ifdef G4VIS_BUILD_VRML_DRIVER #ifndef G4VRML1_SCENE_HANDLER_HH @@ -120,3 +123,4 @@ private: #endif //G4VRML1_SCENE_HH #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/include/G4VRML1Viewer.hh b/source/visualization/VRML/include/G4VRML1Viewer.hh index 60581ee80e..3179f77521 100644 --- a/source/visualization/VRML/include/G4VRML1Viewer.hh +++ b/source/visualization/VRML/include/G4VRML1Viewer.hh @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML1Viewer.hh,v 1.6 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1Viewer.hh,v 1.7 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1Viewer.hh // Satoshi Tanaka & Yasuhide Sawada +#ifndef WIN32 + #ifdef G4VIS_BUILD_VRML_DRIVER #ifndef G4VRML1_VIEWER_HH @@ -54,3 +56,4 @@ private: #endif //G4VRML1_VIEW_HH #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/include/G4VRML2.hh b/source/visualization/VRML/include/G4VRML2.hh index 70f1da3f47..bed0c01302 100644 --- a/source/visualization/VRML/include/G4VRML2.hh +++ b/source/visualization/VRML/include/G4VRML2.hh @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML2.hh,v 1.8 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2.hh,v 1.9 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2.hh // Satoshi Tanaka and Yasuhide Sawada +#ifndef WIN32 + #if defined (G4VIS_BUILD_VRML_DRIVER) || defined (G4VIS_USE_VRML) #ifndef G4VRML2_HH @@ -61,3 +63,4 @@ private: #endif //G4VRML2_HH #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/include/G4VRML2File.hh b/source/visualization/VRML/include/G4VRML2File.hh index 96d0ae2ff6..6de673295f 100644 --- a/source/visualization/VRML/include/G4VRML2File.hh +++ b/source/visualization/VRML/include/G4VRML2File.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2File.hh,v 1.9 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2File.hh,v 1.10 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2File.hh // Satoshi Tanaka & Yasuhide Sawada @@ -43,4 +43,4 @@ public: }; -#endif //G4VRML2File_HH +#endif //G4VRML2FILE_HH diff --git a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh index 84ca30ce24..fd02612a5d 100644 --- a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2FileSceneHandler.hh,v 1.9 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2FileSceneHandler.hh,v 1.10 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -134,4 +134,4 @@ public: }; -#endif //G4VRML2File_SCENE_HH +#endif //G4VRML2FILE_SCENE_HANDLER_HH diff --git a/source/visualization/VRML/include/G4VRML2FileViewer.hh b/source/visualization/VRML/include/G4VRML2FileViewer.hh index 46d649e772..fc01d9d012 100644 --- a/source/visualization/VRML/include/G4VRML2FileViewer.hh +++ b/source/visualization/VRML/include/G4VRML2FileViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2FileViewer.hh,v 1.7 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2FileViewer.hh,v 1.8 2002/06/23 03:31:42 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada @@ -57,4 +57,4 @@ private: }; -#endif //G4VRML2File_VIEW_HH +#endif //G4VRML2FILE_VIEWER_HH diff --git a/source/visualization/VRML/include/G4VRML2SceneHandler.hh b/source/visualization/VRML/include/G4VRML2SceneHandler.hh index f67c113440..a45726d836 100644 --- a/source/visualization/VRML/include/G4VRML2SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2SceneHandler.hh @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandler.hh,v 1.8 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2SceneHandler.hh,v 1.9 2002/06/23 03:31:43 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2SceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada +#ifndef WIN32 + #ifdef G4VIS_BUILD_VRML_DRIVER #ifndef G4VRML2_SCENE_HANDLER_HH @@ -130,3 +132,4 @@ public: #endif //G4VRML2_SCENE_HH #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/include/G4VRML2Viewer.hh b/source/visualization/VRML/include/G4VRML2Viewer.hh index 7e6fc78032..bf3d1b2214 100644 --- a/source/visualization/VRML/include/G4VRML2Viewer.hh +++ b/source/visualization/VRML/include/G4VRML2Viewer.hh @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML2Viewer.hh,v 1.6 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2Viewer.hh,v 1.7 2002/06/23 03:31:43 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2Viewer.hh // Satoshi Tanaka & Yasuhide Sawada +#ifndef WIN32 + #ifdef G4VIS_BUILD_VRML_DRIVER #ifndef G4VRML2_VIEWER_HH @@ -61,3 +63,4 @@ private: #endif //G4VRML2_VIEW_HH #endif //G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/include/G4VRMLNetConfig.hh b/source/visualization/VRML/include/G4VRMLNetConfig.hh index bab2e6bc73..f106a1bcb2 100644 --- a/source/visualization/VRML/include/G4VRMLNetConfig.hh +++ b/source/visualization/VRML/include/G4VRMLNetConfig.hh @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRMLNetConfig.hh,v 1.5 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRMLNetConfig.hh,v 1.6 2002/06/23 03:31:43 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRMLNetConfig.hh // Satoshi Tanaka +#ifndef WIN32 + #ifdef G4VIS_BUILD_VRML_DRIVER #ifndef G4VRML_NET_CONFIG_HH @@ -38,3 +40,4 @@ const char FR_VRML_HOST_NAME_ENV[] = "G4VRML_HOST_NAME" ; #endif // G4VRML_NET_CONFIG_HH #endif // G4VIS_BUILD_VRML_DRIVER +#endif //WIN32 diff --git a/source/visualization/VRML/src/FRClient.cc b/source/visualization/VRML/src/FRClient.cc index 1350ec1bb7..0fc1d35a58 100644 --- a/source/visualization/VRML/src/FRClient.cc +++ b/source/visualization/VRML/src/FRClient.cc @@ -21,13 +21,19 @@ // ******************************************************************** // // -// $Id: FRClient.cc,v 1.5 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: FRClient.cc,v 1.6 2002/06/23 03:31:50 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // FRClient.cc // FukuiRenderer Client // Yasuhide Sawada & Satoshi Tanaka + +//=================// +#ifndef WIN32 +//=================// + + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -144,4 +150,6 @@ int FRClient::close() return 0; } -#endif +#endif //G4VIS_BUILD_VRML_DRIVER + +#endif // WIN32 diff --git a/source/visualization/VRML/src/G4FRClient.cc b/source/visualization/VRML/src/G4FRClient.cc index 94ccc6ee9e..d7a7390d82 100644 --- a/source/visualization/VRML/src/G4FRClient.cc +++ b/source/visualization/VRML/src/G4FRClient.cc @@ -21,12 +21,18 @@ // ******************************************************************** // // -// $Id: G4FRClient.cc,v 1.6 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4FRClient.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4FRClient.cc // Yasuhide Sawada & Satoshi Tanaka + +//=================// +#ifndef WIN32 +//=================// + + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -109,4 +115,8 @@ G4FRClient& G4FRClient::operator << (G4FRClient& (*func)(G4FRClient&)) // return c << "\n"; //} /////////////////////////////////////// -#endif + +#endif //G4VIS_BUILD_VRML_DRIVER + +#endif //WIN32 + diff --git a/source/visualization/VRML/src/G4VRML1.cc b/source/visualization/VRML/src/G4VRML1.cc index d0788e2400..b4befd0af0 100644 --- a/source/visualization/VRML/src/G4VRML1.cc +++ b/source/visualization/VRML/src/G4VRML1.cc @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML1.cc,v 1.7 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1.cc,v 1.8 2002/06/23 03:31:50 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1.cc // Yasuhide Sawada & Satoshi Tanaka +#ifndef WIN32 + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -90,3 +92,5 @@ G4VViewer* G4VRML1::CreateViewer(G4VSceneHandler& scene, const G4String& name) } #endif +#endif + diff --git a/source/visualization/VRML/src/G4VRML1File.cc b/source/visualization/VRML/src/G4VRML1File.cc index 918b793726..f0b4639808 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1File.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc index b1f9d1e3c9..a30f423135 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1FileViewer.cc b/source/visualization/VRML/src/G4VRML1FileViewer.cc index c4c9a12b75..b6cefe7a04 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRMLView.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1SceneHandler.cc b/source/visualization/VRML/src/G4VRML1SceneHandler.cc index 8e434e97b4..8cd306f71a 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML1SceneHandler.cc @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandler.cc,v 1.6 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1SceneHandler.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1SceneHandler.cc // Yasuhide Sawada and Satoshi Tanaka +#ifndef WIN32 + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -130,3 +132,4 @@ G4int G4VRML1SceneHandler::fSceneIdCount = 0; G4int G4VRML1SceneHandler::fSceneCount = 0; #endif +#endif diff --git a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc index bce1287f82..058e965cf5 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandlerFunc.icc,v 1.9 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1SceneHandlerFunc.icc,v 1.10 2002/06/23 03:31:50 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML1SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada @@ -619,12 +619,12 @@ 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 ( size == mark.GetWorldSize() ) { // get mark radius in 3D units size = 0.5 * mark.GetWorldSize() ; - } else if ( size = mark.GetScreenSize() ) { + } else if ( size == mark.GetScreenSize() ) { // local double mark_radius_2d = 0.5 * mark.GetScreenSize() ; diff --git a/source/visualization/VRML/src/G4VRML1Viewer.cc b/source/visualization/VRML/src/G4VRML1Viewer.cc index ec83d5ec7d..9ef26c80e7 100644 --- a/source/visualization/VRML/src/G4VRML1Viewer.cc +++ b/source/visualization/VRML/src/G4VRML1Viewer.cc @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML1Viewer.cc,v 1.6 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML1Viewer.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRMLView.cc // Yasuhide Sawada & Satoshi Tanaka +#ifndef WIN32 + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -91,3 +93,4 @@ void G4VRML1Viewer::FinishView(void) } #endif +#endif //WIN32 diff --git a/source/visualization/VRML/src/G4VRML2.cc b/source/visualization/VRML/src/G4VRML2.cc index d9b6011d98..07f994f165 100644 --- a/source/visualization/VRML/src/G4VRML2.cc +++ b/source/visualization/VRML/src/G4VRML2.cc @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML2.cc,v 1.7 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2.cc,v 1.8 2002/06/23 03:31:50 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2.cc // Satoshi Tanaka & Yasuhide Sawada +#ifndef WIN32 + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -90,3 +92,4 @@ G4VViewer* G4VRML2::CreateViewer(G4VSceneHandler& scene, const G4String& name) } #endif +#endif //WIN32 diff --git a/source/visualization/VRML/src/G4VRML2File.cc b/source/visualization/VRML/src/G4VRML2File.cc index 72946f2ce2..734dc1460d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2File.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc index 480ed280fc..d8b22e1343 100644 --- a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2FileSceneHandler.cc,v 1.7 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2FileSceneHandler.cc,v 1.8 2002/06/17 10:13:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada @@ -70,9 +70,9 @@ const int DEFAULT_MAX_WRL_FILE_NUM = 100 ; G4VRML2FileSceneHandler::G4VRML2FileSceneHandler(G4VRML2File& system, const G4String& name) : G4VSceneHandler(system, fSceneIdCount++, name), fSystem(system), - fDest() , fFlagDestOpen( false ), - fPVPickable ( false ) + fPVPickable ( false ), + fDest() { fSceneCount++; diff --git a/source/visualization/VRML/src/G4VRML2FileViewer.cc b/source/visualization/VRML/src/G4VRML2FileViewer.cc index 1ae59d419b..7bafc893e0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2FileViewer.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2SceneHandler.cc b/source/visualization/VRML/src/G4VRML2SceneHandler.cc index 762184077a..6f8b03079d 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2SceneHandler.cc @@ -21,12 +21,15 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandler.cc,v 1.6 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2SceneHandler.cc,v 1.8 2002/06/23 03:31:51 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2SceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada +#ifndef WIN32 + + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -64,8 +67,8 @@ G4VRML2SceneHandler::G4VRML2SceneHandler(G4VRML2& system, const G4String& name) : G4VSceneHandler(system, fSceneIdCount++, name), fSystem(system), - fDest(), - fPVPickable ( false ) + fPVPickable ( false ), + fDest() { fSceneCount++; @@ -142,3 +145,4 @@ G4int G4VRML2SceneHandler::fSceneIdCount = 0; G4int G4VRML2SceneHandler::fSceneCount = 0; #endif +#endif //WIN32 diff --git a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc index 7c5eb0b11c..d1b27d8fb4 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandlerFunc.icc,v 1.9 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2SceneHandlerFunc.icc,v 1.10 2002/06/23 03:31:51 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 ( size == mark.GetWorldSize() ) { // get mark radius in 3D units size = 0.5 * mark.GetWorldSize() ; - } else if ( size = mark.GetScreenSize() ) { + } else if ( size == mark.GetScreenSize() ) { // local double mark_radius_2d = 0.5 * mark.GetScreenSize() ; diff --git a/source/visualization/VRML/src/G4VRML2Viewer.cc b/source/visualization/VRML/src/G4VRML2Viewer.cc index c3fb9e62f9..91c68a0ef4 100644 --- a/source/visualization/VRML/src/G4VRML2Viewer.cc +++ b/source/visualization/VRML/src/G4VRML2Viewer.cc @@ -21,12 +21,14 @@ // ******************************************************************** // // -// $Id: G4VRML2Viewer.cc,v 1.8 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VRML2Viewer.cc,v 1.9 2002/06/23 03:31:51 stanaka Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // G4VRML2Viewer.cc // Satoshi Tanaka & Yasuhide Sawada +#ifndef WIN32 + //=================// #ifdef G4VIS_BUILD_VRML_DRIVER //=================// @@ -143,3 +145,4 @@ void G4VRML2Viewer::SendViewParameters () #endif +#endif //WIN32 diff --git a/source/visualization/XXX/include/G4XXX.hh b/source/visualization/XXX/include/G4XXX.hh index 449a335a39..c04b04ebb4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/include/G4XXXSceneHandler.hh b/source/visualization/XXX/include/G4XXXSceneHandler.hh index e90483b3c5..b33fa896c7 100644 --- a/source/visualization/XXX/include/G4XXXSceneHandler.hh +++ b/source/visualization/XXX/include/G4XXXSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4XXXSceneHandler.hh,v 1.7 2001/11/21 16:47:32 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/include/G4XXXViewer.hh b/source/visualization/XXX/include/G4XXXViewer.hh index cd80b789f9..0262cbe4bc 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXX.cc b/source/visualization/XXX/src/G4XXX.cc index 4e5ab9f43f..919bb8f2dd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXXSceneHandler.cc b/source/visualization/XXX/src/G4XXXSceneHandler.cc index c323f9159d..832946a8a2 100644 --- a/source/visualization/XXX/src/G4XXXSceneHandler.cc +++ b/source/visualization/XXX/src/G4XXXSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4XXXSceneHandler.cc,v 1.6 2001/11/16 10:50:08 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXXViewer.cc b/source/visualization/XXX/src/G4XXXViewer.cc index 0304730549..cd5862f473 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4XXXViewer.hh" diff --git a/source/visualization/management/include/G4GraphicsSystemList.hh b/source/visualization/management/include/G4GraphicsSystemList.hh index a59f0ef191..7b548f8247 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 2nd April 1996 diff --git a/source/visualization/management/include/G4Scene.hh b/source/visualization/management/include/G4Scene.hh index 7a4f6e2221..1c08ba9af6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Scene John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4Scene.icc b/source/visualization/management/include/G4Scene.icc index ecc6612957..cc4fcf28cd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Scene data John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4SceneHandlerList.hh b/source/visualization/management/include/G4SceneHandlerList.hh index 40148a54f3..480f3b308c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4SceneList.hh b/source/visualization/management/include/G4SceneList.hh index 78ca35cf33..fa158101ae 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VGraphicsSystem.hh b/source/visualization/management/include/G4VGraphicsSystem.hh index dec0301e8f..84f74ef8fe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VGraphicsSystem.icc b/source/visualization/management/include/G4VGraphicsSystem.icc index b5b1b9bbda..40c47e2300 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VSceneHandler.hh b/source/visualization/management/include/G4VSceneHandler.hh index 8b22404a8e..e95644522b 100644 --- a/source/visualization/management/include/G4VSceneHandler.hh +++ b/source/visualization/management/include/G4VSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VSceneHandler.hh,v 1.18 2001/08/14 18:36:07 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4VSceneHandler.icc b/source/visualization/management/include/G4VSceneHandler.icc index 347ec0de0a..4db869f1f9 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4VViewer.hh b/source/visualization/management/include/G4VViewer.hh index 0b54db7b1a..8e882f3eca 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VViewer.icc b/source/visualization/management/include/G4VViewer.icc index a483be0125..9b5563a8b7 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 30th December 1996 diff --git a/source/visualization/management/include/G4VVisCommand.hh b/source/visualization/management/include/G4VVisCommand.hh index 34307cbd59..f9e0e363cc 100644 --- a/source/visualization/management/include/G4VVisCommand.hh +++ b/source/visualization/management/include/G4VVisCommand.hh @@ -22,7 +22,7 @@ // // // $Id: G4VVisCommand.hh,v 1.13 2001/09/10 10:49:07 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. diff --git a/source/visualization/management/include/G4VVisCommand.icc b/source/visualization/management/include/G4VVisCommand.icc index 487b3baedc..58c20c6bfd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. diff --git a/source/visualization/management/include/G4ViewParameters.hh b/source/visualization/management/include/G4ViewParameters.hh index c17b542cd6..67e9a16d6c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 19th July 1996 diff --git a/source/visualization/management/include/G4ViewParameters.icc b/source/visualization/management/include/G4ViewParameters.icc index d3ac1c263d..5902035b85 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 20th October 1996 diff --git a/source/visualization/management/include/G4ViewerList.hh b/source/visualization/management/include/G4ViewerList.hh index 0cf147b9d9..4c43775620 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4VisCommands.hh b/source/visualization/management/include/G4VisCommands.hh index 34e2d513b4..4c00ebac35 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /vis/ top level commands - John Allison 5th February 2001 diff --git a/source/visualization/management/include/G4VisCommandsCompound.hh b/source/visualization/management/include/G4VisCommandsCompound.hh index e282b31864..b2e82c2e9b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // 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 acdecf0688..033e4beb9b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /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 ede06bd019..7056f3b2a6 100644 --- a/source/visualization/management/include/G4VisCommandsSceneAdd.hh +++ b/source/visualization/management/include/G4VisCommandsSceneAdd.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsSceneAdd.hh,v 1.9 2001/07/22 01:05:00 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /vis/scene commands - John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VisCommandsSceneHandler.hh b/source/visualization/management/include/G4VisCommandsSceneHandler.hh index 7907147232..a1618d8d5f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /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 55abfa87ad..2513d15414 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /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 1230ad71b1..1f4e0fe47e 100644 --- a/source/visualization/management/include/G4VisCommandsViewerSet.hh +++ b/source/visualization/management/include/G4VisCommandsViewerSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsViewerSet.hh,v 1.10 2001/11/06 13:01:31 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /vis/viewer/set commands - John Allison 16th May 2000 diff --git a/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh b/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh index d4f9b3cc4b..a6d55e7a60 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #ifndef G4VISFEATURESOFDAWNFILE_HH #define G4VISFEATURESOFDAWNFILE_HH diff --git a/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh b/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh index db3c9898e3..0e83fa6bac 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh b/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh index 0d93282dcf..e07fb36949 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh b/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh index 141199f73d..39d190239d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/management/include/G4VisManager.hh b/source/visualization/management/include/G4VisManager.hh index efc9e7464a..9cacd143d1 100644 --- a/source/visualization/management/include/G4VisManager.hh +++ b/source/visualization/management/include/G4VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisManager.hh,v 1.27 2001/09/10 11:00:36 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/management/include/G4VisManager.icc b/source/visualization/management/include/G4VisManager.icc index 9784ecc48b..4d9ff87974 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // 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 dd37bb2522..b4fd29366c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // 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 e0be3efa20..7b82e7a06d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Implements some /vis/ commands as /vis~/ temporarily. diff --git a/source/visualization/management/include/MyVisManager.cc b/source/visualization/management/include/MyVisManager.cc index db339c6d5f..f4e0a875fa 100644 --- a/source/visualization/management/include/MyVisManager.cc +++ b/source/visualization/management/include/MyVisManager.cc @@ -22,7 +22,7 @@ // // // $Id: MyVisManager.cc,v 1.16 2001/11/15 14:39:27 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/source/visualization/management/include/MyVisManager.hh b/source/visualization/management/include/MyVisManager.hh index 37a5ca7293..383d56c83c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 24th January 1998. diff --git a/source/visualization/management/src/G4GraphicsSystemList.cc b/source/visualization/management/src/G4GraphicsSystemList.cc index 4df8d92941..95f8a3e2d5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4GraphicsSystemList.hh" diff --git a/source/visualization/management/src/G4Scene.cc b/source/visualization/management/src/G4Scene.cc index a87e093ac2..488b41fb89 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // Scene data John Allison 19th July 1996. diff --git a/source/visualization/management/src/G4SceneHandlerList.cc b/source/visualization/management/src/G4SceneHandlerList.cc index 19c0470f63..7ac23bbd21 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4SceneHandlerList.hh" diff --git a/source/visualization/management/src/G4SceneList.cc b/source/visualization/management/src/G4SceneList.cc index 24ac17d71a..e90a15af79 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4SceneList.hh" diff --git a/source/visualization/management/src/G4VGraphicsSystem.cc b/source/visualization/management/src/G4VGraphicsSystem.cc index afd4c56229..470bb45c7c 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/src/G4VSceneHandler.cc b/source/visualization/management/src/G4VSceneHandler.cc index c6528d4f4b..f3177588ce 100644 --- a/source/visualization/management/src/G4VSceneHandler.cc +++ b/source/visualization/management/src/G4VSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSceneHandler.cc,v 1.23 2001/09/10 10:52:01 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 19th July 1996 diff --git a/source/visualization/management/src/G4VViewer.cc b/source/visualization/management/src/G4VViewer.cc index aa71ca8241..f68952430b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/src/G4VVisCommand.cc b/source/visualization/management/src/G4VVisCommand.cc index 96ca443d58..3f5678f94e 100644 --- a/source/visualization/management/src/G4VVisCommand.cc +++ b/source/visualization/management/src/G4VVisCommand.cc @@ -22,7 +22,7 @@ // // // $Id: G4VVisCommand.cc,v 1.10 2001/09/10 10:49:51 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. diff --git a/source/visualization/management/src/G4ViewParameters.cc b/source/visualization/management/src/G4ViewParameters.cc index 5b3bca08ed..82be213ba0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 19th July 1996 diff --git a/source/visualization/management/src/G4ViewerList.cc b/source/visualization/management/src/G4ViewerList.cc index ea0cfdaf89..369584d6fb 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4ViewerList.hh" diff --git a/source/visualization/management/src/G4VisCommands.cc b/source/visualization/management/src/G4VisCommands.cc index de91a61fa2..b8e1e330c5 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /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 5d6c2a5b98..60ad7820b5 100644 --- a/source/visualization/management/src/G4VisCommandsCompound.cc +++ b/source/visualization/management/src/G4VisCommandsCompound.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsCompound.cc,v 1.20 2001/11/07 17:09:59 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VisCommandsCompound.cc,v 1.22 2002/05/08 13:25:26 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // Compound /vis/ commands - John Allison 15th May 2000 @@ -71,8 +71,8 @@ void G4VisCommandDrawTree::SetNewValue fpVisManager->GetVerbosity() >= G4VisManager::confirmations) newVerbose = 2; UImanager->SetVerboseLevel(newVerbose); - UImanager->ApplyCommand("/vis/open " + system); - UImanager->ApplyCommand("/vis/drawVolume " + pvname); + UImanager->ApplyCommand(G4String("/vis/open " + system)); + UImanager->ApplyCommand(G4String("/vis/drawVolume " + pvname)); UImanager->ApplyCommand("/vis/viewer/flush"); UImanager->SetVerboseLevel(keepVerbose); } @@ -156,17 +156,17 @@ void G4VisCommandDrawView::SetNewValue G4bool keepAutoRefresh = vp.IsAutoRefresh(); vp.SetAutoRefresh(false); currentViewer->SetViewParameters(vp); - UImanager->ApplyCommand - ("/vis/viewer/viewpointThetaPhi " + thetaDeg + " " + phiDeg + " deg"); - UImanager->ApplyCommand - ("/vis/viewer/panTo " + panRight + " " + panUp + " " + panUnit); - UImanager->ApplyCommand - ("/vis/viewer/zoomTo " + zoomFactor); + UImanager->ApplyCommand( + G4String("/vis/viewer/viewpointThetaPhi " + thetaDeg + " " + phiDeg + " deg")); + UImanager->ApplyCommand( + G4String("/vis/viewer/panTo " + panRight + " " + panUp + " " + panUnit)); + UImanager->ApplyCommand( + G4String("/vis/viewer/zoomTo " + zoomFactor)); vp = currentViewer->GetViewParameters(); vp.SetAutoRefresh(keepAutoRefresh); currentViewer->SetViewParameters(vp); - UImanager->ApplyCommand - ("/vis/viewer/dollyTo " + dolly + " " + dollyUnit); + UImanager->ApplyCommand( + G4String("/vis/viewer/dollyTo " + dolly + " " + dollyUnit)); UImanager->SetVerboseLevel(keepVerbose); } @@ -199,13 +199,13 @@ void G4VisCommandDrawVolume::SetNewValue newVerbose = 2; UImanager->SetVerboseLevel(newVerbose); UImanager->ApplyCommand("/vis/scene/create"); - UImanager->ApplyCommand("/vis/scene/add/volume " + newValue); + UImanager->ApplyCommand(G4String("/vis/scene/add/volume " + newValue)); UImanager->ApplyCommand("/vis/sceneHandler/attach"); UImanager->SetVerboseLevel(keepVerbose); if (verbosity >= G4VisManager::warnings) { G4cout << "WARNING: For systems which are not \"auto-refresh\" you will need to" - "\n issue \"/vis/viewer/refresh\" or \"/vis/viewer/flush\"." + "\n issue \"/vis/viewer/update\" or \"/vis/viewer/flush\"." << G4endl; } } @@ -261,8 +261,8 @@ void G4VisCommandOpen::SetNewValue (G4UIcommand* command, G4String newValue) { fpVisManager->GetVerbosity() >= G4VisManager::confirmations) newVerbose = 2; UImanager->SetVerboseLevel(newVerbose); - UImanager->ApplyCommand("/vis/sceneHandler/create " + systemName); - UImanager->ApplyCommand("/vis/viewer/create ! ! " + windowSizeHint); + UImanager->ApplyCommand(G4String("/vis/sceneHandler/create " + systemName)); + UImanager->ApplyCommand(G4String("/vis/viewer/create ! ! " + windowSizeHint)); UImanager->SetVerboseLevel(keepVerbose); } @@ -293,15 +293,15 @@ void G4VisCommandSpecify::SetNewValue if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) newVerbose = 2; UImanager->SetVerboseLevel(newVerbose); - UImanager->ApplyCommand("/geometry/print " + newValue); + UImanager->ApplyCommand(G4String("/geometry/print " + newValue)); UImanager->ApplyCommand("/vis/scene/create"); - UImanager->ApplyCommand("/vis/scene/add/logicalVolume " + newValue); + UImanager->ApplyCommand(G4String("/vis/scene/add/logicalVolume " + newValue)); UImanager->ApplyCommand("/vis/sceneHandler/attach"); UImanager->SetVerboseLevel(keepVerbose); if (verbosity >= G4VisManager::warnings) { G4cout << "WARNING: For systems which are not \"auto-refresh\" you will need to" - "\n issue \"/vis/viewer/refresh\" or \"/vis/viewer/flush\"." + "\n issue \"/vis/viewer/update\" or \"/vis/viewer/flush\"." << G4endl; } } diff --git a/source/visualization/management/src/G4VisCommandsScene.cc b/source/visualization/management/src/G4VisCommandsScene.cc index 2c1dec20a4..e2df581d70 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /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 39661b1688..0e62e365b1 100644 --- a/source/visualization/management/src/G4VisCommandsSceneAdd.cc +++ b/source/visualization/management/src/G4VisCommandsSceneAdd.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneAdd.cc,v 1.29 2001/11/28 16:13:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VisCommandsSceneAdd.cc,v 1.30 2002/06/19 15:49:34 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // /vis/scene commands - John Allison 9th August 1998 @@ -295,7 +295,9 @@ G4VisCommandSceneAddLogicalVolume::G4VisCommandSceneAddLogicalVolume () { fpCommand -> SetGuidance ("/vis/scene/add/logicalVolume " " []"); - fpCommand -> SetGuidance ("Adds a logical volume to the current scene."); + fpCommand -> SetGuidance ("Adds a logical volume to the current scene,"); + fpCommand -> SetGuidance + (" showing voxels and boolean components (if any)."); fpCommand -> SetGuidance ("1st parameter: volume name."); // fpCommand -> SetGuidance // Not implemented - should be in geom? diff --git a/source/visualization/management/src/G4VisCommandsSceneHandler.cc b/source/visualization/management/src/G4VisCommandsSceneHandler.cc index 5e0b635ad3..a03e51fcdf 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // /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 8565651bf5..5a98d2e293 100644 --- a/source/visualization/management/src/G4VisCommandsViewer.cc +++ b/source/visualization/management/src/G4VisCommandsViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewer.cc,v 1.34 2001/11/06 12:56:48 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VisCommandsViewer.cc,v 1.35 2002/04/26 21:23:31 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // /vis/viewer commands - John Allison 25th October 1998 @@ -456,8 +456,8 @@ void G4VisCommandViewerFlush::SetNewValue (G4UIcommand* command, if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) newVerbose = 2; ui->SetVerboseLevel(newVerbose); - ui->ApplyCommand("/vis/viewer/refresh " + flushName); - ui->ApplyCommand("/vis/viewer/update " + flushName); + ui->ApplyCommand(G4String("/vis/viewer/refresh " + flushName)); + ui->ApplyCommand(G4String("/vis/viewer/update " + flushName)); ui->SetVerboseLevel(keepVerbose); if (verbosity >= G4VisManager::confirmations) { G4cout << "Viewer \"" << viewer -> GetName () << "\"" @@ -532,8 +532,8 @@ void G4VisCommandViewerLights::SetNewValue (G4UIcommand* command, "WARNING: DEPRECATED: use \"/vis/viewer/set/LightsThetaPhi\"." << G4endl; } - G4UImanager::GetUIpointer()->ApplyCommand - ("/vis/viewer/set/LightsThetaPhi " + newValue); + G4UImanager::GetUIpointer()->ApplyCommand( + G4String("/vis/viewer/set/LightsThetaPhi " + newValue)); } else if (command == fpCommandLightsVector) { if (verbosity >= G4VisManager::warnings) { @@ -541,8 +541,8 @@ void G4VisCommandViewerLights::SetNewValue (G4UIcommand* command, "WARNING: DEPRECATED: use \"/vis/viewer/set/LightsVector\"." << G4endl; } - G4UImanager::GetUIpointer()->ApplyCommand - ("/vis/viewer/set/LightsVector " + newValue); + G4UImanager::GetUIpointer()->ApplyCommand( + G4String("/vis/viewer/set/LightsVector " + newValue)); } } @@ -1170,8 +1170,8 @@ void G4VisCommandViewerViewpoint::SetNewValue (G4UIcommand* command, "WARNING: DEPRECATED: use \"/vis/viewer/set/viewpointThetaPhi\"." << G4endl; } - G4UImanager::GetUIpointer()->ApplyCommand - ("/vis/viewer/set/viewpointThetaPhi " + newValue); + G4UImanager::GetUIpointer()->ApplyCommand( + G4String("/vis/viewer/set/viewpointThetaPhi " + newValue)); } else if (command == fpCommandViewpointVector) { if (verbosity >= G4VisManager::warnings) { @@ -1179,8 +1179,8 @@ void G4VisCommandViewerViewpoint::SetNewValue (G4UIcommand* command, "WARNING: DEPRECATED: use \"/vis/viewer/set/viewpointVector\"." << G4endl; } - G4UImanager::GetUIpointer()->ApplyCommand - ("/vis/viewer/set/viewpointVector " + newValue); + G4UImanager::GetUIpointer()->ApplyCommand( + G4String("/vis/viewer/set/viewpointVector " + newValue)); } } diff --git a/source/visualization/management/src/G4VisCommandsViewerSet.cc b/source/visualization/management/src/G4VisCommandsViewerSet.cc index 392c9b87e9..052afb6f5b 100644 --- a/source/visualization/management/src/G4VisCommandsViewerSet.cc +++ b/source/visualization/management/src/G4VisCommandsViewerSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewerSet.cc,v 1.17 2001/11/12 18:22:12 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VisCommandsViewerSet.cc,v 1.19 2002/05/01 09:55:28 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // /vis/viewer/set commands - John Allison 16th May 2000 @@ -46,7 +46,8 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandAll = new G4UIcmdWithAString ("/vis/viewer/set/all",this); fpCommandAll->SetGuidance ("/vis/viewer/set/all " - "\nCopies view parameters from from-viewer to current viewer."); + "\nCopies view parameters (except the autoRefresh status) from" + "\n from-viewer to current viewer."); fpCommandAll->SetParameterName ("from-viewer-name",omitable = false); viewerNameCommands.push_back (fpCommandAll); @@ -54,6 +55,8 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): ("/vis/viewer/set/autoRefresh",this); fpCommandAutoRefresh->SetGuidance ("/vis/viewer/set/autoRefresh [true|false]"); + fpCommandAutoRefresh->SetGuidance + ("DEPRECATED COMMAND. Will be removed from next major release."); fpCommandAutoRefresh->SetGuidance ("View is automatically refreshed after a change of view parameters."); fpCommandAutoRefresh->SetParameterName("auto-refresh",omitable = true); @@ -363,7 +366,11 @@ void G4VisCommandsViewerSet::SetNewValue } return; } + // Copy view parameters except for autoRefresh... + G4bool currentAutoRefresh = + currentViewer->GetViewParameters().IsAutoRefresh(); vp = fromViewer->GetViewParameters(); + vp.SetAutoRefresh(currentAutoRefresh); if (verbosity >= G4VisManager::confirmations) { G4cout << "View parameters of viewer \"" << currentViewer->GetName() << "\"\n set to those of viewer \"" << fromViewer->GetName() @@ -375,6 +382,12 @@ void G4VisCommandsViewerSet::SetNewValue else if (command == fpCommandAutoRefresh) { G4bool autoRefresh = GetNewBoolValue(newValue); vp.SetAutoRefresh(autoRefresh); + if (verbosity >= G4VisManager::warnings) { + G4cout << + "/vis/viewer/set/autoRefresh is a DEPRECATED COMMAND." + "\n It will be removed from next major release." + << G4endl; + } if (verbosity >= G4VisManager::confirmations) { G4cout << "Views will "; if (!vp.IsAutoRefresh()) G4cout << "not "; diff --git a/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc b/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc index 03a6703c7b..ea144c1fd3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // #include "G4VisFeaturesOfDAWNFILE.hh" diff --git a/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc b/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc index 6c8ae9120c..ba7799017a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc b/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc index 255e94ad5c..82f7aa06e6 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc b/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc index 019c819b47..2624c967f3 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // diff --git a/source/visualization/management/src/G4VisManager.cc b/source/visualization/management/src/G4VisManager.cc index 3c0f4d0a34..7877993bd6 100644 --- a/source/visualization/management/src/G4VisManager.cc +++ b/source/visualization/management/src/G4VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisManager.cc,v 1.43 2001/12/03 11:46:38 stesting Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4VisManager.cc,v 1.45 2002/04/26 21:23:31 asaim Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. @@ -689,7 +689,7 @@ void G4VisManager::GeometryHasChanged () { else { pScene->CalculateExtent(); G4UImanager::GetUIpointer () -> - ApplyCommand ("/vis/scene/notifyHandlers " + pScene->GetName()); + ApplyCommand (G4String("/vis/scene/notifyHandlers " + pScene->GetName())); } } } @@ -1141,7 +1141,7 @@ G4VisManager::GetVerbosityValue(const G4String& verbosityString) { G4cout << "ERROR: G4VisManager::GetVerbosityValue: invalid verbosity \"" << verbosityString << "\"\n" << VerbosityGuidanceString - << "\n Returning \"warnings\" == " << warnings + << "\n Returning \"warnings\" == " << (G4int)warnings << G4endl; verbosity = warnings; } diff --git a/source/visualization/management/src/G4VisStateDependent.cc b/source/visualization/management/src/G4VisStateDependent.cc index ea49224614..5dce2f72c0 100644 --- a/source/visualization/management/src/G4VisStateDependent.cc +++ b/source/visualization/management/src/G4VisStateDependent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisStateDependent.cc,v 1.4 2001/09/10 10:41:33 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ #include "G4VisStateDependent.hh" diff --git a/source/visualization/modeling/History b/source/visualization/modeling/History index 3366f876e0..a95d747a33 100644 --- a/source/visualization/modeling/History +++ b/source/visualization/modeling/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2001/08/24 20:36:11 johna Exp $ +$Id: History,v 1.17 2002/02/24 01:35:26 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,13 @@ committal in the CVS repository ! History file for visualization/modeling --------------------------------------- +23rd February 2002 John Allison (vis-V04-00-02) +- Removed Begin/EndPrimitives from G4HitsModel and + G4TrajectoriesModel. This was causing nested calls to + Begin/EndPrimitives (and thus to glNewList/EndList in OpenGL stored + mode), since the trajectories and hits Draw methods themselves have + Begin/EndPrimitives. + 24th August 2001 John Allison (vis-V03-02-13) - Intoduced argument for printing in G4VModel::Validate(G4bool warn). - Changed default return value in G4VModel::Validate(G4bool) to true. diff --git a/source/visualization/modeling/include/G4AxesModel.hh b/source/visualization/modeling/include/G4AxesModel.hh index fc2e1d3fa0..244b85cc7d 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/include/G4AxesModel.icc b/source/visualization/modeling/include/G4AxesModel.icc index 8ea71035a8..8fac094cde 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ inline G4String G4AxesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4BoundingSphereScene.hh b/source/visualization/modeling/include/G4BoundingSphereScene.hh index 006f0e9e94..36959c5a49 100644 --- a/source/visualization/modeling/include/G4BoundingSphereScene.hh +++ b/source/visualization/modeling/include/G4BoundingSphereScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4BoundingSphereScene.hh,v 1.11 2001/07/25 21:08:14 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 7th June 1997 diff --git a/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh b/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh index 1939f334ea..91995a1e78 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // P. Mora de Freitas et M.Verderi - 19 June 1998. // diff --git a/source/visualization/modeling/include/G4HitsModel.hh b/source/visualization/modeling/include/G4HitsModel.hh index b86fd57c09..80b20008fd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/include/G4HitsModel.icc b/source/visualization/modeling/include/G4HitsModel.icc index e6f7ad6574..721c73e443 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ inline G4String G4HitsModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4LogicalVolumeModel.hh b/source/visualization/modeling/include/G4LogicalVolumeModel.hh index 5078fbde87..e434d95efe 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 26th July 1999. diff --git a/source/visualization/modeling/include/G4ModelingParameters.hh b/source/visualization/modeling/include/G4ModelingParameters.hh index 82d10fdb09..1b9fe6e089 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4ModelingParameters.icc b/source/visualization/modeling/include/G4ModelingParameters.icc index 0bc5c7810e..938cd6b6d4 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4NullModel.hh b/source/visualization/modeling/include/G4NullModel.hh index 5e0a9a67dd..cbeeb192cd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeModel.hh b/source/visualization/modeling/include/G4PhysicalVolumeModel.hh index 1064c23416..c32072198a 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh index d3e47dde61..1db14dfc17 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeSearchScene.hh,v 1.9 2001/07/22 01:00:24 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc index c56a591120..9b9ae34875 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/include/G4ScaleModel.hh b/source/visualization/modeling/include/G4ScaleModel.hh index d36118e7cc..9e4c5e14f0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/include/G4ScaleModel.icc b/source/visualization/modeling/include/G4ScaleModel.icc index 316b46ba9a..f1a67dcf61 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ inline G4String G4ScaleModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TextModel.hh b/source/visualization/modeling/include/G4TextModel.hh index 6fc3b09c39..2e3c8c429e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/include/G4TextModel.icc b/source/visualization/modeling/include/G4TextModel.icc index e707d10c51..7f17a58d6b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ inline G4String G4TextModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.hh b/source/visualization/modeling/include/G4TrajectoriesModel.hh index 512ac76cc3..df79c7b0d1 100644 --- a/source/visualization/modeling/include/G4TrajectoriesModel.hh +++ b/source/visualization/modeling/include/G4TrajectoriesModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoriesModel.hh,v 1.7 2001/08/24 20:36:23 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.icc b/source/visualization/modeling/include/G4TrajectoriesModel.icc index 2998ec895e..60c217abfd 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ inline G4String G4TrajectoriesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4VModel.hh b/source/visualization/modeling/include/G4VModel.hh index a14dd7c86a..c68c976807 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4VModel.icc b/source/visualization/modeling/include/G4VModel.icc index 3f2fae0e63..5792465d62 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/src/G4AxesModel.cc b/source/visualization/modeling/src/G4AxesModel.cc index 9c09116f3d..b6dda8b2be 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/src/G4BoundingSphereScene.cc b/source/visualization/modeling/src/G4BoundingSphereScene.cc index 61d88d7715..00002d61c0 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 7th June 1997 diff --git a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc index 8face305d9..711e1444e7 100644 --- a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc +++ b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4FlavoredParallelWorldModel.cc,v 1.5 2001/07/11 10:09:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // P. Mora de Freitas et M.Verderi - 19 June 1998. // Model for flavored parallel world volumes. diff --git a/source/visualization/modeling/src/G4HitsModel.cc b/source/visualization/modeling/src/G4HitsModel.cc index 571360378b..664ee5ef60 100644 --- a/source/visualization/modeling/src/G4HitsModel.cc +++ b/source/visualization/modeling/src/G4HitsModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HitsModel.cc,v 1.7 2001/08/14 18:43:30 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4HitsModel.cc,v 1.8 2002/02/24 01:35:50 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 26th August 1998. @@ -51,11 +51,9 @@ void G4HitsModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { G4HCofThisEvent* HCE = event -> GetHCofThisEvent (); if (HCE) { G4int nHC = HCE -> GetCapacity (); - sceneHandler.BeginPrimitives (); for (int iHC = 0; iHC < nHC; iHC++) { HCE -> GetHC (iHC) -> DrawAllHits (); } - sceneHandler.EndPrimitives (); } } } diff --git a/source/visualization/modeling/src/G4LogicalVolumeModel.cc b/source/visualization/modeling/src/G4LogicalVolumeModel.cc index abfd3cad59..b1adfa1675 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 26th July 1999. diff --git a/source/visualization/modeling/src/G4ModelingParameters.cc b/source/visualization/modeling/src/G4ModelingParameters.cc index a318ed6416..68cf0b925f 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/src/G4NullModel.cc b/source/visualization/modeling/src/G4NullModel.cc index 559c7df15b..86a2676898 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc index 8390f7ed02..34d34af5b1 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc b/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc index 89d8ff001c..4c5c1ca9d8 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/src/G4ScaleModel.cc b/source/visualization/modeling/src/G4ScaleModel.cc index 323971a216..6822d82e42 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/src/G4TextModel.cc b/source/visualization/modeling/src/G4TextModel.cc index e81c8d2b3b..0e2926be7e 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/src/G4TrajectoriesModel.cc b/source/visualization/modeling/src/G4TrajectoriesModel.cc index 8319be0224..4b317c5759 100644 --- a/source/visualization/modeling/src/G4TrajectoriesModel.cc +++ b/source/visualization/modeling/src/G4TrajectoriesModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrajectoriesModel.cc,v 1.9 2001/08/14 18:43:33 johna Exp $ -// GEANT4 tag $Name: geant4-04-00 $ +// $Id: G4TrajectoriesModel.cc,v 1.10 2002/02/24 01:35:52 johna Exp $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 26th August 1998. @@ -48,7 +48,6 @@ void G4TrajectoriesModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { G4TrajectoryContainer* TC = event -> GetTrajectoryContainer (); if (TC) { G4int nT = TC -> entries (); - sceneHandler.BeginPrimitives (); 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 @@ -56,7 +55,6 @@ void G4TrajectoriesModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { // (*TC) [iT] -> DrawTrajectory (50); (*TC) [iT] -> DrawTrajectory (); } - sceneHandler.EndPrimitives (); } } } diff --git a/source/visualization/modeling/src/G4VModel.cc b/source/visualization/modeling/src/G4VModel.cc index 9247886a80..2f1b22402b 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-00 $ +// GEANT4 tag $Name: geant4-04-01 $ // // // John Allison 31st December 1997.